Programming 72

[20230107 TIL] AG-GRID ํ–‰์‚ญ์ œ(remove) ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐ + ๋ฐ์ดํ„ฐ์…‹๋„ ๋ฐ˜์˜์‹œํ‚ค๊ธฐ

https://yejinrla.tistory.com/68 [ React ] AG-GRID applyTransaction ํ–‰์ถ”๊ฐ€(add), ํ–‰์‚ญ์ œ(remove), ํ–‰์ˆ˜์ •(update) ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐ AG-GRID๋ฅผ ์ด์šฉํ•ด์„œ ๊ทธ๋ฆฌ๋“œ ํ–‰์ถ”๊ฐ€, ํ–‰์‚ญ์ œ, ํ–‰์ˆ˜์ • ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ ค๊ณ  ํ–ˆ๋‹ค. ๊ฒ€์ƒ‰์„ ํ•ด๋ณด๋‹ˆ๊นŒ ์ƒ๊ฐ๋ณด๋‹ค ์ž˜ ๋‚˜์™€์žˆ์ง€ ์•Š์•„์„œ ํฌ์ŠคํŒ…ํ•ด๋ณธ๋‹ค. import { GridApi } from 'ag-grid-community' ์ผ๋‹จ GridApi๋ฅผ import ํ•ด yejinrla.tistory.com ์˜ˆ์ „์— ์ด ๊ธ€์„ ์˜ฌ๋ฆฐ์ ์ด ์žˆ์—ˆ๋‹ค. ๋งจ ๋งˆ์ง€๋ง‰ ์ค„์— ๋ณด๋ฉด ๋ฐ์ดํ„ฐ์…‹์€ ๋ฐ˜์˜๋˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ์จ์žˆ๋‹ค. ์ƒ๊ฐํ•ด๋ณด๋ฉด ๋‹น์—ฐํ•˜๊ธด ํ•˜๋‹ค. ๋ฐ์ดํ„ฐ์…‹์€ useState๋กœ ๋”ฐ๋กœ ์„ ์–ธ๋˜๊ณ  ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ์œผ๋‹ˆ... const selectedData: ..

[20230117 TIL] AG-GRID ์›ํ•˜๋Š” ๊ทธ๋ฆฌ๋“œ ํ–‰ ์„ ํƒ๋˜๊ฒŒ ํ•˜๊ธฐ (setSelected)

* ๊ตฌ์กฐ ํ™”๋ฉด์— 2๊ฐœ์˜ ๊ทธ๋ฆฌ๋“œ๊ฐ€ ์กด์žฌ. ์™ผ์ชฝ ๊ทธ๋ฆฌ๋“œ ํ–‰์„ ํด๋ฆญํ•˜๋ฉด ์ƒ์„ธ ์ •๋ณด๊ฐ€ ์˜ค๋ฅธ์ชฝ ๊ทธ๋ฆฌ๋“œ์— ๋œธ. * ๋งŒ๋“ค๊ณ ์ž ํ–ˆ๋˜ ๊ธฐ๋Šฅ ์™ผ์ชฝ ๊ทธ๋ฆฌ๋“œ ํ–‰์„ ํด๋ฆญํ•œ ํ›„ ์ƒ์„ธ ์ •๋ณด๋ฅผ ์ˆ˜์ •์ค‘์— ์™ผ์ชฝ ๊ทธ๋ฆฌ๋“œ ๋‹ค๋ฅธ ํ–‰์„ ํด๋ฆญํ•  ๋•Œ '์ž‘์„ฑ์ค‘์ž…๋‹ˆ๋‹ค. ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ์กฐํšŒ ์ง„ํ–‰ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?' alert ์ฐฝ์ด ๋œฐ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๊ณ , ํ™•์ธ์„ ๋ˆ„๋ฅด๋ฉด ์กฐํšŒ๋ฅผ ์ง„ํ–‰ / ์ทจ์†Œ๋ฅผ ๋ˆ„๋ฅด๋ฉด ํ˜„์ƒํƒœ๋ฅผ ์œ ์ง€์‹œํ‚ค๋ ค๊ณ  ํ–ˆ๋‹ค.(return) * ๋ฌธ์ œ ๋ฐœ์ƒ return์„ ์‹œ์ผœ๋„, ๋‹ค๋ฅธ ํ–‰์„ ํด๋ฆญํ–ˆ๋˜๊ฒŒ ๊ณ„์† ๋‚จ์•„์žˆ์—ˆ๋‹ค. ์™ผ์ชฝ ๊ทธ๋ฆฌ๋“œ์—์„œ ํด๋ฆญ๋œ ํ–‰๊ณผ ์˜ค๋ฅธ์ชฝ ๊ทธ๋ฆฌ๋“œ์˜ ์ƒ์„ธ์ •๋ณด๊ฐ€ ์„œ๋กœ ๋งž์ง€ ์•Š๊ฒŒ ๋œ ๊ฒƒ. * ํ•ด๊ฒฐ ๋ฐฉ์•ˆ ๊ฐ•์ œ๋กœ ๋‹ค์‹œ ๊ธฐ์กด ํ–‰์„ ํด๋ฆญํ•˜๋„๋ก ๋งŒ๋“ค๊ธฐ๋กœ ํ–ˆ๋‹ค. ์ด๋•Œ setSelected ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. forEachNode๋Š” ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ๋‹ค ๋ณด๋Š”๋ฐ (map๊ฐ™์€ ..

[20230103 TIL] [JavaScript] hh:mm:ss ์ •๊ทœ์‹

์ •๊ทœ์‹ ํ…Œ์ŠคํŠธ ์‚ฌ์ดํŠธ : https://regexr.com/ RegExr: Learn, Build, & Test RegEx RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp). regexr.com https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test RegExp.prototype.test() - JavaScript | MDN test() ๋ฉ”์„œ๋“œ๋Š” ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์ด ์ •๊ทœ ํ‘œํ˜„์‹์„ ๋งŒ์กฑํ•˜๋Š”์ง€ ํŒ๋ณ„ํ•˜๊ณ , ๊ทธ ์—ฌ๋ถ€๋ฅผ true ๋˜๋Š” false๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. developer.mozilla.org ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•  ..

[ 20230102 TIL ] [ JavaScript ] AG-GRID ํŠน์ • ํ–‰ ์ƒ‰๊น” ๋ณ€๊ฒฝํ•˜๊ธฐ (getRowStyle)

์šฐ๋ฆฌ๋‚˜๋ผ ์ถ•์ œ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์žˆ๋Š” ๊ทธ๋ฆฌ๋“œ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•ด๋ณด์ž. ํ˜„์žฌ ์ง„ํ–‰์ค‘์ธ ์ถ•์ œ ํ–‰์„ ๋…ธ๋ž€์ƒ‰์œผ๋กœ ํ‘œ์‹œํ•ด์ฃผ๊ณ ์ž ํ•œ๋‹ค. getRowStyle : rowStyles ์ถ”๊ฐ€ํ•˜๊ณ , rowStyles์— ๊ตฌํ˜„ํ•ด์ค€๋‹ค. activeParadeList์— ์ง„ํ–‰์ค‘์ธ ์ถ•์ œ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋“ค์–ด์žˆ๊ณ , ์กฐ๊ฑด์— ๋งŒ์กฑํ•˜๋Š” ํ–‰์— ๋Œ€ํ•ด์„œ background : 'yellow' ํ•ด์ค€๋‹ค. const rowStyles = (params: any) => { if (activeParadeList.find((el) => el.paradeName === params.data.cdNm)) { return { background: 'yellow' }; } return { background: '' }; }; const gridCodeTypeProps = { ..

[ TypeScript ] AG-GRID ํŠน์ • ์…€ ์ž…๋ ฅ์‹œ ์ž…๋ ฅ ๋ฌธ์ž ์ œํ•œ (valueParser, new RegExp ์ •๊ทœ์‹)

ํŠน์ • ์‹œ๊ฐ„์ด๋ผ๋Š” ํ–‰์— ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•  ๋•Œ ์ž…๋ ฅ ๋ฌธ์ž๋ฅผ ์ œํ•œํ•  ์ˆ˜ ์žˆ๋‹ค. { headerName: '์‹œ๊ฐ„', field: 'time', editable: true, valueParser: (params: ValueParserParams) => { if (new RegExp(/[^0-9+:]/).test(params.newValue)) { dispatch({ type: SNACKBAR_OPEN, message: 'hh:mm:ss ํ˜•์‹์œผ๋กœ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.', alertSeverity: 'info' }); return params.oldValue; } return params.newValue; } }, ์ˆซ์ž์™€ : ๋ฌธ์ž๊ฐ€ ์•„๋‹ˆ๋ฉด 'hh:mm:ss ํ˜•์‹์œผ๋กœ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.' ๋ผ๋Š” ๋ฉ”์„ธ์ง€๊ฐ€ ๋œจ๋Š” ์ฝ”๋“œ์ด๋‹ค.

[ JavaScript ] Object์— ์›ํ•˜๋Š” ์†์„ฑ, ๊ฐ’ ์ถ”๊ฐ€ํ•˜๊ธฐ

const arrList2: any[] = []; for (let i = 0; i < arrList?.length; i += 1) { for (let j = 0; j < list.length; j += 1) { if (arrList[i].cdNm === list[j].cdNm) { const temp = list[j]; temp.type = arrList[i].type; arrList2.push(temp); } } } ์ž‘์—…์ค‘์ธ ์ฝ”๋“œ๋ฅผ ์กฐ๊ธˆ ๋ณ€ํ™˜ํ•ด์™”๋‹ค. arrList์™€ list์˜ cdNm์„ ๋น„๊ตํ•˜๋ฉฐ ๊ฐ™์€ cdNm์ผ๋•Œ์˜ list ๊ฐ’์„ ๋ฝ‘๊ณ , arrList์˜ type์„ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. ๊ธฐ์กด์— list object์—๋Š” type์ด๋ผ๋Š” ์†์„ฑ์ด ์—†๋Š”๋ฐ, ์ €๋ ‡๊ฒŒ temp.type = arrList[i].type ํ•ด์ฃผ๋ฉด ์•Œ..

[ apexcharts ] Mixed chart (area, column) gradient ๋”ฐ๋กœ ์„ค์ •ํ•˜๊ธฐ

https://mui.com/store/items/minimal-dashboard-free/ Minimal Free – Client & Admin Dashboard - MUI Store Free React Admin Dashboard made with MUI Core components and React. Minimal Free Minimal 6 Demo pages 50+ demo pages - โœ“ Multi-language - โœ“ Dark/Light Mode ? mui.com ์ด ์ƒ˜ํ”Œ์˜ chart ์ฒ˜๋Ÿผ column, area chart๊ฐ€ ์„ž์—ฌ ์žˆ๋Š” ๊ฒฝ์šฐ, area chart gradient ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•..! fill: { type: ['gradient', 'solid'], gradient: { sha..

[ CSS ] ํŠน์ • ๊ฐ์ฒด ๋งจ ์•ž์œผ๋กœ ๋ณด์—ฌ์ง€๊ฒŒ ํ•˜๊ธฐ ( ๋ณด์—ฌ์ง€๋Š” ์ˆœ์„œ ์ง€์ • )

https://developer.mozilla.org/ko/docs/Web/CSS/z-index z-index - CSS: Cascading Style Sheets | MDN CSS z-index ์†์„ฑ์€ ์œ„์น˜ ์ง€์ • ์š”์†Œ์™€, ๊ทธ ์ž์† ๋˜๋Š” ํ•˜์œ„ ํ”Œ๋ ‰์Šค ์•„์ดํ…œ์˜ Z์ถ• ์ˆœ์„œ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋” ํฐ z-index ๊ฐ’์„ ๊ฐ€์ง„ ์š”์†Œ๊ฐ€ ์ž‘์€ ๊ฐ’์˜ ์š”์†Œ ์œ„๋ฅผ ๋ฎ์Šต๋‹ˆ๋‹ค. developer.mozilla.org ๋ณด์—ฌ์ง€๋Š” ์ˆœ์„œ ์ง€์ •์€ zIndex๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. zIndex๊ฐ€ ํด ์ˆ˜๋ก ๋” ์•ž์— ์˜ค๊ฒŒ ๋œ๋‹ค. ๋‹จ, zIndex๊ฐ€ ๋ฐ˜์˜์ด ๋˜๋ ค๋ฉด position ์†์„ฑ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. (ex. position : 'relative' )

Programming/CSS 2022.10.21

[ React ] ๊ฐ์ฒด ๊ฐ’ ๋ณ€๊ฒฝ

https://developer-talk.tistory.com/246 [React]๊ฐ์ฒด ๋ฐฐ์—ด์—์„œ ๊ฐ’ ๋ณ€๊ฒฝ ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” React์—์„œ ๊ฐ์ฒด์˜ ๋ฐฐ์—ด์„ ๊ฐ€์ง€๋Š” state ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐ์ฒด์˜ ๋ฐฐ์—ด(objArray)์„ ๊ฐ€์ง€๋Š” state๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. state = { objArray: [ { code: "", name:.. developer-talk.tistory.com

Programming/React 2022.10.06