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.d.cts CHANGED
@@ -2,13 +2,14 @@ export { debounce, throttle } from './utils/timing-utils.cjs';
2
2
  export { checkUserAgentDspApp, getBrowserName, getBrowserVersion, getCurrentBrowserName, getCurrentBrowserVersion, getCurrentOSName, getCurrentOSVersion, getDeviceModel, getDspExecutionEnvironment, getFormFactorFromUserAgent, getOSName, getOSVersion, getOrCreateDeviceId, isAndroidDevice, isAndroidWebView, isDspApp, isFpPlannerApp, isIosDevice, isIosWebView, isPc, isPhone, isProductionApp, isSalesPortal, isTablet } from './utils/user-agent-utils.cjs';
3
3
  export { getApiHostNameFromEnvironment, getBusinessWorkDivisionCode, getCdnHostNameFromEnvironment, getDspApiBasePathFromEnvironment, getDudApiBasePathFromEnvironment, getEnvironmentFromHostname, getNlcHostFromEnvironment, getServicePath, getSubdomain, isClient, isStorybookEnv } from './utils/environment-utils.cjs';
4
4
  export { MessageEventManager } from './utils/event-handler-utils.cjs';
5
- export { convertTextToImg, drawImageResizeCentered } from './utils/canvas-utils.cjs';
5
+ export { convertTextToImg, drawImageResizeCentered, getTextWidth } from './utils/canvas-utils.cjs';
6
6
  export { deleteCookie, getCookie, setCookie } from './utils/cookie-utils.cjs';
7
7
  export { base64ToBlob, base64ToFile, blobToFile, downloadBlob, fileToBase64, getExt, imageUrlToFile, imageUrlToFileFetch, imageUrlToFileWithCanvas, imageUrlToFileWithXMLHttpRequest, objectUrlToBase64, objectUrlToBlob } from './utils/file-utils.cjs';
8
8
  export { addE2EObject, getE2EDataIDs, hasAstx2, initASTX2, loadScript } from './utils/astx2-utils.cjs';
9
9
  export { DateFormat, PeriodType, convertDateFormat, convertDateString, getDateDiff, getLastDay, getOneMonthLater, getPeriodDate, isDate, isDateAfter, isFutureDate, isValidDate, validateBirthdate } from './utils/date-utils.cjs';
10
10
  export { charFilterEng, charFilterKor, checkKeys, isArrowDown, isArrowLeft, isArrowRight, isArrowUp, isBackspace, isEnter, isEscape, isOverCharCount, isOverEngCharCount, isOverKorCharCount, isTab } from './utils/key-trigger-utils.cjs';
11
+ export { GENDER_LABEL_MAP, getGenderName } from './utils/gender.cjs';
11
12
  export { loadGaScript } from './utils/ga/index.cjs';
12
- export { BrowserName, ExecutionEnvironment, OSName } from './types/common.types.cjs';
13
+ export { BrowserName, ExecutionEnvironment, GenderCode, OSName } from './types/common.types.cjs';
13
14
  import 'dayjs';
14
15
  import 'react';
package/dist/index.d.ts CHANGED
@@ -2,13 +2,14 @@ export { debounce, throttle } from './utils/timing-utils.js';
2
2
  export { checkUserAgentDspApp, getBrowserName, getBrowserVersion, getCurrentBrowserName, getCurrentBrowserVersion, getCurrentOSName, getCurrentOSVersion, getDeviceModel, getDspExecutionEnvironment, getFormFactorFromUserAgent, getOSName, getOSVersion, getOrCreateDeviceId, isAndroidDevice, isAndroidWebView, isDspApp, isFpPlannerApp, isIosDevice, isIosWebView, isPc, isPhone, isProductionApp, isSalesPortal, isTablet } from './utils/user-agent-utils.js';
3
3
  export { getApiHostNameFromEnvironment, getBusinessWorkDivisionCode, getCdnHostNameFromEnvironment, getDspApiBasePathFromEnvironment, getDudApiBasePathFromEnvironment, getEnvironmentFromHostname, getNlcHostFromEnvironment, getServicePath, getSubdomain, isClient, isStorybookEnv } from './utils/environment-utils.js';
4
4
  export { MessageEventManager } from './utils/event-handler-utils.js';
5
- export { convertTextToImg, drawImageResizeCentered } from './utils/canvas-utils.js';
5
+ export { convertTextToImg, drawImageResizeCentered, getTextWidth } from './utils/canvas-utils.js';
6
6
  export { deleteCookie, getCookie, setCookie } from './utils/cookie-utils.js';
7
7
  export { base64ToBlob, base64ToFile, blobToFile, downloadBlob, fileToBase64, getExt, imageUrlToFile, imageUrlToFileFetch, imageUrlToFileWithCanvas, imageUrlToFileWithXMLHttpRequest, objectUrlToBase64, objectUrlToBlob } from './utils/file-utils.js';
8
8
  export { addE2EObject, getE2EDataIDs, hasAstx2, initASTX2, loadScript } from './utils/astx2-utils.js';
9
9
  export { DateFormat, PeriodType, convertDateFormat, convertDateString, getDateDiff, getLastDay, getOneMonthLater, getPeriodDate, isDate, isDateAfter, isFutureDate, isValidDate, validateBirthdate } from './utils/date-utils.js';
10
10
  export { charFilterEng, charFilterKor, checkKeys, isArrowDown, isArrowLeft, isArrowRight, isArrowUp, isBackspace, isEnter, isEscape, isOverCharCount, isOverEngCharCount, isOverKorCharCount, isTab } from './utils/key-trigger-utils.js';
11
+ export { GENDER_LABEL_MAP, getGenderName } from './utils/gender.js';
11
12
  export { loadGaScript } from './utils/ga/index.js';
12
- export { BrowserName, ExecutionEnvironment, OSName } from './types/common.types.js';
13
+ export { BrowserName, ExecutionEnvironment, GenderCode, OSName } from './types/common.types.js';
13
14
  import 'dayjs';
14
15
  import 'react';
package/dist/index.js CHANGED
@@ -128,7 +128,10 @@ var isStorybookEnv = () => {
128
128
  return false;
129
129
  }
130
130
  };
131
- var getBusinessWorkDivisionCode = () => {
131
+ var getBusinessWorkDivisionCode = (pathname) => {
132
+ if (pathname) {
133
+ return pathname.split("/")[1] ?? "";
134
+ }
132
135
  return location.pathname.split("/")[1] ?? "";
133
136
  };
134
137
  var getServicePath = () => {
@@ -610,6 +613,11 @@ __publicField(_MessageEventManager, "instance");
610
613
  var MessageEventManager = _MessageEventManager;
611
614
 
612
615
  // src/utils/canvas-utils.ts
616
+ var getTextWidth = (text, font, context) => {
617
+ context.font = font;
618
+ const metrics = context.measureText(text);
619
+ return metrics.width;
620
+ };
613
621
  var convertTextToImg = ({
614
622
  targetStr,
615
623
  canvasWidth,
@@ -625,8 +633,9 @@ var convertTextToImg = ({
625
633
  if (!ctx) {
626
634
  throw new Error("Canvas context\uB97C \uAC00\uC838\uC62C \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.");
627
635
  }
636
+ const font = `${fontWeight ?? "normal"} ${fontSize ?? 75}px ${fontFamily}`;
628
637
  const defaultHeight = 150;
629
- const calculatedWidth = targetStr.length * 70;
638
+ const calculatedWidth = getTextWidth(targetStr, font, ctx);
630
639
  canvas.width = canvasWidth ?? calculatedWidth;
631
640
  canvas.height = canvasHeight ?? defaultHeight;
632
641
  if (backgroundColor) {
@@ -635,8 +644,7 @@ var convertTextToImg = ({
635
644
  }
636
645
  ctx.fillStyle = fontColor ?? "black";
637
646
  ctx.textAlign = "center";
638
- ctx.font = `${fontWeight ?? "normal"} ${fontSize ?? 75}px ${fontFamily}`;
639
- console.log("font", `${fontWeight ?? "normal"} ${fontSize ?? 75}px ${fontFamily}`);
647
+ ctx.font = font;
640
648
  ctx.textBaseline = "middle";
641
649
  ctx.fillText(targetStr, canvas.width / 2, canvas.height / 2);
642
650
  return canvas.toDataURL();
@@ -678,23 +686,40 @@ function base64ToBlob(base64String, contentType = "") {
678
686
  const regex = /^data:([a-zA-Z0-9/+.-]+);base64,/;
679
687
  const matches = base64String.match(regex);
680
688
  if (matches === null) {
681
- throw new Error("Invalid base64 string");
689
+ const debugInfo = {
690
+ base64String
691
+ };
692
+ throw new Error(`Invalid base64 string format. Debug info: ${JSON.stringify(debugInfo, null, 2)}`);
682
693
  }
683
694
  const contentTypeFinal = contentType || matches[1];
684
- const byteCharacters = atob(base64String.replace(regex, ""));
685
- const byteNumbers = new Array(byteCharacters.length);
686
- for (let i = 0; i < byteCharacters.length; i++) {
687
- byteNumbers[i] = byteCharacters.charCodeAt(i);
695
+ try {
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);
700
+ }
701
+ const byteArray = new Uint8Array(byteNumbers);
702
+ return new Blob([byteArray], { type: contentTypeFinal });
703
+ } catch (error) {
704
+ throw new Error(
705
+ `Failed to decode base64 string. Original error: ${error instanceof Error ? error.message : "Unknown error"}. String length: ${base64String?.length}, Content type: ${contentTypeFinal}`
706
+ );
688
707
  }
689
- const byteArray = new Uint8Array(byteNumbers);
690
- return new Blob([byteArray], { type: contentTypeFinal });
691
708
  }
692
709
  function base64ToFile(base64String, fileName, contentType = "") {
693
- const blob = base64ToBlob(base64String, contentType);
694
- if (!blob) {
695
- throw new Error("Invalid base64 string");
710
+ try {
711
+ const blob = base64ToBlob(base64String, contentType);
712
+ if (!blob) {
713
+ throw new Error(
714
+ `Failed to create blob. FileName: ${fileName}, ContentType: ${contentType}, StringLength: ${base64String?.length}`
715
+ );
716
+ }
717
+ return blobToFile(blob, fileName);
718
+ } catch (error) {
719
+ throw new Error(
720
+ `base64ToFile failed for "${fileName}". ${error instanceof Error ? error.message : "Unknown error"}`
721
+ );
696
722
  }
697
- return blobToFile(blob, fileName);
698
723
  }
699
724
  function blobToFile(blob, fileName) {
700
725
  return new File([blob], fileName, {
@@ -1145,6 +1170,21 @@ function isOverEngCharCount(value, count) {
1145
1170
  return false;
1146
1171
  }
1147
1172
 
1173
+ // src/utils/gender.ts
1174
+ var GENDER_LABEL_MAP = {
1175
+ "1": "\uB0A8\uC131",
1176
+ "2": "\uC5EC\uC131",
1177
+ "3": "\uB0A8\uC131",
1178
+ "4": "\uC5EC\uC131",
1179
+ "5": "\uB0A8\uC131",
1180
+ "6": "\uC5EC\uC131",
1181
+ "7": "\uB0A8\uC131",
1182
+ "8": "\uC5EC\uC131"
1183
+ };
1184
+ var getGenderName = (genderCode) => {
1185
+ return genderCode ? GENDER_LABEL_MAP[genderCode] : "";
1186
+ };
1187
+
1148
1188
  // src/utils/ga/ga.js
1149
1189
  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";
1150
1190
 
@@ -1163,6 +1203,6 @@ var loadGaScript = () => {
1163
1203
  }
1164
1204
  };
1165
1205
 
1166
- export { MessageEventManager, addE2EObject, base64ToBlob, base64ToFile, blobToFile, charFilterEng, charFilterKor, checkKeys, checkUserAgentDspApp, convertDateFormat, convertDateString, convertTextToImg, debounce, deleteCookie, downloadBlob, drawImageResizeCentered, fileToBase64, getApiHostNameFromEnvironment, getBrowserName, getBrowserVersion, getBusinessWorkDivisionCode, getCdnHostNameFromEnvironment, getCookie, getCurrentBrowserName, getCurrentBrowserVersion, getCurrentOSName, getCurrentOSVersion, getDateDiff, getDeviceModel, getDspApiBasePathFromEnvironment, getDspExecutionEnvironment, getDudApiBasePathFromEnvironment, getE2EDataIDs, getEnvironmentFromHostname, getExt, getFormFactorFromUserAgent, getLastDay, getNlcHostFromEnvironment, getOSName, getOSVersion, getOneMonthLater, getOrCreateDeviceId, getPeriodDate, getServicePath, getSubdomain, hasAstx2, imageUrlToFile, imageUrlToFileFetch, imageUrlToFileWithCanvas, imageUrlToFileWithXMLHttpRequest, initASTX2, isAndroidDevice, isAndroidWebView, isArrowDown, isArrowLeft, isArrowRight, isArrowUp, isBackspace, isClient, isDate, isDateAfter, isDspApp, isEnter, isEscape, isFpPlannerApp, isFutureDate, isIosDevice, isIosWebView, isOverCharCount, isOverEngCharCount, isOverKorCharCount, isPc, isPhone, isProductionApp, isSalesPortal, isStorybookEnv, isTab, isTablet, isValidDate, loadGaScript, loadScript, objectUrlToBase64, objectUrlToBlob, setCookie, throttle, validateBirthdate };
1206
+ export { GENDER_LABEL_MAP, MessageEventManager, addE2EObject, base64ToBlob, base64ToFile, blobToFile, charFilterEng, charFilterKor, checkKeys, checkUserAgentDspApp, convertDateFormat, convertDateString, convertTextToImg, debounce, deleteCookie, downloadBlob, drawImageResizeCentered, fileToBase64, getApiHostNameFromEnvironment, getBrowserName, getBrowserVersion, getBusinessWorkDivisionCode, getCdnHostNameFromEnvironment, getCookie, getCurrentBrowserName, getCurrentBrowserVersion, getCurrentOSName, getCurrentOSVersion, getDateDiff, getDeviceModel, getDspApiBasePathFromEnvironment, getDspExecutionEnvironment, getDudApiBasePathFromEnvironment, getE2EDataIDs, getEnvironmentFromHostname, getExt, getFormFactorFromUserAgent, getGenderName, getLastDay, getNlcHostFromEnvironment, getOSName, getOSVersion, getOneMonthLater, getOrCreateDeviceId, getPeriodDate, getServicePath, getSubdomain, getTextWidth, hasAstx2, imageUrlToFile, imageUrlToFileFetch, imageUrlToFileWithCanvas, imageUrlToFileWithXMLHttpRequest, initASTX2, isAndroidDevice, isAndroidWebView, isArrowDown, isArrowLeft, isArrowRight, isArrowUp, isBackspace, isClient, isDate, isDateAfter, isDspApp, isEnter, isEscape, isFpPlannerApp, isFutureDate, isIosDevice, isIosWebView, isOverCharCount, isOverEngCharCount, isOverKorCharCount, isPc, isPhone, isProductionApp, isSalesPortal, isStorybookEnv, isTab, isTablet, isValidDate, loadGaScript, loadScript, objectUrlToBase64, objectUrlToBlob, setCookie, throttle, validateBirthdate };
1167
1207
  //# sourceMappingURL=index.js.map
1168
1208
  //# sourceMappingURL=index.js.map