ninegrid2 6.1345.0 → 6.1346.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.
- package/dist/bundle.cjs.js +2 -2
- package/dist/bundle.esm.js +2 -2
- package/dist/nx/_nxDiv.js +1 -1
- package/dist/nx/nxButtons.js +2 -2
- package/package.json +1 -1
- package/src/nx/_nxDiv.js +1 -1
- package/src/nx/nxButtons.js +2 -2
- package/src/nx/_nxDiv2.js +0 -145
package/dist/bundle.cjs.js
CHANGED
|
@@ -28568,7 +28568,7 @@ class nxDiv extends HTMLElement {
|
|
|
28568
28568
|
//console.log(this.innerHTML.trim());
|
|
28569
28569
|
|
|
28570
28570
|
this.originContents = this.innerHTML.trim();
|
|
28571
|
-
this.innerHTML = ""; // 기존 내부 HTML 제거
|
|
28571
|
+
//this.innerHTML = ""; // 기존 내부 HTML 제거
|
|
28572
28572
|
|
|
28573
28573
|
// 만약 순수 nx-div로만 쓰일 경우(상속 x), 내용을 shadow에 채워줌
|
|
28574
28574
|
if (this.shadowRoot && this.tagName.toLowerCase() === 'nx-div') {
|
|
@@ -28878,7 +28878,7 @@ class nxPanel extends nxDiv {
|
|
|
28878
28878
|
|
|
28879
28879
|
customElements.define("nx-panel", nxPanel);
|
|
28880
28880
|
|
|
28881
|
-
class nxButtons extends
|
|
28881
|
+
class nxButtons extends nxDiv {
|
|
28882
28882
|
|
|
28883
28883
|
constructor() {
|
|
28884
28884
|
super();
|
package/dist/bundle.esm.js
CHANGED
|
@@ -28564,7 +28564,7 @@ class nxDiv extends HTMLElement {
|
|
|
28564
28564
|
//console.log(this.innerHTML.trim());
|
|
28565
28565
|
|
|
28566
28566
|
this.originContents = this.innerHTML.trim();
|
|
28567
|
-
this.innerHTML = ""; // 기존 내부 HTML 제거
|
|
28567
|
+
//this.innerHTML = ""; // 기존 내부 HTML 제거
|
|
28568
28568
|
|
|
28569
28569
|
// 만약 순수 nx-div로만 쓰일 경우(상속 x), 내용을 shadow에 채워줌
|
|
28570
28570
|
if (this.shadowRoot && this.tagName.toLowerCase() === 'nx-div') {
|
|
@@ -28874,7 +28874,7 @@ class nxPanel extends nxDiv {
|
|
|
28874
28874
|
|
|
28875
28875
|
customElements.define("nx-panel", nxPanel);
|
|
28876
28876
|
|
|
28877
|
-
class nxButtons extends
|
|
28877
|
+
class nxButtons extends nxDiv {
|
|
28878
28878
|
|
|
28879
28879
|
constructor() {
|
|
28880
28880
|
super();
|
package/dist/nx/_nxDiv.js
CHANGED
|
@@ -135,7 +135,7 @@ export class nxDiv extends HTMLElement {
|
|
|
135
135
|
//console.log(this.innerHTML.trim());
|
|
136
136
|
|
|
137
137
|
this.originContents = this.innerHTML.trim();
|
|
138
|
-
this.innerHTML = ""; // 기존 내부 HTML 제거
|
|
138
|
+
//this.innerHTML = ""; // 기존 내부 HTML 제거
|
|
139
139
|
|
|
140
140
|
// 만약 순수 nx-div로만 쓰일 경우(상속 x), 내용을 shadow에 채워줌
|
|
141
141
|
if (this.shadowRoot && this.tagName.toLowerCase() === 'nx-div') {
|
package/dist/nx/nxButtons.js
CHANGED
package/package.json
CHANGED
package/src/nx/_nxDiv.js
CHANGED
|
@@ -135,7 +135,7 @@ export class nxDiv extends HTMLElement {
|
|
|
135
135
|
//console.log(this.innerHTML.trim());
|
|
136
136
|
|
|
137
137
|
this.originContents = this.innerHTML.trim();
|
|
138
|
-
this.innerHTML = ""; // 기존 내부 HTML 제거
|
|
138
|
+
//this.innerHTML = ""; // 기존 내부 HTML 제거
|
|
139
139
|
|
|
140
140
|
// 만약 순수 nx-div로만 쓰일 경우(상속 x), 내용을 shadow에 채워줌
|
|
141
141
|
if (this.shadowRoot && this.tagName.toLowerCase() === 'nx-div') {
|
package/src/nx/nxButtons.js
CHANGED
package/src/nx/_nxDiv2.js
DELETED
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import ninegrid from "../index.js";
|
|
2
|
-
|
|
3
|
-
export class nxDiv2 extends HTMLElement {
|
|
4
|
-
originContents;
|
|
5
|
-
#isInitialized = false;
|
|
6
|
-
#root; // Shadow DOM 사용 여부에 따라 shadowRoot 또는 this를 가리킴
|
|
7
|
-
|
|
8
|
-
constructor() {
|
|
9
|
-
super();
|
|
10
|
-
// constructor에서는 속성을 읽을 수 없으므로 초기화만 준비합니다.
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
connectedCallback() {
|
|
14
|
-
if (!this.#isInitialized) {
|
|
15
|
-
// 1. 여기서 속성을 읽어 Shadow DOM 사용 여부를 결정합니다.
|
|
16
|
-
// use-shadow 속성이 "false"가 아닐 때만 Shadow DOM을 생성 (기본값 true)
|
|
17
|
-
const useShadow = this.getAttribute("use-shadow") !== "false";
|
|
18
|
-
|
|
19
|
-
if (useShadow && !this.shadowRoot) {
|
|
20
|
-
this.attachShadow({ mode: 'open' });
|
|
21
|
-
this.#root = this.shadowRoot;
|
|
22
|
-
} else {
|
|
23
|
-
this.#root = this;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
this.#init();
|
|
27
|
-
this.#isInitialized = true;
|
|
28
|
-
return true;
|
|
29
|
-
}
|
|
30
|
-
return false;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
// 자식 클래스에서 접근 가능하도록 getter 제공
|
|
34
|
-
get root() {
|
|
35
|
-
return this.#root || this;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// 공통 쿼리 함수: 현재 root(Shadow 또는 Light DOM)에서 요소를 찾음
|
|
39
|
-
#getElements() {
|
|
40
|
-
// ShadowRoot가 있으면 shadowRoot에서, 없으면 본체(this)에서 찾음
|
|
41
|
-
return ninegrid.querySelectorAll("input[name], textarea[name], select[name], nx-editor[name]", this.#root);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
getData = () => {
|
|
45
|
-
const jsonData = {};
|
|
46
|
-
this.#getElements().forEach(el => {
|
|
47
|
-
const key = el.name;
|
|
48
|
-
if (!key) return;
|
|
49
|
-
|
|
50
|
-
let value;
|
|
51
|
-
if (el.tagName === "INPUT" && (el.type === "checkbox" || el.type === "radio")) {
|
|
52
|
-
value = el.checked;
|
|
53
|
-
} else {
|
|
54
|
-
value = el.value;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
if (jsonData[key]) {
|
|
58
|
-
if (!Array.isArray(jsonData[key])) jsonData[key] = [jsonData[key]];
|
|
59
|
-
jsonData[key].push(value);
|
|
60
|
-
} else {
|
|
61
|
-
jsonData[key] = value;
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
return jsonData;
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
setData = (jsonData) => {
|
|
68
|
-
this.#getElements().forEach(el => {
|
|
69
|
-
el.removeEventListener("input", this.#changeHandler);
|
|
70
|
-
el.addEventListener("input", this.#changeHandler);
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
if (!jsonData || typeof jsonData !== 'object') return;
|
|
74
|
-
|
|
75
|
-
let bChanged = false;
|
|
76
|
-
this.#getElements().forEach(el => {
|
|
77
|
-
const key = el.name;
|
|
78
|
-
//console.log(el.tagName, key, el.name);
|
|
79
|
-
|
|
80
|
-
if (!key || !jsonData.hasOwnProperty(key)) return;
|
|
81
|
-
|
|
82
|
-
const value = jsonData[key];
|
|
83
|
-
|
|
84
|
-
const inputTags = ["INPUT", "TEXTAREA", "SELECT", "NX-EDITOR"];
|
|
85
|
-
|
|
86
|
-
if (inputTags.includes(el.tagName)) {
|
|
87
|
-
if (el.type === "checkbox" || el.type === "radio") {
|
|
88
|
-
const isChecked = (String(el.value) === String(value));
|
|
89
|
-
if (el.checked !== isChecked) bChanged = true;
|
|
90
|
-
el.checked = isChecked;
|
|
91
|
-
} else {
|
|
92
|
-
if (el.value !== value) bChanged = true;
|
|
93
|
-
el.value = value;
|
|
94
|
-
}
|
|
95
|
-
} else {
|
|
96
|
-
if (el.textContent !== value) bChanged = true;
|
|
97
|
-
el.textContent = value;
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
|
-
if (bChanged) this.#changed(bChanged);
|
|
101
|
-
};
|
|
102
|
-
|
|
103
|
-
clearData = (bChanged) => {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
this.#changed(false);
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
initData = (jsonData) => {
|
|
110
|
-
this.setData(jsonData);
|
|
111
|
-
this.#changed(false);
|
|
112
|
-
};
|
|
113
|
-
|
|
114
|
-
#changed = (v) => {
|
|
115
|
-
const parent = this.closest(".detail-wrapper");
|
|
116
|
-
if (parent) {
|
|
117
|
-
const el = parent.querySelector("nx-title2");
|
|
118
|
-
if (el) el.changed = v;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
#changeHandler = (e) => {
|
|
123
|
-
this.#changed(true);
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
#init = () => {
|
|
127
|
-
/** CSS style 적용 */
|
|
128
|
-
for (const attr of this.attributes) {
|
|
129
|
-
if (attr.name.startsWith("css-")) {
|
|
130
|
-
this.style.setProperty(attr.name.substring(4), attr.value);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
//console.log("=========");
|
|
135
|
-
//console.log(this.innerHTML.trim());
|
|
136
|
-
|
|
137
|
-
this.originContents = this.innerHTML.trim();
|
|
138
|
-
//this.innerHTML = ""; // 기존 내부 HTML 제거
|
|
139
|
-
|
|
140
|
-
// 만약 순수 nx-div로만 쓰일 경우(상속 x), 내용을 shadow에 채워줌
|
|
141
|
-
if (this.shadowRoot && this.tagName.toLowerCase() === 'nx-div') {
|
|
142
|
-
this.shadowRoot.innerHTML = this.originContents;
|
|
143
|
-
}
|
|
144
|
-
};
|
|
145
|
-
}
|