ninegrid2 6.233.0 → 6.235.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 +35 -276
- package/dist/bundle.esm.js +35 -276
- package/dist/etc/ngData.js +0 -109
- package/dist/etc/ngFiltering.js +36 -168
- package/package.json +1 -1
- package/src/etc/ngData.js +0 -109
- package/src/etc/ngFiltering.js +36 -168
package/dist/bundle.esm.js
CHANGED
|
@@ -16136,115 +16136,6 @@ class ngData
|
|
|
16136
16136
|
}
|
|
16137
16137
|
|
|
16138
16138
|
|
|
16139
|
-
/**
|
|
16140
|
-
* { "key1": [1,2,...], "key2": [1,2,...], ... }
|
|
16141
|
-
*/
|
|
16142
|
-
setFilter = (oFilter) => {
|
|
16143
|
-
|
|
16144
|
-
this.#owner.filtering.on();
|
|
16145
|
-
|
|
16146
|
-
|
|
16147
|
-
let jsonFilter = {};
|
|
16148
|
-
if (Array.isArray(oFilter)) {
|
|
16149
|
-
|
|
16150
|
-
for (let key in oFilter[0]) {
|
|
16151
|
-
//console.log(`::::::${key}::::::`)
|
|
16152
|
-
//key = key.trim();
|
|
16153
|
-
//console.log(key);
|
|
16154
|
-
jsonFilter[key] = Array.from(new Set(oFilter.map(item => item[key])));//oFilter.map(item => item[key]);
|
|
16155
|
-
}
|
|
16156
|
-
}
|
|
16157
|
-
else {
|
|
16158
|
-
jsonFilter = oFilter;
|
|
16159
|
-
}
|
|
16160
|
-
|
|
16161
|
-
//jsonFilter.doc_id = [2, 18, 20, 28, 36, 45, 46, 48, 56, 64, 73, 81, 83, 90];
|
|
16162
|
-
|
|
16163
|
-
//let filterData = [];
|
|
16164
|
-
|
|
16165
|
-
console.log("==================", jsonFilter);
|
|
16166
|
-
|
|
16167
|
-
this.clearFilter();
|
|
16168
|
-
|
|
16169
|
-
for (let key in jsonFilter) {
|
|
16170
|
-
const arr = jsonFilter[key];
|
|
16171
|
-
const idx = this.#parent.owner.fields.indexOf(key);
|
|
16172
|
-
|
|
16173
|
-
let isNum = false;
|
|
16174
|
-
for (let o of this.getValidData()) {
|
|
16175
|
-
if (o.v[idx] == null) continue;
|
|
16176
|
-
|
|
16177
|
-
//console.log(o.v[idx], typeof o.v[idx])
|
|
16178
|
-
|
|
16179
|
-
isNum = (typeof o.v[idx] === "number") ? true : false;
|
|
16180
|
-
|
|
16181
|
-
break;
|
|
16182
|
-
}
|
|
16183
|
-
|
|
16184
|
-
if (isNum) {
|
|
16185
|
-
for (var i = 0; i < arr.length; i++) {
|
|
16186
|
-
arr[i] = Number(arr[i]);
|
|
16187
|
-
}
|
|
16188
|
-
}
|
|
16189
|
-
|
|
16190
|
-
/** filtering button 용 데이타 */
|
|
16191
|
-
/**
|
|
16192
|
-
filterData.push({
|
|
16193
|
-
"colnm" : key,
|
|
16194
|
-
"data" : arr,
|
|
16195
|
-
}); */
|
|
16196
|
-
//console.log(arr);
|
|
16197
|
-
|
|
16198
|
-
|
|
16199
|
-
//console.log(arr, idx, arr.nineBinarySearch(m.v[idx]));
|
|
16200
|
-
|
|
16201
|
-
this.getValidData().filter(m => { return arr.nineBinarySearch(m.v[idx] || '') < 0; }).map(m => { m.__ng.filtered = true; });
|
|
16202
|
-
|
|
16203
|
-
|
|
16204
|
-
//break;
|
|
16205
|
-
|
|
16206
|
-
|
|
16207
|
-
}
|
|
16208
|
-
|
|
16209
|
-
|
|
16210
|
-
this.refreshFilter();
|
|
16211
|
-
|
|
16212
|
-
var colnms = [];
|
|
16213
|
-
for (let key in jsonFilter) {
|
|
16214
|
-
colnms.push(key);
|
|
16215
|
-
}
|
|
16216
|
-
//var colnms = filterData.map(item => item.colnm);
|
|
16217
|
-
|
|
16218
|
-
ninegrid.querySelectorAll("ng-filter-button").forEach(v => {
|
|
16219
|
-
v.filterData = null;
|
|
16220
|
-
});
|
|
16221
|
-
|
|
16222
|
-
for (let key in jsonFilter) {
|
|
16223
|
-
const arr = jsonFilter[key];
|
|
16224
|
-
this.#parent.owner.fields.indexOf(key);
|
|
16225
|
-
|
|
16226
|
-
//console.log(filterData);
|
|
16227
|
-
ninegrid.querySelectorAll("ng-filter-button").forEach(v => {
|
|
16228
|
-
//v.filterData = null;
|
|
16229
|
-
//console.log(v);
|
|
16230
|
-
//var b = v.colnms;
|
|
16231
|
-
v.colnms.forEach(colnm => {
|
|
16232
|
-
|
|
16233
|
-
console.log(colnms, colnm);
|
|
16234
|
-
if (colnms.includes(colnm)) {
|
|
16235
|
-
console.log("==================");
|
|
16236
|
-
|
|
16237
|
-
v.filterData = arr;
|
|
16238
|
-
}
|
|
16239
|
-
});
|
|
16240
|
-
});
|
|
16241
|
-
}
|
|
16242
|
-
|
|
16243
|
-
|
|
16244
|
-
this.#parent.owner.scrollTo_V1(0);
|
|
16245
|
-
|
|
16246
|
-
this.#parent.owner.paging.reset();
|
|
16247
|
-
};
|
|
16248
16139
|
|
|
16249
16140
|
/**
|
|
16250
16141
|
*
|
|
@@ -17942,12 +17833,14 @@ class ngFiltering
|
|
|
17942
17833
|
#owner;
|
|
17943
17834
|
#isFiltering;
|
|
17944
17835
|
|
|
17945
|
-
constructor
|
|
17946
|
-
|
|
17947
|
-
|
|
17836
|
+
constructor(owner) {
|
|
17837
|
+
this.#owner = owner;
|
|
17838
|
+
this.#isFiltering = false;
|
|
17948
17839
|
|
|
17949
|
-
|
|
17950
|
-
|
|
17840
|
+
const filterPanel = document.createElement("ng-filter-panel"); // ✅ 필터 패널 생성
|
|
17841
|
+
filterPanel.style.display = "none"; // ✅ 숨김 처리
|
|
17842
|
+
this.#owner.shadowRoot.appendChild(filterPanel); // ✅ Shadow DOM 내부에 추가
|
|
17843
|
+
}
|
|
17951
17844
|
|
|
17952
17845
|
initialize = () => {
|
|
17953
17846
|
/**
|
|
@@ -17955,8 +17848,6 @@ class ngFiltering
|
|
|
17955
17848
|
*/
|
|
17956
17849
|
this.#isFiltering = false;
|
|
17957
17850
|
this.#owner.data.clearFilter();
|
|
17958
|
-
|
|
17959
|
-
//this.#on();
|
|
17960
17851
|
};
|
|
17961
17852
|
|
|
17962
17853
|
isFiltering = () => {
|
|
@@ -18004,78 +17895,47 @@ class ngFiltering
|
|
|
18004
17895
|
|
|
18005
17896
|
this.on();
|
|
18006
17897
|
|
|
18007
|
-
|
|
18008
|
-
|
|
18009
|
-
|
|
18010
|
-
|
|
18011
|
-
|
|
18012
|
-
|
|
18013
|
-
else {
|
|
18014
|
-
jsonFilter = oFilter;
|
|
18015
|
-
}
|
|
18016
|
-
|
|
18017
|
-
//jsonFilter.doc_id = [2, 18, 20, 28, 36, 45, 46, 48, 56, 64, 73, 81, 83, 90];
|
|
18018
|
-
|
|
18019
|
-
//let filterData = [];
|
|
18020
|
-
|
|
18021
|
-
console.log("==================", jsonFilter);
|
|
17898
|
+
// ✅ JSON 변환 (배열 → 객체)
|
|
17899
|
+
let jsonFilter = Array.isArray(oFilter)
|
|
17900
|
+
? Object.fromEntries(Object.keys(oFilter[0]).map(key => [key, [...new Set(oFilter.map(item => item[key]))]]))
|
|
17901
|
+
: oFilter;
|
|
17902
|
+
|
|
17903
|
+
//console.log(oFilter, jsonFilter);
|
|
18022
17904
|
|
|
18023
17905
|
this.#owner.data.clearFilter();
|
|
18024
17906
|
|
|
18025
|
-
|
|
18026
|
-
const arr = jsonFilter[key];
|
|
17907
|
+
Object.entries(jsonFilter).forEach(([key, arr]) => {
|
|
18027
17908
|
const idx = this.#owner.fields.indexOf(key);
|
|
18028
|
-
|
|
18029
|
-
|
|
18030
|
-
|
|
18031
|
-
|
|
18032
|
-
|
|
18033
|
-
//console.log(o.v[idx], typeof o.v[idx])
|
|
18034
|
-
|
|
18035
|
-
isNum = (typeof o.v[idx] === "number") ? true : false;
|
|
18036
|
-
|
|
18037
|
-
break;
|
|
18038
|
-
}
|
|
18039
|
-
|
|
18040
|
-
if (isNum) {
|
|
18041
|
-
for (var i = 0; i < arr.length; i++) {
|
|
18042
|
-
arr[i] = Number(arr[i]);
|
|
18043
|
-
}
|
|
17909
|
+
|
|
17910
|
+
// ✅ 숫자 판별 및 변환
|
|
17911
|
+
if (this.#owner.data.getValidData().some(o => typeof o.v[idx] === "number")) {
|
|
17912
|
+
arr = arr.map(Number);
|
|
18044
17913
|
}
|
|
18045
|
-
|
|
18046
|
-
|
|
18047
|
-
|
|
17914
|
+
|
|
17915
|
+
// ✅ 필터 적용
|
|
17916
|
+
this.#owner.data.getValidData()
|
|
17917
|
+
.filter(m => arr.nineBinarySearch(m.v[idx] || '') < 0)
|
|
17918
|
+
.forEach(m => { m.__ng.filtered = true; });
|
|
17919
|
+
});
|
|
18048
17920
|
|
|
18049
17921
|
|
|
18050
17922
|
this.#owner.data.refreshFilter();
|
|
18051
17923
|
|
|
17924
|
+
// ✅ 필터 버튼 초기화
|
|
18052
17925
|
this.#owner.shadowRoot.querySelectorAll("ng-filter-button").forEach(el => {
|
|
18053
|
-
|
|
18054
|
-
|
|
18055
|
-
options.forEach(opt => {
|
|
18056
|
-
opt.data = [];
|
|
18057
|
-
});
|
|
18058
|
-
|
|
18059
|
-
el.filterOptions = options;
|
|
17926
|
+
el.filterOptions.forEach(opt => { opt.data = []; });
|
|
18060
17927
|
});
|
|
18061
17928
|
|
|
18062
|
-
|
|
17929
|
+
// ✅ 필터 데이터 적용
|
|
17930
|
+
Object.entries(jsonFilter).forEach(([key, arr]) => {
|
|
18063
17931
|
this.#owner.shadowRoot.querySelectorAll("ng-filter-button").forEach(el => {
|
|
18064
|
-
|
|
18065
|
-
|
|
18066
|
-
options.forEach(opt => {
|
|
18067
|
-
if (opt.colnm === key) {
|
|
18068
|
-
opt.data = jsonFilter[key];
|
|
18069
|
-
}
|
|
17932
|
+
el.filterOptions.forEach(opt => {
|
|
17933
|
+
if (opt.colnm === key) opt.data = arr;
|
|
18070
17934
|
});
|
|
18071
|
-
|
|
18072
|
-
el.filterOptions = options;
|
|
18073
17935
|
});
|
|
18074
|
-
}
|
|
18075
|
-
|
|
17936
|
+
});
|
|
18076
17937
|
|
|
18077
17938
|
this.#owner.scrollTo_V1(0);
|
|
18078
|
-
|
|
18079
17939
|
this.#owner.paging.reset();
|
|
18080
17940
|
};
|
|
18081
17941
|
|
|
@@ -18088,82 +17948,12 @@ class ngFiltering
|
|
|
18088
17948
|
|
|
18089
17949
|
return index;
|
|
18090
17950
|
};
|
|
18091
|
-
|
|
18092
|
-
|
|
18093
|
-
|
|
18094
|
-
|
|
18095
|
-
|
|
18096
|
-
#init = (option) => {
|
|
18097
|
-
|
|
18098
|
-
let jsonOption = {};
|
|
18099
|
-
if (Array.isArray(option)) {
|
|
18100
|
-
for (let key in option[0]) {
|
|
18101
|
-
jsonOption[key] = Array.from(new Set(oFilter.map(item => item[key])));//oFilter.map(item => item[key]);
|
|
18102
|
-
}
|
|
18103
|
-
}
|
|
18104
|
-
else {
|
|
18105
|
-
jsonOption = option;
|
|
18106
|
-
}
|
|
18107
|
-
|
|
18108
|
-
this.#owner.data.clearFilter();
|
|
18109
|
-
|
|
18110
|
-
for (let key in jsonOption) {
|
|
18111
|
-
const arr = jsonOption[key];
|
|
18112
|
-
const idx = this.#owner.fields.indexOf(key);
|
|
18113
|
-
|
|
18114
|
-
for (let o of this.#owner.data.getValidData()) {
|
|
18115
|
-
if (o.v[idx] != null) {
|
|
18116
|
-
if (typeof o.v[idx] === "number") {
|
|
18117
|
-
for (var i = 0; i < arr.length; i++) {
|
|
18118
|
-
arr[i] = Number(arr[i]);
|
|
18119
|
-
}
|
|
18120
|
-
}
|
|
18121
|
-
break;
|
|
18122
|
-
}
|
|
18123
|
-
}
|
|
18124
|
-
|
|
18125
|
-
this.#owner.data.getValidData().filter(m => { return arr.nineBinarySearch(m.v[idx] || '') < 0; }).map(m => { m.__ng.filtered = true; });
|
|
18126
|
-
}
|
|
18127
|
-
|
|
18128
|
-
|
|
18129
|
-
this.#owner.data.refreshFilter();
|
|
18130
|
-
|
|
18131
|
-
var colnms = [];
|
|
18132
|
-
for (let key in jsonOption) {
|
|
18133
|
-
colnms.push(key);
|
|
18134
|
-
}
|
|
18135
|
-
//var colnms = filterData.map(item => item.colnm);
|
|
18136
|
-
|
|
18137
|
-
this.#owner.shadowRoot.querySelectorAll("ng-filter-button").forEach(v => {
|
|
18138
|
-
v.filterData = null;
|
|
18139
|
-
});
|
|
18140
|
-
|
|
18141
|
-
for (let key in jsonOption) {
|
|
18142
|
-
const arr = jsonOption[key];
|
|
18143
|
-
|
|
18144
|
-
this.#owner.shadowRoot.querySelectorAll("ng-filter-button").forEach(v => {
|
|
18145
|
-
//console.log(v.colnms);
|
|
18146
|
-
|
|
18147
|
-
v.colnms.forEach(colnm => {
|
|
18148
|
-
if (colnms.includes(colnm)) {
|
|
18149
|
-
v.filterData = arr;
|
|
18150
|
-
}
|
|
18151
|
-
});
|
|
18152
|
-
});
|
|
18153
|
-
}
|
|
18154
|
-
|
|
18155
|
-
|
|
18156
|
-
this.#owner.scrollTo_V1(0);
|
|
18157
|
-
|
|
18158
|
-
this.#owner.paging.reset();
|
|
18159
|
-
};
|
|
18160
17951
|
}
|
|
18161
17952
|
|
|
18162
17953
|
class ngFilterButton extends HTMLElement
|
|
18163
17954
|
{
|
|
18164
17955
|
#owner;
|
|
18165
17956
|
#filterOptions;
|
|
18166
|
-
#colnms;
|
|
18167
17957
|
|
|
18168
17958
|
constructor () {
|
|
18169
17959
|
super();
|
|
@@ -18172,15 +17962,8 @@ class ngFilterButton extends HTMLElement
|
|
|
18172
17962
|
connectedCallback() {
|
|
18173
17963
|
this.#owner = this.getRootNode().host;//this.closest("nine-grid");
|
|
18174
17964
|
|
|
18175
|
-
|
|
18176
|
-
|
|
18177
|
-
};
|
|
18178
|
-
|
|
18179
|
-
get colnms() {
|
|
18180
|
-
return this.#colnms || [];
|
|
18181
|
-
};
|
|
18182
|
-
set colnms(v) {
|
|
18183
|
-
this.#colnms = v;
|
|
17965
|
+
this.removeEventListener("click", this.#onClick);
|
|
17966
|
+
this.addEventListener("click", this.#onClick);
|
|
18184
17967
|
};
|
|
18185
17968
|
|
|
18186
17969
|
get filterOptions() {
|
|
@@ -18197,32 +17980,8 @@ class ngFilterButton extends HTMLElement
|
|
|
18197
17980
|
e.stopPropagation();
|
|
18198
17981
|
|
|
18199
17982
|
const panel = this.#owner.shadowRoot.querySelector('ng-filter-panel');
|
|
18200
|
-
|
|
18201
|
-
|
|
18202
|
-
|
|
18203
|
-
//panel.style.display = 'flex' : 'none';
|
|
18204
|
-
//console.log(panel.isHidden, panel.col, this.closest('th,td').dataset.col);
|
|
18205
|
-
|
|
18206
|
-
if (panel.col === this.closest('th,td').dataset.col) {
|
|
18207
|
-
panel.close();
|
|
18208
|
-
}
|
|
18209
|
-
else {
|
|
18210
|
-
/**
|
|
18211
|
-
var cell = e.target.closest("th,td");
|
|
18212
|
-
|
|
18213
|
-
var l = $(e.target).offset().left - $(this.#owner).offset().left;// - $(panel).width() + $(e.target).width() + 1;
|
|
18214
|
-
if (l < 0) l = 0;
|
|
18215
|
-
if (l + $(panel).width() > $(this.#owner).width()) l = $(this.#owner).width() - $(panel).width() - 5;
|
|
18216
|
-
|
|
18217
|
-
|
|
18218
|
-
|
|
18219
|
-
var t = $(cell).offset().top + $(cell).height()- $(this.#owner).offset().top;//$(e.target).offset().top + $(e.target).height() + 2;
|
|
18220
|
-
|
|
18221
|
-
//$(panel).offset({left: l, top: t});
|
|
18222
|
-
$(panel).css({left: l, top: t});
|
|
18223
|
-
*/
|
|
18224
|
-
panel.open(this);
|
|
18225
|
-
}
|
|
17983
|
+
|
|
17984
|
+
(panel.col === this.closest('th,td').dataset.col) ? panel.close() : panel.open(this);
|
|
18226
17985
|
};
|
|
18227
17986
|
}
|
|
18228
17987
|
|
package/dist/etc/ngData.js
CHANGED
|
@@ -219,115 +219,6 @@ export class ngData
|
|
|
219
219
|
}
|
|
220
220
|
|
|
221
221
|
|
|
222
|
-
/**
|
|
223
|
-
* { "key1": [1,2,...], "key2": [1,2,...], ... }
|
|
224
|
-
*/
|
|
225
|
-
setFilter = (oFilter) => {
|
|
226
|
-
|
|
227
|
-
this.#owner.filtering.on();
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
let jsonFilter = {};
|
|
231
|
-
if (Array.isArray(oFilter)) {
|
|
232
|
-
|
|
233
|
-
for (let key in oFilter[0]) {
|
|
234
|
-
//console.log(`::::::${key}::::::`)
|
|
235
|
-
//key = key.trim();
|
|
236
|
-
//console.log(key);
|
|
237
|
-
jsonFilter[key] = Array.from(new Set(oFilter.map(item => item[key])));//oFilter.map(item => item[key]);
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
else {
|
|
241
|
-
jsonFilter = oFilter;
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
//jsonFilter.doc_id = [2, 18, 20, 28, 36, 45, 46, 48, 56, 64, 73, 81, 83, 90];
|
|
245
|
-
|
|
246
|
-
//let filterData = [];
|
|
247
|
-
|
|
248
|
-
console.log("==================", jsonFilter);
|
|
249
|
-
|
|
250
|
-
this.clearFilter();
|
|
251
|
-
|
|
252
|
-
for (let key in jsonFilter) {
|
|
253
|
-
const arr = jsonFilter[key];
|
|
254
|
-
const idx = this.#parent.owner.fields.indexOf(key);
|
|
255
|
-
|
|
256
|
-
let isNum = false;
|
|
257
|
-
for (let o of this.getValidData()) {
|
|
258
|
-
if (o.v[idx] == null) continue;
|
|
259
|
-
|
|
260
|
-
//console.log(o.v[idx], typeof o.v[idx])
|
|
261
|
-
|
|
262
|
-
isNum = (typeof o.v[idx] === "number") ? true : false;
|
|
263
|
-
|
|
264
|
-
break;
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
if (isNum) {
|
|
268
|
-
for (var i = 0; i < arr.length; i++) {
|
|
269
|
-
arr[i] = Number(arr[i]);
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
/** filtering button 용 데이타 */
|
|
274
|
-
/**
|
|
275
|
-
filterData.push({
|
|
276
|
-
"colnm" : key,
|
|
277
|
-
"data" : arr,
|
|
278
|
-
}); */
|
|
279
|
-
//console.log(arr);
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
//console.log(arr, idx, arr.nineBinarySearch(m.v[idx]));
|
|
283
|
-
|
|
284
|
-
this.getValidData().filter(m => { return arr.nineBinarySearch(m.v[idx] || '') < 0; }).map(m => { m.__ng.filtered = true; });
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
//break;
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
this.refreshFilter();
|
|
294
|
-
|
|
295
|
-
var colnms = [];
|
|
296
|
-
for (let key in jsonFilter) {
|
|
297
|
-
colnms.push(key);
|
|
298
|
-
}
|
|
299
|
-
//var colnms = filterData.map(item => item.colnm);
|
|
300
|
-
|
|
301
|
-
ninegrid.querySelectorAll("ng-filter-button").forEach(v => {
|
|
302
|
-
v.filterData = null;
|
|
303
|
-
});
|
|
304
|
-
|
|
305
|
-
for (let key in jsonFilter) {
|
|
306
|
-
const arr = jsonFilter[key];
|
|
307
|
-
const idx = this.#parent.owner.fields.indexOf(key);
|
|
308
|
-
|
|
309
|
-
//console.log(filterData);
|
|
310
|
-
ninegrid.querySelectorAll("ng-filter-button").forEach(v => {
|
|
311
|
-
//v.filterData = null;
|
|
312
|
-
//console.log(v);
|
|
313
|
-
//var b = v.colnms;
|
|
314
|
-
v.colnms.forEach(colnm => {
|
|
315
|
-
|
|
316
|
-
console.log(colnms, colnm);
|
|
317
|
-
if (colnms.includes(colnm)) {
|
|
318
|
-
console.log("==================");
|
|
319
|
-
|
|
320
|
-
v.filterData = arr;
|
|
321
|
-
}
|
|
322
|
-
});
|
|
323
|
-
});
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
this.#parent.owner.scrollTo_V1(0);
|
|
328
|
-
|
|
329
|
-
this.#parent.owner.paging.reset();
|
|
330
|
-
};
|
|
331
222
|
|
|
332
223
|
/**
|
|
333
224
|
*
|