customer-chat-sdk 1.1.18 → 1.1.19

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.
@@ -1 +1 @@
1
- {"version":3,"file":"IframeManager.d.ts","sourceRoot":"","sources":["../../src/core/IframeManager.ts"],"names":[],"mappings":"AACA,UAAU,aAAa;IACrB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,OAAO,CAAA;IACtC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,CAAA;IAC7B,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,CAAA;IACpD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,gBAAgB,CAA2B;IACnD,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,cAAc,CAA+C;gBAEzD,MAAM,GAAE,aAAkB;IAetC;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgC3B;;OAEG;IACH,IAAI,IAAI,IAAI;IA2CZ;;OAEG;IACH,IAAI,IAAI,IAAI;IAIZ;;OAEG;IACH,IAAI,IAAI,IAAI;IA6BZ;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,OAAO,IAAI,IAAI;IAsBf;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAM7B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAa/B;;OAEG;IACH,OAAO,CAAC,YAAY;IAwNpB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA8D1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoCzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAKtB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAOrB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgC5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyG3B;;;;;;;;;OASG;IACH,OAAO,CAAC,sBAAsB;IA+B9B;;OAEG;IACH,OAAO,CAAC,YAAY;IAOpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CA0BzB"}
1
+ {"version":3,"file":"IframeManager.d.ts","sourceRoot":"","sources":["../../src/core/IframeManager.ts"],"names":[],"mappings":"AACA,UAAU,aAAa;IACrB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,OAAO,CAAA;IACtC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,CAAA;IAC7B,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,CAAA;IACpD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,gBAAgB,CAA2B;IACnD,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,cAAc,CAA+C;gBAEzD,MAAM,GAAE,aAAkB;IAetC;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgC3B;;OAEG;IACH,IAAI,IAAI,IAAI;IAoEZ;;OAEG;IACH,IAAI,IAAI,IAAI;IAIZ;;OAEG;IACH,IAAI,IAAI,IAAI;IA6BZ;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,OAAO,IAAI,IAAI;IAsBf;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAM7B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAa/B;;OAEG;IACH,OAAO,CAAC,YAAY;IAwNpB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA8D1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoCzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAKtB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAOrB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgC5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyG3B;;;;;;;;;OASG;IACH,OAAO,CAAC,sBAAsB;IA+B9B;;OAEG;IACH,OAAO,CAAC,YAAY;IAOpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CA0BzB"}
@@ -2210,16 +2210,42 @@ class IframeManager {
2210
2210
  if (this.containerElement) {
2211
2211
  // 确保容器在 DOM 中(理论上已经在 init() 时添加,但为了安全)
2212
2212
  if (!this.containerElement.parentNode) {
2213
- // 如果容器不在 DOM 中(异常情况),直接添加到 body
2214
- document.body.appendChild(this.containerElement);
2213
+ // 如果容器不在 DOM 中(异常情况),添加到 target 或 body
2214
+ if (this.targetElement && this.targetElement !== document.body) {
2215
+ // 确保 target 是相对定位
2216
+ const targetStyle = window.getComputedStyle(this.targetElement);
2217
+ if (targetStyle.position === 'static') {
2218
+ this.targetElement.style.position = 'relative';
2219
+ }
2220
+ this.targetElement.appendChild(this.containerElement);
2221
+ if (this.debug) {
2222
+ console.log('Iframe container re-added to target element in show()');
2223
+ }
2224
+ }
2225
+ else {
2226
+ // 没有 target 或 target 是 body,添加到 body
2227
+ document.body.appendChild(this.containerElement);
2228
+ if (this.debug) {
2229
+ console.log('Iframe container re-added to document.body in show()');
2230
+ }
2231
+ }
2215
2232
  }
2216
- // PC和移动端都使用全屏模式
2217
- Object.assign(this.containerElement.style, {
2233
+ // 根据是否有 target 设置正确的定位方式
2234
+ const useTargetWidth = !!this.targetElement && this.targetElement !== document.body;
2235
+ const displayStyles = useTargetWidth ? {
2236
+ // 使用 target 时,保持 absolute 定位(相对于 target)
2237
+ position: 'absolute',
2238
+ visibility: 'visible',
2239
+ opacity: '1',
2240
+ display: 'block'
2241
+ } : {
2242
+ // 没有 target 时,使用 fixed 定位(相对于视口)
2218
2243
  position: 'fixed',
2219
2244
  visibility: 'visible',
2220
2245
  opacity: '1',
2221
2246
  display: 'block'
2222
- });
2247
+ };
2248
+ Object.assign(this.containerElement.style, displayStyles);
2223
2249
  // 禁用body滚动,防止出现滚动条
2224
2250
  this.preventBodyScroll(true);
2225
2251
  }
@@ -23046,7 +23072,7 @@ class CustomerServiceSDK {
23046
23072
  url.searchParams.set('Authorization', config.token);
23047
23073
  }
23048
23074
  url.searchParams.set('DeviceSign', deviceId);
23049
- url.searchParams.set('Referrer', config.referrer || document.referrer);
23075
+ url.searchParams.set('Referrer', config.referrer || document.referrer || document.location.href);
23050
23076
  return url.toString();
23051
23077
  }
23052
23078
  }
@@ -2206,16 +2206,42 @@ class IframeManager {
2206
2206
  if (this.containerElement) {
2207
2207
  // 确保容器在 DOM 中(理论上已经在 init() 时添加,但为了安全)
2208
2208
  if (!this.containerElement.parentNode) {
2209
- // 如果容器不在 DOM 中(异常情况),直接添加到 body
2210
- document.body.appendChild(this.containerElement);
2209
+ // 如果容器不在 DOM 中(异常情况),添加到 target 或 body
2210
+ if (this.targetElement && this.targetElement !== document.body) {
2211
+ // 确保 target 是相对定位
2212
+ const targetStyle = window.getComputedStyle(this.targetElement);
2213
+ if (targetStyle.position === 'static') {
2214
+ this.targetElement.style.position = 'relative';
2215
+ }
2216
+ this.targetElement.appendChild(this.containerElement);
2217
+ if (this.debug) {
2218
+ console.log('Iframe container re-added to target element in show()');
2219
+ }
2220
+ }
2221
+ else {
2222
+ // 没有 target 或 target 是 body,添加到 body
2223
+ document.body.appendChild(this.containerElement);
2224
+ if (this.debug) {
2225
+ console.log('Iframe container re-added to document.body in show()');
2226
+ }
2227
+ }
2211
2228
  }
2212
- // PC和移动端都使用全屏模式
2213
- Object.assign(this.containerElement.style, {
2229
+ // 根据是否有 target 设置正确的定位方式
2230
+ const useTargetWidth = !!this.targetElement && this.targetElement !== document.body;
2231
+ const displayStyles = useTargetWidth ? {
2232
+ // 使用 target 时,保持 absolute 定位(相对于 target)
2233
+ position: 'absolute',
2234
+ visibility: 'visible',
2235
+ opacity: '1',
2236
+ display: 'block'
2237
+ } : {
2238
+ // 没有 target 时,使用 fixed 定位(相对于视口)
2214
2239
  position: 'fixed',
2215
2240
  visibility: 'visible',
2216
2241
  opacity: '1',
2217
2242
  display: 'block'
2218
- });
2243
+ };
2244
+ Object.assign(this.containerElement.style, displayStyles);
2219
2245
  // 禁用body滚动,防止出现滚动条
2220
2246
  this.preventBodyScroll(true);
2221
2247
  }
@@ -23042,7 +23068,7 @@ class CustomerServiceSDK {
23042
23068
  url.searchParams.set('Authorization', config.token);
23043
23069
  }
23044
23070
  url.searchParams.set('DeviceSign', deviceId);
23045
- url.searchParams.set('Referrer', config.referrer || document.referrer);
23071
+ url.searchParams.set('Referrer', config.referrer || document.referrer || document.location.href);
23046
23072
  return url.toString();
23047
23073
  }
23048
23074
  }