sales-frontend-utils 0.0.55 → 0.0.57

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.
Files changed (37) hide show
  1. package/dist/index.cjs +103 -12
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +3 -1
  4. package/dist/index.d.ts +3 -1
  5. package/dist/index.js +99 -13
  6. package/dist/index.js.map +1 -1
  7. package/dist/types/common.types.d.cts +5 -1
  8. package/dist/types/common.types.d.ts +5 -1
  9. package/dist/utils/cookie-utils.cjs.map +1 -1
  10. package/dist/utils/cookie-utils.js.map +1 -1
  11. package/dist/utils/download-utils.cjs +84 -0
  12. package/dist/utils/download-utils.cjs.map +1 -0
  13. package/dist/utils/download-utils.d.cts +8 -0
  14. package/dist/utils/download-utils.d.ts +8 -0
  15. package/dist/utils/download-utils.js +80 -0
  16. package/dist/utils/download-utils.js.map +1 -0
  17. package/dist/utils/environment-utils.cjs +4 -1
  18. package/dist/utils/environment-utils.cjs.map +1 -1
  19. package/dist/utils/environment-utils.d.cts +1 -1
  20. package/dist/utils/environment-utils.d.ts +1 -1
  21. package/dist/utils/environment-utils.js +4 -1
  22. package/dist/utils/environment-utils.js.map +1 -1
  23. package/dist/utils/file-utils.cjs +28 -11
  24. package/dist/utils/file-utils.cjs.map +1 -1
  25. package/dist/utils/file-utils.js +28 -11
  26. package/dist/utils/file-utils.js.map +1 -1
  27. package/dist/utils/ga/index.cjs.map +1 -1
  28. package/dist/utils/ga/index.js.map +1 -1
  29. package/dist/utils/gender.cjs +21 -0
  30. package/dist/utils/gender.cjs.map +1 -0
  31. package/dist/utils/gender.d.cts +15 -0
  32. package/dist/utils/gender.d.ts +15 -0
  33. package/dist/utils/gender.js +18 -0
  34. package/dist/utils/gender.js.map +1 -0
  35. package/dist/utils/user-agent-utils.cjs.map +1 -1
  36. package/dist/utils/user-agent-utils.js.map +1 -1
  37. package/package.json +21 -1
package/dist/index.cjs CHANGED
@@ -135,7 +135,10 @@ var isStorybookEnv = () => {
135
135
  return false;
136
136
  }
137
137
  };
138
- var getBusinessWorkDivisionCode = () => {
138
+ var getBusinessWorkDivisionCode = (pathname) => {
139
+ if (pathname) {
140
+ return pathname.split("/")[1] ?? "";
141
+ }
139
142
  return location.pathname.split("/")[1] ?? "";
140
143
  };
141
144
  var getServicePath = () => {
@@ -690,23 +693,40 @@ function base64ToBlob(base64String, contentType = "") {
690
693
  const regex = /^data:([a-zA-Z0-9/+.-]+);base64,/;
691
694
  const matches = base64String.match(regex);
692
695
  if (matches === null) {
693
- throw new Error("Invalid base64 string");
696
+ const debugInfo = {
697
+ base64String
698
+ };
699
+ throw new Error(`Invalid base64 string format. Debug info: ${JSON.stringify(debugInfo, null, 2)}`);
694
700
  }
695
701
  const contentTypeFinal = contentType || matches[1];
696
- const byteCharacters = atob(base64String.replace(regex, ""));
697
- const byteNumbers = new Array(byteCharacters.length);
698
- for (let i = 0; i < byteCharacters.length; i++) {
699
- byteNumbers[i] = byteCharacters.charCodeAt(i);
702
+ try {
703
+ const byteCharacters = atob(base64String.replace(regex, ""));
704
+ const byteNumbers = new Array(byteCharacters.length);
705
+ for (let i = 0; i < byteCharacters.length; i++) {
706
+ byteNumbers[i] = byteCharacters.charCodeAt(i);
707
+ }
708
+ const byteArray = new Uint8Array(byteNumbers);
709
+ return new Blob([byteArray], { type: contentTypeFinal });
710
+ } catch (error) {
711
+ throw new Error(
712
+ `Failed to decode base64 string. Original error: ${error instanceof Error ? error.message : "Unknown error"}. String length: ${base64String?.length}, Content type: ${contentTypeFinal}`
713
+ );
700
714
  }
701
- const byteArray = new Uint8Array(byteNumbers);
702
- return new Blob([byteArray], { type: contentTypeFinal });
703
715
  }
704
716
  function base64ToFile(base64String, fileName, contentType = "") {
705
- const blob = base64ToBlob(base64String, contentType);
706
- if (!blob) {
707
- throw new Error("Invalid base64 string");
717
+ try {
718
+ const blob = base64ToBlob(base64String, contentType);
719
+ if (!blob) {
720
+ throw new Error(
721
+ `Failed to create blob. FileName: ${fileName}, ContentType: ${contentType}, StringLength: ${base64String?.length}`
722
+ );
723
+ }
724
+ return blobToFile(blob, fileName);
725
+ } catch (error) {
726
+ throw new Error(
727
+ `base64ToFile failed for "${fileName}". ${error instanceof Error ? error.message : "Unknown error"}`
728
+ );
708
729
  }
709
- return blobToFile(blob, fileName);
710
730
  }
711
731
  function blobToFile(blob, fileName) {
712
732
  return new File([blob], fileName, {
@@ -1157,6 +1177,72 @@ function isOverEngCharCount(value, count) {
1157
1177
  return false;
1158
1178
  }
1159
1179
 
1180
+ // src/utils/gender.ts
1181
+ var GENDER_LABEL_MAP = {
1182
+ "1": "\uB0A8\uC131",
1183
+ "2": "\uC5EC\uC131",
1184
+ "3": "\uB0A8\uC131",
1185
+ "4": "\uC5EC\uC131",
1186
+ "5": "\uB0A8\uC131",
1187
+ "6": "\uC5EC\uC131",
1188
+ "7": "\uB0A8\uC131",
1189
+ "8": "\uC5EC\uC131"
1190
+ };
1191
+ var getGenderName = (genderCode) => {
1192
+ return genderCode ? GENDER_LABEL_MAP[genderCode] : "";
1193
+ };
1194
+
1195
+ // src/utils/download-utils.ts
1196
+ var getBlobUrl = async (url) => {
1197
+ let downloadUrl = "";
1198
+ if (url.startsWith("http")) {
1199
+ const response = await fetch(url);
1200
+ if (!response.ok) {
1201
+ throw new Error(`Failed to download ${url}`);
1202
+ }
1203
+ const blob = await response.blob();
1204
+ downloadUrl = window.URL.createObjectURL(blob);
1205
+ } else if (url.startsWith("blob")) {
1206
+ downloadUrl = url;
1207
+ } else if (url.startsWith("data")) {
1208
+ downloadUrl = URL.createObjectURL(base64ToBlob(url));
1209
+ } else {
1210
+ throw new Error(`unknown type : ${url}`);
1211
+ }
1212
+ return downloadUrl;
1213
+ };
1214
+ var downloadFromNewWindow = async (url, fileName) => {
1215
+ try {
1216
+ const aTag = document.createElement("a");
1217
+ const downloadUrl = await getBlobUrl(url);
1218
+ aTag.href = downloadUrl;
1219
+ aTag.download = fileName;
1220
+ const newWin = window.open();
1221
+ newWin?.document.body.appendChild(aTag);
1222
+ aTag.click();
1223
+ aTag.remove();
1224
+ window.URL.revokeObjectURL(downloadUrl);
1225
+ } catch (e) {
1226
+ console.error(e);
1227
+ throw e;
1228
+ }
1229
+ };
1230
+ var downloadFromCurrentWindow = async (url, fileName) => {
1231
+ try {
1232
+ const a = document.createElement("a");
1233
+ const downloadUrl = await getBlobUrl(url);
1234
+ a.href = downloadUrl;
1235
+ a.download = fileName;
1236
+ document.body.appendChild(a);
1237
+ a.click();
1238
+ a.remove();
1239
+ window.URL.revokeObjectURL(downloadUrl);
1240
+ } catch (e) {
1241
+ console.error(e);
1242
+ throw e;
1243
+ }
1244
+ };
1245
+
1160
1246
  // src/utils/ga/ga.js
1161
1247
  var ga_default = "(function (w, d, s, l, i) {\n w[l] = w[l] || [];\n w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' });\n let f = d.getElementsByTagName(s)[0],\n j = d.createElement(s),\n dl = l !== 'dataLayer' ? `&l=${l}` : '';\n j.async = true;\n j.src = `https://www.googletagmanager.com/gtm.js?id=${i}${dl}`;\n f.parentNode.insertBefore(j, f);\n})(window, document, 'script', 'dataLayer', 'GTM-PPT3LJ56');\n";
1162
1248
 
@@ -1175,6 +1261,7 @@ var loadGaScript = () => {
1175
1261
  }
1176
1262
  };
1177
1263
 
1264
+ exports.GENDER_LABEL_MAP = GENDER_LABEL_MAP;
1178
1265
  exports.MessageEventManager = MessageEventManager;
1179
1266
  exports.addE2EObject = addE2EObject;
1180
1267
  exports.base64ToBlob = base64ToBlob;
@@ -1190,9 +1277,12 @@ exports.convertTextToImg = convertTextToImg;
1190
1277
  exports.debounce = debounce;
1191
1278
  exports.deleteCookie = deleteCookie;
1192
1279
  exports.downloadBlob = downloadBlob;
1280
+ exports.downloadFromCurrentWindow = downloadFromCurrentWindow;
1281
+ exports.downloadFromNewWindow = downloadFromNewWindow;
1193
1282
  exports.drawImageResizeCentered = drawImageResizeCentered;
1194
1283
  exports.fileToBase64 = fileToBase64;
1195
1284
  exports.getApiHostNameFromEnvironment = getApiHostNameFromEnvironment;
1285
+ exports.getBlobUrl = getBlobUrl;
1196
1286
  exports.getBrowserName = getBrowserName;
1197
1287
  exports.getBrowserVersion = getBrowserVersion;
1198
1288
  exports.getBusinessWorkDivisionCode = getBusinessWorkDivisionCode;
@@ -1211,6 +1301,7 @@ exports.getE2EDataIDs = getE2EDataIDs;
1211
1301
  exports.getEnvironmentFromHostname = getEnvironmentFromHostname;
1212
1302
  exports.getExt = getExt;
1213
1303
  exports.getFormFactorFromUserAgent = getFormFactorFromUserAgent;
1304
+ exports.getGenderName = getGenderName;
1214
1305
  exports.getLastDay = getLastDay;
1215
1306
  exports.getNlcHostFromEnvironment = getNlcHostFromEnvironment;
1216
1307
  exports.getOSName = getOSName;