@redneckz/wildless-cms-uni-blocks 0.14.774 → 0.14.775

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.
@@ -17,24 +17,43 @@ const useChatBot = (chat) => {
17
17
  if (!chatUrl) {
18
18
  return;
19
19
  }
20
- if (chat !== 'personal') {
21
- (0, useExternalNS_1.initializeExternalStylesheet)(`${chatUrl}/bundle.css`);
22
- const businessChat = (await (0, useExternalNS_1.initializeExternalNS)(CHAT_NAMESPACE, `${chatUrl}/bundle.js`, true));
23
- if (businessChat?.render) {
24
- businessChat.render(CHAT_FRAME_ID, true);
25
- }
20
+ if (chat === 'business') {
21
+ await renderBusinessChatBot(chatUrl);
26
22
  }
27
23
  else {
28
- const target = ev.target;
29
- if (!target?.classList.contains(CHAT_BUTTON_EXTERNAL_NAME)) {
30
- target?.classList.add(CHAT_BUTTON_EXTERNAL_NAME);
31
- }
32
- const chatFrame = document.getElementById(CHAT_FRAME_ID);
33
- if (!chatFrame) {
34
- (0, useExternalNS_1.initializeExternalNS)(CHAT_NAMESPACE, chatUrl);
35
- }
24
+ renderPersonalChatBot(ev, chatUrl);
36
25
  }
37
26
  };
38
27
  };
39
28
  exports.useChatBot = useChatBot;
29
+ const renderPersonalChatBot = (ev, chatUrl) => {
30
+ const target = ev.target;
31
+ if (!target?.classList.contains(CHAT_BUTTON_EXTERNAL_NAME)) {
32
+ target?.classList.add(CHAT_BUTTON_EXTERNAL_NAME);
33
+ }
34
+ const chatFrame = globalThis.document.getElementById(CHAT_FRAME_ID);
35
+ if (!chatFrame) {
36
+ (0, useExternalNS_1.initializeExternalNS)(CHAT_NAMESPACE, chatUrl);
37
+ }
38
+ };
39
+ const renderBusinessChatBot = async (chatUrl) => {
40
+ const businessChat = (await (0, useExternalNS_1.initializeExternalNS)(CHAT_NAMESPACE, `${chatUrl}/bundle.js`, true));
41
+ (0, useExternalNS_1.initializeExternalStylesheet)(`${chatUrl}/bundle.css`);
42
+ const chatFrame = globalThis.document.getElementById(CHAT_FRAME_ID);
43
+ if (chatFrame) {
44
+ businessChat?.chatOpen?.();
45
+ }
46
+ else {
47
+ createChatFrame();
48
+ businessChat?.render?.(CHAT_FRAME_ID, true);
49
+ }
50
+ };
51
+ const createChatFrame = () => {
52
+ const chatFrame = globalThis.document.createElement('div');
53
+ chatFrame.id = CHAT_FRAME_ID;
54
+ chatFrame.style.position = 'fixed';
55
+ chatFrame.style.right = '0';
56
+ chatFrame.style.bottom = '0';
57
+ globalThis.document.body.appendChild(chatFrame);
58
+ };
40
59
  //# sourceMappingURL=useChatBot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useChatBot.js","sourceRoot":"","sources":["../../../src/components/Header/useChatBot.ts"],"names":[],"mappings":";;AAAA,uDAAwD;AACxD,6DAA+F;AAG/F,MAAM,cAAc,GAAG,SAAS,CAAC;AACjC,MAAM,yBAAyB,GAAG,qBAAqB,CAAC;AACxD,MAAM,aAAa,GAAG,mCAAmC,CAAC;AAC1D,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAE9C,MAAM,WAAW,GAA2B;IAC1C,QAAQ,EAAE,2CAA2C;IACrD,QAAQ,EAAE,UAAU;CACrB,CAAC;AAOK,MAAM,UAAU,GAAG,CAAC,IAAa,EAAE,EAAE;IAC1C,IAAA,iBAAS,EAAC,GAAG,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7F,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAExC,OAAO,KAAK,EAAE,EAA8B,EAAE,EAAE;QAC9C,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO;SACR;QAED,IAAI,IAAI,KAAK,UAAU,EAAE;YACvB,IAAA,4CAA4B,EAAC,GAAG,OAAO,aAAa,CAAC,CAAC;YAEtD,MAAM,YAAY,GAAG,CAAC,MAAM,IAAA,oCAAoB,EAC9C,cAAc,EACd,GAAG,OAAO,YAAY,EACtB,IAAI,CACL,CAAY,CAAC;YAEd,IAAI,YAAY,EAAE,MAAM,EAAE;gBACxB,YAAY,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;aAC1C;SACF;aAAM;YACL,MAAM,MAAM,GAAG,EAAE,CAAC,MAAqB,CAAC;YAExC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE;gBAC1D,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;aAClD;YAED,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YACzD,IAAI,CAAC,SAAS,EAAE;gBACd,IAAA,oCAAoB,EAAC,cAAc,EAAE,OAAO,CAAC,CAAC;aAC/C;SACF;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAlCW,QAAA,UAAU,cAkCrB"}
1
+ {"version":3,"file":"useChatBot.js","sourceRoot":"","sources":["../../../src/components/Header/useChatBot.ts"],"names":[],"mappings":";;AAAA,uDAAwD;AACxD,6DAA+F;AAG/F,MAAM,cAAc,GAAG,SAAS,CAAC;AACjC,MAAM,yBAAyB,GAAG,qBAAqB,CAAC;AACxD,MAAM,aAAa,GAAG,mCAAmC,CAAC;AAC1D,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAE9C,MAAM,WAAW,GAA2B;IAC1C,QAAQ,EAAE,2CAA2C;IACrD,QAAQ,EAAE,UAAU;CACrB,CAAC;AAOK,MAAM,UAAU,GAAG,CAAC,IAAa,EAAE,EAAE;IAC1C,IAAA,iBAAS,EAAC,GAAG,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7F,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAExC,OAAO,KAAK,EAAE,EAA8B,EAAE,EAAE;QAC9C,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO;SACR;QAED,IAAI,IAAI,KAAK,UAAU,EAAE;YACvB,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC;SACtC;aAAM;YACL,qBAAqB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;SACpC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAfW,QAAA,UAAU,cAerB;AAEF,MAAM,qBAAqB,GAAG,CAAC,EAA8B,EAAE,OAAe,EAAE,EAAE;IAChF,MAAM,MAAM,GAAG,EAAE,CAAC,MAAqB,CAAC;IAExC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE;QAC1D,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;KAClD;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IACpE,IAAI,CAAC,SAAS,EAAE;QACd,IAAA,oCAAoB,EAAC,cAAc,EAAE,OAAO,CAAC,CAAC;KAC/C;AACH,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;IACtD,MAAM,YAAY,GAAG,CAAC,MAAM,IAAA,oCAAoB,EAC9C,cAAc,EACd,GAAG,OAAO,YAAY,EACtB,IAAI,CACL,CAAY,CAAC;IAEd,IAAA,4CAA4B,EAAC,GAAG,OAAO,aAAa,CAAC,CAAC;IAEtD,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IACpE,IAAI,SAAS,EAAE;QACb,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC;KAC5B;SAAM;QACL,eAAe,EAAE,CAAC;QAElB,YAAY,EAAE,MAAM,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;KAC7C;AACH,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3D,SAAS,CAAC,EAAE,GAAG,aAAa,CAAC;IAC7B,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;IACnC,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;IAC5B,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;IAE7B,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AAClD,CAAC,CAAC"}
@@ -4,7 +4,7 @@ const hooks_1 = require("@redneckz/uni-jsx/lib/hooks");
4
4
  const getNS = (_) => globalThis[_];
5
5
  exports.getNS = getNS;
6
6
  const initializeExternalNS = (namespaceName, url, isModule = false) => {
7
- const script = document.getElementById(url);
7
+ const script = globalThis.document.getElementById(url);
8
8
  if (script) {
9
9
  const ns = (0, exports.getNS)(namespaceName);
10
10
  if (ns) {
@@ -20,7 +20,7 @@ const initializeExternalNS = (namespaceName, url, isModule = false) => {
20
20
  }
21
21
  else {
22
22
  return new Promise((resolve, reject) => {
23
- const newScript = document.createElement('script');
23
+ const newScript = globalThis.document.createElement('script');
24
24
  newScript.src = url;
25
25
  newScript.async = true;
26
26
  newScript.id = url;
@@ -33,16 +33,20 @@ const initializeExternalNS = (namespaceName, url, isModule = false) => {
33
33
  newScript.addEventListener('error', (error) => {
34
34
  reject(error);
35
35
  });
36
- document.head.appendChild(newScript);
36
+ globalThis.document.head.appendChild(newScript);
37
37
  });
38
38
  }
39
39
  };
40
40
  exports.initializeExternalNS = initializeExternalNS;
41
41
  const initializeExternalStylesheet = (url = '') => {
42
- const link = document.createElement('link');
43
- link.href = url;
44
- link.rel = 'stylesheet';
45
- document.head.appendChild(link);
42
+ const link = globalThis.document.getElementById(url);
43
+ if (!link) {
44
+ const newLink = globalThis.document.createElement('link');
45
+ newLink.href = url;
46
+ newLink.id = url;
47
+ newLink.rel = 'stylesheet';
48
+ globalThis.document.head.appendChild(newLink);
49
+ }
46
50
  };
47
51
  exports.initializeExternalStylesheet = initializeExternalStylesheet;
48
52
  function useExternalNS(namespaceName, url, unmountNS = true) {
@@ -61,9 +65,9 @@ function useExternalNS(namespaceName, url, unmountNS = true) {
61
65
  return () => {
62
66
  isMounted = false;
63
67
  if (unmountNS) {
64
- const script = document.getElementById(url);
68
+ const script = globalThis.document.getElementById(url);
65
69
  if (script) {
66
- document.head.removeChild(script);
70
+ globalThis.document.head.removeChild(script);
67
71
  }
68
72
  setExternalNS(undefined);
69
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useExternalNS.js","sourceRoot":"","sources":["../../src/hooks/useExternalNS.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useExternalNS.js","sourceRoot":"","sources":["../../src/hooks/useExternalNS.ts"],"names":[],"mappings":"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"}
@@ -15,23 +15,42 @@ export const useChatBot = (chat) => {
15
15
  if (!chatUrl) {
16
16
  return;
17
17
  }
18
- if (chat !== 'personal') {
19
- initializeExternalStylesheet(`${chatUrl}/bundle.css`);
20
- const businessChat = (await initializeExternalNS(CHAT_NAMESPACE, `${chatUrl}/bundle.js`, true));
21
- if (businessChat?.render) {
22
- businessChat.render(CHAT_FRAME_ID, true);
23
- }
18
+ if (chat === 'business') {
19
+ await renderBusinessChatBot(chatUrl);
24
20
  }
25
21
  else {
26
- const target = ev.target;
27
- if (!target?.classList.contains(CHAT_BUTTON_EXTERNAL_NAME)) {
28
- target?.classList.add(CHAT_BUTTON_EXTERNAL_NAME);
29
- }
30
- const chatFrame = document.getElementById(CHAT_FRAME_ID);
31
- if (!chatFrame) {
32
- initializeExternalNS(CHAT_NAMESPACE, chatUrl);
33
- }
22
+ renderPersonalChatBot(ev, chatUrl);
34
23
  }
35
24
  };
36
25
  };
26
+ const renderPersonalChatBot = (ev, chatUrl) => {
27
+ const target = ev.target;
28
+ if (!target?.classList.contains(CHAT_BUTTON_EXTERNAL_NAME)) {
29
+ target?.classList.add(CHAT_BUTTON_EXTERNAL_NAME);
30
+ }
31
+ const chatFrame = globalThis.document.getElementById(CHAT_FRAME_ID);
32
+ if (!chatFrame) {
33
+ initializeExternalNS(CHAT_NAMESPACE, chatUrl);
34
+ }
35
+ };
36
+ const renderBusinessChatBot = async (chatUrl) => {
37
+ const businessChat = (await initializeExternalNS(CHAT_NAMESPACE, `${chatUrl}/bundle.js`, true));
38
+ initializeExternalStylesheet(`${chatUrl}/bundle.css`);
39
+ const chatFrame = globalThis.document.getElementById(CHAT_FRAME_ID);
40
+ if (chatFrame) {
41
+ businessChat?.chatOpen?.();
42
+ }
43
+ else {
44
+ createChatFrame();
45
+ businessChat?.render?.(CHAT_FRAME_ID, true);
46
+ }
47
+ };
48
+ const createChatFrame = () => {
49
+ const chatFrame = globalThis.document.createElement('div');
50
+ chatFrame.id = CHAT_FRAME_ID;
51
+ chatFrame.style.position = 'fixed';
52
+ chatFrame.style.right = '0';
53
+ chatFrame.style.bottom = '0';
54
+ globalThis.document.body.appendChild(chatFrame);
55
+ };
37
56
  //# sourceMappingURL=useChatBot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useChatBot.js","sourceRoot":"","sources":["../../../src/components/Header/useChatBot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAG/F,MAAM,cAAc,GAAG,SAAS,CAAC;AACjC,MAAM,yBAAyB,GAAG,qBAAqB,CAAC;AACxD,MAAM,aAAa,GAAG,mCAAmC,CAAC;AAC1D,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAE9C,MAAM,WAAW,GAA2B;IAC1C,QAAQ,EAAE,2CAA2C;IACrD,QAAQ,EAAE,UAAU;CACrB,CAAC;AAOF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAa,EAAE,EAAE;IAC1C,SAAS,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7F,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAExC,OAAO,KAAK,EAAE,EAA8B,EAAE,EAAE;QAC9C,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO;SACR;QAED,IAAI,IAAI,KAAK,UAAU,EAAE;YACvB,4BAA4B,CAAC,GAAG,OAAO,aAAa,CAAC,CAAC;YAEtD,MAAM,YAAY,GAAG,CAAC,MAAM,oBAAoB,CAC9C,cAAc,EACd,GAAG,OAAO,YAAY,EACtB,IAAI,CACL,CAAY,CAAC;YAEd,IAAI,YAAY,EAAE,MAAM,EAAE;gBACxB,YAAY,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;aAC1C;SACF;aAAM;YACL,MAAM,MAAM,GAAG,EAAE,CAAC,MAAqB,CAAC;YAExC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE;gBAC1D,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;aAClD;YAED,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YACzD,IAAI,CAAC,SAAS,EAAE;gBACd,oBAAoB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;aAC/C;SACF;IACH,CAAC,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"useChatBot.js","sourceRoot":"","sources":["../../../src/components/Header/useChatBot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAG/F,MAAM,cAAc,GAAG,SAAS,CAAC;AACjC,MAAM,yBAAyB,GAAG,qBAAqB,CAAC;AACxD,MAAM,aAAa,GAAG,mCAAmC,CAAC;AAC1D,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAE9C,MAAM,WAAW,GAA2B;IAC1C,QAAQ,EAAE,2CAA2C;IACrD,QAAQ,EAAE,UAAU;CACrB,CAAC;AAOF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAa,EAAE,EAAE;IAC1C,SAAS,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7F,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAExC,OAAO,KAAK,EAAE,EAA8B,EAAE,EAAE;QAC9C,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO;SACR;QAED,IAAI,IAAI,KAAK,UAAU,EAAE;YACvB,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC;SACtC;aAAM;YACL,qBAAqB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;SACpC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAAC,EAA8B,EAAE,OAAe,EAAE,EAAE;IAChF,MAAM,MAAM,GAAG,EAAE,CAAC,MAAqB,CAAC;IAExC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE;QAC1D,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;KAClD;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IACpE,IAAI,CAAC,SAAS,EAAE;QACd,oBAAoB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;KAC/C;AACH,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;IACtD,MAAM,YAAY,GAAG,CAAC,MAAM,oBAAoB,CAC9C,cAAc,EACd,GAAG,OAAO,YAAY,EACtB,IAAI,CACL,CAAY,CAAC;IAEd,4BAA4B,CAAC,GAAG,OAAO,aAAa,CAAC,CAAC;IAEtD,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IACpE,IAAI,SAAS,EAAE;QACb,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC;KAC5B;SAAM;QACL,eAAe,EAAE,CAAC;QAElB,YAAY,EAAE,MAAM,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;KAC7C;AACH,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3D,SAAS,CAAC,EAAE,GAAG,aAAa,CAAC;IAC7B,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;IACnC,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;IAC5B,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;IAE7B,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AAClD,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { useEffect, useState } from '@redneckz/uni-jsx/lib/hooks';
2
2
  export const getNS = (_) => globalThis[_];
3
3
  export const initializeExternalNS = (namespaceName, url, isModule = false) => {
4
- const script = document.getElementById(url);
4
+ const script = globalThis.document.getElementById(url);
5
5
  if (script) {
6
6
  const ns = getNS(namespaceName);
7
7
  if (ns) {
@@ -17,7 +17,7 @@ export const initializeExternalNS = (namespaceName, url, isModule = false) => {
17
17
  }
18
18
  else {
19
19
  return new Promise((resolve, reject) => {
20
- const newScript = document.createElement('script');
20
+ const newScript = globalThis.document.createElement('script');
21
21
  newScript.src = url;
22
22
  newScript.async = true;
23
23
  newScript.id = url;
@@ -30,15 +30,19 @@ export const initializeExternalNS = (namespaceName, url, isModule = false) => {
30
30
  newScript.addEventListener('error', (error) => {
31
31
  reject(error);
32
32
  });
33
- document.head.appendChild(newScript);
33
+ globalThis.document.head.appendChild(newScript);
34
34
  });
35
35
  }
36
36
  };
37
37
  export const initializeExternalStylesheet = (url = '') => {
38
- const link = document.createElement('link');
39
- link.href = url;
40
- link.rel = 'stylesheet';
41
- document.head.appendChild(link);
38
+ const link = globalThis.document.getElementById(url);
39
+ if (!link) {
40
+ const newLink = globalThis.document.createElement('link');
41
+ newLink.href = url;
42
+ newLink.id = url;
43
+ newLink.rel = 'stylesheet';
44
+ globalThis.document.head.appendChild(newLink);
45
+ }
42
46
  };
43
47
  export function useExternalNS(namespaceName, url, unmountNS = true) {
44
48
  const [externalNS, setExternalNS] = useState(undefined);
@@ -56,9 +60,9 @@ export function useExternalNS(namespaceName, url, unmountNS = true) {
56
60
  return () => {
57
61
  isMounted = false;
58
62
  if (unmountNS) {
59
- const script = document.getElementById(url);
63
+ const script = globalThis.document.getElementById(url);
60
64
  if (script) {
61
- document.head.removeChild(script);
65
+ globalThis.document.head.removeChild(script);
62
66
  }
63
67
  setExternalNS(undefined);
64
68
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useExternalNS.js","sourceRoot":"","sources":["../../src/hooks/useExternalNS.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useExternalNS.js","sourceRoot":"","sources":["../../src/hooks/useExternalNS.ts"],"names":[],"mappings":"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"}
@@ -26,29 +26,52 @@ export const useChatBot = (chat?: string) => {
26
26
  return;
27
27
  }
28
28
 
29
- if (chat !== 'personal') {
30
- initializeExternalStylesheet(`${chatUrl}/bundle.css`);
31
-
32
- const businessChat = (await initializeExternalNS(
33
- CHAT_NAMESPACE,
34
- `${chatUrl}/bundle.js`,
35
- true,
36
- )) as WebChat;
37
-
38
- if (businessChat?.render) {
39
- businessChat.render(CHAT_FRAME_ID, true);
40
- }
29
+ if (chat === 'business') {
30
+ await renderBusinessChatBot(chatUrl);
41
31
  } else {
42
- const target = ev.target as HTMLElement;
43
-
44
- if (!target?.classList.contains(CHAT_BUTTON_EXTERNAL_NAME)) {
45
- target?.classList.add(CHAT_BUTTON_EXTERNAL_NAME);
46
- }
47
-
48
- const chatFrame = document.getElementById(CHAT_FRAME_ID);
49
- if (!chatFrame) {
50
- initializeExternalNS(CHAT_NAMESPACE, chatUrl);
51
- }
32
+ renderPersonalChatBot(ev, chatUrl);
52
33
  }
53
34
  };
54
35
  };
36
+
37
+ const renderPersonalChatBot = (ev: PreventableEventWithTarget, chatUrl: string) => {
38
+ const target = ev.target as HTMLElement;
39
+
40
+ if (!target?.classList.contains(CHAT_BUTTON_EXTERNAL_NAME)) {
41
+ target?.classList.add(CHAT_BUTTON_EXTERNAL_NAME);
42
+ }
43
+
44
+ const chatFrame = globalThis.document.getElementById(CHAT_FRAME_ID);
45
+ if (!chatFrame) {
46
+ initializeExternalNS(CHAT_NAMESPACE, chatUrl);
47
+ }
48
+ };
49
+
50
+ const renderBusinessChatBot = async (chatUrl: string) => {
51
+ const businessChat = (await initializeExternalNS(
52
+ CHAT_NAMESPACE,
53
+ `${chatUrl}/bundle.js`,
54
+ true,
55
+ )) as WebChat;
56
+
57
+ initializeExternalStylesheet(`${chatUrl}/bundle.css`);
58
+
59
+ const chatFrame = globalThis.document.getElementById(CHAT_FRAME_ID);
60
+ if (chatFrame) {
61
+ businessChat?.chatOpen?.();
62
+ } else {
63
+ createChatFrame();
64
+
65
+ businessChat?.render?.(CHAT_FRAME_ID, true);
66
+ }
67
+ };
68
+
69
+ const createChatFrame = () => {
70
+ const chatFrame = globalThis.document.createElement('div');
71
+ chatFrame.id = CHAT_FRAME_ID;
72
+ chatFrame.style.position = 'fixed';
73
+ chatFrame.style.right = '0';
74
+ chatFrame.style.bottom = '0';
75
+
76
+ globalThis.document.body.appendChild(chatFrame);
77
+ };
@@ -3,7 +3,7 @@ import { useEffect, useState } from '@redneckz/uni-jsx/lib/hooks';
3
3
  export const getNS = <NS>(_: string): NS | undefined => (globalThis as any)[_];
4
4
 
5
5
  export const initializeExternalNS = <NS>(namespaceName: string, url: string, isModule = false) => {
6
- const script = document.getElementById(url);
6
+ const script = globalThis.document.getElementById(url);
7
7
 
8
8
  if (script) {
9
9
  const ns = getNS<NS>(namespaceName);
@@ -19,7 +19,7 @@ export const initializeExternalNS = <NS>(namespaceName: string, url: string, isM
19
19
  }
20
20
  } else {
21
21
  return new Promise<NS | undefined>((resolve, reject) => {
22
- const newScript = document.createElement('script');
22
+ const newScript = globalThis.document.createElement('script');
23
23
 
24
24
  newScript.src = url;
25
25
  newScript.async = true;
@@ -34,17 +34,22 @@ export const initializeExternalNS = <NS>(namespaceName: string, url: string, isM
34
34
  reject(error);
35
35
  });
36
36
 
37
- document.head.appendChild(newScript);
37
+ globalThis.document.head.appendChild(newScript);
38
38
  });
39
39
  }
40
40
  };
41
41
 
42
42
  export const initializeExternalStylesheet = (url = '') => {
43
- const link = document.createElement('link');
44
- link.href = url;
45
- link.rel = 'stylesheet';
43
+ const link = globalThis.document.getElementById(url);
46
44
 
47
- document.head.appendChild(link);
45
+ if (!link) {
46
+ const newLink = globalThis.document.createElement('link');
47
+ newLink.href = url;
48
+ newLink.id = url;
49
+ newLink.rel = 'stylesheet';
50
+
51
+ globalThis.document.head.appendChild(newLink);
52
+ }
48
53
  };
49
54
 
50
55
  export function useExternalNS<NS>(
@@ -71,9 +76,9 @@ export function useExternalNS<NS>(
71
76
  isMounted = false;
72
77
 
73
78
  if (unmountNS) {
74
- const script = document.getElementById(url);
79
+ const script = globalThis.document.getElementById(url);
75
80
  if (script) {
76
- document.head.removeChild(script);
81
+ globalThis.document.head.removeChild(script);
77
82
  }
78
83
 
79
84
  setExternalNS(undefined);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redneckz/wildless-cms-uni-blocks",
3
- "version": "0.14.774",
3
+ "version": "0.14.775",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "author": "ЦК",
@@ -26,29 +26,52 @@ export const useChatBot = (chat?: string) => {
26
26
  return;
27
27
  }
28
28
 
29
- if (chat !== 'personal') {
30
- initializeExternalStylesheet(`${chatUrl}/bundle.css`);
31
-
32
- const businessChat = (await initializeExternalNS(
33
- CHAT_NAMESPACE,
34
- `${chatUrl}/bundle.js`,
35
- true,
36
- )) as WebChat;
37
-
38
- if (businessChat?.render) {
39
- businessChat.render(CHAT_FRAME_ID, true);
40
- }
29
+ if (chat === 'business') {
30
+ await renderBusinessChatBot(chatUrl);
41
31
  } else {
42
- const target = ev.target as HTMLElement;
43
-
44
- if (!target?.classList.contains(CHAT_BUTTON_EXTERNAL_NAME)) {
45
- target?.classList.add(CHAT_BUTTON_EXTERNAL_NAME);
46
- }
47
-
48
- const chatFrame = document.getElementById(CHAT_FRAME_ID);
49
- if (!chatFrame) {
50
- initializeExternalNS(CHAT_NAMESPACE, chatUrl);
51
- }
32
+ renderPersonalChatBot(ev, chatUrl);
52
33
  }
53
34
  };
54
35
  };
36
+
37
+ const renderPersonalChatBot = (ev: PreventableEventWithTarget, chatUrl: string) => {
38
+ const target = ev.target as HTMLElement;
39
+
40
+ if (!target?.classList.contains(CHAT_BUTTON_EXTERNAL_NAME)) {
41
+ target?.classList.add(CHAT_BUTTON_EXTERNAL_NAME);
42
+ }
43
+
44
+ const chatFrame = globalThis.document.getElementById(CHAT_FRAME_ID);
45
+ if (!chatFrame) {
46
+ initializeExternalNS(CHAT_NAMESPACE, chatUrl);
47
+ }
48
+ };
49
+
50
+ const renderBusinessChatBot = async (chatUrl: string) => {
51
+ const businessChat = (await initializeExternalNS(
52
+ CHAT_NAMESPACE,
53
+ `${chatUrl}/bundle.js`,
54
+ true,
55
+ )) as WebChat;
56
+
57
+ initializeExternalStylesheet(`${chatUrl}/bundle.css`);
58
+
59
+ const chatFrame = globalThis.document.getElementById(CHAT_FRAME_ID);
60
+ if (chatFrame) {
61
+ businessChat?.chatOpen?.();
62
+ } else {
63
+ createChatFrame();
64
+
65
+ businessChat?.render?.(CHAT_FRAME_ID, true);
66
+ }
67
+ };
68
+
69
+ const createChatFrame = () => {
70
+ const chatFrame = globalThis.document.createElement('div');
71
+ chatFrame.id = CHAT_FRAME_ID;
72
+ chatFrame.style.position = 'fixed';
73
+ chatFrame.style.right = '0';
74
+ chatFrame.style.bottom = '0';
75
+
76
+ globalThis.document.body.appendChild(chatFrame);
77
+ };
@@ -3,7 +3,7 @@ import { useEffect, useState } from '@redneckz/uni-jsx/lib/hooks';
3
3
  export const getNS = <NS>(_: string): NS | undefined => (globalThis as any)[_];
4
4
 
5
5
  export const initializeExternalNS = <NS>(namespaceName: string, url: string, isModule = false) => {
6
- const script = document.getElementById(url);
6
+ const script = globalThis.document.getElementById(url);
7
7
 
8
8
  if (script) {
9
9
  const ns = getNS<NS>(namespaceName);
@@ -19,7 +19,7 @@ export const initializeExternalNS = <NS>(namespaceName: string, url: string, isM
19
19
  }
20
20
  } else {
21
21
  return new Promise<NS | undefined>((resolve, reject) => {
22
- const newScript = document.createElement('script');
22
+ const newScript = globalThis.document.createElement('script');
23
23
 
24
24
  newScript.src = url;
25
25
  newScript.async = true;
@@ -34,17 +34,22 @@ export const initializeExternalNS = <NS>(namespaceName: string, url: string, isM
34
34
  reject(error);
35
35
  });
36
36
 
37
- document.head.appendChild(newScript);
37
+ globalThis.document.head.appendChild(newScript);
38
38
  });
39
39
  }
40
40
  };
41
41
 
42
42
  export const initializeExternalStylesheet = (url = '') => {
43
- const link = document.createElement('link');
44
- link.href = url;
45
- link.rel = 'stylesheet';
43
+ const link = globalThis.document.getElementById(url);
46
44
 
47
- document.head.appendChild(link);
45
+ if (!link) {
46
+ const newLink = globalThis.document.createElement('link');
47
+ newLink.href = url;
48
+ newLink.id = url;
49
+ newLink.rel = 'stylesheet';
50
+
51
+ globalThis.document.head.appendChild(newLink);
52
+ }
48
53
  };
49
54
 
50
55
  export function useExternalNS<NS>(
@@ -71,9 +76,9 @@ export function useExternalNS<NS>(
71
76
  isMounted = false;
72
77
 
73
78
  if (unmountNS) {
74
- const script = document.getElementById(url);
79
+ const script = globalThis.document.getElementById(url);
75
80
  if (script) {
76
- document.head.removeChild(script);
81
+ globalThis.document.head.removeChild(script);
77
82
  }
78
83
 
79
84
  setExternalNS(undefined);