UNPKG

11.2 kBJavaScriptView Raw
1class ObjectUtils {
2 static equals(obj1, obj2, field) {
3 if (field)
4 return (this.resolveFieldData(obj1, field) === this.resolveFieldData(obj2, field));
5 else
6 return this.equalsByValue(obj1, obj2);
7 }
8 static equalsByValue(obj1, obj2) {
9 if (obj1 === obj2)
10 return true;
11 if (obj1 && obj2 && typeof obj1 == 'object' && typeof obj2 == 'object') {
12 var arrA = Array.isArray(obj1), arrB = Array.isArray(obj2), i, length, key;
13 if (arrA && arrB) {
14 length = obj1.length;
15 if (length != obj2.length)
16 return false;
17 for (i = length; i-- !== 0;)
18 if (!this.equalsByValue(obj1[i], obj2[i]))
19 return false;
20 return true;
21 }
22 if (arrA != arrB)
23 return false;
24 var dateA = obj1 instanceof Date, dateB = obj2 instanceof Date;
25 if (dateA != dateB)
26 return false;
27 if (dateA && dateB)
28 return obj1.getTime() == obj2.getTime();
29 var regexpA = obj1 instanceof RegExp, regexpB = obj2 instanceof RegExp;
30 if (regexpA != regexpB)
31 return false;
32 if (regexpA && regexpB)
33 return obj1.toString() == obj2.toString();
34 var keys = Object.keys(obj1);
35 length = keys.length;
36 if (length !== Object.keys(obj2).length)
37 return false;
38 for (i = length; i-- !== 0;)
39 if (!Object.prototype.hasOwnProperty.call(obj2, keys[i]))
40 return false;
41 for (i = length; i-- !== 0;) {
42 key = keys[i];
43 if (!this.equalsByValue(obj1[key], obj2[key]))
44 return false;
45 }
46 return true;
47 }
48 return obj1 !== obj1 && obj2 !== obj2;
49 }
50 static resolveFieldData(data, field) {
51 if (data && field) {
52 if (this.isFunction(field)) {
53 return field(data);
54 }
55 else if (field.indexOf('.') == -1) {
56 return data[field];
57 }
58 else {
59 let fields = field.split('.');
60 let value = data;
61 for (let i = 0, len = fields.length; i < len; ++i) {
62 if (value == null) {
63 return null;
64 }
65 value = value[fields[i]];
66 }
67 return value;
68 }
69 }
70 else {
71 return null;
72 }
73 }
74 static isFunction(obj) {
75 return !!(obj && obj.constructor && obj.call && obj.apply);
76 }
77 static reorderArray(value, from, to) {
78 let target;
79 if (value && from !== to) {
80 if (to >= value.length) {
81 to %= value.length;
82 from %= value.length;
83 }
84 value.splice(to, 0, value.splice(from, 1)[0]);
85 }
86 }
87 static generateSelectItems(val, field) {
88 let selectItems;
89 if (val && val.length) {
90 selectItems = [];
91 for (let item of val) {
92 selectItems.push({ label: this.resolveFieldData(item, field), value: item });
93 }
94 }
95 return selectItems;
96 }
97 static insertIntoOrderedArray(item, index, arr, sourceArr) {
98 if (arr.length > 0) {
99 let injected = false;
100 for (let i = 0; i < arr.length; i++) {
101 let currentItemIndex = this.findIndexInList(arr[i], sourceArr);
102 if (currentItemIndex > index) {
103 arr.splice(i, 0, item);
104 injected = true;
105 break;
106 }
107 }
108 if (!injected) {
109 arr.push(item);
110 }
111 }
112 else {
113 arr.push(item);
114 }
115 }
116 static findIndexInList(item, list) {
117 let index = -1;
118 if (list) {
119 for (let i = 0; i < list.length; i++) {
120 if (list[i] == item) {
121 index = i;
122 break;
123 }
124 }
125 }
126 return index;
127 }
128 static removeAccents(str) {
129 if (str && str.search(/[\xC0-\xFF]/g) > -1) {
130 str = str
131 .replace(/[\xC0-\xC5]/g, "A")
132 .replace(/[\xC6]/g, "AE")
133 .replace(/[\xC7]/g, "C")
134 .replace(/[\xC8-\xCB]/g, "E")
135 .replace(/[\xCC-\xCF]/g, "I")
136 .replace(/[\xD0]/g, "D")
137 .replace(/[\xD1]/g, "N")
138 .replace(/[\xD2-\xD6\xD8]/g, "O")
139 .replace(/[\xD9-\xDC]/g, "U")
140 .replace(/[\xDD]/g, "Y")
141 .replace(/[\xDE]/g, "P")
142 .replace(/[\xE0-\xE5]/g, "a")
143 .replace(/[\xE6]/g, "ae")
144 .replace(/[\xE7]/g, "c")
145 .replace(/[\xE8-\xEB]/g, "e")
146 .replace(/[\xEC-\xEF]/g, "i")
147 .replace(/[\xF1]/g, "n")
148 .replace(/[\xF2-\xF6\xF8]/g, "o")
149 .replace(/[\xF9-\xFC]/g, "u")
150 .replace(/[\xFE]/g, "p")
151 .replace(/[\xFD\xFF]/g, "y");
152 }
153 return str;
154 }
155}
156
157class FilterUtils {
158 static filter(value, fields, filterValue, filterMatchMode, filterLocale) {
159 let filteredItems = [];
160 let filterText = ObjectUtils.removeAccents(filterValue).toLocaleLowerCase(filterLocale);
161 if (value) {
162 for (let item of value) {
163 for (let field of fields) {
164 let fieldValue = ObjectUtils.removeAccents(String(ObjectUtils.resolveFieldData(item, field))).toLocaleLowerCase(filterLocale);
165 if (FilterUtils[filterMatchMode](fieldValue, filterText, filterLocale)) {
166 filteredItems.push(item);
167 break;
168 }
169 }
170 }
171 }
172 return filteredItems;
173 }
174 static startsWith(value, filter, filterLocale) {
175 if (filter === undefined || filter === null || filter.trim() === '') {
176 return true;
177 }
178 if (value === undefined || value === null) {
179 return false;
180 }
181 let filterValue = ObjectUtils.removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);
182 let stringValue = ObjectUtils.removeAccents(value.toString()).toLocaleLowerCase(filterLocale);
183 return stringValue.slice(0, filterValue.length) === filterValue;
184 }
185 static contains(value, filter, filterLocale) {
186 if (filter === undefined || filter === null || (typeof filter === 'string' && filter.trim() === '')) {
187 return true;
188 }
189 if (value === undefined || value === null) {
190 return false;
191 }
192 let filterValue = ObjectUtils.removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);
193 let stringValue = ObjectUtils.removeAccents(value.toString()).toLocaleLowerCase(filterLocale);
194 return stringValue.indexOf(filterValue) !== -1;
195 }
196 static endsWith(value, filter, filterLocale) {
197 if (filter === undefined || filter === null || filter.trim() === '') {
198 return true;
199 }
200 if (value === undefined || value === null) {
201 return false;
202 }
203 let filterValue = ObjectUtils.removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);
204 let stringValue = ObjectUtils.removeAccents(value.toString()).toLocaleLowerCase(filterLocale);
205 return stringValue.indexOf(filterValue, stringValue.length - filterValue.length) !== -1;
206 }
207 static equals(value, filter, filterLocale) {
208 if (filter === undefined || filter === null || (typeof filter === 'string' && filter.trim() === '')) {
209 return true;
210 }
211 if (value === undefined || value === null) {
212 return false;
213 }
214 if (value.getTime && filter.getTime)
215 return value.getTime() === filter.getTime();
216 else
217 return ObjectUtils.removeAccents(value.toString()).toLocaleLowerCase(filterLocale) == ObjectUtils.removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);
218 }
219 static notEquals(value, filter, filterLocale) {
220 if (filter === undefined || filter === null || (typeof filter === 'string' && filter.trim() === '')) {
221 return false;
222 }
223 if (value === undefined || value === null) {
224 return true;
225 }
226 if (value.getTime && filter.getTime)
227 return value.getTime() !== filter.getTime();
228 else
229 return ObjectUtils.removeAccents(value.toString()).toLocaleLowerCase(filterLocale) != ObjectUtils.removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);
230 }
231 static in(value, filter, filterLocale) {
232 if (filter === undefined || filter === null || filter.length === 0) {
233 return true;
234 }
235 if (value === undefined || value === null) {
236 return false;
237 }
238 for (let i = 0; i < filter.length; i++) {
239 if (ObjectUtils.equals(value, filter[i])) {
240 return true;
241 }
242 }
243 return false;
244 }
245 static lt(value, filter, filterLocale) {
246 if (filter === undefined || filter === null) {
247 return true;
248 }
249 if (value === undefined || value === null) {
250 return false;
251 }
252 if (value.getTime && filter.getTime)
253 return value.getTime() < filter.getTime();
254 else
255 return value < filter;
256 }
257 static lte(value, filter, filterLocale) {
258 if (filter === undefined || filter === null) {
259 return true;
260 }
261 if (value === undefined || value === null) {
262 return false;
263 }
264 if (value.getTime && filter.getTime)
265 return value.getTime() <= filter.getTime();
266 else
267 return value <= filter;
268 }
269 static gt(value, filter, filterLocale) {
270 if (filter === undefined || filter === null) {
271 return true;
272 }
273 if (value === undefined || value === null) {
274 return false;
275 }
276 if (value.getTime && filter.getTime)
277 return value.getTime() > filter.getTime();
278 else
279 return value > filter;
280 }
281 static gte(value, filter, filterLocale) {
282 if (filter === undefined || filter === null) {
283 return true;
284 }
285 if (value === undefined || value === null) {
286 return false;
287 }
288 if (value.getTime && filter.getTime)
289 return value.getTime() >= filter.getTime();
290 else
291 return value >= filter;
292 }
293}
294
295var lastId = 0;
296function UniqueComponentId() {
297 let prefix = 'pr_id_';
298 lastId++;
299 return `${prefix}${lastId}`;
300}
301
302/**
303 * Generated bundle index. Do not edit.
304 */
305
306export { FilterUtils, ObjectUtils, UniqueComponentId, lastId };
307//# sourceMappingURL=primeng-utils.js.map