sales-frontend-utils 0.0.54 → 0.0.56

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 +58 -15
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +3 -2
  4. package/dist/index.d.ts +3 -2
  5. package/dist/index.js +56 -16
  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/canvas-utils.cjs +9 -3
  10. package/dist/utils/canvas-utils.cjs.map +1 -1
  11. package/dist/utils/canvas-utils.d.cts +2 -1
  12. package/dist/utils/canvas-utils.d.ts +2 -1
  13. package/dist/utils/canvas-utils.js +9 -4
  14. package/dist/utils/canvas-utils.js.map +1 -1
  15. package/dist/utils/cookie-utils.cjs.map +1 -1
  16. package/dist/utils/cookie-utils.js.map +1 -1
  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 +13 -3
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 = () => {
@@ -617,6 +620,11 @@ __publicField(_MessageEventManager, "instance");
617
620
  var MessageEventManager = _MessageEventManager;
618
621
 
619
622
  // src/utils/canvas-utils.ts
623
+ var getTextWidth = (text, font, context) => {
624
+ context.font = font;
625
+ const metrics = context.measureText(text);
626
+ return metrics.width;
627
+ };
620
628
  var convertTextToImg = ({
621
629
  targetStr,
622
630
  canvasWidth,
@@ -632,8 +640,9 @@ var convertTextToImg = ({
632
640
  if (!ctx) {
633
641
  throw new Error("Canvas context\uB97C \uAC00\uC838\uC62C \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.");
634
642
  }
643
+ const font = `${fontWeight ?? "normal"} ${fontSize ?? 75}px ${fontFamily}`;
635
644
  const defaultHeight = 150;
636
- const calculatedWidth = targetStr.length * 70;
645
+ const calculatedWidth = getTextWidth(targetStr, font, ctx);
637
646
  canvas.width = canvasWidth ?? calculatedWidth;
638
647
  canvas.height = canvasHeight ?? defaultHeight;
639
648
  if (backgroundColor) {
@@ -642,8 +651,7 @@ var convertTextToImg = ({
642
651
  }
643
652
  ctx.fillStyle = fontColor ?? "black";
644
653
  ctx.textAlign = "center";
645
- ctx.font = `${fontWeight ?? "normal"} ${fontSize ?? 75}px ${fontFamily}`;
646
- console.log("font", `${fontWeight ?? "normal"} ${fontSize ?? 75}px ${fontFamily}`);
654
+ ctx.font = font;
647
655
  ctx.textBaseline = "middle";
648
656
  ctx.fillText(targetStr, canvas.width / 2, canvas.height / 2);
649
657
  return canvas.toDataURL();
@@ -685,23 +693,40 @@ function base64ToBlob(base64String, contentType = "") {
685
693
  const regex = /^data:([a-zA-Z0-9/+.-]+);base64,/;
686
694
  const matches = base64String.match(regex);
687
695
  if (matches === null) {
688
- 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)}`);
689
700
  }
690
701
  const contentTypeFinal = contentType || matches[1];
691
- const byteCharacters = atob(base64String.replace(regex, ""));
692
- const byteNumbers = new Array(byteCharacters.length);
693
- for (let i = 0; i < byteCharacters.length; i++) {
694
- 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
+ );
695
714
  }
696
- const byteArray = new Uint8Array(byteNumbers);
697
- return new Blob([byteArray], { type: contentTypeFinal });
698
715
  }
699
716
  function base64ToFile(base64String, fileName, contentType = "") {
700
- const blob = base64ToBlob(base64String, contentType);
701
- if (!blob) {
702
- 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
+ );
703
729
  }
704
- return blobToFile(blob, fileName);
705
730
  }
706
731
  function blobToFile(blob, fileName) {
707
732
  return new File([blob], fileName, {
@@ -1152,6 +1177,21 @@ function isOverEngCharCount(value, count) {
1152
1177
  return false;
1153
1178
  }
1154
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
+
1155
1195
  // src/utils/ga/ga.js
1156
1196
  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";
1157
1197
 
@@ -1170,6 +1210,7 @@ var loadGaScript = () => {
1170
1210
  }
1171
1211
  };
1172
1212
 
1213
+ exports.GENDER_LABEL_MAP = GENDER_LABEL_MAP;
1173
1214
  exports.MessageEventManager = MessageEventManager;
1174
1215
  exports.addE2EObject = addE2EObject;
1175
1216
  exports.base64ToBlob = base64ToBlob;
@@ -1206,6 +1247,7 @@ exports.getE2EDataIDs = getE2EDataIDs;
1206
1247
  exports.getEnvironmentFromHostname = getEnvironmentFromHostname;
1207
1248
  exports.getExt = getExt;
1208
1249
  exports.getFormFactorFromUserAgent = getFormFactorFromUserAgent;
1250
+ exports.getGenderName = getGenderName;
1209
1251
  exports.getLastDay = getLastDay;
1210
1252
  exports.getNlcHostFromEnvironment = getNlcHostFromEnvironment;
1211
1253
  exports.getOSName = getOSName;
@@ -1215,6 +1257,7 @@ exports.getOrCreateDeviceId = getOrCreateDeviceId;
1215
1257
  exports.getPeriodDate = getPeriodDate;
1216
1258
  exports.getServicePath = getServicePath;
1217
1259
  exports.getSubdomain = getSubdomain;
1260
+ exports.getTextWidth = getTextWidth;
1218
1261
  exports.hasAstx2 = hasAstx2;
1219
1262
  exports.imageUrlToFile = imageUrlToFile;
1220
1263
  exports.imageUrlToFileFetch = imageUrlToFileFetch;