@nine-lab/nine-mu 0.1.287 β 0.1.289
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/nine-mu.js +11 -48
- package/dist/nine-mu.js.map +1 -1
- package/dist/nine-mu.umd.js +1 -1
- package/dist/nine-mu.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/components/NineDiffPopup.js +14 -53
package/package.json
CHANGED
|
@@ -29,44 +29,6 @@ export class NineDiffPopup extends HTMLElement {
|
|
|
29
29
|
<style>
|
|
30
30
|
@import "https://cdn.jsdelivr.net/npm/@nine-lab/nine-mu@${appVersion}/dist/css/nine-mu.css";
|
|
31
31
|
${customImport}
|
|
32
|
-
|
|
33
|
-
.main-layout {
|
|
34
|
-
display: flex;
|
|
35
|
-
flex-direction: column;
|
|
36
|
-
height: 80vh;
|
|
37
|
-
width: 85vw;
|
|
38
|
-
min-width: 800px;
|
|
39
|
-
}
|
|
40
|
-
.tab-area {
|
|
41
|
-
flex: 1;
|
|
42
|
-
overflow: hidden;
|
|
43
|
-
display: flex;
|
|
44
|
-
flex-direction: column;
|
|
45
|
-
}
|
|
46
|
-
nine-tab {
|
|
47
|
-
flex: 1;
|
|
48
|
-
display: flex;
|
|
49
|
-
flex-direction: column;
|
|
50
|
-
height: 100%;
|
|
51
|
-
}
|
|
52
|
-
/* π‘ νμκ² μ 보μ΄λ νμμ λ°©μ§νκΈ° μν΄ μλν° μμμ λμ΄λ₯Ό νμ€ν 보μ₯ */
|
|
53
|
-
.diff-wrapper {
|
|
54
|
-
height: calc(80vh - 160px);
|
|
55
|
-
width: 100%;
|
|
56
|
-
display: block;
|
|
57
|
-
}
|
|
58
|
-
nine-diff {
|
|
59
|
-
display: block;
|
|
60
|
-
width: 100%;
|
|
61
|
-
height: 100%;
|
|
62
|
-
}
|
|
63
|
-
.footer {
|
|
64
|
-
display: flex;
|
|
65
|
-
justify-content: flex-end;
|
|
66
|
-
gap: 10px;
|
|
67
|
-
padding: 15px 0 0 0;
|
|
68
|
-
border-top: 1px solid #e5e7eb;
|
|
69
|
-
}
|
|
70
32
|
</style>
|
|
71
33
|
|
|
72
34
|
<nine-dialog>
|
|
@@ -96,18 +58,16 @@ export class NineDiffPopup extends HTMLElement {
|
|
|
96
58
|
|
|
97
59
|
/**
|
|
98
60
|
* π‘ [μ μ λ°μ΄ν° μμ μ°λ μμ§]
|
|
99
|
-
* @param {Array} fileList - [{ layer: "MyBatis", full_path: "...", asis_source: "...", source: "..." }]
|
|
100
61
|
*/
|
|
101
62
|
async data(fileList) {
|
|
102
63
|
if (!Array.isArray(fileList) || fileList.length === 0) return this;
|
|
103
64
|
this.#fileList = fileList;
|
|
104
65
|
|
|
105
|
-
// 1. π§Ό
|
|
66
|
+
// 1. π§Ό κΈ°μ‘΄ λμ λ²νΌ μμ 리μ
|
|
106
67
|
if (this.#tabContainer && typeof this.#tabContainer.clearTabs === 'function') {
|
|
107
68
|
this.#tabContainer.clearTabs();
|
|
108
69
|
}
|
|
109
70
|
|
|
110
|
-
// νμ₯μ κΈ°λ° μ£Όμ/μΈμ΄ μ μΆ ν¬νΌ
|
|
111
71
|
const detectLanguage = (path) => {
|
|
112
72
|
const lower = (path || "").toLowerCase();
|
|
113
73
|
if (lower.endsWith('.xml')) return 'xml';
|
|
@@ -116,44 +76,46 @@ export class NineDiffPopup extends HTMLElement {
|
|
|
116
76
|
return 'javascript';
|
|
117
77
|
};
|
|
118
78
|
|
|
119
|
-
// 2. β‘ λ°±μλ 쑰립
|
|
79
|
+
// 2. β‘ λ°±μλ 쑰립 λ°μ΄ν°λ₯Ό μννλ©° ν μ€μΌν΄λ© λΉλ
|
|
120
80
|
fileList.forEach((file) => {
|
|
121
|
-
const { layer, full_path
|
|
81
|
+
const { layer, full_path } = file;
|
|
122
82
|
const fileName = full_path.split('/').pop() || "Unknown";
|
|
123
83
|
const captionName = `${layer.toUpperCase()} (${fileName})`;
|
|
124
84
|
|
|
125
|
-
//
|
|
85
|
+
// π‘ ν λ΄λΆμ μ£Όμ
λ μλν° λΌλ λ§ν¬μ
μ€λΉ
|
|
126
86
|
const targetHtmlContent = `
|
|
127
87
|
<div class="diff-wrapper">
|
|
128
88
|
<nine-diff class="${layer}"></nine-diff>
|
|
129
89
|
</div>
|
|
130
90
|
`;
|
|
131
91
|
|
|
132
|
-
// 3. π nine-tab νμ₯ μΈν°νμ΄μ€λ₯Ό νΈμΆνμ¬ νμ€ Light DOM νΈλ¦¬μ μμ νκ² νμ¬
|
|
133
92
|
if (this.#tabContainer && typeof this.#tabContainer.addTabPage === 'function') {
|
|
134
93
|
this.#tabContainer.addTabPage(captionName, targetHtmlContent);
|
|
135
94
|
}
|
|
136
95
|
});
|
|
137
96
|
|
|
138
|
-
//
|
|
139
|
-
// (addTabPage λ΄λΆμμ refresh()μ initialize()κ° λκΈ° λλ¬Έμ λΆλλ½κ² λμ λνν©λλ€)
|
|
97
|
+
// 3. β° [ν΅μ¬ μμ ]: λ§μ΄νΈ μλ£ ν, nine-tabμ Shadow DOM λ΄λΆλ‘ κΉμμ΄ νκ³ λ€μ΄ μλν°λ₯Ό μ
λ ν
ν©λλ€.
|
|
140
98
|
setTimeout(() => {
|
|
141
99
|
fileList.forEach((file) => {
|
|
142
100
|
const { layer, full_path, asis_source, source } = file;
|
|
143
|
-
|
|
101
|
+
|
|
102
|
+
// π― λ³κ²½ ν¬μΈνΈ: λ λλ§ κ²°κ³Όλ¬Όμ nine-tab μ»΄ν¬λνΈ λ΄λΆ μλμ° λ£¨νΈ μμ μμ°©ν΄ μμ΅λλ€!
|
|
103
|
+
const diff = this.#tabContainer.shadowRoot.querySelector(`nine-diff.${layer}`);
|
|
144
104
|
|
|
145
105
|
if (diff) {
|
|
146
106
|
const lang = detectLanguage(full_path);
|
|
147
107
|
diff.initialize(asis_source || "", source || "", lang);
|
|
108
|
+
} else {
|
|
109
|
+
trace.error(`β μλν° νμ μ€ν¨: nine-diff.${layer}`);
|
|
148
110
|
}
|
|
149
111
|
});
|
|
150
|
-
},
|
|
112
|
+
}, 150); // λ νΈλνΉ μμ μ±μ μν΄ λ§μ§ ν보
|
|
151
113
|
|
|
152
114
|
return this;
|
|
153
115
|
}
|
|
154
116
|
|
|
155
117
|
/**
|
|
156
|
-
* π‘ [μΌκ΄ 물리
|
|
118
|
+
* π‘ [μΌκ΄ 물리 μ μ₯]
|
|
157
119
|
*/
|
|
158
120
|
async #handleConfirmAll() {
|
|
159
121
|
const payloadList = [];
|
|
@@ -161,8 +123,8 @@ export class NineDiffPopup extends HTMLElement {
|
|
|
161
123
|
for (const file of this.#fileList) {
|
|
162
124
|
const { layer, full_path, asis_source } = file;
|
|
163
125
|
|
|
164
|
-
// nine-tabμ
|
|
165
|
-
const diff = this.shadowRoot.querySelector(`nine-
|
|
126
|
+
// π― λ³κ²½ ν¬μΈνΈ: μ μ₯ μμ μλ nine-tabμ shadowRootλ₯Ό κ²½μ νμ¬ μ΅μ’
μμ λ³Έ μμ€λ₯Ό μΊ‘μ²ν©λλ€.
|
|
127
|
+
const diff = this.#tabContainer.shadowRoot.querySelector(`nine-diff.${layer}`);
|
|
166
128
|
const currentContent = diff ? diff.getContents() : asis_source;
|
|
167
129
|
|
|
168
130
|
payloadList.push({
|
|
@@ -175,7 +137,6 @@ export class NineDiffPopup extends HTMLElement {
|
|
|
175
137
|
|
|
176
138
|
try {
|
|
177
139
|
await api.post(`/nine-mu/source/generateJsonFileBatch`, { fileList: payloadList });
|
|
178
|
-
|
|
179
140
|
await nine.alert("μμ²νμ λͺ¨λ νμΌμ μμ€ λ³κ²½ μ¬νμ΄ μ±κ³΅μ μΌλ‘ λ°μλμμ΅λλ€.");
|
|
180
141
|
this.#dialog.close();
|
|
181
142
|
} catch (error) {
|