Merge remote-tracking branch 'origin/qcast-pub' into dev

This commit is contained in:
minsik 2024-10-02 17:09:24 +09:00
commit 44a8334d1d
41 changed files with 1699 additions and 716 deletions

View File

@ -0,0 +1,4 @@
<svg width="15" height="16" viewBox="0 0 15 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="0.5" y="1" width="14" height="14" rx="7" stroke="white"/>
<path d="M9.741 11.059L7.509 8.827L5.277 11.059L4.512 10.294L6.744 8.062L4.512 5.83L5.277 5.065L7.509 7.297L9.741 5.065L10.506 5.83L8.274 8.062L10.506 10.294L9.741 11.059Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 358 B

View File

@ -0,0 +1,4 @@
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="12" height="12" rx="6" fill="#EBEBEB"/>
<path d="M5.41297 9.531V6.723H2.78697V5.631H5.41297V2.81H6.56997V5.631H9.20897V6.723H6.56997V9.531H5.41297Z" fill="black"/>
</svg>

After

Width:  |  Height:  |  Size: 280 B

View File

@ -0,0 +1,6 @@
<svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="0.5" y="0.5" width="7" height="7" stroke="#101010"/>
<rect x="7.5" y="0.5" width="7" height="7" stroke="#101010"/>
<rect x="0.5" y="7.5" width="7" height="7" stroke="#101010"/>
<rect x="7.5" y="7.5" width="7" height="7" stroke="#101010"/>
</svg>

After

Width:  |  Height:  |  Size: 351 B

View File

@ -0,0 +1,6 @@
<svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="0.5" y="0.5" width="7" height="7" stroke="white"/>
<rect x="7.5" y="0.5" width="7" height="7" stroke="white"/>
<rect x="0.5" y="7.5" width="7" height="7" stroke="white"/>
<rect x="7.5" y="7.5" width="7" height="7" stroke="white"/>
</svg>

After

Width:  |  Height:  |  Size: 343 B

View File

@ -0,0 +1,6 @@
<svg width="18" height="15" viewBox="0 0 18 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="0.5" y="0.5" width="7" height="7" stroke="#101010"/>
<rect x="7.5" y="0.5" width="7" height="7" stroke="#101010"/>
<rect x="3.5" y="7.5" width="7" height="7" stroke="#101010"/>
<rect x="10.5" y="7.5" width="7" height="7" stroke="#101010"/>
</svg>

After

Width:  |  Height:  |  Size: 352 B

View File

@ -0,0 +1,6 @@
<svg width="18" height="15" viewBox="0 0 18 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="0.5" y="0.5" width="7" height="7" stroke="white"/>
<rect x="7.5" y="0.5" width="7" height="7" stroke="white"/>
<rect x="3.5" y="7.5" width="7" height="7" stroke="white"/>
<rect x="10.5" y="7.5" width="7" height="7" stroke="white"/>
</svg>

After

Width:  |  Height:  |  Size: 344 B

View File

@ -0,0 +1,10 @@
<svg width="32" height="30" viewBox="0 0 32 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="0.75" width="30" height="30" fill="#45CD7D"/>
<mask id="mask0_4083_3047" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="31" height="30">
<rect x="0.75" width="30" height="30" fill="#45CD7D"/>
</mask>
<g mask="url(#mask0_4083_3047)">
<path d="M0.5 -0.5L16.5 13.5L32 -1" stroke="black" stroke-width="2"/>
<path d="M16.5 13V30" stroke="black" stroke-width="2"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 499 B

View File

@ -0,0 +1,10 @@
<svg width="32" height="30" viewBox="0 0 32 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="1" width="30" height="30" fill="#45CD7D"/>
<mask id="mask0_4083_3055" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="1" y="0" width="30" height="30">
<rect x="1" width="30" height="30" fill="#45CD7D"/>
</mask>
<g mask="url(#mask0_4083_3055)">
<path d="M16 7V35" stroke="black" stroke-width="2"/>
<path d="M1 -1L8 7H26L32 -1" stroke="black" stroke-width="2"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 483 B

View File

@ -0,0 +1,15 @@
<svg width="32" height="30" viewBox="0 0 32 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="1.25" width="30" height="30" fill="white"/>
<mask id="mask0_4083_3069" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="1" y="0" width="31" height="30">
<rect x="1.25" width="30" height="30" fill="white"/>
</mask>
<g mask="url(#mask0_4083_3069)">
<path d="M1 4H16V30" stroke="black" stroke-width="2"/>
<path d="M1 30.5L16 4.5" stroke="black" stroke-width="2"/>
<rect x="18" y="3" width="14" height="1" fill="#ED0004"/>
<rect x="6" y="26" width="26" height="1" fill="#ED0004"/>
<rect x="23.5" y="7" width="1" height="16" fill="black"/>
<path d="M21.5 9L24 6.5L26.5 9" stroke="black"/>
<path d="M21.5 20.5L24 23L26.5 20.5" stroke="black"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 760 B

View File

@ -0,0 +1,9 @@
<svg width="32" height="30" viewBox="0 0 32 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="0.75" width="30" height="30" fill="#45CD7D"/>
<mask id="mask0_4083_3140" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="31" height="30">
<rect x="0.5" width="30" height="30" fill="#45CD7D"/>
</mask>
<g mask="url(#mask0_4083_3140)">
<path d="M15.5 0V30" stroke="black" stroke-width="2"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 427 B

View File

@ -0,0 +1,10 @@
<svg width="32" height="30" viewBox="0 0 32 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="0.75" width="30" height="30" fill="white"/>
<mask id="mask0_4083_3151" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="31" height="30">
<rect x="0.75" width="30" height="30" fill="white"/>
</mask>
<g mask="url(#mask0_4083_3151)">
<path d="M3.5 30V20L17.5 6H31" stroke="black" stroke-width="2"/>
<path d="M28 15.5C28 21.503 22.2579 26.5 15 26.5C7.74211 26.5 2 21.503 2 15.5C2 9.49705 7.74211 4.5 15 4.5C22.2579 4.5 28 9.49705 28 15.5Z" stroke="#ED0004"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 593 B

View File

@ -0,0 +1,18 @@
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="30" height="30" fill="#45CD7D"/>
<mask id="path-1-inside-1_4083_3261" fill="white">
<path d="M0 13H22V30H0V13Z"/>
</mask>
<path d="M22 13H24V11H22V13ZM0 15H22V11H0V15ZM20 13V30H24V13H20Z" fill="black" mask="url(#path-1-inside-1_4083_3261)"/>
<rect x="2" y="15" width="2" height="15" fill="black"/>
<rect x="2" y="15" width="2" height="15" fill="black"/>
<rect x="2" y="15" width="2" height="15" fill="black"/>
<rect x="2" y="15" width="2" height="15" fill="black"/>
<rect x="2" y="15" width="2" height="15" fill="black"/>
<rect x="13" y="15" width="2" height="15" fill="black"/>
<rect x="13" y="15" width="2" height="15" fill="black"/>
<rect x="13" y="15" width="2" height="15" fill="black"/>
<rect x="13" y="15" width="2" height="15" fill="black"/>
<rect x="13" y="15" width="2" height="15" fill="black"/>
<rect width="22" height="13" fill="#AA5234"/>
</svg>

After

Width:  |  Height:  |  Size: 969 B

View File

@ -0,0 +1,23 @@
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="30" height="30" fill="#45CD7D"/>
<mask id="path-1-inside-1_4083_3372" fill="white">
<path d="M0 13H22V30H0V13Z"/>
</mask>
<path d="M22 13H24V11H22V13ZM0 15H22V11H0V15ZM20 13V30H24V13H20Z" fill="black" mask="url(#path-1-inside-1_4083_3372)"/>
<rect x="2" y="15" width="2" height="15" fill="black"/>
<rect x="2" y="15" width="2" height="15" fill="black"/>
<rect x="2" y="15" width="2" height="15" fill="black"/>
<rect x="2" y="15" width="2" height="15" fill="black"/>
<rect x="2" y="15" width="2" height="15" fill="black"/>
<rect x="13" y="15" width="2" height="15" fill="black"/>
<rect x="13" y="15" width="2" height="15" fill="black"/>
<rect x="13" y="15" width="2" height="15" fill="black"/>
<rect x="13" y="15" width="2" height="15" fill="black"/>
<rect x="13" y="15" width="2" height="15" fill="black"/>
<mask id="path-5-inside-2_4083_3372" fill="white">
<path d="M13 8H22V15H13V8Z"/>
</mask>
<path d="M13 8H22V15H13V8Z" fill="#45CD7D"/>
<path d="M13 8V6H11V8H13ZM22 8H24V6H22V8ZM13 10H22V6H13V10ZM20 8V15H24V8H20ZM15 15V8H11V15H15Z" fill="black" mask="url(#path-5-inside-2_4083_3372)"/>
<rect width="13" height="13" fill="#AA5234"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1,15 @@
<svg width="32" height="30" viewBox="0 0 32 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="1.25" width="30" height="30" fill="white"/>
<mask id="mask0_4083_3329" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="1" y="0" width="31" height="30">
<rect x="1.25" width="30" height="30" fill="white"/>
</mask>
<g mask="url(#mask0_4083_3329)">
<path d="M7 4H22V30" stroke="black" stroke-width="2"/>
<path d="M-9 26H6V-1.19209e-07" stroke="black" stroke-width="2"/>
<rect x="24" y="3" width="8" height="1" fill="#ED0004"/>
<rect x="8" y="26" width="24" height="1" fill="#ED0004"/>
<rect x="26.5" y="7" width="1" height="16" fill="black"/>
<path d="M24.5 9L27 6.5L29.5 9" stroke="black"/>
<path d="M24.5 20.5L27 23L29.5 20.5" stroke="black"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 766 B

View File

@ -0,0 +1,34 @@
<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_4049_783)">
<rect width="64" height="64" fill="#313131"/>
<rect width="64" height="1" fill="white"/>
<rect y="63" width="34" height="1" fill="white"/>
<rect x="34" y="37" width="30" height="1" fill="white"/>
<rect x="33" y="37" width="1" height="26" fill="white"/>
<rect x="33" y="37" width="1" height="26" fill="white"/>
<rect y="1" width="1" height="63" fill="white"/>
<rect y="1" width="1" height="63" fill="white"/>
<rect x="63" y="1" width="1" height="37" fill="white"/>
<rect x="63" y="1" width="1" height="37" fill="white"/>
<rect x="5" y="5" width="54" height="1" fill="#818181"/>
<rect x="5" y="58" width="24" height="1" fill="#818181"/>
<rect x="28" y="32" width="31" height="1" fill="#818181"/>
<rect x="28" y="33" width="1" height="26" fill="#818181"/>
<rect x="28" y="33" width="1" height="26" fill="#818181"/>
<rect x="5" y="5" width="1" height="54" fill="#818181"/>
<rect x="5" y="5" width="1" height="54" fill="#818181"/>
<rect x="58" y="5" width="1" height="28" fill="#818181"/>
<rect x="58" y="5" width="1" height="28" fill="#818181"/>
<rect x="18" y="18" width="1" height="25" fill="white"/>
<path d="M64 0.5L43 18.5L63.5 37" stroke="white"/>
<path d="M33 63.5L18 42.5L1 63.5" stroke="white"/>
<rect x="19" y="18" width="24" height="1" fill="white"/>
<path d="M1 1L18.5 20" stroke="white"/>
<path d="M19 19L34 38" stroke="white"/>
</g>
<defs>
<clipPath id="clip0_4049_783">
<rect width="64" height="64" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1,31 @@
<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_4049_808)">
<rect width="64" height="64" fill="#313131"/>
<rect width="64" height="1" fill="white"/>
<rect y="63" width="34" height="1" fill="white"/>
<rect x="34" y="37" width="30" height="1" fill="white"/>
<rect x="33" y="37" width="1" height="26" fill="white"/>
<rect x="33" y="37" width="1" height="26" fill="white"/>
<rect y="1" width="1" height="63" fill="white"/>
<rect y="1" width="1" height="63" fill="white"/>
<rect x="63" y="1" width="1" height="37" fill="white"/>
<rect x="63" y="1" width="1" height="37" fill="white"/>
<rect x="5" y="5" width="54" height="1" fill="#818181"/>
<rect x="5" y="58" width="24" height="1" fill="#818181"/>
<rect x="28" y="32" width="31" height="1" fill="#818181"/>
<rect x="28" y="33" width="1" height="26" fill="#818181"/>
<rect x="28" y="33" width="1" height="26" fill="#818181"/>
<rect x="5" y="5" width="1" height="54" fill="#818181"/>
<rect x="5" y="5" width="1" height="54" fill="#818181"/>
<rect x="58" y="5" width="1" height="28" fill="#818181"/>
<rect x="58" y="5" width="1" height="28" fill="#818181"/>
<rect x="28" y="1" width="1" height="31" fill="white"/>
<rect x="17.5" y="32.5" width="16" height="31" stroke="white"/>
<rect x="18" y="37" width="15" height="1" fill="white"/>
</g>
<defs>
<clipPath id="clip0_4049_808">
<rect width="64" height="64" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,31 @@
<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_4049_830)">
<rect width="64" height="64" fill="#313131"/>
<rect width="64" height="1" fill="white"/>
<rect y="63" width="34" height="1" fill="white"/>
<rect x="34" y="37" width="30" height="1" fill="white"/>
<rect x="33" y="37" width="1" height="26" fill="white"/>
<rect x="33" y="37" width="1" height="26" fill="white"/>
<rect y="1" width="1" height="63" fill="white"/>
<rect y="1" width="1" height="63" fill="white"/>
<rect x="63" y="1" width="1" height="37" fill="white"/>
<rect x="63" y="1" width="1" height="37" fill="white"/>
<rect x="5" y="5" width="54" height="1" fill="#818181"/>
<rect x="5" y="58" width="24" height="1" fill="#818181"/>
<rect x="28" y="32" width="31" height="1" fill="#818181"/>
<rect x="28" y="33" width="1" height="26" fill="#818181"/>
<rect x="28" y="33" width="1" height="26" fill="#818181"/>
<rect x="5" y="5" width="1" height="54" fill="#818181"/>
<rect x="5" y="5" width="1" height="54" fill="#818181"/>
<rect x="58" y="5" width="1" height="28" fill="#818181"/>
<rect x="58" y="5" width="1" height="28" fill="#818181"/>
<rect x="28.5" y="16.5" width="35" height="21" stroke="white"/>
<rect x="1" y="32" width="32" height="1" fill="white"/>
<rect x="33" y="17" width="1" height="20" fill="white"/>
</g>
<defs>
<clipPath id="clip0_4049_830">
<rect width="64" height="64" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,30 @@
<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_4049_852)">
<rect width="64" height="64" fill="#313131"/>
<rect width="64" height="1" fill="white"/>
<rect y="63" width="34" height="1" fill="white"/>
<rect x="34" y="37" width="30" height="1" fill="white"/>
<rect x="33" y="37" width="1" height="26" fill="white"/>
<rect x="33" y="37" width="1" height="26" fill="white"/>
<rect y="1" width="1" height="63" fill="white"/>
<rect y="1" width="1" height="63" fill="white"/>
<rect x="63" y="1" width="1" height="37" fill="white"/>
<rect x="63" y="1" width="1" height="37" fill="white"/>
<rect x="5" y="5" width="54" height="1" fill="#818181"/>
<rect x="5" y="58" width="24" height="1" fill="#818181"/>
<rect x="28" y="32" width="31" height="1" fill="#818181"/>
<rect x="28" y="33" width="1" height="26" fill="#818181"/>
<rect x="28" y="33" width="1" height="26" fill="#818181"/>
<rect x="5" y="5" width="1" height="54" fill="#818181"/>
<rect x="5" y="5" width="1" height="54" fill="#818181"/>
<rect x="58" y="5" width="1" height="28" fill="#818181"/>
<rect x="58" y="5" width="1" height="28" fill="#818181"/>
<rect x="58" y="1" width="5" height="36" fill="white"/>
<path d="M51.5303 19.5303C51.8232 19.2374 51.8232 18.7626 51.5303 18.4697L46.7574 13.6967C46.4645 13.4038 45.9896 13.4038 45.6967 13.6967C45.4038 13.9896 45.4038 14.4645 45.6967 14.7574L49.9393 19L45.6967 23.2426C45.4038 23.5355 45.4038 24.0104 45.6967 24.3033C45.9896 24.5962 46.4645 24.5962 46.7574 24.3033L51.5303 19.5303ZM40 19.75H51V18.25H40V19.75Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_4049_852">
<rect width="64" height="64" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -0,0 +1,29 @@
<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_4049_874)">
<rect width="64" height="64" fill="#313131"/>
<rect width="44" height="1" transform="matrix(-1 0 0 1 64 0)" fill="white"/>
<rect width="34" height="1" transform="matrix(-1 0 0 1 64 63)" fill="white"/>
<rect width="10" height="1" transform="matrix(-1 0 0 1 30 37)" fill="white"/>
<rect width="1" height="26" transform="matrix(-1 0 0 1 31 37)" fill="white"/>
<rect width="1" height="26" transform="matrix(-1 0 0 1 31 37)" fill="white"/>
<rect width="1" height="63" transform="matrix(-1 0 0 1 64 1)" fill="white"/>
<rect width="1" height="63" transform="matrix(-1 0 0 1 64 1)" fill="white"/>
<rect width="1" height="37" transform="matrix(-1 0 0 1 21 1)" fill="white"/>
<rect width="1" height="37" transform="matrix(-1 0 0 1 21 1)" fill="white"/>
<rect width="34" height="1" transform="matrix(-1 0 0 1 59 5)" fill="#818181"/>
<rect width="24" height="1" transform="matrix(-1 0 0 1 59 58)" fill="#818181"/>
<rect width="11" height="1" transform="matrix(-1 0 0 1 36 32)" fill="#818181"/>
<rect width="1" height="26" transform="matrix(-1 0 0 1 36 33)" fill="#818181"/>
<rect width="1" height="26" transform="matrix(-1 0 0 1 36 33)" fill="#818181"/>
<rect width="1" height="54" transform="matrix(-1 0 0 1 59 5)" fill="#818181"/>
<rect width="1" height="54" transform="matrix(-1 0 0 1 59 5)" fill="#818181"/>
<rect width="1" height="28" transform="matrix(-1 0 0 1 26 5)" fill="#818181"/>
<rect width="1" height="28" transform="matrix(-1 0 0 1 26 5)" fill="#818181"/>
<path d="M4.46967 32.5303C4.17678 32.2374 4.17678 31.7626 4.46967 31.4697L9.24264 26.6967C9.53553 26.4038 10.0104 26.4038 10.3033 26.6967C10.5962 26.9896 10.5962 27.4645 10.3033 27.7574L6.06066 32L10.3033 36.2426C10.5962 36.5355 10.5962 37.0104 10.3033 37.3033C10.0104 37.5962 9.53553 37.5962 9.24264 37.3033L4.46967 32.5303ZM16 32.75H5V31.25H16V32.75Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_4049_874">
<rect width="64" height="64" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -0,0 +1,29 @@
<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_4049_894)">
<rect width="64" height="64" fill="#313131"/>
<rect width="44" height="1" transform="matrix(1 0 0 -1 0 64)" fill="white"/>
<rect width="34" height="1" transform="matrix(1 0 0 -1 0 1)" fill="white"/>
<rect width="10" height="1" transform="matrix(1 0 0 -1 34 27)" fill="white"/>
<rect width="1" height="26" transform="matrix(1 0 0 -1 33 27)" fill="white"/>
<rect width="1" height="26" transform="matrix(1 0 0 -1 33 27)" fill="white"/>
<rect width="1" height="63" transform="matrix(1 0 0 -1 0 63)" fill="white"/>
<rect width="1" height="63" transform="matrix(1 0 0 -1 0 63)" fill="white"/>
<rect width="1" height="37" transform="matrix(1 0 0 -1 43 63)" fill="white"/>
<rect width="1" height="37" transform="matrix(1 0 0 -1 43 63)" fill="white"/>
<rect width="34" height="1" transform="matrix(1 0 0 -1 5 59)" fill="#818181"/>
<rect width="24" height="1" transform="matrix(1 0 0 -1 5 6)" fill="#818181"/>
<rect width="11" height="1" transform="matrix(1 0 0 -1 28 32)" fill="#818181"/>
<rect width="1" height="26" transform="matrix(1 0 0 -1 28 31)" fill="#818181"/>
<rect width="1" height="26" transform="matrix(1 0 0 -1 28 31)" fill="#818181"/>
<rect width="1" height="54" transform="matrix(1 0 0 -1 5 59)" fill="#818181"/>
<rect width="1" height="54" transform="matrix(1 0 0 -1 5 59)" fill="#818181"/>
<rect width="1" height="28" transform="matrix(1 0 0 -1 38 59)" fill="#818181"/>
<rect width="1" height="28" transform="matrix(1 0 0 -1 38 59)" fill="#818181"/>
<path d="M59.5303 32.5303C59.8232 32.2374 59.8232 31.7626 59.5303 31.4697L54.7574 26.6967C54.4645 26.4038 53.9896 26.4038 53.6967 26.6967C53.4038 26.9896 53.4038 27.4645 53.6967 27.7574L57.9393 32L53.6967 36.2426C53.4038 36.5355 53.4038 37.0104 53.6967 37.3033C53.9896 37.5962 54.4645 37.5962 54.7574 37.3033L59.5303 32.5303ZM48 32.75H59V31.25H48V32.75Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_4049_894">
<rect width="64" height="64" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -0,0 +1,29 @@
<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_4049_914)">
<rect width="64" height="64" fill="#313131"/>
<rect width="44" height="1" transform="matrix(0 1 1 0 0 0)" fill="white"/>
<rect width="34" height="1" transform="matrix(0 1 1 0 63 0)" fill="white"/>
<rect width="10" height="1" transform="matrix(0 1 1 0 37 34)" fill="white"/>
<rect width="1" height="26" transform="matrix(0 1 1 0 37 33)" fill="white"/>
<rect width="1" height="26" transform="matrix(0 1 1 0 37 33)" fill="white"/>
<rect width="1" height="63" transform="matrix(0 1 1 0 1 0)" fill="white"/>
<rect width="1" height="63" transform="matrix(0 1 1 0 1 0)" fill="white"/>
<rect width="1" height="37" transform="matrix(0 1 1 0 1 43)" fill="white"/>
<rect width="1" height="37" transform="matrix(0 1 1 0 1 43)" fill="white"/>
<rect width="34" height="1" transform="matrix(0 1 1 0 5 5)" fill="#818181"/>
<rect width="24" height="1" transform="matrix(0 1 1 0 58 5)" fill="#818181"/>
<rect width="11" height="1" transform="matrix(0 1 1 0 32 28)" fill="#818181"/>
<rect width="1" height="26" transform="matrix(0 1 1 0 33 28)" fill="#818181"/>
<rect width="1" height="26" transform="matrix(0 1 1 0 33 28)" fill="#818181"/>
<rect width="1" height="54" transform="matrix(0 1 1 0 5 5)" fill="#818181"/>
<rect width="1" height="54" transform="matrix(0 1 1 0 5 5)" fill="#818181"/>
<rect width="1" height="28" transform="matrix(0 1 1 0 5 38)" fill="#818181"/>
<rect width="1" height="28" transform="matrix(0 1 1 0 5 38)" fill="#818181"/>
<path d="M33.0303 59.0303C32.7374 59.3232 32.2626 59.3232 31.9697 59.0303L27.1967 54.2574C26.9038 53.9645 26.9038 53.4896 27.1967 53.1967C27.4896 52.9038 27.9645 52.9038 28.2574 53.1967L32.5 57.4393L36.7426 53.1967C37.0355 52.9038 37.5104 52.9038 37.8033 53.1967C38.0962 53.4896 38.0962 53.9645 37.8033 54.2574L33.0303 59.0303ZM33.25 47.5V58.5H31.75V47.5H33.25Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_4049_914">
<rect width="64" height="64" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -0,0 +1,29 @@
<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_4049_934)">
<rect width="64" height="64" fill="#313131"/>
<rect width="44" height="1" transform="matrix(0 -1 -1 0 64 64)" fill="white"/>
<rect width="34" height="1" transform="matrix(0 -1 -1 0 1 64)" fill="white"/>
<rect width="10" height="1" transform="matrix(0 -1 -1 0 27 30)" fill="white"/>
<rect width="1" height="26" transform="matrix(0 -1 -1 0 27 31)" fill="white"/>
<rect width="1" height="26" transform="matrix(0 -1 -1 0 27 31)" fill="white"/>
<rect width="1" height="63" transform="matrix(0 -1 -1 0 63 64)" fill="white"/>
<rect width="1" height="63" transform="matrix(0 -1 -1 0 63 64)" fill="white"/>
<rect width="1" height="37" transform="matrix(0 -1 -1 0 63 21)" fill="white"/>
<rect width="1" height="37" transform="matrix(0 -1 -1 0 63 21)" fill="white"/>
<rect width="34" height="1" transform="matrix(0 -1 -1 0 59 59)" fill="#818181"/>
<rect width="24" height="1" transform="matrix(0 -1 -1 0 6 59)" fill="#818181"/>
<rect width="11" height="1" transform="matrix(0 -1 -1 0 32 36)" fill="#818181"/>
<rect width="1" height="26" transform="matrix(0 -1 -1 0 31 36)" fill="#818181"/>
<rect width="1" height="26" transform="matrix(0 -1 -1 0 31 36)" fill="#818181"/>
<rect width="1" height="54" transform="matrix(0 -1 -1 0 59 59)" fill="#818181"/>
<rect width="1" height="54" transform="matrix(0 -1 -1 0 59 59)" fill="#818181"/>
<rect width="1" height="28" transform="matrix(0 -1 -1 0 59 26)" fill="#818181"/>
<rect width="1" height="28" transform="matrix(0 -1 -1 0 59 26)" fill="#818181"/>
<path d="M33.0303 4.96967C32.7374 4.67678 32.2626 4.67678 31.9697 4.96967L27.1967 9.74264C26.9038 10.0355 26.9038 10.5104 27.1967 10.8033C27.4896 11.0962 27.9645 11.0962 28.2574 10.8033L32.5 6.56066L36.7426 10.8033C37.0355 11.0962 37.5104 11.0962 37.8033 10.8033C38.0962 10.5104 38.0962 10.0355 37.8033 9.74264L33.0303 4.96967ZM33.25 16.5V5.5H31.75V16.5H33.25Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_4049_934">
<rect width="64" height="64" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -10,7 +10,7 @@ import QSelectBox from '@/components/common/select/QSelectBox'
import { useMessage } from '@/hooks/useMessage'
import { usePlan } from '@/hooks/usePlan'
import { useSwal } from '@/hooks/useSwal'
import { canvasState, canvasZoomState, currentMenuState, currentCanvasPlanState, verticalHorizontalModeState } from '@/store/canvasAtom'
import { canvasState, canvasZoomState, currentCanvasPlanState, currentMenuState, verticalHorizontalModeState } from '@/store/canvasAtom'
import { sessionStore } from '@/store/commonAtom'
import { outerLinePointsState } from '@/store/outerLineAtom'
import { appMessageStore, globalLocaleStore } from '@/store/localeAtom'
@ -31,7 +31,7 @@ const canvasMenus = [
]
export default function CanvasMenu(props) {
const { setShowCanvasSettingModal, showOutlineModal, setShowOutlineModal, setShowPlaceShapeModal } = props
const { setShowCanvasSettingModal, showOutlineModal, setShowOutlineModal, setShowPlaceShapeModal, setShowRoofShapeSettingModal } = props
const [menuNumber, setMenuNumber] = useState(null)
const [type, setType] = useState('')
@ -75,6 +75,7 @@ export default function CanvasMenu(props) {
const menuProps = {
setShowOutlineModal,
setShowPlaceShapeModal,
setShowRoofShapeSettingModal,
type,
}

View File

@ -14,12 +14,14 @@ import WallLineSetting from '@/components/floor-plan/modal/outerlinesetting/Wall
import PropertiesSetting from '@/components/floor-plan/modal/outerlinesetting/PropertiesSetting'
import PlacementShapeSetting from '@/components/floor-plan/modal/placementShape/PlacementShapeSetting'
import GridColorSetting from './modal/grid/GridColorSetting'
import RoofShapeSetting from '@/components/floor-plan/modal/roofShape/RoofShapeSetting'
export default function FloorPlan() {
const [showCanvasSettingModal, setShowCanvasSettingModal] = useState(false)
const [showOutlineModal, setShowOutlineModal] = useState(false)
const [showPlaceShapeModal, setShowPlaceShapeModal] = useState(false)
const [showPropertiesSettingModal, setShowPropertiesSettingModal] = useState(false)
const [showRoofShapeSettingModal, setShowRoofShapeSettingModal] = useState(false)
const globalLocaleState = useRecoilValue(globalLocaleStore)
const { get } = useAxios(globalLocaleState)
@ -47,6 +49,7 @@ export default function FloorPlan() {
showOutlineModal,
setShowOutlineModal,
setShowPlaceShapeModal,
setShowRoofShapeSettingModal,
}
useEffect(() => {
@ -106,6 +109,7 @@ export default function FloorPlan() {
{showColorPickerModal && <GridColorSetting {...gridColorProps} />}
{showPropertiesSettingModal && <PropertiesSetting {...propertiesSettingProps} />}
{showPlaceShapeModal && <PlacementShapeSetting setShowPlaceShapeModal={setShowPlaceShapeModal} />}
{showRoofShapeSettingModal && <RoofShapeSetting setShowRoofShapeSettingModal={setShowRoofShapeSettingModal} />}
</div>
</div>
</>

View File

@ -7,7 +7,7 @@ import { currentMenuState } from '@/store/canvasAtom'
import { useSetRecoilState } from 'recoil'
export default function MenuDepth01(props) {
const { setShowOutlineModal, type, setShowPlaceShapeModal } = props
const { setShowOutlineModal, type, setShowPlaceShapeModal, setShowRoofShapeSettingModal } = props
const { getMessage } = useMessage()
const [activeMenu, setActiveMenu] = useState()
const setCurrentMenu = useSetRecoilState(currentMenuState)
@ -18,6 +18,7 @@ export default function MenuDepth01(props) {
if (type === 'outline') {
setShowPlaceShapeModal(false)
setShowOutlineModal(id === 0)
setShowRoofShapeSettingModal(id === 1)
}
}

View File

@ -0,0 +1,58 @@
import { useMessage } from '@/hooks/useMessage'
import WithDraggable from '@/components/common/draggable/WithDraggable'
import Ridge from '@/components/floor-plan/modal/roofShape/type/Ridge'
import Pattern from '@/components/floor-plan/modal/roofShape/type/Pattern'
import Side from '@/components/floor-plan/modal/roofShape/type/Side'
import { useState } from 'react'
import Image from 'next/image'
import Direction from '@/components/floor-plan/modal/roofShape/type/Direction'
export default function RoofShapeSetting({ setShowRoofShapeSettingModal }) {
const { getMessage } = useMessage()
const [shapeNum, setShapeNum] = useState(1)
const shapeMenu = [
{ id: 1, name: getMessage('modal.roof.shape.setting.ridge') }, //
{ id: 2, name: getMessage('modal.roof.shape.setting.patten.a') }, // A
{ id: 3, name: getMessage('modal.roof.shape.setting.patten.b') }, // B
{ id: 4, name: getMessage('modal.roof.shape.setting.side') }, //
{ id: 5, name: getMessage('commons.west') }, //
{ id: 6, name: getMessage('commons.east') }, //
{ id: 7, name: getMessage('commons.south') }, //
{ id: 8, name: getMessage('commons.north') }, //
]
return (
<WithDraggable isShow={true} pos={{ x: 50, y: -950 }}>
<div className={`modal-pop-wrap lr`}>
<div className="modal-head">
<h1 className="title">{getMessage('modal.roof.shape.setting')}</h1>
<button className="modal-close" onClick={() => setShowRoofShapeSettingModal(false)}>
닫기
</button>
</div>
<div className="modal-body">
<div className="roof-shape-menu">
{shapeMenu.map((item) => (
<button key={item.id} className={`shape-menu-box ${shapeNum === item.id ? 'act' : ''}`} onClick={() => setShapeNum(item.id)}>
<div className="shape-box">
<Image src={`/static/images/canvas/shape_menu0${item.id}.svg`} alt="react" width={64} height={64} />
</div>
<div className="shape-title">{item.name}</div>
</button>
))}
</div>
<div className="properties-setting-wrap">
<div className="setting-tit">{getMessage('setting')}</div>
{shapeNum === 1 && <Ridge />}
{(shapeNum === 2 || shapeNum === 3) && <Pattern />}
{shapeNum === 4 && <Side />}
{(shapeNum === 5 || shapeNum === 6 || shapeNum === 7 || shapeNum === 8) && <Direction />}
</div>
<div className="grid-btn-wrap">
<button className="btn-frame modal act">{getMessage('common.setting.finish')}</button>
</div>
</div>
</div>
</WithDraggable>
)
}

View File

@ -0,0 +1,45 @@
import { useMessage } from '@/hooks/useMessage'
export default function Direction() {
const { getMessage } = useMessage()
return (
<div className="setting-box">
<div className="outline-form mb10">
<span className="mr10" style={{ width: '60px' }}>
{getMessage('slope')}
</span>
<div className="input-grid mr5" style={{ width: '100px' }}>
<input type="text" className="input-origin block" defaultValue={4} />
</div>
<span className="thin">{getMessage('size')}</span>
</div>
<div className="outline-form mb10">
<span className="mr10" style={{ width: '60px' }}>
{getMessage('eaves.offset')}
</span>
<div className="input-grid mr5" style={{ width: '100px' }}>
<input type="text" className="input-origin block" defaultValue={500} />
</div>
<span className="thin">mm</span>
</div>
<div className="outline-form mb10">
<span className="mr10" style={{ width: '60px' }}>
{getMessage('gable.offset')}
</span>
<div className="input-grid mr5" style={{ width: '100px' }}>
<input type="text" className="input-origin block" defaultValue={300} />
</div>
<span className="thin">mm</span>
</div>
<div className="outline-form">
<span className="mr10" style={{ width: '60px' }}>
{getMessage('windage.width')}
</span>
<div className="input-grid mr5" style={{ width: '100px' }}>
<input type="text" className="input-origin block" defaultValue={300} />
</div>
<span className="thin">mm</span>
</div>
</div>
)
}

View File

@ -0,0 +1,36 @@
import { useMessage } from '@/hooks/useMessage'
export default function Pattern() {
const { getMessage } = useMessage()
return (
<div className="setting-box">
<div className="outline-form mb10">
<span className="mr10" style={{ width: '60px' }}>
{getMessage('slope')}
</span>
<div className="input-grid mr5" style={{ width: '100px' }}>
<input type="text" className="input-origin block" defaultValue={4} />
</div>
<span className="thin"> {getMessage('size')}</span>
</div>
<div className="outline-form mb10">
<span className="mr10" style={{ width: '60px' }}>
{getMessage('eaves.offset')}
</span>
<div className="input-grid mr5" style={{ width: '100px' }}>
<input type="text" className="input-origin block" defaultValue={500} />
</div>
<span className="thin">mm</span>
</div>
<div className="outline-form">
<span className="mr10" style={{ width: '60px' }}>
{getMessage('gable.offset')}
</span>
<div className="input-grid mr5" style={{ width: '100px' }}>
<input type="text" className="input-origin block" defaultValue={300} />
</div>
<span className="thin">mm</span>
</div>
</div>
)
}

View File

@ -0,0 +1,27 @@
import { useMessage } from '@/hooks/useMessage'
export default function Ridge() {
const { getMessage } = useMessage()
return (
<div className="setting-box">
<div className="outline-form mb10">
<span className="mr10" style={{ width: '24px' }}>
{getMessage('slope')}
</span>
<div className="input-grid mr5" style={{ width: '100px' }}>
<input type="text" className="input-origin block" defaultValue={100} />
</div>
<span className="thin">{getMessage('size')}</span>
</div>
<div className="outline-form">
<span className="mr10" style={{ width: '24px' }}>
{getMessage('eaves.offset')}
</span>
<div className="input-grid mr5" style={{ width: '100px' }}>
<input type="text" className="input-origin block" defaultValue={100} />
</div>
<span className="thin">mm</span>
</div>
</div>
)
}

View File

@ -0,0 +1,46 @@
import { useState } from 'react'
import { useMessage } from '@/hooks/useMessage'
import Eaves from '@/components/floor-plan/modal/roofShape/type/option/Eaves'
import Gable from '@/components/floor-plan/modal/roofShape/type/option/Gable'
import HipAndGable from '@/components/floor-plan/modal/roofShape/type/option/HipAndGable'
import Wall from '@/components/floor-plan/modal/roofShape/type/option/Wall'
import Jerkinhead from '@/components/floor-plan/modal/roofShape/type/option/Jerkinhead'
import Shed from '@/components/floor-plan/modal/roofShape/type/option/Shed'
export default function Side() {
const [buttonAct, setButtonAct] = useState(1)
const { getMessage } = useMessage()
const buttonMenu = [
{ id: 1, name: getMessage('eaves') },
{ id: 2, name: getMessage('gable') },
{ id: 3, name: getMessage('wall') },
{ id: 4, name: getMessage('hipandgable') },
{ id: 5, name: getMessage('jerkinhead') },
{ id: 6, name: getMessage('shed') },
]
return (
<div className="setting-box">
<div className="discrimination-tab">
<div className="modal-btn-wrap sub">
{buttonMenu.map((item) => (
<button className={`btn-frame sub-tab ${buttonAct === item.id ? 'act' : ''}`} onClick={() => setButtonAct(item.id)}>
{item.name}
</button>
))}
</div>
</div>
<div className="discrimination-box">
{buttonAct === 1 && <Eaves />}
{buttonAct === 2 && <Gable />}
{buttonAct === 3 && <Wall />}
{buttonAct === 4 && <HipAndGable />}
{buttonAct === 5 && <Jerkinhead />}
{buttonAct === 6 && <Shed />}
</div>
<div className="grid-btn-wrap">
<button className="btn-frame sub-tab mr5">{getMessage('common.setting.rollback')}</button>
<button className="btn-frame sub-tab act">{getMessage('apply')}</button>
</div>
</div>
)
}

View File

@ -0,0 +1,27 @@
import { useMessage } from '@/hooks/useMessage'
export default function Eaves() {
const { getMessage } = useMessage()
return (
<>
<div className="outline-form mb10">
<span className="mr10" style={{ width: '24px' }}>
{getMessage('slope')}
</span>
<div className="input-grid mr5" style={{ width: '100px' }}>
<input type="text" className="input-origin block" defaultValue={4} />
</div>
<span className="thin">{getMessage('size')}</span>
</div>
<div className="outline-form">
<span className="mr10" style={{ width: '24px' }}>
{getMessage('eaves.offset')}
</span>
<div className="input-grid mr5" style={{ width: '100px' }}>
<input type="text" className="input-origin block" defaultValue={500} />
</div>
<span className="thin">mm</span>
</div>
</>
)
}

View File

@ -0,0 +1,16 @@
import { useMessage } from '@/hooks/useMessage'
export default function Gable() {
const { getMessage } = useMessage()
return (
<>
<div className="outline-form">
<span className="mr10">{getMessage('gable.offset')}</span>
<div className="input-grid mr5" style={{ width: '100px' }}>
<input type="text" className="input-origin block" defaultValue={4} />
</div>
<span className="thin">mm</span>
</div>
</>
)
}

View File

@ -0,0 +1,36 @@
import { useMessage } from '@/hooks/useMessage'
export default function HipAndGable() {
const { getMessage } = useMessage()
return (
<>
<div className="outline-form mb10">
<span className="mr10" style={{ width: '60px' }}>
{getMessage('slope')}
</span>
<div className="input-grid mr5" style={{ width: '100px' }}>
<input type="text" className="input-origin block" defaultValue={4} />
</div>
<span className="thin">{getMessage('size')}</span>
</div>
<div className="outline-form mb10">
<span className="mr10" style={{ width: '60px' }}>
{getMessage('eaves.offset')}
</span>
<div className="input-grid mr5" style={{ width: '100px' }}>
<input type="text" className="input-origin block" defaultValue={500} />
</div>
<span className="thin">mm</span>
</div>
<div className="outline-form">
<span className="mr10" style={{ width: '60px' }}>
{getMessage('gable.offset')}
</span>
<div className="input-grid mr5" style={{ width: '100px' }}>
<input type="text" className="input-origin block" defaultValue={300} />
</div>
<span className="thin">mm</span>
</div>
</>
)
}

View File

@ -0,0 +1,36 @@
import { useMessage } from '@/hooks/useMessage'
export default function Jerkinhead() {
const { getMessage } = useMessage()
return (
<>
<div className="outline-form mb10">
<span className="mr10" style={{ width: '60px' }}>
{getMessage('gable.offset')}
</span>
<div className="input-grid mr5" style={{ width: '100px' }}>
<input type="text" className="input-origin block" defaultValue={300} />
</div>
<span className="thin">mm</span>
</div>
<div className="outline-form mb10">
<span className="mr10" style={{ width: '60px' }}>
{getMessage('jerkinhead.width')}
</span>
<div className="input-grid mr5" style={{ width: '100px' }}>
<input type="text" className="input-origin block" defaultValue={800} />
</div>
<span className="thin">mm</span>
</div>
<div className="outline-form">
<span className="mr10" style={{ width: '60px' }}>
{getMessage('jerkinhead.slope')}
</span>
<div className="input-grid mr5" style={{ width: '100px' }}>
<input type="text" className="input-origin block" defaultValue={4.5} />
</div>
<span className="thin">{getMessage('size')}</span>
</div>
</>
)
}

View File

@ -0,0 +1,16 @@
import { useMessage } from '@/hooks/useMessage'
export default function Shed() {
const { getMessage } = useMessage()
return (
<>
<div className="outline-form">
<span className="mr10">{getMessage('shed.width')}</span>
<div className="input-grid mr5" style={{ width: '100px' }}>
<input type="text" className="input-origin block" defaultValue={600} />
</div>
<span className="thin">mm</span>
</div>
</>
)
}

View File

@ -0,0 +1,38 @@
import { useState } from 'react'
import { useMessage } from '@/hooks/useMessage'
export default function Wall() {
const [hasSleeve, setHasSleeve] = useState('0')
const { getMessage } = useMessage()
return (
<>
{hasSleeve}
<div className="eaves-keraba-table">
<div className="eaves-keraba-item">
<div className="eaves-keraba-th">
<div className="d-check-radio pop">
<input type="radio" name="radio01" checked={hasSleeve === '0'} id="ra01" value={'0'} onChange={(e) => setHasSleeve(e.target.value)} />
<label htmlFor="ra01">{getMessage('has.not.sleeve')}</label>
</div>
</div>
</div>
<div className="eaves-keraba-item">
<div className="eaves-keraba-th">
<div className="d-check-radio pop">
<input type="radio" name="radio01" checked={hasSleeve !== '0'} id="ra02" value={'1'} onChange={(e) => setHasSleeve(e.target.value)} />
<label htmlFor="ra02">{getMessage('has.sleeve')}</label>
</div>
</div>
<div className="eaves-keraba-td">
<div className="outline-form">
<div className="input-grid mr5" style={{ width: '100px' }}>
<input type="text" className="input-origin block" defaultValue={300} readOnly={hasSleeve === '0'} />
</div>
<span className="thin">mm</span>
</div>
</div>
</div>
</div>
</>
)
}

View File

@ -31,6 +31,11 @@
"modal.placement.initial.setting.roof.material": "屋根材の選択(単位:mm)",
"modal.placement.initial.setting.roof.material.info": "対応可能な屋根材や足場は限定されますので、必ず事前マニュアルをご確認ください。",
"modal.placement.initial.setting.rafter": "垂木の間隔",
"modal.roof.shape.setting": "屋根形状の設定",
"modal.roof.shape.setting.ridge": "龍丸屋根",
"modal.roof.shape.setting.patten.a": "Aパターン",
"modal.roof.shape.setting.patten.b": "Bパターン",
"modal.roof.shape.setting.side": "別に設定",
"plan.menu.roof.cover": "지붕덮개",
"plan.menu.roof.cover.outline.drawing": "外壁線を描",
"plan.menu.roof.cover.roof.shape.setting": "屋根形状設定",
@ -49,6 +54,7 @@
"modal.cover.outline.fix": "外壁線確定",
"modal.cover.outline.rollback": "一変戦に戻る",
"modal.cover.outline.finish": "設定完了",
"common.setting.finish": "設定完了",
"modal.cover.outline.remove": "外壁の削除",
"modal.cover.outline.select.move": "外壁の選択、移動",
"plan.menu.roof.cover.roof.setting": "屋根形状設定",
@ -226,6 +232,10 @@
"common.message.password.init.success": "パスワード [{0}] に初期化されました。",
"common.message.no.edit.save": "この文書は変更できません。",
"common.require": "필수",
"commons.west": "立つ",
"commons.east": "ドン",
"commons.south": "M",
"commons.north": "北",
"site.name": "Q.CAST III",
"site.sub_name": "태양광 발전 시스템 도면관리 사이트",
"login": "로그인",
@ -284,5 +294,22 @@
"stuff.gridHeader.dispCompanyName": "견적처",
"stuff.gridHeader.receiveUser": "담당자",
"stuff.gridHeader.specDate": "사양확인",
"stuff.gridHeader.createDatetime": "등록일"
"stuff.gridHeader.createDatetime": "등록일",
"slope": "傾斜",
"eaves.offset": "軒の",
"gable.offset": "ケラバ出幅",
"size": "寸",
"eaves": "軒",
"gable": "ケラバ",
"wall": "壁",
"hipandgable": "八作屋根",
"jerkinhead": "半折",
"shed": "片側の流れ",
"apply": "適用",
"has.sleeve": "袖あり",
"has.not.sleeve": "袖なし",
"jerkinhead.width": "半折先幅",
"jerkinhead.slope": "半折先傾斜",
"shed.width": "片流幅",
"windage.width": "漂流の出幅"
}

View File

@ -31,6 +31,11 @@
"modal.placement.initial.setting.roof.material": "지붕재 선택(단위: mm)",
"modal.placement.initial.setting.roof.material.info": "대응 가능한 지붕재 및 발판은 한정되므로 반드시 사전 매뉴얼을 확인하십시오.",
"modal.placement.initial.setting.rafter": "서까래",
"modal.roof.shape.setting": "지붕형상 설정",
"modal.roof.shape.setting.ridge": "용마루",
"modal.roof.shape.setting.patten.a": "A 패턴",
"modal.roof.shape.setting.patten.b": "A 패턴",
"modal.roof.shape.setting.side": "변별로 설정",
"plan.menu.roof.cover": "지붕덮개",
"plan.menu.roof.cover.outline.drawing": "외벽선 그리기",
"plan.menu.roof.cover.roof.shape.setting": "지붕형상 설정",
@ -53,6 +58,8 @@
"modal.cover.outline.fix": "외벽선 확정",
"modal.cover.outline.rollback": "일변전으로 돌아가기",
"modal.cover.outline.finish": "설정완료",
"common.setting.finish": "설정완료",
"common.setting.rollback": "일변전으로 돌아가기",
"modal.cover.outline.remove": "외벽 제거",
"modal.cover.outline.select.move": "외벽 선택, 이동",
"plan.menu.placement.surface": "배치면",
@ -227,6 +234,10 @@
"common.message.password.init.success": "비밀번호 [{0}]로 초기화 되었습니다.",
"common.message.no.edit.save": "This document cannot be changed.",
"common.require": "필수",
"commons.west": "서",
"commons.east": "동",
"commons.south": "남",
"commons.north": "북",
"site.name": "Q.CAST III",
"site.sub_name": "태양광 발전 시스템 도면관리 사이트",
"login": "로그인",
@ -285,5 +296,22 @@
"stuff.gridHeader.dispCompanyName": "견적처",
"stuff.gridHeader.receiveUser": "담당자",
"stuff.gridHeader.specDate": "사양확인",
"stuff.gridHeader.createDatetime": "등록일"
"stuff.gridHeader.createDatetime": "등록일",
"slope": "경사",
"eaves.offset": "처마 출폭",
"gable.offset": "케라바 출폭",
"size": "치수",
"eaves": "처마",
"gable": "케라바",
"wall": "벽",
"hipandgable": "팔작지붕",
"jerkinhead": "반절처",
"shed": "한쪽흐름",
"apply": "적용",
"has.sleeve": "소매 있음",
"has.not.sleeve": "소매 없음",
"jerkinhead.width": "반절처 폭",
"jerkinhead.slope": "반절처 경사",
"shed.width": "한쪽흐름 폭",
"windage.width": "편류의 출폭"
}

View File

@ -29,7 +29,6 @@ $alert-color: #101010;
.modal-pop-wrap {
position: fixed;
width: 100%;
min-width: 300px;
height: -webkit-fit-content;
height: -moz-fit-content;
height: fit-content;
@ -37,7 +36,26 @@ $alert-color: #101010;
border-radius: 4px;
background-color: #272727;
z-index: 9999999;
overflow: hidden;
&.xxxm {
width: 230px;
}
&.xxm {
width: 270px;
}
&.xm {
width: 300px;
}
&.ssm {
width: 380px;
}
&.sm {
width: 580px;
}
&.r {
width: 400px;
@ -47,16 +65,12 @@ $alert-color: #101010;
width: 440px;
}
&.sm {
width: 580px;
&.ml {
width: 530px;
}
&.ssm {
width: 380px;
}
&.xm {
width: 300px;
&.l-2 {
width: 640px;
}
&.l {
@ -112,7 +126,7 @@ $alert-color: #101010;
align-items: center;
padding: 10px 24px;
background-color: #000;
// overflow: hidden;
h1.title {
font-size: 13px;
color: $pop-color;
@ -121,8 +135,8 @@ $alert-color: #101010;
.modal-close {
margin-left: auto;
color: $pop-color;
text-indent: -999999999px;
color: transparent;
font-size: 0;
width: 10px;
height: 10px;
background: url(../../public/static/images/canvas/modal_close.svg) no-repeat center;
@ -146,6 +160,8 @@ $alert-color: #101010;
flex: 1 1 auto;
padding: 0;
}
margin-bottom: 14px;
}
}
@ -253,21 +269,18 @@ $alert-color: #101010;
align-items: center;
gap: 15px;
padding-bottom: 15px;
border-bottom: 1px solid #3C3C3C;
}
.grid-option-wrap {
padding: 15px 0;
border-bottom: 1px solid #3C3C3C;
.grid-option-box {
display: flex;
align-items: center;
background-color: #3D3D3D;
background-color: transparent;
border: 1px solid #3D3D3D;
border-radius: 2px;
padding: 10px;
padding: 15px 10px;
gap: 20px;
margin-bottom: 5px;
margin-bottom: 10px;
.grid-input-form {
display: flex;
@ -301,6 +314,29 @@ $alert-color: #101010;
.sort-select {
width: 100%;
background-color: #313131;
min-width: auto;
font-size: 12px;
border: none;
p {
font-size: 12px;
}
> ul {
border: none;
}
}
&.right {
p {
text-align: right;
}
ul {
li {
justify-content: flex-end;
}
}
}
}
@ -309,7 +345,7 @@ $alert-color: #101010;
text-align: right;
button {
padding: 0 20px;
padding: 0 10px;
}
}
@ -319,7 +355,7 @@ $alert-color: #101010;
color: $pop-color;
font-weight: $pop-normal-weight;
padding-bottom: 15px;
border-bottom: 1px solid #3C3C3C;
}
.grid-direction {
@ -501,7 +537,6 @@ $alert-color: #101010;
.outline-wrap {
padding: 24px 0;
border-top: 1px solid #424242;
border-bottom: 1px solid #424242;
.outline-inner {
display: flex;
@ -513,15 +548,19 @@ $alert-color: #101010;
}
.outline-form {
width: 50%;
// width: 50%;
margin-right: 15px;
}
}
&:last-child {
border-bottom: 1px solid #424242;
}
}
.outline-form {
display: flex;
align-items: center;
margin-right: 15px;
span {
width: 60px;
@ -532,7 +571,9 @@ $alert-color: #101010;
margin-right: 10px;
&.thin {
font-weight: & $pop-normal-weight;
width: auto;
font-weight: $pop-normal-weight;
margin-right: 0;
}
}
@ -591,18 +632,18 @@ $alert-color: #101010;
margin-bottom: 14px;
}
.setting-tit {
font-size: 13px;
color: $pop-color;
font-weight: $pop-bold-weight;
margin-bottom: 10px;
}
.properties-setting-wrap {
&.outer {
margin-top: 24px;
}
.setting-tit {
font-size: 13px;
color: $pop-color;
font-weight: $pop-bold-weight;
margin-bottom: 10px;
}
.setting-btn-wrap {
display: flex;
align-items: center;
@ -692,9 +733,212 @@ $alert-color: #101010;
border-bottom: 1px solid #424242;
}
.padding-form {
padding-left: 23px;
}
.discrimination-box {
padding: 16px 12px;
border: 1px solid #3D3D3D;
border-radius: 2px;
margin-top: 14px;
}
.modal-bottom-border-bx {
margin-top: 24px;
padding-bottom: 14px;
border-bottom: 1px solid #424242;
}
// 처마케라바 변경
.eaves-keraba-table {
display: table;
border-collapse: collapse;
.eaves-keraba-item {
display: table-row;
.eaves-keraba-th,
.eaves-keraba-td {
font-size: $pop-normal-size;
color: $pop-color;
font-weight: $pop-normal-weight;
display: table-cell;
vertical-align: middle;
padding-bottom: 14px;
}
.eaves-keraba-td {
padding-left: 15px;
}
.eaves-keraba-ico {
display: flex;
align-items: center;
justify-content: center;
padding: 5px;
background-color: #3D3D3D;
border: 1px solid #3D3D3D;
border-radius: 2px;
&.act {
border: 1px solid #ED0004;
}
}
&:last-child {
.eaves-keraba-th,
.eaves-keraba-td {
padding-bottom: 0;
}
}
}
}
.guide {
font-size: $pop-normal-size;
font-weight: $pop-normal-weight;
color: $pop-color;
margin-bottom: 24px;
&.sm {
margin-bottom: 15px;
}
}
// 지붕면 할당
.allocation-select-wrap {
display: flex;
align-items: center;
padding-bottom: 14px;
border-bottom: 1px solid #424242;
margin-bottom: 14px;
span {
font-size: $pop-normal-size;
color: $pop-color;
font-weight: $pop-bold-weight;
margin-right: 10px;
}
.allocation-edit {
display: flex;
align-items: center;
height: 30px;
padding: 0 10px;
margin-left: 5px;
font-size: $pop-normal-size;
color: $pop-color;
font-weight: $pop-normal-weight;
border: 1px solid #484848;
background-color: #323234;
i {
display: block;
width: 12px;
height: 12px;
margin-right: 5px;
background: url(../../public/static/images/canvas/allocation_edit.svg) no-repeat center;
background-size: cover;
}
}
}
.block-box {
display: flex;
align-items: center;
gap: 10px;
margin-bottom: 10px;
.flex-ment {
gap: 10px;
.dec {
text-decoration: underline;
}
.delete {
display: block;
width: 15px;
height: 15px;
background: url(../../public/static/images/canvas/allocation_delete.svg) no-repeat center;
background-size: cover;
}
}
&:last-child {
margin-bottom: 0;
}
}
.icon-btn-wrap {
flex: 1;
display: flex;
align-items: center;
gap: 5px;
button {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 30px;
font-size: $pop-normal-size;
font-weight: $pop-normal-weight;
color: $pop-color;
border: 1px solid #646464;
border-radius: 2px;
padding: 0 10px;
transition: all .15s ease-in-out;
i {
height: 15px;
display: block;
margin-left: 10px;
background-repeat: no-repeat;
background-position: center;
background-size: cover;
transition: all .15s ease-in-out;
&.allocation01 {
background-image: url(../../public/static/images/canvas/allocation_icon01_white.svg);
width: 15px;
}
&.allocation02 {
background-image: url(../../public/static/images/canvas/allocation_icon02_white.svg);
width: 18px;
}
}
&.act,
&:hover {
color: #101010;
border: 1px solid #101010;
background-color: #fff;
i {
&.allocation01 {
background-image: url(../../public/static/images/canvas/allocation_icon01_black.svg);
}
&.allocation02 {
background-image: url(../../public/static/images/canvas/allocation_icon02_black.svg);
}
}
}
}
}
// 경사설정
.slope-wrap {
padding-bottom: 24px;
border-bottom: 1px solid #424242;
}
// 면형상 배치
.roof-shape-menu {
&.plane {
grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
grid-template-rows: 1fr 1fr 1fr;
}
}

File diff suppressed because it is too large Load Diff