ninegrid2 6.1384.0 → 6.1385.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -28501,46 +28501,59 @@ class nxDiv extends HTMLElement {
28501
28501
  return jsonData;
28502
28502
  };
28503
28503
 
28504
- setData = (jsonData) => {
28504
+ // [공통 로직 1] 특정 요소에 값을 쓰거나 초기화하는 핵심 함수
28505
+ #updateElement(el, value) {
28506
+ const tagName = el.tagName.toUpperCase();
28507
+ const type = el.type;
28508
+ let isChanged = false;
28509
+
28510
+ if (["INPUT", "TEXTAREA", "SELECT", "NX-EDITOR"].includes(tagName)) {
28511
+ if (type === "checkbox") {
28512
+ const t = el.getAttribute("true-value") || "Y";
28513
+ const isChecked = (String(t) === String(value));
28514
+ if (el.checked !== isChecked) isChanged = true;
28515
+ el.checked = isChecked;
28516
+ } else if (type === "radio") {
28517
+ const isChecked = (String(el.value) === String(value));
28518
+ if (el.checked !== isChecked) isChanged = true;
28519
+ el.checked = isChecked;
28520
+ } else {
28521
+ if (el.value !== value) isChanged = true;
28522
+ el.value = value;
28523
+ }
28524
+ } else {
28525
+ if (el.textContent !== value) isChanged = true;
28526
+ el.textContent = value;
28527
+ }
28528
+ return isChanged;
28529
+ }
28530
+
28531
+ // 파라미터가 있으면 해당 값으로, 없으면 전체 공백 초기화
28532
+ clearData = (jsonData = {}) => {
28533
+ this.#refreshListeners();
28505
28534
  this.#getElements().forEach(el => {
28506
- el.removeEventListener("input", this.#changeHandler);
28507
- el.addEventListener("input", this.#changeHandler);
28535
+ const key = el.name;
28536
+ if (!key) return;
28537
+ const val = (jsonData && jsonData[key] !== undefined) ? jsonData[key] : "";
28538
+ this.#updateElement(el, val);
28508
28539
  });
28540
+ this.#changed(false);
28541
+ };
28509
28542
 
28543
+ setData = (jsonData) => {
28510
28544
  if (!jsonData || typeof jsonData !== 'object') return;
28545
+ this.#refreshListeners();
28511
28546
 
28512
28547
  let bChanged = false;
28513
28548
  this.#getElements().forEach(el => {
28514
28549
  const key = el.name;
28515
- //console.log(el.tagName, key, el.name);
28516
-
28517
28550
  if (!key || !jsonData.hasOwnProperty(key)) return;
28518
28551
 
28519
- const value = jsonData[key];
28520
- const inputTags = ["INPUT", "TEXTAREA", "SELECT", "NX-EDITOR"];
28521
-
28522
- if (inputTags.includes(el.tagName)) {
28523
- if (el.type === "checkbox") {
28524
- let t = el.getAttribute("true-value") || "Y";
28525
- el.getAttribute("false-value") || "N";
28526
- const isChecked = (t === String(value));
28527
- if (el.checked !== isChecked) bChanged = true;
28528
- el.checked = isChecked;
28529
- } else if (el.type === "radio") {
28530
- const isChecked = (String(el.value) === String(value));
28531
- if (el.checked !== isChecked) bChanged = true;
28532
- // 라디오 버튼 그룹 내에서 값 일치 여부 확인
28533
- el.checked = isChecked;
28534
- } else {
28535
- if (el.value !== value) bChanged = true;
28536
- el.value = value;
28537
- }
28538
- } else {
28539
- if (el.textContent !== value) bChanged = true;
28540
- el.textContent = value;
28552
+ if (this.#updateElement(el, jsonData[key])) {
28553
+ bChanged = true;
28541
28554
  }
28542
28555
  });
28543
- if (bChanged) this.#changed(bChanged);
28556
+ if (bChanged) this.#changed(true);
28544
28557
  };
28545
28558
 
28546
28559
  initData = (jsonData) => {
@@ -28497,46 +28497,59 @@ class nxDiv extends HTMLElement {
28497
28497
  return jsonData;
28498
28498
  };
28499
28499
 
28500
- setData = (jsonData) => {
28500
+ // [공통 로직 1] 특정 요소에 값을 쓰거나 초기화하는 핵심 함수
28501
+ #updateElement(el, value) {
28502
+ const tagName = el.tagName.toUpperCase();
28503
+ const type = el.type;
28504
+ let isChanged = false;
28505
+
28506
+ if (["INPUT", "TEXTAREA", "SELECT", "NX-EDITOR"].includes(tagName)) {
28507
+ if (type === "checkbox") {
28508
+ const t = el.getAttribute("true-value") || "Y";
28509
+ const isChecked = (String(t) === String(value));
28510
+ if (el.checked !== isChecked) isChanged = true;
28511
+ el.checked = isChecked;
28512
+ } else if (type === "radio") {
28513
+ const isChecked = (String(el.value) === String(value));
28514
+ if (el.checked !== isChecked) isChanged = true;
28515
+ el.checked = isChecked;
28516
+ } else {
28517
+ if (el.value !== value) isChanged = true;
28518
+ el.value = value;
28519
+ }
28520
+ } else {
28521
+ if (el.textContent !== value) isChanged = true;
28522
+ el.textContent = value;
28523
+ }
28524
+ return isChanged;
28525
+ }
28526
+
28527
+ // 파라미터가 있으면 해당 값으로, 없으면 전체 공백 초기화
28528
+ clearData = (jsonData = {}) => {
28529
+ this.#refreshListeners();
28501
28530
  this.#getElements().forEach(el => {
28502
- el.removeEventListener("input", this.#changeHandler);
28503
- el.addEventListener("input", this.#changeHandler);
28531
+ const key = el.name;
28532
+ if (!key) return;
28533
+ const val = (jsonData && jsonData[key] !== undefined) ? jsonData[key] : "";
28534
+ this.#updateElement(el, val);
28504
28535
  });
28536
+ this.#changed(false);
28537
+ };
28505
28538
 
28539
+ setData = (jsonData) => {
28506
28540
  if (!jsonData || typeof jsonData !== 'object') return;
28541
+ this.#refreshListeners();
28507
28542
 
28508
28543
  let bChanged = false;
28509
28544
  this.#getElements().forEach(el => {
28510
28545
  const key = el.name;
28511
- //console.log(el.tagName, key, el.name);
28512
-
28513
28546
  if (!key || !jsonData.hasOwnProperty(key)) return;
28514
28547
 
28515
- const value = jsonData[key];
28516
- const inputTags = ["INPUT", "TEXTAREA", "SELECT", "NX-EDITOR"];
28517
-
28518
- if (inputTags.includes(el.tagName)) {
28519
- if (el.type === "checkbox") {
28520
- let t = el.getAttribute("true-value") || "Y";
28521
- el.getAttribute("false-value") || "N";
28522
- const isChecked = (t === String(value));
28523
- if (el.checked !== isChecked) bChanged = true;
28524
- el.checked = isChecked;
28525
- } else if (el.type === "radio") {
28526
- const isChecked = (String(el.value) === String(value));
28527
- if (el.checked !== isChecked) bChanged = true;
28528
- // 라디오 버튼 그룹 내에서 값 일치 여부 확인
28529
- el.checked = isChecked;
28530
- } else {
28531
- if (el.value !== value) bChanged = true;
28532
- el.value = value;
28533
- }
28534
- } else {
28535
- if (el.textContent !== value) bChanged = true;
28536
- el.textContent = value;
28548
+ if (this.#updateElement(el, jsonData[key])) {
28549
+ bChanged = true;
28537
28550
  }
28538
28551
  });
28539
- if (bChanged) this.#changed(bChanged);
28552
+ if (bChanged) this.#changed(true);
28540
28553
  };
28541
28554
 
28542
28555
  initData = (jsonData) => {
package/dist/nx/_nxDiv.js CHANGED
@@ -68,46 +68,59 @@ export class nxDiv extends HTMLElement {
68
68
  return jsonData;
69
69
  };
70
70
 
71
- setData = (jsonData) => {
71
+ // [공통 로직 1] 특정 요소에 값을 쓰거나 초기화하는 핵심 함수
72
+ #updateElement(el, value) {
73
+ const tagName = el.tagName.toUpperCase();
74
+ const type = el.type;
75
+ let isChanged = false;
76
+
77
+ if (["INPUT", "TEXTAREA", "SELECT", "NX-EDITOR"].includes(tagName)) {
78
+ if (type === "checkbox") {
79
+ const t = el.getAttribute("true-value") || "Y";
80
+ const isChecked = (String(t) === String(value));
81
+ if (el.checked !== isChecked) isChanged = true;
82
+ el.checked = isChecked;
83
+ } else if (type === "radio") {
84
+ const isChecked = (String(el.value) === String(value));
85
+ if (el.checked !== isChecked) isChanged = true;
86
+ el.checked = isChecked;
87
+ } else {
88
+ if (el.value !== value) isChanged = true;
89
+ el.value = value;
90
+ }
91
+ } else {
92
+ if (el.textContent !== value) isChanged = true;
93
+ el.textContent = value;
94
+ }
95
+ return isChanged;
96
+ }
97
+
98
+ // 파라미터가 있으면 해당 값으로, 없으면 전체 공백 초기화
99
+ clearData = (jsonData = {}) => {
100
+ this.#refreshListeners();
72
101
  this.#getElements().forEach(el => {
73
- el.removeEventListener("input", this.#changeHandler);
74
- el.addEventListener("input", this.#changeHandler);
102
+ const key = el.name;
103
+ if (!key) return;
104
+ const val = (jsonData && jsonData[key] !== undefined) ? jsonData[key] : "";
105
+ this.#updateElement(el, val);
75
106
  });
107
+ this.#changed(false);
108
+ };
76
109
 
110
+ setData = (jsonData) => {
77
111
  if (!jsonData || typeof jsonData !== 'object') return;
112
+ this.#refreshListeners();
78
113
 
79
114
  let bChanged = false;
80
115
  this.#getElements().forEach(el => {
81
116
  const key = el.name;
82
- //console.log(el.tagName, key, el.name);
83
-
84
117
  if (!key || !jsonData.hasOwnProperty(key)) return;
85
118
 
86
- const value = jsonData[key];
87
- const inputTags = ["INPUT", "TEXTAREA", "SELECT", "NX-EDITOR"];
88
-
89
- if (inputTags.includes(el.tagName)) {
90
- if (el.type === "checkbox") {
91
- let t = el.getAttribute("true-value") || "Y";
92
- let f = el.getAttribute("false-value") || "N";
93
- const isChecked = (t === String(value));
94
- if (el.checked !== isChecked) bChanged = true;
95
- el.checked = isChecked;
96
- } else if (el.type === "radio") {
97
- const isChecked = (String(el.value) === String(value));
98
- if (el.checked !== isChecked) bChanged = true;
99
- // 라디오 버튼 그룹 내에서 값 일치 여부 확인
100
- el.checked = isChecked;
101
- } else {
102
- if (el.value !== value) bChanged = true;
103
- el.value = value;
104
- }
105
- } else {
106
- if (el.textContent !== value) bChanged = true;
107
- el.textContent = value;
119
+ if (this.#updateElement(el, jsonData[key])) {
120
+ bChanged = true;
108
121
  }
109
122
  });
110
- if (bChanged) this.#changed(bChanged);
123
+ if (bChanged) this.#changed(true);
111
124
  };
112
125
 
113
126
  initData = (jsonData) => {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ninegrid2",
3
3
  "type": "module",
4
- "version": "6.1384.0",
4
+ "version": "6.1385.0",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "exports": {
package/src/nx/_nxDiv.js CHANGED
@@ -68,46 +68,59 @@ export class nxDiv extends HTMLElement {
68
68
  return jsonData;
69
69
  };
70
70
 
71
- setData = (jsonData) => {
71
+ // [공통 로직 1] 특정 요소에 값을 쓰거나 초기화하는 핵심 함수
72
+ #updateElement(el, value) {
73
+ const tagName = el.tagName.toUpperCase();
74
+ const type = el.type;
75
+ let isChanged = false;
76
+
77
+ if (["INPUT", "TEXTAREA", "SELECT", "NX-EDITOR"].includes(tagName)) {
78
+ if (type === "checkbox") {
79
+ const t = el.getAttribute("true-value") || "Y";
80
+ const isChecked = (String(t) === String(value));
81
+ if (el.checked !== isChecked) isChanged = true;
82
+ el.checked = isChecked;
83
+ } else if (type === "radio") {
84
+ const isChecked = (String(el.value) === String(value));
85
+ if (el.checked !== isChecked) isChanged = true;
86
+ el.checked = isChecked;
87
+ } else {
88
+ if (el.value !== value) isChanged = true;
89
+ el.value = value;
90
+ }
91
+ } else {
92
+ if (el.textContent !== value) isChanged = true;
93
+ el.textContent = value;
94
+ }
95
+ return isChanged;
96
+ }
97
+
98
+ // 파라미터가 있으면 해당 값으로, 없으면 전체 공백 초기화
99
+ clearData = (jsonData = {}) => {
100
+ this.#refreshListeners();
72
101
  this.#getElements().forEach(el => {
73
- el.removeEventListener("input", this.#changeHandler);
74
- el.addEventListener("input", this.#changeHandler);
102
+ const key = el.name;
103
+ if (!key) return;
104
+ const val = (jsonData && jsonData[key] !== undefined) ? jsonData[key] : "";
105
+ this.#updateElement(el, val);
75
106
  });
107
+ this.#changed(false);
108
+ };
76
109
 
110
+ setData = (jsonData) => {
77
111
  if (!jsonData || typeof jsonData !== 'object') return;
112
+ this.#refreshListeners();
78
113
 
79
114
  let bChanged = false;
80
115
  this.#getElements().forEach(el => {
81
116
  const key = el.name;
82
- //console.log(el.tagName, key, el.name);
83
-
84
117
  if (!key || !jsonData.hasOwnProperty(key)) return;
85
118
 
86
- const value = jsonData[key];
87
- const inputTags = ["INPUT", "TEXTAREA", "SELECT", "NX-EDITOR"];
88
-
89
- if (inputTags.includes(el.tagName)) {
90
- if (el.type === "checkbox") {
91
- let t = el.getAttribute("true-value") || "Y";
92
- let f = el.getAttribute("false-value") || "N";
93
- const isChecked = (t === String(value));
94
- if (el.checked !== isChecked) bChanged = true;
95
- el.checked = isChecked;
96
- } else if (el.type === "radio") {
97
- const isChecked = (String(el.value) === String(value));
98
- if (el.checked !== isChecked) bChanged = true;
99
- // 라디오 버튼 그룹 내에서 값 일치 여부 확인
100
- el.checked = isChecked;
101
- } else {
102
- if (el.value !== value) bChanged = true;
103
- el.value = value;
104
- }
105
- } else {
106
- if (el.textContent !== value) bChanged = true;
107
- el.textContent = value;
119
+ if (this.#updateElement(el, jsonData[key])) {
120
+ bChanged = true;
108
121
  }
109
122
  });
110
- if (bChanged) this.#changed(bChanged);
123
+ if (bChanged) this.#changed(true);
111
124
  };
112
125
 
113
126
  initData = (jsonData) => {