Enterprise: DataGrid: ๋นˆ ํ•„๋“œ๋ฅผ ํด๋ฆญํ•˜๋ฉด ์ž๋ฆฌ ํ‘œ์‹œ์ž๊ฐ€ NaN.000์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2021๋…„ 07์›” 06์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: infor-design/enterprise

๋ฒ„๊ทธ ์„ค๋ช…
DataGrid: Palaceholder๋Š” ๋นˆ ํ•„๋“œ๋ฅผ ํด๋ฆญํ•œ ํ›„ NaN.000์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

์žฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด

๋™์ž‘์„ ์žฌํ˜„ํ•˜๋Š” ๋‹จ๊ณ„:

  1. https://4530-beta0-enterprise.demo.design.infor.com/components/datagrid/example-placeholder.html๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  2. ํ–‰ ID 1 - ์ž๋ฆฌ ํ‘œ์‹œ์ž๊ฐ€ ์žˆ๋Š” ๊ฐ€๊ฒฉ ์—ด์—์„œ ํ•„๋“œ ๋‚ด๋ถ€๋ฅผ ํด๋ฆญํ•˜๊ณ  ์™ธ๋ถ€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค(์˜ค๋ฅ˜ ์ฐธ์กฐ).
  3. ํ–‰ ID 1 - ์ž‘์—… ์—ด์—์„œ ๋“œ๋กญ๋‹ค์šด ํ•„๋“œ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์—ฝ๋‹ˆ๋‹ค.
  4. ๊ณต๋ฐฑ ์„ ํƒ
  5. Enter ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์‹œ ์—ด๊ธฐ
  6. ๋ณด๋ฅ˜ ์„ ํƒ(์˜ค๋ฅ˜ ์ฐธ์กฐ)

์˜ˆ์ƒ๋˜๋Š” ํ–‰๋™
์ž๋ฆฌ ํ‘œ์‹œ์ž๊ฐ€ ํ‘œ์‹œ๋˜์–ด์•ผ ํ•จ

๋ฒ„์ „
4.530 - ๋ฒ ํƒ€ - IDS

์Šคํฌ๋ฆฐ์ƒท
image

ํ”Œ๋žซํผ
๋ชจ๋“  ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ € ๋ฐ OS

์ถ”๊ฐ€ ์ปจํ…์ŠคํŠธ
ํ•ด๋‹น ์‚ฌํ•ญ ์—†์Œ

[2] good first issue type

๋ชจ๋“  3 ๋Œ“๊ธ€

@ Jah25 ์•„๋งˆ๋„ DataGrid๊ฐ€ ์•ฝ๊ฐ„ ๋ฏธ์ณค๊ธฐ ๋•Œ๋ฌธ์— ์˜ฌ๋ฐ”๋ฅธ ์žฅ์†Œ๋ฅผ ๊ฐ€๋ฆฌ์ผœ ์ฃผ์–ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฌธ์ œ๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํฌ๋งทํ„ฐ: ์ž๋ฆฌ ํ‘œ์‹œ์ž ๋ฐ ํŽธ์ง‘๊ธฐ: ์—ฌ๊ธฐ์— ์ˆซ์ž
https://github.com/infor-design/enterprise/blob/main/app/views/components/datagrid/example-placeholder.html#L71

์ด๊ฒƒ์€ ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ œ์ด๊ธฐ ๋•Œ๋ฌธ์— ์‹œ์ž‘ํ•˜๊ธฐ๊ฐ€ ์•ฝ๊ฐ„ ๋ณต์žกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค). ํ•˜์ง€๋งŒ https://github.com/infor-design/enterprise/blob/main/src/components/datagrid/datagrid.js#L10434์— ์žˆ๋Š” ์ˆ˜์ • ์‚ฌํ•ญ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

coerveValue ํ•จ์ˆ˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์†Œ์Šค ํ˜•์‹ fx(์ด ๊ฒฝ์šฐ ์ˆซ์ž)๋กœ ๋˜๋Œ๋ฆฌ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ NaN์„ ์ œ์™ธํ•˜๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์•„๋งˆ๋„ NaN์€ ๊ณต๋ฐฑ์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

     // coerced value may be coerced to empty string, null, or 0
      if (coercedVal === undefined && Number.isNaN(value)) {
        coercedVal = value;
      }

๊ทธ ๋ผ์ธ์„ ๋”ฐ๋ผ ๋ญ”๊ฐ€. ํ•˜์ง€๋งŒ ํžŒํŠธ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ์ด ์˜ˆ์ œ๊ฐ€ ์•ฝ๊ฐ„ ์ด์ƒํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•„์ฐจ๋ ธ์œผ๋ฏ€๋กœ ์ด ๋ฌธ์ œ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ˆ˜์ •ํ•˜๊ณ  ๊ณ„์† ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

HTH

@tmcconechy Hey Tim ๋ฐฉ๊ธˆ ๋ดค์–ด์š”. ์˜ˆ, ์ฐพ๋Š” ๋ฐ ์•ฝ๊ฐ„์˜ ์ถ”์ ์ด ํ•„์š”ํ–ˆ์ง€๋งŒ ๊ฐ•์ œ ์‹คํ–‰์ด ๊ฐ•์ œํ•ด์•ผ ํ•˜๋Š” ๋ฐ์ดํ„ฐ ์œ ํ˜•์„ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด oldValue์— ๋Œ€ํ•ด ๊ฐ•์ œ ์‹คํ–‰์ด ํ™•์ธํ•˜๋Š” ๊ณณ์—์„œ ์—ฌ๊ธฐ์—์„œ ์‹คํ–‰ํ–ˆ์ง€๋งŒ ๊ฐ•์ œ ์‹คํ–‰์ด ๋ฌธ์ œ๋ผ๋Š” ๊ฒƒ๋„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค.

https://github.com/infor-design/enterprise/blob/main/src/components/datagrid/datagrid.js#L10372

๋‚ด ์ˆ˜์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค
let isWord = /[A-Za-z!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]]/ ... else if (typeof oldVal === 'number' && value && isWord.test(value) ) { newVal = Locale.parseNumber(value); // remove thousands sep , keep a number a number }

์™„๋ฒฝํ•œ ๋ณดํ˜ธ๋Š” ์•„๋‹ˆ์ง€๋งŒ ๋ช‡ ๊ฐ€์ง€ ์˜ˆ์™ธ์ ์ธ ๊ฒฝ์šฐ๋ฅผ ๋” ๋‹ค๋ฃจ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ๋˜๋Š” ์˜ˆ์ œ ์ˆ˜์ •์œผ๋กœ ๊ณ„์† ์ง„ํ–‰ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@Jah25 ์ž‘๋™ํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์‹œ๋„ํ•ด ๋ณด์ž

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰