ninegrid2 6.234.0 → 6.236.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.
@@ -17897,78 +17897,47 @@ class ngFiltering
17897
17897
 
17898
17898
  this.on();
17899
17899
 
17900
- /**
17901
- let jsonFilter = {};
17902
- if (Array.isArray(oFilter)) {
17903
- for (let key in oFilter[0]) {
17904
- jsonFilter[key] = Array.from(new Set(oFilter.map(item => item[key])));//oFilter.map(item => item[key]);
17905
- }
17906
- }
17907
- else {
17908
- jsonFilter = oFilter;
17909
- }
17910
- */
17911
-
17900
+ // ✅ JSON 변환 (배열 → 객체)
17912
17901
  let jsonFilter = Array.isArray(oFilter)
17913
17902
  ? Object.fromEntries(Object.keys(oFilter[0]).map(key => [key, [...new Set(oFilter.map(item => item[key]))]]))
17914
17903
  : oFilter;
17915
17904
 
17916
- console.log(oFilter, jsonFilter);
17905
+ //console.log(oFilter, jsonFilter);
17917
17906
 
17918
17907
  this.#owner.data.clearFilter();
17919
17908
 
17920
- for (let key in jsonFilter) {
17921
- const arr = jsonFilter[key];
17909
+ Object.entries(jsonFilter).forEach(([key, arr]) => {
17922
17910
  const idx = this.#owner.fields.indexOf(key);
17923
-
17924
- let isNum = false;
17925
- for (let o of this.#owner.data.getValidData()) {
17926
- if (o.v[idx] == null) continue;
17927
-
17928
- isNum = (typeof o.v[idx] === "number") ? true : false;
17929
-
17930
- break;
17931
- }
17932
-
17933
- if (isNum) {
17934
- for (var i = 0; i < arr.length; i++) {
17935
- arr[i] = Number(arr[i]);
17936
- }
17911
+
17912
+ // 숫자 판별 및 변환
17913
+ if (this.#owner.data.getValidData().some(o => typeof o.v[idx] === "number")) {
17914
+ arr = arr.map(Number);
17937
17915
  }
17938
-
17939
- this.#owner.data.getValidData().filter(m => { return arr.nineBinarySearch(m.v[idx] || '') < 0; }).map(m => { m.__ng.filtered = true; });
17940
- }
17916
+
17917
+ // 필터 적용
17918
+ this.#owner.data.getValidData()
17919
+ .filter(m => arr.nineBinarySearch(m.v[idx] || '') < 0)
17920
+ .forEach(m => { m.__ng.filtered = true; });
17921
+ });
17941
17922
 
17942
17923
 
17943
17924
  this.#owner.data.refreshFilter();
17944
17925
 
17926
+ // ✅ 필터 버튼 초기화
17945
17927
  this.#owner.shadowRoot.querySelectorAll("ng-filter-button").forEach(el => {
17946
- let options = el.filterOptions;
17947
-
17948
- options.forEach(opt => {
17949
- opt.data = [];
17950
- });
17951
-
17952
- el.filterOptions = options;
17928
+ el.filterOptions.forEach(opt => { opt.data = []; });
17953
17929
  });
17954
17930
 
17955
- for (let key in jsonFilter) {
17931
+ // 필터 데이터 적용
17932
+ Object.entries(jsonFilter).forEach(([key, arr]) => {
17956
17933
  this.#owner.shadowRoot.querySelectorAll("ng-filter-button").forEach(el => {
17957
- let options = el.filterOptions;
17958
-
17959
- options.forEach(opt => {
17960
- if (opt.colnm === key) {
17961
- opt.data = jsonFilter[key];
17962
- }
17934
+ el.filterOptions.forEach(opt => {
17935
+ if (opt.colnm === key) opt.data = arr;
17963
17936
  });
17964
-
17965
- el.filterOptions = options;
17966
17937
  });
17967
- }
17968
-
17938
+ });
17969
17939
 
17970
17940
  this.#owner.scrollTo_V1(0);
17971
-
17972
17941
  this.#owner.paging.reset();
17973
17942
  };
17974
17943
 
@@ -17895,78 +17895,47 @@ class ngFiltering
17895
17895
 
17896
17896
  this.on();
17897
17897
 
17898
- /**
17899
- let jsonFilter = {};
17900
- if (Array.isArray(oFilter)) {
17901
- for (let key in oFilter[0]) {
17902
- jsonFilter[key] = Array.from(new Set(oFilter.map(item => item[key])));//oFilter.map(item => item[key]);
17903
- }
17904
- }
17905
- else {
17906
- jsonFilter = oFilter;
17907
- }
17908
- */
17909
-
17898
+ // ✅ JSON 변환 (배열 → 객체)
17910
17899
  let jsonFilter = Array.isArray(oFilter)
17911
17900
  ? Object.fromEntries(Object.keys(oFilter[0]).map(key => [key, [...new Set(oFilter.map(item => item[key]))]]))
17912
17901
  : oFilter;
17913
17902
 
17914
- console.log(oFilter, jsonFilter);
17903
+ //console.log(oFilter, jsonFilter);
17915
17904
 
17916
17905
  this.#owner.data.clearFilter();
17917
17906
 
17918
- for (let key in jsonFilter) {
17919
- const arr = jsonFilter[key];
17907
+ Object.entries(jsonFilter).forEach(([key, arr]) => {
17920
17908
  const idx = this.#owner.fields.indexOf(key);
17921
-
17922
- let isNum = false;
17923
- for (let o of this.#owner.data.getValidData()) {
17924
- if (o.v[idx] == null) continue;
17925
-
17926
- isNum = (typeof o.v[idx] === "number") ? true : false;
17927
-
17928
- break;
17929
- }
17930
-
17931
- if (isNum) {
17932
- for (var i = 0; i < arr.length; i++) {
17933
- arr[i] = Number(arr[i]);
17934
- }
17909
+
17910
+ // 숫자 판별 및 변환
17911
+ if (this.#owner.data.getValidData().some(o => typeof o.v[idx] === "number")) {
17912
+ arr = arr.map(Number);
17935
17913
  }
17936
-
17937
- this.#owner.data.getValidData().filter(m => { return arr.nineBinarySearch(m.v[idx] || '') < 0; }).map(m => { m.__ng.filtered = true; });
17938
- }
17914
+
17915
+ // 필터 적용
17916
+ this.#owner.data.getValidData()
17917
+ .filter(m => arr.nineBinarySearch(m.v[idx] || '') < 0)
17918
+ .forEach(m => { m.__ng.filtered = true; });
17919
+ });
17939
17920
 
17940
17921
 
17941
17922
  this.#owner.data.refreshFilter();
17942
17923
 
17924
+ // ✅ 필터 버튼 초기화
17943
17925
  this.#owner.shadowRoot.querySelectorAll("ng-filter-button").forEach(el => {
17944
- let options = el.filterOptions;
17945
-
17946
- options.forEach(opt => {
17947
- opt.data = [];
17948
- });
17949
-
17950
- el.filterOptions = options;
17926
+ el.filterOptions.forEach(opt => { opt.data = []; });
17951
17927
  });
17952
17928
 
17953
- for (let key in jsonFilter) {
17929
+ // 필터 데이터 적용
17930
+ Object.entries(jsonFilter).forEach(([key, arr]) => {
17954
17931
  this.#owner.shadowRoot.querySelectorAll("ng-filter-button").forEach(el => {
17955
- let options = el.filterOptions;
17956
-
17957
- options.forEach(opt => {
17958
- if (opt.colnm === key) {
17959
- opt.data = jsonFilter[key];
17960
- }
17932
+ el.filterOptions.forEach(opt => {
17933
+ if (opt.colnm === key) opt.data = arr;
17961
17934
  });
17962
-
17963
- el.filterOptions = options;
17964
17935
  });
17965
- }
17966
-
17936
+ });
17967
17937
 
17968
17938
  this.#owner.scrollTo_V1(0);
17969
-
17970
17939
  this.#owner.paging.reset();
17971
17940
  };
17972
17941
 
@@ -74,78 +74,47 @@ export class ngFiltering
74
74
 
75
75
  this.on();
76
76
 
77
- /**
78
- let jsonFilter = {};
79
- if (Array.isArray(oFilter)) {
80
- for (let key in oFilter[0]) {
81
- jsonFilter[key] = Array.from(new Set(oFilter.map(item => item[key])));//oFilter.map(item => item[key]);
82
- }
83
- }
84
- else {
85
- jsonFilter = oFilter;
86
- }
87
- */
88
-
77
+ // ✅ JSON 변환 (배열 → 객체)
89
78
  let jsonFilter = Array.isArray(oFilter)
90
79
  ? Object.fromEntries(Object.keys(oFilter[0]).map(key => [key, [...new Set(oFilter.map(item => item[key]))]]))
91
80
  : oFilter;
92
81
 
93
- console.log(oFilter, jsonFilter);
82
+ //console.log(oFilter, jsonFilter);
94
83
 
95
84
  this.#owner.data.clearFilter();
96
85
 
97
- for (let key in jsonFilter) {
98
- const arr = jsonFilter[key];
86
+ Object.entries(jsonFilter).forEach(([key, arr]) => {
99
87
  const idx = this.#owner.fields.indexOf(key);
100
-
101
- let isNum = false;
102
- for (let o of this.#owner.data.getValidData()) {
103
- if (o.v[idx] == null) continue;
104
-
105
- isNum = (typeof o.v[idx] === "number") ? true : false;
106
-
107
- break;
108
- }
109
-
110
- if (isNum) {
111
- for (var i = 0; i < arr.length; i++) {
112
- arr[i] = Number(arr[i]);
113
- }
88
+
89
+ // 숫자 판별 및 변환
90
+ if (this.#owner.data.getValidData().some(o => typeof o.v[idx] === "number")) {
91
+ arr = arr.map(Number);
114
92
  }
115
-
116
- this.#owner.data.getValidData().filter(m => { return arr.nineBinarySearch(m.v[idx] || '') < 0; }).map(m => { m.__ng.filtered = true; });
117
- }
93
+
94
+ // 필터 적용
95
+ this.#owner.data.getValidData()
96
+ .filter(m => arr.nineBinarySearch(m.v[idx] || '') < 0)
97
+ .forEach(m => { m.__ng.filtered = true; });
98
+ });
118
99
 
119
100
 
120
101
  this.#owner.data.refreshFilter();
121
102
 
103
+ // ✅ 필터 버튼 초기화
122
104
  this.#owner.shadowRoot.querySelectorAll("ng-filter-button").forEach(el => {
123
- let options = el.filterOptions;
124
-
125
- options.forEach(opt => {
126
- opt.data = [];
127
- });
128
-
129
- el.filterOptions = options;
105
+ el.filterOptions.forEach(opt => { opt.data = []; });
130
106
  });
131
107
 
132
- for (let key in jsonFilter) {
108
+ // 필터 데이터 적용
109
+ Object.entries(jsonFilter).forEach(([key, arr]) => {
133
110
  this.#owner.shadowRoot.querySelectorAll("ng-filter-button").forEach(el => {
134
- let options = el.filterOptions;
135
-
136
- options.forEach(opt => {
137
- if (opt.colnm === key) {
138
- opt.data = jsonFilter[key];
139
- }
111
+ el.filterOptions.forEach(opt => {
112
+ if (opt.colnm === key) opt.data = arr;
140
113
  });
141
-
142
- el.filterOptions = options;
143
114
  });
144
- }
145
-
115
+ });
146
116
 
147
117
  this.#owner.scrollTo_V1(0);
148
-
149
118
  this.#owner.paging.reset();
150
119
  };
151
120
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ninegrid2",
3
3
  "type": "module",
4
- "version": "6.234.0",
4
+ "version": "6.236.0",
5
5
  "main": "dist/index.js",
6
6
  "exports": {
7
7
  "import": "./dist/index.js",
@@ -74,78 +74,47 @@ export class ngFiltering
74
74
 
75
75
  this.on();
76
76
 
77
- /**
78
- let jsonFilter = {};
79
- if (Array.isArray(oFilter)) {
80
- for (let key in oFilter[0]) {
81
- jsonFilter[key] = Array.from(new Set(oFilter.map(item => item[key])));//oFilter.map(item => item[key]);
82
- }
83
- }
84
- else {
85
- jsonFilter = oFilter;
86
- }
87
- */
88
-
77
+ // ✅ JSON 변환 (배열 → 객체)
89
78
  let jsonFilter = Array.isArray(oFilter)
90
79
  ? Object.fromEntries(Object.keys(oFilter[0]).map(key => [key, [...new Set(oFilter.map(item => item[key]))]]))
91
80
  : oFilter;
92
81
 
93
- console.log(oFilter, jsonFilter);
82
+ //console.log(oFilter, jsonFilter);
94
83
 
95
84
  this.#owner.data.clearFilter();
96
85
 
97
- for (let key in jsonFilter) {
98
- const arr = jsonFilter[key];
86
+ Object.entries(jsonFilter).forEach(([key, arr]) => {
99
87
  const idx = this.#owner.fields.indexOf(key);
100
-
101
- let isNum = false;
102
- for (let o of this.#owner.data.getValidData()) {
103
- if (o.v[idx] == null) continue;
104
-
105
- isNum = (typeof o.v[idx] === "number") ? true : false;
106
-
107
- break;
108
- }
109
-
110
- if (isNum) {
111
- for (var i = 0; i < arr.length; i++) {
112
- arr[i] = Number(arr[i]);
113
- }
88
+
89
+ // 숫자 판별 및 변환
90
+ if (this.#owner.data.getValidData().some(o => typeof o.v[idx] === "number")) {
91
+ arr = arr.map(Number);
114
92
  }
115
-
116
- this.#owner.data.getValidData().filter(m => { return arr.nineBinarySearch(m.v[idx] || '') < 0; }).map(m => { m.__ng.filtered = true; });
117
- }
93
+
94
+ // 필터 적용
95
+ this.#owner.data.getValidData()
96
+ .filter(m => arr.nineBinarySearch(m.v[idx] || '') < 0)
97
+ .forEach(m => { m.__ng.filtered = true; });
98
+ });
118
99
 
119
100
 
120
101
  this.#owner.data.refreshFilter();
121
102
 
103
+ // ✅ 필터 버튼 초기화
122
104
  this.#owner.shadowRoot.querySelectorAll("ng-filter-button").forEach(el => {
123
- let options = el.filterOptions;
124
-
125
- options.forEach(opt => {
126
- opt.data = [];
127
- });
128
-
129
- el.filterOptions = options;
105
+ el.filterOptions.forEach(opt => { opt.data = []; });
130
106
  });
131
107
 
132
- for (let key in jsonFilter) {
108
+ // 필터 데이터 적용
109
+ Object.entries(jsonFilter).forEach(([key, arr]) => {
133
110
  this.#owner.shadowRoot.querySelectorAll("ng-filter-button").forEach(el => {
134
- let options = el.filterOptions;
135
-
136
- options.forEach(opt => {
137
- if (opt.colnm === key) {
138
- opt.data = jsonFilter[key];
139
- }
111
+ el.filterOptions.forEach(opt => {
112
+ if (opt.colnm === key) opt.data = arr;
140
113
  });
141
-
142
- el.filterOptions = options;
143
114
  });
144
- }
145
-
115
+ });
146
116
 
147
117
  this.#owner.scrollTo_V1(0);
148
-
149
118
  this.#owner.paging.reset();
150
119
  };
151
120