@peacom/model 2.0.238 → 2.0.239

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peacom/model",
3
- "version": "2.0.238",
3
+ "version": "2.0.239",
4
4
  "type": "commonjs",
5
5
  "dependencies": {
6
6
  "google-libphonenumber": "^3.2.41",
@@ -24,12 +24,17 @@ export declare const parseTemplatePartner: (str: string) => {
24
24
  template: string;
25
25
  variable: string;
26
26
  }[];
27
- export declare function templateMessageParamsReplace(message: string, replaceFunc: Function): {
27
+ export declare function stringParamsReplace(message: string, replaceFunc: Function): {
28
28
  params: {
29
29
  template: string;
30
30
  variable: string;
31
31
  }[];
32
32
  message: string;
33
33
  };
34
+ export declare function templateMessageParamsReplace(rawMessage: any, replaceFunc: Function): {
35
+ rawMessage: any;
36
+ params: any;
37
+ };
38
+ export declare function valueParamsReplace(context: any, params: Array<any>, replaceFunc: Function): any;
34
39
  export declare function toLowerCaseNonAccentVietnamese(str: any): any;
35
40
  export declare function toNonAccentVietnamese(str: any): any;
@@ -1,19 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toNonAccentVietnamese = exports.toLowerCaseNonAccentVietnamese = exports.templateMessageParamsReplace = exports.parseTemplatePartner = exports.parseTemplate = exports.formatBytes = exports.renderTemplate = exports.alphaNumericToListString = exports.rightString = exports.leftString = exports.filterNonAlphaNumeric = exports.htmlEncode = exports.stringNumberToList = exports.filterNotNumberAndDivideChar = exports.filterForInvalidCharacter = exports.isNumberOnly = exports.filterForNumberOnly = exports.unescapeHTML = exports.alphaNumericToString = exports.filterHtmlName = exports.markKey = exports.hasText = exports.generateRandomCode = void 0;
3
+ exports.toNonAccentVietnamese = exports.toLowerCaseNonAccentVietnamese = exports.valueParamsReplace = exports.templateMessageParamsReplace = exports.stringParamsReplace = exports.parseTemplatePartner = exports.parseTemplate = exports.formatBytes = exports.renderTemplate = exports.alphaNumericToListString = exports.rightString = exports.leftString = exports.filterNonAlphaNumeric = exports.htmlEncode = exports.stringNumberToList = exports.filterNotNumberAndDivideChar = exports.filterForInvalidCharacter = exports.isNumberOnly = exports.filterForNumberOnly = exports.unescapeHTML = exports.alphaNumericToString = exports.filterHtmlName = exports.markKey = exports.hasText = exports.generateRandomCode = void 0;
4
+ const _ = require("lodash");
4
5
  const mustache_1 = require("mustache");
5
6
  const uuid_1 = require("uuid");
6
7
  const date_1 = require("./date");
8
+ const model_1 = require("../model");
9
+ const general_util_1 = require("./general.util");
7
10
  function generateRandomCode(length) {
8
- let text = "";
9
- const possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
11
+ let text = '';
12
+ const possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
10
13
  for (let i = 0; i < length; i += 1)
11
14
  text += possible.charAt(Math.floor(Math.random() * possible.length));
12
15
  return text;
13
16
  }
14
17
  exports.generateRandomCode = generateRandomCode;
15
18
  const hasText = (str) => {
16
- const testStr = `${str || ""}`;
19
+ const testStr = `${str || ''}`;
17
20
  return !!str && testStr.length > 0;
18
21
  };
19
22
  exports.hasText = hasText;
@@ -22,7 +25,7 @@ function markKey(keyStr) {
22
25
  }
23
26
  exports.markKey = markKey;
24
27
  function filterHtmlName(str) {
25
- return str.replace(/&(quot|amp|lt|gt|acute);/g, "");
28
+ return str.replace(/&(quot|amp|lt|gt|acute);/g, '');
26
29
  }
27
30
  exports.filterHtmlName = filterHtmlName;
28
31
  function alphaNumericToString(str) {
@@ -37,18 +40,18 @@ function alphaNumericToString(str) {
37
40
  }
38
41
  exports.alphaNumericToString = alphaNumericToString;
39
42
  const htmlEntities = {
40
- nbsp: " ",
41
- cent: "¢",
42
- pound: "£",
43
- yen: "¥",
44
- euro: "",
45
- copy: "©",
46
- reg: "®",
47
- lt: "<",
48
- gt: ">",
43
+ nbsp: ' ',
44
+ cent: '¢',
45
+ pound: '£',
46
+ yen: '¥',
47
+ euro: '',
48
+ copy: '©',
49
+ reg: '®',
50
+ lt: '<',
51
+ gt: '>',
49
52
  quot: '"',
50
- amp: "&",
51
- apos: "'"
53
+ amp: '&',
54
+ apos: '\''
52
55
  };
53
56
  function unescapeHTML(str) {
54
57
  return str.replace(/&([^;]+);/g, (entity, entityCode) => {
@@ -69,24 +72,24 @@ function unescapeHTML(str) {
69
72
  });
70
73
  }
71
74
  exports.unescapeHTML = unescapeHTML;
72
- const filterForNumberOnly = (str) => str.replace(/\D+/g, "");
75
+ const filterForNumberOnly = (str) => str.replace(/\D+/g, '');
73
76
  exports.filterForNumberOnly = filterForNumberOnly;
74
77
  function isNumberOnly(str) {
75
78
  const pattern = /^\d+$/;
76
79
  return pattern.test(str);
77
80
  }
78
81
  exports.isNumberOnly = isNumberOnly;
79
- function filterForInvalidCharacter(str, replaceCharacter = "_") {
80
- let rs = str.replace(/[^\p{L}\s]/giu, " ");
82
+ function filterForInvalidCharacter(str, replaceCharacter = '_') {
83
+ let rs = str.replace(/[^\p{L}\s]/giu, ' ');
81
84
  rs = rs.trim();
82
85
  rs = rs.replace(/ +/g, replaceCharacter);
83
86
  return rs;
84
87
  }
85
88
  exports.filterForInvalidCharacter = filterForInvalidCharacter;
86
89
  function filterNotNumberAndDivideChar(str) {
87
- let rs = str.replace(/\D+/g, " ");
90
+ let rs = str.replace(/\D+/g, ' ');
88
91
  rs = rs.trim();
89
- rs = rs.replace(/ +/g, ",");
92
+ rs = rs.replace(/ +/g, ',');
90
93
  return rs;
91
94
  }
92
95
  exports.filterNotNumberAndDivideChar = filterNotNumberAndDivideChar;
@@ -103,12 +106,12 @@ function htmlEncode(rawStr) {
103
106
  });
104
107
  }
105
108
  exports.htmlEncode = htmlEncode;
106
- function filterNonAlphaNumeric(str, replaceWith = "") {
109
+ function filterNonAlphaNumeric(str, replaceWith = '') {
107
110
  return str.replace(/\W/g, replaceWith);
108
111
  }
109
112
  exports.filterNonAlphaNumeric = filterNonAlphaNumeric;
110
113
  const leftString = (string, count) => {
111
- const str = `${string || ""}`;
114
+ const str = `${string || ''}`;
112
115
  if (str.length > count) {
113
116
  return str.substring(0, count);
114
117
  }
@@ -116,7 +119,7 @@ const leftString = (string, count) => {
116
119
  };
117
120
  exports.leftString = leftString;
118
121
  const rightString = (string, count) => {
119
- const str = `${string || ""}`;
122
+ const str = `${string || ''}`;
120
123
  if (str.length > count) {
121
124
  return str.substring(str.length - count);
122
125
  }
@@ -143,12 +146,12 @@ const RENDER_FUNCTION = {
143
146
  now: () => new Date().getTime(),
144
147
  date: () => {
145
148
  return (text) => {
146
- const infos = text.split("=");
147
- const dateFormat = infos[0] || "YYYY-MM-DD HH:mm";
148
- const timezone = infos[1] || "UTC";
149
+ const infos = text.split('=');
150
+ const dateFormat = infos[0] || 'YYYY-MM-DD HH:mm';
151
+ const timezone = infos[1] || 'UTC';
149
152
  return (0, date_1.formatDateTimeTZ)(new Date(), timezone, dateFormat);
150
153
  };
151
- },
154
+ }
152
155
  };
153
156
  function renderTemplate(string, context) {
154
157
  return (0, mustache_1.render)(string, Object.assign(Object.assign({}, context), RENDER_FUNCTION));
@@ -156,12 +159,12 @@ function renderTemplate(string, context) {
156
159
  exports.renderTemplate = renderTemplate;
157
160
  function formatBytes(bytes, decimals = 2) {
158
161
  if (bytes === 0)
159
- return "0 Bytes";
162
+ return '0 Bytes';
160
163
  const k = 1024;
161
164
  const dm = decimals < 0 ? 0 : decimals;
162
- const sizes = ["Bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
165
+ const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
163
166
  const i = Math.floor(Math.log(bytes) / Math.log(k));
164
- return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + " " + sizes[i];
167
+ return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];
165
168
  }
166
169
  exports.formatBytes = formatBytes;
167
170
  const parseTemplate = (str) => {
@@ -191,18 +194,199 @@ const parseTemplatePartner = (str) => {
191
194
  return rs;
192
195
  };
193
196
  exports.parseTemplatePartner = parseTemplatePartner;
194
- function templateMessageParamsReplace(message, replaceFunc) {
197
+ function stringParamsReplace(message, replaceFunc) {
195
198
  const templatePars = (0, exports.parseTemplatePartner)(message);
196
199
  let newMessage = message;
197
200
  for (let i = 0; i < templatePars.length; i += 1) {
198
- newMessage = newMessage.replace(new RegExp(templatePars[i].template, "g"), replaceFunc(i, templatePars[i]));
201
+ newMessage = newMessage.replace(new RegExp(templatePars[i].template, 'g'), replaceFunc(i, templatePars[i]));
199
202
  }
200
203
  return {
201
204
  params: templatePars,
202
205
  message: newMessage
203
206
  };
204
207
  }
208
+ exports.stringParamsReplace = stringParamsReplace;
209
+ function templateMessageParamsReplace(rawMessage, replaceFunc) {
210
+ var _a;
211
+ let newRawMessage = (0, general_util_1.objectDeepClone)(rawMessage);
212
+ const { type } = rawMessage;
213
+ const templateParams = [];
214
+ const addParams = (params) => {
215
+ params.forEach(t => {
216
+ const exist = templateParams.find((item) => item.variable === t.variable);
217
+ if (!exist) {
218
+ templateParams.push(t);
219
+ }
220
+ });
221
+ };
222
+ const scanSuggestions = (suggestions) => {
223
+ for (let s = 0; s < suggestions.length; s += 1) {
224
+ const sg = suggestions[s];
225
+ if ((0, exports.hasText)(sg.text)) {
226
+ const sgTextParams = (0, exports.parseTemplatePartner)(sg.text);
227
+ addParams(sgTextParams);
228
+ }
229
+ if ((0, exports.hasText)(sg.postbackData)) {
230
+ const sgPostDataParams = (0, exports.parseTemplatePartner)(sg.postbackData);
231
+ addParams(sgPostDataParams);
232
+ }
233
+ if (model_1.SuggestionActionType.CALENDAR === sg.action) {
234
+ if ((0, exports.hasText)(sg.startTime)) {
235
+ const sgCalendarStartTimeParams = (0, exports.parseTemplatePartner)(sg.startTime);
236
+ addParams(sgCalendarStartTimeParams);
237
+ }
238
+ if ((0, exports.hasText)(sg.endTime)) {
239
+ const sgCalendarEndTimeParams = (0, exports.parseTemplatePartner)(sg.endTime);
240
+ addParams(sgCalendarEndTimeParams);
241
+ }
242
+ if ((0, exports.hasText)(sg.startDate)) {
243
+ const sgCalendarStartDateParams = (0, exports.parseTemplatePartner)(sg.startDate);
244
+ addParams(sgCalendarStartDateParams);
245
+ }
246
+ if ((0, exports.hasText)(sg.endDate)) {
247
+ const sgCalendarEndDateParams = (0, exports.parseTemplatePartner)(sg.endDate);
248
+ addParams(sgCalendarEndDateParams);
249
+ }
250
+ if ((0, exports.hasText)(sg.title)) {
251
+ const sgCalendarTitleParams = (0, exports.parseTemplatePartner)(sg.title);
252
+ addParams(sgCalendarTitleParams);
253
+ }
254
+ if ((0, exports.hasText)(sg.description)) {
255
+ const sgCalendarDescriptionParams = (0, exports.parseTemplatePartner)(sg.description);
256
+ addParams(sgCalendarDescriptionParams);
257
+ }
258
+ }
259
+ }
260
+ };
261
+ switch (type) {
262
+ case model_1.MESSAGE_TYPE.TEXT:
263
+ const textParams = (0, exports.parseTemplatePartner)(rawMessage.message);
264
+ addParams(textParams);
265
+ break;
266
+ case model_1.MESSAGE_TYPE.PICTURE:
267
+ case model_1.MESSAGE_TYPE.FILE:
268
+ case model_1.MESSAGE_TYPE.VIDEO:
269
+ const fileUrlParams = (0, exports.parseTemplatePartner)(rawMessage.fileUrl);
270
+ addParams(fileUrlParams);
271
+ if (rawMessage.thumbnailUrl) {
272
+ const thumbnailUrlParams = (0, exports.parseTemplatePartner)(rawMessage.thumbnailUrl);
273
+ addParams(thumbnailUrlParams);
274
+ }
275
+ break;
276
+ case model_1.MESSAGE_TYPE.RICH_CARD:
277
+ const { richCards = [] } = rawMessage;
278
+ for (let r = 0; r < richCards.length; r += 1) {
279
+ const rc = richCards[r];
280
+ if ((0, exports.hasText)(rc.title)) {
281
+ const rcTitleParams = (0, exports.parseTemplatePartner)(rc.title);
282
+ addParams(rcTitleParams);
283
+ }
284
+ if ((0, exports.hasText)(rc.description)) {
285
+ const rcDescriptionParams = (0, exports.parseTemplatePartner)(rc.description);
286
+ addParams(rcDescriptionParams);
287
+ }
288
+ if (rc.image) {
289
+ const rcImageParams = (0, exports.parseTemplatePartner)(rc.image);
290
+ addParams(rcImageParams);
291
+ }
292
+ if (rc.suggestions && rc.suggestions.length) {
293
+ scanSuggestions(rc.suggestions);
294
+ }
295
+ }
296
+ }
297
+ if ((rawMessage.suggestions && rawMessage.suggestions.length) ||
298
+ (rawMessage.templateMessageSuggestions &&
299
+ rawMessage.templateMessageSuggestions.length)) {
300
+ scanSuggestions(rawMessage.suggestions || rawMessage.templateMessageSuggestions);
301
+ }
302
+ const replaceString = (strMessage) => {
303
+ let newStringMessage = strMessage;
304
+ for (let t = 0; t < templateParams.length; t += 1) {
305
+ newStringMessage = newStringMessage.replace(new RegExp(templateParams[t].template, 'g'), replaceFunc(t, templateParams[t]));
306
+ }
307
+ return newStringMessage;
308
+ };
309
+ const replaceSuggestions = (suggestions) => {
310
+ for (let s = 0; s < suggestions.length; s += 1) {
311
+ const suggestion = suggestions[s];
312
+ if ((0, exports.hasText)(suggestion.text)) {
313
+ suggestion.text = replaceString(suggestion.text);
314
+ }
315
+ if ((0, exports.hasText)(suggestion.postbackData)) {
316
+ suggestion.postbackData = replaceString(suggestion.postbackData);
317
+ }
318
+ if (model_1.SuggestionActionType.CALENDAR === suggestion.action) {
319
+ if ((0, exports.hasText)(suggestion.startTime)) {
320
+ suggestion.startTime = replaceString(suggestion.startTime);
321
+ }
322
+ if ((0, exports.hasText)(suggestion.endTime)) {
323
+ suggestion.endTime = replaceString(suggestion.endTime);
324
+ }
325
+ if ((0, exports.hasText)(suggestion.startDate)) {
326
+ suggestion.startDate = replaceString(suggestion.startDate);
327
+ }
328
+ if ((0, exports.hasText)(suggestion.endDate)) {
329
+ suggestion.endDate = replaceString(suggestion.endDate);
330
+ }
331
+ if ((0, exports.hasText)(suggestion.title)) {
332
+ suggestion.title = replaceString(suggestion.title);
333
+ }
334
+ if ((0, exports.hasText)(suggestion.description)) {
335
+ suggestion.description = replaceString(suggestion.description);
336
+ }
337
+ }
338
+ }
339
+ };
340
+ switch (type) {
341
+ case model_1.MESSAGE_TYPE.TEXT:
342
+ newRawMessage.message = replaceString(newRawMessage.message);
343
+ break;
344
+ case model_1.MESSAGE_TYPE.PICTURE:
345
+ case model_1.MESSAGE_TYPE.FILE:
346
+ case model_1.MESSAGE_TYPE.VIDEO:
347
+ newRawMessage.fileUrl = replaceString(newRawMessage.fileUrl);
348
+ if (newRawMessage.thumbnailUrl) {
349
+ newRawMessage.thumbnailUrl = replaceString(newRawMessage.thumbnailUrl);
350
+ }
351
+ break;
352
+ case model_1.MESSAGE_TYPE.RICH_CARD:
353
+ const { richCards = [] } = newRawMessage;
354
+ for (let r = 0; r < richCards.length; r += 1) {
355
+ const richCard = richCards[r];
356
+ if ((0, exports.hasText)(richCard.title)) {
357
+ richCard.title = replaceString(richCard.title);
358
+ }
359
+ if ((0, exports.hasText)(richCard.description)) {
360
+ richCard.description = replaceString(richCard.description);
361
+ }
362
+ if ((0, exports.hasText)(richCard.image)) {
363
+ richCard.image = replaceString(richCard.image);
364
+ }
365
+ if (richCard.suggestions && richCard.suggestions.length) {
366
+ replaceSuggestions(richCard.suggestions);
367
+ }
368
+ }
369
+ }
370
+ if ((newRawMessage.suggestions && ((_a = newRawMessage.suggestions) === null || _a === void 0 ? void 0 : _a.length)) ||
371
+ (newRawMessage.templateMessageSuggestions &&
372
+ newRawMessage.templateMessageSuggestions.length)) {
373
+ replaceSuggestions(newRawMessage.suggestions || newRawMessage.templateMessageSuggestions);
374
+ }
375
+ return {
376
+ rawMessage: newRawMessage,
377
+ params: templateParams
378
+ };
379
+ }
205
380
  exports.templateMessageParamsReplace = templateMessageParamsReplace;
381
+ function valueParamsReplace(context, params, replaceFunc) {
382
+ const newParams = {};
383
+ for (let i = 0; i < params.length; i += 1) {
384
+ const key = replaceFunc(i, newParams[i]);
385
+ newParams[key] = _.get(context, params[i].variable, '');
386
+ }
387
+ return newParams;
388
+ }
389
+ exports.valueParamsReplace = valueParamsReplace;
206
390
  // This function converts the string to lowercase, then perform the conversion
207
391
  function toLowerCaseNonAccentVietnamese(str) {
208
392
  str = str.toLowerCase();
@@ -214,37 +398,37 @@ function toLowerCaseNonAccentVietnamese(str) {
214
398
  // str = str.replace(/\u00F9|\u00FA|\u1EE5|\u1EE7|\u0169|\u01B0|\u1EEB|\u1EE9|\u1EF1|\u1EED|\u1EEF/g, "u");
215
399
  // str = str.replace(/\u1EF3|\u00FD|\u1EF5|\u1EF7|\u1EF9/g, "y");
216
400
  // str = str.replace(/\u0111/g, "d");
217
- str = str.replace(/à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ/g, "a");
218
- str = str.replace(/è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ/g, "e");
219
- str = str.replace(/ì|í|ị|ỉ|ĩ/g, "i");
220
- str = str.replace(/ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ/g, "o");
221
- str = str.replace(/ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ/g, "u");
222
- str = str.replace(/ỳ|ý|ỵ|ỷ|ỹ/g, "y");
223
- str = str.replace(/đ/g, "d");
401
+ str = str.replace(/à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ/g, 'a');
402
+ str = str.replace(/è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ/g, 'e');
403
+ str = str.replace(/ì|í|ị|ỉ|ĩ/g, 'i');
404
+ str = str.replace(/ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ/g, 'o');
405
+ str = str.replace(/ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ/g, 'u');
406
+ str = str.replace(/ỳ|ý|ỵ|ỷ|ỹ/g, 'y');
407
+ str = str.replace(/đ/g, 'd');
224
408
  // Some system encode vietnamese combining accent as individual utf-8 characters
225
- str = str.replace(/\u0300|\u0301|\u0303|\u0309|\u0323/g, ""); // Huyền sắc hỏi ngã nặng
226
- str = str.replace(/\u02C6|\u0306|\u031B/g, ""); // Â, Ê, Ă, Ơ, Ư
409
+ str = str.replace(/\u0300|\u0301|\u0303|\u0309|\u0323/g, ''); // Huyền sắc hỏi ngã nặng
410
+ str = str.replace(/\u02C6|\u0306|\u031B/g, ''); // Â, Ê, Ă, Ơ, Ư
227
411
  return str;
228
412
  }
229
413
  exports.toLowerCaseNonAccentVietnamese = toLowerCaseNonAccentVietnamese;
230
414
  function toNonAccentVietnamese(str) {
231
- str = str.replace(/A|Á|À|Ã|Ạ|Â|Ấ|Ầ|Ẫ|Ậ|Ă|Ắ|Ằ|Ẵ|Ặ/g, "A");
232
- str = str.replace(/à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ/g, "a");
233
- str = str.replace(/E|É|È|Ẽ|Ẹ|Ê|Ế|Ề|Ễ|Ệ/, "E");
234
- str = str.replace(/è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ/g, "e");
235
- str = str.replace(/I|Í|Ì|Ĩ|Ị/g, "I");
236
- str = str.replace(/ì|í|ị|ỉ|ĩ/g, "i");
237
- str = str.replace(/O|Ó|Ò|Õ|Ọ|Ô|Ố|Ồ|Ỗ|Ộ|Ơ|Ớ|Ờ|Ỡ|Ợ/g, "O");
238
- str = str.replace(/ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ/g, "o");
239
- str = str.replace(/U|Ú|Ù|Ũ|Ụ|Ư|Ứ|Ừ|Ữ|Ự/g, "U");
240
- str = str.replace(/ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ/g, "u");
241
- str = str.replace(/Y|Ý|Ỳ|Ỹ|Ỵ/g, "Y");
242
- str = str.replace(/ỳ|ý|ỵ|ỷ|ỹ/g, "y");
243
- str = str.replace(/Đ/g, "D");
244
- str = str.replace(/đ/g, "d");
415
+ str = str.replace(/A|Á|À|Ã|Ạ|Â|Ấ|Ầ|Ẫ|Ậ|Ă|Ắ|Ằ|Ẵ|Ặ/g, 'A');
416
+ str = str.replace(/à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ/g, 'a');
417
+ str = str.replace(/E|É|È|Ẽ|Ẹ|Ê|Ế|Ề|Ễ|Ệ/, 'E');
418
+ str = str.replace(/è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ/g, 'e');
419
+ str = str.replace(/I|Í|Ì|Ĩ|Ị/g, 'I');
420
+ str = str.replace(/ì|í|ị|ỉ|ĩ/g, 'i');
421
+ str = str.replace(/O|Ó|Ò|Õ|Ọ|Ô|Ố|Ồ|Ỗ|Ộ|Ơ|Ớ|Ờ|Ỡ|Ợ/g, 'O');
422
+ str = str.replace(/ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ/g, 'o');
423
+ str = str.replace(/U|Ú|Ù|Ũ|Ụ|Ư|Ứ|Ừ|Ữ|Ự/g, 'U');
424
+ str = str.replace(/ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ/g, 'u');
425
+ str = str.replace(/Y|Ý|Ỳ|Ỹ|Ỵ/g, 'Y');
426
+ str = str.replace(/ỳ|ý|ỵ|ỷ|ỹ/g, 'y');
427
+ str = str.replace(/Đ/g, 'D');
428
+ str = str.replace(/đ/g, 'd');
245
429
  // Some system encode vietnamese combining accent as individual utf-8 characters
246
- str = str.replace(/\u0300|\u0301|\u0303|\u0309|\u0323/g, ""); // Huyền sắc hỏi ngã nặng
247
- str = str.replace(/\u02C6|\u0306|\u031B/g, ""); // Â, Ê, Ă, Ơ, Ư
430
+ str = str.replace(/\u0300|\u0301|\u0303|\u0309|\u0323/g, ''); // Huyền sắc hỏi ngã nặng
431
+ str = str.replace(/\u02C6|\u0306|\u031B/g, ''); // Â, Ê, Ă, Ơ, Ư
248
432
  return str;
249
433
  }
250
434
  exports.toNonAccentVietnamese = toNonAccentVietnamese;
@@ -1 +1 @@
1
- {"version":3,"file":"string.util.js","sourceRoot":"","sources":["../../../../../../packages/model/src/lib/util/string.util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"string.util.js","sourceRoot":"","sources":["../../../../../../packages/model/src/lib/util/string.util.ts"],"names":[],"mappings":"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"}