@access-ci/ui 0.20.1 → 0.20.2
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.
- package/README.md +1 -1
- package/dist/{access-ci-ui-react-DxmxOLt0.js → access-ci-ui-react-kdgYQZqd.js} +2 -2
- package/dist/access-ci-ui-react.js +1 -1
- package/dist/access-ci-ui-react.umd.cjs +33 -33
- package/dist/access-ci-ui.bundle.js +49 -49
- package/dist/access-ci-ui.js +1 -1
- package/dist/access-ci-ui.umd.cjs +35 -35
- package/dist/{access-qa-bot-D2bNF7Aj.js → access-qa-bot-BktG98sn.js} +1049 -1038
- package/dist/{access-qa-bot-PHqJ7wmJ.js → access-qa-bot-DD6xn0ii.js} +591 -579
- package/dist/{icon-DBqO1ayn.js → icon-B7cGzEKy.js} +1 -1
- package/dist/{index-xjpESPy6.js → index-hNgWwhEe.js} +2 -2
- package/dist/{resource-group-detail-DkDH9-4h.js → resource-group-detail-CFxx3za2.js} +1 -1
- package/dist/{resource-group-detail-BGioTUmu.js → resource-group-detail-C_g3q9lq.js} +2 -2
- package/dist/{resource-home--zNcboc0.js → resource-home-BF1by6d7.js} +2 -2
- package/dist/{resource-home-eZZhbaSg.js → resource-home-Bma2Z32m.js} +1 -1
- package/package.json +2 -2
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { jsx as
|
|
1
|
+
import { jsx as D, jsxs as he, Fragment as He } from "react/jsx-runtime";
|
|
2
2
|
import * as Ee from "react";
|
|
3
3
|
import T, { forwardRef as Ke, useRef as ne, useState as ee, useMemo as je, useEffect as V, useImperativeHandle as uA, useCallback as W, useContext as mt, createContext as yt, isValidElement as _r, createElement as to, Fragment as Nr } from "react";
|
|
4
4
|
import "react-dom/client";
|
|
5
5
|
import xi from "react-dom/server";
|
|
6
6
|
import { createPortal as Ii } from "react-dom";
|
|
7
|
+
const Ti = { BASE_URL: "/", DEV: !1, MODE: "production", PROD: !0, SSR: !1, VITE_ALLOW_ANON_ACCESS: "true", VITE_API_KEY: "4nn5l4T4TnkMdzsK0AwAtnGRcheBDnjawuAT42LaOLc", VITE_TURNSTILE_SITE_KEY: "0x4AAAAAACyJamk8FS7-RSMr" };
|
|
7
8
|
function _n() {
|
|
8
9
|
return _n = Object.assign ? Object.assign.bind() : function(e) {
|
|
9
10
|
for (var t = 1; t < arguments.length; t++) {
|
|
@@ -22,33 +23,33 @@ function dA(e, t) {
|
|
|
22
23
|
}
|
|
23
24
|
return r;
|
|
24
25
|
}
|
|
25
|
-
const Pe = { AUDIO_BUTTON: "audio-button", NOTIFICATION_BUTTON: "notification-button", CLOSE_CHAT_BUTTON: "close-chat-button", SEND_MESSAGE_BUTTON: "send-button", VOICE_MESSAGE_BUTTON: "voice-button", FILE_ATTACHMENT_BUTTON: "file-attachment-button", EMOJI_PICKER_BUTTON: "emoji-button" }, no = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xml:space='preserve'%20viewBox='0%200%201000%201000'%3e%3crect%20width='100%25'%20height='100%25'%20fill='%23fff'/%3e%3cg%3e%3crect%20width='45'%20height='30'%20x='-22.5'%20y='-15'%20rx='1.5'%20ry='1.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2337547a;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20-99%20362)%20scale(3.4003)'/%3e%3cpath%20d='M0%2075q14%200%2014%2017%200%2016-14%2016Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='rotate(180%20106%20386)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='4'%20x='-12.5'%20y='-2'%20rx='.2'%20ry='.2'%20style='stroke:%2346648c;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20-46%20282)%20scale(3.4003)'/%3e%3cpath%20d='M19%2065h4l5%204v1H14v-1Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='2'%20x='-12.5'%20y='-1'%20rx='.1'%20ry='.1'%20style='stroke:%2398b0ca;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20-3%20240)%20scale(3.4003)'/%3e%3ccircle%20r='7.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(236%20175)%20scale(3.4003)'/%3e%3crect%20width='45'%20height='30'%20x='-22.5'%20y='-15'%20rx='1.5'%20ry='1.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2337547a;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20139%20600)%20scale(3.4003)'/%3e%3cpath%20d='M184%2075q14%200%2014%2017%200%2016-14%2016Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='4'%20x='-12.5'%20y='-2'%20rx='.2'%20ry='.2'%20style='stroke:%2346648c;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20219%20548)%20scale(3.4003)'/%3e%3cpath%20d='M175%2065h4l5%204v1h-14v-1Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='2'%20x='-12.5'%20y='-1'%20rx='.1'%20ry='.1'%20style='stroke:%2398b0ca;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20262%20505)%20scale(3.4003)'/%3e%3ccircle%20r='7.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(767%20175)%20scale(3.4003)'/%3e%3crect%20width='116.7'%20height='70'%20x='-58.4'%20y='-35'%20rx='31.5'%20ry='31.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2371c9fc;fill-rule:nonzero;opacity:1'%20transform='translate(502%20877)%20scale(3.4003)'/%3e%3crect%20width='60'%20height='20'%20x='-30'%20y='-10'%20rx='3'%20ry='3'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2337547a;fill-rule:nonzero;opacity:1'%20transform='translate(502%20728)%20scale(3.4003)'/%3e%3ccircle%20r='75'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2371c9fc;fill-rule:nonzero;opacity:1'%20transform='translate(502%20473)%20scale(3.4003)'/%3e%3crect%20width='129.4'%20height='82.3'%20x='-64.7'%20y='-41.1'%20rx='37'%20ry='37'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23fff;fill-rule:nonzero;opacity:1'%20transform='translate(502%20464)%20scale(3.4003)'/%3e%3crect%20width='108'%20height='68.6'%20x='-54'%20y='-34.3'%20rx='30.9'%20ry='30.9'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23162334;fill-rule:nonzero;opacity:1'%20transform='translate(502%20464)%20scale(3.4003)'/%3e%3ccircle%20r='19.4'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(415%20464)%20scale(3.4003)'/%3e%3ccircle%20r='19.4'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(591%20464)%20scale(3.4003)'/%3e%3crect%20width='96'%20height='53.2'%20x='-48'%20y='-26.6'%20rx='23.9'%20ry='23.9'%20style='stroke:%23162334;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23162334;fill-rule:nonzero;opacity:1'%20transform='translate(503%20875)%20scale(3.4003)'/%3e%3cpath%20stroke-linecap='round'%20d='m68%20215%207-15M81%20222l-7-22M81%20222l7-14M101%20208H87M114%20219l-7-24M113%20219l13-22M131%20214l-5-17M148%20214h-18M69%20214H51M100%20209l7-15'%20style='stroke:%23a478fc;stroke-width:3;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:10;is-custom-font:none;font-file-url:none;fill:none;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3c/g%3e%3c/svg%3e", ro = Ke((e, t) => Ee.createElement("svg", { viewBox: "0 0 637 637", ref: t, ...e }, Ee.createElement("path", { d: "m478 113-13 2-4 1h4l14-2c10-2 35-2 42-1l6 3 3 1c3 0-4-3-8-5-7-1-34-1-44 1m56 6 8 6c7 5 20 17 20 19s7 12 8 12l-3-6-4-6c0-3-15-17-25-24-5-3-8-4-4-1m-198 16-9 1a512 512 0 0 1 9-1m-180 30a412 412 0 0 0-23 4 167 167 0 0 0-32 8 439 439 0 0 1 46-9 304 304 0 0 1 11-2l6-1h-8m369 8 4 3-7-6c-1 0 0 2 3 3m-439 9c-7 3-18 13-18 15l6-5c5-5 9-8 14-10l6-4-8 4m442 12-10 11-7 6 7-6c7-5 14-14 13-16l-3 5M65 205l-1 11c0 9 0 10 4 17 5 10 7 12 22 11 10 0 15 0 38-5l5-1-6 1-16 2-21 2c-13 1-16-1-21-10-3-5-4-6-4-15l1-12c1-4 1-5-1-1m335 1c3 0 3 1 3 3l-2 6c-2 5-35 39-76 80-53 51-120 117-138 137-21 24-22 25-22 27 0 3 6 9 9 9 4 0 14-8 38-27a5073 5073 0 0 1 15-16 1421 1421 0 0 0-17 15l-31 25-6 2-4-3c-3-3-3-4-2-6 3-8 79-85 160-163 57-57 79-80 79-86 0-2-3-4-7-4-2 0-2 0 1 1m165 18c-9 17-25 32-57 53l-10 8 16-11 12-8c15-10 27-22 39-39 5-7 6-8 4-8l-4 5m-221 2a199 199 0 0 0-19 10 183 183 0 0 1 27-12c0-1-1-1-8 2m-34 16c-3 3-2 3 2 0l1-2-3 2m151 3-1 2 2-2c3-3 2-3-1 0m-16 12-11 10a281 281 0 0 0 11-10m-24 18-7 5-7 5-42 31c-10 7-24 19-22 19l7-6 16-12a343 343 0 0 0 35-25 573 573 0 0 0 20-17m-187 0-2 2 4-2 3-2-5 2m-14 6-3 2 4-1 4-3-5 2m-7 3-8 4-18 8 18-7 7-3 3-1c1-2 0-2-2-1m254 24a2672 2672 0 0 1-71 54 601 601 0 0 0 39-29 1352 1352 0 0 1 32-25m-291-8-2 2 4-2 3-2-5 2m-13 5-2 2h3c5-3 4-4-1-2m-19 9-7 3-13 6c-10 5-13 7-14 10-3 4-2 5 1 0 2-3 5-5 14-9l13-6 12-6-6 2m178 36c-17 12-21 16-21 17a390 390 0 0 1 20-17m-206 34 1 4 1 3 1 5 2 8 1 5v-6l-1-8-2-5-1-4-1-2c-1-2-1-2-1 0m222 23-9 7a683 683 0 0 0-56 44 261 261 0 0 0-26 20 1345 1345 0 0 0-46 34c-6 3-7 3-19 3-11 0-12 0-18-3-8-4-10-8-17-20l-5-10 4 10c5 10 12 18 19 22 4 2 6 2 17 2 13 0 14 0 21-3l26-19 42-33a2183 2183 0 0 0 43-34 643 643 0 0 1 24-20", fill: "#fff", fillRule: "evenodd" }), Ee.createElement("path", { d: "M478 114a620 620 0 0 1-39 6l-21 3a5481 5481 0 0 0-19 3 870 870 0 0 1-54 8l-1 1-6 1-12 2-13 2a992 992 0 0 0-76 12 400 400 0 0 1-45 8l-6 1-5 1h-3l-3 1-2 1-26 4-13 2-17 3c-23 5-33 9-43 19-7 8-9 13-9 27 0 8 1 9 4 14 5 9 8 11 21 10l21-2a1133 1133 0 0 1 23-4 659 659 0 0 0 74-14l3-1h3l3-1h3l2-1 2-1h3l2-1h2l24-5 38-7a2100 2100 0 0 1 93-18l3-1 10-1a2082 2082 0 0 1 120-17l2 1c2 0 8 5 8 7l1 2 1 6c0 4 0 6-3 10-2 4-16 16-18 16l-7 5-10 8a1070 1070 0 0 0-11 7 113 113 0 0 1-20 14l-2 2-3 2-2 2h-1a154 154 0 0 1-28 21l-5 4-5 4a573 573 0 0 1-50 37 175 175 0 0 0-24 18l-1 2-2 1-2 1-2 1-1 1-12 10a396 396 0 0 0-32 25l-8 6-6 5-9 7a326 326 0 0 1-25 20l-13 12a5073 5073 0 0 0-17 15c-24 20-34 27-39 27-2 0-8-6-8-9 0-2 1-3 22-27 18-20 85-86 138-137 41-41 74-75 76-80l2-6c0-2 0-3-2-3l-7 1a233 233 0 0 1-26 9l-1 1-1 1h-1l-1 1h-2l-3 2-1 1h-2l-3 2h-1l-5 2-22 10-9 4-4 2-5 2-10 4-2 1-2 1-2 1-13 6a334 334 0 0 1-38 17 75 75 0 0 0-14 6l-5 2-4 1-2 1-3 2-7 3-16 6a247 247 0 0 0-32 14l-1 1h-2l-1 1h-2l-1 1-12 6a103 103 0 0 0-27 15l-2 5-1 1v11l1 5 1 5 1 4c0 3 0 4 2 4v3l1 3 1 2 2 10 1 4 1 5 2 10 2 8 1 4 1 4c3 3 9 25 11 38l1 7v2l1 4v1l1 1v2l1 2 1 3v1l5 10c7 13 9 16 17 20 6 3 7 3 18 3 12 0 13 0 19-3 8-4 11-6 26-18a1345 1345 0 0 1 85-67 683 683 0 0 1 50-39l12-9a513 513 0 0 1 44-33 201 201 0 0 0 22-17 2270 2270 0 0 0 73-54 158 158 0 0 0 58-59c2 0 3-9 4-27l-1-19-1-4-1-6-1-3-4-6-4-6c0-2-6-8-13-14a77 77 0 0 0-28-18c-6-1-34-1-43 1" }))), oo = Ke((e, t) => Ee.createElement("svg", { viewBox: "0 -960 960 960", ref: t, ...e }, Ee.createElement("path", { d: "M765-321q0 117-84 196-83 80-200 80-118 0-200-80t-83-196v-392q0-85 61-144 61-58 146-58 86 0 147 58 61 59 61 144v374q0 54-39 92-39 37-93 37-55 0-93-37-38-38-38-92v-372h110v372q0 9 6 14t15 5q8 0 15-5t7-14v-374q0-39-29-66t-68-27q-40 0-69 27t-29 66v392q0 71 51 119t122 48q71 0 122-48t51-119v-426h111v426Z" }))), Ti = Ke((e, t) => Ee.createElement("svg", { viewBox: "0 -960 960 960", ref: t, ...e }, Ee.createElement("path", { d: "M125-165v-113h77v-273q0-93 55-167 56-75 146-100v-19q0-32 22-55 23-23 55-23t55 23q22 23 22 55v19q90 25 146 99 56 73 56 168v273h77v113H125ZM480-32q-38 0-66-27-27-27-27-66h186q0 39-27 66t-66 27Z" }))), Qi = Ke((e, t) => Ee.createElement("svg", { viewBox: "0 -960 960 960", ref: t, ...e }, Ee.createElement("path", { d: "M137-190v-113h78v-253q0-41 11-79 11-39 35-71l-9 150h10L17-802l74-74L873-92l-74 74-175-172H137Zm609-149L319-769q20-15 41-25t44-16v-28q0-32 22-54t54-22q32 0 55 22t22 54v28q85 23 137 94t52 160v217ZM481-47q-38 0-65-27t-27-65h184q0 38-27 65t-65 27Z" }))), Mi = Ke((e, t) => Ee.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 100 100", ref: t, ...e }, Ee.createElement("g", { strokeLinecap: "round", strokeWidth: 10 }, Ee.createElement("path", { d: "m19 19 61 61M80 19 19 80" })))), Oi = Ke((e, t) => Ee.createElement("svg", { viewBox: "0 -960 960 960", ref: t, ...e }, Ee.createElement("path", { d: "M94-136v-255l351-93-351-92v-253l816 346L94-136Z" }))), _i = Ke((e, t) => Ee.createElement("svg", { viewBox: "0 -960 960 960", ref: t, ...e }, Ee.createElement("path", { d: "M480-372q-61 0-105-43-43-43-43-105v-240q0-61 43-105 43-43 105-43 61 0 105 43 43 44 43 105v240q0 62-43 105t-105 43ZM425-76v-122q-121-16-197-108t-76-214h109q0 91 64 154t155 63q91 0 155-63t64-154h109q0 122-77 214T534-198v122H425Z" }))), Ni = Ke((e, t) => Ee.createElement("svg", { viewBox: "0 -960 960 960", ref: t, ...e }, Ee.createElement("path", { d: "m763-343-80-79q8-20 13-44 5-23 5-54h109q0 49-11 95t-36 82ZM625-482 336-770v-2q3-56 45-96t101-40q62 0 105 43t43 105v249l-1 17q-1 7-4 12ZM427-76v-122q-120-16-196-108-77-92-77-214h109q0 91 64 154t155 63q43 0 80-14 37-15 67-41l78 79q-35 32-78 53t-93 28v122H427Zm362 27L41-796l75-75 748 748-75 74Z" }))), Ao = Ke((e, t) => Ee.createElement("svg", { viewBox: "0 -960 960 960", ref: t, ...e }, Ee.createElement("path", { d: "M625-511q29 0 50-21t20-50q0-29-20-50-21-20-50-20t-50 20-20 50q0 29 20 50 21 21 50 21Zm-290 0q29 0 50-21t20-49q0-30-20-50t-50-21q-29 0-50 20-20 21-20 50 0 30 20 50 21 21 50 21Zm145 268q75 0 137-43t85-115H258q24 72 85 115 62 43 137 43Zm0 198q-90 0-170-34-79-34-138-93T79-310q-34-80-34-170t34-170q34-79 93-138t138-93q80-34 170-34t170 34q79 34 138 93t93 138q34 80 34 170t-34 170q-34 79-93 138T650-79q-80 34-170 34Zm0-435Zm0 322q134 0 228-94t94-228q0-134-94-228t-228-94q-134 0-228 94t-94 228q0 134 94 228t228 94Z" }))), Li = Ke((e, t) => Ee.createElement("svg", { viewBox: "0 -960 960 960", ref: t, ...e }, Ee.createElement("path", { d: "M553-64v-108q107-27 173-113 67-87 67-197 0-109-67-195T553-789v-108q152 26 249 144 97 117 97 271 0 155-97 273T553-64ZM61-335v-290h176l236-237v764L237-335H61Zm492 28v-346q51 23 82 70t31 103-31 103q-31 47-82 70Z" }))), Ri = Ke((e, t) => Ee.createElement("svg", { viewBox: "0 -960 960 960", ref: t, ...e }, Ee.createElement("path", { d: "M807-15 700-123q-33 21-71 37-38 15-80 22v-108q20-4 38-12l35-17-153-154v257L234-335H57v-290h144L10-818l74-75L882-90l-75 75Zm37-264-80-79q13-30 19-60 7-31 7-64 0-109-68-195-67-86-173-112v-108q152 26 249 144 98 117 98 271 0 55-14 107-13 51-38 96ZM661-462 549-575v-78q51 23 83 70 31 47 31 103l-1 9-1 9ZM469-655 366-759l103-103v207Z" }))), pA = { general: { primaryColor: "#42b0c5", secondaryColor: "#491d8d", fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif", showHeader: !0, showFooter: !0, showInputRow: !0, actionDisabledIcon: "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='32'%20height='32'%20viewBox='0%200%2042%2042'%3e%3cpath%20style='fill:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke:%23b00000;stroke-opacity:1;stroke-miterlimit:4'%20d='M17%209a8%208%200%200%201-8%208%208%208%200%200%201-8-8%208%208%200%200%201%208-8%208%208%200%200%201%208%208Zm0%200'%20transform='rotate(.086)%20scale(1.77778)'/%3e%3cpath%20style='fill:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke:%23b00000;stroke-opacity:1;stroke-miterlimit:10'%20d='M14.66%2014.66%203.34%203.34'%20transform='rotate(.086)%20scale(1.77778)'/%3e%3c/svg%3e", embedded: !1, flowStartTrigger: "ON_LOAD" }, tooltip: { mode: "CLOSE", text: "Talk to me! 😊" }, chatButton: { icon: ro }, header: { title: S("div", { style: { cursor: "pointer", margin: 0, fontSize: 20, fontWeight: "bold" }, onClick: () => window.open("https://github.com/tjtanjin/", "_blank", "noopener,noreferrer"), children: "Tan Jin" }), showAvatar: !0, avatar: no, buttons: [Pe.NOTIFICATION_BUTTON, Pe.AUDIO_BUTTON, Pe.CLOSE_CHAT_BUTTON], closeChatIcon: Mi }, notification: { disabled: !1, defaultToggledOn: !0, volume: 0.2, icon: Ti, iconDisabled: Qi, sound: "data:audio/wav;base64,UklGRmaIAABXQVZFZm10IBAAAAABAAIAQB8AAAB9AAAEABAATElTVBoAAABJTkZPSVNGVA4AAABMYXZmNjAuMTYuMTAwAGRhdGEgiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAA//////7/////////AAABAAAAAgABAAEAAQAAAAIAAQABAP//AAD+////AAD+//7////+////AAD//wAA/v8AAAAA/v8AAP//AAAAAAAAAgD////////+////AAABAAEAAgD/////AQABAAAA//8CAP//AAAAAAAA/v8AAAAA//8AAAEA//8EAAAAAAAAAAAA//8BAP//AQABAAEA/////wEA/v///wAAAAACAAAAAAABAAAA//8AAP//AAACAP//////////AAAAAAEAAAAAAAEA//8AAAEAAQADAAIAAgAAAAAA/v///wEAAAAAAAEAAAAAAAEA//8AAAEAAQD//wAA//8AAAEAAAABAAEAAAABAP//AAD//wAAAgAAAP//AQD/////AAAAAP7/AgAAAAIAAAAAAAAAAAABAAAAAQABAP//AAABAP///v8AAP////8AAP//AAD//wAA//8BAP//AAD///7///8BAP7///8AAAIAAgABAAEA/v8AAP//AQADAAEAAAACAAEA/////////v///wEA/v////7/AAD+////AAAAAAAAAgAAAAAAAAD//wEAAAAAAAAAAQABAAIA/v8AAAAA//8AAAEAAAAAAP//AgD//wEA/////wAAAQACAAAAAAAAAP//AQD/////AQAAAAEA/v8AAAEAAQABAAEA///+////AQD//wEAAgD+//7/AAAAAAAAAQAAAAAAAQAAAAAAAAAAAP//AAD//wEAAQD//wAAAQABAP7///8AAP7/AAABAP7/AQABAAEAAAABAAEAAAD+/wIAAAABAAAAAQD/////AQACAP////8AAP//AQD//wEA/v8CAAEAAAAAAAAAAQAAAAIAAQAAAAEAAgD//wEAAAAAAP7///8BAP//AgAAAP///v8CAAAAAgD///////////7/AAACAAEAAgD//wAAAAABAP//AwAAAAMA//8AAAAAAQD+/wAAAAD//wAAAQD//wEA//8BAP7/AAABAAAA//8BAAAA//8AAP//AQADAP3////+////AgD+/////v8BAAEAAQACAAAAAAAAAAAA//8AAP//AAD+/wEA/v8AAP7/AAD//wAAAQACAAAAAQAAAP//AQAAAAAAAAABAAAAAAD+//////8AAAAAAAD//wAAAAABAAEA//8AAAEA//8AAP//AgD+/wAA///+/wAA/v///wAAAQABAAAAAQD//wAA//8AAAEA//8BAAAAAgABAP//AAACAAIAAQABAP//AAAAAAAA//8BAAIAAAABAAAA//8CAAEA/v//////AAAAAAEA////////AQAAAP//AAD//wAAAAAAAP3/AAAAAAEAAAACAAAAAAAAAP//AAD//wAAAAAAAAAAAAAAAP///v///wAAAAABAAAAAAD//wEAAAABAAEAAQD//wAAAAACAAAAAQD+/wAA//8BAAEAAAD+/wAA/////wAAAAABAAAAAAD//////v8AAAAA//8AAAAAAAAAAAIAAAABAAEAAAABAP7/AAD9//////////7///8BAP//AAD///3/AQABAP//AAD//wAAAAABAAAA//8AAP//AAD/////AQABAAEA//8AAAAA//8BAAMA//8AAAAA//8AAP7/AAD//wAAAAAAAP7/AQAAAAAA/v8CAP//AAABAAIAAQABAAAA//8BAAEAAQD///7/AQD//wAAAQABAP//AAD//wEAAAAAAAAAAQAAAAIA//8AAP////8AAP//AQD//////v///wEA/v8AAAIAAgACAAEAAAAAAAEAAAAAAAAAAAAAAAAAAQD//wAA/////wAAAQACAP////8AAAAAAAD//wAAAQD+/wEA//8AAAEAAwD//wEAAQAAAAAAAAABAP////8AAAAAAQAAAAAAAAAAAAEAAQAAAP////////7/AQABAAEAAQD///////8BAAAA//8AAAAAAgABAAEA/v8BAP7///8BAP3/AQABAAIAAAD//wEAAAAAAP//AAABAAIA//8CAAAAAQAAAAEA//8BAAAA/////wAAAAD//wEAAQD//wAAAAAAAP//AAAAAAAAAQABAAAAAQAAAP//AQD//////v8AAAEAAAAAAAAA//8AAAAAAAACAAEAAQAAAP//AAABAAEA/////wAAAgABAAAAAAAAAAEAAAABAP//AQABAP7////+/wEAAAAAAP//AAABAAAAAAABAAEAAAAAAAAA//8BAP///f/+/wEAAQD///7///8AAAAAAQAAAP////8AAAAAAAABAAAAAQD/////AAD//wEA//8AAAIA//8CAAAA//8AAAAAAAD+/wEAAAD+/wAA/////wAA////////AAAAAAAA//8BAAAAAAD//wAAAAD//wEA//8AAP//AQD+/wAAAAAAAP7/AAD+/wEAAQABAP//AAABAAEAAQD//wAA/////wEA//8AAAAAAgAAAAAA//8BAAAAAgAAAAAAAAAAAP7/AQD//wAAAAD+/wAAAAADAAIA/////wAAAQD//wIA//8BAAEA/v8AAAIAAAAAAP3///8AAAAAAAAAAAAAAAABAP///////wAA//8AAAEAAQABAAEAAQABAAAAAQAAAAAAAQABAP7/AQD//wAAAQABAAEA//8BAAAAAgAAAAEAAAABAP//AAD/////AAD//wIA/////wIAAAD///7/AAAAAAAAAAACAP//AAABAP////8AAAAAAAABAAAAAgAAAAAAAQD+/wEA/////wAA/////wAAAAAAAAAA/v//////AAAAAP//AAABAAAAAQAAAAIAAAACAAAA//8AAAAA//8AAP7/AAAAAP//AAACAP//AQABAP//AQABAAAA/////////v8AAP//AQAAAAAA///+/wAAAQD+/wEAAQAAAAEA/////wAAAQD//wAA//8AAAAA/v8BAAEA//8AAP7//v8BAAAAAAAAAAEA//8AAAEA/////wAAAAD//////////wEAAAABAAEA//8CAAEA/f8AAAAA//8BAAAABAABAAEAAQAAAAAAAAAAAP7///8AAAAA/v8BAAAA//8AAAIA//8AAP////8BAP//AAAAAAAAAAD/////AQD///7/////////AQD8////AgABAAIA////////AAD//wAAAAABAAAAAAAAAAEAAgAAAP//AQD//wAAAAAAAP/////+/wAAAAABAAAAAwABAP///////wEAAAADAP//AQACAAAA//8CAAEAAAAAAP///////wIAAAAAAAAAAQAAAAAAAgD//wEAAAABAAAA/v8AAAAAAAAAAAAAAAAAAAEA/v8AAP//AQD//wAA//////7///8AAAAAAAAAAP7/AQD//wAA//8AAAEAAAABAAEAAQD/////AAD//wEAAAD/////AQAAAAEAAAD//wEAAAD/////AgD//wAAAQD//////////wAAAAD//wAAAAABAAAAAAD//wAAAQD///7/AQD//wEAAAD/////AAD//wEA//8AAAEA//8CAAAAAQD//wEAAgAAAAEAAwAAAAAA/v8BAAEAAgD//wEAAAAAAAAAAAD//wEA//8AAAAAAQACAP///////wAAAQABAAEAAAAAAAEAAQD+/wEA/f////////8AAAAA//8AAAEA//8BAAAA/v///wEAAAAAAAEA/////wAAAAAAAP//AAAAAAIAAAABAAAA/////wAAAAD//wAA/v8AAAMAAQD+/wEAAAABAAEA//8BAP//AgAAAAAAAAD//wAA/////wEA/v8CAP3/AAACAP3/AQABAAAAAQACAAEA/v8AAAAA//8BAAAAAgAAAAAAAgACAAEA/v/9/wAAAQABAP7///8AAP//AgD+/////v8CAP////8BAP//AQACAAEAAQABAP//AAD///7/AAABAAEAAgD//wEA//8CAAEAAQABAAEAAAABAAAA/v8AAAEA/v8AAP//AAABAP//AQAAAAEAAgAAAAAA/v///wEAAQAAAAIAAAD/////AgAAAAEA/v8AAP7/AQAAAAAAAQAAAAEAAAACAAEA//8BAP////8AAAIAAAAAAP//AAAAAAIAAAAAAAAAAwABAP///v8BAAAAAAAAAP3/AAABAAEA/v////////////3//v8AAAAAAQABAAIAAAD+/////v8AAAAAAQABAAEAAQAAAP//AAAAAP//AQAAAP//AAABAAAAAAAAAAAA////////AAAAAP//AQD/////AAABAAEA//8CAP7///8AAP7//v8BAAEAAAD+/////////wEAAAAAAAAAAgD//wAAAQAAAP7/AQABAP//AQAAAAAAAAD/////AAACAP////8BAAAAAAD//wAA//8AAAEAAQABAAAAAAABAAAAAQD+/wEA/v8AAAEAAQD/////AAD//wAAAQABAP7//v//////AAACAAAAAAAAAAAAAAACAAAAAQAAAAAA//8BAP//AQD//wAA///+/wIAAQD//wAAAAD//wAA/v8AAP3///8AAAAAAAAAAAAA/f8AAAAA//8CAP7/AAD///7/AAAAAAAAAAD//wEAAAAAAAEAAAAAAAAA//8BAP////8BAP7///8CAAEA//8BAP3///////////8BAAAAAAAAAAEAAgD+//////8BAAMAAQADAAEAAAACAAAAAQD/////AAABAAMAAQAAAP//AQD//wAA//8AAAAA//8CAP7//////wAAAAAAAAIA/v8AAP//AAACAP//AwD//wAA//8AAP//AwD//wEAAQABAAEAAQACAAEAAAD//wAA//8AAAIAAAAAAP///////wAAAQD//wIA//8BAP7/AAD///////8AAAAAAAAAAAEAAAD//wAAAQD//wEA//8BAAAAAAD/////AgABAAIAAAABAAAAAAAAAP//AAAAAAAA//8AAAAAAAD/////AQAAAAAAAQD//wAA///+////AAAAAAEAAgABAAEAAAAAAP//AQAAAAAAAQD+/wAAAAABAAEAAAD/////AQABAP7///8AAAIAAAACAAAA//8AAP//AgACAAAA///+/wAAAAABAAAAAQAAAAEA/v8BAAEA//8CAP//AQD+/////v8AAAAAAAACAP//AAD+/wIA/v8BAAAAAAD/////AAAAAP7///8AAP7//////wEAAAABAAAAAAD//wAAAAAAAAAAAgACAAAAAAABAAAA/f8AAP7/AgAAAAEA//8BAAAAAAD///7/AQD//wAAAAAAAAEAAAAAAAEAAAAAAAAAAQAAAAAA//8AAAAAAAABAP///////wAAAgABAAEA//8AAP//AAACAP//AQABAAEA//8BAAAAAAABAAAA//8AAAEAAAAAAAIA/v8BAP//AQD//wEAAAABAAEAAQACAAEAAAAAAAEAAAABAAAAAAD/////AAABAAEA//8AAAAAAQABAP//AAAAAP//AAD/////AQD//wAAAAABAAEA//8BAAAA//8AAP///f/+/wAA/////wAAAQAAAAIAAAAAAAAAAAD+/wEA/f8CAAAA//8AAAEAAgAAAAMAAAABAAAAAAAAAP//AQAAAAAAAQABAAAAAQAAAP//AAAAAAAA//8AAAAAAAABAAAAAQAAAAAAAAABAAIAAAAAAP7/AQD//wAAAAD+////AAAAAAAAAAABAAAA/////wAA//8AAAAAAAD/////AgD//wAA//8CAP//AQACAAEA/f////////8BAAIAAQABAP//AAD//wAA///+////AAD+/wAAAQD/////AAAAAAAA/////wAAAAABAAAAAQAAAAAA//8AAAIAAAABAP//AQABAAEA//8AAAAAAAADAAEAAAABAP//AgD//wMA//8AAAAAAAD//wAAAAD9/wEA///+/wAA//8BAAEA//8BAAAA//8AAP///v8BAP///////////v8BAAAAAQABAAAAAAAAAAAA//8AAP7/AQAAAAAAAAAAAP7/AQAAAAAAAgABAAEAAAABAAEAAAAAAAAAAAD+/wAAAAD//wEAAAAAAAAAAAAAAP//AgABAAAAAAABAAEAAAD/////AAAAAP//AAABAP////8BAAAAAQABAP7//v/+////AQAAAAAAAQAAAAEAAgAAAAAAAQAAAAEAAAD+/////v8BAP//AAABAP//AQABAAAAAAD//wAA//8CAP//AAAAAAEAAAABAAAAAAAAAP//AAD+////AwAAAAAAAQD//wEAAAACAAEAAAADAAAAAAD/////AAAAAAEAAAABAAAA//8AAAEA//8BAP///v8AAP//AAD//wAAAQABAP//AQAAAAAA/////wEAAQAAAP////8AAAEA//8BAAAAAQAAAP////8AAAAAAQAAAAIAAQAAAAEAAAAAAAEAAAD//wEAAAAAAP////8AAAAA//8BAAEAAAAAAAIA///+/wIA/v8BAAAAAQACAAAAAQAAAP7///8AAP//AAAAAAEAAAAAAP7/AAD+////AAAAAAAAAAD//wAA/v8BAAMAAAABAAIAAgD//wAA//8BAAEA//8BAP7/AAAAAP7///8BAAAAAQAAAP7/AQD/////AAAAAAEAAAABAP//AQABAAAAAgABAAAAAAAAAP///////wEA//8AAAEA//8AAAAAAQAAAAIAAAABAP7//////wAAAQABAAAAAAABAAEA///+/wAA//8BAP///v8AAP///v8BAAAA//8CAAAAAQAAAAEAAQABAAAAAAD+/wAAAAD+/wAAAAAAAAAA/f////////8AAAAAAQABAP///////wEA//8BAAEAAAAAAAAA/////wEA/v//////AAAAAP//AAABAAAAAAD+/wAAAAD9////AQAAAAEAAwD//wEAAQAAAP//AgAAAAAAAAD+/wIAAAAAAAAAAAAAAAIA//8AAAEAAQACAAAAAQD//wAAAAD//wIAAQABAAAAAAD//wEA//8BAAEAAQAAAAAAAQABAP7/AAD//wEAAAACAP7/AQAAAAAAAAD//wIAAQACAAIAAQAAAAAAAAAAAP3///8BAAAAAQACAP//AgD9/wAAAAD//wEA/v////////8AAAAAAAD//wEAAQD//wMAAQAAAAEA//8AAAEA//8AAAAAAAACAAAAAAD//wAAAQD///////8AAAAA//8BAAIA/v8BAAEA/f8AAAAAAAAAAAAAAgD/////AAD+/wAAAAD//wAAAAAAAP//////////AgABAP///v8AAAIAAQAAAP//AAABAAAA/////wAAAAAAAAEAAAABAP///v///wIA//8BAAEAAQAAAAAA///+/wEAAAAAAAAA/////////v8BAP3/AAAAAAAAAAAAAAAA//8AAP//AAAAAP//AAABAAIAAAACAP////8DAAAAAAABAAAAAwABAP//AAABAP//AAAAAP////8BAAAAAgD//wAA///+/wAAAQD//wAA//8AAP7///8AAAAA/v8AAAAAAQD//wEA/v////////8AAAAAAQAAAP//AQACAAAAAAAAAP//AAD//wAAAAD//wAAAAD+/wAAAAAAAP//AQD//wAAAgAAAAAAAQABAAAAAwD+/wAAAAD///7/AQD//wIAAQAAAP//AAD//wAA//8CAAEAAAAAAAAA/////wAAAAD//wEAAQD///////8BAAAA//8BAAEAAAAAAAAA/v///wEAAAAAAAAAAAADAAAAAAAAAAAAAQABAAEAAAD+//7//v8AAP//AQAAAAAAAAABAAEAAgAAAAAAAQD//wAA/f8AAAAAAAABAAAAAQAAAAAAAAAAAAIA//8BAP///////wIA/////wAAAAABAAEA//8BAAAAAAD//wAAAQD//wEAAAAAAAIA/v8BAP//AAAAAAEAAAABAP//AAAAAAAAAQABAP7/AAABAAAAAQD//wIAAAAAAAEA///+/wAA//8AAP//AAAAAAAAAAABAP///////wIAAQAAAAEAAQAAAP7/AQAAAAAAAQAAAAAAAQD/////AQAAAAAA///+//7/AAD+/wEA//8AAAAA///+/wEAAAABAAIAAQABAAAA//8AAP//AAD//wAAAAD//wAAAAAAAP//AQAAAAAA////////AQAAAAAAAQD+////AQABAP7/AAD///7/AgD//wAAAAAAAP//AAAAAAEA//8BAAEAAgAAAAIAAAD//wEA/////wAAAQD///7/AQD//wEAAQD/////AAAAAAEAAgAAAAAAAQD//wEA//8AAP7//////wAA//8BAAEA//8BAAAAAQD/////AAABAP//AAACAP//AQAAAP//AAABAP////8AAAAAAAABAAEAAwABAAAAAgD//wAAAAD//wEAAAABAAAAAAABAAEA/////wAA//8AAAIAAAAAAAEAAQABAAEAAQABAP//AgAAAAAA//8BAP3//v///wAA//8AAAAAAQAAAP//AQD//wEAAAACAAIAAAABAAAA//8BAAEA//8BAP//AAAAAP//AQAAAAIAAAD//wAAAAAAAAEA////////AQAAAP//AQD//wAAAQD+/wEAAAABAP///v///wAAAAAAAP//AAAAAAIAAQD//wAAAgD+/wAAAAD//wAAAAABAP///P//////AAACAP////8AAAIAAAABAAAAAAAAAAAA//8AAAAAAQADAP//AQAAAAAAAAABAAEAAQAAAAAA/v8AAAAAAAD//wAAAQD//wAAAAD//wAA/v////////8CAAEA/v8BAP7/AAAAAAAA//8AAAEAAAD//wIAAQAAAAIAAQAAAAAAAAD///7/AQABAP//AAAAAP//AAACAAEA//8BAAAAAwAAAAAAAAD//wEAAAD//wAA///////////+/wAAAQABAAIAAAABAAEAAAD//wEAAAD/////AAD+/wIAAwABAAEA/v8BAAEAAAD//wAA//8AAP//AAAAAAEAAAAAAP//AAAAAAEAAQABAAEA/v///wAAAAD//wEAAAACAAAA/f/+/wAA/v///wAA//8AAAEAAQD///7/AAAAAAAAAAABAAAAAAACAAAAAAABAAAAAAABAP//AQD//wAA//8BAP7/AgABAAEAAQAAAAAAAQD//wEA/v8AAP////8AAP///////wIAAQD//wAAAAD//wAA/v///wAAAQD//wIA/////wEAAAAAAAIAAAABAAAAAAD//wEA//8AAAAA/////wAAAQAAAAAAAAD//wEAAQAAAAAAAAACAP///////wAAAgD//wAA/v8AAAIAAAAAAAEAAAABAP//AQABAAEAAQAAAP///v8BAAEAAAAAAP////8AAAAAAQD//wIAAQAAAAEAAAAAAAAA//8BAP//AAAAAP7//v///wEAAAAAAAIAAAAAAP//AAD//wEA//8BAAAAAAABAAEAAAABAP7///8AAAIAAAABAP//AAD//wEAAAAAAP//AAAAAAEAAAAAAAAAAAAAAP7/AQD//wAAAQD+/wEA/v8BAP7/AAABAAEAAAACAAIAAAADAAAA//8AAAEAAAABAP//AQD//wIA/////wEA//8AAAEA//8AAAEAAAAAAAAAAQABAAAAAAAAAAAAAAD//////////wAA//8AAP7/AAD+/wAAAQAAAAAA/////wAABAAAAAAA//8AAAEAAAAAAAAA/v8AAP//AAAAAAAAAAD//wAAAAD///////8BAAEAAAD/////AgABAAEA/v/+/wAAAQACAAEAAAD//wAAAwABAP//AgD+/wAA/v8AAAAAAAAAAAEA//8AAAEAAAD+/wEAAAAAAAEAAgAAAAEAAAABAP//AQD+/wIA/////wAAAQD//wAAAQD+/wAAAQABAAAA////////AAACAAAAAQAAAAIA//8BAP///v///wEA//8BAAEAAQD+/wAAAQD9/wAAAQAAAAEAAAABAAAAAgAAAP//AAD+/wAA/f8AAAAA////////AgAAAAcAAQD7/wEA/f8AAAIA//8GAP7//v/+//b/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+P/F//z/rv/i/7r/6v/Z/wYABwAoADAAKQBOABkATAD0/zQA1P8PANv/0//v/6//FwCi/ywAxP8oAPn//v82APT/WwD4/00A+/8yAPv//f/8/83/+v+w/+T/sf/j/9b/AQACACoAIgAtAEIAHwBPAAEAQADe/xcA0v/k/+X/t/8IAKv/IgC//yEA6/8EACMA9/9PAPf/VAD+/zcA+/8JAPn/1P8AALf/6f+w/+P/zf////j/HAAdAC0APgAfAEsABwBCAOP/IADV/+//2v/B//3/rP8PALv/GADd/xEAFgABAEMABABaAP//QgACABcA+//n/wAAwP/w/67/4v+///3/6f8WABcAKQA0ACIARgAQAEcA8f8pANn/9f/U/87/7f+v/wgAtP8RANP/FgANAAIAOQACAFQA/f9HAAAAIAABAO3//P/E/wEAs//q/7n/9P/i/wYAEQAZADEAJABBABMASAAAADEA3/8CANL/1v/g/7H/AACy/w8Axf8ZAPv/CQAzAAIAVQD//1AAAAAsAAIA9v/7/8r/AwC2//P/tf/m/+H/AwADABEAKQApADoAHgBHAAgAPADr/wkA1//f/93/vP/6/7L/CgDA/x4A7/8hACkAAgBPAPz/UgD1/zIABAAEAPz/0v/5/7f/AACy//H/2f/+/wEAAAAkABUAMwAdADoAEQA9APD/EADU//L/1P/H/+z/tf8LALv/HADk/ygAGgADAEMA//9TAPn/QAAAABAAAQDc//z/wf8DALD/7P/Q//z/9/8HABoAFgA3ACMAMAAOADwA+P8ZANv/+P/Y/9H/5v+8/wUAu/8WANf/HgAMAAoAPQABAFMA/f9HAP7/HwAEAN//+v/H/wMAs//2/8r/8//y/wMADgAQAC4AIwAyABMAJwD8/xcA3v8LANP/5v/f/8j/AgC4/w4A1P8eAAQACgAxAAEAUgD+/0gA/v8nAAIA8f/5/8r/BAC6/+3/wP/l/+b/AQAIABkAIwArAC4AIAAoAAkAGADj/w0A0f/r/9//0P8DAL3/CgDN/xkA//8IACUAAgBJAAAATwD+/ysAAQD7//3/z/8DAMT/+f/K/+L/5P/1////EgAcACYALgApAC4ACwAcAPL/EADZ//L/1f/U//f/uv8KAMX/DwDu/wcAHwADAEUABgBNAAEANQAAAAYAAQDf////xf/+/9P/4f/b//X/9v8LAA4AGAAlACoAMAAQABkA9v8TAOL/+f/W/9r/8f/I/wcAxP8MAOr/BwATAAQAOAAGAEcAAABCAAEADwAEAOP//v/F/wIAzf/o/93/8P/s/w4ACwAZACEAKgAyABMAIQD5/xgA6v8DANb/4P/y/9H/AQDJ/wkA4/8DAAoA/f8wAAQAQwABAEAA//8VAAIA7P/+/8r/BADP/+v/2v/s/+n/CwAIAA0AHAAjADQAHAAkAP//GQDy/wQA5v/i//b/0P/7/8f/AADh/wMAAAD+/yUAAAA7AAEAOAAAABwAAAD6/wAA1/8CAMr/AADb/+3/5f8BAAIACAAVABcALwAfACgA+/8XAPn/DgDe/+//7v/Q/wMAz/8JAOP/CwDx////EAAHADEAAQArAAIAHQAEAAcAAADr/wEAzv8CANj//f/k/wEA+f/+/xQABwAqAB4ALAD+/x4A8P8SAOb/8//f/9j//f/N/wEA3v8LAO7/AgAMAAQALAAEAC0AAQAdAAQADwABAPP/BADV/wMA0/8AAOH/AQD1/wAAEAADACQAGwAwAAQAHwD0/xUA8f/4/+L/2//7/8z/AwDc/woA6f8AAAQAAwAoAAcANAAAACcAAgAUAAEA+P8CANv/AgDR/wEA4v8BAOz/AgAIAPv/JAAVADMAFAAhAPP/GQDz//7/3P/l/+3/z/8BANf/CgDn/wkA/P///xoABwAwAAIAJwACABcAAwABAAIA4f8BAND/AgDd//3/6P8CAAYA/f8YAAwALwAZACUA9v8bAPj/AwDq/+r/7P/S//7/1/8EAOX/CQD6//7/GQAFAC8AAQApAAEAGQACAAMAAgDm/wEAzv8BANv//v/p/wIA//8BABMABQArACAALAABAB4A8f8NAOv/7v/m/9n/+P/R/wMA4f8OAPT/AQATAAMAKwAHACoAAwAbAAMABQADAO7/AQDU/wEA2f8AAOL////3////EgAAACUAGgAvAAUAHQD2/xIA9f/0//T/3P/4/8///f/h/wIA7f8AAAoAAQApAAQALQADACAAAgAPAP//9P///9r//f/T/wAA3f/9//D/AQAQAP//HAAHAC8ACQAfAPv/GAD+//f/+P/j/wEA0v/+/9n/AADq/wIABgD//x0AAQAuAAEAIwAAABQAAwD8/wEA3/8AAM//AADe////7f8BAAwA//8ZAAMALwAAACEA//8dAP3//v/9/+n////U//z/1v8BAOT/AAD+/wAAGwD+/ywA/v8kAAIAGAD///3////q/wEA0P///97/AADk/wAABAAAABUAAQAqAAEAKQAAABwAAAAFAP//6f8AANr////X/wAA4/8AAPj/AgAUAAAAKgD//ywAAAAcAP7/AQAAAOv/AADU/wAA2v8CAOP/AAABAAAAFgABABsAAAAqAAEAHwAAABQAAgDv/wEA3v///9H////f////7/8BAAoAAQApAAAALgD//yEAAQAIAAAA8P8BANr//v/V////4f8AAPf//v8UAAAAFAAAACYAAQAhAP7/GwD+//T/AADo/wIA1v8CANr/AgDp/wEABgAAAB8AAQAsAAEAJAAAAAwA///z/wEA3/8AANT/AADh/wEA9P///xQAAgASAAAAJQAAACEAAAAaAP//+v8BAOj////W////2P8BAOf///8DAAAAHwAAAC4AAAAlAAAAEgAAAPL/AQDm////0f8CAN3/AADr//7/EQD//xAAAQAhAAIAJQAAAB8AAAABAP//6v8CAN//AQDX/wAA4/8AAPr/AAAXAAAAKgABACgAAAAbAP///f8AAOj/AADU/wAA2v///+f/AQANAAMAEQD+/xwA/v8kAP7/IQABAAgA/v/p////5/8AANf/AQDd/wEA8v8BABMAAQAjAAAALgAAACAAAQADAAEA7f8BANn/AgDY//7/4P/+/wEAAAAXAAIAFAAFACUA/P8jAP//EgAAAO//AQDo////1/8AAN3/AADx//7/DgAAAB0AAQAoAAAAIwAAAAoAAQDv/wMA4f8AANn/AQDi/wEA+v///xgAAAAQAP3/IwD//yUA/v8XAAAA7/8AAOv/AADc/wAA3P/+/+v/AQALAAEAGgACACkAAAAkAP7/EAABAO/////q//7/1/8AANz/AgDw/wEAEgD//w8AAAAcAAIAJQAAAB0AAAD2////7P8AAOP/AgDa/wAA5P8BAAQAAQAWAAAAIgAAACMAAAAaAP//+P///+v/AQDZ/wAA2////+7/AAARAAAADgAAABYAAAAhAAAAIAABAPz/AQDt/wAA5P8AANr/AQDg/wEA/P8BABcAAAAhAP//KQD//xwAAAD8/wEA7v8AAN3////Z/wAA6f8BAA0AAAARAAEAEQAAACMAAAAgAAEA/f8CAO3/AADv/wAA3v8BANv////1////EgAAABkA//8nAAAAIgAAAAMAAADu/wAA6P8CANn/AQDg////BQD//xMAAQAOAP//IAABACYAAAAGAAAA6f////H/AADg/wEA2f8AAO3///8PAAAAFQACACQAAAAkAAEADQABAO//AADp/wAA2////9z/AQD7/wEAFgAAAAwAAQAXAP7/JQD9/xMAAADx/wAA8f8AAOr/AADc/wEA4/8BAAkAAAAVAAAAIQD//yYA//8UAAEA9P8BAOz/AADf/wAA3P8AAPP/AAAQAAAADQABAA0AAAAlAAEAGAD///H//v/0/wEA7v8CAN//AADg//3/BAACABUAAQAfAAAAJwABABgAAQD0//7/7f///+L/AADa/wIA8P///w4A//8SAAMACQAAACAAAQAgAP//+v////P////y/wEA4/8BANr/AQD9/wAAEwD//xkAAQAjAAAAIgABAPz////s/wAA6v8BANX/AQDr//7/BwABABMAAAAHAP//FwAAACYAAAD//wEA9P8BAPb/AQDu////2v8BAPn/AAATAP//FwD//yEAAAAjAAAAAgAAAOn/AQDr//7/2P8CAOT/AAABAP//FgABAAUAAQATAP//IwAAAAEAAgDy/wEA9/8AAPb/AADb/wAA6/8BABAAAAATAP7/IQAAACYA//8UAP//7/8AAPD/AADd/wEA3P/+//7///8OAAAACgAAAAgAAAAhAP//CQACAPT/AQD2/wAA9v///97////m/wIADgABABMAAQAfAP//JwAAABMAAADw/wAA8P///+r/AQDb/wAA9f8AAA8AAAARAAIABAD//wYA/v8HAAAAAQD//wMAAgAGAAAA7f8AAOz/AAALAP//DwACABQA//8bAAAAHgD///f/AADq/wEA6/8BANj//v/t/wAACAD+/xAAAgAEAAAABAABAAcAAQADAAAA//8AAAUA///1/wAA5f///wIAAAAOAAAAEAAAABsAAAAhAAAA/v8BAOj////y////3f8AAOf/AQAGAAEADAAAAAcA//8BAP//CQABAAMA//8BAP//BQAAAAAAAADo/wAA+/8AAAoAAAALAAAAFAAAACAAAQAGAAIA7f8BAPH/AADm/wMA3P8CAP7/AgASAP//CgD//wAAAAAIAP//BQD//wEAAAACAP7/BAAAAPz/AwD8////BAAAAAEA//8HAAAAHQAAAAgA/v/x//7/8f///+f/AQDg/////P///woAAAAMAP//AAABAAYA//8EAAAAAgAAAAUAAAACAAAAAwAAAAIAAAABAAAAAQABAAAAAgAcAP//DgD///T/AQDx/wAA9P8CAOH/AAD3/wAACQAAAAoAAQABAP//AwAAAAcAAAD+/wAAAgACAAEAAAD+////AwD+/wAAAAABAP//+v8BABEAAQATAAAA9f/+//L//f/z/wIA6f8AAPb/AQAFAP//DAAAAAAAAAAFAP//BQD//wEA//8DAAEAAQAAAP7///8AAAAA//8BAAIAAAD+/wAAEAABABYAAgD6/wEA8v8BAPX/AwDp/wAA8////wMA//8JAAEABAABAAEA//8FAAEA//8AAAMAAQACAP//AQAAAAEAAgAFAP//AQABAAAAAQAAAP//EQABAAAAAAD5/wEA+P8AAPr////6/wAA+/8BAAIA//8BAAAA//8CAAUA//8BAP7/AAABAAEAAgAAAAAAAwAAAAEA/v8DAAIAAAACAAQA//8TAAAA/P8BAPr////3//////8AAPz/AQD7/wEAAgD/////AAABAAEABAAAAP//////////AAAAAAAAAAADAAAAAwAAAAAA//8EAP///v/+/xAA//8HAAAA+/////j/AQD8////AAD///n///8AAAAA//8AAP////8DAP//AgAAAAAAAAACAAIAAAD+/wAAAQD//wAA/////wIAAgD9////CQACAAYA///9////+f8BAPr/AQAAAAIA/v///wAA//8AAAAAAAAAAAEAAAABAAAAAgAAAAEAAAAAAAEAAQABAAAAAgABAP//AAD//wEAAAD///////8BAAIAAQAAAAAA/v/+//////8BAAAAAQABAP//AAD///////8BAAAAAQABAP////8CAAEAAQD//wEA/v//////AQAAAAAAAAAAAAAAAAD9/wMA/////wAAAQD+/wEA/v/+//7/AQD//wMAAAAAAAAAAAABAAEA//////7/AAACAP3/AAD//wAAAQAAAP//AQD//wAAAAAAAAEA//8CAP//AAAAAAAA/v8AAAAA//8BAP//AAABAP//AAAAAP//AQD//wAAAQABAAAAAAABAAEA/v///wAAAAD//////////wAAAAAAAP//AAD////////8/wIAAAADAAEA/////wEA/v8BAP7/AgAAAAEAAgAAAP//AgD/////AQD//wEA//////7/AQD//wMAAAAAAAAA//8CAP//AQAAAP//AAACAAAAAAABAP//AQD+/wAA/////wAA/f///wAAAAAAAP7/AAAAAAAAAgD//wEAAQACAP//AAAAAAEAAQD//wAAAAAAAAAA//8BAAMA/v8AAP7/AQAAAAAAAQAAAAAA///+//7/AAAAAAAA//8BAP7/AQAAAP//AQABAAAAAQAAAP//AAD//wIA/v///wAAAQABAP//AAD//wEA//8BAP//AgAAAP///////wAAAQABAP//AwABAAAAAAAAAAAA/////wIAAwACAAAA/v8BAAAAAAAAAAAA//8AAP////8AAAAA/////wAA/////wEA/v8CAAEAAQD//wAAAAABAAAAAAD//wEAAQABAAAA//8CAAAAAAAAAP7/AAABAAAAAQABAAAAAgABAAAAAQD//wEAAwD+/wAA/v8AAAEAAAAAAAAAAAAAAAEAAAD//wMA/v///wAAAAACAAEAAAAAAP7///8DAAEAAQD//wEA/f8BAAEAAQD//wEAAQABAAMAAgAAAAEA//8AAP//BAAAAAIA/v//////AQABAAAAAAD//wEAAAACAAIAAQAAAAAAAgAAAAAAAAABAAIAAAABAAIAAQAAAP////8AAAAAAAD//wAAAQACAP//AAAAAAAAAQAAAAEA//8AAAAAAAD/////AQD//wAAAQD9////AQAAAAAA//8BAAAA///+/////v8BAAAAAQAAAAAAAAAAAAIA//8BAAAAAAACAP//AQD//wAAAAD/////AAD9/wAAAAACAAAAAgAAAAEAAQABAAEAAAAAAAEA//8AAAEAAQACAAAAAQAAAAEA//8BAAIAAAACAP//AAABAAAAAAAAAAAAAAD//wAAAQD/////AAAAAP////8AAAEAAAAAAP7///8BAAIAAQD//wEAAQAAAP//AgAAAAAAAAD//wAA//8CAP7/AQAAAP7/AAD+////AAAAAAAAAQABAAAA//8AAAEAAAABAP7/AAAAAP7/AAD+/wAAAQABAAEA/////////v8BAP///v///wIAAAAAAAAAAQAAAAIAAQAAAAAAAAABAAEAAAAAAAAAAAD//wEAAQD//wAAAQABAAAA/v/+/////////wAAAAD//wAAAAD/////AAAAAP7/AAD//wIA//8CAP//AQAAAP////8AAAAAAQABAP////8AAP//AQACAAAAAQAAAAAAAAAAAAAA//8BAAAAAAD+/wAA/v///wEAAAD+//7///8CAP7/AAABAP3/AwAAAAAAAAABAAIAAAABAAAAAQABAAIAAAAAAP//AAAAAAEAAAACAAEAAAACAAAAAAABAAAAAwAAAAAAAAD+/wAAAQD9//////8BAAAA/v8AAAAAAAAAAAAAAAD//wMA/v8BAAEAAQACAAAA/v8BAP//AwABAAIAAQABAP//AQAAAAEAAAAAAAEA//8AAAAAAAD/////AAABAAEAAAAAAP////8AAAAAAAAAAAAA/v8AAP//AQAAAP//AAABAAIAAQAAAAAAAgABAAAA/////wAAAQABAP//AQABAAEA/////wAAAAAAAAAAAAABAAEAAQAAAAAAAAAAAAAA//8AAP7/AQD9/wAAAgD//wEAAQABAAEA/v8AAAEA/////wAAAAAAAP//AAABAAAAAAAAAAAA//8CAP//AAABAAEAAQABAAAA//8BAAIAAgD//wAA/v8AAAEAAAD///7/AAAAAAEAAAABAAAAAQABAAAAAQACAAAA///+/wAAAQABAP7////+/wAA//8AAAAAAgAAAP//AQD9/wAAAAD//wAA//8AAAAAAQAAAAAAAQD//wAAAAAAAP//AQABAAAA/v8CAP//AAD///////8AAAAAAAACAAEA//8BAP7/AAAAAAEA//8BAAAAAQD//wAAAQD+/wAA/////wAAAAD//wAAAQABAAAA//8AAAEA/////wAA//8AAAAA/v/+/wEAAgABAP//AgD//wIA/////wAA//8AAAEAAQAAAAAAAQAAAAMAAAACAP//", showCount: !0 }, audio: { disabled: !0, defaultToggledOn: !1, language: "en-US", voiceNames: ["Microsoft David - English (United States)", "Alex (English - United States)"], rate: 1, volume: 1, icon: Li, iconDisabled: Ri }, chatHistory: { disabled: !1, maxEntries: 30, storageKey: "rcb-history", storageType: "LOCAL_STORAGE", viewChatHistoryButtonText: "Load Chat History ⟳", chatHistoryLineBreakText: "----- Previous Chat History -----", autoLoad: !1 }, chatInput: { disabled: !1, allowNewline: !1, enabledPlaceholderText: "Type your message...", disabledPlaceholderText: "", showCharacterCount: !1, characterLimit: -1, botDelay: 1e3, sendButtonIcon: Oi, blockSpam: !0, sendOptionOutput: !0, sendCheckboxOutput: !0, buttons: [Pe.VOICE_MESSAGE_BUTTON, Pe.SEND_MESSAGE_BUTTON] }, chatWindow: { showScrollbar: !1, showTypingIndicator: !0, autoJumpToBottom: !1, showMessagePrompt: !0, messagePromptText: "New Messages ↓", messagePromptOffset: 30, defaultOpen: !1 }, sensitiveInput: { maskInTextArea: !0, maskInUserBubble: !0, asterisksCount: 10, hideInUserBubble: !1 }, userBubble: { animate: !0, showAvatar: !1, avatar: "data:image/svg+xml,%3csvg%20width='140'%20height='140'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cy='60.044'%20cx='70'%20fill='%235c5c5c'%20r='29'/%3e%3cpath%20d='m16.36%20156.186-.01-30.5c-.005-16.844%2024.168-30.507%2053.991-30.516%2029.823-.009%2054.004%2013.64%2054.01%2030.484l.008%2030.5-108%20.032z'%20fill='%235c5c5c'/%3e%3c/svg%3e", simulateStream: !1, streamSpeed: 30 }, botBubble: { animate: !0, showAvatar: !1, avatar: no, simulateStream: !1, streamSpeed: 30 }, voice: { disabled: !0, defaultToggledOn: !1, language: "en-US", timeoutPeriod: 1e4, autoSendDisabled: !1, autoSendPeriod: 1e3, sendAsAudio: !1, icon: _i, iconDisabled: Ni }, footer: { text: he("div", { style: { cursor: "pointer", display: "flex", flexDirection: "row", alignItems: "center", columnGap: 3 }, onClick: () => window.open("https://react-chatbotify.com", "_blank", "noopener,noreferrer"), children: [S("span", { children: "Powered By " }, 0), S("div", { style: { borderRadius: "50%", width: 14, height: 14, display: "flex", justifyContent: "center", alignItems: "center", background: "linear-gradient(to right, #42b0c5, #491d8d)" }, children: S(ro, { style: { width: "80%", height: "80%", fill: "#fff" } }) }, 1), S("span", { style: { fontWeight: "bold" }, children: " React ChatBotify" }, 2)] }), buttons: [Pe.FILE_ATTACHMENT_BUTTON, Pe.EMOJI_PICKER_BUTTON] }, fileAttachment: { disabled: !1, multiple: !0, accept: ".png", icon: oo, iconDisabled: oo, sendFileName: !0, showMediaDisplay: !1 }, emoji: { disabled: !1, icon: Ao, iconDisabled: Ao, list: ["😀", "😃", "😄", "😅", "😊", "😌", "😇", "🙃", "🤣", "😍", "🥰", "🥳", "🎉", "🎈", "🚀", "⭐️"] }, toast: { maxCount: 3, forbidOnMax: !1, dismissOnClick: !0 }, event: { rcbPreInjectMessage: !1, rcbPostInjectMessage: !1, rcbStartSimulateStreamMessage: !1, rcbStopSimulateStreamMessage: !1, rcbStartStreamMessage: !1, rcbChunkStreamMessage: !1, rcbStopStreamMessage: !1, rcbRemoveMessage: !1, rcbSaveChatHistory: !1, rcbLoadChatHistory: !1, rcbToggleChatWindow: !1, rcbStartSpeakAudio: !1, rcbToggleAudio: !1, rcbToggleNotifications: !1, rcbToggleVoice: !1, rcbChangePath: !1, rcbShowToast: !1, rcbDismissToast: !1, rcbUserSubmitText: !1, rcbUserUploadFile: !1, rcbTextAreaChangeValue: !1, rcbPreLoadChatBot: !1, rcbPostLoadChatBot: !1, rcbPreProcessBlock: !1, rcbPostProcessBlock: !1 }, ariaLabel: { chatButton: "open chat", audioButton: "toggle audio", closeChatButton: "close chat", emojiButton: "emoji picker", fileAttachmentButton: "upload file", notificationButton: "toggle notifications", sendButton: "send message", voiceButton: "toggle voice", inputTextArea: "input text area" }, device: { desktopEnabled: !0, mobileEnabled: !0, applyMobileOptimizations: !0 } }, fA = yt({ settings: {}, setSyncedSettings: () => null, syncedSettingsRef: { current: {} } }), oe = () => mt(fA), Hi = ({ children: e, settings: t = pA, setSyncedSettings: r, syncedSettingsRef: n }) => S(fA.Provider, { value: { settings: t, setSyncedSettings: r, syncedSettingsRef: n }, children: e }), gA = { tooltipStyle: {}, notificationBadgeStyle: {}, chatWindowStyle: {}, headerStyle: {}, bodyStyle: {}, chatInputContainerStyle: {}, chatInputAreaStyle: {}, chatInputAreaFocusedStyle: {}, chatInputAreaDisabledStyle: {}, userBubbleStyle: {}, botBubbleStyle: {}, botOptionStyle: {}, botOptionHoveredStyle: {}, botCheckboxRowStyle: {}, botCheckboxNextStyle: {}, botCheckMarkStyle: {}, botCheckMarkSelectedStyle: {}, characterLimitStyle: {}, characterLimitReachedStyle: {}, chatHistoryLineBreakStyle: {}, chatMessagePromptStyle: {}, chatMessagePromptHoveredStyle: {}, footerStyle: {}, loadingSpinnerStyle: {}, mediaDisplayContainerStyle: {}, chatButtonStyle: {}, chatButtonHoveredStyle: {}, chatHistoryButtonStyle: {}, chatHistoryButtonHoveredStyle: {}, sendButtonStyle: {}, sendButtonHoveredStyle: {}, sendButtonDisabledStyle: {}, audioButtonStyle: {}, audioButtonDisabledStyle: {}, closeChatButtonStyle: {}, emojiButtonStyle: {}, emojiButtonDisabledStyle: {}, fileAttachmentButtonStyle: {}, fileAttachmentButtonDisabledStyle: {}, notificationButtonStyle: {}, notificationButtonDisabledStyle: {}, voiceButtonStyle: {}, voiceButtonDisabledStyle: {}, chatIconStyle: {}, audioIconStyle: {}, audioIconDisabledStyle: {}, closeChatIconStyle: {}, emojiIconStyle: {}, emojiIconDisabledStyle: {}, fileAttachmentIconStyle: {}, fileAttachmentIconDisabledStyle: {}, notificationIconStyle: {}, notificationIconDisabledStyle: {}, voiceIconStyle: {}, voiceIconDisabledStyle: {}, sendIconStyle: {}, sendIconDisabledStyle: {}, sendIconHoveredStyle: {}, rcbTypingIndicatorContainerStyle: {}, rcbTypingIndicatorDotStyle: {}, toastPromptContainerStyle: {}, toastPromptStyle: {}, toastPromptHoveredStyle: {} }, hA = yt({ styles: {}, setSyncedStyles: () => null, syncedStylesRef: { current: {} } }), fe = () => mt(hA), Ui = ({ children: e, styles: t = gA, setSyncedStyles: r, syncedStylesRef: n }) => S(hA.Provider, { value: { styles: t, setSyncedStyles: r, syncedStylesRef: n }, children: e }), Fi = ({ buttons: e }) => {
|
|
26
|
+
const Pe = { AUDIO_BUTTON: "audio-button", NOTIFICATION_BUTTON: "notification-button", CLOSE_CHAT_BUTTON: "close-chat-button", SEND_MESSAGE_BUTTON: "send-button", VOICE_MESSAGE_BUTTON: "voice-button", FILE_ATTACHMENT_BUTTON: "file-attachment-button", EMOJI_PICKER_BUTTON: "emoji-button" }, no = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xml:space='preserve'%20viewBox='0%200%201000%201000'%3e%3crect%20width='100%25'%20height='100%25'%20fill='%23fff'/%3e%3cg%3e%3crect%20width='45'%20height='30'%20x='-22.5'%20y='-15'%20rx='1.5'%20ry='1.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2337547a;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20-99%20362)%20scale(3.4003)'/%3e%3cpath%20d='M0%2075q14%200%2014%2017%200%2016-14%2016Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='rotate(180%20106%20386)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='4'%20x='-12.5'%20y='-2'%20rx='.2'%20ry='.2'%20style='stroke:%2346648c;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20-46%20282)%20scale(3.4003)'/%3e%3cpath%20d='M19%2065h4l5%204v1H14v-1Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='2'%20x='-12.5'%20y='-1'%20rx='.1'%20ry='.1'%20style='stroke:%2398b0ca;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20-3%20240)%20scale(3.4003)'/%3e%3ccircle%20r='7.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(236%20175)%20scale(3.4003)'/%3e%3crect%20width='45'%20height='30'%20x='-22.5'%20y='-15'%20rx='1.5'%20ry='1.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2337547a;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20139%20600)%20scale(3.4003)'/%3e%3cpath%20d='M184%2075q14%200%2014%2017%200%2016-14%2016Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='4'%20x='-12.5'%20y='-2'%20rx='.2'%20ry='.2'%20style='stroke:%2346648c;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20219%20548)%20scale(3.4003)'/%3e%3cpath%20d='M175%2065h4l5%204v1h-14v-1Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='2'%20x='-12.5'%20y='-1'%20rx='.1'%20ry='.1'%20style='stroke:%2398b0ca;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20262%20505)%20scale(3.4003)'/%3e%3ccircle%20r='7.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(767%20175)%20scale(3.4003)'/%3e%3crect%20width='116.7'%20height='70'%20x='-58.4'%20y='-35'%20rx='31.5'%20ry='31.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2371c9fc;fill-rule:nonzero;opacity:1'%20transform='translate(502%20877)%20scale(3.4003)'/%3e%3crect%20width='60'%20height='20'%20x='-30'%20y='-10'%20rx='3'%20ry='3'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2337547a;fill-rule:nonzero;opacity:1'%20transform='translate(502%20728)%20scale(3.4003)'/%3e%3ccircle%20r='75'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2371c9fc;fill-rule:nonzero;opacity:1'%20transform='translate(502%20473)%20scale(3.4003)'/%3e%3crect%20width='129.4'%20height='82.3'%20x='-64.7'%20y='-41.1'%20rx='37'%20ry='37'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23fff;fill-rule:nonzero;opacity:1'%20transform='translate(502%20464)%20scale(3.4003)'/%3e%3crect%20width='108'%20height='68.6'%20x='-54'%20y='-34.3'%20rx='30.9'%20ry='30.9'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23162334;fill-rule:nonzero;opacity:1'%20transform='translate(502%20464)%20scale(3.4003)'/%3e%3ccircle%20r='19.4'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(415%20464)%20scale(3.4003)'/%3e%3ccircle%20r='19.4'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(591%20464)%20scale(3.4003)'/%3e%3crect%20width='96'%20height='53.2'%20x='-48'%20y='-26.6'%20rx='23.9'%20ry='23.9'%20style='stroke:%23162334;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23162334;fill-rule:nonzero;opacity:1'%20transform='translate(503%20875)%20scale(3.4003)'/%3e%3cpath%20stroke-linecap='round'%20d='m68%20215%207-15M81%20222l-7-22M81%20222l7-14M101%20208H87M114%20219l-7-24M113%20219l13-22M131%20214l-5-17M148%20214h-18M69%20214H51M100%20209l7-15'%20style='stroke:%23a478fc;stroke-width:3;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:10;is-custom-font:none;font-file-url:none;fill:none;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3c/g%3e%3c/svg%3e", ro = Ke((e, t) => Ee.createElement("svg", { viewBox: "0 0 637 637", ref: t, ...e }, Ee.createElement("path", { d: "m478 113-13 2-4 1h4l14-2c10-2 35-2 42-1l6 3 3 1c3 0-4-3-8-5-7-1-34-1-44 1m56 6 8 6c7 5 20 17 20 19s7 12 8 12l-3-6-4-6c0-3-15-17-25-24-5-3-8-4-4-1m-198 16-9 1a512 512 0 0 1 9-1m-180 30a412 412 0 0 0-23 4 167 167 0 0 0-32 8 439 439 0 0 1 46-9 304 304 0 0 1 11-2l6-1h-8m369 8 4 3-7-6c-1 0 0 2 3 3m-439 9c-7 3-18 13-18 15l6-5c5-5 9-8 14-10l6-4-8 4m442 12-10 11-7 6 7-6c7-5 14-14 13-16l-3 5M65 205l-1 11c0 9 0 10 4 17 5 10 7 12 22 11 10 0 15 0 38-5l5-1-6 1-16 2-21 2c-13 1-16-1-21-10-3-5-4-6-4-15l1-12c1-4 1-5-1-1m335 1c3 0 3 1 3 3l-2 6c-2 5-35 39-76 80-53 51-120 117-138 137-21 24-22 25-22 27 0 3 6 9 9 9 4 0 14-8 38-27a5073 5073 0 0 1 15-16 1421 1421 0 0 0-17 15l-31 25-6 2-4-3c-3-3-3-4-2-6 3-8 79-85 160-163 57-57 79-80 79-86 0-2-3-4-7-4-2 0-2 0 1 1m165 18c-9 17-25 32-57 53l-10 8 16-11 12-8c15-10 27-22 39-39 5-7 6-8 4-8l-4 5m-221 2a199 199 0 0 0-19 10 183 183 0 0 1 27-12c0-1-1-1-8 2m-34 16c-3 3-2 3 2 0l1-2-3 2m151 3-1 2 2-2c3-3 2-3-1 0m-16 12-11 10a281 281 0 0 0 11-10m-24 18-7 5-7 5-42 31c-10 7-24 19-22 19l7-6 16-12a343 343 0 0 0 35-25 573 573 0 0 0 20-17m-187 0-2 2 4-2 3-2-5 2m-14 6-3 2 4-1 4-3-5 2m-7 3-8 4-18 8 18-7 7-3 3-1c1-2 0-2-2-1m254 24a2672 2672 0 0 1-71 54 601 601 0 0 0 39-29 1352 1352 0 0 1 32-25m-291-8-2 2 4-2 3-2-5 2m-13 5-2 2h3c5-3 4-4-1-2m-19 9-7 3-13 6c-10 5-13 7-14 10-3 4-2 5 1 0 2-3 5-5 14-9l13-6 12-6-6 2m178 36c-17 12-21 16-21 17a390 390 0 0 1 20-17m-206 34 1 4 1 3 1 5 2 8 1 5v-6l-1-8-2-5-1-4-1-2c-1-2-1-2-1 0m222 23-9 7a683 683 0 0 0-56 44 261 261 0 0 0-26 20 1345 1345 0 0 0-46 34c-6 3-7 3-19 3-11 0-12 0-18-3-8-4-10-8-17-20l-5-10 4 10c5 10 12 18 19 22 4 2 6 2 17 2 13 0 14 0 21-3l26-19 42-33a2183 2183 0 0 0 43-34 643 643 0 0 1 24-20", fill: "#fff", fillRule: "evenodd" }), Ee.createElement("path", { d: "M478 114a620 620 0 0 1-39 6l-21 3a5481 5481 0 0 0-19 3 870 870 0 0 1-54 8l-1 1-6 1-12 2-13 2a992 992 0 0 0-76 12 400 400 0 0 1-45 8l-6 1-5 1h-3l-3 1-2 1-26 4-13 2-17 3c-23 5-33 9-43 19-7 8-9 13-9 27 0 8 1 9 4 14 5 9 8 11 21 10l21-2a1133 1133 0 0 1 23-4 659 659 0 0 0 74-14l3-1h3l3-1h3l2-1 2-1h3l2-1h2l24-5 38-7a2100 2100 0 0 1 93-18l3-1 10-1a2082 2082 0 0 1 120-17l2 1c2 0 8 5 8 7l1 2 1 6c0 4 0 6-3 10-2 4-16 16-18 16l-7 5-10 8a1070 1070 0 0 0-11 7 113 113 0 0 1-20 14l-2 2-3 2-2 2h-1a154 154 0 0 1-28 21l-5 4-5 4a573 573 0 0 1-50 37 175 175 0 0 0-24 18l-1 2-2 1-2 1-2 1-1 1-12 10a396 396 0 0 0-32 25l-8 6-6 5-9 7a326 326 0 0 1-25 20l-13 12a5073 5073 0 0 0-17 15c-24 20-34 27-39 27-2 0-8-6-8-9 0-2 1-3 22-27 18-20 85-86 138-137 41-41 74-75 76-80l2-6c0-2 0-3-2-3l-7 1a233 233 0 0 1-26 9l-1 1-1 1h-1l-1 1h-2l-3 2-1 1h-2l-3 2h-1l-5 2-22 10-9 4-4 2-5 2-10 4-2 1-2 1-2 1-13 6a334 334 0 0 1-38 17 75 75 0 0 0-14 6l-5 2-4 1-2 1-3 2-7 3-16 6a247 247 0 0 0-32 14l-1 1h-2l-1 1h-2l-1 1-12 6a103 103 0 0 0-27 15l-2 5-1 1v11l1 5 1 5 1 4c0 3 0 4 2 4v3l1 3 1 2 2 10 1 4 1 5 2 10 2 8 1 4 1 4c3 3 9 25 11 38l1 7v2l1 4v1l1 1v2l1 2 1 3v1l5 10c7 13 9 16 17 20 6 3 7 3 18 3 12 0 13 0 19-3 8-4 11-6 26-18a1345 1345 0 0 1 85-67 683 683 0 0 1 50-39l12-9a513 513 0 0 1 44-33 201 201 0 0 0 22-17 2270 2270 0 0 0 73-54 158 158 0 0 0 58-59c2 0 3-9 4-27l-1-19-1-4-1-6-1-3-4-6-4-6c0-2-6-8-13-14a77 77 0 0 0-28-18c-6-1-34-1-43 1" }))), oo = Ke((e, t) => Ee.createElement("svg", { viewBox: "0 -960 960 960", ref: t, ...e }, Ee.createElement("path", { d: "M765-321q0 117-84 196-83 80-200 80-118 0-200-80t-83-196v-392q0-85 61-144 61-58 146-58 86 0 147 58 61 59 61 144v374q0 54-39 92-39 37-93 37-55 0-93-37-38-38-38-92v-372h110v372q0 9 6 14t15 5q8 0 15-5t7-14v-374q0-39-29-66t-68-27q-40 0-69 27t-29 66v392q0 71 51 119t122 48q71 0 122-48t51-119v-426h111v426Z" }))), Qi = Ke((e, t) => Ee.createElement("svg", { viewBox: "0 -960 960 960", ref: t, ...e }, Ee.createElement("path", { d: "M125-165v-113h77v-273q0-93 55-167 56-75 146-100v-19q0-32 22-55 23-23 55-23t55 23q22 23 22 55v19q90 25 146 99 56 73 56 168v273h77v113H125ZM480-32q-38 0-66-27-27-27-27-66h186q0 39-27 66t-66 27Z" }))), Mi = Ke((e, t) => Ee.createElement("svg", { viewBox: "0 -960 960 960", ref: t, ...e }, Ee.createElement("path", { d: "M137-190v-113h78v-253q0-41 11-79 11-39 35-71l-9 150h10L17-802l74-74L873-92l-74 74-175-172H137Zm609-149L319-769q20-15 41-25t44-16v-28q0-32 22-54t54-22q32 0 55 22t22 54v28q85 23 137 94t52 160v217ZM481-47q-38 0-65-27t-27-65h184q0 38-27 65t-65 27Z" }))), Oi = Ke((e, t) => Ee.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 100 100", ref: t, ...e }, Ee.createElement("g", { strokeLinecap: "round", strokeWidth: 10 }, Ee.createElement("path", { d: "m19 19 61 61M80 19 19 80" })))), _i = Ke((e, t) => Ee.createElement("svg", { viewBox: "0 -960 960 960", ref: t, ...e }, Ee.createElement("path", { d: "M94-136v-255l351-93-351-92v-253l816 346L94-136Z" }))), Ni = Ke((e, t) => Ee.createElement("svg", { viewBox: "0 -960 960 960", ref: t, ...e }, Ee.createElement("path", { d: "M480-372q-61 0-105-43-43-43-43-105v-240q0-61 43-105 43-43 105-43 61 0 105 43 43 44 43 105v240q0 62-43 105t-105 43ZM425-76v-122q-121-16-197-108t-76-214h109q0 91 64 154t155 63q91 0 155-63t64-154h109q0 122-77 214T534-198v122H425Z" }))), Li = Ke((e, t) => Ee.createElement("svg", { viewBox: "0 -960 960 960", ref: t, ...e }, Ee.createElement("path", { d: "m763-343-80-79q8-20 13-44 5-23 5-54h109q0 49-11 95t-36 82ZM625-482 336-770v-2q3-56 45-96t101-40q62 0 105 43t43 105v249l-1 17q-1 7-4 12ZM427-76v-122q-120-16-196-108-77-92-77-214h109q0 91 64 154t155 63q43 0 80-14 37-15 67-41l78 79q-35 32-78 53t-93 28v122H427Zm362 27L41-796l75-75 748 748-75 74Z" }))), Ao = Ke((e, t) => Ee.createElement("svg", { viewBox: "0 -960 960 960", ref: t, ...e }, Ee.createElement("path", { d: "M625-511q29 0 50-21t20-50q0-29-20-50-21-20-50-20t-50 20-20 50q0 29 20 50 21 21 50 21Zm-290 0q29 0 50-21t20-49q0-30-20-50t-50-21q-29 0-50 20-20 21-20 50 0 30 20 50 21 21 50 21Zm145 268q75 0 137-43t85-115H258q24 72 85 115 62 43 137 43Zm0 198q-90 0-170-34-79-34-138-93T79-310q-34-80-34-170t34-170q34-79 93-138t138-93q80-34 170-34t170 34q79 34 138 93t93 138q34 80 34 170t-34 170q-34 79-93 138T650-79q-80 34-170 34Zm0-435Zm0 322q134 0 228-94t94-228q0-134-94-228t-228-94q-134 0-228 94t-94 228q0 134 94 228t228 94Z" }))), Ri = Ke((e, t) => Ee.createElement("svg", { viewBox: "0 -960 960 960", ref: t, ...e }, Ee.createElement("path", { d: "M553-64v-108q107-27 173-113 67-87 67-197 0-109-67-195T553-789v-108q152 26 249 144 97 117 97 271 0 155-97 273T553-64ZM61-335v-290h176l236-237v764L237-335H61Zm492 28v-346q51 23 82 70t31 103-31 103q-31 47-82 70Z" }))), Hi = Ke((e, t) => Ee.createElement("svg", { viewBox: "0 -960 960 960", ref: t, ...e }, Ee.createElement("path", { d: "M807-15 700-123q-33 21-71 37-38 15-80 22v-108q20-4 38-12l35-17-153-154v257L234-335H57v-290h144L10-818l74-75L882-90l-75 75Zm37-264-80-79q13-30 19-60 7-31 7-64 0-109-68-195-67-86-173-112v-108q152 26 249 144 98 117 98 271 0 55-14 107-13 51-38 96ZM661-462 549-575v-78q51 23 83 70 31 47 31 103l-1 9-1 9ZM469-655 366-759l103-103v207Z" }))), pA = { general: { primaryColor: "#42b0c5", secondaryColor: "#491d8d", fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif", showHeader: !0, showFooter: !0, showInputRow: !0, actionDisabledIcon: "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='32'%20height='32'%20viewBox='0%200%2042%2042'%3e%3cpath%20style='fill:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke:%23b00000;stroke-opacity:1;stroke-miterlimit:4'%20d='M17%209a8%208%200%200%201-8%208%208%208%200%200%201-8-8%208%208%200%200%201%208-8%208%208%200%200%201%208%208Zm0%200'%20transform='rotate(.086)%20scale(1.77778)'/%3e%3cpath%20style='fill:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke:%23b00000;stroke-opacity:1;stroke-miterlimit:10'%20d='M14.66%2014.66%203.34%203.34'%20transform='rotate(.086)%20scale(1.77778)'/%3e%3c/svg%3e", embedded: !1, flowStartTrigger: "ON_LOAD" }, tooltip: { mode: "CLOSE", text: "Talk to me! 😊" }, chatButton: { icon: ro }, header: { title: D("div", { style: { cursor: "pointer", margin: 0, fontSize: 20, fontWeight: "bold" }, onClick: () => window.open("https://github.com/tjtanjin/", "_blank", "noopener,noreferrer"), children: "Tan Jin" }), showAvatar: !0, avatar: no, buttons: [Pe.NOTIFICATION_BUTTON, Pe.AUDIO_BUTTON, Pe.CLOSE_CHAT_BUTTON], closeChatIcon: Oi }, notification: { disabled: !1, defaultToggledOn: !0, volume: 0.2, icon: Qi, iconDisabled: Mi, sound: "data:audio/wav;base64,UklGRmaIAABXQVZFZm10IBAAAAABAAIAQB8AAAB9AAAEABAATElTVBoAAABJTkZPSVNGVA4AAABMYXZmNjAuMTYuMTAwAGRhdGEgiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAA//////7/////////AAABAAAAAgABAAEAAQAAAAIAAQABAP//AAD+////AAD+//7////+////AAD//wAA/v8AAAAA/v8AAP//AAAAAAAAAgD////////+////AAABAAEAAgD/////AQABAAAA//8CAP//AAAAAAAA/v8AAAAA//8AAAEA//8EAAAAAAAAAAAA//8BAP//AQABAAEA/////wEA/v///wAAAAACAAAAAAABAAAA//8AAP//AAACAP//////////AAAAAAEAAAAAAAEA//8AAAEAAQADAAIAAgAAAAAA/v///wEAAAAAAAEAAAAAAAEA//8AAAEAAQD//wAA//8AAAEAAAABAAEAAAABAP//AAD//wAAAgAAAP//AQD/////AAAAAP7/AgAAAAIAAAAAAAAAAAABAAAAAQABAP//AAABAP///v8AAP////8AAP//AAD//wAA//8BAP//AAD///7///8BAP7///8AAAIAAgABAAEA/v8AAP//AQADAAEAAAACAAEA/////////v///wEA/v////7/AAD+////AAAAAAAAAgAAAAAAAAD//wEAAAAAAAAAAQABAAIA/v8AAAAA//8AAAEAAAAAAP//AgD//wEA/////wAAAQACAAAAAAAAAP//AQD/////AQAAAAEA/v8AAAEAAQABAAEA///+////AQD//wEAAgD+//7/AAAAAAAAAQAAAAAAAQAAAAAAAAAAAP//AAD//wEAAQD//wAAAQABAP7///8AAP7/AAABAP7/AQABAAEAAAABAAEAAAD+/wIAAAABAAAAAQD/////AQACAP////8AAP//AQD//wEA/v8CAAEAAAAAAAAAAQAAAAIAAQAAAAEAAgD//wEAAAAAAP7///8BAP//AgAAAP///v8CAAAAAgD///////////7/AAACAAEAAgD//wAAAAABAP//AwAAAAMA//8AAAAAAQD+/wAAAAD//wAAAQD//wEA//8BAP7/AAABAAAA//8BAAAA//8AAP//AQADAP3////+////AgD+/////v8BAAEAAQACAAAAAAAAAAAA//8AAP//AAD+/wEA/v8AAP7/AAD//wAAAQACAAAAAQAAAP//AQAAAAAAAAABAAAAAAD+//////8AAAAAAAD//wAAAAABAAEA//8AAAEA//8AAP//AgD+/wAA///+/wAA/v///wAAAQABAAAAAQD//wAA//8AAAEA//8BAAAAAgABAP//AAACAAIAAQABAP//AAAAAAAA//8BAAIAAAABAAAA//8CAAEA/v//////AAAAAAEA////////AQAAAP//AAD//wAAAAAAAP3/AAAAAAEAAAACAAAAAAAAAP//AAD//wAAAAAAAAAAAAAAAP///v///wAAAAABAAAAAAD//wEAAAABAAEAAQD//wAAAAACAAAAAQD+/wAA//8BAAEAAAD+/wAA/////wAAAAABAAAAAAD//////v8AAAAA//8AAAAAAAAAAAIAAAABAAEAAAABAP7/AAD9//////////7///8BAP//AAD///3/AQABAP//AAD//wAAAAABAAAA//8AAP//AAD/////AQABAAEA//8AAAAA//8BAAMA//8AAAAA//8AAP7/AAD//wAAAAAAAP7/AQAAAAAA/v8CAP//AAABAAIAAQABAAAA//8BAAEAAQD///7/AQD//wAAAQABAP//AAD//wEAAAAAAAAAAQAAAAIA//8AAP////8AAP//AQD//////v///wEA/v8AAAIAAgACAAEAAAAAAAEAAAAAAAAAAAAAAAAAAQD//wAA/////wAAAQACAP////8AAAAAAAD//wAAAQD+/wEA//8AAAEAAwD//wEAAQAAAAAAAAABAP////8AAAAAAQAAAAAAAAAAAAEAAQAAAP////////7/AQABAAEAAQD///////8BAAAA//8AAAAAAgABAAEA/v8BAP7///8BAP3/AQABAAIAAAD//wEAAAAAAP//AAABAAIA//8CAAAAAQAAAAEA//8BAAAA/////wAAAAD//wEAAQD//wAAAAAAAP//AAAAAAAAAQABAAAAAQAAAP//AQD//////v8AAAEAAAAAAAAA//8AAAAAAAACAAEAAQAAAP//AAABAAEA/////wAAAgABAAAAAAAAAAEAAAABAP//AQABAP7////+/wEAAAAAAP//AAABAAAAAAABAAEAAAAAAAAA//8BAP///f/+/wEAAQD///7///8AAAAAAQAAAP////8AAAAAAAABAAAAAQD/////AAD//wEA//8AAAIA//8CAAAA//8AAAAAAAD+/wEAAAD+/wAA/////wAA////////AAAAAAAA//8BAAAAAAD//wAAAAD//wEA//8AAP//AQD+/wAAAAAAAP7/AAD+/wEAAQABAP//AAABAAEAAQD//wAA/////wEA//8AAAAAAgAAAAAA//8BAAAAAgAAAAAAAAAAAP7/AQD//wAAAAD+/wAAAAADAAIA/////wAAAQD//wIA//8BAAEA/v8AAAIAAAAAAP3///8AAAAAAAAAAAAAAAABAP///////wAA//8AAAEAAQABAAEAAQABAAAAAQAAAAAAAQABAP7/AQD//wAAAQABAAEA//8BAAAAAgAAAAEAAAABAP//AAD/////AAD//wIA/////wIAAAD///7/AAAAAAAAAAACAP//AAABAP////8AAAAAAAABAAAAAgAAAAAAAQD+/wEA/////wAA/////wAAAAAAAAAA/v//////AAAAAP//AAABAAAAAQAAAAIAAAACAAAA//8AAAAA//8AAP7/AAAAAP//AAACAP//AQABAP//AQABAAAA/////////v8AAP//AQAAAAAA///+/wAAAQD+/wEAAQAAAAEA/////wAAAQD//wAA//8AAAAA/v8BAAEA//8AAP7//v8BAAAAAAAAAAEA//8AAAEA/////wAAAAD//////////wEAAAABAAEA//8CAAEA/f8AAAAA//8BAAAABAABAAEAAQAAAAAAAAAAAP7///8AAAAA/v8BAAAA//8AAAIA//8AAP////8BAP//AAAAAAAAAAD/////AQD///7/////////AQD8////AgABAAIA////////AAD//wAAAAABAAAAAAAAAAEAAgAAAP//AQD//wAAAAAAAP/////+/wAAAAABAAAAAwABAP///////wEAAAADAP//AQACAAAA//8CAAEAAAAAAP///////wIAAAAAAAAAAQAAAAAAAgD//wEAAAABAAAA/v8AAAAAAAAAAAAAAAAAAAEA/v8AAP//AQD//wAA//////7///8AAAAAAAAAAP7/AQD//wAA//8AAAEAAAABAAEAAQD/////AAD//wEAAAD/////AQAAAAEAAAD//wEAAAD/////AgD//wAAAQD//////////wAAAAD//wAAAAABAAAAAAD//wAAAQD///7/AQD//wEAAAD/////AAD//wEA//8AAAEA//8CAAAAAQD//wEAAgAAAAEAAwAAAAAA/v8BAAEAAgD//wEAAAAAAAAAAAD//wEA//8AAAAAAQACAP///////wAAAQABAAEAAAAAAAEAAQD+/wEA/f////////8AAAAA//8AAAEA//8BAAAA/v///wEAAAAAAAEA/////wAAAAAAAP//AAAAAAIAAAABAAAA/////wAAAAD//wAA/v8AAAMAAQD+/wEAAAABAAEA//8BAP//AgAAAAAAAAD//wAA/////wEA/v8CAP3/AAACAP3/AQABAAAAAQACAAEA/v8AAAAA//8BAAAAAgAAAAAAAgACAAEA/v/9/wAAAQABAP7///8AAP//AgD+/////v8CAP////8BAP//AQACAAEAAQABAP//AAD///7/AAABAAEAAgD//wEA//8CAAEAAQABAAEAAAABAAAA/v8AAAEA/v8AAP//AAABAP//AQAAAAEAAgAAAAAA/v///wEAAQAAAAIAAAD/////AgAAAAEA/v8AAP7/AQAAAAAAAQAAAAEAAAACAAEA//8BAP////8AAAIAAAAAAP//AAAAAAIAAAAAAAAAAwABAP///v8BAAAAAAAAAP3/AAABAAEA/v////////////3//v8AAAAAAQABAAIAAAD+/////v8AAAAAAQABAAEAAQAAAP//AAAAAP//AQAAAP//AAABAAAAAAAAAAAA////////AAAAAP//AQD/////AAABAAEA//8CAP7///8AAP7//v8BAAEAAAD+/////////wEAAAAAAAAAAgD//wAAAQAAAP7/AQABAP//AQAAAAAAAAD/////AAACAP////8BAAAAAAD//wAA//8AAAEAAQABAAAAAAABAAAAAQD+/wEA/v8AAAEAAQD/////AAD//wAAAQABAP7//v//////AAACAAAAAAAAAAAAAAACAAAAAQAAAAAA//8BAP//AQD//wAA///+/wIAAQD//wAAAAD//wAA/v8AAP3///8AAAAAAAAAAAAA/f8AAAAA//8CAP7/AAD///7/AAAAAAAAAAD//wEAAAAAAAEAAAAAAAAA//8BAP////8BAP7///8CAAEA//8BAP3///////////8BAAAAAAAAAAEAAgD+//////8BAAMAAQADAAEAAAACAAAAAQD/////AAABAAMAAQAAAP//AQD//wAA//8AAAAA//8CAP7//////wAAAAAAAAIA/v8AAP//AAACAP//AwD//wAA//8AAP//AwD//wEAAQABAAEAAQACAAEAAAD//wAA//8AAAIAAAAAAP///////wAAAQD//wIA//8BAP7/AAD///////8AAAAAAAAAAAEAAAD//wAAAQD//wEA//8BAAAAAAD/////AgABAAIAAAABAAAAAAAAAP//AAAAAAAA//8AAAAAAAD/////AQAAAAAAAQD//wAA///+////AAAAAAEAAgABAAEAAAAAAP//AQAAAAAAAQD+/wAAAAABAAEAAAD/////AQABAP7///8AAAIAAAACAAAA//8AAP//AgACAAAA///+/wAAAAABAAAAAQAAAAEA/v8BAAEA//8CAP//AQD+/////v8AAAAAAAACAP//AAD+/wIA/v8BAAAAAAD/////AAAAAP7///8AAP7//////wEAAAABAAAAAAD//wAAAAAAAAAAAgACAAAAAAABAAAA/f8AAP7/AgAAAAEA//8BAAAAAAD///7/AQD//wAAAAAAAAEAAAAAAAEAAAAAAAAAAQAAAAAA//8AAAAAAAABAP///////wAAAgABAAEA//8AAP//AAACAP//AQABAAEA//8BAAAAAAABAAAA//8AAAEAAAAAAAIA/v8BAP//AQD//wEAAAABAAEAAQACAAEAAAAAAAEAAAABAAAAAAD/////AAABAAEA//8AAAAAAQABAP//AAAAAP//AAD/////AQD//wAAAAABAAEA//8BAAAA//8AAP///f/+/wAA/////wAAAQAAAAIAAAAAAAAAAAD+/wEA/f8CAAAA//8AAAEAAgAAAAMAAAABAAAAAAAAAP//AQAAAAAAAQABAAAAAQAAAP//AAAAAAAA//8AAAAAAAABAAAAAQAAAAAAAAABAAIAAAAAAP7/AQD//wAAAAD+////AAAAAAAAAAABAAAA/////wAA//8AAAAAAAD/////AgD//wAA//8CAP//AQACAAEA/f////////8BAAIAAQABAP//AAD//wAA///+////AAD+/wAAAQD/////AAAAAAAA/////wAAAAABAAAAAQAAAAAA//8AAAIAAAABAP//AQABAAEA//8AAAAAAAADAAEAAAABAP//AgD//wMA//8AAAAAAAD//wAAAAD9/wEA///+/wAA//8BAAEA//8BAAAA//8AAP///v8BAP///////////v8BAAAAAQABAAAAAAAAAAAA//8AAP7/AQAAAAAAAAAAAP7/AQAAAAAAAgABAAEAAAABAAEAAAAAAAAAAAD+/wAAAAD//wEAAAAAAAAAAAAAAP//AgABAAAAAAABAAEAAAD/////AAAAAP//AAABAP////8BAAAAAQABAP7//v/+////AQAAAAAAAQAAAAEAAgAAAAAAAQAAAAEAAAD+/////v8BAP//AAABAP//AQABAAAAAAD//wAA//8CAP//AAAAAAEAAAABAAAAAAAAAP//AAD+////AwAAAAAAAQD//wEAAAACAAEAAAADAAAAAAD/////AAAAAAEAAAABAAAA//8AAAEA//8BAP///v8AAP//AAD//wAAAQABAP//AQAAAAAA/////wEAAQAAAP////8AAAEA//8BAAAAAQAAAP////8AAAAAAQAAAAIAAQAAAAEAAAAAAAEAAAD//wEAAAAAAP////8AAAAA//8BAAEAAAAAAAIA///+/wIA/v8BAAAAAQACAAAAAQAAAP7///8AAP//AAAAAAEAAAAAAP7/AAD+////AAAAAAAAAAD//wAA/v8BAAMAAAABAAIAAgD//wAA//8BAAEA//8BAP7/AAAAAP7///8BAAAAAQAAAP7/AQD/////AAAAAAEAAAABAP//AQABAAAAAgABAAAAAAAAAP///////wEA//8AAAEA//8AAAAAAQAAAAIAAAABAP7//////wAAAQABAAAAAAABAAEA///+/wAA//8BAP///v8AAP///v8BAAAA//8CAAAAAQAAAAEAAQABAAAAAAD+/wAAAAD+/wAAAAAAAAAA/f////////8AAAAAAQABAP///////wEA//8BAAEAAAAAAAAA/////wEA/v//////AAAAAP//AAABAAAAAAD+/wAAAAD9////AQAAAAEAAwD//wEAAQAAAP//AgAAAAAAAAD+/wIAAAAAAAAAAAAAAAIA//8AAAEAAQACAAAAAQD//wAAAAD//wIAAQABAAAAAAD//wEA//8BAAEAAQAAAAAAAQABAP7/AAD//wEAAAACAP7/AQAAAAAAAAD//wIAAQACAAIAAQAAAAAAAAAAAP3///8BAAAAAQACAP//AgD9/wAAAAD//wEA/v////////8AAAAAAAD//wEAAQD//wMAAQAAAAEA//8AAAEA//8AAAAAAAACAAAAAAD//wAAAQD///////8AAAAA//8BAAIA/v8BAAEA/f8AAAAAAAAAAAAAAgD/////AAD+/wAAAAD//wAAAAAAAP//////////AgABAP///v8AAAIAAQAAAP//AAABAAAA/////wAAAAAAAAEAAAABAP///v///wIA//8BAAEAAQAAAAAA///+/wEAAAAAAAAA/////////v8BAP3/AAAAAAAAAAAAAAAA//8AAP//AAAAAP//AAABAAIAAAACAP////8DAAAAAAABAAAAAwABAP//AAABAP//AAAAAP////8BAAAAAgD//wAA///+/wAAAQD//wAA//8AAP7///8AAAAA/v8AAAAAAQD//wEA/v////////8AAAAAAQAAAP//AQACAAAAAAAAAP//AAD//wAAAAD//wAAAAD+/wAAAAAAAP//AQD//wAAAgAAAAAAAQABAAAAAwD+/wAAAAD///7/AQD//wIAAQAAAP//AAD//wAA//8CAAEAAAAAAAAA/////wAAAAD//wEAAQD///////8BAAAA//8BAAEAAAAAAAAA/v///wEAAAAAAAAAAAADAAAAAAAAAAAAAQABAAEAAAD+//7//v8AAP//AQAAAAAAAAABAAEAAgAAAAAAAQD//wAA/f8AAAAAAAABAAAAAQAAAAAAAAAAAAIA//8BAP///////wIA/////wAAAAABAAEA//8BAAAAAAD//wAAAQD//wEAAAAAAAIA/v8BAP//AAAAAAEAAAABAP//AAAAAAAAAQABAP7/AAABAAAAAQD//wIAAAAAAAEA///+/wAA//8AAP//AAAAAAAAAAABAP///////wIAAQAAAAEAAQAAAP7/AQAAAAAAAQAAAAAAAQD/////AQAAAAAA///+//7/AAD+/wEA//8AAAAA///+/wEAAAABAAIAAQABAAAA//8AAP//AAD//wAAAAD//wAAAAAAAP//AQAAAAAA////////AQAAAAAAAQD+////AQABAP7/AAD///7/AgD//wAAAAAAAP//AAAAAAEA//8BAAEAAgAAAAIAAAD//wEA/////wAAAQD///7/AQD//wEAAQD/////AAAAAAEAAgAAAAAAAQD//wEA//8AAP7//////wAA//8BAAEA//8BAAAAAQD/////AAABAP//AAACAP//AQAAAP//AAABAP////8AAAAAAAABAAEAAwABAAAAAgD//wAAAAD//wEAAAABAAAAAAABAAEA/////wAA//8AAAIAAAAAAAEAAQABAAEAAQABAP//AgAAAAAA//8BAP3//v///wAA//8AAAAAAQAAAP//AQD//wEAAAACAAIAAAABAAAA//8BAAEA//8BAP//AAAAAP//AQAAAAIAAAD//wAAAAAAAAEA////////AQAAAP//AQD//wAAAQD+/wEAAAABAP///v///wAAAAAAAP//AAAAAAIAAQD//wAAAgD+/wAAAAD//wAAAAABAP///P//////AAACAP////8AAAIAAAABAAAAAAAAAAAA//8AAAAAAQADAP//AQAAAAAAAAABAAEAAQAAAAAA/v8AAAAAAAD//wAAAQD//wAAAAD//wAA/v////////8CAAEA/v8BAP7/AAAAAAAA//8AAAEAAAD//wIAAQAAAAIAAQAAAAAAAAD///7/AQABAP//AAAAAP//AAACAAEA//8BAAAAAwAAAAAAAAD//wEAAAD//wAA///////////+/wAAAQABAAIAAAABAAEAAAD//wEAAAD/////AAD+/wIAAwABAAEA/v8BAAEAAAD//wAA//8AAP//AAAAAAEAAAAAAP//AAAAAAEAAQABAAEA/v///wAAAAD//wEAAAACAAAA/f/+/wAA/v///wAA//8AAAEAAQD///7/AAAAAAAAAAABAAAAAAACAAAAAAABAAAAAAABAP//AQD//wAA//8BAP7/AgABAAEAAQAAAAAAAQD//wEA/v8AAP////8AAP///////wIAAQD//wAAAAD//wAA/v///wAAAQD//wIA/////wEAAAAAAAIAAAABAAAAAAD//wEA//8AAAAA/////wAAAQAAAAAAAAD//wEAAQAAAAAAAAACAP///////wAAAgD//wAA/v8AAAIAAAAAAAEAAAABAP//AQABAAEAAQAAAP///v8BAAEAAAAAAP////8AAAAAAQD//wIAAQAAAAEAAAAAAAAA//8BAP//AAAAAP7//v///wEAAAAAAAIAAAAAAP//AAD//wEA//8BAAAAAAABAAEAAAABAP7///8AAAIAAAABAP//AAD//wEAAAAAAP//AAAAAAEAAAAAAAAAAAAAAP7/AQD//wAAAQD+/wEA/v8BAP7/AAABAAEAAAACAAIAAAADAAAA//8AAAEAAAABAP//AQD//wIA/////wEA//8AAAEA//8AAAEAAAAAAAAAAQABAAAAAAAAAAAAAAD//////////wAA//8AAP7/AAD+/wAAAQAAAAAA/////wAABAAAAAAA//8AAAEAAAAAAAAA/v8AAP//AAAAAAAAAAD//wAAAAD///////8BAAEAAAD/////AgABAAEA/v/+/wAAAQACAAEAAAD//wAAAwABAP//AgD+/wAA/v8AAAAAAAAAAAEA//8AAAEAAAD+/wEAAAAAAAEAAgAAAAEAAAABAP//AQD+/wIA/////wAAAQD//wAAAQD+/wAAAQABAAAA////////AAACAAAAAQAAAAIA//8BAP///v///wEA//8BAAEAAQD+/wAAAQD9/wAAAQAAAAEAAAABAAAAAgAAAP//AAD+/wAA/f8AAAAA////////AgAAAAcAAQD7/wEA/f8AAAIA//8GAP7//v/+//b/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+P/F//z/rv/i/7r/6v/Z/wYABwAoADAAKQBOABkATAD0/zQA1P8PANv/0//v/6//FwCi/ywAxP8oAPn//v82APT/WwD4/00A+/8yAPv//f/8/83/+v+w/+T/sf/j/9b/AQACACoAIgAtAEIAHwBPAAEAQADe/xcA0v/k/+X/t/8IAKv/IgC//yEA6/8EACMA9/9PAPf/VAD+/zcA+/8JAPn/1P8AALf/6f+w/+P/zf////j/HAAdAC0APgAfAEsABwBCAOP/IADV/+//2v/B//3/rP8PALv/GADd/xEAFgABAEMABABaAP//QgACABcA+//n/wAAwP/w/67/4v+///3/6f8WABcAKQA0ACIARgAQAEcA8f8pANn/9f/U/87/7f+v/wgAtP8RANP/FgANAAIAOQACAFQA/f9HAAAAIAABAO3//P/E/wEAs//q/7n/9P/i/wYAEQAZADEAJABBABMASAAAADEA3/8CANL/1v/g/7H/AACy/w8Axf8ZAPv/CQAzAAIAVQD//1AAAAAsAAIA9v/7/8r/AwC2//P/tf/m/+H/AwADABEAKQApADoAHgBHAAgAPADr/wkA1//f/93/vP/6/7L/CgDA/x4A7/8hACkAAgBPAPz/UgD1/zIABAAEAPz/0v/5/7f/AACy//H/2f/+/wEAAAAkABUAMwAdADoAEQA9APD/EADU//L/1P/H/+z/tf8LALv/HADk/ygAGgADAEMA//9TAPn/QAAAABAAAQDc//z/wf8DALD/7P/Q//z/9/8HABoAFgA3ACMAMAAOADwA+P8ZANv/+P/Y/9H/5v+8/wUAu/8WANf/HgAMAAoAPQABAFMA/f9HAP7/HwAEAN//+v/H/wMAs//2/8r/8//y/wMADgAQAC4AIwAyABMAJwD8/xcA3v8LANP/5v/f/8j/AgC4/w4A1P8eAAQACgAxAAEAUgD+/0gA/v8nAAIA8f/5/8r/BAC6/+3/wP/l/+b/AQAIABkAIwArAC4AIAAoAAkAGADj/w0A0f/r/9//0P8DAL3/CgDN/xkA//8IACUAAgBJAAAATwD+/ysAAQD7//3/z/8DAMT/+f/K/+L/5P/1////EgAcACYALgApAC4ACwAcAPL/EADZ//L/1f/U//f/uv8KAMX/DwDu/wcAHwADAEUABgBNAAEANQAAAAYAAQDf////xf/+/9P/4f/b//X/9v8LAA4AGAAlACoAMAAQABkA9v8TAOL/+f/W/9r/8f/I/wcAxP8MAOr/BwATAAQAOAAGAEcAAABCAAEADwAEAOP//v/F/wIAzf/o/93/8P/s/w4ACwAZACEAKgAyABMAIQD5/xgA6v8DANb/4P/y/9H/AQDJ/wkA4/8DAAoA/f8wAAQAQwABAEAA//8VAAIA7P/+/8r/BADP/+v/2v/s/+n/CwAIAA0AHAAjADQAHAAkAP//GQDy/wQA5v/i//b/0P/7/8f/AADh/wMAAAD+/yUAAAA7AAEAOAAAABwAAAD6/wAA1/8CAMr/AADb/+3/5f8BAAIACAAVABcALwAfACgA+/8XAPn/DgDe/+//7v/Q/wMAz/8JAOP/CwDx////EAAHADEAAQArAAIAHQAEAAcAAADr/wEAzv8CANj//f/k/wEA+f/+/xQABwAqAB4ALAD+/x4A8P8SAOb/8//f/9j//f/N/wEA3v8LAO7/AgAMAAQALAAEAC0AAQAdAAQADwABAPP/BADV/wMA0/8AAOH/AQD1/wAAEAADACQAGwAwAAQAHwD0/xUA8f/4/+L/2//7/8z/AwDc/woA6f8AAAQAAwAoAAcANAAAACcAAgAUAAEA+P8CANv/AgDR/wEA4v8BAOz/AgAIAPv/JAAVADMAFAAhAPP/GQDz//7/3P/l/+3/z/8BANf/CgDn/wkA/P///xoABwAwAAIAJwACABcAAwABAAIA4f8BAND/AgDd//3/6P8CAAYA/f8YAAwALwAZACUA9v8bAPj/AwDq/+r/7P/S//7/1/8EAOX/CQD6//7/GQAFAC8AAQApAAEAGQACAAMAAgDm/wEAzv8BANv//v/p/wIA//8BABMABQArACAALAABAB4A8f8NAOv/7v/m/9n/+P/R/wMA4f8OAPT/AQATAAMAKwAHACoAAwAbAAMABQADAO7/AQDU/wEA2f8AAOL////3////EgAAACUAGgAvAAUAHQD2/xIA9f/0//T/3P/4/8///f/h/wIA7f8AAAoAAQApAAQALQADACAAAgAPAP//9P///9r//f/T/wAA3f/9//D/AQAQAP//HAAHAC8ACQAfAPv/GAD+//f/+P/j/wEA0v/+/9n/AADq/wIABgD//x0AAQAuAAEAIwAAABQAAwD8/wEA3/8AAM//AADe////7f8BAAwA//8ZAAMALwAAACEA//8dAP3//v/9/+n////U//z/1v8BAOT/AAD+/wAAGwD+/ywA/v8kAAIAGAD///3////q/wEA0P///97/AADk/wAABAAAABUAAQAqAAEAKQAAABwAAAAFAP//6f8AANr////X/wAA4/8AAPj/AgAUAAAAKgD//ywAAAAcAP7/AQAAAOv/AADU/wAA2v8CAOP/AAABAAAAFgABABsAAAAqAAEAHwAAABQAAgDv/wEA3v///9H////f////7/8BAAoAAQApAAAALgD//yEAAQAIAAAA8P8BANr//v/V////4f8AAPf//v8UAAAAFAAAACYAAQAhAP7/GwD+//T/AADo/wIA1v8CANr/AgDp/wEABgAAAB8AAQAsAAEAJAAAAAwA///z/wEA3/8AANT/AADh/wEA9P///xQAAgASAAAAJQAAACEAAAAaAP//+v8BAOj////W////2P8BAOf///8DAAAAHwAAAC4AAAAlAAAAEgAAAPL/AQDm////0f8CAN3/AADr//7/EQD//xAAAQAhAAIAJQAAAB8AAAABAP//6v8CAN//AQDX/wAA4/8AAPr/AAAXAAAAKgABACgAAAAbAP///f8AAOj/AADU/wAA2v///+f/AQANAAMAEQD+/xwA/v8kAP7/IQABAAgA/v/p////5/8AANf/AQDd/wEA8v8BABMAAQAjAAAALgAAACAAAQADAAEA7f8BANn/AgDY//7/4P/+/wEAAAAXAAIAFAAFACUA/P8jAP//EgAAAO//AQDo////1/8AAN3/AADx//7/DgAAAB0AAQAoAAAAIwAAAAoAAQDv/wMA4f8AANn/AQDi/wEA+v///xgAAAAQAP3/IwD//yUA/v8XAAAA7/8AAOv/AADc/wAA3P/+/+v/AQALAAEAGgACACkAAAAkAP7/EAABAO/////q//7/1/8AANz/AgDw/wEAEgD//w8AAAAcAAIAJQAAAB0AAAD2////7P8AAOP/AgDa/wAA5P8BAAQAAQAWAAAAIgAAACMAAAAaAP//+P///+v/AQDZ/wAA2////+7/AAARAAAADgAAABYAAAAhAAAAIAABAPz/AQDt/wAA5P8AANr/AQDg/wEA/P8BABcAAAAhAP//KQD//xwAAAD8/wEA7v8AAN3////Z/wAA6f8BAA0AAAARAAEAEQAAACMAAAAgAAEA/f8CAO3/AADv/wAA3v8BANv////1////EgAAABkA//8nAAAAIgAAAAMAAADu/wAA6P8CANn/AQDg////BQD//xMAAQAOAP//IAABACYAAAAGAAAA6f////H/AADg/wEA2f8AAO3///8PAAAAFQACACQAAAAkAAEADQABAO//AADp/wAA2////9z/AQD7/wEAFgAAAAwAAQAXAP7/JQD9/xMAAADx/wAA8f8AAOr/AADc/wEA4/8BAAkAAAAVAAAAIQD//yYA//8UAAEA9P8BAOz/AADf/wAA3P8AAPP/AAAQAAAADQABAA0AAAAlAAEAGAD///H//v/0/wEA7v8CAN//AADg//3/BAACABUAAQAfAAAAJwABABgAAQD0//7/7f///+L/AADa/wIA8P///w4A//8SAAMACQAAACAAAQAgAP//+v////P////y/wEA4/8BANr/AQD9/wAAEwD//xkAAQAjAAAAIgABAPz////s/wAA6v8BANX/AQDr//7/BwABABMAAAAHAP//FwAAACYAAAD//wEA9P8BAPb/AQDu////2v8BAPn/AAATAP//FwD//yEAAAAjAAAAAgAAAOn/AQDr//7/2P8CAOT/AAABAP//FgABAAUAAQATAP//IwAAAAEAAgDy/wEA9/8AAPb/AADb/wAA6/8BABAAAAATAP7/IQAAACYA//8UAP//7/8AAPD/AADd/wEA3P/+//7///8OAAAACgAAAAgAAAAhAP//CQACAPT/AQD2/wAA9v///97////m/wIADgABABMAAQAfAP//JwAAABMAAADw/wAA8P///+r/AQDb/wAA9f8AAA8AAAARAAIABAD//wYA/v8HAAAAAQD//wMAAgAGAAAA7f8AAOz/AAALAP//DwACABQA//8bAAAAHgD///f/AADq/wEA6/8BANj//v/t/wAACAD+/xAAAgAEAAAABAABAAcAAQADAAAA//8AAAUA///1/wAA5f///wIAAAAOAAAAEAAAABsAAAAhAAAA/v8BAOj////y////3f8AAOf/AQAGAAEADAAAAAcA//8BAP//CQABAAMA//8BAP//BQAAAAAAAADo/wAA+/8AAAoAAAALAAAAFAAAACAAAQAGAAIA7f8BAPH/AADm/wMA3P8CAP7/AgASAP//CgD//wAAAAAIAP//BQD//wEAAAACAP7/BAAAAPz/AwD8////BAAAAAEA//8HAAAAHQAAAAgA/v/x//7/8f///+f/AQDg/////P///woAAAAMAP//AAABAAYA//8EAAAAAgAAAAUAAAACAAAAAwAAAAIAAAABAAAAAQABAAAAAgAcAP//DgD///T/AQDx/wAA9P8CAOH/AAD3/wAACQAAAAoAAQABAP//AwAAAAcAAAD+/wAAAgACAAEAAAD+////AwD+/wAAAAABAP//+v8BABEAAQATAAAA9f/+//L//f/z/wIA6f8AAPb/AQAFAP//DAAAAAAAAAAFAP//BQD//wEA//8DAAEAAQAAAP7///8AAAAA//8BAAIAAAD+/wAAEAABABYAAgD6/wEA8v8BAPX/AwDp/wAA8////wMA//8JAAEABAABAAEA//8FAAEA//8AAAMAAQACAP//AQAAAAEAAgAFAP//AQABAAAAAQAAAP//EQABAAAAAAD5/wEA+P8AAPr////6/wAA+/8BAAIA//8BAAAA//8CAAUA//8BAP7/AAABAAEAAgAAAAAAAwAAAAEA/v8DAAIAAAACAAQA//8TAAAA/P8BAPr////3//////8AAPz/AQD7/wEAAgD/////AAABAAEABAAAAP//////////AAAAAAAAAAADAAAAAwAAAAAA//8EAP///v/+/xAA//8HAAAA+/////j/AQD8////AAD///n///8AAAAA//8AAP////8DAP//AgAAAAAAAAACAAIAAAD+/wAAAQD//wAA/////wIAAgD9////CQACAAYA///9////+f8BAPr/AQAAAAIA/v///wAA//8AAAAAAAAAAAEAAAABAAAAAgAAAAEAAAAAAAEAAQABAAAAAgABAP//AAD//wEAAAD///////8BAAIAAQAAAAAA/v/+//////8BAAAAAQABAP//AAD///////8BAAAAAQABAP////8CAAEAAQD//wEA/v//////AQAAAAAAAAAAAAAAAAD9/wMA/////wAAAQD+/wEA/v/+//7/AQD//wMAAAAAAAAAAAABAAEA//////7/AAACAP3/AAD//wAAAQAAAP//AQD//wAAAAAAAAEA//8CAP//AAAAAAAA/v8AAAAA//8BAP//AAABAP//AAAAAP//AQD//wAAAQABAAAAAAABAAEA/v///wAAAAD//////////wAAAAAAAP//AAD////////8/wIAAAADAAEA/////wEA/v8BAP7/AgAAAAEAAgAAAP//AgD/////AQD//wEA//////7/AQD//wMAAAAAAAAA//8CAP//AQAAAP//AAACAAAAAAABAP//AQD+/wAA/////wAA/f///wAAAAAAAP7/AAAAAAAAAgD//wEAAQACAP//AAAAAAEAAQD//wAAAAAAAAAA//8BAAMA/v8AAP7/AQAAAAAAAQAAAAAA///+//7/AAAAAAAA//8BAP7/AQAAAP//AQABAAAAAQAAAP//AAD//wIA/v///wAAAQABAP//AAD//wEA//8BAP//AgAAAP///////wAAAQABAP//AwABAAAAAAAAAAAA/////wIAAwACAAAA/v8BAAAAAAAAAAAA//8AAP////8AAAAA/////wAA/////wEA/v8CAAEAAQD//wAAAAABAAAAAAD//wEAAQABAAAA//8CAAAAAAAAAP7/AAABAAAAAQABAAAAAgABAAAAAQD//wEAAwD+/wAA/v8AAAEAAAAAAAAAAAAAAAEAAAD//wMA/v///wAAAAACAAEAAAAAAP7///8DAAEAAQD//wEA/f8BAAEAAQD//wEAAQABAAMAAgAAAAEA//8AAP//BAAAAAIA/v//////AQABAAAAAAD//wEAAAACAAIAAQAAAAAAAgAAAAAAAAABAAIAAAABAAIAAQAAAP////8AAAAAAAD//wAAAQACAP//AAAAAAAAAQAAAAEA//8AAAAAAAD/////AQD//wAAAQD9////AQAAAAAA//8BAAAA///+/////v8BAAAAAQAAAAAAAAAAAAIA//8BAAAAAAACAP//AQD//wAAAAD/////AAD9/wAAAAACAAAAAgAAAAEAAQABAAEAAAAAAAEA//8AAAEAAQACAAAAAQAAAAEA//8BAAIAAAACAP//AAABAAAAAAAAAAAAAAD//wAAAQD/////AAAAAP////8AAAEAAAAAAP7///8BAAIAAQD//wEAAQAAAP//AgAAAAAAAAD//wAA//8CAP7/AQAAAP7/AAD+////AAAAAAAAAQABAAAA//8AAAEAAAABAP7/AAAAAP7/AAD+/wAAAQABAAEA/////////v8BAP///v///wIAAAAAAAAAAQAAAAIAAQAAAAAAAAABAAEAAAAAAAAAAAD//wEAAQD//wAAAQABAAAA/v/+/////////wAAAAD//wAAAAD/////AAAAAP7/AAD//wIA//8CAP//AQAAAP////8AAAAAAQABAP////8AAP//AQACAAAAAQAAAAAAAAAAAAAA//8BAAAAAAD+/wAA/v///wEAAAD+//7///8CAP7/AAABAP3/AwAAAAAAAAABAAIAAAABAAAAAQABAAIAAAAAAP//AAAAAAEAAAACAAEAAAACAAAAAAABAAAAAwAAAAAAAAD+/wAAAQD9//////8BAAAA/v8AAAAAAAAAAAAAAAD//wMA/v8BAAEAAQACAAAA/v8BAP//AwABAAIAAQABAP//AQAAAAEAAAAAAAEA//8AAAAAAAD/////AAABAAEAAAAAAP////8AAAAAAAAAAAAA/v8AAP//AQAAAP//AAABAAIAAQAAAAAAAgABAAAA/////wAAAQABAP//AQABAAEA/////wAAAAAAAAAAAAABAAEAAQAAAAAAAAAAAAAA//8AAP7/AQD9/wAAAgD//wEAAQABAAEA/v8AAAEA/////wAAAAAAAP//AAABAAAAAAAAAAAA//8CAP//AAABAAEAAQABAAAA//8BAAIAAgD//wAA/v8AAAEAAAD///7/AAAAAAEAAAABAAAAAQABAAAAAQACAAAA///+/wAAAQABAP7////+/wAA//8AAAAAAgAAAP//AQD9/wAAAAD//wAA//8AAAAAAQAAAAAAAQD//wAAAAAAAP//AQABAAAA/v8CAP//AAD///////8AAAAAAAACAAEA//8BAP7/AAAAAAEA//8BAAAAAQD//wAAAQD+/wAA/////wAAAAD//wAAAQABAAAA//8AAAEA/////wAA//8AAAAA/v/+/wEAAgABAP//AgD//wIA/////wAA//8AAAEAAQAAAAAAAQAAAAMAAAACAP//", showCount: !0 }, audio: { disabled: !0, defaultToggledOn: !1, language: "en-US", voiceNames: ["Microsoft David - English (United States)", "Alex (English - United States)"], rate: 1, volume: 1, icon: Ri, iconDisabled: Hi }, chatHistory: { disabled: !1, maxEntries: 30, storageKey: "rcb-history", storageType: "LOCAL_STORAGE", viewChatHistoryButtonText: "Load Chat History ⟳", chatHistoryLineBreakText: "----- Previous Chat History -----", autoLoad: !1 }, chatInput: { disabled: !1, allowNewline: !1, enabledPlaceholderText: "Type your message...", disabledPlaceholderText: "", showCharacterCount: !1, characterLimit: -1, botDelay: 1e3, sendButtonIcon: _i, blockSpam: !0, sendOptionOutput: !0, sendCheckboxOutput: !0, buttons: [Pe.VOICE_MESSAGE_BUTTON, Pe.SEND_MESSAGE_BUTTON] }, chatWindow: { showScrollbar: !1, showTypingIndicator: !0, autoJumpToBottom: !1, showMessagePrompt: !0, messagePromptText: "New Messages ↓", messagePromptOffset: 30, defaultOpen: !1 }, sensitiveInput: { maskInTextArea: !0, maskInUserBubble: !0, asterisksCount: 10, hideInUserBubble: !1 }, userBubble: { animate: !0, showAvatar: !1, avatar: "data:image/svg+xml,%3csvg%20width='140'%20height='140'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cy='60.044'%20cx='70'%20fill='%235c5c5c'%20r='29'/%3e%3cpath%20d='m16.36%20156.186-.01-30.5c-.005-16.844%2024.168-30.507%2053.991-30.516%2029.823-.009%2054.004%2013.64%2054.01%2030.484l.008%2030.5-108%20.032z'%20fill='%235c5c5c'/%3e%3c/svg%3e", simulateStream: !1, streamSpeed: 30 }, botBubble: { animate: !0, showAvatar: !1, avatar: no, simulateStream: !1, streamSpeed: 30 }, voice: { disabled: !0, defaultToggledOn: !1, language: "en-US", timeoutPeriod: 1e4, autoSendDisabled: !1, autoSendPeriod: 1e3, sendAsAudio: !1, icon: Ni, iconDisabled: Li }, footer: { text: he("div", { style: { cursor: "pointer", display: "flex", flexDirection: "row", alignItems: "center", columnGap: 3 }, onClick: () => window.open("https://react-chatbotify.com", "_blank", "noopener,noreferrer"), children: [D("span", { children: "Powered By " }, 0), D("div", { style: { borderRadius: "50%", width: 14, height: 14, display: "flex", justifyContent: "center", alignItems: "center", background: "linear-gradient(to right, #42b0c5, #491d8d)" }, children: D(ro, { style: { width: "80%", height: "80%", fill: "#fff" } }) }, 1), D("span", { style: { fontWeight: "bold" }, children: " React ChatBotify" }, 2)] }), buttons: [Pe.FILE_ATTACHMENT_BUTTON, Pe.EMOJI_PICKER_BUTTON] }, fileAttachment: { disabled: !1, multiple: !0, accept: ".png", icon: oo, iconDisabled: oo, sendFileName: !0, showMediaDisplay: !1 }, emoji: { disabled: !1, icon: Ao, iconDisabled: Ao, list: ["😀", "😃", "😄", "😅", "😊", "😌", "😇", "🙃", "🤣", "😍", "🥰", "🥳", "🎉", "🎈", "🚀", "⭐️"] }, toast: { maxCount: 3, forbidOnMax: !1, dismissOnClick: !0 }, event: { rcbPreInjectMessage: !1, rcbPostInjectMessage: !1, rcbStartSimulateStreamMessage: !1, rcbStopSimulateStreamMessage: !1, rcbStartStreamMessage: !1, rcbChunkStreamMessage: !1, rcbStopStreamMessage: !1, rcbRemoveMessage: !1, rcbSaveChatHistory: !1, rcbLoadChatHistory: !1, rcbToggleChatWindow: !1, rcbStartSpeakAudio: !1, rcbToggleAudio: !1, rcbToggleNotifications: !1, rcbToggleVoice: !1, rcbChangePath: !1, rcbShowToast: !1, rcbDismissToast: !1, rcbUserSubmitText: !1, rcbUserUploadFile: !1, rcbTextAreaChangeValue: !1, rcbPreLoadChatBot: !1, rcbPostLoadChatBot: !1, rcbPreProcessBlock: !1, rcbPostProcessBlock: !1 }, ariaLabel: { chatButton: "open chat", audioButton: "toggle audio", closeChatButton: "close chat", emojiButton: "emoji picker", fileAttachmentButton: "upload file", notificationButton: "toggle notifications", sendButton: "send message", voiceButton: "toggle voice", inputTextArea: "input text area" }, device: { desktopEnabled: !0, mobileEnabled: !0, applyMobileOptimizations: !0 } }, fA = yt({ settings: {}, setSyncedSettings: () => null, syncedSettingsRef: { current: {} } }), oe = () => mt(fA), Ui = ({ children: e, settings: t = pA, setSyncedSettings: r, syncedSettingsRef: n }) => D(fA.Provider, { value: { settings: t, setSyncedSettings: r, syncedSettingsRef: n }, children: e }), gA = { tooltipStyle: {}, notificationBadgeStyle: {}, chatWindowStyle: {}, headerStyle: {}, bodyStyle: {}, chatInputContainerStyle: {}, chatInputAreaStyle: {}, chatInputAreaFocusedStyle: {}, chatInputAreaDisabledStyle: {}, userBubbleStyle: {}, botBubbleStyle: {}, botOptionStyle: {}, botOptionHoveredStyle: {}, botCheckboxRowStyle: {}, botCheckboxNextStyle: {}, botCheckMarkStyle: {}, botCheckMarkSelectedStyle: {}, characterLimitStyle: {}, characterLimitReachedStyle: {}, chatHistoryLineBreakStyle: {}, chatMessagePromptStyle: {}, chatMessagePromptHoveredStyle: {}, footerStyle: {}, loadingSpinnerStyle: {}, mediaDisplayContainerStyle: {}, chatButtonStyle: {}, chatButtonHoveredStyle: {}, chatHistoryButtonStyle: {}, chatHistoryButtonHoveredStyle: {}, sendButtonStyle: {}, sendButtonHoveredStyle: {}, sendButtonDisabledStyle: {}, audioButtonStyle: {}, audioButtonDisabledStyle: {}, closeChatButtonStyle: {}, emojiButtonStyle: {}, emojiButtonDisabledStyle: {}, fileAttachmentButtonStyle: {}, fileAttachmentButtonDisabledStyle: {}, notificationButtonStyle: {}, notificationButtonDisabledStyle: {}, voiceButtonStyle: {}, voiceButtonDisabledStyle: {}, chatIconStyle: {}, audioIconStyle: {}, audioIconDisabledStyle: {}, closeChatIconStyle: {}, emojiIconStyle: {}, emojiIconDisabledStyle: {}, fileAttachmentIconStyle: {}, fileAttachmentIconDisabledStyle: {}, notificationIconStyle: {}, notificationIconDisabledStyle: {}, voiceIconStyle: {}, voiceIconDisabledStyle: {}, sendIconStyle: {}, sendIconDisabledStyle: {}, sendIconHoveredStyle: {}, rcbTypingIndicatorContainerStyle: {}, rcbTypingIndicatorDotStyle: {}, toastPromptContainerStyle: {}, toastPromptStyle: {}, toastPromptHoveredStyle: {} }, hA = yt({ styles: {}, setSyncedStyles: () => null, syncedStylesRef: { current: {} } }), fe = () => mt(hA), Fi = ({ children: e, styles: t = gA, setSyncedStyles: r, syncedStylesRef: n }) => D(hA.Provider, { value: { styles: t, setSyncedStyles: r, syncedStylesRef: n }, children: e }), ji = ({ buttons: e }) => {
|
|
26
27
|
var t, r, n, o, A, i, a;
|
|
27
28
|
const { settings: s } = oe(), { styles: c } = fe(), l = { backgroundImage: `linear-gradient(to right, ${(t = s.general) == null ? void 0 : t.secondaryColor},
|
|
28
29
|
${(r = s.general) == null ? void 0 : r.primaryColor})`, ...c.headerStyle };
|
|
29
|
-
return he("div", { style: l, className: "rcb-chat-header-container", children: [he("div", { className: "rcb-chat-header", children: [((n = s.header) == null ? void 0 : n.showAvatar) &&
|
|
30
|
-
}, mA = yt({}), Ie = () => mt(mA),
|
|
30
|
+
return he("div", { style: l, className: "rcb-chat-header-container", children: [he("div", { className: "rcb-chat-header", children: [((n = s.header) == null ? void 0 : n.showAvatar) && D("div", { style: { backgroundImage: `url("${(o = s.header) == null ? void 0 : o.avatar}")` }, className: "rcb-bot-avatar" }), _r((A = s.header) == null ? void 0 : A.title) ? (i = s.header) == null ? void 0 : i.title : D("div", { style: { margin: 0, fontSize: 20, fontWeight: "bold" }, children: (a = s.header) == null ? void 0 : a.title })] }), D("div", { className: "rcb-chat-header", children: e?.map((d, u) => D(Nr, { children: d }, u)) })] });
|
|
31
|
+
}, mA = yt({}), Ie = () => mt(mA), zi = ({ children: e, botIdRef: t, flowRef: r }) => {
|
|
31
32
|
const n = ne(null), o = ne(""), A = ne(null), i = ne(/* @__PURE__ */ new Map()), a = ne(null), s = ne(""), c = ne(!1), l = ne(null), d = ne(null), u = ne(null);
|
|
32
|
-
return
|
|
33
|
+
return D(mA.Provider, { value: { botIdRef: t, flowRef: r, inputRef: n, timeoutIdRef: A, streamMessageMap: i, chatBodyRef: a, paramsInputRef: s, keepVoiceOnRef: c, audioContextRef: l, audioBufferRef: d, gainNodeRef: u, prevInputRef: o }, children: e });
|
|
33
34
|
}, Je = (e) => {
|
|
34
35
|
const [t, r] = ee(e), n = ne(e);
|
|
35
36
|
return [t, (o) => {
|
|
36
37
|
const A = typeof o == "function" ? o(n.current) : o;
|
|
37
38
|
n.current = A, r(A);
|
|
38
39
|
}, n];
|
|
39
|
-
}, yA = yt({}), Me = () => mt(yA),
|
|
40
|
+
}, yA = yt({}), Me = () => mt(yA), qi = ({ children: e, settings: t }) => {
|
|
40
41
|
var r, n, o, A, i, a;
|
|
41
|
-
const [s, c, l] = Je(!1), [d, u, p] = Je(((r = t?.chatWindow) == null ? void 0 : r.defaultOpen) ?? !1), [g, y, f] = Je(((n = t?.audio) == null ? void 0 : n.defaultToggledOn) ?? !1), [v, b, h] = Je(((o = t?.voice) == null ? void 0 : o.defaultToggledOn) ?? !1), [E, P, k] = Je(((A = t?.notification) == null ? void 0 : A.defaultToggledOn) ?? !0), [C, x] = ee(!1), [Q, B] = ee(!1), [O,
|
|
42
|
-
return
|
|
42
|
+
const [s, c, l] = Je(!1), [d, u, p] = Je(((r = t?.chatWindow) == null ? void 0 : r.defaultOpen) ?? !1), [g, y, f] = Je(((n = t?.audio) == null ? void 0 : n.defaultToggledOn) ?? !1), [v, b, h] = Je(((o = t?.voice) == null ? void 0 : o.defaultToggledOn) ?? !1), [E, P, k] = Je(((A = t?.notification) == null ? void 0 : A.defaultToggledOn) ?? !0), [C, x] = ee(!1), [Q, B] = ee(!1), [O, S, _] = Je(!1), [H, N, U] = Je(!0), [M, L, m] = Je(!1), [K, w] = ee(!1), [q, te] = ee(!1), [$, ie] = ee(0), [me, le] = ee(0), [ze, Se] = ee(!1), [Oe, et] = ee(((i = window.visualViewport) == null ? void 0 : i.height) ?? window.innerHeight), [j, G] = ee(((a = window.visualViewport) == null ? void 0 : a.width) ?? window.innerWidth);
|
|
43
|
+
return D(yA.Provider, { value: { isBotTyping: s, setSyncedIsBotTyping: c, syncedIsBotTypingRef: l, isChatWindowOpen: d, setSyncedIsChatWindowOpen: u, syncedIsChatWindowOpenRef: p, audioToggledOn: g, setSyncedAudioToggledOn: y, syncedAudioToggledOnRef: f, voiceToggledOn: v, setSyncedVoiceToggledOn: b, syncedVoiceToggledOnRef: h, notificationsToggledOn: E, setSyncedNotificationsToggledOn: P, syncedNotificationsToggledOnRef: k, isLoadingChatHistory: C, setIsLoadingChatHistory: x, hasChatHistoryLoaded: Q, setHasChatHistoryLoaded: B, isScrolling: O, setSyncedIsScrolling: S, syncedIsScrollingRef: _, textAreaDisabled: H, setSyncedTextAreaDisabled: N, syncedTextAreaDisabledRef: U, textAreaSensitiveMode: M, setSyncedTextAreaSensitiveMode: L, syncedTextAreaSensitiveModeRef: m, hasInteractedPage: K, setHasInteractedPage: w, hasFlowStarted: q, setHasFlowStarted: te, unreadCount: $, setUnreadCount: ie, inputLength: me, setInputLength: le, blockAllowsAttachment: ze, setBlockAllowsAttachment: Se, viewportHeight: Oe, setViewportHeight: et, viewportWidth: j, setViewportWidth: G }, children: e });
|
|
43
44
|
};
|
|
44
45
|
var z = ((e) => (e.START_SPEAK_AUDIO = "rcb-start-speak-audio", e.TOGGLE_AUDIO = "rcb-toggle-audio", e.TOGGLE_NOTIFICATIONS = "rcb-toggle-notifications", e.TOGGLE_VOICE = "rcb-toggle-voice", e.TOGGLE_CHAT_WINDOW = "rcb-toggle-chat-window", e.PRE_INJECT_MESSAGE = "rcb-pre-inject-message", e.POST_INJECT_MESSAGE = "rcb-post-inject-message", e.START_SIMULATE_STREAM_MESSAGE = "rcb-start-simulate-stream-message", e.STOP_SIMULATE_STREAM_MESSAGE = "rcb-stop-simulate-stream-message", e.START_STREAM_MESSAGE = "rcb-start-stream-message", e.CHUNK_STREAM_MESSAGE = "rcb-chunk-stream-message", e.STOP_STREAM_MESSAGE = "rcb-stop-stream-message", e.REMOVE_MESSAGE = "rcb-remove-message", e.SAVE_CHAT_HISTORY = "rcb-save-chat-history", e.LOAD_CHAT_HISTORY = "rcb-load-chat-history", e.CHANGE_PATH = "rcb-change-path", e.SHOW_TOAST = "rcb-show-toast", e.DISMISS_TOAST = "rcb-dismiss-toast", e.USER_SUBMIT_TEXT = "rcb-user-submit-text", e.USER_UPLOAD_FILE = "rcb-user-upload-file", e.TEXT_AREA_CHANGE_VALUE = "rcb-text-area-change-value", e.PRE_LOAD_CHATBOT = "rcb-pre-load-chatbot", e.POST_LOAD_CHATBOT = "rcb-post-load-chatbot", e.PRE_PROCESS_BLOCK = "rcb-pre-process-block", e.POST_PROCESS_BLOCK = "rcb-post-process-block", e))(z || {});
|
|
45
|
-
const
|
|
46
|
-
const n = new CustomEvent(e, { detail: t, cancelable:
|
|
46
|
+
const Gi = { [z.START_SPEAK_AUDIO]: !0, [z.TOGGLE_AUDIO]: !0, [z.TOGGLE_VOICE]: !0, [z.TOGGLE_NOTIFICATIONS]: !0, [z.TOGGLE_CHAT_WINDOW]: !0, [z.PRE_INJECT_MESSAGE]: !0, [z.POST_INJECT_MESSAGE]: !1, [z.PRE_LOAD_CHATBOT]: !0, [z.POST_LOAD_CHATBOT]: !1, [z.START_SIMULATE_STREAM_MESSAGE]: !0, [z.STOP_SIMULATE_STREAM_MESSAGE]: !1, [z.START_STREAM_MESSAGE]: !0, [z.CHUNK_STREAM_MESSAGE]: !0, [z.STOP_STREAM_MESSAGE]: !0, [z.REMOVE_MESSAGE]: !0, [z.SAVE_CHAT_HISTORY]: !0, [z.LOAD_CHAT_HISTORY]: !0, [z.CHANGE_PATH]: !0, [z.SHOW_TOAST]: !0, [z.DISMISS_TOAST]: !0, [z.USER_SUBMIT_TEXT]: !0, [z.USER_UPLOAD_FILE]: !0, [z.TEXT_AREA_CHANGE_VALUE]: !0, [z.PRE_PROCESS_BLOCK]: !0, [z.POST_PROCESS_BLOCK]: !0 }, mr = async (e, t, r) => {
|
|
47
|
+
const n = new CustomEvent(e, { detail: t, cancelable: Gi[e] });
|
|
47
48
|
return n.data = r, n.promises = [], window.dispatchEvent(n), await Promise.all(n.promises), n;
|
|
48
49
|
}, vA = yt({ paths: [], setSyncedPaths: () => {
|
|
49
|
-
}, syncedPathsRef: { current: [] } }), yn = () => mt(vA),
|
|
50
|
+
}, syncedPathsRef: { current: [] } }), yn = () => mt(vA), Wi = ({ children: e }) => {
|
|
50
51
|
const [t, r, n] = Je([]);
|
|
51
|
-
return
|
|
52
|
+
return D(vA.Provider, { value: { paths: t, setSyncedPaths: r, syncedPathsRef: n }, children: e });
|
|
52
53
|
}, at = () => {
|
|
53
54
|
const { botIdRef: e } = Ie(), { syncedPathsRef: t } = yn(), r = W(() => t.current.length > 0 ? t.current.at(-1) ?? null : null, []), n = W(() => t.current.length > 1 ? t.current.at(-2) ?? null : null, []);
|
|
54
55
|
return { dispatchRcbEvent: W(async (o, A) => {
|
|
@@ -80,10 +81,10 @@ const qi = { [z.START_SPEAK_AUDIO]: !0, [z.TOGGLE_AUDIO]: !0, [z.TOGGLE_VOICE]:
|
|
|
80
81
|
x();
|
|
81
82
|
}, [u]);
|
|
82
83
|
return { isChatWindowOpen: t, setSyncedIsChatWindowOpen: r, toggleChatWindow: y, viewportHeight: n, setViewportHeight: o, viewportWidth: A, setViewportWidth: i, toggleIsBotTyping: f, scrollToBottom: b, getIsChatBotVisible: g };
|
|
83
|
-
},
|
|
84
|
+
}, Yi = () => {
|
|
84
85
|
var e, t, r;
|
|
85
86
|
const { settings: n } = oe(), { styles: o } = fe(), { unreadCount: A, isScrolling: i } = Me(), { chatBodyRef: a } = Ie(), { scrollToBottom: s } = $e(), [c, l] = ee(!1), d = { color: (e = n.general) == null ? void 0 : e.primaryColor, borderColor: (t = n.general) == null ? void 0 : t.primaryColor, ...o.chatMessagePromptHoveredStyle };
|
|
86
|
-
return
|
|
87
|
+
return D("div", { className: "rcb-message-prompt-container " + (a.current && (u = n.chatWindow) != null && u.showMessagePrompt && i && A > 0 ? "visible" : "hidden"), children: D("div", { onMouseEnter: () => {
|
|
87
88
|
l(!0);
|
|
88
89
|
}, onMouseLeave: () => {
|
|
89
90
|
l(!1);
|
|
@@ -92,83 +93,83 @@ const qi = { [z.START_SPEAK_AUDIO]: !0, [z.TOGGLE_AUDIO]: !0, [z.TOGGLE_VOICE]:
|
|
|
92
93
|
}, className: "rcb-message-prompt-text", children: (r = n.chatWindow) == null ? void 0 : r.messagePromptText }) });
|
|
93
94
|
var u;
|
|
94
95
|
}, wA = yt({ messages: [], setSyncedMessages: () => {
|
|
95
|
-
}, syncedMessagesRef: { current: [] } }), Lr = () => mt(wA),
|
|
96
|
+
}, syncedMessagesRef: { current: [] } }), Lr = () => mt(wA), Ki = ({ children: e }) => {
|
|
96
97
|
const [t, r, n] = Je([]);
|
|
97
|
-
return
|
|
98
|
-
}, Ki = ({ message: e, isNewSender: t }) => {
|
|
99
|
-
var r, n, o, A, i, a;
|
|
100
|
-
const { settings: s } = oe(), { styles: c } = fe(), l = typeof e.content == "string", d = e.content, u = e.contentWrapper ? S(e.contentWrapper, { children: d }) : d, p = { backgroundColor: (r = s.general) == null ? void 0 : r.primaryColor, color: "#fff", maxWidth: (n = s.userBubble) != null && n.showAvatar ? "65%" : "70%", ...c.userBubbleStyle }, g = (o = s.userBubble) != null && o.animate ? "rcb-user-message-entry" : "", y = ((A = s.userBubble) == null ? void 0 : A.showAvatar) && t, f = "rcb-user-message" + (!t && (i = s.userBubble) != null && i.showAvatar ? " rcb-user-message-offset" : "");
|
|
101
|
-
return he("div", { className: "rcb-user-message-container", children: [l ? S("div", { style: p, className: `${f} ${g}`, children: u }) : S(He, { children: u }), y && S("div", { style: { backgroundImage: `url("${(a = s.userBubble) == null ? void 0 : a.avatar}")` }, className: "rcb-message-user-avatar" })] });
|
|
98
|
+
return D(wA.Provider, { value: { messages: t, setSyncedMessages: r, syncedMessagesRef: n }, children: e });
|
|
102
99
|
}, Vi = ({ message: e, isNewSender: t }) => {
|
|
103
100
|
var r, n, o, A, i, a;
|
|
104
|
-
const { settings: s } = oe(), { styles: c } = fe(), l = typeof e.content == "string", d = e.content, u = e.contentWrapper ?
|
|
105
|
-
return he("div", { className: "rcb-
|
|
106
|
-
}, Xi = () => {
|
|
101
|
+
const { settings: s } = oe(), { styles: c } = fe(), l = typeof e.content == "string", d = e.content, u = e.contentWrapper ? D(e.contentWrapper, { children: d }) : d, p = { backgroundColor: (r = s.general) == null ? void 0 : r.primaryColor, color: "#fff", maxWidth: (n = s.userBubble) != null && n.showAvatar ? "65%" : "70%", ...c.userBubbleStyle }, g = (o = s.userBubble) != null && o.animate ? "rcb-user-message-entry" : "", y = ((A = s.userBubble) == null ? void 0 : A.showAvatar) && t, f = "rcb-user-message" + (!t && (i = s.userBubble) != null && i.showAvatar ? " rcb-user-message-offset" : "");
|
|
102
|
+
return he("div", { className: "rcb-user-message-container", children: [l ? D("div", { style: p, className: `${f} ${g}`, children: u }) : D(He, { children: u }), y && D("div", { style: { backgroundImage: `url("${(a = s.userBubble) == null ? void 0 : a.avatar}")` }, className: "rcb-message-user-avatar" })] });
|
|
103
|
+
}, Xi = ({ message: e, isNewSender: t }) => {
|
|
104
|
+
var r, n, o, A, i, a;
|
|
105
|
+
const { settings: s } = oe(), { styles: c } = fe(), l = typeof e.content == "string", d = e.content, u = e.contentWrapper ? D(e.contentWrapper, { children: d }) : d, p = { backgroundColor: (r = s.general) == null ? void 0 : r.secondaryColor, color: "#fff", maxWidth: (n = s.botBubble) != null && n.showAvatar ? "65%" : "70%", ...c.botBubbleStyle }, g = (o = s.botBubble) != null && o.animate ? "rcb-bot-message-entry" : "", y = ((A = s.botBubble) == null ? void 0 : A.showAvatar) && t, f = "rcb-bot-message" + (!t && (i = s.botBubble) != null && i.showAvatar ? " rcb-bot-message-offset" : "");
|
|
106
|
+
return he("div", { className: "rcb-bot-message-container", children: [y && D("div", { style: { backgroundImage: `url("${(a = s.botBubble) == null ? void 0 : a.avatar}")` }, className: "rcb-message-bot-avatar" }), l ? D("div", { style: p, className: `${f} ${g}`, children: u }) : D(He, { children: u })] });
|
|
107
|
+
}, Ji = () => {
|
|
107
108
|
var e, t, r;
|
|
108
109
|
const { settings: n } = oe(), { styles: o } = fe(), A = (e = n.botBubble) != null && e.animate ? "rcb-bot-message-entry" : "";
|
|
109
|
-
return he("div", { className: "rcb-bot-message-container", children: [((t = n.botBubble) == null ? void 0 : t.showAvatar) &&
|
|
110
|
+
return he("div", { className: "rcb-bot-message-container", children: [((t = n.botBubble) == null ? void 0 : t.showAvatar) && D("div", { style: { backgroundImage: `url("${(r = n.botBubble) == null ? void 0 : r.avatar}")` }, className: "rcb-message-bot-avatar" }), D("div", { onMouseDown: (i) => {
|
|
110
111
|
i.preventDefault();
|
|
111
|
-
}, className: `rcb-bot-message ${A}`, children: he("div", { className: "rcb-typing-indicator", style: { ...o?.rcbTypingIndicatorContainerStyle }, children: [
|
|
112
|
-
},
|
|
112
|
+
}, className: `rcb-bot-message ${A}`, children: he("div", { className: "rcb-typing-indicator", style: { ...o?.rcbTypingIndicatorContainerStyle }, children: [D("span", { className: "rcb-dot", style: { ...o?.rcbTypingIndicatorDotStyle } }), D("span", { className: "rcb-dot", style: { ...o?.rcbTypingIndicatorDotStyle } }), D("span", { className: "rcb-dot", style: { ...o?.rcbTypingIndicatorDotStyle } })] }) })] });
|
|
113
|
+
}, Zi = () => {
|
|
113
114
|
var e, t, r;
|
|
114
115
|
const { settings: n } = oe(), { styles: o } = fe(), { messages: A } = Lr(), { scrollToBottom: i } = $e(), { isBotTyping: a, syncedIsScrollingRef: s } = Me(), { chatBodyRef: c } = Ie(), l = { ...o?.bodyStyle, scrollbarWidth: (e = n.chatWindow) != null && e.showScrollbar ? "auto" : "none" };
|
|
115
116
|
return V(() => {
|
|
116
117
|
s.current || i();
|
|
117
118
|
}, [(t = c.current) == null ? void 0 : t.scrollHeight]), he("div", { style: l, className: "rcb-chat-body-container", ref: c, children: [A.map((d, u) => {
|
|
118
119
|
const p = ((g) => g === 0 || A[g].sender !== A[g - 1].sender)(u);
|
|
119
|
-
return d.sender.toUpperCase() === "USER" ?
|
|
120
|
-
}), a && ((r = n.chatWindow) == null ? void 0 : r.showTypingIndicator) &&
|
|
121
|
-
},
|
|
120
|
+
return d.sender.toUpperCase() === "USER" ? D(Vi, { message: d, isNewSender: p }, u) : d.sender.toUpperCase() === "BOT" ? D(Xi, { message: d, isNewSender: p }, u) : D("div", { children: d.content }, u);
|
|
121
|
+
}), a && ((r = n.chatWindow) == null ? void 0 : r.showTypingIndicator) && D(Ji, {}), D(Yi, {})] });
|
|
122
|
+
}, $i = ({ checkboxes: e, checkedItems: t, path: r }) => {
|
|
122
123
|
var n, o, A, i, a, s, c, l, d, u, p;
|
|
123
124
|
const { settings: g } = oe(), { styles: y } = fe(), { paths: f } = yn(), { handleSubmitText: v } = tn(), [b, h] = ee(/* @__PURE__ */ new Set()), [E, P] = ee(!1), k = { cursor: E ? `url("${(n = g.general) == null ? void 0 : n.actionDisabledIcon}"), auto` : "pointer", color: (o = g.general) == null ? void 0 : o.primaryColor, borderColor: (A = g.general) == null ? void 0 : A.primaryColor, ...y.botCheckboxRowStyle }, C = { cursor: E || b.size < e.min ? `url("${(i = g.general) == null ? void 0 : i.actionDisabledIcon}"), auto` : "pointer", color: (a = g.general) == null ? void 0 : a.primaryColor, borderColor: (s = g.general) == null ? void 0 : s.primaryColor, ...y.botCheckboxNextStyle }, x = { cursor: E ? `url("${(c = g.general) == null ? void 0 : c.actionDisabledIcon}"), auto` : "pointer", color: "transparent", ...y.botCheckMarkStyle }, Q = { cursor: E ? `url("${(l = g.general) == null ? void 0 : l.actionDisabledIcon}"), auto` : "pointer", color: "#fff", borderColor: (d = g.general) == null ? void 0 : d.primaryColor, backgroundColor: (u = g.general) == null ? void 0 : u.primaryColor, ...y.botCheckMarkSelectedStyle };
|
|
124
125
|
return V(() => {
|
|
125
126
|
f.length > 0 && f[f.length - 1] !== r && P(!e.reusable);
|
|
126
|
-
}, [f]), he("div", { className: "rcb-checkbox-container " + ((p = g.botBubble) != null && p.showAvatar ? "rcb-checkbox-offset" : ""), children: [e.items.map((B) =>
|
|
127
|
-
O.preventDefault(), ((
|
|
127
|
+
}, [f]), he("div", { className: "rcb-checkbox-container " + ((p = g.botBubble) != null && p.showAvatar ? "rcb-checkbox-offset" : ""), children: [e.items.map((B) => D("div", { onMouseDown: (O) => {
|
|
128
|
+
O.preventDefault(), ((S) => {
|
|
128
129
|
E || h((_) => {
|
|
129
130
|
const H = new Set(_);
|
|
130
|
-
if (H.has(
|
|
131
|
+
if (H.has(S)) t.delete(S), H.delete(S);
|
|
131
132
|
else {
|
|
132
133
|
if (b.size == e.max) return _;
|
|
133
|
-
t.add(
|
|
134
|
+
t.add(S), H.add(S);
|
|
134
135
|
}
|
|
135
136
|
return H;
|
|
136
137
|
});
|
|
137
138
|
})(B);
|
|
138
|
-
}, style: k, className: "rcb-checkbox-row-container", children: he("div", { className: "rcb-checkbox-row", children: [
|
|
139
|
+
}, style: k, className: "rcb-checkbox-row-container", children: he("div", { className: "rcb-checkbox-row", children: [D("div", { style: b.has(B) ? Q : x, className: "rcb-checkbox-mark" }), D("div", { className: "rcb-checkbox-label", children: B })] }) }, B)), D("div", { style: C, className: "rcb-checkbox-next-button", onMouseDown: (B) => {
|
|
139
140
|
var O;
|
|
140
141
|
if (B.preventDefault(), E || b.size < e.min) return;
|
|
141
|
-
const
|
|
142
|
+
const S = Array.from(t).join(", ");
|
|
142
143
|
let _;
|
|
143
|
-
P(!e.reusable), _ = e.sendOutput != null ? e.sendOutput : ((O = g.chatInput) == null ? void 0 : O.sendCheckboxOutput) ?? !0, v(
|
|
144
|
+
P(!e.reusable), _ = e.sendOutput != null ? e.sendOutput : ((O = g.chatInput) == null ? void 0 : O.sendCheckboxOutput) ?? !0, v(S, _);
|
|
144
145
|
} })] });
|
|
145
|
-
},
|
|
146
|
+
}, ea = async (e, t) => {
|
|
146
147
|
const r = e.checkboxes;
|
|
147
148
|
if (!r) return;
|
|
148
149
|
let n;
|
|
149
150
|
if (typeof r == "function" ? (n = r(t), n instanceof Promise && (n = await n)) : n = r, Array.isArray(n) && (n = { items: n }), !("items" in n) || n.items.length == 0) return;
|
|
150
151
|
n.min == null && (n.min = 1), n.max == null && (n.max = n.items.length), n.min > n.max && (n.min = n.max), n.reusable == null && (n.reusable = !1);
|
|
151
|
-
const o = /* @__PURE__ */ new Set(), A = t.currPath, i =
|
|
152
|
+
const o = /* @__PURE__ */ new Set(), A = t.currPath, i = D($i, { checkboxes: n, checkedItems: o, path: A });
|
|
152
153
|
await t.injectMessage(i);
|
|
153
|
-
},
|
|
154
|
+
}, ta = async (e, t) => {
|
|
154
155
|
const r = e.function;
|
|
155
156
|
if (!r) return;
|
|
156
157
|
const n = r(t);
|
|
157
158
|
return n instanceof Promise ? await n : n;
|
|
158
|
-
},
|
|
159
|
+
}, na = async (e, t, r) => {
|
|
159
160
|
const n = e.message;
|
|
160
161
|
if (!n) return;
|
|
161
162
|
if (typeof n == "string") return void (n.trim() !== "" && (r ? await t.simulateStreamMessage(n) : await t.injectMessage(n)));
|
|
162
163
|
let o = n(t);
|
|
163
164
|
o instanceof Promise && (o = await o), typeof o == "string" && o.trim() !== "" && (r ? await t.simulateStreamMessage(o) : await t.injectMessage(o));
|
|
164
|
-
},
|
|
165
|
+
}, ra = ({ options: e, path: t }) => {
|
|
165
166
|
var r, n, o, A, i, a;
|
|
166
167
|
const { settings: s } = oe(), { styles: c } = fe(), { paths: l } = yn(), { handleSubmitText: d } = tn(), [u, p] = ee([]), [g, y] = ee(!1), f = { cursor: g ? `url("${(r = s.general) == null ? void 0 : r.actionDisabledIcon}"), auto` : "pointer", color: (n = s.general) == null ? void 0 : n.primaryColor, borderColor: (o = s.general) == null ? void 0 : o.primaryColor, backgroundColor: "#fff", ...c.botOptionStyle }, v = { color: "#fff", borderColor: (A = s.general) == null ? void 0 : A.primaryColor, backgroundColor: (i = s.general) == null ? void 0 : i.primaryColor, ...c.botOptionHoveredStyle };
|
|
167
168
|
return V(() => {
|
|
168
169
|
l.length > 0 && l[l.length - 1] !== t && y(!e.reusable);
|
|
169
|
-
}, [l]),
|
|
170
|
+
}, [l]), D("div", { className: "rcb-options-container " + ((a = s.botBubble) != null && a.showAvatar ? "rcb-options-offset" : ""), children: e.items.map((b, h) => {
|
|
170
171
|
const E = u[h] && !g;
|
|
171
|
-
return
|
|
172
|
+
return D("div", { className: "rcb-options", style: E ? v : f, onMouseEnter: () => ((P) => {
|
|
172
173
|
p((k) => {
|
|
173
174
|
const C = [...k];
|
|
174
175
|
return C[P] = !0, C;
|
|
@@ -185,15 +186,15 @@ const qi = { [z.START_SPEAK_AUDIO]: !0, [z.TOGGLE_AUDIO]: !0, [z.TOGGLE_VOICE]:
|
|
|
185
186
|
y(!e.reusable), C = e.sendOutput != null ? e.sendOutput : ((k = s.chatInput) == null ? void 0 : k.sendOptionOutput) ?? !0, d(b, C);
|
|
186
187
|
}, children: b }, b);
|
|
187
188
|
}) });
|
|
188
|
-
},
|
|
189
|
+
}, oa = async (e, t) => {
|
|
189
190
|
const r = e.options;
|
|
190
191
|
if (!r) return;
|
|
191
192
|
let n;
|
|
192
193
|
if (typeof r == "function" ? (n = r(t), n instanceof Promise && (n = await n)) : n = r, Array.isArray(n) && (n = { items: n }), !("items" in n) || n.items.length == 0) return;
|
|
193
194
|
n.reusable == null && (n.reusable = !1);
|
|
194
|
-
const o = t.currPath, A =
|
|
195
|
+
const o = t.currPath, A = D(ra, { options: n, path: o });
|
|
195
196
|
await t.injectMessage(A);
|
|
196
|
-
},
|
|
197
|
+
}, Aa = async (e, t) => {
|
|
197
198
|
const r = e.component;
|
|
198
199
|
if (r) {
|
|
199
200
|
if (typeof r == "function") {
|
|
@@ -202,7 +203,7 @@ const qi = { [z.START_SPEAK_AUDIO]: !0, [z.TOGGLE_AUDIO]: !0, [z.TOGGLE_VOICE]:
|
|
|
202
203
|
}
|
|
203
204
|
await t.injectMessage(r);
|
|
204
205
|
}
|
|
205
|
-
},
|
|
206
|
+
}, ia = async (e, t, r, n) => {
|
|
206
207
|
const o = e.transition;
|
|
207
208
|
let A;
|
|
208
209
|
if (typeof o == "function" ? (A = o(t), A instanceof Promise && (A = await A)) : A = o, typeof A == "number" && (A = { duration: A }), !A || A instanceof Promise || A.duration == null || typeof A.duration != "number") return;
|
|
@@ -212,7 +213,7 @@ const qi = { [z.START_SPEAK_AUDIO]: !0, [z.TOGGLE_AUDIO]: !0, [z.TOGGLE_VOICE]:
|
|
|
212
213
|
a && await EA(a, t);
|
|
213
214
|
}, A.duration);
|
|
214
215
|
A.interruptable && (r.current = i);
|
|
215
|
-
},
|
|
216
|
+
}, aa = async (e, t, r) => {
|
|
216
217
|
const n = e.chatDisabled;
|
|
217
218
|
if (n == null) return;
|
|
218
219
|
let o;
|
|
@@ -225,7 +226,7 @@ const qi = { [z.START_SPEAK_AUDIO]: !0, [z.TOGGLE_AUDIO]: !0, [z.TOGGLE_VOICE]:
|
|
|
225
226
|
}, EA = async (e, t) => {
|
|
226
227
|
if (!e) throw new Error("Block is not valid.");
|
|
227
228
|
const r = Object.keys(e);
|
|
228
|
-
for (const n of r) n === "function" && await
|
|
229
|
+
for (const n of r) n === "function" && await ta(e, t);
|
|
229
230
|
r.includes("path") && await (async (n, o) => {
|
|
230
231
|
const A = n.path;
|
|
231
232
|
if (!A) return !1;
|
|
@@ -235,14 +236,14 @@ const qi = { [z.START_SPEAK_AUDIO]: !0, [z.TOGGLE_AUDIO]: !0, [z.TOGGLE_VOICE]:
|
|
|
235
236
|
const a = i;
|
|
236
237
|
return await o.goToPath(a), !0;
|
|
237
238
|
})(e, t);
|
|
238
|
-
},
|
|
239
|
+
}, sa = () => {
|
|
239
240
|
var e;
|
|
240
241
|
const { settings: t } = oe(), { styles: r } = fe();
|
|
241
|
-
return
|
|
242
|
-
},
|
|
242
|
+
return D("div", { className: "rcb-line-break-container", children: D("div", { style: { ...r.chatHistoryLineBreakStyle }, className: "rcb-line-break-text", "data-testid": "chat-history-line-break-text", children: (e = t.chatHistory) == null ? void 0 : e.chatHistoryLineBreakText }) });
|
|
243
|
+
}, la = () => {
|
|
243
244
|
var e;
|
|
244
245
|
const { settings: t } = oe(), { styles: r } = fe(), n = { borderTop: `4px solid ${(e = t.general) == null ? void 0 : e.primaryColor}`, ...r.loadingSpinnerStyle };
|
|
245
|
-
return
|
|
246
|
+
return D("div", { className: "rcb-spinner-container", children: D("div", { style: n, className: "rcb-spinner" }) });
|
|
246
247
|
}, Nn = () => {
|
|
247
248
|
try {
|
|
248
249
|
if (typeof crypto < "u" && typeof crypto.randomUUID == "function") return crypto.randomUUID();
|
|
@@ -257,8 +258,8 @@ const qi = { [z.START_SPEAK_AUDIO]: !0, [z.TOGGLE_AUDIO]: !0, [z.TOGGLE_VOICE]:
|
|
|
257
258
|
}, xt = (e, t) => ({ id: Nn(), content: e, sender: t, type: typeof e == "string" ? "string" : "object", timestamp: (/* @__PURE__ */ new Date()).toUTCString(), tags: [] });
|
|
258
259
|
let Tt, kA = !1, Ln = "rcb-history", Qn = 30, PA = !1, jn = [];
|
|
259
260
|
const fn = () => jn, yr = (e) => {
|
|
260
|
-
|
|
261
|
-
},
|
|
261
|
+
DA(e), jn = e;
|
|
262
|
+
}, DA = (e) => {
|
|
262
263
|
Tt && Tt.setItem(Ln, JSON.stringify(e));
|
|
263
264
|
}, vr = (e) => {
|
|
264
265
|
var t, r, n, o, A;
|
|
@@ -270,7 +271,7 @@ const fn = () => jn, yr = (e) => {
|
|
|
270
271
|
}
|
|
271
272
|
return [];
|
|
272
273
|
})(Tt.getItem(Ln));
|
|
273
|
-
},
|
|
274
|
+
}, ca = (e) => _r(e.content) ? structuredClone({ id: e.id, content: xi.renderToString(e.content), type: e.type, sender: e.sender.toUpperCase(), timestamp: e.timestamp, tags: e.tags }) : e, CA = (e, t, r) => {
|
|
274
275
|
const n = new DOMParser().parseFromString(e, "text/html");
|
|
275
276
|
return Array.from(n.body.childNodes).map((o, A) => {
|
|
276
277
|
var i;
|
|
@@ -290,7 +291,7 @@ const fn = () => jn, yr = (e) => {
|
|
|
290
291
|
}, {});
|
|
291
292
|
if (Object.prototype.hasOwnProperty.call(s, "class")) {
|
|
292
293
|
const c = o.classList;
|
|
293
|
-
s.className = c.toString(), delete s.class, (i = t.botBubble) != null && i.showAvatar && (s =
|
|
294
|
+
s.className = c.toString(), delete s.class, (i = t.botBubble) != null && i.showAvatar && (s = ua(c, s)), s = da(c, s, t, r), s = pa(c, s, t, r), s = fa(c, s, t, r), s = ga(c, s, t, r);
|
|
294
295
|
}
|
|
295
296
|
if (["area", "base", "br", "col", "embed", "hr", "img", "input", "link", "meta", "source", "track", "wbr"].includes(a)) return to(a, { key: A, ...s });
|
|
296
297
|
{
|
|
@@ -299,16 +300,16 @@ const fn = () => jn, yr = (e) => {
|
|
|
299
300
|
}
|
|
300
301
|
}
|
|
301
302
|
});
|
|
302
|
-
},
|
|
303
|
+
}, ua = (e, t) => ((e.contains("rcb-options-container") || e.contains("rcb-checkbox-container")) && (t.className = `${e.toString()} rcb-options-offset`), t), da = (e, t, r, n) => {
|
|
303
304
|
var o, A, i, a, s;
|
|
304
305
|
return e.contains("rcb-options") && (t.style = { ...t.style, color: ((o = n.botOptionStyle) == null ? void 0 : o.color) ?? ((A = r.general) == null ? void 0 : A.primaryColor), borderColor: ((i = n.botOptionStyle) == null ? void 0 : i.color) ?? ((a = r.general) == null ? void 0 : a.primaryColor), cursor: `url("${(s = r.general) == null ? void 0 : s.actionDisabledIcon}"), auto`, ...n.botOptionStyle }), t;
|
|
305
|
-
},
|
|
306
|
+
}, pa = (e, t, r, n) => {
|
|
306
307
|
var o, A, i, a, s;
|
|
307
308
|
return e.contains("rcb-checkbox-row-container") && (t.style = { ...t.style, color: ((o = n.botCheckboxRowStyle) == null ? void 0 : o.color) ?? ((A = r.general) == null ? void 0 : A.primaryColor), borderColor: ((i = n.botCheckboxRowStyle) == null ? void 0 : i.color) ?? ((a = r.general) == null ? void 0 : a.primaryColor), cursor: `url("${(s = r.general) == null ? void 0 : s.actionDisabledIcon}"), auto`, ...n.botCheckboxRowStyle }), t;
|
|
308
|
-
},
|
|
309
|
+
}, fa = (e, t, r, n) => {
|
|
309
310
|
var o, A, i, a, s;
|
|
310
311
|
return e.contains("rcb-checkbox-next-button") && (t.style = { ...t.style, color: ((o = n.botCheckboxNextStyle) == null ? void 0 : o.color) ?? ((A = r.general) == null ? void 0 : A.primaryColor), borderColor: ((i = n.botCheckboxNextStyle) == null ? void 0 : i.color) ?? ((a = r.general) == null ? void 0 : a.primaryColor), cursor: `url("${(s = r.general) == null ? void 0 : s.actionDisabledIcon}"), auto`, ...n.botCheckboxNextStyle }), t;
|
|
311
|
-
},
|
|
312
|
+
}, ga = (e, t, r, n) => {
|
|
312
313
|
var o, A;
|
|
313
314
|
return (e.contains("rcb-media-display-image-container") || e.contains("rcb-media-display-video-container")) && (t.style = { ...t.style, backgroundColor: (o = r.general) == null ? void 0 : o.primaryColor, maxWidth: (A = r.userBubble) != null && A.showAvatar ? "65%" : "70%", ...n.mediaDisplayContainerStyle }), t;
|
|
314
315
|
}, Rr = () => {
|
|
@@ -334,7 +335,7 @@ const fn = () => jn, yr = (e) => {
|
|
|
334
335
|
var g;
|
|
335
336
|
p !== i.current && ((g = e.event) != null && g.rcbToggleNotifications && (await l(z.TOGGLE_NOTIFICATIONS, { currState: i.current, newState: !i.current })).defaultPrevented || r((y) => !y));
|
|
336
337
|
}, [i]), playNotificationSound: u, setUpNotifications: d };
|
|
337
|
-
},
|
|
338
|
+
}, ha = (e, t) => {
|
|
338
339
|
var r, n, o, A;
|
|
339
340
|
((i, a, s, c, l) => {
|
|
340
341
|
if (!window.SpeechSynthesisUtterance) return void console.info("Speech Synthesis API is not supported in this environment.");
|
|
@@ -350,7 +351,7 @@ const fn = () => jn, yr = (e) => {
|
|
|
350
351
|
}
|
|
351
352
|
u || window.speechSynthesis.speak(d);
|
|
352
353
|
})(t, (r = e.audio) == null ? void 0 : r.language, (n = e.audio) == null ? void 0 : n.voiceNames, (o = e.audio) == null ? void 0 : o.rate, (A = e.audio) == null ? void 0 : A.volume);
|
|
353
|
-
},
|
|
354
|
+
}, SA = () => {
|
|
354
355
|
const { settings: e } = oe(), { audioToggledOn: t, setSyncedAudioToggledOn: r, syncedAudioToggledOnRef: n } = Me(), { dispatchRcbEvent: o } = at(), A = W(async (a) => {
|
|
355
356
|
var s;
|
|
356
357
|
a !== n.current && ((s = e.event) != null && s.rcbToggleAudio && (await o(z.TOGGLE_AUDIO, { currState: n.current, newState: !n.current })).defaultPrevented || r((c) => !c));
|
|
@@ -363,17 +364,17 @@ const fn = () => jn, yr = (e) => {
|
|
|
363
364
|
if (d.defaultPrevented) return;
|
|
364
365
|
l = d.data.textToRead;
|
|
365
366
|
}
|
|
366
|
-
|
|
367
|
+
ha(e, l);
|
|
367
368
|
}, [e, n]);
|
|
368
369
|
return { audioToggledOn: t, speakAudio: i, toggleAudio: A };
|
|
369
370
|
}, Lt = () => {
|
|
370
371
|
var e, t, r;
|
|
371
|
-
const { settings: n } = oe(), { messages: o, setSyncedMessages: A, syncedMessagesRef: i } = Lr(), { setSyncedIsBotTyping: a, setUnreadCount: s, syncedIsScrollingRef: c, syncedIsChatWindowOpenRef: l } = Me(), { streamMessageMap: d, chatBodyRef: u, paramsInputRef: p } = Ie(), { scrollToBottom: g, getIsChatBotVisible: y } = $e(), { dispatchRcbEvent: f } = at(), { speakAudio: v } =
|
|
372
|
+
const { settings: n } = oe(), { messages: o, setSyncedMessages: A, syncedMessagesRef: i } = Lr(), { setSyncedIsBotTyping: a, setUnreadCount: s, syncedIsScrollingRef: c, syncedIsChatWindowOpenRef: l } = Me(), { streamMessageMap: d, chatBodyRef: u, paramsInputRef: p } = Ie(), { scrollToBottom: g, getIsChatBotVisible: y } = $e(), { dispatchRcbEvent: f } = at(), { speakAudio: v } = SA(), { playNotificationSound: b } = Rr(), h = W(async (S) => {
|
|
372
373
|
var _, H;
|
|
373
374
|
if ((_ = n.event) != null && _.rcbSaveChatHistory) {
|
|
374
|
-
const N = await f(z.SAVE_CHAT_HISTORY, { messages:
|
|
375
|
+
const N = await f(z.SAVE_CHAT_HISTORY, { messages: S });
|
|
375
376
|
if (N.defaultPrevented) return;
|
|
376
|
-
|
|
377
|
+
S = ((H = N.data) == null ? void 0 : H.messages) ?? S;
|
|
377
378
|
}
|
|
378
379
|
await (async (N) => {
|
|
379
380
|
if (PA || !Tt) return;
|
|
@@ -382,26 +383,26 @@ const fn = () => jn, yr = (e) => {
|
|
|
382
383
|
const m = N[L];
|
|
383
384
|
if (m.sender.toUpperCase() !== "SYSTEM" && (m.content !== "" && U.unshift(m), U.length === Qn)) break;
|
|
384
385
|
}
|
|
385
|
-
let M = U.map(
|
|
386
|
+
let M = U.map(ca);
|
|
386
387
|
if (!kA && M.length < Qn) {
|
|
387
388
|
const L = Qn - M.length;
|
|
388
389
|
M = [...jn.slice(-L), ...M];
|
|
389
390
|
}
|
|
390
|
-
|
|
391
|
-
})(
|
|
392
|
-
}, [f, (e = n.event) == null ? void 0 : e.rcbSaveChatHistory]), E = W((
|
|
391
|
+
DA(M);
|
|
392
|
+
})(S);
|
|
393
|
+
}, [f, (e = n.event) == null ? void 0 : e.rcbSaveChatHistory]), E = W((S, _ = !1) => {
|
|
393
394
|
var H, N;
|
|
394
|
-
h(
|
|
395
|
+
h(S);
|
|
395
396
|
let U = !0;
|
|
396
|
-
const M =
|
|
397
|
+
const M = S[S.length - 1];
|
|
397
398
|
if (!M) return;
|
|
398
399
|
const L = M.sender.toUpperCase();
|
|
399
400
|
L === "USER" && (U = !1), (H = n.general) != null && H.embedded && y() && (U = !1), (l.current && !c.current || _) && (U = !1), U && b(), !_ && (L !== "USER" && (N = n.chatWindow) != null && N.autoJumpToBottom || L === "USER" || !c.current) && setTimeout(() => g(), 1);
|
|
400
|
-
}, [n, u, l, c, b, g, y]), P = W(async (
|
|
401
|
+
}, [n, u, l, c, b, g, y]), P = W(async (S, _ = "BOT", H = null) => {
|
|
401
402
|
var N, U, M, L, m;
|
|
402
|
-
if (typeof
|
|
403
|
+
if (typeof S != "string") throw new Error("Content must be of type string to simulate stream.");
|
|
403
404
|
_ = _.toUpperCase();
|
|
404
|
-
let K = xt(
|
|
405
|
+
let K = xt(S, _);
|
|
405
406
|
if ((N = n.event) != null && N.rcbStartSimulateStreamMessage) {
|
|
406
407
|
const le = await f(z.START_SIMULATE_STREAM_MESSAGE, { message: K });
|
|
407
408
|
if (le.defaultPrevented) return null;
|
|
@@ -420,8 +421,8 @@ const fn = () => jn, yr = (e) => {
|
|
|
420
421
|
const me = new Promise((le) => {
|
|
421
422
|
const ze = setInterval(() => {
|
|
422
423
|
if ($ >= ie) return clearInterval(ze), void le();
|
|
423
|
-
A((
|
|
424
|
-
const Oe = [...
|
|
424
|
+
A((Se) => {
|
|
425
|
+
const Oe = [...Se];
|
|
425
426
|
for (let et = Oe.length - 1; et >= 0; et--) if (Oe[et].id === q.id) {
|
|
426
427
|
const j = te[$];
|
|
427
428
|
j && (q.content += j, Oe[et] = q), $++;
|
|
@@ -431,45 +432,45 @@ const fn = () => jn, yr = (e) => {
|
|
|
431
432
|
});
|
|
432
433
|
}, w);
|
|
433
434
|
});
|
|
434
|
-
return (c.current || !l.current) && s((le) => le + 1), await me, h(i.current), (m = n.event) != null && m.rcbStopSimulateStreamMessage && await f(z.STOP_SIMULATE_STREAM_MESSAGE, { message: K }), _ === "USER" && (p.current =
|
|
435
|
-
}, [n, f, E, i, p, a, s, l, v]), k = W(async (
|
|
435
|
+
return (c.current || !l.current) && s((le) => le + 1), await me, h(i.current), (m = n.event) != null && m.rcbStopSimulateStreamMessage && await f(z.STOP_SIMULATE_STREAM_MESSAGE, { message: K }), _ === "USER" && (p.current = S), K;
|
|
436
|
+
}, [n, f, E, i, p, a, s, l, v]), k = W(async (S, _ = "BOT") => {
|
|
436
437
|
var H, N, U;
|
|
437
438
|
_ = _.toUpperCase();
|
|
438
|
-
let M = xt(
|
|
439
|
+
let M = xt(S, _);
|
|
439
440
|
if ((H = n.event) != null && H.rcbPreInjectMessage) {
|
|
440
441
|
const L = await f(z.PRE_INJECT_MESSAGE, { message: M });
|
|
441
442
|
if (L.defaultPrevented) return null;
|
|
442
443
|
M = L.data.message;
|
|
443
444
|
}
|
|
444
|
-
return M.sender.toUpperCase() === "BOT" && (l.current || (N = n.general) != null && N.embedded) && typeof M.content == "string" && M.content.trim() !== "" && v(M.content), (c.current || !l.current) && s((L) => L + 1), (U = n.event) != null && U.rcbPostInjectMessage && await f(z.POST_INJECT_MESSAGE, { message: M }), A((L) => [...L, M]), E(i.current), _ === "USER" && typeof
|
|
445
|
-
}, [n, f, E, p, i, l, v, s]), C = W(async (
|
|
445
|
+
return M.sender.toUpperCase() === "BOT" && (l.current || (N = n.general) != null && N.embedded) && typeof M.content == "string" && M.content.trim() !== "" && v(M.content), (c.current || !l.current) && s((L) => L + 1), (U = n.event) != null && U.rcbPostInjectMessage && await f(z.POST_INJECT_MESSAGE, { message: M }), A((L) => [...L, M]), E(i.current), _ === "USER" && typeof S == "string" && (p.current = S), M;
|
|
446
|
+
}, [n, f, E, p, i, l, v, s]), C = W(async (S) => {
|
|
446
447
|
var _;
|
|
447
|
-
let H = i.current.find((M) => M.id ===
|
|
448
|
-
return H || (N = fn(), H = N.find((M) => M.id ===
|
|
449
|
-
}, [f, (t = n.event) == null ? void 0 : t.rcbRemoveMessage, E, i, s, fn, yr]), x = W(async (
|
|
448
|
+
let H = i.current.find((M) => M.id === S), N = null, U = !1;
|
|
449
|
+
return H || (N = fn(), H = N.find((M) => M.id === S), H && (U = !0)), !H || (_ = n.event) != null && _.rcbRemoveMessage && (await f(z.REMOVE_MESSAGE, { message: H })).defaultPrevented ? null : U ? (N && yr(N.filter((M) => M.id !== S)), H) : (A((M) => M.filter((L) => L.id !== S)), E(i.current), s((M) => Math.max(M - 1, 0)), H);
|
|
450
|
+
}, [f, (t = n.event) == null ? void 0 : t.rcbRemoveMessage, E, i, s, fn, yr]), x = W(async (S, _ = "BOT") => {
|
|
450
451
|
var H, N;
|
|
451
452
|
if (_ = _.toUpperCase(), !d.current.has(_)) {
|
|
452
|
-
const M = xt(
|
|
453
|
+
const M = xt(S, _);
|
|
453
454
|
return (H = n.event) != null && H.rcbStartStreamMessage && (await f(z.START_STREAM_MESSAGE, { message: M })).defaultPrevented ? null : (a(!1), A((L) => [...L, M]), E(i.current), d.current.set(_, M.id), (c.current || !l.current) && s((L) => L + 1), M);
|
|
454
455
|
}
|
|
455
|
-
const U = { ...xt(
|
|
456
|
+
const U = { ...xt(S, _), id: d.current.get(_) };
|
|
456
457
|
return (N = n.event) != null && N.rcbChunkStreamMessage && (await f(z.CHUNK_STREAM_MESSAGE, { message: U })).defaultPrevented ? null : (A((M) => M.map((L) => L.id === U.id ? U : L)), E(i.current, !0), U);
|
|
457
|
-
}, [f, n.event, E, i, a, s, d]), Q = W(async (
|
|
458
|
+
}, [f, n.event, E, i, a, s, d]), Q = W(async (S = "BOT") => {
|
|
458
459
|
var _;
|
|
459
|
-
if (
|
|
460
|
-
const H = d.current.get(
|
|
460
|
+
if (S = S.toUpperCase(), !d.current.has(S)) return !0;
|
|
461
|
+
const H = d.current.get(S);
|
|
461
462
|
let N;
|
|
462
463
|
for (let U = 0; U < 3; U++) {
|
|
463
464
|
const M = i.current.find((L) => L.id === H);
|
|
464
465
|
M && (N = M), await new Promise((L) => setTimeout(L, 20));
|
|
465
466
|
}
|
|
466
|
-
return ((_ = n.event) == null || !_.rcbStopStreamMessage || !(await f(z.STOP_STREAM_MESSAGE, { message: N })).defaultPrevented) && (d.current.delete(
|
|
467
|
-
}, [f, (r = n.event) == null ? void 0 : r.rcbStopStreamMessage, d, p]), B = W((
|
|
468
|
-
const _ = typeof
|
|
467
|
+
return ((_ = n.event) == null || !_.rcbStopStreamMessage || !(await f(z.STOP_STREAM_MESSAGE, { message: N })).defaultPrevented) && (d.current.delete(S), h(i.current), S === "USER" && typeof N?.content == "string" && (p.current = N.content), !0);
|
|
468
|
+
}, [f, (r = n.event) == null ? void 0 : r.rcbStopStreamMessage, d, p]), B = W((S) => {
|
|
469
|
+
const _ = typeof S == "function" ? S(i.current) : S;
|
|
469
470
|
A(_), E(_);
|
|
470
|
-
}, [E, i]), O = W((
|
|
471
|
+
}, [E, i]), O = W((S, _, H = 0) => {
|
|
471
472
|
var N;
|
|
472
|
-
const U = i.current, M =
|
|
473
|
+
const U = i.current, M = S ? S.toUpperCase() : null, L = [];
|
|
473
474
|
let m = H;
|
|
474
475
|
for (let K = U.length - 1; K >= 0; K--) {
|
|
475
476
|
const w = U[K];
|
|
@@ -492,7 +493,7 @@ const Hr = () => {
|
|
|
492
493
|
Jn = e != null ? new e() : null;
|
|
493
494
|
}
|
|
494
495
|
return Jn;
|
|
495
|
-
},
|
|
496
|
+
}, ma = (e, t, r, n, o, A) => {
|
|
496
497
|
var i, a, s;
|
|
497
498
|
const c = Hr();
|
|
498
499
|
if (!c) return;
|
|
@@ -513,7 +514,7 @@ const Hr = () => {
|
|
|
513
514
|
}, c.onend = () => {
|
|
514
515
|
It ? (c.start(), !ct && l && (ct = setTimeout(async () => await Zn(t, A), l))) : (clearTimeout(ct), ct = null, clearTimeout(Mn));
|
|
515
516
|
}, l && (ct = setTimeout(async () => await Zn(t, A), l));
|
|
516
|
-
},
|
|
517
|
+
}, ya = (e, t) => {
|
|
517
518
|
navigator.mediaDevices.getUserMedia({ audio: !0 }).then((r) => {
|
|
518
519
|
if (gt = new MediaRecorder(r), !It) try {
|
|
519
520
|
It = !0, gt.start();
|
|
@@ -572,9 +573,9 @@ const Hr = () => {
|
|
|
572
573
|
}, [c]);
|
|
573
574
|
return { textAreaDisabled: o, setSyncedTextAreaDisabled: A, textAreaSensitiveMode: i, setSyncedTextAreaSensitiveMode: a, inputLength: r, setInputLength: n, getTextAreaValue: h, setTextAreaValue: y, updateTextAreaFocus: f, focusTextArea: v, blurTextArea: b, toggleTextAreaDisabled: E, toggleTextAreaSensitiveMode: P };
|
|
574
575
|
}, BA = yt({ toasts: [], setSyncedToasts: () => {
|
|
575
|
-
}, syncedToastsRef: { current: [] } }), xA = () => mt(BA),
|
|
576
|
+
}, syncedToastsRef: { current: [] } }), xA = () => mt(BA), va = ({ children: e }) => {
|
|
576
577
|
const [t, r, n] = Je([]);
|
|
577
|
-
return
|
|
578
|
+
return D(BA.Provider, { value: { toasts: t, setSyncedToasts: r, syncedToastsRef: n }, children: e });
|
|
578
579
|
}, en = () => {
|
|
579
580
|
const { settings: e } = oe(), { toasts: t, setSyncedToasts: r, syncedToastsRef: n } = xA(), { dispatchRcbEvent: o } = at(), A = W(async (s, c) => {
|
|
580
581
|
var l, d, u, p;
|
|
@@ -609,7 +610,7 @@ const Hr = () => {
|
|
|
609
610
|
return { showToast: A, dismissToast: i, toasts: t, replaceToasts: a };
|
|
610
611
|
}, zn = () => {
|
|
611
612
|
var e, t, r, n, o;
|
|
612
|
-
const { settings: A } = oe(), { paths: i, setSyncedPaths: a, syncedPathsRef: s } = yn(), { flowRef: c, streamMessageMap: l, paramsInputRef: d, keepVoiceOnRef: u, timeoutIdRef: p } = Ie(), { setSyncedIsBotTyping: g, setSyncedTextAreaDisabled: y, setSyncedTextAreaSensitiveMode: f, blockAllowsAttachment: v, setBlockAllowsAttachment: b } = Me(), { dispatchRcbEvent: h } = at(), { endStreamMessage: E, injectMessage: P, removeMessage: k, simulateStreamMessage: C, streamMessage: x } = Lt(), { showToast: Q, dismissToast: B } = en(), { toggleChatWindow: O } = $e(), { updateTextAreaFocus:
|
|
613
|
+
const { settings: A } = oe(), { paths: i, setSyncedPaths: a, syncedPathsRef: s } = yn(), { flowRef: c, streamMessageMap: l, paramsInputRef: d, keepVoiceOnRef: u, timeoutIdRef: p } = Ie(), { setSyncedIsBotTyping: g, setSyncedTextAreaDisabled: y, setSyncedTextAreaSensitiveMode: f, blockAllowsAttachment: v, setBlockAllowsAttachment: b } = Me(), { dispatchRcbEvent: h } = at(), { endStreamMessage: E, injectMessage: P, removeMessage: k, simulateStreamMessage: C, streamMessage: x } = Lt(), { showToast: Q, dismissToast: B } = en(), { toggleChatWindow: O } = $e(), { updateTextAreaFocus: S, setTextAreaValue: _ } = Rt(), { syncVoice: H } = Fr(), N = W(async (w) => {
|
|
613
614
|
var q;
|
|
614
615
|
if ((q = A.event) != null && q.rcbPostProcessBlock) {
|
|
615
616
|
const te = await h(z.POST_PROCESS_BLOCK, { block: w });
|
|
@@ -623,38 +624,38 @@ const Hr = () => {
|
|
|
623
624
|
let le = c.current[w];
|
|
624
625
|
if (!le) return void g(!1);
|
|
625
626
|
if ((te = A.event) != null && te.rcbPreProcessBlock) {
|
|
626
|
-
const
|
|
627
|
-
if (
|
|
628
|
-
le =
|
|
627
|
+
const Se = await h(z.PRE_PROCESS_BLOCK, { block: le });
|
|
628
|
+
if (Se.defaultPrevented) return;
|
|
629
|
+
le = Se.data.block;
|
|
629
630
|
}
|
|
630
631
|
g(!0), ($ = A.chatInput) != null && $.blockSpam && y(!0), f(!1);
|
|
631
632
|
const ze = { prevPath: q, currPath: w, goToPath: m, setTextAreaValue: _, userInput: d.current, endStreamMessage: E, injectMessage: P, removeMessage: k, simulateStreamMessage: C, streamMessage: x, toggleChatWindow: O, showToast: Q, dismissToast: B };
|
|
632
|
-
await (async (
|
|
633
|
-
if (!
|
|
634
|
-
for (const we of Object.keys(
|
|
633
|
+
await (async (Se, Oe, et, j, G, ce, Ae) => {
|
|
634
|
+
if (!Se) throw new Error("Block is not valid.");
|
|
635
|
+
for (const we of Object.keys(Se)) switch (we) {
|
|
635
636
|
case "message":
|
|
636
|
-
await
|
|
637
|
+
await na(Se, Oe, et);
|
|
637
638
|
break;
|
|
638
639
|
case "options":
|
|
639
|
-
await
|
|
640
|
+
await oa(Se, Oe);
|
|
640
641
|
break;
|
|
641
642
|
case "checkboxes":
|
|
642
|
-
await
|
|
643
|
+
await ea(Se, Oe);
|
|
643
644
|
break;
|
|
644
645
|
case "component":
|
|
645
|
-
await
|
|
646
|
+
await Aa(Se, Oe);
|
|
646
647
|
break;
|
|
647
648
|
case "chatDisabled":
|
|
648
|
-
await
|
|
649
|
+
await aa(Se, Oe, G);
|
|
649
650
|
break;
|
|
650
651
|
case "isSensitive":
|
|
651
|
-
await bA(
|
|
652
|
+
await bA(Se, Oe, ce);
|
|
652
653
|
break;
|
|
653
654
|
case "transition":
|
|
654
|
-
await
|
|
655
|
+
await ia(Se, Oe, j, Ae);
|
|
655
656
|
}
|
|
656
|
-
})(le, ze, ((ie = A.botBubble) == null ? void 0 : ie.simulateStream) ?? !1, p, y, f, N), g(!1), "chatDisabled" in le || y((me = A.chatInput) == null ? void 0 : me.disabled), "isSensitive" in le || f(!1), b(typeof le.file == "function"),
|
|
657
|
-
}, [c,
|
|
657
|
+
})(le, ze, ((ie = A.botBubble) == null ? void 0 : ie.simulateStream) ?? !1, p, y, f, N), g(!1), "chatDisabled" in le || y((me = A.chatInput) == null ? void 0 : me.disabled), "isSensitive" in le || f(!1), b(typeof le.file == "function"), S(w), H(u.current && !le.chatDisabled), w !== q && l.current.clear();
|
|
658
|
+
}, [c, S, H, (t = A.botBubble) == null ? void 0 : t.simulateStream, (r = A.chatInput) == null ? void 0 : r.disabled, d, E, P, k, C, x, O, Q, B, u, l]), M = W(() => s.current.length > 0 ? s.current.at(-1) ?? null : null, []), L = W(() => s.current.length > 1 ? s.current.at(-2) ?? null : null, []), m = W(async (w) => {
|
|
658
659
|
var q;
|
|
659
660
|
const te = M(), $ = L();
|
|
660
661
|
return ((q = A.event) == null || !q.rcbChangePath || !(await h(z.CHANGE_PATH, { currPath: te, prevPath: $, nextPath: w })).defaultPrevented) && (a((ie) => [...ie, w]), await U(w, te), !0);
|
|
@@ -665,7 +666,7 @@ const Hr = () => {
|
|
|
665
666
|
return { getCurrPath: M, getPrevPath: L, goToPath: m, blockAllowsAttachment: v, setBlockAllowsAttachment: b, paths: i, replacePaths: K, firePostProcessBlockEvent: N };
|
|
666
667
|
}, tn = () => {
|
|
667
668
|
var e, t, r, n;
|
|
668
|
-
const { settings: o } = oe(), { endStreamMessage: A, injectMessage: i, removeMessage: a, simulateStreamMessage: s, streamMessage: c } = Lt(), { syncedPathsRef: l } = yn(), { getCurrPath: d, getPrevPath: u, goToPath: p, firePostProcessBlockEvent: g } = zn(), { setSyncedTextAreaSensitiveMode: y, setSyncedTextAreaDisabled: f, setSyncedIsBotTyping: v, setBlockAllowsAttachment: b, setInputLength: h, syncedVoiceToggledOnRef: E, syncedTextAreaSensitiveModeRef: P } = Me(), { flowRef: k, inputRef: C, keepVoiceOnRef: x, paramsInputRef: Q, timeoutIdRef: B } = Ie(), { showToast: O, dismissToast:
|
|
669
|
+
const { settings: o } = oe(), { endStreamMessage: A, injectMessage: i, removeMessage: a, simulateStreamMessage: s, streamMessage: c } = Lt(), { syncedPathsRef: l } = yn(), { getCurrPath: d, getPrevPath: u, goToPath: p, firePostProcessBlockEvent: g } = zn(), { setSyncedTextAreaSensitiveMode: y, setSyncedTextAreaDisabled: f, setSyncedIsBotTyping: v, setBlockAllowsAttachment: b, setInputLength: h, syncedVoiceToggledOnRef: E, syncedTextAreaSensitiveModeRef: P } = Me(), { flowRef: k, inputRef: C, keepVoiceOnRef: x, paramsInputRef: Q, timeoutIdRef: B } = Ie(), { showToast: O, dismissToast: S } = en(), { dispatchRcbEvent: _ } = at(), { syncVoice: H } = Fr(), { setTextAreaValue: N } = Rt(), { toggleChatWindow: U } = $e(), M = W(async (m) => {
|
|
669
670
|
var K, w, q, te, $, ie;
|
|
670
671
|
const me = d();
|
|
671
672
|
if (me && k.current[me]) {
|
|
@@ -687,10 +688,10 @@ const Hr = () => {
|
|
|
687
688
|
v(!0);
|
|
688
689
|
}, 400), y(!1), setTimeout(async () => {
|
|
689
690
|
var me;
|
|
690
|
-
const le = { prevPath: u(), currPath: d(), goToPath: p, setTextAreaValue: N, userInput: Q.current, injectMessage: i, simulateStreamMessage: s, streamMessage: c, removeMessage: a, endStreamMessage: A, toggleChatWindow: U, showToast: O, dismissToast:
|
|
691
|
+
const le = { prevPath: u(), currPath: d(), goToPath: p, setTextAreaValue: N, userInput: Q.current, injectMessage: i, simulateStreamMessage: s, streamMessage: c, removeMessage: a, endStreamMessage: A, toggleChatWindow: U, showToast: O, dismissToast: S }, ze = l.current.length;
|
|
691
692
|
await EA(ie, le), l.current.length === ze && (f("chatDisabled" in $ ? !!$.chatDisabled : !((me = o.chatInput) == null || !me.disabled)), bA($, le, y), b(typeof $.file == "function"), H(x.current), v(!1));
|
|
692
693
|
}, (q = o.chatInput) == null ? void 0 : q.botDelay));
|
|
693
|
-
}, [B, (e = o.chatInput) == null ? void 0 : e.blockSpam, (t = o.chatInput) == null ? void 0 : t.botDelay, (r = o.chatInput) == null ? void 0 : r.disabled, x, E, H, M, u, d, p, i, s, c, a, A, U, O,
|
|
694
|
+
}, [B, (e = o.chatInput) == null ? void 0 : e.blockSpam, (t = o.chatInput) == null ? void 0 : t.botDelay, (r = o.chatInput) == null ? void 0 : r.disabled, x, E, H, M, u, d, p, i, s, c, a, A, U, O, S, k]);
|
|
694
695
|
return { handleSubmitText: W(async (m, K = !0) => {
|
|
695
696
|
var w, q;
|
|
696
697
|
m = m ?? ((w = C.current) == null ? void 0 : w.value), !((q = o.event) != null && q.rcbUserSubmitText && (await _(z.USER_SUBMIT_TEXT, { inputText: m, sendInChat: K })).defaultPrevented || !d()) && L(m, K);
|
|
@@ -705,9 +706,9 @@ const Hr = () => {
|
|
|
705
706
|
const n = navigator.userAgent, o = !/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(n), A = window.innerWidth >= 768;
|
|
706
707
|
return o && A;
|
|
707
708
|
}, [(e = t.device) == null ? void 0 : e.applyMobileOptimizations]);
|
|
708
|
-
},
|
|
709
|
+
}, wa = ({ buttons: e }) => {
|
|
709
710
|
var t, r, n, o, A, i, a, s, c, l, d;
|
|
710
|
-
const u = qn(), { settings: p } = oe(), { styles: g } = fe(), { textAreaDisabled: y, textAreaSensitiveMode: f, inputLength: v, hasFlowStarted: b, setHasFlowStarted: h, setInputLength: E } = Me(), { inputRef: P } = Ie(), [k, C] = ee(!1), [x, Q] = ee(!1), { handleSubmitText: B } = tn(), { setTextAreaValue: O } = Rt(),
|
|
711
|
+
const u = qn(), { settings: p } = oe(), { styles: g } = fe(), { textAreaDisabled: y, textAreaSensitiveMode: f, inputLength: v, hasFlowStarted: b, setHasFlowStarted: h, setInputLength: E } = Me(), { inputRef: P } = Ie(), [k, C] = ee(!1), [x, Q] = ee(!1), { handleSubmitText: B } = tn(), { setTextAreaValue: O } = Rt(), S = { boxSizing: u ? "content-box" : "border-box", ...g.chatInputAreaStyle }, _ = { outline: y ? "" : "none", boxShadow: y ? "" : `0 0 5px ${(t = p.general) == null ? void 0 : t.primaryColor}`, boxSizing: u ? "content-box" : "border-box", ...g.chatInputAreaStyle, ...g.chatInputAreaFocusedStyle }, H = { cursor: `url("${(r = p.general) == null ? void 0 : r.actionDisabledIcon}"), auto`, caretColor: "transparent", boxSizing: u ? "content-box" : "border-box", ...g.chatInputAreaStyle, ...g.chatInputAreaDisabledStyle }, N = { color: "#989898", ...g.characterLimitStyle }, U = { color: "#ff0000", ...g.characterLimitReachedStyle }, M = y ? (n = p.chatInput) == null ? void 0 : n.disabledPlaceholderText : (o = p.chatInput) == null ? void 0 : o.enabledPlaceholderText, L = () => {
|
|
711
712
|
y || C(!0);
|
|
712
713
|
}, m = () => {
|
|
713
714
|
C(!1);
|
|
@@ -727,25 +728,25 @@ const Hr = () => {
|
|
|
727
728
|
return he("div", { "aria-label": ((A = p.ariaLabel) == null ? void 0 : A.inputTextArea) ?? "input text area", role: "textbox", onMouseDown: ($) => {
|
|
728
729
|
var ie;
|
|
729
730
|
$.stopPropagation(), !b && ((ie = p.general) == null ? void 0 : ie.flowStartTrigger) === "ON_CHATBOT_INTERACT" && h(!0);
|
|
730
|
-
}, style: { ...g.chatInputContainerStyle }, className: "rcb-chat-input", children: [f && (i = p.sensitiveInput) != null && i.maskInTextArea ?
|
|
731
|
-
},
|
|
731
|
+
}, style: { ...g.chatInputContainerStyle }, className: "rcb-chat-input", children: [f && (i = p.sensitiveInput) != null && i.maskInTextArea ? D("input", { ref: P, type: "password", className: "rcb-chat-input-textarea", style: y ? H : k ? _ : S, placeholder: M, onChange: te, onKeyDown: q, onFocus: L, onBlur: m, onCompositionStart: K, onCompositionEnd: w }) : D("textarea", { ref: P, style: y ? H : k ? _ : S, rows: 1, className: "rcb-chat-input-textarea", placeholder: M, onChange: te, onKeyDown: q, onFocus: L, onBlur: m, onCompositionStart: K, onCompositionEnd: w }), he(He, { children: [e?.map(($, ie) => D(Nr, { children: $ }, ie)), ((a = p.chatInput) == null ? void 0 : a.showCharacterCount) && ((s = p.chatInput) == null ? void 0 : s.characterLimit) != null && ((c = p.chatInput) == null ? void 0 : c.characterLimit) > 0 && he("div", { className: "rcb-chat-input-char-counter", style: v >= ((l = p.chatInput) == null ? void 0 : l.characterLimit) ? U : N, children: [v, "/", (d = p.chatInput) == null ? void 0 : d.characterLimit] })] })] });
|
|
732
|
+
}, ba = ({ buttons: e }) => {
|
|
732
733
|
var t;
|
|
733
734
|
const { settings: r } = oe(), { styles: n } = fe();
|
|
734
|
-
return he("div", { "data-testid": "chatbot-footer-container", style: { ...n.footerStyle }, className: "rcb-chat-footer-container", children: [
|
|
735
|
-
},
|
|
735
|
+
return he("div", { "data-testid": "chatbot-footer-container", style: { ...n.footerStyle }, className: "rcb-chat-footer-container", children: [D("div", { className: "rcb-chat-footer", children: e?.map((o, A) => D(Nr, { children: o }, A)) }), D("span", { children: (t = r.footer) == null ? void 0 : t.text })] });
|
|
736
|
+
}, Ea = () => {
|
|
736
737
|
var e, t, r, n, o, A, i;
|
|
737
738
|
const { settings: a } = oe(), { styles: s } = fe(), { unreadCount: c } = Me(), { isChatWindowOpen: l, toggleChatWindow: d } = $e(), [u, p] = ee(!1), g = { backgroundImage: `linear-gradient(to right, ${(e = a.general) == null ? void 0 : e.secondaryColor},
|
|
738
739
|
${(t = a.general) == null ? void 0 : t.primaryColor})`, ...s.chatButtonStyle }, y = { transform: "scale(1.05)", ...g, ...s.chatButtonHoveredStyle }, f = { backgroundImage: `url(${(r = a.chatButton) == null ? void 0 : r.icon})`, fill: "#fff", width: 75, height: 75, ...s.chatIconStyle };
|
|
739
|
-
return
|
|
740
|
+
return D(He, { children: !((n = a.general) != null && n.embedded) && he("div", { "aria-label": ((o = a.ariaLabel) == null ? void 0 : o.chatButton) ?? "open chat", role: "button", style: u ? y : g, className: "rcb-toggle-button " + (l ? "rcb-button-hide" : "rcb-button-show"), onMouseEnter: () => {
|
|
740
741
|
p(!0);
|
|
741
742
|
}, onMouseLeave: () => {
|
|
742
743
|
p(!1);
|
|
743
744
|
}, onClick: () => d(!0), children: [(() => {
|
|
744
745
|
var v;
|
|
745
746
|
const b = (v = a.chatButton) == null ? void 0 : v.icon;
|
|
746
|
-
return b && typeof b != "string" ? b &&
|
|
747
|
-
})(), !((A = a.notification) != null && A.disabled) && ((i = a.notification) == null ? void 0 : i.showCount) &&
|
|
748
|
-
},
|
|
747
|
+
return b && typeof b != "string" ? b && D("span", { className: "rcb-toggle-icon", children: D(b, { style: f }) }) : D("span", { className: "rcb-toggle-icon", style: f });
|
|
748
|
+
})(), !((A = a.notification) != null && A.disabled) && ((i = a.notification) == null ? void 0 : i.showCount) && D("span", { style: { ...s.notificationBadgeStyle }, className: "rcb-badge", children: c })] }) });
|
|
749
|
+
}, ka = () => {
|
|
749
750
|
var e, t, r, n, o, A;
|
|
750
751
|
const i = qn(), { settings: a } = oe(), { styles: s } = fe(), { chatBodyRef: c } = Ie(), { isChatWindowOpen: l, toggleChatWindow: d } = $e(), [u, p] = ee(!1), [g, y] = ee(!1), [f, v] = ee(0);
|
|
751
752
|
V(() => {
|
|
@@ -758,8 +759,8 @@ const Hr = () => {
|
|
|
758
759
|
else C === "NEVER" ? p(!1) : C === "START" ? g ? p(!1) : (y(!0), p(!0)) : C === "CLOSE" && p(!l);
|
|
759
760
|
}, [l, i, g, (e = s.chatButtonStyle) == null ? void 0 : e.width, (t = a.tooltip) == null ? void 0 : t.mode]);
|
|
760
761
|
const b = { transform: `translateX(-${f}px)`, right: (((r = s.chatButtonStyle) == null ? void 0 : r.width) ?? 75) + 40, bottom: 30, backgroundColor: (n = a.general) == null ? void 0 : n.secondaryColor, color: "#fff", ...s.tooltipStyle }, h = { borderColor: `transparent transparent transparent ${b.backgroundColor}` };
|
|
761
|
-
return
|
|
762
|
-
},
|
|
762
|
+
return D(He, { children: !((o = a.general) != null && o.embedded) && he("div", { "data-testid": "chat-tooltip", style: b, className: "rcb-chat-tooltip " + (u ? "rcb-tooltip-show" : "rcb-tooltip-hide"), onClick: () => d(!0), children: [D("span", { children: (A = a.tooltip) == null ? void 0 : A.text }), D("span", { className: "rcb-chat-tooltip-tail", style: h })] }) });
|
|
763
|
+
}, Pa = ({ id: e, content: t, timeout: r }) => {
|
|
763
764
|
var n, o;
|
|
764
765
|
const { settings: A } = oe(), { styles: i } = fe(), [a] = ee({ toastPromptStyle: { ...i.toastPromptStyle }, toastPromptHoveredStyle: { ...i.toastPromptHoveredStyle } }), { dismissToast: s } = en(), [c, l] = ee(!1), d = { color: (n = A.general) == null ? void 0 : n.primaryColor, borderColor: (o = A.general) == null ? void 0 : o.primaryColor, ...a.toastPromptHoveredStyle };
|
|
765
766
|
return V(() => {
|
|
@@ -769,22 +770,22 @@ const Hr = () => {
|
|
|
769
770
|
}, r);
|
|
770
771
|
return () => clearTimeout(u);
|
|
771
772
|
}
|
|
772
|
-
}, [e, s, r]), typeof t == "string" ?
|
|
773
|
+
}, [e, s, r]), typeof t == "string" ? D("div", { onMouseEnter: () => {
|
|
773
774
|
l(!0);
|
|
774
775
|
}, onMouseLeave: () => {
|
|
775
776
|
l(!1);
|
|
776
777
|
}, style: c ? d : a.toastPromptStyle, onMouseDown: async (u) => {
|
|
777
778
|
var p;
|
|
778
779
|
(p = A.toast) != null && p.dismissOnClick && (u.preventDefault(), await s(e));
|
|
779
|
-
}, className: "rcb-toast-prompt", children: t }) :
|
|
780
|
-
},
|
|
780
|
+
}, className: "rcb-toast-prompt", children: t }) : D(He, { children: t });
|
|
781
|
+
}, Da = () => {
|
|
781
782
|
var e, t, r, n, o, A, i, a, s, c, l, d;
|
|
782
783
|
const { styles: u } = fe(), { toasts: p } = xA(), g = { bottom: `calc(${typeof ((e = u.footerStyle) == null ? void 0 : e.height) == "number" ? `${(t = u.footerStyle) == null ? void 0 : t.height}px` : ((r = u.footerStyle) == null ? void 0 : r.height) ?? "50px"} + ${typeof ((n = u.chatInputContainerStyle) == null ? void 0 : n.height) == "number" ? `${(o = u.chatInputContainerStyle) == null ? void 0 : o.height}px` : ((A = u.chatInputContainerStyle) == null ? void 0 : A.height) ?? "70px"} + 20px)`, width: 300, minWidth: `calc(${typeof ((i = u.chatWindowStyle) == null ? void 0 : i.width) == "number" ? `${(a = u.chatWindowStyle) == null ? void 0 : a.width}px` : ((s = u.chatWindowStyle) == null ? void 0 : s.width) ?? "375px"} / 2)`, maxWidth: `calc(${typeof ((c = u.chatWindowStyle) == null ? void 0 : c.width) == "number" ? `${(l = u.chatWindowStyle) == null ? void 0 : l.width}px` : ((d = u.chatWindowStyle) == null ? void 0 : d.width) ?? "375px"} - 50px)`, ...u.toastPromptContainerStyle };
|
|
783
|
-
return
|
|
784
|
+
return D("div", { className: "rcb-toast-prompt-container", style: g, children: p.map((y) => D(Pa, { id: y.id, content: y.content, timeout: y.timeout }, y.id)) });
|
|
784
785
|
}, IA = ({ file: e, fileType: t, fileUrl: r }) => {
|
|
785
786
|
var n, o, A;
|
|
786
787
|
const { settings: i } = oe(), { styles: a } = fe(), s = { backgroundColor: (n = i.general) == null ? void 0 : n.primaryColor, maxWidth: (o = i.userBubble) != null && o.showAvatar ? "65%" : "70%", ...a.mediaDisplayContainerStyle };
|
|
787
|
-
return
|
|
788
|
+
return D(He, { children: r ? he(He, { children: [t === "image" && r && D("div", { style: s, className: "rcb-media-display-image-container rcb-media-entry", "data-testid": "media-display-image-container", children: D("img", { src: r, alt: "Image Display", className: "rcb-media-display-image" }) }), t === "video" && r && D("div", { style: s, className: "rcb-media-display-video-container rcb-media-entry", "data-testid": "media-display-video-container", children: he("video", { controls: !0, className: "rcb-media-display-video", children: [D("source", { src: r, type: e.type }), "Your browser does not support the video tag."] }) }), t === "audio" && r && he("audio", { "data-testid": "media-display-audio-container", style: { maxWidth: (A = i.userBubble) != null && A.showAvatar ? "65%" : "70%" }, controls: !0, className: "rcb-media-display-audio rcb-media-entry", children: [D("source", { src: r, type: e.type }), "Your browser does not support the audio tag."] })] }) : D(He, {}) });
|
|
788
789
|
}, TA = async (e) => {
|
|
789
790
|
if (!e) return { fileType: null, fileUrl: null };
|
|
790
791
|
const t = e.type.split("/")[0];
|
|
@@ -797,10 +798,10 @@ const Hr = () => {
|
|
|
797
798
|
} catch (r) {
|
|
798
799
|
return console.error(r), { fileType: null, fileUrl: null };
|
|
799
800
|
}
|
|
800
|
-
},
|
|
801
|
+
}, Ca = () => {
|
|
801
802
|
var e, t, r, n, o, A;
|
|
802
|
-
const { settings: i } = oe(), { styles: a } = fe(), { injectMessage: s, simulateStreamMessage: c, streamMessage: l, removeMessage: d, endStreamMessage: u } = Lt(), { getCurrPath: p, getPrevPath: g, goToPath: y, blockAllowsAttachment: f } = zn(), { flowRef: v, inputRef: b } = Ie(), h = v.current, { showToast: E, dismissToast: P } = en(), { dispatchRcbEvent: k } = at(), { toggleChatWindow: C } = $e(), { setTextAreaValue: x } = Rt(), { handleSubmitText: Q } = tn(), B = { cursor: `url("${(e = i.general) == null ? void 0 : e.actionDisabledIcon}"), auto`, ...a.fileAttachmentButtonStyle, ...a.fileAttachmentButtonDisabledStyle }, O = { backgroundImage: `url(${(t = i.fileAttachment) == null ? void 0 : t.icon})`, fill: "#a6a6a6", ...a.fileAttachmentIconStyle },
|
|
803
|
-
return he("label", { "aria-label": ((n = i.ariaLabel) == null ? void 0 : n.fileAttachmentButton) ?? "upload file", role: "button", className: f ? "rcb-attach-button-enabled" : "rcb-attach-button-disabled", style: f ? { ...a.fileAttachmentButtonStyle } : B, children: [
|
|
803
|
+
const { settings: i } = oe(), { styles: a } = fe(), { injectMessage: s, simulateStreamMessage: c, streamMessage: l, removeMessage: d, endStreamMessage: u } = Lt(), { getCurrPath: p, getPrevPath: g, goToPath: y, blockAllowsAttachment: f } = zn(), { flowRef: v, inputRef: b } = Ie(), h = v.current, { showToast: E, dismissToast: P } = en(), { dispatchRcbEvent: k } = at(), { toggleChatWindow: C } = $e(), { setTextAreaValue: x } = Rt(), { handleSubmitText: Q } = tn(), B = { cursor: `url("${(e = i.general) == null ? void 0 : e.actionDisabledIcon}"), auto`, ...a.fileAttachmentButtonStyle, ...a.fileAttachmentButtonDisabledStyle }, O = { backgroundImage: `url(${(t = i.fileAttachment) == null ? void 0 : t.icon})`, fill: "#a6a6a6", ...a.fileAttachmentIconStyle }, S = { backgroundImage: `url(${(r = i.fileAttachment) == null ? void 0 : r.icon})`, fill: "#a6a6a6", ...a.fileAttachmentIconStyle, ...a.fileAttachmentIconDisabledStyle };
|
|
804
|
+
return he("label", { "aria-label": ((n = i.ariaLabel) == null ? void 0 : n.fileAttachmentButton) ?? "upload file", role: "button", className: f ? "rcb-attach-button-enabled" : "rcb-attach-button-disabled", style: f ? { ...a.fileAttachmentButtonStyle } : B, children: [D("input", { className: "rcb-attach-input", role: "file", type: "file", onChange: async (_) => {
|
|
804
805
|
var H, N, U, M;
|
|
805
806
|
const L = _.target.files;
|
|
806
807
|
if (!L) return;
|
|
@@ -816,16 +817,16 @@ const Hr = () => {
|
|
|
816
817
|
for (let $ = 0; $ < m.length; $++) {
|
|
817
818
|
if (te.push(m[$].name), (N = i.fileAttachment) == null || !N.showMediaDisplay) continue;
|
|
818
819
|
const ie = await TA(m[$]);
|
|
819
|
-
!ie.fileType || !ie.fileUrl || await s(
|
|
820
|
+
!ie.fileType || !ie.fileUrl || await s(D(IA, { file: m[$], fileType: ie.fileType, fileUrl: ie.fileUrl }), "USER");
|
|
820
821
|
}
|
|
821
822
|
await Q("📄 " + te.join(", "), (U = i.fileAttachment) == null ? void 0 : U.sendFileName), await q({ userInput: (M = b.current) == null ? void 0 : M.value, prevPath: g(), currPath: p(), goToPath: y, setTextAreaValue: x, injectMessage: s, simulateStreamMessage: c, streamMessage: l, removeMessage: d, endStreamMessage: u, toggleChatWindow: C, showToast: E, dismissToast: P, files: m });
|
|
822
823
|
}
|
|
823
824
|
}, multiple: (o = i.fileAttachment) == null ? void 0 : o.multiple, accept: (A = i.fileAttachment) == null ? void 0 : A.accept, disabled: !f }), (() => {
|
|
824
825
|
var _, H;
|
|
825
826
|
const N = f ? (_ = i.fileAttachment) == null ? void 0 : _.icon : (H = i.fileAttachment) == null ? void 0 : H.iconDisabled;
|
|
826
|
-
return N && typeof N != "string" ? N &&
|
|
827
|
+
return N && typeof N != "string" ? N && D("span", { className: f ? "rcb-attach-icon-enabled" : "rcb-attach-icon-disabled", children: D(N, { style: f ? O : S }) }) : D("span", { className: f ? "rcb-attach-icon-enabled" : "rcb-attach-icon-disabled", style: f ? O : S });
|
|
827
828
|
})()] });
|
|
828
|
-
},
|
|
829
|
+
}, Sa = () => {
|
|
829
830
|
var e, t, r, n, o, A;
|
|
830
831
|
const { settings: i } = oe(), { styles: a } = fe(), { syncedTextAreaDisabledRef: s } = Me(), { inputRef: c } = Ie(), { textAreaDisabled: l, setTextAreaValue: d } = Rt(), u = ne(null), p = ne(null), [g, y] = ee(!1), f = { cursor: `url("${(e = i.general) == null ? void 0 : e.actionDisabledIcon}"), auto`, ...a.emojiButtonStyle, ...a.emojiButtonDisabledStyle }, v = { backgroundImage: `url(${(t = i.emoji) == null ? void 0 : t.icon})`, fill: "#a6a6a6", ...a.emojiIconStyle }, b = { backgroundImage: `url(${(r = i.emoji) == null ? void 0 : r.icon})`, fill: "#a6a6a6", ...a.emojiIconStyle, ...a.emojiIconDisabledStyle };
|
|
831
832
|
return V(() => {
|
|
@@ -843,13 +844,13 @@ const Hr = () => {
|
|
|
843
844
|
return document.addEventListener("mousedown", h), window.addEventListener("resize", E), () => {
|
|
844
845
|
document.removeEventListener("mousedown", h), window.removeEventListener("resize", E);
|
|
845
846
|
};
|
|
846
|
-
}, []), he(He, { children: [
|
|
847
|
+
}, []), he(He, { children: [D("div", { "aria-label": ((n = i.ariaLabel) == null ? void 0 : n.emojiButton) ?? "emoji picker", role: "button", ref: p, className: l ? "rcb-emoji-button-disabled" : "rcb-emoji-button-enabled", style: l ? f : { ...a.emojiButtonStyle }, onMouseDown: (h) => {
|
|
847
848
|
h.preventDefault(), s.current ? y(!1) : y((E) => !E);
|
|
848
849
|
}, children: (() => {
|
|
849
850
|
var h, E;
|
|
850
851
|
const P = l ? (h = i.emoji) == null ? void 0 : h.iconDisabled : (E = i.emoji) == null ? void 0 : E.icon;
|
|
851
|
-
return P && typeof P != "string" ? P &&
|
|
852
|
-
})() }), g &&
|
|
852
|
+
return P && typeof P != "string" ? P && D("span", { className: l ? "rcb-emoji-icon-disabled" : "rcb-emoji-icon-enabled", children: D(P, { style: l ? b : v }) }) : D("span", { className: l ? "rcb-emoji-icon-disabled" : "rcb-emoji-icon-enabled", style: l ? b : v });
|
|
853
|
+
})() }), g && D("div", { className: "rcb-emoji-button-popup", ref: u, children: (A = (o = i.emoji) == null ? void 0 : o.list) == null ? void 0 : A.map((h, E) => D("span", { className: "rcb-emoji", onMouseDown: (P) => ((k, C) => {
|
|
853
854
|
k.preventDefault(), c.current && (d(c.current.value + C), setTimeout(() => {
|
|
854
855
|
const x = c.current;
|
|
855
856
|
if (x) {
|
|
@@ -859,40 +860,40 @@ const Hr = () => {
|
|
|
859
860
|
}
|
|
860
861
|
}, 50)), y(!1);
|
|
861
862
|
})(P, h), children: h }, E)) })] });
|
|
862
|
-
},
|
|
863
|
+
}, Ba = () => {
|
|
863
864
|
var e, t, r;
|
|
864
|
-
const { settings: n } = oe(), { styles: o } = fe(), { audioToggledOn: A, toggleAudio: i } =
|
|
865
|
-
return
|
|
865
|
+
const { settings: n } = oe(), { styles: o } = fe(), { audioToggledOn: A, toggleAudio: i } = SA(), a = { backgroundImage: `url(${(e = n.audio) == null ? void 0 : e.icon})`, fill: "#fcec3d", ...o.audioIconStyle }, s = { backgroundImage: `url(${(t = n.audio) == null ? void 0 : t.iconDisabled})`, fill: "#e8eaed", ...o.audioIconStyle, ...o.audioIconDisabledStyle };
|
|
866
|
+
return D("div", { "aria-label": ((r = n.ariaLabel) == null ? void 0 : r.audioButton) ?? "toggle audio", role: "button", onMouseDown: async (c) => {
|
|
866
867
|
c.preventDefault(), await i();
|
|
867
868
|
}, style: A ? { ...o.audioButtonStyle } : { ...o.audioButtonStyle, ...o.audioButtonDisabledStyle }, children: (() => {
|
|
868
869
|
var c, l;
|
|
869
870
|
const d = A ? (c = n.audio) == null ? void 0 : c.icon : (l = n.audio) == null ? void 0 : l.iconDisabled;
|
|
870
|
-
return d && typeof d != "string" ? d &&
|
|
871
|
+
return d && typeof d != "string" ? d && D("span", { className: "rcb-audio-icon", "data-testid": "rcb-audio-icon", children: D(d, { style: A ? a : s, "data-testid": "rcb-audio-icon-svg" }) }) : D("span", { className: "rcb-audio-icon", "data-testid": "rcb-audio-icon", style: A ? a : s });
|
|
871
872
|
})() });
|
|
872
|
-
},
|
|
873
|
+
}, xa = () => {
|
|
873
874
|
var e, t;
|
|
874
875
|
const { settings: r } = oe(), { styles: n } = fe(), { toggleChatWindow: o } = $e(), A = { backgroundImage: `url(${(e = r.header) == null ? void 0 : e.closeChatIcon})`, fill: "#e8eaed", stroke: "#e8eaed", ...n.closeChatIconStyle };
|
|
875
|
-
return
|
|
876
|
+
return D("div", { "aria-label": ((t = r.ariaLabel) == null ? void 0 : t.closeChatButton) ?? "close chat", role: "button", onMouseDown: (i) => {
|
|
876
877
|
i.stopPropagation(), o(!1);
|
|
877
878
|
}, style: { ...n.closeChatButtonStyle }, children: (() => {
|
|
878
879
|
var i;
|
|
879
880
|
const a = (i = r.header) == null ? void 0 : i.closeChatIcon;
|
|
880
|
-
return a && typeof a != "string" ? a &&
|
|
881
|
+
return a && typeof a != "string" ? a && D("span", { className: "rcb-close-chat-icon", "data-testid": "rcb-close-chat-icon", children: D(a, { style: A }) }) : D("span", { className: "rcb-close-chat-icon", "data-testid": "rcb-close-chat-icon", style: A });
|
|
881
882
|
})() });
|
|
882
|
-
},
|
|
883
|
+
}, Ia = () => {
|
|
883
884
|
var e, t, r;
|
|
884
885
|
const { settings: n } = oe(), { styles: o } = fe(), { notificationsToggledOn: A, toggleNotifications: i } = (() => {
|
|
885
886
|
const { notificationsToggledOn: c, toggleNotifications: l, playNotificationSound: d } = Rr();
|
|
886
887
|
return { notificationsToggledOn: c, toggleNotifications: l, playNotificationSound: d };
|
|
887
888
|
})(), a = { backgroundImage: `url(${(e = n.notification) == null ? void 0 : e.icon})`, fill: "#fcec3d", ...o.notificationIconStyle }, s = { backgroundImage: `url(${(t = n.notification) == null ? void 0 : t.iconDisabled})`, fill: "#e8eaed", ...o.notificationIconStyle, ...o.notificationIconDisabledStyle };
|
|
888
|
-
return
|
|
889
|
+
return D("div", { "aria-label": ((r = n.ariaLabel) == null ? void 0 : r.notificationButton) ?? "toggle notifications", role: "button", onMouseDown: async (c) => {
|
|
889
890
|
c.preventDefault(), await i();
|
|
890
891
|
}, style: A ? { ...o.notificationButtonStyle } : { ...o.notificationButtonStyle, ...o.notificationButtonDisabledStyle }, children: (() => {
|
|
891
892
|
var c, l;
|
|
892
893
|
const d = A ? (c = n.notification) == null ? void 0 : c.icon : (l = n.notification) == null ? void 0 : l.iconDisabled;
|
|
893
|
-
return d && typeof d != "string" ? d &&
|
|
894
|
+
return d && typeof d != "string" ? d && D("span", { className: "rcb-notification-icon", "data-testid": "rcb-notification-icon", children: D(d, { style: A ? a : s, "data-testid": "rcb-notification-icon-svg" }) }) : D("span", { className: "rcb-notification-icon", "data-testid": "rcb-notification-icon", style: A ? a : s });
|
|
894
895
|
})() });
|
|
895
|
-
},
|
|
896
|
+
}, Ta = () => {
|
|
896
897
|
var e, t, r;
|
|
897
898
|
const { settings: n } = oe(), { styles: o } = fe(), { injectMessage: A } = Lt(), { inputRef: i } = Ie(), { voiceToggledOn: a, toggleVoice: s } = Fr(), { setInputLength: c, setTextAreaValue: l, textAreaDisabled: d } = Rt(), { handleSubmitText: u } = tn(), p = ne([]), [g, y] = ee(!1);
|
|
898
899
|
V(() => {
|
|
@@ -901,26 +902,26 @@ const Hr = () => {
|
|
|
901
902
|
}, [g]), V(() => {
|
|
902
903
|
a ? ((E, P, k, C, x, Q, B) => {
|
|
903
904
|
var O;
|
|
904
|
-
(O = E.voice) != null && O.sendAsAudio ?
|
|
905
|
+
(O = E.voice) != null && O.sendAsAudio ? ya(k, Q) : ma(E, P, k, C, x, B);
|
|
905
906
|
})(n, s, b, l, c, p, i) : Ur();
|
|
906
907
|
}, [a]);
|
|
907
908
|
const f = { backgroundImage: `url(${(e = n.voice) == null ? void 0 : e.icon})`, fill: "#9aa0a6", ...o.voiceIconStyle }, v = { backgroundImage: `url(${(t = n.voice) == null ? void 0 : t.iconDisabled})`, fill: "#9aa0a6", ...o.voiceIconStyle, ...o.voiceIconDisabledStyle }, b = () => {
|
|
908
909
|
y((E) => !E);
|
|
909
910
|
}, h = async () => {
|
|
910
911
|
const E = new Blob(p.current, { type: "audio/wav" }), P = new File([E], "voice-input.wav", { type: "audio/wav" }), k = await TA(P);
|
|
911
|
-
!k.fileType || !k.fileUrl || await A(
|
|
912
|
+
!k.fileType || !k.fileUrl || await A(D(IA, { file: P, fileType: k.fileType, fileUrl: k.fileUrl }), "USER");
|
|
912
913
|
};
|
|
913
|
-
return
|
|
914
|
+
return D("div", { "aria-label": ((r = n.ariaLabel) == null ? void 0 : r.voiceButton) ?? "toggle voice", role: "button", onMouseDown: async (E) => {
|
|
914
915
|
E.preventDefault(), !d && await s();
|
|
915
916
|
}, style: a && !d ? { ...o.voiceButtonStyle } : { ...o.voiceButtonStyle, ...o.voiceButtonDisabledStyle }, className: a && !d ? "rcb-voice-button-enabled" : "rcb-voice-button-disabled", children: (() => {
|
|
916
917
|
var E, P;
|
|
917
918
|
const k = a ? (E = n.voice) == null ? void 0 : E.icon : (P = n.voice) == null ? void 0 : P.iconDisabled;
|
|
918
|
-
return k && typeof k != "string" ? k &&
|
|
919
|
+
return k && typeof k != "string" ? k && D("span", { className: "rcb-voice-icon " + (a && !d ? "on" : ""), children: D(k, { style: a && !d ? f : v }) }) : D("span", { className: "rcb-voice-icon" + (a && !d ? "-on" : ""), "data-testid": "rcb-voice-icon", style: a && !d ? f : v });
|
|
919
920
|
})() });
|
|
920
|
-
},
|
|
921
|
+
}, Qa = () => {
|
|
921
922
|
var e, t, r, n, o, A, i, a;
|
|
922
923
|
const { settings: s } = oe(), { styles: c } = fe(), { textAreaDisabled: l } = Me(), [d, u] = ee(!1), { handleSubmitText: p } = tn(), g = { backgroundColor: (e = s.general) == null ? void 0 : e.primaryColor, ...c.sendButtonStyle }, y = { cursor: `url("${(t = s.general) == null ? void 0 : t.actionDisabledIcon}"), auto`, backgroundColor: (r = s.general) == null ? void 0 : r.primaryColor, ...c.sendButtonStyle, ...c.sendButtonDisabledStyle }, f = { backgroundColor: (n = s.general) == null ? void 0 : n.secondaryColor, ...c.sendButtonStyle, ...c.sendButtonHoveredStyle }, v = { backgroundImage: `url(${(o = s.chatInput) == null ? void 0 : o.sendButtonIcon})`, fill: "#fff", ...c.sendIconStyle }, b = { backgroundImage: `url(${(A = s.chatInput) == null ? void 0 : A.sendButtonIcon})`, fill: "#fff", ...c.sendIconStyle, ...c.sendIconDisabledStyle }, h = { backgroundImage: `url(${(i = s.chatInput) == null ? void 0 : i.sendButtonIcon})`, fill: "#fff", ...c.sendIconStyle, ...c.sendIconHoveredStyle };
|
|
923
|
-
return
|
|
924
|
+
return D("div", { "aria-label": ((a = s.ariaLabel) == null ? void 0 : a.sendButton) ?? "send message", role: "button", onMouseEnter: () => {
|
|
924
925
|
u(!0);
|
|
925
926
|
}, onMouseLeave: () => {
|
|
926
927
|
u(!1);
|
|
@@ -929,9 +930,9 @@ const Hr = () => {
|
|
|
929
930
|
}, style: l ? y : d ? f : g, className: "rcb-send-button", children: (() => {
|
|
930
931
|
var E;
|
|
931
932
|
const P = (E = s.chatInput) == null ? void 0 : E.sendButtonIcon;
|
|
932
|
-
return P && typeof P != "string" ? P &&
|
|
933
|
+
return P && typeof P != "string" ? P && D("span", { className: "rcb-send-icon", "data-testid": "rcb-send-icon", children: D(P, { style: l ? b : d ? h : v }) }) : D("span", { className: "rcb-send-icon", "data-testid": "rcb-send-icon", style: l ? b : d ? h : v });
|
|
933
934
|
})() });
|
|
934
|
-
},
|
|
935
|
+
}, Ma = (e, t) => {
|
|
935
936
|
var r, n, o, A, i, a, s, c, l;
|
|
936
937
|
const d = { [Pe.AUDIO_BUTTON]: (r = e.audio) == null ? void 0 : r.disabled, [Pe.CLOSE_CHAT_BUTTON]: (n = e.general) == null ? void 0 : n.embedded, [Pe.EMOJI_PICKER_BUTTON]: (o = e.emoji) == null ? void 0 : o.disabled, [Pe.FILE_ATTACHMENT_BUTTON]: (A = e.fileAttachment) == null ? void 0 : A.disabled, [Pe.NOTIFICATION_BUTTON]: (i = e.notification) == null ? void 0 : i.disabled, [Pe.SEND_MESSAGE_BUTTON]: !1, [Pe.VOICE_MESSAGE_BUTTON]: (a = e.voice) == null ? void 0 : a.disabled }, u = {}, p = (g) => g ? g.map((y) => {
|
|
937
938
|
if (typeof y == "string") {
|
|
@@ -949,8 +950,8 @@ const Hr = () => {
|
|
|
949
950
|
return y;
|
|
950
951
|
}).filter((y) => y !== null) : [];
|
|
951
952
|
return { header: p((s = e.header) == null ? void 0 : s.buttons), chatInput: p((c = e.chatInput) == null ? void 0 : c.buttons), footer: p((l = e.footer) == null ? void 0 : l.buttons) };
|
|
952
|
-
},
|
|
953
|
-
const { settings: e } = oe(), t = je(() => ({ [Pe.CLOSE_CHAT_BUTTON]: () =>
|
|
953
|
+
}, Oa = () => {
|
|
954
|
+
const { settings: e } = oe(), t = je(() => ({ [Pe.CLOSE_CHAT_BUTTON]: () => D(xa, {}), [Pe.AUDIO_BUTTON]: () => D(Ba, {}), [Pe.NOTIFICATION_BUTTON]: () => D(Ia, {}), [Pe.EMOJI_PICKER_BUTTON]: () => D(Sa, {}), [Pe.FILE_ATTACHMENT_BUTTON]: () => D(Ca, {}), [Pe.SEND_MESSAGE_BUTTON]: () => D(Qa, {}), [Pe.VOICE_MESSAGE_BUTTON]: () => D(Ta, {}) }), []), { header: r, chatInput: n, footer: o } = je(() => Ma(e, t), [e, t]);
|
|
954
955
|
return { headerButtons: je(() => r, [r]), chatInputButtons: je(() => n, [n]), footerButtons: je(() => o, [o]) };
|
|
955
956
|
}, jr = () => {
|
|
956
957
|
const { settings: e } = oe(), { styles: t } = fe(), { setSyncedMessages: r, syncedMessagesRef: n } = Lr(), { isLoadingChatHistory: o, setIsLoadingChatHistory: A, hasChatHistoryLoaded: i, setHasChatHistoryLoaded: a } = Me(), { chatBodyRef: s } = Ie(), { dispatchRcbEvent: c } = at(), l = W(async () => {
|
|
@@ -962,23 +963,23 @@ const Hr = () => {
|
|
|
962
963
|
((y, f, v, b, h, E, P, k, C) => {
|
|
963
964
|
var x;
|
|
964
965
|
if (kA = !0, v != null) try {
|
|
965
|
-
const Q = xt(
|
|
966
|
+
const Q = xt(D(la, {}), "SYSTEM"), B = h.current.slice(1);
|
|
966
967
|
b([Q, ...B]);
|
|
967
|
-
const O = v.map((
|
|
968
|
-
if (
|
|
969
|
-
const _ = CA(
|
|
970
|
-
return { ...
|
|
968
|
+
const O = v.map((S) => {
|
|
969
|
+
if (S.type === "object") {
|
|
970
|
+
const _ = CA(S.content, y, f);
|
|
971
|
+
return { ...S, content: _ };
|
|
971
972
|
}
|
|
972
|
-
return
|
|
973
|
+
return S;
|
|
973
974
|
});
|
|
974
975
|
setTimeout(() => {
|
|
975
|
-
var
|
|
976
|
+
var S;
|
|
976
977
|
const _ = h.current.slice(1);
|
|
977
|
-
let H = (
|
|
978
|
+
let H = (S = y.chatHistory) != null && S.autoLoad ? xt(D(He, {}), "SYSTEM") : xt(D(sa, {}), "SYSTEM");
|
|
978
979
|
b([...O, H, ..._]), C(!0);
|
|
979
980
|
}, 500), setTimeout(() => {
|
|
980
981
|
if (!E.current) return;
|
|
981
|
-
const { scrollHeight:
|
|
982
|
+
const { scrollHeight: S } = E.current, _ = S - P;
|
|
982
983
|
E.current.scrollTop += _, k(!1);
|
|
983
984
|
}, 510);
|
|
984
985
|
} catch {
|
|
@@ -987,28 +988,28 @@ const Hr = () => {
|
|
|
987
988
|
})(e, t, p, r, n, s, g, A, a);
|
|
988
989
|
}, [e, t, c, n, s, A, a]);
|
|
989
990
|
return { isLoadingChatHistory: o, setIsLoadingChatHistory: A, hasChatHistoryLoaded: i, showChatHistory: l };
|
|
990
|
-
},
|
|
991
|
+
}, _a = () => {
|
|
991
992
|
var e, t, r;
|
|
992
993
|
const { settings: n } = oe(), { styles: o } = fe(), { showChatHistory: A } = jr(), [i, a] = ee(!1), s = { color: (e = n.general) == null ? void 0 : e.primaryColor, borderColor: (t = n.general) == null ? void 0 : t.primaryColor, ...o.chatHistoryButtonStyle, ...o.chatHistoryButtonHoveredStyle };
|
|
993
|
-
return
|
|
994
|
+
return D("div", { className: "rcb-view-history-container", children: D("div", { onMouseEnter: () => {
|
|
994
995
|
a(!0);
|
|
995
996
|
}, onMouseLeave: () => {
|
|
996
997
|
a(!1);
|
|
997
998
|
}, style: i ? s : { ...o.chatHistoryButtonStyle }, onMouseDown: (c) => {
|
|
998
999
|
c.preventDefault(), A();
|
|
999
|
-
}, className: "rcb-view-history-button", role: "button", tabIndex: 0, children:
|
|
1000
|
-
},
|
|
1000
|
+
}, className: "rcb-view-history-button", role: "button", tabIndex: 0, children: D("p", { children: (r = n.chatHistory) == null ? void 0 : r.viewChatHistoryButtonText }) }) });
|
|
1001
|
+
}, Na = () => {
|
|
1001
1002
|
var e, t, r, n;
|
|
1002
1003
|
const o = qn(), { settings: A } = oe(), { replaceMessages: i } = Lt(), { isBotTyping: a, isChatWindowOpen: s, setUnreadCount: c, setSyncedIsChatWindowOpen: l, setSyncedTextAreaDisabled: d, setSyncedAudioToggledOn: u, setSyncedVoiceToggledOn: p, setSyncedIsScrolling: g, syncedIsScrollingRef: y, syncedIsChatWindowOpenRef: f } = Me(), { chatBodyRef: v } = Ie(), { viewportHeight: b, setViewportHeight: h, setViewportWidth: E, scrollToBottom: P } = $e(), { setUpNotifications: k } = Rr(), { handleFirstInteraction: C } = (() => {
|
|
1003
1004
|
var O;
|
|
1004
|
-
const { settings:
|
|
1005
|
+
const { settings: S } = oe(), { hasInteractedPage: _, setHasInteractedPage: H, hasFlowStarted: N, setHasFlowStarted: U } = Me(), M = W(() => {
|
|
1005
1006
|
var L;
|
|
1006
|
-
if (H(!0), !N && ((L =
|
|
1007
|
+
if (H(!0), !N && ((L = S.general) == null ? void 0 : L.flowStartTrigger) === "ON_PAGE_INTERACT" && U(!0), !window.SpeechSynthesisUtterance) return void console.info("Speech Synthesis API is not supported in this environment.");
|
|
1007
1008
|
const m = new window.SpeechSynthesisUtterance();
|
|
1008
1009
|
m.text = "", m.onend = () => {
|
|
1009
1010
|
window.removeEventListener("click", M), window.removeEventListener("keydown", M), window.removeEventListener("touchstart", M);
|
|
1010
1011
|
}, window.speechSynthesis.speak(m);
|
|
1011
|
-
}, [N, (O =
|
|
1012
|
+
}, [N, (O = S.general) == null ? void 0 : O.flowStartTrigger]);
|
|
1012
1013
|
return { hasInteractedPage: _, handleFirstInteraction: M };
|
|
1013
1014
|
})(), { showChatHistory: x } = jr(), Q = ne(0), B = ne(!1);
|
|
1014
1015
|
V(() => (window.addEventListener("click", C), window.addEventListener("keydown", C), window.addEventListener("touchstart", C), () => {
|
|
@@ -1016,7 +1017,7 @@ const Hr = () => {
|
|
|
1016
1017
|
}), []), V(() => {
|
|
1017
1018
|
const O = v.current;
|
|
1018
1019
|
if (!O) return;
|
|
1019
|
-
const
|
|
1020
|
+
const S = () => {
|
|
1020
1021
|
B.current || (B.current = !0, requestAnimationFrame(() => {
|
|
1021
1022
|
var _, H;
|
|
1022
1023
|
if (!O) return;
|
|
@@ -1024,12 +1025,12 @@ const Hr = () => {
|
|
|
1024
1025
|
g(L), y.current = L, L || (N + U >= M - 1 && (O.scrollTop = M - U - 1), (f.current || (H = A.general) != null && H.embedded) && c(0)), B.current = !1;
|
|
1025
1026
|
}));
|
|
1026
1027
|
};
|
|
1027
|
-
return O.addEventListener("wheel",
|
|
1028
|
-
O.removeEventListener("wheel",
|
|
1028
|
+
return O.addEventListener("wheel", S, { passive: !0 }), O.addEventListener("touchmove", S, { passive: !0 }), () => {
|
|
1029
|
+
O.removeEventListener("wheel", S), O.removeEventListener("touchmove", S);
|
|
1029
1030
|
};
|
|
1030
1031
|
}, []), V(() => {
|
|
1031
|
-
var O,
|
|
1032
|
-
d((O = A.chatInput) == null ? void 0 : O.disabled), l((
|
|
1032
|
+
var O, S, _;
|
|
1033
|
+
d((O = A.chatInput) == null ? void 0 : O.disabled), l((S = A.chatWindow) == null ? void 0 : S.defaultOpen), u((_ = A.audio) == null ? void 0 : _.defaultToggledOn), setTimeout(() => {
|
|
1033
1034
|
var H;
|
|
1034
1035
|
p((H = A.voice) == null ? void 0 : H.defaultToggledOn);
|
|
1035
1036
|
}, 1);
|
|
@@ -1039,17 +1040,17 @@ const Hr = () => {
|
|
|
1039
1040
|
}, [(e = A.notification) == null ? void 0 : e.disabled]), V(() => {
|
|
1040
1041
|
!y.current && v != null && v.current && P();
|
|
1041
1042
|
}, [a]), V(() => {
|
|
1042
|
-
var O,
|
|
1043
|
+
var O, S;
|
|
1043
1044
|
if ((O = A.chatHistory) != null && O.disabled) Tt && Tt.removeItem(Ln);
|
|
1044
1045
|
else if (vr(A), fn().length > 0) {
|
|
1045
|
-
const _ = xt(
|
|
1046
|
-
i([_]), (
|
|
1046
|
+
const _ = xt(D(_a, {}), "SYSTEM");
|
|
1047
|
+
i([_]), (S = A.chatHistory) != null && S.autoLoad && x();
|
|
1047
1048
|
}
|
|
1048
1049
|
}, [(t = A.chatHistory) == null ? void 0 : t.storageKey, (r = A.chatHistory) == null ? void 0 : r.maxEntries, (n = A.chatHistory) == null ? void 0 : n.disabled]), V(() => {
|
|
1049
1050
|
var O;
|
|
1050
|
-
o || (O = A.general) != null && O.embedded || !navigator.virtualKeyboard || (navigator.virtualKeyboard.overlaysContent = !0, navigator.virtualKeyboard.addEventListener("geometrychange", (
|
|
1051
|
-
if (!
|
|
1052
|
-
const { x: _, y: H, width: N, height: U } =
|
|
1051
|
+
o || (O = A.general) != null && O.embedded || !navigator.virtualKeyboard || (navigator.virtualKeyboard.overlaysContent = !0, navigator.virtualKeyboard.addEventListener("geometrychange", (S) => {
|
|
1052
|
+
if (!S.target) return;
|
|
1053
|
+
const { x: _, y: H, width: N, height: U } = S.target.boundingRect;
|
|
1053
1054
|
_ == 0 && H == 0 && N == 0 && U == 0 ? (setTimeout(() => {
|
|
1054
1055
|
var M;
|
|
1055
1056
|
h((M = window.visualViewport) == null ? void 0 : M.height);
|
|
@@ -1062,9 +1063,9 @@ const Hr = () => {
|
|
|
1062
1063
|
}, 101);
|
|
1063
1064
|
}));
|
|
1064
1065
|
}, [o]), V(() => {
|
|
1065
|
-
var O,
|
|
1066
|
+
var O, S, _, H;
|
|
1066
1067
|
if (o) return;
|
|
1067
|
-
s && (h((O = window.visualViewport) == null ? void 0 : O.height), E((
|
|
1068
|
+
s && (h((O = window.visualViewport) == null ? void 0 : O.height), E((S = window.visualViewport) == null ? void 0 : S.width));
|
|
1068
1069
|
const N = () => window.scrollTo({ top: 0, left: 0, behavior: "auto" }), U = () => Q.current = window.scrollY, M = () => {
|
|
1069
1070
|
var m, K;
|
|
1070
1071
|
h((m = window.visualViewport) == null ? void 0 : m.height), E((K = window.visualViewport) == null ? void 0 : K.width);
|
|
@@ -1074,8 +1075,8 @@ const Hr = () => {
|
|
|
1074
1075
|
};
|
|
1075
1076
|
return s ? (L(), document.body.style.position = "fixed", window.addEventListener("scroll", N), (_ = window.visualViewport) == null || _.addEventListener("resize", M)) : (document.body.style.position = "static", L(), window.scrollTo({ top: Q.current, left: 0, behavior: "auto" }), window.addEventListener("scroll", U), (H = window.visualViewport) == null || H.removeEventListener("resize", M)), L;
|
|
1076
1077
|
}, [s, o]);
|
|
1077
|
-
},
|
|
1078
|
-
const { id: r, version: n, baseUrl: o =
|
|
1078
|
+
}, La = "https://cdn.jsdelivr.net/gh/react-chatbotify/community-themes/themes", Ra = "2592000", io = "RCB_THEME_CACHE_DATA", ao = async (e, t) => {
|
|
1079
|
+
const { id: r, version: n, baseUrl: o = La, cacheDuration: A = Ra } = t, i = n || await (async (v, b) => {
|
|
1079
1080
|
const h = `${b}/${v}/meta.json`;
|
|
1080
1081
|
try {
|
|
1081
1082
|
const E = await fetch(h);
|
|
@@ -1116,7 +1117,7 @@ const Hr = () => {
|
|
|
1116
1117
|
const n = r.trim();
|
|
1117
1118
|
return n.startsWith("@import") || n.startsWith("@keyframes") || n.startsWith("@media") ? n : n ? `#${e} ${n}` : "";
|
|
1118
1119
|
}).join(`
|
|
1119
|
-
`),
|
|
1120
|
+
`), Ha = async (e, t, r, n) => {
|
|
1120
1121
|
var o, A;
|
|
1121
1122
|
let i = Rn(pA), a = Rn(gA), s = "";
|
|
1122
1123
|
if (n != null) if (Array.isArray(n)) for (const c of n) {
|
|
@@ -1179,10 +1180,10 @@ const Hr = () => {
|
|
|
1179
1180
|
t(i);
|
|
1180
1181
|
}, [r]);
|
|
1181
1182
|
return { styles: e, replaceStyles: o, updateStyles: n };
|
|
1182
|
-
},
|
|
1183
|
+
}, Ua = ({ plugins: e, slots: t }) => {
|
|
1183
1184
|
var r, n;
|
|
1184
|
-
const o = qn(), { settings: A } = oe(), { styles: i } = fe(), { hasFlowStarted: a, setHasFlowStarted: s } = Me(), { inputRef: c } = Ie(), { viewportHeight: l, viewportWidth: d, isChatWindowOpen: u } = $e(), { goToPath: p } = zn(), { headerButtons: g, chatInputButtons: y, footerButtons: f } =
|
|
1185
|
-
|
|
1185
|
+
const o = qn(), { settings: A } = oe(), { styles: i } = fe(), { hasFlowStarted: a, setHasFlowStarted: s } = Me(), { inputRef: c } = Ie(), { viewportHeight: l, viewportWidth: d, isChatWindowOpen: u } = $e(), { goToPath: p } = zn(), { headerButtons: g, chatInputButtons: y, footerButtons: f } = Oa();
|
|
1186
|
+
Na(), ((b) => {
|
|
1186
1187
|
const { updateSettings: h } = QA(), { updateStyles: E } = MA(), P = b?.map((k) => k());
|
|
1187
1188
|
V(() => {
|
|
1188
1189
|
let k = {}, C = {};
|
|
@@ -1199,37 +1200,37 @@ const Hr = () => {
|
|
|
1199
1200
|
const h = "rcb-chatbot-global ";
|
|
1200
1201
|
return (b = A.general) != null && b.embedded ? h + "rcb-window-embedded" : u ? h + "rcb-window-open" : h + "rcb-window-close";
|
|
1201
1202
|
}, [A, u]);
|
|
1202
|
-
return
|
|
1203
|
+
return D(He, { children: (() => {
|
|
1203
1204
|
var b, h;
|
|
1204
1205
|
return o && ((b = A.device) == null ? void 0 : b.desktopEnabled) || !o && ((h = A.device) == null ? void 0 : h.mobileEnabled);
|
|
1205
1206
|
})() && he("div", { onMouseDown: (b) => {
|
|
1206
1207
|
var h, E;
|
|
1207
1208
|
!a && ((h = A.general) == null ? void 0 : h.flowStartTrigger) === "ON_CHATBOT_INTERACT" && s(!0), o ? (E = c.current) == null || E.blur() : b?.preventDefault();
|
|
1208
|
-
}, className: v, children: [
|
|
1209
|
+
}, className: v, children: [D(ka, {}), D(Ea, {}), u && !o && !((n = A.general) != null && n.embedded) && he(He, { children: [D("style", { children: `
|
|
1209
1210
|
html {
|
|
1210
1211
|
overflow: hidden !important;
|
|
1211
1212
|
touch-action: none !important;
|
|
1212
1213
|
scroll-behavior: auto !important;
|
|
1213
1214
|
}
|
|
1214
|
-
` }),
|
|
1215
|
+
` }), D("div", { style: { position: "fixed", top: 0, left: 0, width: "100%", height: "100%", backgroundColor: "#fff", zIndex: 9999 } })] }), D("div", { style: (() => {
|
|
1215
1216
|
var b, h;
|
|
1216
1217
|
return o || (b = A.general) != null && b.embedded ? (h = A.general) != null && h.embedded ? { ...i.chatWindowStyle } : { ...i.chatWindowStyle, zIndex: 1e4 } : { ...i.chatWindowStyle, borderRadius: "0px", left: "0px", right: "auto", top: "0px", bottom: "auto", width: `${d}px`, height: `${l}px`, zIndex: 1e4 };
|
|
1217
1218
|
})(), className: "rcb-chat-window", children: (() => {
|
|
1218
1219
|
var b, h, E;
|
|
1219
|
-
const P = t?.chatBotHeader ||
|
|
1220
|
-
return he(He, { children: [((b = A.general) == null ? void 0 : b.showHeader) &&
|
|
1220
|
+
const P = t?.chatBotHeader || ji, k = t?.chatBotBody || Zi, C = t?.chatBotInput || wa, x = t?.chatBotFooter || ba;
|
|
1221
|
+
return he(He, { children: [((b = A.general) == null ? void 0 : b.showHeader) && D(P, { buttons: g }), D(k, {}), D(Da, {}), ((h = A.general) == null ? void 0 : h.showInputRow) && D(C, { buttons: y }), ((E = A.general) == null ? void 0 : E.showFooter) && D(x, { buttons: f })] });
|
|
1221
1222
|
})() })] }) });
|
|
1222
1223
|
}, OA = yt(void 0), _A = () => mt(OA), NA = ({ children: e }) => {
|
|
1223
1224
|
var t;
|
|
1224
1225
|
const r = ne(""), n = ne({}), [o, A, i] = Je({}), [a, s, c] = Je({}), [l, d] = ee(!1);
|
|
1225
1226
|
return V(() => {
|
|
1226
1227
|
d(!0);
|
|
1227
|
-
}, []), l ?
|
|
1228
|
+
}, []), l ? D("div", { style: { fontFamily: (t = o.general) == null ? void 0 : t.fontFamily }, children: D(OA.Provider, { value: { loadConfig: async (u, p, g, y, f, v) => {
|
|
1228
1229
|
r.current = u, n.current = p;
|
|
1229
|
-
const b = await
|
|
1230
|
+
const b = await Ha(u, g, y, f);
|
|
1230
1231
|
v.current && (v.current.textContent = b.cssStylesText), A(b.settings), s(b.inlineStyles);
|
|
1231
|
-
} }, children:
|
|
1232
|
-
},
|
|
1232
|
+
} }, children: D(Ui, { settings: o, setSyncedSettings: A, syncedSettingsRef: i, children: D(Fi, { styles: a, setSyncedStyles: s, syncedStylesRef: c, children: D(va, { children: D(zi, { botIdRef: r, flowRef: n, children: D(Wi, { children: D(qi, { settings: o, children: D(Ki, { children: e }) }) }) }) }) }) }) }) }) : null;
|
|
1233
|
+
}, Fa = ({ id: e, flow: t, settings: r, styles: n, themes: o, plugins: A, setConfigLoaded: i, styleRootRef: a }) => {
|
|
1233
1234
|
const s = je(() => e, []), c = _A(), { flowRef: l } = Ie();
|
|
1234
1235
|
return l && l.current !== t && (l.current = t), V(() => {
|
|
1235
1236
|
(async () => {
|
|
@@ -1237,7 +1238,7 @@ const Hr = () => {
|
|
|
1237
1238
|
(d = r.event) != null && d.rcbPreLoadChatBot && (await mr(z.PRE_LOAD_CHATBOT, { botId: s, currPath: null, prevPath: null }, { flow: t, settings: r, styles: n, themes: o, plugins: A })).defaultPrevented || (c != null && c.loadConfig && (await c.loadConfig(s, t, r, n, o, a), i(!0)), (u = r.event) != null && u.rcbPostLoadChatBot && mr(z.POST_LOAD_CHATBOT, { botId: s, currPath: null, prevPath: null }, { flow: t, settings: r, styles: n, themes: o, plugins: A }));
|
|
1238
1239
|
})();
|
|
1239
1240
|
}, [o]), null;
|
|
1240
|
-
}, $n = ["Quickstart", "API Docs", "Examples", "Github", "Discord"],
|
|
1241
|
+
}, $n = ["Quickstart", "API Docs", "Examples", "Github", "Discord"], ja = { start: { message: "Hello, I am Tan Jin 👋! Welcome to React ChatBotify, I'm excited that you are using our chatbot 😊!", transition: { duration: 1e3 }, chatDisabled: !0, path: "show_options" }, show_options: { message: "It looks like you have not set up a conversation flow yet. No worries! Here are a few helpful things you can check out to get started:", options: $n, path: "process_options" }, prompt_again: { message: "Do you need any other help?", options: $n, path: "process_options" }, unknown_input: { message: "Sorry, I do not understand your message 😢! If you require further assistance, you may click on the Github option and open an issue there or visit our discord.", options: $n, path: "process_options" }, process_options: { transition: { duration: 0 }, path: (e) => {
|
|
1241
1242
|
let t = "";
|
|
1242
1243
|
switch (e.userInput) {
|
|
1243
1244
|
case "Quickstart":
|
|
@@ -1261,14 +1262,14 @@ const Hr = () => {
|
|
|
1261
1262
|
return e.injectMessage("Sit tight! I'll send you right there!"), setTimeout(() => {
|
|
1262
1263
|
window.open(t);
|
|
1263
1264
|
}, 1e3), "repeat";
|
|
1264
|
-
} }, repeat: { transition: { duration: 3e3 }, path: "prompt_again" } },
|
|
1265
|
-
const a = je(() => e || "rcb-" + Nn(), []), s = t && Object.keys(t).length !== 0 ? t :
|
|
1265
|
+
} }, repeat: { transition: { duration: 3e3 }, path: "prompt_again" } }, za = ({ id: e, flow: t, settings: r, styles: n, themes: o, plugins: A, slots: i }) => {
|
|
1266
|
+
const a = je(() => e || "rcb-" + Nn(), []), s = t && Object.keys(t).length !== 0 ? t : ja, c = r || {}, l = n || {}, d = A || [], [u, p] = ee(!1), g = _A(), y = ne(null), [f, v] = ee(o || []);
|
|
1266
1267
|
V(() => {
|
|
1267
1268
|
o && v(o);
|
|
1268
1269
|
}, [o]);
|
|
1269
|
-
const b = () => he(He, { children: [
|
|
1270
|
-
return he(g == null ? NA : He, { children: [
|
|
1271
|
-
},
|
|
1270
|
+
const b = () => he(He, { children: [D(Fa, { styleRootRef: y, id: a, flow: s, settings: c, styles: l, themes: f, plugins: d, setConfigLoaded: p }), u && D(Ua, { plugins: A, slots: i })] });
|
|
1271
|
+
return he(g == null ? NA : He, { children: [D("style", { ref: y }), D("div", { id: a, children: b() })] });
|
|
1272
|
+
}, qa = () => {
|
|
1272
1273
|
const { getBotId: e } = (() => {
|
|
1273
1274
|
const { botIdRef: t } = Ie();
|
|
1274
1275
|
return { getBotId: W(() => t.current, [t]) };
|
|
@@ -1286,7 +1287,7 @@ const Hr = () => {
|
|
|
1286
1287
|
const { endStreamMessage: e, injectMessage: t, removeMessage: r, simulateStreamMessage: n, streamMessage: o, messages: A, replaceMessages: i, getMessages: a } = Lt();
|
|
1287
1288
|
return { endStreamMessage: e, injectMessage: t, removeMessage: r, simulateStreamMessage: n, streamMessage: o, messages: A, replaceMessages: i, getMessages: a };
|
|
1288
1289
|
}, ot = (e, t) => {
|
|
1289
|
-
const { getBotId: r } =
|
|
1290
|
+
const { getBotId: r } = qa();
|
|
1290
1291
|
V(() => {
|
|
1291
1292
|
const n = (o) => {
|
|
1292
1293
|
o.detail.botId === r() && t(o);
|
|
@@ -1311,7 +1312,7 @@ function Mt(e) {
|
|
|
1311
1312
|
};
|
|
1312
1313
|
}
|
|
1313
1314
|
["address", "main", "div", "figure", "p", "pre"].forEach(Mt({ content: 1, type: 65 })), ["abbr", "b", "bdi", "bdo", "cite", "code", "data", "dfn", "em", "i", "kbd", "mark", "q", "ruby", "samp", "strong", "sub", "sup", "time", "u", "var"].forEach(Mt({ content: 8, type: 73 })), ["p", "pre"].forEach(Mt({ content: 8, type: 65 })), ["s", "small", "span", "del", "ins"].forEach(Mt({ content: 8, type: 9 })), ["article", "aside", "footer", "header", "nav", "section", "blockquote"].forEach(Mt({ content: 1, type: 67 })), ["h1", "h2", "h3", "h4", "h5", "h6"].forEach(Mt({ content: 8, type: 69 })), ["audio", "canvas", "iframe", "img", "video"].forEach(Mt({ type: 89 }));
|
|
1314
|
-
const br = Object.freeze(wr),
|
|
1315
|
+
const br = Object.freeze(wr), Ga = ["applet", "base", "body", "command", "embed", "frame", "frameset", "head", "html", "link", "meta", "noscript", "object", "script", "style", "title"], Wa = Object.keys(br).filter((e) => e !== "canvas" && e !== "iframe"), lo = Object.freeze({ alt: 1, cite: 1, class: 1, colspan: 3, controls: 4, datetime: 1, default: 4, disabled: 4, dir: 1, height: 1, href: 1, id: 1, kind: 1, label: 1, lang: 1, loading: 1, loop: 4, media: 1, muted: 4, poster: 1, rel: 1, role: 1, rowspan: 3, scope: 1, sizes: 1, span: 3, start: 3, style: 5, src: 1, srclang: 1, srcset: 1, tabindex: 1, target: 1, title: 1, type: 1, width: 1 }), Ya = Object.freeze({ class: "className", colspan: "colSpan", datetime: "dateTime", rowspan: "rowSpan", srclang: "srcLang", srcset: "srcSet", tabindex: "tabIndex" });
|
|
1315
1316
|
function Hn() {
|
|
1316
1317
|
return Hn = Object.assign || function(e) {
|
|
1317
1318
|
for (var t = 1; t < arguments.length; t++) {
|
|
@@ -1325,7 +1326,7 @@ function UA({ attributes: e = {}, className: t, children: r = null, selfClose: n
|
|
|
1325
1326
|
const A = o;
|
|
1326
1327
|
return n ? T.createElement(A, Hn({ className: t }, e)) : T.createElement(A, Hn({ className: t }, e), r);
|
|
1327
1328
|
}
|
|
1328
|
-
class
|
|
1329
|
+
class Ka {
|
|
1329
1330
|
attribute(t, r) {
|
|
1330
1331
|
return r;
|
|
1331
1332
|
}
|
|
@@ -1333,11 +1334,11 @@ class Ya {
|
|
|
1333
1334
|
return r;
|
|
1334
1335
|
}
|
|
1335
1336
|
}
|
|
1336
|
-
function
|
|
1337
|
+
function Va(e) {
|
|
1337
1338
|
return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
|
|
1338
1339
|
}
|
|
1339
1340
|
var co, uo;
|
|
1340
|
-
const
|
|
1341
|
+
const Xa = Va((function() {
|
|
1341
1342
|
if (uo) return co;
|
|
1342
1343
|
uo = 1;
|
|
1343
1344
|
var e = /["'&<>]/;
|
|
@@ -1373,23 +1374,23 @@ const Va = Ka((function() {
|
|
|
1373
1374
|
function Et(e, t, r) {
|
|
1374
1375
|
return t in e ? Object.defineProperty(e, t, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = r, e;
|
|
1375
1376
|
}
|
|
1376
|
-
const
|
|
1377
|
-
class
|
|
1377
|
+
const Ja = /(url|image|image-set)\(/i;
|
|
1378
|
+
class Za extends Ka {
|
|
1378
1379
|
attribute(t, r) {
|
|
1379
1380
|
return t === "style" && Object.keys(r).forEach((n) => {
|
|
1380
|
-
String(r[n]).match(
|
|
1381
|
+
String(r[n]).match(Ja) && delete r[n];
|
|
1381
1382
|
}), r;
|
|
1382
1383
|
}
|
|
1383
1384
|
}
|
|
1384
|
-
const
|
|
1385
|
-
function
|
|
1385
|
+
const $a = /^<(!doctype|(html|head|body)(\s|>))/i, es = /^(aria-|data-|\w+:)/iu, ts = /{{{(\w+)\/?}}}/;
|
|
1386
|
+
function ns() {
|
|
1386
1387
|
if (!(typeof window > "u" || typeof document > "u")) return document.implementation.createHTMLDocument("Interweave");
|
|
1387
1388
|
}
|
|
1388
1389
|
let FA = class {
|
|
1389
1390
|
constructor(e, t = {}, r = [], n = []) {
|
|
1390
1391
|
var o;
|
|
1391
1392
|
if (Et(this, "allowed", void 0), Et(this, "banned", void 0), Et(this, "blocked", void 0), Et(this, "container", void 0), Et(this, "content", []), Et(this, "props", void 0), Et(this, "matchers", void 0), Et(this, "filters", void 0), Et(this, "keyIndex", void 0), e && typeof e != "string") throw new TypeError("Interweave parser requires a valid string.");
|
|
1392
|
-
this.props = t, this.matchers = r, this.filters = [...n, new
|
|
1393
|
+
this.props = t, this.matchers = r, this.filters = [...n, new Za()], this.keyIndex = -1, this.container = this.createContainer(e || ""), this.allowed = new Set((o = t.allowList) !== null && o !== void 0 ? o : Wa), this.banned = new Set(Ga), this.blocked = new Set(t.blockList);
|
|
1393
1394
|
}
|
|
1394
1395
|
applyAttributeFilters(e, t) {
|
|
1395
1396
|
return this.filters.reduce((r, n) => r !== null && typeof n.attribute == "function" ? n.attribute(e, r) : r, t);
|
|
@@ -1426,21 +1427,21 @@ let FA = class {
|
|
|
1426
1427
|
}
|
|
1427
1428
|
createContainer(e) {
|
|
1428
1429
|
var t;
|
|
1429
|
-
const r = (typeof global < "u" && global.INTERWEAVE_SSR_POLYFILL ||
|
|
1430
|
+
const r = (typeof global < "u" && global.INTERWEAVE_SSR_POLYFILL || ns)();
|
|
1430
1431
|
if (!r) return;
|
|
1431
1432
|
const n = (t = this.props.containerTagName) !== null && t !== void 0 ? t : "body", o = n === "body" || n === "fragment" ? r.body : r.createElement(n);
|
|
1432
|
-
if (e.match(
|
|
1433
|
+
if (e.match($a))
|
|
1433
1434
|
throw new Error("HTML documents as Interweave content are not supported.");
|
|
1434
|
-
return o.innerHTML = this.convertLineBreaks(this.props.escapeHtml ?
|
|
1435
|
+
return o.innerHTML = this.convertLineBreaks(this.props.escapeHtml ? Xa(e) : e), o;
|
|
1435
1436
|
}
|
|
1436
1437
|
extractAttributes(e) {
|
|
1437
1438
|
const { allowAttributes: t } = this.props, r = {};
|
|
1438
1439
|
let n = 0;
|
|
1439
1440
|
return e.nodeType === 1 && e.attributes && ([...e.attributes].forEach((o) => {
|
|
1440
1441
|
const { name: A, value: i } = o, a = A.toLowerCase(), s = lo[a] || lo[A];
|
|
1441
|
-
if (!this.isSafe(e) || !a.match(
|
|
1442
|
+
if (!this.isSafe(e) || !a.match(es) && (!t && (!s || s === 2) || a.startsWith("on") || i.replace(/(\s|\0|�([9AD]);)/, "").match(/(javascript|vbscript|livescript|xss):/i))) return;
|
|
1442
1443
|
let c = a === "style" ? this.extractStyleAttribute(e) : i;
|
|
1443
|
-
s === 4 ? c = !0 : s === 3 ? c = Number.parseFloat(String(c)) : s !== 5 && (c = String(c)), r[
|
|
1444
|
+
s === 4 ? c = !0 : s === 3 ? c = Number.parseFloat(String(c)) : s !== 5 && (c = String(c)), r[Ya[a] || a] = this.applyAttributeFilters(a, c), n += 1;
|
|
1444
1445
|
}), n !== 0) ? r : null;
|
|
1445
1446
|
}
|
|
1446
1447
|
extractStyleAttribute(e) {
|
|
@@ -1506,7 +1507,7 @@ let FA = class {
|
|
|
1506
1507
|
if (!e.includes("{{{")) return e;
|
|
1507
1508
|
const r = [];
|
|
1508
1509
|
let n = e, o = null;
|
|
1509
|
-
for (; o = n.match(
|
|
1510
|
+
for (; o = n.match(ts); ) {
|
|
1510
1511
|
const [A, i] = o, a = o.index, s = A.includes("/");
|
|
1511
1512
|
if (!t[i]) throw new Error(`Token "${i}" found but no matching element to replace with.`);
|
|
1512
1513
|
a > 0 && (r.push(n.slice(0, a)), n = n.slice(a));
|
|
@@ -1523,7 +1524,7 @@ let FA = class {
|
|
|
1523
1524
|
return n.length > 0 && r.push(n), r.length === 0 ? "" : r.length === 1 && typeof r[0] == "string" ? r[0] : r;
|
|
1524
1525
|
}
|
|
1525
1526
|
};
|
|
1526
|
-
function
|
|
1527
|
+
function rs(e) {
|
|
1527
1528
|
var t;
|
|
1528
1529
|
const { attributes: r, className: n, containerTagName: o, content: A, emptyContent: i, parsedContent: a, tagName: s, noWrap: c } = e, l = (t = o ?? s) !== null && t !== void 0 ? t : "span", d = l === "fragment" || c;
|
|
1529
1530
|
let u;
|
|
@@ -1534,7 +1535,7 @@ function ns(e) {
|
|
|
1534
1535
|
}
|
|
1535
1536
|
return u || (u = i), d ? T.createElement(T.Fragment, null, u) : T.createElement(UA, { attributes: r, className: n, tagName: l }, u);
|
|
1536
1537
|
}
|
|
1537
|
-
function
|
|
1538
|
+
function os(e) {
|
|
1538
1539
|
const { attributes: t, className: r, content: n = "", disableFilters: o = !1, disableMatchers: A = !1, emptyContent: i = null, filters: a = [], matchers: s = [], onAfterParse: c = null, onBeforeParse: l = null, tagName: d = "span", noWrap: u = !1, ...p } = e, g = A ? [] : s, y = o ? [] : a, f = l ? [l] : [], v = c ? [c] : [];
|
|
1539
1540
|
g.forEach((P) => {
|
|
1540
1541
|
P.onBeforeParse && f.push(P.onBeforeParse.bind(P)), P.onAfterParse && v.push(P.onAfterParse.bind(P));
|
|
@@ -1548,14 +1549,14 @@ function rs(e) {
|
|
|
1548
1549
|
if (!Array.isArray(C)) throw new TypeError("Interweave `onAfterParse` must return an array of strings and React elements.");
|
|
1549
1550
|
return C;
|
|
1550
1551
|
}, h.parse());
|
|
1551
|
-
return T.createElement(
|
|
1552
|
+
return T.createElement(rs, { attributes: t, className: r, containerTagName: e.containerTagName, emptyContent: i, noWrap: u, parsedContent: E.length === 0 ? void 0 : E, tagName: d });
|
|
1552
1553
|
}
|
|
1553
|
-
const
|
|
1554
|
+
const As = ({ children: e }) => D("div", { style: { whiteSpace: "normal" }, children: D(os, { content: typeof e == "string" ? e : "" }) }), is = { autoConfig: !0 }, po = (e, t, r) => {
|
|
1554
1555
|
var n;
|
|
1555
1556
|
if (!e.detail.currPath) return !1;
|
|
1556
1557
|
const o = t[e.detail.currPath];
|
|
1557
1558
|
return !!o && (((n = o.renderHtml) == null ? void 0 : n.map((A) => A.toUpperCase()).includes(r)) ?? !1);
|
|
1558
|
-
},
|
|
1559
|
+
}, as = (e) => {
|
|
1559
1560
|
const t = [];
|
|
1560
1561
|
let r = "", n = !1;
|
|
1561
1562
|
for (let o = 0; o < e.length; o++) {
|
|
@@ -1563,8 +1564,8 @@ const os = ({ children: e }) => S("div", { style: { whiteSpace: "normal" }, chil
|
|
|
1563
1564
|
A === "<" ? n ? (t.push(r), r = A) : (n = !0, r = A) : A === ">" ? (r += A, t.push(r), r = "", n = !1) : n ? r += A : t.push(A);
|
|
1564
1565
|
}
|
|
1565
1566
|
return r !== "" && t.push(r), t;
|
|
1566
|
-
},
|
|
1567
|
-
const { getFlow: t } = Gn(), { messages: r, replaceMessages: n } = vn(), { settings: o } = LA(), { hasChatHistoryLoaded: A } = HA(), i = { ...e, ...
|
|
1567
|
+
}, ss = (e) => {
|
|
1568
|
+
const { getFlow: t } = Gn(), { messages: r, replaceMessages: n } = vn(), { settings: o } = LA(), { hasChatHistoryLoaded: A } = HA(), i = { ...e, ...is }, a = i.htmlComponent ? i.htmlComponent : As;
|
|
1568
1569
|
V(() => {
|
|
1569
1570
|
var l, d;
|
|
1570
1571
|
if (A) {
|
|
@@ -1579,20 +1580,20 @@ const os = ({ children: e }) => S("div", { style: { whiteSpace: "normal" }, chil
|
|
|
1579
1580
|
const s = async (l) => {
|
|
1580
1581
|
var d;
|
|
1581
1582
|
const u = (d = l.data.message) == null ? void 0 : d.sender.toUpperCase();
|
|
1582
|
-
typeof l.data.message.content == "string" && po(l, t(), u) && (l.type === "rcb-start-simulate-stream-message" && (l.data.simulateStreamChunker =
|
|
1583
|
+
typeof l.data.message.content == "string" && po(l, t(), u) && (l.type === "rcb-start-simulate-stream-message" && (l.data.simulateStreamChunker = as), l.data.message.contentWrapper = a, l.data.message.tags || (l.data.message.tags = []), l.data.message.tags.push("rcb-html-renderer-plugin:parsed"));
|
|
1583
1584
|
};
|
|
1584
1585
|
ot(z.PRE_INJECT_MESSAGE, s), ot(z.CHUNK_STREAM_MESSAGE, s), ot(z.START_STREAM_MESSAGE, s), ot(z.START_SIMULATE_STREAM_MESSAGE, s), ot(z.START_SPEAK_AUDIO, async (l) => {
|
|
1585
1586
|
po(l, t(), "BOT") && (l.data.textToRead = ((d) => typeof window.DOMParser < "u" ? new DOMParser().parseFromString(d, "text/html").body.textContent || "" : d.replace(/<\/?[^>]+(>|$)/g, ""))(l.data.textToRead));
|
|
1586
1587
|
});
|
|
1587
1588
|
const c = { name: "@rcb-plugins/html-renderer" };
|
|
1588
1589
|
return i != null && i.autoConfig && (c.settings = { event: { rcbPreInjectMessage: !0, rcbChunkStreamMessage: !0, rcbStartSimulateStreamMessage: !0, rcbStartStreamMessage: !0, rcbStartSpeakAudio: !0 } }), c;
|
|
1589
|
-
},
|
|
1590
|
+
}, ls = /^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u, cs = /^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u, us = {};
|
|
1590
1591
|
function fo(e, t) {
|
|
1591
|
-
return (
|
|
1592
|
+
return (us.jsx ? cs : ls).test(e);
|
|
1592
1593
|
}
|
|
1593
|
-
const
|
|
1594
|
+
const ds = /[ \t\n\f\r]/g;
|
|
1594
1595
|
function go(e) {
|
|
1595
|
-
return e.replace(
|
|
1596
|
+
return e.replace(ds, "") === "";
|
|
1596
1597
|
}
|
|
1597
1598
|
class cn {
|
|
1598
1599
|
constructor(t, r, n) {
|
|
@@ -1615,10 +1616,10 @@ class tt {
|
|
|
1615
1616
|
}
|
|
1616
1617
|
}
|
|
1617
1618
|
tt.prototype.space = null, tt.prototype.boolean = !1, tt.prototype.booleanish = !1, tt.prototype.overloadedBoolean = !1, tt.prototype.number = !1, tt.prototype.commaSeparated = !1, tt.prototype.spaceSeparated = !1, tt.prototype.commaOrSpaceSeparated = !1, tt.prototype.mustUseProperty = !1, tt.prototype.defined = !1;
|
|
1618
|
-
let
|
|
1619
|
+
let ps = 0;
|
|
1619
1620
|
const re = Ht(), xe = Ht(), zA = Ht(), R = Ht(), ye = Ht(), Zt = Ht(), Xe = Ht();
|
|
1620
1621
|
function Ht() {
|
|
1621
|
-
return 2 ** ++
|
|
1622
|
+
return 2 ** ++ps;
|
|
1622
1623
|
}
|
|
1623
1624
|
const kr = Object.freeze(Object.defineProperty({ __proto__: null, boolean: re, booleanish: xe, commaOrSpaceSeparated: Xe, commaSeparated: Zt, number: R, overloadedBoolean: zA, spaceSeparated: ye }, Symbol.toStringTag, { value: "Module" })), er = Object.keys(kr);
|
|
1624
1625
|
class zr extends tt {
|
|
@@ -1634,11 +1635,11 @@ function ho(e, t, r) {
|
|
|
1634
1635
|
r && (e[t] = r);
|
|
1635
1636
|
}
|
|
1636
1637
|
zr.prototype.defined = !0;
|
|
1637
|
-
const
|
|
1638
|
+
const fs = {}.hasOwnProperty;
|
|
1638
1639
|
function nn(e) {
|
|
1639
1640
|
const t = {}, r = {};
|
|
1640
1641
|
let n;
|
|
1641
|
-
for (n in e.properties) if (
|
|
1642
|
+
for (n in e.properties) if (fs.call(e.properties, n)) {
|
|
1642
1643
|
const o = e.properties[n], A = new zr(n, e.transform(e.attributes || {}, n), o, e.space);
|
|
1643
1644
|
e.mustUseProperty && e.mustUseProperty.includes(n) && (A.mustUseProperty = !0), t[n] = A, r[Er(n)] = n, r[Er(A.attribute)] = n;
|
|
1644
1645
|
}
|
|
@@ -1651,18 +1652,18 @@ function WA(e, t) {
|
|
|
1651
1652
|
function YA(e, t) {
|
|
1652
1653
|
return WA(e, t.toLowerCase());
|
|
1653
1654
|
}
|
|
1654
|
-
const KA = nn({ space: "xmlns", attributes: { xmlnsxlink: "xmlns:xlink" }, transform: YA, properties: { xmlns: null, xmlnsXLink: null } }), VA = nn({ transform: (e, t) => t === "role" ? t : "aria-" + t.slice(4).toLowerCase(), properties: { ariaActiveDescendant: null, ariaAtomic: xe, ariaAutoComplete: null, ariaBusy: xe, ariaChecked: xe, ariaColCount: R, ariaColIndex: R, ariaColSpan: R, ariaControls: ye, ariaCurrent: null, ariaDescribedBy: ye, ariaDetails: null, ariaDisabled: xe, ariaDropEffect: ye, ariaErrorMessage: null, ariaExpanded: xe, ariaFlowTo: ye, ariaGrabbed: xe, ariaHasPopup: null, ariaHidden: xe, ariaInvalid: null, ariaKeyShortcuts: null, ariaLabel: null, ariaLabelledBy: ye, ariaLevel: R, ariaLive: null, ariaModal: xe, ariaMultiLine: xe, ariaMultiSelectable: xe, ariaOrientation: null, ariaOwns: ye, ariaPlaceholder: null, ariaPosInSet: R, ariaPressed: xe, ariaReadOnly: xe, ariaRelevant: null, ariaRequired: xe, ariaRoleDescription: ye, ariaRowCount: R, ariaRowIndex: R, ariaRowSpan: R, ariaSelected: xe, ariaSetSize: R, ariaSort: null, ariaValueMax: R, ariaValueMin: R, ariaValueNow: R, ariaValueText: null, role: null } }), fs = nn({ space: "html", attributes: { acceptcharset: "accept-charset", classname: "class", htmlfor: "for", httpequiv: "http-equiv" }, transform: YA, mustUseProperty: ["checked", "multiple", "muted", "selected"], properties: { abbr: null, accept: Zt, acceptCharset: ye, accessKey: ye, action: null, allow: null, allowFullScreen: re, allowPaymentRequest: re, allowUserMedia: re, alt: null, as: null, async: re, autoCapitalize: null, autoComplete: ye, autoFocus: re, autoPlay: re, blocking: ye, capture: null, charSet: null, checked: re, cite: null, className: ye, cols: R, colSpan: null, content: null, contentEditable: xe, controls: re, controlsList: ye, coords: R | Zt, crossOrigin: null, data: null, dateTime: null, decoding: null, default: re, defer: re, dir: null, dirName: null, disabled: re, download: zA, draggable: xe, encType: null, enterKeyHint: null, fetchPriority: null, form: null, formAction: null, formEncType: null, formMethod: null, formNoValidate: re, formTarget: null, headers: ye, height: R, hidden: re, high: R, href: null, hrefLang: null, htmlFor: ye, httpEquiv: ye, id: null, imageSizes: null, imageSrcSet: null, inert: re, inputMode: null, integrity: null, is: null, isMap: re, itemId: null, itemProp: ye, itemRef: ye, itemScope: re, itemType: ye, kind: null, label: null, lang: null, language: null, list: null, loading: null, loop: re, low: R, manifest: null, max: null, maxLength: R, media: null, method: null, min: null, minLength: R, multiple: re, muted: re, name: null, nonce: null, noModule: re, noValidate: re, onAbort: null, onAfterPrint: null, onAuxClick: null, onBeforeMatch: null, onBeforePrint: null, onBeforeToggle: null, onBeforeUnload: null, onBlur: null, onCancel: null, onCanPlay: null, onCanPlayThrough: null, onChange: null, onClick: null, onClose: null, onContextLost: null, onContextMenu: null, onContextRestored: null, onCopy: null, onCueChange: null, onCut: null, onDblClick: null, onDrag: null, onDragEnd: null, onDragEnter: null, onDragExit: null, onDragLeave: null, onDragOver: null, onDragStart: null, onDrop: null, onDurationChange: null, onEmptied: null, onEnded: null, onError: null, onFocus: null, onFormData: null, onHashChange: null, onInput: null, onInvalid: null, onKeyDown: null, onKeyPress: null, onKeyUp: null, onLanguageChange: null, onLoad: null, onLoadedData: null, onLoadedMetadata: null, onLoadEnd: null, onLoadStart: null, onMessage: null, onMessageError: null, onMouseDown: null, onMouseEnter: null, onMouseLeave: null, onMouseMove: null, onMouseOut: null, onMouseOver: null, onMouseUp: null, onOffline: null, onOnline: null, onPageHide: null, onPageShow: null, onPaste: null, onPause: null, onPlay: null, onPlaying: null, onPopState: null, onProgress: null, onRateChange: null, onRejectionHandled: null, onReset: null, onResize: null, onScroll: null, onScrollEnd: null, onSecurityPolicyViolation: null, onSeeked: null, onSeeking: null, onSelect: null, onSlotChange: null, onStalled: null, onStorage: null, onSubmit: null, onSuspend: null, onTimeUpdate: null, onToggle: null, onUnhandledRejection: null, onUnload: null, onVolumeChange: null, onWaiting: null, onWheel: null, open: re, optimum: R, pattern: null, ping: ye, placeholder: null, playsInline: re, popover: null, popoverTarget: null, popoverTargetAction: null, poster: null, preload: null, readOnly: re, referrerPolicy: null, rel: ye, required: re, reversed: re, rows: R, rowSpan: R, sandbox: ye, scope: null, scoped: re, seamless: re, selected: re, shadowRootClonable: re, shadowRootDelegatesFocus: re, shadowRootMode: null, shape: null, size: R, sizes: null, slot: null, span: R, spellCheck: xe, src: null, srcDoc: null, srcLang: null, srcSet: null, start: R, step: null, style: null, tabIndex: R, target: null, title: null, translate: null, type: null, typeMustMatch: re, useMap: null, value: xe, width: R, wrap: null, writingSuggestions: null, align: null, aLink: null, archive: ye, axis: null, background: null, bgColor: null, border: R, borderColor: null, bottomMargin: R, cellPadding: null, cellSpacing: null, char: null, charOff: null, classId: null, clear: null, code: null, codeBase: null, codeType: null, color: null, compact: re, declare: re, event: null, face: null, frame: null, frameBorder: null, hSpace: R, leftMargin: R, link: null, longDesc: null, lowSrc: null, marginHeight: R, marginWidth: R, noResize: re, noHref: re, noShade: re, noWrap: re, object: null, profile: null, prompt: null, rev: null, rightMargin: R, rules: null, scheme: null, scrolling: xe, standby: null, summary: null, text: null, topMargin: R, valueType: null, version: null, vAlign: null, vLink: null, vSpace: R, allowTransparency: null, autoCorrect: null, autoSave: null, disablePictureInPicture: re, disableRemotePlayback: re, prefix: null, property: null, results: R, security: null, unselectable: null } }), gs = nn({ space: "svg", attributes: { accentHeight: "accent-height", alignmentBaseline: "alignment-baseline", arabicForm: "arabic-form", baselineShift: "baseline-shift", capHeight: "cap-height", className: "class", clipPath: "clip-path", clipRule: "clip-rule", colorInterpolation: "color-interpolation", colorInterpolationFilters: "color-interpolation-filters", colorProfile: "color-profile", colorRendering: "color-rendering", crossOrigin: "crossorigin", dataType: "datatype", dominantBaseline: "dominant-baseline", enableBackground: "enable-background", fillOpacity: "fill-opacity", fillRule: "fill-rule", floodColor: "flood-color", floodOpacity: "flood-opacity", fontFamily: "font-family", fontSize: "font-size", fontSizeAdjust: "font-size-adjust", fontStretch: "font-stretch", fontStyle: "font-style", fontVariant: "font-variant", fontWeight: "font-weight", glyphName: "glyph-name", glyphOrientationHorizontal: "glyph-orientation-horizontal", glyphOrientationVertical: "glyph-orientation-vertical", hrefLang: "hreflang", horizAdvX: "horiz-adv-x", horizOriginX: "horiz-origin-x", horizOriginY: "horiz-origin-y", imageRendering: "image-rendering", letterSpacing: "letter-spacing", lightingColor: "lighting-color", markerEnd: "marker-end", markerMid: "marker-mid", markerStart: "marker-start", navDown: "nav-down", navDownLeft: "nav-down-left", navDownRight: "nav-down-right", navLeft: "nav-left", navNext: "nav-next", navPrev: "nav-prev", navRight: "nav-right", navUp: "nav-up", navUpLeft: "nav-up-left", navUpRight: "nav-up-right", onAbort: "onabort", onActivate: "onactivate", onAfterPrint: "onafterprint", onBeforePrint: "onbeforeprint", onBegin: "onbegin", onCancel: "oncancel", onCanPlay: "oncanplay", onCanPlayThrough: "oncanplaythrough", onChange: "onchange", onClick: "onclick", onClose: "onclose", onCopy: "oncopy", onCueChange: "oncuechange", onCut: "oncut", onDblClick: "ondblclick", onDrag: "ondrag", onDragEnd: "ondragend", onDragEnter: "ondragenter", onDragExit: "ondragexit", onDragLeave: "ondragleave", onDragOver: "ondragover", onDragStart: "ondragstart", onDrop: "ondrop", onDurationChange: "ondurationchange", onEmptied: "onemptied", onEnd: "onend", onEnded: "onended", onError: "onerror", onFocus: "onfocus", onFocusIn: "onfocusin", onFocusOut: "onfocusout", onHashChange: "onhashchange", onInput: "oninput", onInvalid: "oninvalid", onKeyDown: "onkeydown", onKeyPress: "onkeypress", onKeyUp: "onkeyup", onLoad: "onload", onLoadedData: "onloadeddata", onLoadedMetadata: "onloadedmetadata", onLoadStart: "onloadstart", onMessage: "onmessage", onMouseDown: "onmousedown", onMouseEnter: "onmouseenter", onMouseLeave: "onmouseleave", onMouseMove: "onmousemove", onMouseOut: "onmouseout", onMouseOver: "onmouseover", onMouseUp: "onmouseup", onMouseWheel: "onmousewheel", onOffline: "onoffline", onOnline: "ononline", onPageHide: "onpagehide", onPageShow: "onpageshow", onPaste: "onpaste", onPause: "onpause", onPlay: "onplay", onPlaying: "onplaying", onPopState: "onpopstate", onProgress: "onprogress", onRateChange: "onratechange", onRepeat: "onrepeat", onReset: "onreset", onResize: "onresize", onScroll: "onscroll", onSeeked: "onseeked", onSeeking: "onseeking", onSelect: "onselect", onShow: "onshow", onStalled: "onstalled", onStorage: "onstorage", onSubmit: "onsubmit", onSuspend: "onsuspend", onTimeUpdate: "ontimeupdate", onToggle: "ontoggle", onUnload: "onunload", onVolumeChange: "onvolumechange", onWaiting: "onwaiting", onZoom: "onzoom", overlinePosition: "overline-position", overlineThickness: "overline-thickness", paintOrder: "paint-order", panose1: "panose-1", pointerEvents: "pointer-events", referrerPolicy: "referrerpolicy", renderingIntent: "rendering-intent", shapeRendering: "shape-rendering", stopColor: "stop-color", stopOpacity: "stop-opacity", strikethroughPosition: "strikethrough-position", strikethroughThickness: "strikethrough-thickness", strokeDashArray: "stroke-dasharray", strokeDashOffset: "stroke-dashoffset", strokeLineCap: "stroke-linecap", strokeLineJoin: "stroke-linejoin", strokeMiterLimit: "stroke-miterlimit", strokeOpacity: "stroke-opacity", strokeWidth: "stroke-width", tabIndex: "tabindex", textAnchor: "text-anchor", textDecoration: "text-decoration", textRendering: "text-rendering", transformOrigin: "transform-origin", typeOf: "typeof", underlinePosition: "underline-position", underlineThickness: "underline-thickness", unicodeBidi: "unicode-bidi", unicodeRange: "unicode-range", unitsPerEm: "units-per-em", vAlphabetic: "v-alphabetic", vHanging: "v-hanging", vIdeographic: "v-ideographic", vMathematical: "v-mathematical", vectorEffect: "vector-effect", vertAdvY: "vert-adv-y", vertOriginX: "vert-origin-x", vertOriginY: "vert-origin-y", wordSpacing: "word-spacing", writingMode: "writing-mode", xHeight: "x-height", playbackOrder: "playbackorder", timelineBegin: "timelinebegin" }, transform: WA, properties: { about: Xe, accentHeight: R, accumulate: null, additive: null, alignmentBaseline: null, alphabetic: R, amplitude: R, arabicForm: null, ascent: R, attributeName: null, attributeType: null, azimuth: R, bandwidth: null, baselineShift: null, baseFrequency: null, baseProfile: null, bbox: null, begin: null, bias: R, by: null, calcMode: null, capHeight: R, className: ye, clip: null, clipPath: null, clipPathUnits: null, clipRule: null, color: null, colorInterpolation: null, colorInterpolationFilters: null, colorProfile: null, colorRendering: null, content: null, contentScriptType: null, contentStyleType: null, crossOrigin: null, cursor: null, cx: null, cy: null, d: null, dataType: null, defaultAction: null, descent: R, diffuseConstant: R, direction: null, display: null, dur: null, divisor: R, dominantBaseline: null, download: re, dx: null, dy: null, edgeMode: null, editable: null, elevation: R, enableBackground: null, end: null, event: null, exponent: R, externalResourcesRequired: null, fill: null, fillOpacity: R, fillRule: null, filter: null, filterRes: null, filterUnits: null, floodColor: null, floodOpacity: null, focusable: null, focusHighlight: null, fontFamily: null, fontSize: null, fontSizeAdjust: null, fontStretch: null, fontStyle: null, fontVariant: null, fontWeight: null, format: null, fr: null, from: null, fx: null, fy: null, g1: Zt, g2: Zt, glyphName: Zt, glyphOrientationHorizontal: null, glyphOrientationVertical: null, glyphRef: null, gradientTransform: null, gradientUnits: null, handler: null, hanging: R, hatchContentUnits: null, hatchUnits: null, height: null, href: null, hrefLang: null, horizAdvX: R, horizOriginX: R, horizOriginY: R, id: null, ideographic: R, imageRendering: null, initialVisibility: null, in: null, in2: null, intercept: R, k: R, k1: R, k2: R, k3: R, k4: R, kernelMatrix: Xe, kernelUnitLength: null, keyPoints: null, keySplines: null, keyTimes: null, kerning: null, lang: null, lengthAdjust: null, letterSpacing: null, lightingColor: null, limitingConeAngle: R, local: null, markerEnd: null, markerMid: null, markerStart: null, markerHeight: null, markerUnits: null, markerWidth: null, mask: null, maskContentUnits: null, maskUnits: null, mathematical: null, max: null, media: null, mediaCharacterEncoding: null, mediaContentEncodings: null, mediaSize: R, mediaTime: null, method: null, min: null, mode: null, name: null, navDown: null, navDownLeft: null, navDownRight: null, navLeft: null, navNext: null, navPrev: null, navRight: null, navUp: null, navUpLeft: null, navUpRight: null, numOctaves: null, observer: null, offset: null, onAbort: null, onActivate: null, onAfterPrint: null, onBeforePrint: null, onBegin: null, onCancel: null, onCanPlay: null, onCanPlayThrough: null, onChange: null, onClick: null, onClose: null, onCopy: null, onCueChange: null, onCut: null, onDblClick: null, onDrag: null, onDragEnd: null, onDragEnter: null, onDragExit: null, onDragLeave: null, onDragOver: null, onDragStart: null, onDrop: null, onDurationChange: null, onEmptied: null, onEnd: null, onEnded: null, onError: null, onFocus: null, onFocusIn: null, onFocusOut: null, onHashChange: null, onInput: null, onInvalid: null, onKeyDown: null, onKeyPress: null, onKeyUp: null, onLoad: null, onLoadedData: null, onLoadedMetadata: null, onLoadStart: null, onMessage: null, onMouseDown: null, onMouseEnter: null, onMouseLeave: null, onMouseMove: null, onMouseOut: null, onMouseOver: null, onMouseUp: null, onMouseWheel: null, onOffline: null, onOnline: null, onPageHide: null, onPageShow: null, onPaste: null, onPause: null, onPlay: null, onPlaying: null, onPopState: null, onProgress: null, onRateChange: null, onRepeat: null, onReset: null, onResize: null, onScroll: null, onSeeked: null, onSeeking: null, onSelect: null, onShow: null, onStalled: null, onStorage: null, onSubmit: null, onSuspend: null, onTimeUpdate: null, onToggle: null, onUnload: null, onVolumeChange: null, onWaiting: null, onZoom: null, opacity: null, operator: null, order: null, orient: null, orientation: null, origin: null, overflow: null, overlay: null, overlinePosition: R, overlineThickness: R, paintOrder: null, panose1: null, path: null, pathLength: R, patternContentUnits: null, patternTransform: null, patternUnits: null, phase: null, ping: ye, pitch: null, playbackOrder: null, pointerEvents: null, points: null, pointsAtX: R, pointsAtY: R, pointsAtZ: R, preserveAlpha: null, preserveAspectRatio: null, primitiveUnits: null, propagate: null, property: Xe, r: null, radius: null, referrerPolicy: null, refX: null, refY: null, rel: Xe, rev: Xe, renderingIntent: null, repeatCount: null, repeatDur: null, requiredExtensions: Xe, requiredFeatures: Xe, requiredFonts: Xe, requiredFormats: Xe, resource: null, restart: null, result: null, rotate: null, rx: null, ry: null, scale: null, seed: null, shapeRendering: null, side: null, slope: null, snapshotTime: null, specularConstant: R, specularExponent: R, spreadMethod: null, spacing: null, startOffset: null, stdDeviation: null, stemh: null, stemv: null, stitchTiles: null, stopColor: null, stopOpacity: null, strikethroughPosition: R, strikethroughThickness: R, string: null, stroke: null, strokeDashArray: Xe, strokeDashOffset: null, strokeLineCap: null, strokeLineJoin: null, strokeMiterLimit: R, strokeOpacity: R, strokeWidth: null, style: null, surfaceScale: R, syncBehavior: null, syncBehaviorDefault: null, syncMaster: null, syncTolerance: null, syncToleranceDefault: null, systemLanguage: Xe, tabIndex: R, tableValues: null, target: null, targetX: R, targetY: R, textAnchor: null, textDecoration: null, textRendering: null, textLength: null, timelineBegin: null, title: null, transformBehavior: null, type: null, typeOf: Xe, to: null, transform: null, transformOrigin: null, u1: null, u2: null, underlinePosition: R, underlineThickness: R, unicode: null, unicodeBidi: null, unicodeRange: null, unitsPerEm: R, values: null, vAlphabetic: R, vMathematical: R, vectorEffect: null, vHanging: R, vIdeographic: R, version: null, vertAdvY: R, vertOriginX: R, vertOriginY: R, viewBox: null, viewTarget: null, visibility: null, width: null, widths: null, wordSpacing: null, writingMode: null, x: null, x1: null, x2: null, xChannelSelector: null, xHeight: R, y: null, y1: null, y2: null, yChannelSelector: null, z: null, zoomAndPan: null } }), hs = /^data[-\w.:]+$/i, mo = /-[a-z]/g, ms = /[A-Z]/g;
|
|
1655
|
-
function
|
|
1655
|
+
const KA = nn({ space: "xmlns", attributes: { xmlnsxlink: "xmlns:xlink" }, transform: YA, properties: { xmlns: null, xmlnsXLink: null } }), VA = nn({ transform: (e, t) => t === "role" ? t : "aria-" + t.slice(4).toLowerCase(), properties: { ariaActiveDescendant: null, ariaAtomic: xe, ariaAutoComplete: null, ariaBusy: xe, ariaChecked: xe, ariaColCount: R, ariaColIndex: R, ariaColSpan: R, ariaControls: ye, ariaCurrent: null, ariaDescribedBy: ye, ariaDetails: null, ariaDisabled: xe, ariaDropEffect: ye, ariaErrorMessage: null, ariaExpanded: xe, ariaFlowTo: ye, ariaGrabbed: xe, ariaHasPopup: null, ariaHidden: xe, ariaInvalid: null, ariaKeyShortcuts: null, ariaLabel: null, ariaLabelledBy: ye, ariaLevel: R, ariaLive: null, ariaModal: xe, ariaMultiLine: xe, ariaMultiSelectable: xe, ariaOrientation: null, ariaOwns: ye, ariaPlaceholder: null, ariaPosInSet: R, ariaPressed: xe, ariaReadOnly: xe, ariaRelevant: null, ariaRequired: xe, ariaRoleDescription: ye, ariaRowCount: R, ariaRowIndex: R, ariaRowSpan: R, ariaSelected: xe, ariaSetSize: R, ariaSort: null, ariaValueMax: R, ariaValueMin: R, ariaValueNow: R, ariaValueText: null, role: null } }), gs = nn({ space: "html", attributes: { acceptcharset: "accept-charset", classname: "class", htmlfor: "for", httpequiv: "http-equiv" }, transform: YA, mustUseProperty: ["checked", "multiple", "muted", "selected"], properties: { abbr: null, accept: Zt, acceptCharset: ye, accessKey: ye, action: null, allow: null, allowFullScreen: re, allowPaymentRequest: re, allowUserMedia: re, alt: null, as: null, async: re, autoCapitalize: null, autoComplete: ye, autoFocus: re, autoPlay: re, blocking: ye, capture: null, charSet: null, checked: re, cite: null, className: ye, cols: R, colSpan: null, content: null, contentEditable: xe, controls: re, controlsList: ye, coords: R | Zt, crossOrigin: null, data: null, dateTime: null, decoding: null, default: re, defer: re, dir: null, dirName: null, disabled: re, download: zA, draggable: xe, encType: null, enterKeyHint: null, fetchPriority: null, form: null, formAction: null, formEncType: null, formMethod: null, formNoValidate: re, formTarget: null, headers: ye, height: R, hidden: re, high: R, href: null, hrefLang: null, htmlFor: ye, httpEquiv: ye, id: null, imageSizes: null, imageSrcSet: null, inert: re, inputMode: null, integrity: null, is: null, isMap: re, itemId: null, itemProp: ye, itemRef: ye, itemScope: re, itemType: ye, kind: null, label: null, lang: null, language: null, list: null, loading: null, loop: re, low: R, manifest: null, max: null, maxLength: R, media: null, method: null, min: null, minLength: R, multiple: re, muted: re, name: null, nonce: null, noModule: re, noValidate: re, onAbort: null, onAfterPrint: null, onAuxClick: null, onBeforeMatch: null, onBeforePrint: null, onBeforeToggle: null, onBeforeUnload: null, onBlur: null, onCancel: null, onCanPlay: null, onCanPlayThrough: null, onChange: null, onClick: null, onClose: null, onContextLost: null, onContextMenu: null, onContextRestored: null, onCopy: null, onCueChange: null, onCut: null, onDblClick: null, onDrag: null, onDragEnd: null, onDragEnter: null, onDragExit: null, onDragLeave: null, onDragOver: null, onDragStart: null, onDrop: null, onDurationChange: null, onEmptied: null, onEnded: null, onError: null, onFocus: null, onFormData: null, onHashChange: null, onInput: null, onInvalid: null, onKeyDown: null, onKeyPress: null, onKeyUp: null, onLanguageChange: null, onLoad: null, onLoadedData: null, onLoadedMetadata: null, onLoadEnd: null, onLoadStart: null, onMessage: null, onMessageError: null, onMouseDown: null, onMouseEnter: null, onMouseLeave: null, onMouseMove: null, onMouseOut: null, onMouseOver: null, onMouseUp: null, onOffline: null, onOnline: null, onPageHide: null, onPageShow: null, onPaste: null, onPause: null, onPlay: null, onPlaying: null, onPopState: null, onProgress: null, onRateChange: null, onRejectionHandled: null, onReset: null, onResize: null, onScroll: null, onScrollEnd: null, onSecurityPolicyViolation: null, onSeeked: null, onSeeking: null, onSelect: null, onSlotChange: null, onStalled: null, onStorage: null, onSubmit: null, onSuspend: null, onTimeUpdate: null, onToggle: null, onUnhandledRejection: null, onUnload: null, onVolumeChange: null, onWaiting: null, onWheel: null, open: re, optimum: R, pattern: null, ping: ye, placeholder: null, playsInline: re, popover: null, popoverTarget: null, popoverTargetAction: null, poster: null, preload: null, readOnly: re, referrerPolicy: null, rel: ye, required: re, reversed: re, rows: R, rowSpan: R, sandbox: ye, scope: null, scoped: re, seamless: re, selected: re, shadowRootClonable: re, shadowRootDelegatesFocus: re, shadowRootMode: null, shape: null, size: R, sizes: null, slot: null, span: R, spellCheck: xe, src: null, srcDoc: null, srcLang: null, srcSet: null, start: R, step: null, style: null, tabIndex: R, target: null, title: null, translate: null, type: null, typeMustMatch: re, useMap: null, value: xe, width: R, wrap: null, writingSuggestions: null, align: null, aLink: null, archive: ye, axis: null, background: null, bgColor: null, border: R, borderColor: null, bottomMargin: R, cellPadding: null, cellSpacing: null, char: null, charOff: null, classId: null, clear: null, code: null, codeBase: null, codeType: null, color: null, compact: re, declare: re, event: null, face: null, frame: null, frameBorder: null, hSpace: R, leftMargin: R, link: null, longDesc: null, lowSrc: null, marginHeight: R, marginWidth: R, noResize: re, noHref: re, noShade: re, noWrap: re, object: null, profile: null, prompt: null, rev: null, rightMargin: R, rules: null, scheme: null, scrolling: xe, standby: null, summary: null, text: null, topMargin: R, valueType: null, version: null, vAlign: null, vLink: null, vSpace: R, allowTransparency: null, autoCorrect: null, autoSave: null, disablePictureInPicture: re, disableRemotePlayback: re, prefix: null, property: null, results: R, security: null, unselectable: null } }), hs = nn({ space: "svg", attributes: { accentHeight: "accent-height", alignmentBaseline: "alignment-baseline", arabicForm: "arabic-form", baselineShift: "baseline-shift", capHeight: "cap-height", className: "class", clipPath: "clip-path", clipRule: "clip-rule", colorInterpolation: "color-interpolation", colorInterpolationFilters: "color-interpolation-filters", colorProfile: "color-profile", colorRendering: "color-rendering", crossOrigin: "crossorigin", dataType: "datatype", dominantBaseline: "dominant-baseline", enableBackground: "enable-background", fillOpacity: "fill-opacity", fillRule: "fill-rule", floodColor: "flood-color", floodOpacity: "flood-opacity", fontFamily: "font-family", fontSize: "font-size", fontSizeAdjust: "font-size-adjust", fontStretch: "font-stretch", fontStyle: "font-style", fontVariant: "font-variant", fontWeight: "font-weight", glyphName: "glyph-name", glyphOrientationHorizontal: "glyph-orientation-horizontal", glyphOrientationVertical: "glyph-orientation-vertical", hrefLang: "hreflang", horizAdvX: "horiz-adv-x", horizOriginX: "horiz-origin-x", horizOriginY: "horiz-origin-y", imageRendering: "image-rendering", letterSpacing: "letter-spacing", lightingColor: "lighting-color", markerEnd: "marker-end", markerMid: "marker-mid", markerStart: "marker-start", navDown: "nav-down", navDownLeft: "nav-down-left", navDownRight: "nav-down-right", navLeft: "nav-left", navNext: "nav-next", navPrev: "nav-prev", navRight: "nav-right", navUp: "nav-up", navUpLeft: "nav-up-left", navUpRight: "nav-up-right", onAbort: "onabort", onActivate: "onactivate", onAfterPrint: "onafterprint", onBeforePrint: "onbeforeprint", onBegin: "onbegin", onCancel: "oncancel", onCanPlay: "oncanplay", onCanPlayThrough: "oncanplaythrough", onChange: "onchange", onClick: "onclick", onClose: "onclose", onCopy: "oncopy", onCueChange: "oncuechange", onCut: "oncut", onDblClick: "ondblclick", onDrag: "ondrag", onDragEnd: "ondragend", onDragEnter: "ondragenter", onDragExit: "ondragexit", onDragLeave: "ondragleave", onDragOver: "ondragover", onDragStart: "ondragstart", onDrop: "ondrop", onDurationChange: "ondurationchange", onEmptied: "onemptied", onEnd: "onend", onEnded: "onended", onError: "onerror", onFocus: "onfocus", onFocusIn: "onfocusin", onFocusOut: "onfocusout", onHashChange: "onhashchange", onInput: "oninput", onInvalid: "oninvalid", onKeyDown: "onkeydown", onKeyPress: "onkeypress", onKeyUp: "onkeyup", onLoad: "onload", onLoadedData: "onloadeddata", onLoadedMetadata: "onloadedmetadata", onLoadStart: "onloadstart", onMessage: "onmessage", onMouseDown: "onmousedown", onMouseEnter: "onmouseenter", onMouseLeave: "onmouseleave", onMouseMove: "onmousemove", onMouseOut: "onmouseout", onMouseOver: "onmouseover", onMouseUp: "onmouseup", onMouseWheel: "onmousewheel", onOffline: "onoffline", onOnline: "ononline", onPageHide: "onpagehide", onPageShow: "onpageshow", onPaste: "onpaste", onPause: "onpause", onPlay: "onplay", onPlaying: "onplaying", onPopState: "onpopstate", onProgress: "onprogress", onRateChange: "onratechange", onRepeat: "onrepeat", onReset: "onreset", onResize: "onresize", onScroll: "onscroll", onSeeked: "onseeked", onSeeking: "onseeking", onSelect: "onselect", onShow: "onshow", onStalled: "onstalled", onStorage: "onstorage", onSubmit: "onsubmit", onSuspend: "onsuspend", onTimeUpdate: "ontimeupdate", onToggle: "ontoggle", onUnload: "onunload", onVolumeChange: "onvolumechange", onWaiting: "onwaiting", onZoom: "onzoom", overlinePosition: "overline-position", overlineThickness: "overline-thickness", paintOrder: "paint-order", panose1: "panose-1", pointerEvents: "pointer-events", referrerPolicy: "referrerpolicy", renderingIntent: "rendering-intent", shapeRendering: "shape-rendering", stopColor: "stop-color", stopOpacity: "stop-opacity", strikethroughPosition: "strikethrough-position", strikethroughThickness: "strikethrough-thickness", strokeDashArray: "stroke-dasharray", strokeDashOffset: "stroke-dashoffset", strokeLineCap: "stroke-linecap", strokeLineJoin: "stroke-linejoin", strokeMiterLimit: "stroke-miterlimit", strokeOpacity: "stroke-opacity", strokeWidth: "stroke-width", tabIndex: "tabindex", textAnchor: "text-anchor", textDecoration: "text-decoration", textRendering: "text-rendering", transformOrigin: "transform-origin", typeOf: "typeof", underlinePosition: "underline-position", underlineThickness: "underline-thickness", unicodeBidi: "unicode-bidi", unicodeRange: "unicode-range", unitsPerEm: "units-per-em", vAlphabetic: "v-alphabetic", vHanging: "v-hanging", vIdeographic: "v-ideographic", vMathematical: "v-mathematical", vectorEffect: "vector-effect", vertAdvY: "vert-adv-y", vertOriginX: "vert-origin-x", vertOriginY: "vert-origin-y", wordSpacing: "word-spacing", writingMode: "writing-mode", xHeight: "x-height", playbackOrder: "playbackorder", timelineBegin: "timelinebegin" }, transform: WA, properties: { about: Xe, accentHeight: R, accumulate: null, additive: null, alignmentBaseline: null, alphabetic: R, amplitude: R, arabicForm: null, ascent: R, attributeName: null, attributeType: null, azimuth: R, bandwidth: null, baselineShift: null, baseFrequency: null, baseProfile: null, bbox: null, begin: null, bias: R, by: null, calcMode: null, capHeight: R, className: ye, clip: null, clipPath: null, clipPathUnits: null, clipRule: null, color: null, colorInterpolation: null, colorInterpolationFilters: null, colorProfile: null, colorRendering: null, content: null, contentScriptType: null, contentStyleType: null, crossOrigin: null, cursor: null, cx: null, cy: null, d: null, dataType: null, defaultAction: null, descent: R, diffuseConstant: R, direction: null, display: null, dur: null, divisor: R, dominantBaseline: null, download: re, dx: null, dy: null, edgeMode: null, editable: null, elevation: R, enableBackground: null, end: null, event: null, exponent: R, externalResourcesRequired: null, fill: null, fillOpacity: R, fillRule: null, filter: null, filterRes: null, filterUnits: null, floodColor: null, floodOpacity: null, focusable: null, focusHighlight: null, fontFamily: null, fontSize: null, fontSizeAdjust: null, fontStretch: null, fontStyle: null, fontVariant: null, fontWeight: null, format: null, fr: null, from: null, fx: null, fy: null, g1: Zt, g2: Zt, glyphName: Zt, glyphOrientationHorizontal: null, glyphOrientationVertical: null, glyphRef: null, gradientTransform: null, gradientUnits: null, handler: null, hanging: R, hatchContentUnits: null, hatchUnits: null, height: null, href: null, hrefLang: null, horizAdvX: R, horizOriginX: R, horizOriginY: R, id: null, ideographic: R, imageRendering: null, initialVisibility: null, in: null, in2: null, intercept: R, k: R, k1: R, k2: R, k3: R, k4: R, kernelMatrix: Xe, kernelUnitLength: null, keyPoints: null, keySplines: null, keyTimes: null, kerning: null, lang: null, lengthAdjust: null, letterSpacing: null, lightingColor: null, limitingConeAngle: R, local: null, markerEnd: null, markerMid: null, markerStart: null, markerHeight: null, markerUnits: null, markerWidth: null, mask: null, maskContentUnits: null, maskUnits: null, mathematical: null, max: null, media: null, mediaCharacterEncoding: null, mediaContentEncodings: null, mediaSize: R, mediaTime: null, method: null, min: null, mode: null, name: null, navDown: null, navDownLeft: null, navDownRight: null, navLeft: null, navNext: null, navPrev: null, navRight: null, navUp: null, navUpLeft: null, navUpRight: null, numOctaves: null, observer: null, offset: null, onAbort: null, onActivate: null, onAfterPrint: null, onBeforePrint: null, onBegin: null, onCancel: null, onCanPlay: null, onCanPlayThrough: null, onChange: null, onClick: null, onClose: null, onCopy: null, onCueChange: null, onCut: null, onDblClick: null, onDrag: null, onDragEnd: null, onDragEnter: null, onDragExit: null, onDragLeave: null, onDragOver: null, onDragStart: null, onDrop: null, onDurationChange: null, onEmptied: null, onEnd: null, onEnded: null, onError: null, onFocus: null, onFocusIn: null, onFocusOut: null, onHashChange: null, onInput: null, onInvalid: null, onKeyDown: null, onKeyPress: null, onKeyUp: null, onLoad: null, onLoadedData: null, onLoadedMetadata: null, onLoadStart: null, onMessage: null, onMouseDown: null, onMouseEnter: null, onMouseLeave: null, onMouseMove: null, onMouseOut: null, onMouseOver: null, onMouseUp: null, onMouseWheel: null, onOffline: null, onOnline: null, onPageHide: null, onPageShow: null, onPaste: null, onPause: null, onPlay: null, onPlaying: null, onPopState: null, onProgress: null, onRateChange: null, onRepeat: null, onReset: null, onResize: null, onScroll: null, onSeeked: null, onSeeking: null, onSelect: null, onShow: null, onStalled: null, onStorage: null, onSubmit: null, onSuspend: null, onTimeUpdate: null, onToggle: null, onUnload: null, onVolumeChange: null, onWaiting: null, onZoom: null, opacity: null, operator: null, order: null, orient: null, orientation: null, origin: null, overflow: null, overlay: null, overlinePosition: R, overlineThickness: R, paintOrder: null, panose1: null, path: null, pathLength: R, patternContentUnits: null, patternTransform: null, patternUnits: null, phase: null, ping: ye, pitch: null, playbackOrder: null, pointerEvents: null, points: null, pointsAtX: R, pointsAtY: R, pointsAtZ: R, preserveAlpha: null, preserveAspectRatio: null, primitiveUnits: null, propagate: null, property: Xe, r: null, radius: null, referrerPolicy: null, refX: null, refY: null, rel: Xe, rev: Xe, renderingIntent: null, repeatCount: null, repeatDur: null, requiredExtensions: Xe, requiredFeatures: Xe, requiredFonts: Xe, requiredFormats: Xe, resource: null, restart: null, result: null, rotate: null, rx: null, ry: null, scale: null, seed: null, shapeRendering: null, side: null, slope: null, snapshotTime: null, specularConstant: R, specularExponent: R, spreadMethod: null, spacing: null, startOffset: null, stdDeviation: null, stemh: null, stemv: null, stitchTiles: null, stopColor: null, stopOpacity: null, strikethroughPosition: R, strikethroughThickness: R, string: null, stroke: null, strokeDashArray: Xe, strokeDashOffset: null, strokeLineCap: null, strokeLineJoin: null, strokeMiterLimit: R, strokeOpacity: R, strokeWidth: null, style: null, surfaceScale: R, syncBehavior: null, syncBehaviorDefault: null, syncMaster: null, syncTolerance: null, syncToleranceDefault: null, systemLanguage: Xe, tabIndex: R, tableValues: null, target: null, targetX: R, targetY: R, textAnchor: null, textDecoration: null, textRendering: null, textLength: null, timelineBegin: null, title: null, transformBehavior: null, type: null, typeOf: Xe, to: null, transform: null, transformOrigin: null, u1: null, u2: null, underlinePosition: R, underlineThickness: R, unicode: null, unicodeBidi: null, unicodeRange: null, unitsPerEm: R, values: null, vAlphabetic: R, vMathematical: R, vectorEffect: null, vHanging: R, vIdeographic: R, version: null, vertAdvY: R, vertOriginX: R, vertOriginY: R, viewBox: null, viewTarget: null, visibility: null, width: null, widths: null, wordSpacing: null, writingMode: null, x: null, x1: null, x2: null, xChannelSelector: null, xHeight: R, y: null, y1: null, y2: null, yChannelSelector: null, z: null, zoomAndPan: null } }), ms = /^data[-\w.:]+$/i, mo = /-[a-z]/g, ys = /[A-Z]/g;
|
|
1656
|
+
function vs(e) {
|
|
1656
1657
|
return "-" + e.toLowerCase();
|
|
1657
1658
|
}
|
|
1658
|
-
function
|
|
1659
|
+
function ws(e) {
|
|
1659
1660
|
return e.charAt(1).toUpperCase();
|
|
1660
1661
|
}
|
|
1661
|
-
const
|
|
1662
|
+
const bs = { classId: "classID", dataType: "datatype", itemId: "itemID", strokeDashArray: "strokeDasharray", strokeDashOffset: "strokeDashoffset", strokeLineCap: "strokeLinecap", strokeLineJoin: "strokeLinejoin", strokeMiterLimit: "strokeMiterlimit", typeOf: "typeof", xLinkActuate: "xlinkActuate", xLinkArcRole: "xlinkArcrole", xLinkHref: "xlinkHref", xLinkRole: "xlinkRole", xLinkShow: "xlinkShow", xLinkTitle: "xlinkTitle", xLinkType: "xlinkType", xmlnsXLink: "xmlnsXlink" }, Es = jA([GA, qA, KA, VA, gs], "html"), Pr = jA([GA, qA, KA, VA, hs], "svg");
|
|
1662
1663
|
function XA(e) {
|
|
1663
1664
|
return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
|
|
1664
1665
|
}
|
|
1665
|
-
var tr, yo, vo, Kt = {},
|
|
1666
|
+
var tr, yo, vo, Kt = {}, ks = (function() {
|
|
1666
1667
|
if (vo) return Kt;
|
|
1667
1668
|
vo = 1;
|
|
1668
1669
|
var e = Kt && Kt.__importDefault || function(r) {
|
|
@@ -1739,8 +1740,8 @@ var tr, yo, vo, Kt = {}, Es = (function() {
|
|
|
1739
1740
|
var Q = v(), B = E(A);
|
|
1740
1741
|
if (B) {
|
|
1741
1742
|
if (C(), !E(i)) return h("property missing ':'");
|
|
1742
|
-
var O = E(a),
|
|
1743
|
-
return E(s),
|
|
1743
|
+
var O = E(a), S = Q({ type: "declaration", property: d(B[0].replace(r, l)), value: O ? d(O[0].replace(r, l)) : l });
|
|
1744
|
+
return E(s), S;
|
|
1744
1745
|
}
|
|
1745
1746
|
}
|
|
1746
1747
|
return b.prototype.content = u, P(), (function() {
|
|
@@ -1752,7 +1753,7 @@ var tr, yo, vo, Kt = {}, Es = (function() {
|
|
|
1752
1753
|
})());
|
|
1753
1754
|
return Kt;
|
|
1754
1755
|
})();
|
|
1755
|
-
const wo = XA(
|
|
1756
|
+
const wo = XA(ks), Ps = wo.default || wo, JA = ZA("end"), qr = ZA("start");
|
|
1756
1757
|
function ZA(e) {
|
|
1757
1758
|
return function(t) {
|
|
1758
1759
|
const r = t && t.position && t.position[e] || {};
|
|
@@ -1760,13 +1761,13 @@ function ZA(e) {
|
|
|
1760
1761
|
};
|
|
1761
1762
|
}
|
|
1762
1763
|
function un(e) {
|
|
1763
|
-
return e && typeof e == "object" ? "position" in e || "type" in e ? bo(e.position) : "start" in e || "end" in e ? bo(e) : "line" in e || "column" in e ?
|
|
1764
|
+
return e && typeof e == "object" ? "position" in e || "type" in e ? bo(e.position) : "start" in e || "end" in e ? bo(e) : "line" in e || "column" in e ? Dr(e) : "" : "";
|
|
1764
1765
|
}
|
|
1765
|
-
function
|
|
1766
|
+
function Dr(e) {
|
|
1766
1767
|
return Eo(e && e.line) + ":" + Eo(e && e.column);
|
|
1767
1768
|
}
|
|
1768
1769
|
function bo(e) {
|
|
1769
|
-
return
|
|
1770
|
+
return Dr(e && e.start) + "-" + Dr(e && e.end);
|
|
1770
1771
|
}
|
|
1771
1772
|
function Eo(e) {
|
|
1772
1773
|
return e && typeof e == "number" ? e : 1;
|
|
@@ -1788,8 +1789,8 @@ class Fe extends Error {
|
|
|
1788
1789
|
}
|
|
1789
1790
|
}
|
|
1790
1791
|
Fe.prototype.file = "", Fe.prototype.name = "", Fe.prototype.reason = "", Fe.prototype.message = "", Fe.prototype.stack = "", Fe.prototype.column = void 0, Fe.prototype.line = void 0, Fe.prototype.ancestors = void 0, Fe.prototype.cause = void 0, Fe.prototype.fatal = void 0, Fe.prototype.place = void 0, Fe.prototype.ruleId = void 0, Fe.prototype.source = void 0;
|
|
1791
|
-
const Gr = {}.hasOwnProperty,
|
|
1792
|
-
function
|
|
1792
|
+
const Gr = {}.hasOwnProperty, Ds = /* @__PURE__ */ new Map(), Cs = /[A-Z]/g, Ss = /-([a-z])/g, Bs = /* @__PURE__ */ new Set(["table", "tbody", "thead", "tfoot", "tr"]), xs = /* @__PURE__ */ new Set(["td", "th"]), $A = "https://github.com/syntax-tree/hast-util-to-jsx-runtime";
|
|
1793
|
+
function Is(e, t) {
|
|
1793
1794
|
if (!t || t.Fragment === void 0) throw new TypeError("Expected `Fragment` in options");
|
|
1794
1795
|
const r = t.filePath || void 0;
|
|
1795
1796
|
let n;
|
|
@@ -1813,7 +1814,7 @@ function xs(e, t) {
|
|
|
1813
1814
|
}
|
|
1814
1815
|
})(0, t.jsx, t.jsxs);
|
|
1815
1816
|
}
|
|
1816
|
-
const o = { Fragment: t.Fragment, ancestors: [], components: t.components || {}, create: n, elementAttributeNameCase: t.elementAttributeNameCase || "react", evaluater: t.createEvaluater ? t.createEvaluater() : void 0, filePath: r, ignoreInvalidStyle: t.ignoreInvalidStyle || !1, passKeys: t.passKeys !== !1, passNode: t.passNode || !1, schema: t.space === "svg" ? Pr :
|
|
1817
|
+
const o = { Fragment: t.Fragment, ancestors: [], components: t.components || {}, create: n, elementAttributeNameCase: t.elementAttributeNameCase || "react", evaluater: t.createEvaluater ? t.createEvaluater() : void 0, filePath: r, ignoreInvalidStyle: t.ignoreInvalidStyle || !1, passKeys: t.passKeys !== !1, passNode: t.passNode || !1, schema: t.space === "svg" ? Pr : Es, stylePropertyNameCase: t.stylePropertyNameCase || "dom", tableCellAlignToStyle: t.tableCellAlignToStyle !== !1 }, A = ei(o, e, void 0);
|
|
1817
1818
|
return A && typeof A != "string" ? A : o.create(e, o.Fragment, { children: A || void 0 }, void 0);
|
|
1818
1819
|
}
|
|
1819
1820
|
function ei(e, t, r) {
|
|
@@ -1825,16 +1826,16 @@ function ei(e, t, r) {
|
|
|
1825
1826
|
const p = {};
|
|
1826
1827
|
let g, y;
|
|
1827
1828
|
for (y in u.properties) if (y !== "children" && Gr.call(u.properties, y)) {
|
|
1828
|
-
const f =
|
|
1829
|
+
const f = Ts(d, y, u.properties[y]);
|
|
1829
1830
|
if (f) {
|
|
1830
1831
|
const [v, b] = f;
|
|
1831
|
-
d.tableCellAlignToStyle && v === "align" && typeof b == "string" &&
|
|
1832
|
+
d.tableCellAlignToStyle && v === "align" && typeof b == "string" && xs.has(u.tagName) ? g = b : p[v] = b;
|
|
1832
1833
|
}
|
|
1833
1834
|
}
|
|
1834
1835
|
return g && ((p.style || (p.style = {}))[d.stylePropertyNameCase === "css" ? "text-align" : "textAlign"] = g), p;
|
|
1835
1836
|
})(n, o);
|
|
1836
1837
|
let l = rr(n, o);
|
|
1837
|
-
return
|
|
1838
|
+
return Bs.has(o.tagName) && (l = l.filter(function(d) {
|
|
1838
1839
|
return typeof d != "string" || !(function(u) {
|
|
1839
1840
|
return typeof u == "object" ? u.type === "text" && go(u.value) : go(u);
|
|
1840
1841
|
})(d);
|
|
@@ -1894,7 +1895,7 @@ function nr(e, t) {
|
|
|
1894
1895
|
function rr(e, t) {
|
|
1895
1896
|
const r = [];
|
|
1896
1897
|
let n = -1;
|
|
1897
|
-
const o = e.passKeys ? /* @__PURE__ */ new Map() :
|
|
1898
|
+
const o = e.passKeys ? /* @__PURE__ */ new Map() : Ds;
|
|
1898
1899
|
for (; ++n < t.children.length; ) {
|
|
1899
1900
|
const A = t.children[n];
|
|
1900
1901
|
let i;
|
|
@@ -1910,19 +1911,19 @@ function rr(e, t) {
|
|
|
1910
1911
|
}
|
|
1911
1912
|
return r;
|
|
1912
1913
|
}
|
|
1913
|
-
function
|
|
1914
|
+
function Ts(e, t, r) {
|
|
1914
1915
|
const n = (function(o, A) {
|
|
1915
1916
|
const i = Er(A);
|
|
1916
1917
|
let a = A, s = tt;
|
|
1917
1918
|
if (i in o.normal) return o.property[o.normal[i]];
|
|
1918
|
-
if (i.length > 4 && i.slice(0, 4) === "data" &&
|
|
1919
|
+
if (i.length > 4 && i.slice(0, 4) === "data" && ms.test(A)) {
|
|
1919
1920
|
if (A.charAt(4) === "-") {
|
|
1920
|
-
const c = A.slice(5).replace(mo,
|
|
1921
|
+
const c = A.slice(5).replace(mo, ws);
|
|
1921
1922
|
a = "data" + c.charAt(0).toUpperCase() + c.slice(1);
|
|
1922
1923
|
} else {
|
|
1923
1924
|
const c = A.slice(4);
|
|
1924
1925
|
if (!mo.test(c)) {
|
|
1925
|
-
let l = c.replace(
|
|
1926
|
+
let l = c.replace(ys, vs);
|
|
1926
1927
|
l.charAt(0) !== "-" && (l = "-" + l), A = "data" + l;
|
|
1927
1928
|
}
|
|
1928
1929
|
}
|
|
@@ -1940,7 +1941,7 @@ function Is(e, t, r) {
|
|
|
1940
1941
|
let o = typeof r == "object" ? r : (function(A, i) {
|
|
1941
1942
|
const a = {};
|
|
1942
1943
|
try {
|
|
1943
|
-
|
|
1944
|
+
Ps(i, s);
|
|
1944
1945
|
} catch (c) {
|
|
1945
1946
|
if (!A.ignoreInvalidStyle) {
|
|
1946
1947
|
const l = c, d = new Fe("Cannot parse `style` attribute", { ancestors: A.ancestors, cause: l, ruleId: "style", source: "hast-util-to-jsx-runtime" });
|
|
@@ -1950,17 +1951,17 @@ function Is(e, t, r) {
|
|
|
1950
1951
|
return a;
|
|
1951
1952
|
function s(c, l) {
|
|
1952
1953
|
let d = c;
|
|
1953
|
-
d.slice(0, 2) !== "--" && (d.slice(0, 4) === "-ms-" && (d = "ms-" + d.slice(4)), d = d.replace(
|
|
1954
|
+
d.slice(0, 2) !== "--" && (d.slice(0, 4) === "-ms-" && (d = "ms-" + d.slice(4)), d = d.replace(Ss, Ms)), a[d] = l;
|
|
1954
1955
|
}
|
|
1955
1956
|
})(e, String(r));
|
|
1956
1957
|
return e.stylePropertyNameCase === "css" && (o = (function(A) {
|
|
1957
1958
|
const i = {};
|
|
1958
1959
|
let a;
|
|
1959
|
-
for (a in A) Gr.call(A, a) && (i[
|
|
1960
|
+
for (a in A) Gr.call(A, a) && (i[Qs(a)] = A[a]);
|
|
1960
1961
|
return i;
|
|
1961
1962
|
})(o)), ["style", o];
|
|
1962
1963
|
}
|
|
1963
|
-
return [e.elementAttributeNameCase === "react" && n.space ?
|
|
1964
|
+
return [e.elementAttributeNameCase === "react" && n.space ? bs[n.property] || n.property : n.attribute, r];
|
|
1964
1965
|
}
|
|
1965
1966
|
}
|
|
1966
1967
|
function Po(e, t, r) {
|
|
@@ -1986,14 +1987,14 @@ function ln(e, t) {
|
|
|
1986
1987
|
const r = new Fe("Cannot handle MDX estrees without `createEvaluater`", { ancestors: e.ancestors, place: t, ruleId: "mdx-estree", source: "hast-util-to-jsx-runtime" });
|
|
1987
1988
|
throw r.file = e.filePath || void 0, r.url = $A + "#cannot-handle-mdx-estrees-without-createevaluater", r;
|
|
1988
1989
|
}
|
|
1989
|
-
function
|
|
1990
|
-
let t = e.replace(
|
|
1990
|
+
function Qs(e) {
|
|
1991
|
+
let t = e.replace(Cs, Os);
|
|
1991
1992
|
return t.slice(0, 3) === "ms-" && (t = "-" + t), t;
|
|
1992
1993
|
}
|
|
1993
|
-
function
|
|
1994
|
+
function Ms(e, t) {
|
|
1994
1995
|
return t.toUpperCase();
|
|
1995
1996
|
}
|
|
1996
|
-
function
|
|
1997
|
+
function Os(e) {
|
|
1997
1998
|
return "-" + e.toLowerCase();
|
|
1998
1999
|
}
|
|
1999
2000
|
const or = { action: ["form"], cite: ["blockquote", "del", "ins", "q"], data: ["object"], formAction: ["button", "input"], href: ["a", "area", "base", "link"], icon: ["menuitem"], itemId: null, manifest: ["html"], ping: ["a", "area"], poster: ["video"], src: ["audio", "embed", "iframe", "img", "input", "script", "source", "track", "video"] }, Pn = {};
|
|
@@ -2003,11 +2004,11 @@ function ti(e, t, r) {
|
|
|
2003
2004
|
})(e)) {
|
|
2004
2005
|
if ("value" in e) return e.type !== "html" || r ? e.value : "";
|
|
2005
2006
|
if (t && "alt" in e && e.alt) return e.alt;
|
|
2006
|
-
if ("children" in e) return
|
|
2007
|
+
if ("children" in e) return Do(e.children, t, r);
|
|
2007
2008
|
}
|
|
2008
|
-
return Array.isArray(e) ?
|
|
2009
|
+
return Array.isArray(e) ? Do(e, t, r) : "";
|
|
2009
2010
|
}
|
|
2010
|
-
function
|
|
2011
|
+
function Do(e, t, r) {
|
|
2011
2012
|
const n = [];
|
|
2012
2013
|
let o = -1;
|
|
2013
2014
|
for (; ++o < e.length; ) n[o] = ti(e[o], t, r);
|
|
@@ -2029,26 +2030,26 @@ function ht(e, t, r, n) {
|
|
|
2029
2030
|
function rt(e, t) {
|
|
2030
2031
|
return e.length > 0 ? (ht(e, e.length, 0, t), e) : t;
|
|
2031
2032
|
}
|
|
2032
|
-
const
|
|
2033
|
-
function
|
|
2033
|
+
const So = {}.hasOwnProperty;
|
|
2034
|
+
function _s(e) {
|
|
2034
2035
|
const t = {};
|
|
2035
2036
|
let r = -1;
|
|
2036
|
-
for (; ++r < e.length; )
|
|
2037
|
+
for (; ++r < e.length; ) Ns(t, e[r]);
|
|
2037
2038
|
return t;
|
|
2038
2039
|
}
|
|
2039
|
-
function
|
|
2040
|
+
function Ns(e, t) {
|
|
2040
2041
|
let r;
|
|
2041
2042
|
for (r in t) {
|
|
2042
|
-
const n = (
|
|
2043
|
+
const n = (So.call(e, r) ? e[r] : void 0) || (e[r] = {}), o = t[r];
|
|
2043
2044
|
let A;
|
|
2044
2045
|
if (o) for (A in o) {
|
|
2045
|
-
|
|
2046
|
+
So.call(n, A) || (n[A] = []);
|
|
2046
2047
|
const i = o[A];
|
|
2047
|
-
|
|
2048
|
+
Ls(n[A], Array.isArray(i) ? i : i ? [i] : []);
|
|
2048
2049
|
}
|
|
2049
2050
|
}
|
|
2050
2051
|
}
|
|
2051
|
-
function
|
|
2052
|
+
function Ls(e, t) {
|
|
2052
2053
|
let r = -1;
|
|
2053
2054
|
const n = [];
|
|
2054
2055
|
for (; ++r < t.length; ) (t[r].add === "after" ? e : n).push(t[r]);
|
|
@@ -2061,11 +2062,11 @@ function ni(e, t) {
|
|
|
2061
2062
|
function $t(e) {
|
|
2062
2063
|
return e.replace(/[\t\n\r ]+/g, " ").replace(/^ | $/g, "").toLowerCase().toUpperCase();
|
|
2063
2064
|
}
|
|
2064
|
-
const ft = Qt(/[A-Za-z]/), Ze = Qt(/[\dA-Za-z]/),
|
|
2065
|
+
const ft = Qt(/[A-Za-z]/), Ze = Qt(/[\dA-Za-z]/), Rs = Qt(/[#-'*+\--9=?A-Z^-~]/);
|
|
2065
2066
|
function Cr(e) {
|
|
2066
2067
|
return e !== null && (e < 32 || e === 127);
|
|
2067
2068
|
}
|
|
2068
|
-
const
|
|
2069
|
+
const Sr = Qt(/\d/), Hs = Qt(/[\dA-Fa-f]/), Us = Qt(/[!-/:-@[-`{-~]/);
|
|
2069
2070
|
function Z(e) {
|
|
2070
2071
|
return e !== null && e < -2;
|
|
2071
2072
|
}
|
|
@@ -2075,7 +2076,7 @@ function Ye(e) {
|
|
|
2075
2076
|
function pe(e) {
|
|
2076
2077
|
return e === -2 || e === -1 || e === 32;
|
|
2077
2078
|
}
|
|
2078
|
-
const
|
|
2079
|
+
const Fs = Qt(new RegExp("\\p{P}|\\p{S}", "u")), js = Qt(/\s/);
|
|
2079
2080
|
function Qt(e) {
|
|
2080
2081
|
return function(t) {
|
|
2081
2082
|
return t !== null && t > -1 && e.test(String.fromCharCode(t));
|
|
@@ -2107,7 +2108,7 @@ function ve(e, t, r, n) {
|
|
|
2107
2108
|
return pe(a) && A++ < o ? (e.consume(a), i) : (e.exit(r), t(a));
|
|
2108
2109
|
}
|
|
2109
2110
|
}
|
|
2110
|
-
const
|
|
2111
|
+
const zs = { tokenize: function(e) {
|
|
2111
2112
|
const t = e.attempt(this.parser.constructs.contentInitial, function(A) {
|
|
2112
2113
|
return A === null ? void e.consume(A) : (e.enter("lineEnding"), e.consume(A), e.exit("lineEnding"), ve(e, t, "linePrefix"));
|
|
2113
2114
|
}, function(A) {
|
|
@@ -2122,7 +2123,7 @@ const js = { tokenize: function(e) {
|
|
|
2122
2123
|
function o(A) {
|
|
2123
2124
|
return A === null ? (e.exit("chunkText"), e.exit("paragraph"), void e.consume(A)) : Z(A) ? (e.consume(A), e.exit("chunkText"), n) : (e.consume(A), o);
|
|
2124
2125
|
}
|
|
2125
|
-
} },
|
|
2126
|
+
} }, qs = { tokenize: function(e) {
|
|
2126
2127
|
const t = this, r = [];
|
|
2127
2128
|
let n, o, A, i = 0;
|
|
2128
2129
|
return a;
|
|
@@ -2208,7 +2209,7 @@ const js = { tokenize: function(e) {
|
|
|
2208
2209
|
return ve(e, e.attempt(this.parser.constructs.document, t, r), "linePrefix", this.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4);
|
|
2209
2210
|
} };
|
|
2210
2211
|
function xo(e) {
|
|
2211
|
-
return e === null || Ye(e) ||
|
|
2212
|
+
return e === null || Ye(e) || js(e) ? 1 : Fs(e) ? 2 : void 0;
|
|
2212
2213
|
}
|
|
2213
2214
|
function Yr(e, t, r) {
|
|
2214
2215
|
const n = [];
|
|
@@ -2247,7 +2248,7 @@ const Br = { name: "attention", resolveAll: function(e, t) {
|
|
|
2247
2248
|
function Io(e, t) {
|
|
2248
2249
|
e.column += t, e.offset += t, e._bufferIndex += t;
|
|
2249
2250
|
}
|
|
2250
|
-
const
|
|
2251
|
+
const Gs = { name: "autolink", tokenize: function(e, t, r) {
|
|
2251
2252
|
let n = 0;
|
|
2252
2253
|
return function(u) {
|
|
2253
2254
|
return e.enter("autolink"), e.enter("autolinkMarker"), e.consume(u), e.exit("autolinkMarker"), e.enter("autolinkProtocol"), o;
|
|
@@ -2265,7 +2266,7 @@ const qs = { name: "autolink", tokenize: function(e, t, r) {
|
|
|
2265
2266
|
return u === 62 ? (e.exit("autolinkProtocol"), e.enter("autolinkMarker"), e.consume(u), e.exit("autolinkMarker"), e.exit("autolink"), t) : u === null || u === 32 || u === 60 || Cr(u) ? r(u) : (e.consume(u), a);
|
|
2266
2267
|
}
|
|
2267
2268
|
function s(u) {
|
|
2268
|
-
return u === 64 ? (e.consume(u), c) :
|
|
2269
|
+
return u === 64 ? (e.consume(u), c) : Rs(u) ? (e.consume(u), s) : r(u);
|
|
2269
2270
|
}
|
|
2270
2271
|
function c(u) {
|
|
2271
2272
|
return Ze(u) ? l(u) : r(u);
|
|
@@ -2314,7 +2315,7 @@ const qs = { name: "autolink", tokenize: function(e, t, r) {
|
|
|
2314
2315
|
return e.enter("characterEscape"), e.enter("escapeMarker"), e.consume(o), e.exit("escapeMarker"), n;
|
|
2315
2316
|
};
|
|
2316
2317
|
function n(o) {
|
|
2317
|
-
return
|
|
2318
|
+
return Us(o) ? (e.enter("characterEscapeValue"), e.consume(o), e.exit("characterEscapeValue"), e.exit("characterEscape"), t) : r(o);
|
|
2318
2319
|
}
|
|
2319
2320
|
} }, Ai = { name: "characterReference", tokenize: function(e, t, r) {
|
|
2320
2321
|
const n = this;
|
|
@@ -2326,7 +2327,7 @@ const qs = { name: "autolink", tokenize: function(e, t, r) {
|
|
|
2326
2327
|
return l === 35 ? (e.enter("characterReferenceMarkerNumeric"), e.consume(l), e.exit("characterReferenceMarkerNumeric"), s) : (e.enter("characterReferenceValue"), o = 31, A = Ze, c(l));
|
|
2327
2328
|
}
|
|
2328
2329
|
function s(l) {
|
|
2329
|
-
return l === 88 || l === 120 ? (e.enter("characterReferenceMarkerHexadecimal"), e.consume(l), e.exit("characterReferenceMarkerHexadecimal"), e.enter("characterReferenceValue"), o = 6, A =
|
|
2330
|
+
return l === 88 || l === 120 ? (e.enter("characterReferenceMarkerHexadecimal"), e.consume(l), e.exit("characterReferenceMarkerHexadecimal"), e.enter("characterReferenceValue"), o = 6, A = Hs, c) : (e.enter("characterReferenceValue"), o = 7, A = Sr, c(l));
|
|
2330
2331
|
}
|
|
2331
2332
|
function c(l) {
|
|
2332
2333
|
if (l === 59 && i) {
|
|
@@ -2347,20 +2348,20 @@ const qs = { name: "autolink", tokenize: function(e, t, r) {
|
|
|
2347
2348
|
const n = this, o = { partial: !0, tokenize: function(h, E, P) {
|
|
2348
2349
|
let k = 0;
|
|
2349
2350
|
return C;
|
|
2350
|
-
function C(
|
|
2351
|
-
return h.enter("lineEnding"), h.consume(
|
|
2351
|
+
function C(S) {
|
|
2352
|
+
return h.enter("lineEnding"), h.consume(S), h.exit("lineEnding"), x;
|
|
2352
2353
|
}
|
|
2353
|
-
function x(
|
|
2354
|
-
return h.enter("codeFencedFence"), pe(
|
|
2354
|
+
function x(S) {
|
|
2355
|
+
return h.enter("codeFencedFence"), pe(S) ? ve(h, Q, "linePrefix", n.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4)(S) : Q(S);
|
|
2355
2356
|
}
|
|
2356
|
-
function Q(
|
|
2357
|
-
return
|
|
2357
|
+
function Q(S) {
|
|
2358
|
+
return S === A ? (h.enter("codeFencedFenceSequence"), B(S)) : P(S);
|
|
2358
2359
|
}
|
|
2359
|
-
function B(
|
|
2360
|
-
return
|
|
2360
|
+
function B(S) {
|
|
2361
|
+
return S === A ? (k++, h.consume(S), B) : k >= a ? (h.exit("codeFencedFenceSequence"), pe(S) ? ve(h, O, "whitespace")(S) : O(S)) : P(S);
|
|
2361
2362
|
}
|
|
2362
|
-
function O(
|
|
2363
|
-
return
|
|
2363
|
+
function O(S) {
|
|
2364
|
+
return S === null || Z(S) ? (h.exit("codeFencedFence"), E(S)) : P(S);
|
|
2364
2365
|
}
|
|
2365
2366
|
} };
|
|
2366
2367
|
let A, i = 0, a = 0;
|
|
@@ -2413,7 +2414,7 @@ const qs = { name: "autolink", tokenize: function(e, t, r) {
|
|
|
2413
2414
|
return c && c[1].type === "linePrefix" && c[2].sliceSerialize(c[1], !0).length >= 4 ? A(s) : r(s);
|
|
2414
2415
|
}
|
|
2415
2416
|
function A(s) {
|
|
2416
|
-
return s === null ? a(s) : Z(s) ? e.attempt(
|
|
2417
|
+
return s === null ? a(s) : Z(s) ? e.attempt(Ws, A, a)(s) : (e.enter("codeFlowValue"), i(s));
|
|
2417
2418
|
}
|
|
2418
2419
|
function i(s) {
|
|
2419
2420
|
return s === null || Z(s) ? (e.exit("codeFlowValue"), A(s)) : (e.consume(s), i);
|
|
@@ -2421,7 +2422,7 @@ const qs = { name: "autolink", tokenize: function(e, t, r) {
|
|
|
2421
2422
|
function a(s) {
|
|
2422
2423
|
return e.exit("codeIndented"), t(s);
|
|
2423
2424
|
}
|
|
2424
|
-
} },
|
|
2425
|
+
} }, Ws = { partial: !0, tokenize: function(e, t, r) {
|
|
2425
2426
|
const n = this;
|
|
2426
2427
|
return o;
|
|
2427
2428
|
function o(i) {
|
|
@@ -2431,7 +2432,7 @@ const qs = { name: "autolink", tokenize: function(e, t, r) {
|
|
|
2431
2432
|
const a = n.events[n.events.length - 1];
|
|
2432
2433
|
return a && a[1].type === "linePrefix" && a[2].sliceSerialize(a[1], !0).length >= 4 ? t(i) : Z(i) ? o(i) : r(i);
|
|
2433
2434
|
}
|
|
2434
|
-
} },
|
|
2435
|
+
} }, Ys = { name: "codeText", previous: function(e) {
|
|
2435
2436
|
return e !== 96 || this.events[this.events.length - 1][1].type === "characterEscape";
|
|
2436
2437
|
}, resolve: function(e) {
|
|
2437
2438
|
let t, r, n = e.length - 4, o = 3;
|
|
@@ -2461,7 +2462,7 @@ const qs = { name: "autolink", tokenize: function(e, t, r) {
|
|
|
2461
2462
|
return l === 96 ? (e.consume(l), n++, c) : n === A ? (e.exit("codeTextSequence"), e.exit("codeText"), t(l)) : (o.type = "codeTextData", s(l));
|
|
2462
2463
|
}
|
|
2463
2464
|
} };
|
|
2464
|
-
class
|
|
2465
|
+
class Ks {
|
|
2465
2466
|
constructor(t) {
|
|
2466
2467
|
this.left = t ? [...t] : [], this.right = [];
|
|
2467
2468
|
}
|
|
@@ -2518,11 +2519,11 @@ function on(e, t) {
|
|
|
2518
2519
|
function ii(e) {
|
|
2519
2520
|
const t = {};
|
|
2520
2521
|
let r, n, o, A, i, a, s, c = -1;
|
|
2521
|
-
const l = new
|
|
2522
|
+
const l = new Ks(e);
|
|
2522
2523
|
for (; ++c < l.length; ) {
|
|
2523
2524
|
for (; c in t; ) c = t[c];
|
|
2524
2525
|
if (r = l.get(c), c && r[1].type === "chunkFlow" && l.get(c - 1)[1].type === "listItemPrefix" && (a = r[1]._tokenizer.events, o = 0, o < a.length && a[o][1].type === "lineEndingBlank" && (o += 2), o < a.length && a[o][1].type === "content")) for (; ++o < a.length && a[o][1].type !== "content"; ) a[o][1].type === "chunkText" && (a[o][1]._isInFirstContentOfListItem = !0, o++);
|
|
2525
|
-
if (r[0] === "enter") r[1].contentType && (Object.assign(t,
|
|
2526
|
+
if (r[0] === "enter") r[1].contentType && (Object.assign(t, Vs(l, c)), c = t[c], s = !0);
|
|
2526
2527
|
else if (r[1]._container) {
|
|
2527
2528
|
for (o = c, n = void 0; o--; ) if (A = l.get(o), A[1].type === "lineEnding" || A[1].type === "lineEndingBlank") A[0] === "enter" && (n && (l.get(n)[1].type = "lineEndingBlank"), A[1].type = "lineEnding", n = o);
|
|
2528
2529
|
else if (A[1].type !== "linePrefix") break;
|
|
@@ -2531,7 +2532,7 @@ function ii(e) {
|
|
|
2531
2532
|
}
|
|
2532
2533
|
return ht(e, 0, Number.POSITIVE_INFINITY, l.slice(0)), !s;
|
|
2533
2534
|
}
|
|
2534
|
-
function
|
|
2535
|
+
function Vs(e, t) {
|
|
2535
2536
|
const r = e.get(t)[1], n = e.get(t)[2];
|
|
2536
2537
|
let o = t - 1;
|
|
2537
2538
|
const A = [], i = r._tokenizer || n.parser[r.contentType](r.start), a = i.events, s = [], c = {};
|
|
@@ -2549,7 +2550,7 @@ function Ks(e, t) {
|
|
|
2549
2550
|
for (s.reverse(), u = -1; ++u < s.length; ) c[g + s[u][0]] = g + s[u][1], g += s[u][1] - s[u][0] - 1;
|
|
2550
2551
|
return c;
|
|
2551
2552
|
}
|
|
2552
|
-
const
|
|
2553
|
+
const Xs = { resolve: function(e) {
|
|
2553
2554
|
return ii(e), e;
|
|
2554
2555
|
}, tokenize: function(e, t) {
|
|
2555
2556
|
let r;
|
|
@@ -2557,7 +2558,7 @@ const Vs = { resolve: function(e) {
|
|
|
2557
2558
|
return e.enter("content"), r = e.enter("chunkContent", { contentType: "content" }), n(i);
|
|
2558
2559
|
};
|
|
2559
2560
|
function n(i) {
|
|
2560
|
-
return i === null ? o(i) : Z(i) ? e.check(
|
|
2561
|
+
return i === null ? o(i) : Z(i) ? e.check(Js, A, o)(i) : (e.consume(i), n);
|
|
2561
2562
|
}
|
|
2562
2563
|
function o(i) {
|
|
2563
2564
|
return e.exit("chunkContent"), e.exit("content"), t(i);
|
|
@@ -2565,7 +2566,7 @@ const Vs = { resolve: function(e) {
|
|
|
2565
2566
|
function A(i) {
|
|
2566
2567
|
return e.consume(i), e.exit("chunkContent"), r.next = e.enter("chunkContent", { contentType: "content", previous: r }), r = r.next, n;
|
|
2567
2568
|
}
|
|
2568
|
-
} },
|
|
2569
|
+
} }, Js = { partial: !0, tokenize: function(e, t, r) {
|
|
2569
2570
|
const n = this;
|
|
2570
2571
|
return function(A) {
|
|
2571
2572
|
return e.exit("chunkContent"), e.enter("lineEnding"), e.consume(A), e.exit("lineEnding"), ve(e, o, "linePrefix");
|
|
@@ -2638,7 +2639,7 @@ function dn(e, t) {
|
|
|
2638
2639
|
return Z(o) ? (e.enter("lineEnding"), e.consume(o), e.exit("lineEnding"), r = !0, n) : pe(o) ? ve(e, n, r ? "linePrefix" : "lineSuffix")(o) : t(o);
|
|
2639
2640
|
};
|
|
2640
2641
|
}
|
|
2641
|
-
const
|
|
2642
|
+
const Zs = { name: "definition", tokenize: function(e, t, r) {
|
|
2642
2643
|
const n = this;
|
|
2643
2644
|
let o;
|
|
2644
2645
|
return function(d) {
|
|
@@ -2656,7 +2657,7 @@ const Js = { name: "definition", tokenize: function(e, t, r) {
|
|
|
2656
2657
|
return ai(e, s, r, "definitionDestination", "definitionDestinationLiteral", "definitionDestinationLiteralMarker", "definitionDestinationRaw", "definitionDestinationString")(d);
|
|
2657
2658
|
}
|
|
2658
2659
|
function s(d) {
|
|
2659
|
-
return e.attempt(
|
|
2660
|
+
return e.attempt($s, c, c)(d);
|
|
2660
2661
|
}
|
|
2661
2662
|
function c(d) {
|
|
2662
2663
|
return pe(d) ? ve(e, l, "whitespace")(d) : l(d);
|
|
@@ -2664,7 +2665,7 @@ const Js = { name: "definition", tokenize: function(e, t, r) {
|
|
|
2664
2665
|
function l(d) {
|
|
2665
2666
|
return d === null || Z(d) ? (e.exit("definition"), n.parser.defined.push(o), t(d)) : r(d);
|
|
2666
2667
|
}
|
|
2667
|
-
} },
|
|
2668
|
+
} }, $s = { partial: !0, tokenize: function(e, t, r) {
|
|
2668
2669
|
return function(i) {
|
|
2669
2670
|
return Ye(i) ? dn(e, n)(i) : r(i);
|
|
2670
2671
|
};
|
|
@@ -2677,14 +2678,14 @@ const Js = { name: "definition", tokenize: function(e, t, r) {
|
|
|
2677
2678
|
function A(i) {
|
|
2678
2679
|
return i === null || Z(i) ? t(i) : r(i);
|
|
2679
2680
|
}
|
|
2680
|
-
} },
|
|
2681
|
+
} }, el = { name: "hardBreakEscape", tokenize: function(e, t, r) {
|
|
2681
2682
|
return function(o) {
|
|
2682
2683
|
return e.enter("hardBreakEscape"), e.consume(o), n;
|
|
2683
2684
|
};
|
|
2684
2685
|
function n(o) {
|
|
2685
2686
|
return Z(o) ? (e.exit("hardBreakEscape"), t(o)) : r(o);
|
|
2686
2687
|
}
|
|
2687
|
-
} },
|
|
2688
|
+
} }, tl = { name: "headingAtx", resolve: function(e, t) {
|
|
2688
2689
|
let r, n, o = e.length - 2, A = 3;
|
|
2689
2690
|
return e[A][1].type === "whitespace" && (A += 2), o - 2 > A && e[o][1].type === "whitespace" && (o -= 2), e[o][1].type === "atxHeadingSequence" && (A === o - 1 || o - 4 > A && e[o - 2][1].type === "whitespace") && (o -= A + 1 === o ? 2 : 4), o > A && (r = { type: "atxHeadingText", start: e[A][1].start, end: e[o][1].end }, n = { type: "chunkText", start: e[A][1].start, end: e[o][1].end, contentType: "text" }, ht(e, A, o - A + 1, [["enter", r, t], ["enter", n, t], ["exit", n, t], ["exit", r, t]])), e;
|
|
2690
2691
|
}, tokenize: function(e, t, r) {
|
|
@@ -2706,7 +2707,7 @@ const Js = { name: "definition", tokenize: function(e, t, r) {
|
|
|
2706
2707
|
function a(s) {
|
|
2707
2708
|
return s === null || s === 35 || Ye(s) ? (e.exit("atxHeadingText"), A(s)) : (e.consume(s), a);
|
|
2708
2709
|
}
|
|
2709
|
-
} },
|
|
2710
|
+
} }, nl = ["address", "article", "aside", "base", "basefont", "blockquote", "body", "caption", "center", "col", "colgroup", "dd", "details", "dialog", "dir", "div", "dl", "dt", "fieldset", "figcaption", "figure", "footer", "form", "frame", "frameset", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hr", "html", "iframe", "legend", "li", "link", "main", "menu", "menuitem", "nav", "noframes", "ol", "optgroup", "option", "p", "param", "search", "section", "summary", "table", "tbody", "td", "tfoot", "th", "thead", "title", "tr", "track", "ul"], Mo = ["pre", "script", "style", "textarea"], rl = { concrete: !0, name: "htmlFlow", resolveTo: function(e) {
|
|
2710
2711
|
let t = e.length;
|
|
2711
2712
|
for (; t-- && (e[t][0] !== "enter" || e[t][1].type !== "htmlFlow"); ) ;
|
|
2712
2713
|
return t > 1 && e[t - 2][1].type === "linePrefix" && (e[t][1].start = e[t - 2][1].start, e[t + 1][1].start = e[t - 2][1].start, e.splice(t - 2, 2)), e;
|
|
@@ -2736,7 +2737,7 @@ const Js = { name: "definition", tokenize: function(e, t, r) {
|
|
|
2736
2737
|
function g(w) {
|
|
2737
2738
|
if (w === null || w === 47 || w === 62 || Ye(w)) {
|
|
2738
2739
|
const q = w === 47, te = i.toLowerCase();
|
|
2739
|
-
return q || A || !Mo.includes(te) ?
|
|
2740
|
+
return q || A || !Mo.includes(te) ? nl.includes(i.toLowerCase()) ? (o = 6, q ? (e.consume(w), y) : n.interrupt ? t(w) : B(w)) : (o = 7, n.interrupt && !n.parser.lazy[n.now().line] ? r(w) : A ? f(w) : v(w)) : (o = 1, n.interrupt ? t(w) : B(w));
|
|
2740
2741
|
}
|
|
2741
2742
|
return w === 45 || Ze(w) ? (e.consume(w), i += String.fromCharCode(w), g) : r(w);
|
|
2742
2743
|
}
|
|
@@ -2774,12 +2775,12 @@ const Js = { name: "definition", tokenize: function(e, t, r) {
|
|
|
2774
2775
|
return w === null || Z(w) ? B(w) : pe(w) ? (e.consume(w), Q) : r(w);
|
|
2775
2776
|
}
|
|
2776
2777
|
function B(w) {
|
|
2777
|
-
return w === 45 && o === 2 ? (e.consume(w), H) : w === 60 && o === 1 ? (e.consume(w), N) : w === 62 && o === 4 ? (e.consume(w), m) : w === 63 && o === 3 ? (e.consume(w), L) : w === 93 && o === 5 ? (e.consume(w), M) : !Z(w) || o !== 6 && o !== 7 ? w === null || Z(w) ? (e.exit("htmlFlowData"), O(w)) : (e.consume(w), B) : (e.exit("htmlFlowData"), e.check(
|
|
2778
|
+
return w === 45 && o === 2 ? (e.consume(w), H) : w === 60 && o === 1 ? (e.consume(w), N) : w === 62 && o === 4 ? (e.consume(w), m) : w === 63 && o === 3 ? (e.consume(w), L) : w === 93 && o === 5 ? (e.consume(w), M) : !Z(w) || o !== 6 && o !== 7 ? w === null || Z(w) ? (e.exit("htmlFlowData"), O(w)) : (e.consume(w), B) : (e.exit("htmlFlowData"), e.check(ol, K, O)(w));
|
|
2778
2779
|
}
|
|
2779
2780
|
function O(w) {
|
|
2780
|
-
return e.check(
|
|
2781
|
+
return e.check(Al, S, K)(w);
|
|
2781
2782
|
}
|
|
2782
|
-
function
|
|
2783
|
+
function S(w) {
|
|
2783
2784
|
return e.enter("lineEnding"), e.consume(w), e.exit("lineEnding"), _;
|
|
2784
2785
|
}
|
|
2785
2786
|
function _(w) {
|
|
@@ -2810,11 +2811,11 @@ const Js = { name: "definition", tokenize: function(e, t, r) {
|
|
|
2810
2811
|
function K(w) {
|
|
2811
2812
|
return e.exit("htmlFlow"), t(w);
|
|
2812
2813
|
}
|
|
2813
|
-
} },
|
|
2814
|
+
} }, ol = { partial: !0, tokenize: function(e, t, r) {
|
|
2814
2815
|
return function(n) {
|
|
2815
2816
|
return e.enter("lineEnding"), e.consume(n), e.exit("lineEnding"), e.attempt(Un, t, r);
|
|
2816
2817
|
};
|
|
2817
|
-
} },
|
|
2818
|
+
} }, Al = { partial: !0, tokenize: function(e, t, r) {
|
|
2818
2819
|
const n = this;
|
|
2819
2820
|
return function(A) {
|
|
2820
2821
|
return Z(A) ? (e.enter("lineEnding"), e.consume(A), e.exit("lineEnding"), o) : r(A);
|
|
@@ -2822,7 +2823,7 @@ const Js = { name: "definition", tokenize: function(e, t, r) {
|
|
|
2822
2823
|
function o(A) {
|
|
2823
2824
|
return n.parser.lazy[n.now().line] ? r(A) : t(A);
|
|
2824
2825
|
}
|
|
2825
|
-
} },
|
|
2826
|
+
} }, il = { name: "htmlText", tokenize: function(e, t, r) {
|
|
2826
2827
|
const n = this;
|
|
2827
2828
|
let o, A, i;
|
|
2828
2829
|
return function(m) {
|
|
@@ -2889,10 +2890,10 @@ const Js = { name: "definition", tokenize: function(e, t, r) {
|
|
|
2889
2890
|
return m === 61 ? (e.consume(m), O) : Z(m) ? (i = B, U(m)) : pe(m) ? (e.consume(m), B) : x(m);
|
|
2890
2891
|
}
|
|
2891
2892
|
function O(m) {
|
|
2892
|
-
return m === null || m === 60 || m === 61 || m === 62 || m === 96 ? r(m) : m === 34 || m === 39 ? (e.consume(m), o = m,
|
|
2893
|
+
return m === null || m === 60 || m === 61 || m === 62 || m === 96 ? r(m) : m === 34 || m === 39 ? (e.consume(m), o = m, S) : Z(m) ? (i = O, U(m)) : pe(m) ? (e.consume(m), O) : (e.consume(m), _);
|
|
2893
2894
|
}
|
|
2894
|
-
function
|
|
2895
|
-
return m === o ? (e.consume(m), o = void 0, H) : m === null ? r(m) : Z(m) ? (i =
|
|
2895
|
+
function S(m) {
|
|
2896
|
+
return m === o ? (e.consume(m), o = void 0, H) : m === null ? r(m) : Z(m) ? (i = S, U(m)) : (e.consume(m), S);
|
|
2896
2897
|
}
|
|
2897
2898
|
function _(m) {
|
|
2898
2899
|
return m === null || m === 34 || m === 39 || m === 60 || m === 61 || m === 96 ? r(m) : m === 47 || m === 62 || Ye(m) ? x(m) : (e.consume(m), _);
|
|
@@ -2947,10 +2948,10 @@ const Js = { name: "definition", tokenize: function(e, t, r) {
|
|
|
2947
2948
|
return o ? o._inactive ? l(d) : (A = n.parser.defined.includes($t(n.sliceSerialize({ start: o.end, end: n.now() }))), e.enter("labelEnd"), e.enter("labelMarker"), e.consume(d), e.exit("labelMarker"), e.exit("labelEnd"), a) : r(d);
|
|
2948
2949
|
};
|
|
2949
2950
|
function a(d) {
|
|
2950
|
-
return d === 40 ? e.attempt(
|
|
2951
|
+
return d === 40 ? e.attempt(al, c, A ? c : l)(d) : d === 91 ? e.attempt(sl, c, A ? s : l)(d) : A ? c(d) : l(d);
|
|
2951
2952
|
}
|
|
2952
2953
|
function s(d) {
|
|
2953
|
-
return e.attempt(
|
|
2954
|
+
return e.attempt(ll, c, l)(d);
|
|
2954
2955
|
}
|
|
2955
2956
|
function c(d) {
|
|
2956
2957
|
return t(d);
|
|
@@ -2958,7 +2959,7 @@ const Js = { name: "definition", tokenize: function(e, t, r) {
|
|
|
2958
2959
|
function l(d) {
|
|
2959
2960
|
return o._balanced = !0, r(d);
|
|
2960
2961
|
}
|
|
2961
|
-
} },
|
|
2962
|
+
} }, al = { tokenize: function(e, t, r) {
|
|
2962
2963
|
return function(l) {
|
|
2963
2964
|
return e.enter("resource"), e.enter("resourceMarker"), e.consume(l), e.exit("resourceMarker"), n;
|
|
2964
2965
|
};
|
|
@@ -2983,7 +2984,7 @@ const Js = { name: "definition", tokenize: function(e, t, r) {
|
|
|
2983
2984
|
function c(l) {
|
|
2984
2985
|
return l === 41 ? (e.enter("resourceMarker"), e.consume(l), e.exit("resourceMarker"), e.exit("resource"), t) : r(l);
|
|
2985
2986
|
}
|
|
2986
|
-
} },
|
|
2987
|
+
} }, sl = { tokenize: function(e, t, r) {
|
|
2987
2988
|
const n = this;
|
|
2988
2989
|
return function(i) {
|
|
2989
2990
|
return si.call(n, e, o, A, "reference", "referenceMarker", "referenceString")(i);
|
|
@@ -2994,14 +2995,14 @@ const Js = { name: "definition", tokenize: function(e, t, r) {
|
|
|
2994
2995
|
function A(i) {
|
|
2995
2996
|
return r(i);
|
|
2996
2997
|
}
|
|
2997
|
-
} },
|
|
2998
|
+
} }, ll = { tokenize: function(e, t, r) {
|
|
2998
2999
|
return function(o) {
|
|
2999
3000
|
return e.enter("reference"), e.enter("referenceMarker"), e.consume(o), e.exit("referenceMarker"), n;
|
|
3000
3001
|
};
|
|
3001
3002
|
function n(o) {
|
|
3002
3003
|
return o === 93 ? (e.enter("referenceMarker"), e.consume(o), e.exit("referenceMarker"), e.exit("reference"), t) : r(o);
|
|
3003
3004
|
}
|
|
3004
|
-
} },
|
|
3005
|
+
} }, cl = { name: "labelStartImage", resolveAll: Kr.resolveAll, tokenize: function(e, t, r) {
|
|
3005
3006
|
const n = this;
|
|
3006
3007
|
return function(i) {
|
|
3007
3008
|
return e.enter("labelImage"), e.enter("labelImageMarker"), e.consume(i), e.exit("labelImageMarker"), o;
|
|
@@ -3012,7 +3013,7 @@ const Js = { name: "definition", tokenize: function(e, t, r) {
|
|
|
3012
3013
|
function A(i) {
|
|
3013
3014
|
return i === 94 && "_hiddenFootnoteSupport" in n.parser.constructs ? r(i) : t(i);
|
|
3014
3015
|
}
|
|
3015
|
-
} },
|
|
3016
|
+
} }, ul = { name: "labelStartLink", resolveAll: Kr.resolveAll, tokenize: function(e, t, r) {
|
|
3016
3017
|
const n = this;
|
|
3017
3018
|
return function(A) {
|
|
3018
3019
|
return e.enter("labelLink"), e.enter("labelMarker"), e.consume(A), e.exit("labelMarker"), e.exit("labelLink"), o;
|
|
@@ -3042,7 +3043,7 @@ const Js = { name: "definition", tokenize: function(e, t, r) {
|
|
|
3042
3043
|
return n.containerState._closeFlow = void 0, e.check(Un, function(A) {
|
|
3043
3044
|
return n.containerState.furtherBlankLines = n.containerState.furtherBlankLines || n.containerState.initialBlankLine, ve(e, t, "listItemIndent", n.containerState.size + 1)(A);
|
|
3044
3045
|
}, function(A) {
|
|
3045
|
-
return n.containerState.furtherBlankLines || !pe(A) ? (n.containerState.furtherBlankLines = void 0, n.containerState.initialBlankLine = void 0, o(A)) : (n.containerState.furtherBlankLines = void 0, n.containerState.initialBlankLine = void 0, e.attempt(
|
|
3046
|
+
return n.containerState.furtherBlankLines || !pe(A) ? (n.containerState.furtherBlankLines = void 0, n.containerState.initialBlankLine = void 0, o(A)) : (n.containerState.furtherBlankLines = void 0, n.containerState.initialBlankLine = void 0, e.attempt(pl, t, o)(A));
|
|
3046
3047
|
});
|
|
3047
3048
|
function o(A) {
|
|
3048
3049
|
return n.containerState._closeFlow = !0, n.interrupt = void 0, ve(e, e.attempt(We, t, r), "linePrefix", n.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4)(A);
|
|
@@ -3054,17 +3055,17 @@ const Js = { name: "definition", tokenize: function(e, t, r) {
|
|
|
3054
3055
|
let A = o && o[1].type === "linePrefix" ? o[2].sliceSerialize(o[1], !0).length : 0, i = 0;
|
|
3055
3056
|
return function(u) {
|
|
3056
3057
|
const p = n.containerState.type || (u === 42 || u === 43 || u === 45 ? "listUnordered" : "listOrdered");
|
|
3057
|
-
if (p === "listUnordered" ? !n.containerState.marker || u === n.containerState.marker :
|
|
3058
|
+
if (p === "listUnordered" ? !n.containerState.marker || u === n.containerState.marker : Sr(u)) {
|
|
3058
3059
|
if (n.containerState.type || (n.containerState.type = p, e.enter(p, { _container: !0 })), p === "listUnordered") return e.enter("listItemPrefix"), u === 42 || u === 45 ? e.check(On, r, s)(u) : s(u);
|
|
3059
3060
|
if (!n.interrupt || u === 49) return e.enter("listItemPrefix"), e.enter("listItemValue"), a(u);
|
|
3060
3061
|
}
|
|
3061
3062
|
return r(u);
|
|
3062
3063
|
};
|
|
3063
3064
|
function a(u) {
|
|
3064
|
-
return
|
|
3065
|
+
return Sr(u) && ++i < 10 ? (e.consume(u), a) : (!n.interrupt || i < 2) && (n.containerState.marker ? u === n.containerState.marker : u === 41 || u === 46) ? (e.exit("listItemValue"), s(u)) : r(u);
|
|
3065
3066
|
}
|
|
3066
3067
|
function s(u) {
|
|
3067
|
-
return e.enter("listItemMarker"), e.consume(u), e.exit("listItemMarker"), n.containerState.marker = n.containerState.marker || u, e.check(Un, n.interrupt ? r : c, e.attempt(
|
|
3068
|
+
return e.enter("listItemMarker"), e.consume(u), e.exit("listItemMarker"), n.containerState.marker = n.containerState.marker || u, e.check(Un, n.interrupt ? r : c, e.attempt(dl, d, l));
|
|
3068
3069
|
}
|
|
3069
3070
|
function c(u) {
|
|
3070
3071
|
return n.containerState.initialBlankLine = !0, A++, d(u);
|
|
@@ -3075,13 +3076,13 @@ const Js = { name: "definition", tokenize: function(e, t, r) {
|
|
|
3075
3076
|
function d(u) {
|
|
3076
3077
|
return n.containerState.size = A + n.sliceSerialize(e.exit("listItemPrefix"), !0).length, t(u);
|
|
3077
3078
|
}
|
|
3078
|
-
} },
|
|
3079
|
+
} }, dl = { partial: !0, tokenize: function(e, t, r) {
|
|
3079
3080
|
const n = this;
|
|
3080
3081
|
return ve(e, function(o) {
|
|
3081
3082
|
const A = n.events[n.events.length - 1];
|
|
3082
3083
|
return !pe(o) && A && A[1].type === "listItemPrefixWhitespace" ? t(o) : r(o);
|
|
3083
3084
|
}, "listItemPrefixWhitespace", n.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 5);
|
|
3084
|
-
} },
|
|
3085
|
+
} }, pl = { partial: !0, tokenize: function(e, t, r) {
|
|
3085
3086
|
const n = this;
|
|
3086
3087
|
return ve(e, function(o) {
|
|
3087
3088
|
const A = n.events[n.events.length - 1];
|
|
@@ -3117,18 +3118,18 @@ const Js = { name: "definition", tokenize: function(e, t, r) {
|
|
|
3117
3118
|
function i(a) {
|
|
3118
3119
|
return a === null || Z(a) ? (e.exit("setextHeadingLine"), t(a)) : r(a);
|
|
3119
3120
|
}
|
|
3120
|
-
} },
|
|
3121
|
+
} }, fl = { tokenize: function(e) {
|
|
3121
3122
|
const t = this, r = e.attempt(Un, function(o) {
|
|
3122
3123
|
return o === null ? void e.consume(o) : (e.enter("lineEndingBlank"), e.consume(o), e.exit("lineEndingBlank"), t.currentConstruct = void 0, r);
|
|
3123
|
-
}, e.attempt(this.parser.constructs.flowInitial, n, ve(e, e.attempt(this.parser.constructs.flow, n, e.attempt(
|
|
3124
|
+
}, e.attempt(this.parser.constructs.flowInitial, n, ve(e, e.attempt(this.parser.constructs.flow, n, e.attempt(Xs, n)), "linePrefix")));
|
|
3124
3125
|
return r;
|
|
3125
3126
|
function n(o) {
|
|
3126
3127
|
if (o !== null) return e.enter("lineEnding"), e.consume(o), e.exit("lineEnding"), t.currentConstruct = void 0, r;
|
|
3127
3128
|
e.consume(o);
|
|
3128
3129
|
}
|
|
3129
|
-
} },
|
|
3130
|
+
} }, gl = { resolveAll: ui() }, hl = ci("string"), ml = ci("text");
|
|
3130
3131
|
function ci(e) {
|
|
3131
|
-
return { resolveAll: ui(e === "text" ?
|
|
3132
|
+
return { resolveAll: ui(e === "text" ? yl : void 0), tokenize: function(t) {
|
|
3132
3133
|
const r = this, n = this.parser.constructs[e], o = t.attempt(n, A, i);
|
|
3133
3134
|
return A;
|
|
3134
3135
|
function A(c) {
|
|
@@ -3160,7 +3161,7 @@ function ui(e) {
|
|
|
3160
3161
|
return e ? e(t, r) : t;
|
|
3161
3162
|
};
|
|
3162
3163
|
}
|
|
3163
|
-
function
|
|
3164
|
+
function yl(e, t) {
|
|
3164
3165
|
let r = 0;
|
|
3165
3166
|
for (; ++r <= e.length; ) if ((r === e.length || e[r][1].type === "lineEnding") && e[r - 1][1].type === "data") {
|
|
3166
3167
|
const n = e[r - 1][1], o = t.sliceStream(n);
|
|
@@ -3185,8 +3186,8 @@ function ml(e, t) {
|
|
|
3185
3186
|
}
|
|
3186
3187
|
return e;
|
|
3187
3188
|
}
|
|
3188
|
-
const
|
|
3189
|
-
function
|
|
3189
|
+
const vl = { 42: We, 43: We, 45: We, 48: We, 49: We, 50: We, 51: We, 52: We, 53: We, 54: We, 55: We, 56: We, 57: We, 62: ri }, wl = { 91: Zs }, bl = { [-2]: Ar, [-1]: Ar, 32: Ar }, El = { 35: tl, 42: On, 45: [Oo, On], 60: rl, 61: Oo, 95: On, 96: Qo, 126: Qo }, kl = { 38: Ai, 92: oi }, Pl = { [-5]: ir, [-4]: ir, [-3]: ir, 33: cl, 38: Ai, 42: Br, 60: [Gs, il], 91: ul, 92: [el, oi], 93: Kr, 95: Br, 96: Ys }, Dl = { null: [Br, gl] }, Cl = Object.freeze(Object.defineProperty({ __proto__: null, attentionMarkers: { null: [42, 95] }, contentInitial: wl, disable: { null: [] }, document: vl, flow: El, flowInitial: bl, insideSpan: Dl, string: kl, text: Pl }, Symbol.toStringTag, { value: "Module" }));
|
|
3190
|
+
function Sl(e, t, r) {
|
|
3190
3191
|
let n = { _bufferIndex: -1, _index: 0, line: r && r.line || 1, column: r && r.column || 1, offset: r && r.offset || 0 };
|
|
3191
3192
|
const o = {}, A = [];
|
|
3192
3193
|
let i = [], a = [];
|
|
@@ -3285,9 +3286,9 @@ function Cl(e, t, r) {
|
|
|
3285
3286
|
}
|
|
3286
3287
|
})(E);
|
|
3287
3288
|
function O(N) {
|
|
3288
|
-
return C = N, x = 0, N.length === 0 ? k :
|
|
3289
|
+
return C = N, x = 0, N.length === 0 ? k : S(N[x]);
|
|
3289
3290
|
}
|
|
3290
|
-
function
|
|
3291
|
+
function S(N) {
|
|
3291
3292
|
return function(U) {
|
|
3292
3293
|
return B = (function() {
|
|
3293
3294
|
const M = u(), L = c.previous, m = c.currentConstruct, K = c.events.length, w = Array.from(a);
|
|
@@ -3302,7 +3303,7 @@ function Cl(e, t, r) {
|
|
|
3302
3303
|
return b(Q, B), P;
|
|
3303
3304
|
}
|
|
3304
3305
|
function H(N) {
|
|
3305
|
-
return B.restore(), ++x < C.length ?
|
|
3306
|
+
return B.restore(), ++x < C.length ? S(C[x]) : k;
|
|
3306
3307
|
}
|
|
3307
3308
|
};
|
|
3308
3309
|
}
|
|
@@ -3313,8 +3314,8 @@ function Cl(e, t, r) {
|
|
|
3313
3314
|
n.line in o && n.column < 2 && (n.column = o[n.line], n.offset += o[n.line] - 1);
|
|
3314
3315
|
}
|
|
3315
3316
|
}
|
|
3316
|
-
const _o = /[\0\t\n\r]/g,
|
|
3317
|
-
function
|
|
3317
|
+
const _o = /[\0\t\n\r]/g, Bl = /\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;
|
|
3318
|
+
function xl(e, t, r) {
|
|
3318
3319
|
if (t) return t;
|
|
3319
3320
|
if (r.charCodeAt(0) === 35) {
|
|
3320
3321
|
const n = r.charCodeAt(1), o = n === 120 || n === 88;
|
|
@@ -3323,9 +3324,9 @@ function Bl(e, t, r) {
|
|
|
3323
3324
|
return Wr(r) || e;
|
|
3324
3325
|
}
|
|
3325
3326
|
const di = {}.hasOwnProperty;
|
|
3326
|
-
function
|
|
3327
|
+
function Il(e, t, r) {
|
|
3327
3328
|
return typeof t != "string" && (r = t, t = void 0), (function(n) {
|
|
3328
|
-
const o = { transforms: [], canContainEols: ["emphasis", "fragment", "heading", "paragraph", "strong"], enter: { autolink: s(ke), autolinkProtocol:
|
|
3329
|
+
const o = { transforms: [], canContainEols: ["emphasis", "fragment", "heading", "paragraph", "strong"], enter: { autolink: s(ke), autolinkProtocol: S, autolinkEmail: S, atxHeading: s(be), blockQuote: s(G), characterEscape: S, characterReference: S, codeFenced: s(ce), codeFencedFenceInfo: c, codeFencedFenceMeta: c, codeIndented: s(ce, c), codeText: s(Ae, c), codeTextData: S, data: S, codeFlowValue: S, definition: s(we), definitionDestinationString: c, definitionLabelString: c, definitionTitleString: c, emphasis: s(ue), hardBreakEscape: s(Te), hardBreakTrailing: s(Te), htmlFlow: s(Ue, c), htmlFlowData: S, htmlText: s(Ue, c), htmlTextData: S, image: s(Ut), label: c, link: s(ke), listItem: s(Ft), listItemValue: y, listOrdered: s(ge, g), listUnordered: s(ge), paragraph: s(At), reference: me, referenceString: c, resourceDestinationString: c, resourceTitleString: c, setextHeading: s(be), strong: s(jt), thematicBreak: s(it) }, exit: { atxHeading: d(), atxHeadingSequence: x, autolink: d(), autolinkEmail: j, autolinkProtocol: et, blockQuote: d(), characterEscapeValue: _, characterReferenceMarkerHexadecimal: ze, characterReferenceMarkerNumeric: ze, characterReferenceValue: Se, characterReference: Oe, codeFenced: d(h), codeFencedFence: b, codeFencedFenceInfo: f, codeFencedFenceMeta: v, codeFlowValue: _, codeIndented: d(E), codeText: d(L), codeTextData: _, data: _, definition: d(), definitionDestinationString: C, definitionLabelString: P, definitionTitleString: k, emphasis: d(), hardBreakEscape: d(N), hardBreakTrailing: d(N), htmlFlow: d(U), htmlFlowData: _, htmlText: d(M), htmlTextData: _, image: d(K), label: q, labelText: w, lineEnding: H, link: d(m), listItem: d(), listOrdered: d(), listUnordered: d(), paragraph: d(), referenceString: le, resourceDestinationString: te, resourceTitleString: $, resource: ie, setextHeading: d(O), setextHeadingLineSequence: B, setextHeadingText: Q, strong: d(), thematicBreak: d() } };
|
|
3329
3330
|
pi(o, (n || {}).mdastExtensions || []);
|
|
3330
3331
|
const A = {};
|
|
3331
3332
|
return i;
|
|
@@ -3346,17 +3347,17 @@ function xl(e, t, r) {
|
|
|
3346
3347
|
return Y;
|
|
3347
3348
|
}
|
|
3348
3349
|
function a(I, Y, F) {
|
|
3349
|
-
let ae, X, Qe,
|
|
3350
|
+
let ae, X, Qe, De, de = Y - 1, Be = -1, Ce = !1;
|
|
3350
3351
|
for (; ++de <= F; ) {
|
|
3351
3352
|
const se = I[de];
|
|
3352
3353
|
switch (se[1].type) {
|
|
3353
3354
|
case "listUnordered":
|
|
3354
3355
|
case "listOrdered":
|
|
3355
3356
|
case "blockQuote":
|
|
3356
|
-
se[0] === "enter" ? Be++ : Be--,
|
|
3357
|
+
se[0] === "enter" ? Be++ : Be--, De = void 0;
|
|
3357
3358
|
break;
|
|
3358
3359
|
case "lineEndingBlank":
|
|
3359
|
-
se[0] === "enter" && (ae && !
|
|
3360
|
+
se[0] === "enter" && (ae && !De && !Be && !Qe && (Qe = de), De = void 0);
|
|
3360
3361
|
break;
|
|
3361
3362
|
case "linePrefix":
|
|
3362
3363
|
case "listItemValue":
|
|
@@ -3365,7 +3366,7 @@ function xl(e, t, r) {
|
|
|
3365
3366
|
case "listItemPrefixWhitespace":
|
|
3366
3367
|
break;
|
|
3367
3368
|
default:
|
|
3368
|
-
|
|
3369
|
+
De = void 0;
|
|
3369
3370
|
}
|
|
3370
3371
|
if (!Be && se[0] === "enter" && se[1].type === "listItemPrefix" || Be === -1 && se[0] === "exit" && (se[1].type === "listUnordered" || se[1].type === "listOrdered")) {
|
|
3371
3372
|
if (ae) {
|
|
@@ -3381,7 +3382,7 @@ function xl(e, t, r) {
|
|
|
3381
3382
|
}
|
|
3382
3383
|
if (se[1].type === "listItemPrefix") {
|
|
3383
3384
|
const Ve = { type: "listItem", _spread: !1, start: Object.assign({}, se[1].start), end: void 0 };
|
|
3384
|
-
ae = Ve, I.splice(de, 0, ["enter", Ve, se[2]]), de++, F++, Qe = void 0,
|
|
3385
|
+
ae = Ve, I.splice(de, 0, ["enter", Ve, se[2]]), de++, F++, Qe = void 0, De = !0;
|
|
3385
3386
|
}
|
|
3386
3387
|
}
|
|
3387
3388
|
}
|
|
@@ -3468,7 +3469,7 @@ function xl(e, t, r) {
|
|
|
3468
3469
|
function O() {
|
|
3469
3470
|
this.data.setextHeadingSlurpLineEnding = void 0;
|
|
3470
3471
|
}
|
|
3471
|
-
function
|
|
3472
|
+
function S(I) {
|
|
3472
3473
|
const Y = this.stack[this.stack.length - 1].children;
|
|
3473
3474
|
let F = Y[Y.length - 1];
|
|
3474
3475
|
(!F || F.type !== "text") && (F = kt(), F.position = { start: Bt(I.start), end: void 0 }, Y.push(F)), this.stack.push(F);
|
|
@@ -3481,7 +3482,7 @@ function xl(e, t, r) {
|
|
|
3481
3482
|
const Y = this.stack[this.stack.length - 1];
|
|
3482
3483
|
if (this.data.atHardBreak)
|
|
3483
3484
|
return Y.children[Y.children.length - 1].position.end = Bt(I.end), void (this.data.atHardBreak = void 0);
|
|
3484
|
-
!this.data.setextHeadingSlurpLineEnding && o.canContainEols.includes(Y.type) && (
|
|
3485
|
+
!this.data.setextHeadingSlurpLineEnding && o.canContainEols.includes(Y.type) && (S.call(this, I), _.call(this, I));
|
|
3485
3486
|
}
|
|
3486
3487
|
function N() {
|
|
3487
3488
|
this.data.atHardBreak = !0;
|
|
@@ -3517,7 +3518,7 @@ function xl(e, t, r) {
|
|
|
3517
3518
|
function w(I) {
|
|
3518
3519
|
const Y = this.sliceSerialize(I), F = this.stack[this.stack.length - 2];
|
|
3519
3520
|
F.label = (function(ae) {
|
|
3520
|
-
return ae.replace(
|
|
3521
|
+
return ae.replace(Bl, xl);
|
|
3521
3522
|
})(Y), F.identifier = $t(Y).toLowerCase();
|
|
3522
3523
|
}
|
|
3523
3524
|
function q() {
|
|
@@ -3548,7 +3549,7 @@ function xl(e, t, r) {
|
|
|
3548
3549
|
function ze(I) {
|
|
3549
3550
|
this.data.characterReferenceType = I.type;
|
|
3550
3551
|
}
|
|
3551
|
-
function
|
|
3552
|
+
function Se(I) {
|
|
3552
3553
|
const Y = this.sliceSerialize(I), F = this.data.characterReferenceType;
|
|
3553
3554
|
let ae;
|
|
3554
3555
|
F ? (ae = ni(Y, F === "characterReferenceMarkerNumeric" ? 10 : 16), this.data.characterReferenceType = void 0) : ae = Wr(Y), this.stack[this.stack.length - 1].value += ae;
|
|
@@ -3614,11 +3615,11 @@ function xl(e, t, r) {
|
|
|
3614
3615
|
for (; !ii(n); ) ;
|
|
3615
3616
|
return n;
|
|
3616
3617
|
})((function(n) {
|
|
3617
|
-
const o = { constructs:
|
|
3618
|
+
const o = { constructs: _s([Cl, ...(n || {}).extensions || []]), content: A(zs), defined: [], document: A(qs), flow: A(fl), lazy: {}, string: A(hl), text: A(ml) };
|
|
3618
3619
|
return o;
|
|
3619
3620
|
function A(i) {
|
|
3620
3621
|
return function(a) {
|
|
3621
|
-
return
|
|
3622
|
+
return Sl(o, i, a);
|
|
3622
3623
|
};
|
|
3623
3624
|
}
|
|
3624
3625
|
})(r).document().write((/* @__PURE__ */ (function() {
|
|
@@ -3658,10 +3659,10 @@ function pi(e, t) {
|
|
|
3658
3659
|
let r = -1;
|
|
3659
3660
|
for (; ++r < t.length; ) {
|
|
3660
3661
|
const n = t[r];
|
|
3661
|
-
Array.isArray(n) ? pi(e, n) :
|
|
3662
|
+
Array.isArray(n) ? pi(e, n) : Tl(e, n);
|
|
3662
3663
|
}
|
|
3663
3664
|
}
|
|
3664
|
-
function
|
|
3665
|
+
function Tl(e, t) {
|
|
3665
3666
|
let r;
|
|
3666
3667
|
for (r in t) if (di.call(t, r)) switch (r) {
|
|
3667
3668
|
case "canContainEols": {
|
|
@@ -3685,10 +3686,10 @@ function Il(e, t) {
|
|
|
3685
3686
|
function No(e, t) {
|
|
3686
3687
|
throw e ? new Error("Cannot close `" + e.type + "` (" + un({ start: e.start, end: e.end }) + "): a different token (`" + t.type + "`, " + un({ start: t.start, end: t.end }) + ") is open") : new Error("Cannot close document, a token (`" + t.type + "`, " + un({ start: t.start, end: t.end }) + ") is still open");
|
|
3687
3688
|
}
|
|
3688
|
-
function
|
|
3689
|
+
function Ql(e) {
|
|
3689
3690
|
const t = this;
|
|
3690
3691
|
t.parser = function(r) {
|
|
3691
|
-
return
|
|
3692
|
+
return Il(r, { ...t.data("settings"), ...e, extensions: t.data("micromarkExtensions") || [], mdastExtensions: t.data("fromMarkdownExtensions") || [] });
|
|
3692
3693
|
};
|
|
3693
3694
|
}
|
|
3694
3695
|
function Lo(e, t) {
|
|
@@ -3703,7 +3704,7 @@ function Lo(e, t) {
|
|
|
3703
3704
|
function Ro(e) {
|
|
3704
3705
|
return e.spread ?? e.children.length > 1;
|
|
3705
3706
|
}
|
|
3706
|
-
function
|
|
3707
|
+
function Ml(e) {
|
|
3707
3708
|
const t = String(e), r = /\r?\n|\r/g;
|
|
3708
3709
|
let n = r.exec(t), o = 0;
|
|
3709
3710
|
const A = [];
|
|
@@ -3722,7 +3723,7 @@ function Ho(e, t, r) {
|
|
|
3722
3723
|
}
|
|
3723
3724
|
return o > n ? e.slice(n, o) : "";
|
|
3724
3725
|
}
|
|
3725
|
-
const
|
|
3726
|
+
const Ol = { blockquote: function(e, t) {
|
|
3726
3727
|
const r = { type: "element", tagName: "blockquote", properties: {}, children: e.wrap(e.all(t), !0) };
|
|
3727
3728
|
return e.patch(t, r), e.applyData(t, r);
|
|
3728
3729
|
}, break: function(e, t) {
|
|
@@ -3862,13 +3863,13 @@ const Ml = { blockquote: function(e, t) {
|
|
|
3862
3863
|
const c = { type: "element", tagName: "tr", properties: {}, children: e.wrap(s, !0) };
|
|
3863
3864
|
return e.patch(t, c), e.applyData(t, c);
|
|
3864
3865
|
}, text: function(e, t) {
|
|
3865
|
-
const r = { type: "text", value:
|
|
3866
|
+
const r = { type: "text", value: Ml(String(t.value)) };
|
|
3866
3867
|
return e.patch(t, r), e.applyData(t, r);
|
|
3867
3868
|
}, thematicBreak: function(e, t) {
|
|
3868
3869
|
const r = { type: "element", tagName: "hr", properties: {}, children: [] };
|
|
3869
3870
|
return e.patch(t, r), e.applyData(t, r);
|
|
3870
|
-
}, toml:
|
|
3871
|
-
function
|
|
3871
|
+
}, toml: Dn, yaml: Dn, definition: Dn, footnoteDefinition: Dn };
|
|
3872
|
+
function Dn() {
|
|
3872
3873
|
}
|
|
3873
3874
|
const Uo = typeof self == "object" ? self : globalThis, Fo = (e) => (/* @__PURE__ */ ((t, r) => {
|
|
3874
3875
|
const n = (A, i) => (t.set(i, A), A), o = (A) => {
|
|
@@ -3922,10 +3923,10 @@ const Uo = typeof self == "object" ? self : globalThis, Fo = (e) => (/* @__PURE_
|
|
|
3922
3923
|
return n(new Uo[i](a), A);
|
|
3923
3924
|
};
|
|
3924
3925
|
return o;
|
|
3925
|
-
})(/* @__PURE__ */ new Map(), e))(0), Vt = "", { toString:
|
|
3926
|
+
})(/* @__PURE__ */ new Map(), e))(0), Vt = "", { toString: _l } = {}, { keys: Nl } = Object, An = (e) => {
|
|
3926
3927
|
const t = typeof e;
|
|
3927
3928
|
if (t !== "object" || !e) return [0, t];
|
|
3928
|
-
const r =
|
|
3929
|
+
const r = _l.call(e).slice(8, -1);
|
|
3929
3930
|
switch (r) {
|
|
3930
3931
|
case "Array":
|
|
3931
3932
|
return [1, Vt];
|
|
@@ -3989,7 +3990,7 @@ const Uo = typeof self == "object" ? self : globalThis, Fo = (e) => (/* @__PURE_
|
|
|
3989
3990
|
}
|
|
3990
3991
|
if (A && "toJSON" in l) return c(l.toJSON());
|
|
3991
3992
|
const g = [], y = s([d, g], l);
|
|
3992
|
-
for (const f of
|
|
3993
|
+
for (const f of Nl(l)) (o || !Cn(An(l[f]))) && g.push([c(f), c(l[f])]);
|
|
3993
3994
|
return y;
|
|
3994
3995
|
}
|
|
3995
3996
|
case 3:
|
|
@@ -4015,21 +4016,21 @@ const Uo = typeof self == "object" ? self : globalThis, Fo = (e) => (/* @__PURE_
|
|
|
4015
4016
|
return c;
|
|
4016
4017
|
})(!(t || r), !!t, /* @__PURE__ */ new Map(), n))(e), n;
|
|
4017
4018
|
}, Fn = typeof structuredClone == "function" ? (e, t) => t && ("json" in t || "lossy" in t) ? Fo(jo(e, t)) : structuredClone(e) : (e, t) => Fo(jo(e, t));
|
|
4018
|
-
function
|
|
4019
|
+
function Ll(e, t) {
|
|
4019
4020
|
const r = [{ type: "text", value: "↩" }];
|
|
4020
4021
|
return t > 1 && r.push({ type: "element", tagName: "sup", properties: {}, children: [{ type: "text", value: String(t) }] }), r;
|
|
4021
4022
|
}
|
|
4022
|
-
function
|
|
4023
|
+
function Rl(e, t) {
|
|
4023
4024
|
return "Back to reference " + (e + 1) + (t > 1 ? "-" + t : "");
|
|
4024
4025
|
}
|
|
4025
4026
|
const fi = function(e) {
|
|
4026
|
-
if (e == null) return
|
|
4027
|
-
if (typeof e == "function") return
|
|
4027
|
+
if (e == null) return Hl;
|
|
4028
|
+
if (typeof e == "function") return Sn(e);
|
|
4028
4029
|
if (typeof e == "object") return Array.isArray(e) ? (function(t) {
|
|
4029
4030
|
const r = [];
|
|
4030
4031
|
let n = -1;
|
|
4031
4032
|
for (; ++n < t.length; ) r[n] = fi(t[n]);
|
|
4032
|
-
return
|
|
4033
|
+
return Sn(o);
|
|
4033
4034
|
function o(...A) {
|
|
4034
4035
|
let i = -1;
|
|
4035
4036
|
for (; ++i < r.length; ) if (r[i].apply(this, A)) return !0;
|
|
@@ -4037,7 +4038,7 @@ const fi = function(e) {
|
|
|
4037
4038
|
}
|
|
4038
4039
|
})(e) : (function(t) {
|
|
4039
4040
|
const r = t;
|
|
4040
|
-
return
|
|
4041
|
+
return Sn(n);
|
|
4041
4042
|
function n(o) {
|
|
4042
4043
|
const A = o;
|
|
4043
4044
|
let i;
|
|
@@ -4046,25 +4047,25 @@ const fi = function(e) {
|
|
|
4046
4047
|
}
|
|
4047
4048
|
})(e);
|
|
4048
4049
|
if (typeof e == "string") return (function(t) {
|
|
4049
|
-
return
|
|
4050
|
+
return Sn(r);
|
|
4050
4051
|
function r(n) {
|
|
4051
4052
|
return n && n.type === t;
|
|
4052
4053
|
}
|
|
4053
4054
|
})(e);
|
|
4054
4055
|
throw new Error("Expected function, string, or object as test");
|
|
4055
4056
|
};
|
|
4056
|
-
function
|
|
4057
|
+
function Sn(e) {
|
|
4057
4058
|
return function(t, r, n) {
|
|
4058
4059
|
return !(!(function(o) {
|
|
4059
4060
|
return o !== null && typeof o == "object" && "type" in o;
|
|
4060
4061
|
})(t) || !e.call(this, t, typeof r == "number" ? r : void 0, n || void 0));
|
|
4061
4062
|
};
|
|
4062
4063
|
}
|
|
4063
|
-
function
|
|
4064
|
+
function Hl() {
|
|
4064
4065
|
return !0;
|
|
4065
4066
|
}
|
|
4066
|
-
const zo = [],
|
|
4067
|
-
function
|
|
4067
|
+
const zo = [], Ul = !0, qo = !1;
|
|
4068
|
+
function Fl(e, t, r, n) {
|
|
4068
4069
|
let o;
|
|
4069
4070
|
typeof t == "function" && typeof r != "function" ? (n = r, r = t) : o = t;
|
|
4070
4071
|
const A = fi(o), i = n ? -1 : 1;
|
|
@@ -4078,7 +4079,7 @@ function Ul(e, t, r, n) {
|
|
|
4078
4079
|
function u() {
|
|
4079
4080
|
let p, g, y, f = zo;
|
|
4080
4081
|
if ((!t || A(s, c, l[l.length - 1] || void 0)) && (f = (function(v) {
|
|
4081
|
-
return Array.isArray(v) ? v : typeof v == "number" ? [
|
|
4082
|
+
return Array.isArray(v) ? v : typeof v == "number" ? [Ul, v] : v == null ? zo : [v];
|
|
4082
4083
|
})(r(s, l)), f[0] === qo)) return f;
|
|
4083
4084
|
if ("children" in s && s.children) {
|
|
4084
4085
|
const v = s;
|
|
@@ -4094,14 +4095,14 @@ function Ul(e, t, r, n) {
|
|
|
4094
4095
|
}
|
|
4095
4096
|
function gi(e, t, r, n) {
|
|
4096
4097
|
let o, A, i;
|
|
4097
|
-
typeof t == "function" ? (A = void 0, i = t, o = r) : (A = t, i = r, o = n),
|
|
4098
|
+
typeof t == "function" ? (A = void 0, i = t, o = r) : (A = t, i = r, o = n), Fl(e, A, function(a, s) {
|
|
4098
4099
|
const c = s[s.length - 1], l = c ? c.children.indexOf(a) : void 0;
|
|
4099
4100
|
return i(a, l, c);
|
|
4100
4101
|
}, o);
|
|
4101
4102
|
}
|
|
4102
|
-
const xr = {}.hasOwnProperty,
|
|
4103
|
-
function
|
|
4104
|
-
const r = t ||
|
|
4103
|
+
const xr = {}.hasOwnProperty, jl = {};
|
|
4104
|
+
function zl(e, t) {
|
|
4105
|
+
const r = t || jl, n = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), A = /* @__PURE__ */ new Map(), i = { ...Ol, ...r.handlers }, a = { all: function(s) {
|
|
4105
4106
|
const c = [];
|
|
4106
4107
|
if ("children" in s) {
|
|
4107
4108
|
const l = s.children;
|
|
@@ -4118,7 +4119,7 @@ function jl(e, t) {
|
|
|
4118
4119
|
}
|
|
4119
4120
|
}
|
|
4120
4121
|
return c;
|
|
4121
|
-
}, applyData:
|
|
4122
|
+
}, applyData: Gl, definitionById: n, footnoteById: o, footnoteCounts: A, footnoteOrder: [], handlers: i, one: function(s, c) {
|
|
4122
4123
|
const l = s.type, d = a.handlers[l];
|
|
4123
4124
|
if (xr.call(a.handlers, l) && d) return d(a, s, c);
|
|
4124
4125
|
if (a.options.passThrough && a.options.passThrough.includes(l)) {
|
|
@@ -4128,8 +4129,8 @@ function jl(e, t) {
|
|
|
4128
4129
|
}
|
|
4129
4130
|
return Fn(s);
|
|
4130
4131
|
}
|
|
4131
|
-
return (a.options.unknownHandler ||
|
|
4132
|
-
}, options: r, patch:
|
|
4132
|
+
return (a.options.unknownHandler || Wl)(a, s, c);
|
|
4133
|
+
}, options: r, patch: ql, wrap: Yl };
|
|
4133
4134
|
return gi(e, function(s) {
|
|
4134
4135
|
if (s.type === "definition" || s.type === "footnoteDefinition") {
|
|
4135
4136
|
const c = s.type === "definition" ? n : o, l = String(s.identifier).toUpperCase();
|
|
@@ -4137,13 +4138,13 @@ function jl(e, t) {
|
|
|
4137
4138
|
}
|
|
4138
4139
|
}), a;
|
|
4139
4140
|
}
|
|
4140
|
-
function
|
|
4141
|
+
function ql(e, t) {
|
|
4141
4142
|
e.position && (t.position = (function(r) {
|
|
4142
4143
|
const n = qr(r), o = JA(r);
|
|
4143
4144
|
if (n && o) return { start: n, end: o };
|
|
4144
4145
|
})(e));
|
|
4145
4146
|
}
|
|
4146
|
-
function
|
|
4147
|
+
function Gl(e, t) {
|
|
4147
4148
|
let r = t;
|
|
4148
4149
|
if (e && e.data) {
|
|
4149
4150
|
const n = e.data.hName, o = e.data.hChildren, A = e.data.hProperties;
|
|
@@ -4151,11 +4152,11 @@ function ql(e, t) {
|
|
|
4151
4152
|
}
|
|
4152
4153
|
return r;
|
|
4153
4154
|
}
|
|
4154
|
-
function
|
|
4155
|
+
function Wl(e, t) {
|
|
4155
4156
|
const r = t.data || {}, n = !("value" in t) || xr.call(r, "hProperties") || xr.call(r, "hChildren") ? { type: "element", tagName: "div", properties: {}, children: e.all(t) } : { type: "text", value: t.value };
|
|
4156
4157
|
return e.patch(t, n), e.applyData(t, n);
|
|
4157
4158
|
}
|
|
4158
|
-
function
|
|
4159
|
+
function Yl(e, t) {
|
|
4159
4160
|
const r = [];
|
|
4160
4161
|
let n = -1;
|
|
4161
4162
|
for (t && r.push({ type: "text", value: `
|
|
@@ -4170,8 +4171,8 @@ function Go(e) {
|
|
|
4170
4171
|
return e.slice(t);
|
|
4171
4172
|
}
|
|
4172
4173
|
function Wo(e, t) {
|
|
4173
|
-
const r =
|
|
4174
|
-
const a = typeof i.options.clobberPrefix == "string" ? i.options.clobberPrefix : "user-content-", s = i.options.footnoteBackContent ||
|
|
4174
|
+
const r = zl(e, t), n = r.one(e, void 0), o = (function(i) {
|
|
4175
|
+
const a = typeof i.options.clobberPrefix == "string" ? i.options.clobberPrefix : "user-content-", s = i.options.footnoteBackContent || Ll, c = i.options.footnoteBackLabel || Rl, l = i.options.footnoteLabel || "Footnotes", d = i.options.footnoteLabelTagName || "h2", u = i.options.footnoteLabelProperties || { className: ["sr-only"] }, p = [];
|
|
4175
4176
|
let g = -1;
|
|
4176
4177
|
for (; ++g < i.footnoteOrder.length; ) {
|
|
4177
4178
|
const y = i.footnoteById.get(i.footnoteOrder[g]);
|
|
@@ -4199,7 +4200,7 @@ function Wo(e, t) {
|
|
|
4199
4200
|
return o && A.children.push({ type: "text", value: `
|
|
4200
4201
|
` }, o), A;
|
|
4201
4202
|
}
|
|
4202
|
-
function
|
|
4203
|
+
function Kl(e, t) {
|
|
4203
4204
|
return e && "run" in e ? async function(r, n) {
|
|
4204
4205
|
const o = Wo(r, { file: n, ...t });
|
|
4205
4206
|
await e.run(o, n);
|
|
@@ -4210,7 +4211,7 @@ function Yl(e, t) {
|
|
|
4210
4211
|
function Yo(e) {
|
|
4211
4212
|
if (e) throw e;
|
|
4212
4213
|
}
|
|
4213
|
-
var ar, Ko,
|
|
4214
|
+
var ar, Ko, Vl = (function() {
|
|
4214
4215
|
if (Ko) return ar;
|
|
4215
4216
|
Ko = 1;
|
|
4216
4217
|
var e = Object.prototype.hasOwnProperty, t = Object.prototype.toString, r = Object.defineProperty, n = Object.getOwnPropertyDescriptor, o = function(s) {
|
|
@@ -4236,13 +4237,13 @@ var ar, Ko, Kl = (function() {
|
|
|
4236
4237
|
return y;
|
|
4237
4238
|
}, ar;
|
|
4238
4239
|
})();
|
|
4239
|
-
const sr = XA(
|
|
4240
|
+
const sr = XA(Vl);
|
|
4240
4241
|
function Ir(e) {
|
|
4241
4242
|
if (typeof e != "object" || e === null) return !1;
|
|
4242
4243
|
const t = Object.getPrototypeOf(e);
|
|
4243
4244
|
return !(t !== null && t !== Object.prototype && Object.getPrototypeOf(t) !== null || Symbol.toStringTag in e || Symbol.iterator in e);
|
|
4244
4245
|
}
|
|
4245
|
-
function
|
|
4246
|
+
function Xl() {
|
|
4246
4247
|
const e = [], t = { run: function(...r) {
|
|
4247
4248
|
let n = -1;
|
|
4248
4249
|
const o = r.pop();
|
|
@@ -4367,13 +4368,13 @@ const ut = { basename: function(e, t) {
|
|
|
4367
4368
|
function an(e) {
|
|
4368
4369
|
if (typeof e != "string") throw new TypeError("Path must be a string. Received " + JSON.stringify(e));
|
|
4369
4370
|
}
|
|
4370
|
-
const
|
|
4371
|
+
const Jl = { cwd: function() {
|
|
4371
4372
|
return "/";
|
|
4372
4373
|
} };
|
|
4373
4374
|
function Tr(e) {
|
|
4374
4375
|
return !!(e !== null && typeof e == "object" && "href" in e && e.href && "protocol" in e && e.protocol && e.auth === void 0);
|
|
4375
4376
|
}
|
|
4376
|
-
function
|
|
4377
|
+
function Zl(e) {
|
|
4377
4378
|
if (typeof e == "string") e = new URL(e);
|
|
4378
4379
|
else if (!Tr(e)) {
|
|
4379
4380
|
const t = new TypeError('The "path" argument must be of type string or an instance of URL. Received `' + e + "`");
|
|
@@ -4405,7 +4406,7 @@ class hi {
|
|
|
4405
4406
|
constructor(t) {
|
|
4406
4407
|
let r;
|
|
4407
4408
|
var n;
|
|
4408
|
-
r = t ? Tr(t) ? { path: t } : typeof t == "string" || (n = t) && typeof n == "object" && "byteLength" in n && "byteOffset" in n ? { value: t } : t : {}, this.cwd = "cwd" in r ? "" :
|
|
4409
|
+
r = t ? Tr(t) ? { path: t } : typeof t == "string" || (n = t) && typeof n == "object" && "byteLength" in n && "byteOffset" in n ? { value: t } : t : {}, this.cwd = "cwd" in r ? "" : Jl.cwd(), this.data = {}, this.history = [], this.messages = [], this.value, this.map, this.result, this.stored;
|
|
4409
4410
|
let o, A = -1;
|
|
4410
4411
|
for (; ++A < lr.length; ) {
|
|
4411
4412
|
const i = lr[A];
|
|
@@ -4439,7 +4440,7 @@ class hi {
|
|
|
4439
4440
|
return this.history[this.history.length - 1];
|
|
4440
4441
|
}
|
|
4441
4442
|
set path(t) {
|
|
4442
|
-
Tr(t) && (t =
|
|
4443
|
+
Tr(t) && (t = Zl(t)), ur(t, "path"), this.path !== t && this.history.push(t);
|
|
4443
4444
|
}
|
|
4444
4445
|
get stem() {
|
|
4445
4446
|
return typeof this.path == "string" ? ut.basename(this.path, this.extname) : void 0;
|
|
@@ -4472,15 +4473,15 @@ function ur(e, t) {
|
|
|
4472
4473
|
function Vo(e, t) {
|
|
4473
4474
|
if (!e) throw new Error("Setting `" + t + "` requires `path` to be set too");
|
|
4474
4475
|
}
|
|
4475
|
-
const
|
|
4476
|
+
const $l = function(e) {
|
|
4476
4477
|
const t = this.constructor.prototype, r = t[e], n = function() {
|
|
4477
4478
|
return r.apply(n, arguments);
|
|
4478
4479
|
};
|
|
4479
4480
|
return Object.setPrototypeOf(n, t), n;
|
|
4480
|
-
},
|
|
4481
|
-
class Vr extends
|
|
4481
|
+
}, ec = {}.hasOwnProperty;
|
|
4482
|
+
class Vr extends $l {
|
|
4482
4483
|
constructor() {
|
|
4483
|
-
super("copy"), this.Compiler = void 0, this.Parser = void 0, this.attachers = [], this.compiler = void 0, this.freezeIndex = -1, this.frozen = void 0, this.namespace = {}, this.parser = void 0, this.transformers =
|
|
4484
|
+
super("copy"), this.Compiler = void 0, this.Parser = void 0, this.attachers = [], this.compiler = void 0, this.freezeIndex = -1, this.frozen = void 0, this.namespace = {}, this.parser = void 0, this.transformers = Xl();
|
|
4484
4485
|
}
|
|
4485
4486
|
copy() {
|
|
4486
4487
|
const t = new Vr();
|
|
@@ -4492,7 +4493,7 @@ class Vr extends Zl {
|
|
|
4492
4493
|
return t.data(sr(!0, {}, this.namespace)), t;
|
|
4493
4494
|
}
|
|
4494
4495
|
data(t, r) {
|
|
4495
|
-
return typeof t == "string" ? arguments.length === 2 ? (fr("data", this.frozen), this.namespace[t] = r, this) :
|
|
4496
|
+
return typeof t == "string" ? arguments.length === 2 ? (fr("data", this.frozen), this.namespace[t] = r, this) : ec.call(this.namespace, t) && this.namespace[t] || void 0 : t ? (fr("data", this.frozen), this.namespace = t, this) : this.namespace;
|
|
4496
4497
|
}
|
|
4497
4498
|
freeze() {
|
|
4498
4499
|
if (this.frozen) return this;
|
|
@@ -4603,7 +4604,7 @@ class Vr extends Zl {
|
|
|
4603
4604
|
}
|
|
4604
4605
|
}
|
|
4605
4606
|
}
|
|
4606
|
-
const
|
|
4607
|
+
const tc = new Vr().freeze();
|
|
4607
4608
|
function dr(e, t) {
|
|
4608
4609
|
if (typeof t != "function") throw new TypeError("Cannot `" + e + "` without `parser`");
|
|
4609
4610
|
}
|
|
@@ -4624,11 +4625,11 @@ function Bn(e) {
|
|
|
4624
4625
|
return !!(t && typeof t == "object" && "message" in t && "messages" in t);
|
|
4625
4626
|
})(e) ? e : new hi(e);
|
|
4626
4627
|
}
|
|
4627
|
-
const Zo = [], $o = { allowDangerousHtml: !0 },
|
|
4628
|
-
function
|
|
4629
|
-
const t = e.allowedElements, r = e.allowElement, n = e.children || "", o = e.className, A = e.components, i = e.disallowedElements, a = e.rehypePlugins || Zo, s = e.remarkPlugins || Zo, c = e.remarkRehypeOptions ? { ...e.remarkRehypeOptions, ...$o } : $o, l = e.skipHtml, d = e.unwrapDisallowed, u = e.urlTransform ||
|
|
4628
|
+
const Zo = [], $o = { allowDangerousHtml: !0 }, nc = /^(https?|ircs?|mailto|xmpp)$/i, rc = [{ from: "astPlugins", id: "remove-buggy-html-in-markdown-parser" }, { from: "allowDangerousHtml", id: "remove-buggy-html-in-markdown-parser" }, { from: "allowNode", id: "replace-allownode-allowedtypes-and-disallowedtypes", to: "allowElement" }, { from: "allowedTypes", id: "replace-allownode-allowedtypes-and-disallowedtypes", to: "allowedElements" }, { from: "disallowedTypes", id: "replace-allownode-allowedtypes-and-disallowedtypes", to: "disallowedElements" }, { from: "escapeHtml", id: "remove-buggy-html-in-markdown-parser" }, { from: "includeElementIndex", id: "#remove-includeelementindex" }, { from: "includeNodeIndex", id: "change-includenodeindex-to-includeelementindex" }, { from: "linkTarget", id: "remove-linktarget" }, { from: "plugins", id: "change-plugins-to-remarkplugins", to: "remarkPlugins" }, { from: "rawSourcePos", id: "#remove-rawsourcepos" }, { from: "renderers", id: "change-renderers-to-components", to: "components" }, { from: "source", id: "change-source-to-children", to: "children" }, { from: "sourcePos", id: "#remove-sourcepos" }, { from: "transformImageUri", id: "#add-urltransform", to: "urlTransform" }, { from: "transformLinkUri", id: "#add-urltransform", to: "urlTransform" }];
|
|
4629
|
+
function oc(e) {
|
|
4630
|
+
const t = e.allowedElements, r = e.allowElement, n = e.children || "", o = e.className, A = e.components, i = e.disallowedElements, a = e.rehypePlugins || Zo, s = e.remarkPlugins || Zo, c = e.remarkRehypeOptions ? { ...e.remarkRehypeOptions, ...$o } : $o, l = e.skipHtml, d = e.unwrapDisallowed, u = e.urlTransform || Ac, p = tc().use(Ql).use(s).use(Kl, c).use(a), g = new hi();
|
|
4630
4631
|
typeof n == "string" && (g.value = n);
|
|
4631
|
-
for (const v of
|
|
4632
|
+
for (const v of rc) Object.hasOwn(e, v.from) && (v.from, v.to && v.to, v.id);
|
|
4632
4633
|
const y = p.parse(g);
|
|
4633
4634
|
let f = p.runSync(y, g);
|
|
4634
4635
|
return o && (f = { type: "element", tagName: "div", properties: { className: o }, children: f.type === "root" ? f.children : [f] }), gi(f, function(v, b, h) {
|
|
@@ -4644,14 +4645,14 @@ function rc(e) {
|
|
|
4644
4645
|
let E = t ? !t.includes(v.tagName) : !!i && i.includes(v.tagName);
|
|
4645
4646
|
if (!E && r && typeof b == "number" && (E = !r(v, b, h)), E && h && typeof b == "number") return d && v.children ? h.children.splice(b, 1, ...v.children) : h.children.splice(b, 1), b;
|
|
4646
4647
|
}
|
|
4647
|
-
}),
|
|
4648
|
+
}), Is(f, { Fragment: He, components: A, ignoreInvalidStyle: !0, jsx: D, jsxs: he, passKeys: !0, passNode: !0 });
|
|
4648
4649
|
}
|
|
4649
|
-
function
|
|
4650
|
+
function Ac(e) {
|
|
4650
4651
|
const t = e.indexOf(":"), r = e.indexOf("?"), n = e.indexOf("#"), o = e.indexOf("/");
|
|
4651
|
-
return t === -1 || o !== -1 && t > o || r !== -1 && t > r || n !== -1 && t > n ||
|
|
4652
|
+
return t === -1 || o !== -1 && t > o || r !== -1 && t > r || n !== -1 && t > n || nc.test(e.slice(0, t)) ? e : "";
|
|
4652
4653
|
}
|
|
4653
|
-
const
|
|
4654
|
-
const { getFlow: r } = Gn(), { messages: n, replaceMessages: o } = vn(), { settings: A } = LA(), { hasChatHistoryLoaded: i } = HA(), a = { ...t, ...
|
|
4654
|
+
const ic = ({ children: e }) => D("div", { style: { whiteSpace: "normal" }, children: D(oc, { components: { p: ({ ...t }) => D("p", { style: { margin: 0, marginBottom: "0.5em", lineHeight: 1.4, textAlign: "left" }, children: t.children }), ul: ({ ...t }) => D("ul", { style: { paddingLeft: "clamp(8px, 3.5vw, 16px)", margin: 0, listStylePosition: "inside" }, children: t.children }), ol: ({ ...t }) => D("ol", { style: { paddingLeft: "clamp(8px, 3.5vw, 16px)", margin: 0, listStylePosition: "inside" }, children: t.children }), li: ({ ...t }) => D("li", { style: { marginBottom: "1px", lineHeight: 1.4 }, children: t.children }), code: ({ inline: t, children: r }) => t ? D("code", { style: { backgroundColor: "rgba(0, 0, 0, 0.3)", padding: "2px 4px", borderRadius: "4px", fontFamily: "inherit", fontSize: "0.95em" }, children: r }) : D("pre", { style: { backgroundColor: "rgba(0, 0, 0, 0.3)", padding: "8px", borderRadius: "4px", overflowX: "auto", margin: "0.5em 0", whiteSpace: "pre-wrap" }, children: D("code", { children: r }) }), blockquote: ({ ...t }) => D("blockquote", { style: { margin: 0, paddingLeft: "10px", borderLeft: "2px solid #ccc", color: "#666", fontStyle: "italic" }, children: t.children }) }, children: typeof e == "string" ? e : "" }) }), ac = { autoConfig: !0 }, sc = (e) => () => ((t) => {
|
|
4655
|
+
const { getFlow: r } = Gn(), { messages: n, replaceMessages: o } = vn(), { settings: A } = LA(), { hasChatHistoryLoaded: i } = HA(), a = { ...t, ...ac }, s = a.markdownComponent ? a.markdownComponent : ic;
|
|
4655
4656
|
V(() => {
|
|
4656
4657
|
var d, u;
|
|
4657
4658
|
if (i) {
|
|
@@ -4683,7 +4684,7 @@ const Ac = ({ children: e }) => S("div", { style: { whiteSpace: "normal" }, chil
|
|
|
4683
4684
|
if (!o) return;
|
|
4684
4685
|
const A = o[r];
|
|
4685
4686
|
return typeof A == "function" ? A : void 0;
|
|
4686
|
-
},
|
|
4687
|
+
}, lc = (e) => {
|
|
4687
4688
|
const { showToast: t } = (() => {
|
|
4688
4689
|
const { showToast: d, dismissToast: u, toasts: p, replaceToasts: g } = en();
|
|
4689
4690
|
return { showToast: d, dismissToast: u, toasts: p, replaceToasts: g };
|
|
@@ -4749,7 +4750,7 @@ const Ac = ({ children: e }) => S("div", { style: { whiteSpace: "normal" }, chil
|
|
|
4749
4750
|
} }), [i, a, r, A]), null;
|
|
4750
4751
|
});
|
|
4751
4752
|
mi.displayName = "BotController";
|
|
4752
|
-
const yi = yt(null),
|
|
4753
|
+
const yi = yt(null), cc = (e) => {
|
|
4753
4754
|
let { trackEvent: t, children: r } = e;
|
|
4754
4755
|
const n = ne(t);
|
|
4755
4756
|
return n.current = t, T.createElement(yi.Provider, { value: { trackEvent: (o) => n.current(o) } }, r);
|
|
@@ -4765,10 +4766,10 @@ const yi = yt(null), lc = (e) => {
|
|
|
4765
4766
|
`), T.createElement("a", { href: t, target: "_blank", rel: "noopener noreferrer", className: `qa-bot-login-button ${o ? "qa-bot-header-login-button" : ""} ${r}`, style: Object.assign(Object.assign({}, i), n), onClick: () => {
|
|
4766
4767
|
A({ type: "chatbot_login_clicked", loginUrl: t });
|
|
4767
4768
|
} }, "Log In"));
|
|
4768
|
-
},
|
|
4769
|
+
}, uc = () => T.createElement("div", { className: "user-login-icon", style: { alignItems: "center", justifyContent: "center", width: "30px", height: "30px", borderRadius: "50%", backgroundColor: "var(--primaryColor, #1a5b6e)", marginRight: "5px", display: "flex" }, role: "img", "aria-label": "User logged in", title: "User logged in" }, T.createElement("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "white", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", focusable: "false" }, T.createElement("path", { d: "M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2" }), T.createElement("circle", { cx: "12", cy: "7", r: "4" }))), Ne = [];
|
|
4769
4770
|
for (let e = 0; e < 256; ++e) Ne.push((e + 256).toString(16).slice(1));
|
|
4770
4771
|
let gr;
|
|
4771
|
-
const
|
|
4772
|
+
const dc = new Uint8Array(16);
|
|
4772
4773
|
var nA = { randomUUID: typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto) };
|
|
4773
4774
|
function wi(e, t, r) {
|
|
4774
4775
|
var n;
|
|
@@ -4778,7 +4779,7 @@ function wi(e, t, r) {
|
|
|
4778
4779
|
if (typeof crypto > "u" || !crypto.getRandomValues) throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
|
|
4779
4780
|
gr = crypto.getRandomValues.bind(crypto);
|
|
4780
4781
|
}
|
|
4781
|
-
return gr(
|
|
4782
|
+
return gr(dc);
|
|
4782
4783
|
})();
|
|
4783
4784
|
if (o.length < 16) throw new Error("Random bytes length must be >= 16");
|
|
4784
4785
|
return o[6] = 15 & o[6] | 64, o[8] = 63 & o[8] | 128, (function(A, i = 0) {
|
|
@@ -4788,24 +4789,24 @@ function wi(e, t, r) {
|
|
|
4788
4789
|
function Nt() {
|
|
4789
4790
|
return typeof localStorage < "u" && localStorage.getItem("QA_BOT_DEBUG") === "true";
|
|
4790
4791
|
}
|
|
4791
|
-
const
|
|
4792
|
-
Nt() && console.log("%c QA Bot Core %c v0.2.35 ",
|
|
4792
|
+
const pc = "background: #1a5b6e; color: white; padding: 2px 6px; border-radius: 3px;", fc = "background: #7c3aed; color: white; padding: 2px 6px; border-radius: 3px;", gc = "background: #059669; color: white; padding: 2px 6px; border-radius: 3px;", hc = "background: #f97316; color: white; padding: 2px 6px; border-radius: 3px;", mc = "background: #f59e0b; color: #000; padding: 2px 6px; border-radius: 3px 0 0 3px; font-weight: bold;", yc = "background: #fbbf24; color: #000; padding: 2px 6px; border-radius: 0 3px 3px 0;", vc = () => {
|
|
4793
|
+
Nt() && console.log("%c QA Bot Core %c v0.2.35 ", mc, yc);
|
|
4793
4794
|
}, In = function(e) {
|
|
4794
4795
|
if (Nt()) {
|
|
4795
4796
|
for (var t = arguments.length, r = new Array(t > 1 ? t - 1 : 0), n = 1; n < t; n++) r[n - 1] = arguments[n];
|
|
4796
|
-
console.log(`%c[Session]%c ${e}`,
|
|
4797
|
+
console.log(`%c[Session]%c ${e}`, pc, "", ...r);
|
|
4797
4798
|
}
|
|
4798
4799
|
}, pt = function(e) {
|
|
4799
4800
|
if (Nt()) {
|
|
4800
4801
|
for (var t = arguments.length, r = new Array(t > 1 ? t - 1 : 0), n = 1; n < t; n++) r[n - 1] = arguments[n];
|
|
4801
|
-
console.log(`%c[History]%c ${e}`,
|
|
4802
|
+
console.log(`%c[History]%c ${e}`, fc, "", ...r);
|
|
4802
4803
|
}
|
|
4803
|
-
},
|
|
4804
|
-
Nt() && console.log(`%c[Message]%c ${e}`,
|
|
4804
|
+
}, wc = (e, t) => {
|
|
4805
|
+
Nt() && console.log(`%c[Message]%c ${e}`, gc, "", t);
|
|
4805
4806
|
}, pn = function(e) {
|
|
4806
4807
|
if (Nt()) {
|
|
4807
4808
|
for (var t = arguments.length, r = new Array(t > 1 ? t - 1 : 0), n = 1; n < t; n++) r[n - 1] = arguments[n];
|
|
4808
|
-
console.log(`%c[Turnstile]%c ${e}`,
|
|
4809
|
+
console.log(`%c[Turnstile]%c ${e}`, hc, "", ...r);
|
|
4809
4810
|
}
|
|
4810
4811
|
}, bi = function() {
|
|
4811
4812
|
console.warn(...arguments);
|
|
@@ -4818,7 +4819,7 @@ const dc = "background: #1a5b6e; color: white; padding: 2px 6px; border-radius:
|
|
|
4818
4819
|
} catch {
|
|
4819
4820
|
return {};
|
|
4820
4821
|
}
|
|
4821
|
-
},
|
|
4822
|
+
}, bc = (e, t, r, n, o) => {
|
|
4822
4823
|
const A = gn();
|
|
4823
4824
|
if (!A[e] && (A[e] = { messages: [], startedAt: (/* @__PURE__ */ new Date()).toISOString(), preview: "" }, pt("NEW session created", { sessionId: e.slice(-12) })), A[e].messages.some((c) => c.id === t)) return void pt("DUPLICATE message skipped", { sessionId: e.slice(-12), messageId: t.slice(-8), sender: n });
|
|
4824
4825
|
const i = { id: t, content: r, sender: n, type: o, timestamp: Date.now() };
|
|
@@ -4856,17 +4857,17 @@ const dc = "background: #1a5b6e; color: white; padding: 2px 6px; border-radius:
|
|
|
4856
4857
|
}, ki = (e) => {
|
|
4857
4858
|
var t, r;
|
|
4858
4859
|
return (r = (t = gn()[e]) === null || t === void 0 ? void 0 : t.messages.length) !== null && r !== void 0 ? r : 0;
|
|
4859
|
-
},
|
|
4860
|
+
}, Ec = (e) => {
|
|
4860
4861
|
const t = gn()[e];
|
|
4861
4862
|
return t != null && t.startedAt ? Date.now() - new Date(t.startedAt).getTime() : 0;
|
|
4862
|
-
}, Pi = yt(void 0),
|
|
4863
|
+
}, Pi = yt(void 0), kc = (e) => {
|
|
4863
4864
|
let { children: t, getSessionId: r, setSessionId: n, resetSession: o, clearResettingFlag: A } = e;
|
|
4864
4865
|
return T.createElement(Pi.Provider, { value: { getSessionId: r, setSessionId: n, resetSession: o, clearResettingFlag: A } }, t);
|
|
4865
4866
|
}, Xr = () => {
|
|
4866
4867
|
const e = mt(Pi);
|
|
4867
4868
|
if (!e) throw new Error("useSession must be used within a SessionProvider");
|
|
4868
4869
|
return e;
|
|
4869
|
-
},
|
|
4870
|
+
}, Pc = () => {
|
|
4870
4871
|
const [e, t] = ee(!1), [r, n] = ee([]), [o, A] = ee(null), [i, a] = ee(0), s = ne(null), c = ne(null), { replaceMessages: l } = vn(), { toggleTextAreaDisabled: d } = RA(), { setSessionId: u, getSessionId: p } = Xr();
|
|
4871
4872
|
V(() => {
|
|
4872
4873
|
var y, f;
|
|
@@ -4923,10 +4924,10 @@ const dc = "background: #1a5b6e; color: white; padding: 2px 6px; border-radius:
|
|
|
4923
4924
|
const v = new Date(f), b = (/* @__PURE__ */ new Date()).getTime() - v.getTime(), h = Math.floor(b / 864e5);
|
|
4924
4925
|
return h === 0 ? v.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" }) : h === 1 ? "Yesterday" : h < 7 ? v.toLocaleDateString([], { weekday: "short" }) : v.toLocaleDateString([], { month: "short", day: "numeric" });
|
|
4925
4926
|
})(y.startedAt))))));
|
|
4926
|
-
},
|
|
4927
|
+
}, Di = (e) => {
|
|
4927
4928
|
var { width: t = 24, height: r = 24, color: n = "currentColor", children: o } = e, A = dA(e, ["width", "height", "color", "children"]);
|
|
4928
4929
|
return T.createElement("svg", _n({ xmlns: "http://www.w3.org/2000/svg", width: t, height: r, viewBox: "0 0 24 24", fill: "none", stroke: n, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", focusable: "false" }, A), o);
|
|
4929
|
-
},
|
|
4930
|
+
}, Dc = (e) => T.createElement(Di, e, T.createElement("path", { d: "M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" })), Cc = () => {
|
|
4930
4931
|
const { restartFlow: e } = Gn(), { setTextAreaValue: t } = RA(), { messages: r } = vn(), { getSessionId: n, resetSession: o, clearResettingFlag: A } = Xr(), { trackEvent: i } = vi();
|
|
4931
4932
|
return T.createElement("button", { onClick: async () => {
|
|
4932
4933
|
const a = n(), s = a ? ki(a) : 0;
|
|
@@ -4937,7 +4938,7 @@ const dc = "background: #1a5b6e; color: white; padding: 2px 6px; border-radius:
|
|
|
4937
4938
|
a.target.style.backgroundColor = "var(--secondaryColor, #0d5f6b)";
|
|
4938
4939
|
}, onMouseLeave: (a) => {
|
|
4939
4940
|
a.target.style.backgroundColor = "var(--primaryColor, #107180)";
|
|
4940
|
-
} }, T.createElement(
|
|
4941
|
+
} }, T.createElement(Dc, { width: 16, height: 16 }), "New Chat");
|
|
4941
4942
|
};
|
|
4942
4943
|
function Qr(e) {
|
|
4943
4944
|
if (typeof e == "string") return e;
|
|
@@ -4950,21 +4951,21 @@ function Qr(e) {
|
|
|
4950
4951
|
}
|
|
4951
4952
|
return "";
|
|
4952
4953
|
}
|
|
4953
|
-
const
|
|
4954
|
+
const Sc = () => {
|
|
4954
4955
|
const { getSessionId: e } = Xr(), t = W((r) => {
|
|
4955
4956
|
var n;
|
|
4956
4957
|
const o = (n = r.data) === null || n === void 0 ? void 0 : n.message;
|
|
4957
4958
|
if (!(o != null && o.id)) return;
|
|
4958
4959
|
const A = o.sender, i = o.type || "string";
|
|
4959
4960
|
let a;
|
|
4960
|
-
if (a = typeof o.content == "string" ? o.content : Qr(o.content),
|
|
4961
|
+
if (a = typeof o.content == "string" ? o.content : Qr(o.content), wc("TRACKED", { id: o.id, sender: A, content: a.substring(0, 50) + (a.length > 50 ? "..." : "") }), a.includes("rcb-options-container") || !a.trim()) return;
|
|
4961
4962
|
const s = e();
|
|
4962
|
-
|
|
4963
|
+
bc(s, o.id, a, A, i);
|
|
4963
4964
|
}, [e]);
|
|
4964
4965
|
return V(() => (window.addEventListener("rcb-pre-inject-message", t), () => {
|
|
4965
4966
|
window.removeEventListener("rcb-pre-inject-message", t);
|
|
4966
4967
|
}), [t]), null;
|
|
4967
|
-
},
|
|
4968
|
+
}, Bc = () => (V(() => {
|
|
4968
4969
|
const e = (A) => {
|
|
4969
4970
|
if (!["ArrowDown", "ArrowUp", "ArrowLeft", "ArrowRight", "Enter", " ", "Home", "End"].includes(A.key)) return;
|
|
4970
4971
|
const i = document.activeElement;
|
|
@@ -5186,7 +5187,7 @@ const sn = (e) => {
|
|
|
5186
5187
|
const A = n.match(/([.,;:!?]+)$/);
|
|
5187
5188
|
return A && (o = A[1], n = n.slice(0, -o.length)), `[${n}](${n})${o}`;
|
|
5188
5189
|
}), t;
|
|
5189
|
-
},
|
|
5190
|
+
}, xc = (e) => {
|
|
5190
5191
|
let { siteKey: t, onVerify: r, onError: n, loginUrl: o } = e;
|
|
5191
5192
|
const A = ne(null), i = ne(null), a = ne(!1), s = ne(null), c = ne(null), [l, d] = ee(!1), [u, p] = ee(0), g = ne("widget_error"), y = ne(null), f = o && o !== "/login", v = W(() => {
|
|
5192
5193
|
const E = window.turnstile;
|
|
@@ -5234,7 +5235,7 @@ const sn = (e) => {
|
|
|
5234
5235
|
}, [t, r, l]);
|
|
5235
5236
|
const h = T.createElement(T.Fragment, null, T.createElement("div", { "aria-hidden": "true", style: { position: "fixed", inset: 0, background: "rgba(0, 0, 0, 0.5)", zIndex: 999998 } }), T.createElement("div", { ref: i, role: "dialog", "aria-modal": "true", "aria-labelledby": "qa-bot-turnstile-label", tabIndex: -1, style: { position: "fixed", top: "50%", left: "50%", transform: "translate(-50%, -50%)", zIndex: 999999, background: "white", padding: "24px", borderRadius: "8px", boxShadow: "0 4px 20px rgba(0, 0, 0, 0.3)", maxWidth: "90vw", fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif' } }, T.createElement("span", { id: "qa-bot-turnstile-label", className: "sr-only", style: { position: "absolute", width: "1px", height: "1px", overflow: "hidden", clip: "rect(0, 0, 0, 0)", whiteSpace: "nowrap" } }, "Verification challenge"), l ? T.createElement("div", { style: { fontSize: "14px", lineHeight: "1.5", color: "#333" } }, u === 0 ? T.createElement("p", { style: { margin: "0 0 16px 0" } }, "Verification failed. You can try again", f && T.createElement(T.Fragment, null, ", or", " ", T.createElement("a", { href: o, target: "_blank", rel: "noopener noreferrer", style: { color: "var(--primaryColor, #107180)", fontWeight: "bold" } }, "log in"), " ", "to skip verification"), ".") : T.createElement(T.Fragment, null, T.createElement("p", { style: { margin: "0 0 8px 0" } }, "Verification is still not working. This can be caused by browser extensions (ad blockers, privacy tools) or VPN connections."), T.createElement("p", { style: { margin: "0 0 16px 0" } }, "Try disabling extensions, using a private/incognito window,", f && T.createElement(T.Fragment, null, " ", T.createElement("a", { href: o, target: "_blank", rel: "noopener noreferrer", style: { color: "var(--primaryColor, #107180)", fontWeight: "bold" } }, "logging in"), ","), " ", "or using a different browser.")), T.createElement("div", { style: { display: "flex", gap: "8px" } }, T.createElement("button", { type: "button", onClick: () => {
|
|
5236
5237
|
v(), a.current = !1, p((E) => E + 1), d(!1);
|
|
5237
|
-
}, style: { padding: "8px 16px", background: "var(--primaryColor, #107180)", color: "white", border: "none", borderRadius: "4px", cursor: "pointer", fontSize: "14px" } }, "Try again"), T.createElement("button", { type: "button", onClick: b, style: { padding: "8px 16px", background: "#f0f0f0", border: "1px solid #ccc", borderRadius: "4px", cursor: "pointer", fontSize: "14px" } }, "Close"))) : T.createElement(T.Fragment, null, T.createElement("div", { ref: A, style: { borderRadius: "8px", overflow: "hidden" } }), T.createElement("button", { type: "button", onClick: b, style: { marginTop: "16px", padding: "8px 16px", background: "#f0f0f0", border: "1px solid #ccc", borderRadius: "4px", cursor: "pointer", fontSize: "14px" } }, "Cancel"))));
|
|
5238
|
+
}, style: { padding: "8px 16px", background: "var(--primaryColor, #107180)", color: "white", border: "none", borderRadius: "4px", cursor: "pointer", fontSize: "14px" } }, "Try again"), T.createElement("button", { type: "button", onClick: b, style: { padding: "8px 16px", background: "#f0f0f0", color: "#333", border: "1px solid #ccc", borderRadius: "4px", cursor: "pointer", fontSize: "14px" } }, "Close"))) : T.createElement(T.Fragment, null, T.createElement("div", { ref: A, style: { borderRadius: "8px", overflow: "hidden" } }), T.createElement("button", { type: "button", onClick: b, style: { marginTop: "16px", padding: "8px 16px", background: "#f0f0f0", color: "#333", border: "1px solid #ccc", borderRadius: "4px", cursor: "pointer", fontSize: "14px" } }, "Cancel"))));
|
|
5238
5239
|
return Ii(h, document.body);
|
|
5239
5240
|
};
|
|
5240
5241
|
function AA(e) {
|
|
@@ -5245,21 +5246,22 @@ function AA(e) {
|
|
|
5245
5246
|
${o.join(`
|
|
5246
5247
|
`)}`;
|
|
5247
5248
|
}
|
|
5248
|
-
function
|
|
5249
|
+
function Ic(e) {
|
|
5249
5250
|
let { getState: t, onResubmit: r, trackEvent: n, loginUrl: o } = e;
|
|
5250
|
-
|
|
5251
|
-
|
|
5252
|
-
|
|
5253
|
-
|
|
5254
|
-
|
|
5255
|
-
|
|
5251
|
+
var A, i;
|
|
5252
|
+
const [a, s] = T.useState(null), [c, l] = T.useState(0), d = t(), u = (A = Ti) !== null && A !== void 0 ? A : {}, p = u.VITE_FORCE_TURNSTILE_WIDGET === "true", g = (i = d.siteKey) !== null && i !== void 0 ? i : p ? u.VITE_TURNSTILE_SITE_KEY : null;
|
|
5253
|
+
return g && (p || a !== g) ? T.createElement(xc, { key: c, siteKey: g, loginUrl: o, onVerify: async (y) => {
|
|
5254
|
+
d.token = y, n?.({ type: "chatbot_turnstile_completed" }), await r(y) === "needs_another_challenge" ? l((f) => f + 1) : s(d.siteKey);
|
|
5255
|
+
}, onError: (y, f) => {
|
|
5256
|
+
var v;
|
|
5257
|
+
s(d.siteKey), n?.({ type: "chatbot_turnstile_error", queryId: (v = d.pendingQuery) === null || v === void 0 ? void 0 : v.queryId, failureReason: y, cloudflareErrorCode: f });
|
|
5256
5258
|
} }) : null;
|
|
5257
5259
|
}
|
|
5258
|
-
const
|
|
5260
|
+
const Tc = "#1a5b6e", Qc = "#107180", Mc = "Arial, sans-serif", iA = "Q&A Bot", Oc = "/chat-icon.svg", _c = "Type your question here...", Nc = "Select an option to continue", Lc = !1, Rc = "Ask me a question!", aA = "/login", Hc = { general: { showHeader: !0, showFooter: !0 }, tooltip: { mode: "CLOSE" }, chatInput: { disabled: !1, characterLimit: 5e3, showCharacterCount: !1, allowNewline: !0, blockSpam: !1 }, chatWindow: { defaultOpen: !1, showScrollbar: !1 }, botBubble: { simulateStream: !0, streamSpeed: 10, showAvatar: !1 }, userBubble: { showAvatar: !1 }, notification: { disabled: !0, showCount: !1 }, audio: { disabled: !0 }, emoji: { disabled: !0 }, fileAttachment: { disabled: !0 } }, Jr = Ke((e, t) => {
|
|
5259
5261
|
var r, n, o;
|
|
5260
|
-
const { apiKey: A, qaEndpoint: i, ratingEndpoint: a, capabilitiesEndpoint: s, agentRatingEndpoint: c, welcomeMessage: l, open: d, onOpenChange: u, isLoggedIn: p, allowAnonAccess: g = !1, actingUser: y, primaryColor: f, secondaryColor: v, botName: b, logo: h, placeholder: E, errorMessage: P, embedded: k, footerText: C, footerLink: x, tooltipText: Q, loginUrl: B, turnstileSiteKey: O, backendId:
|
|
5262
|
+
const { apiKey: A, qaEndpoint: i, ratingEndpoint: a, capabilitiesEndpoint: s, agentRatingEndpoint: c, welcomeMessage: l, open: d, onOpenChange: u, isLoggedIn: p, allowAnonAccess: g = !1, actingUser: y, primaryColor: f, secondaryColor: v, botName: b, logo: h, placeholder: E, errorMessage: P, embedded: k, footerText: C, footerLink: x, tooltipText: Q, loginUrl: B, turnstileSiteKey: O, backendId: S, resourceContext: _, customFlow: H, onAnalyticsEvent: N } = e, U = ne(`bot_${Math.random().toString(36).substr(2, 9)}`);
|
|
5261
5263
|
V(() => {
|
|
5262
|
-
|
|
5264
|
+
vc();
|
|
5263
5265
|
}, []);
|
|
5264
5266
|
const M = ne(null);
|
|
5265
5267
|
M.current === null && (M.current = rA(), In("CREATED", M.current));
|
|
@@ -5307,7 +5309,7 @@ const Ic = "#1a5b6e", Tc = "#107180", Qc = "Arial, sans-serif", iA = "Q&A Bot",
|
|
|
5307
5309
|
V(() => {
|
|
5308
5310
|
$(p);
|
|
5309
5311
|
}, [p]);
|
|
5310
|
-
const ie = k !== void 0 ? k :
|
|
5312
|
+
const ie = k !== void 0 ? k : Lc, me = W((j) => {
|
|
5311
5313
|
var G;
|
|
5312
5314
|
N && N(Object.assign(Object.assign({}, j), { timestamp: Date.now(), sessionId: (G = M.current) !== null && G !== void 0 ? G : void 0, pageUrl: typeof window < "u" ? window.location.href : void 0, isEmbedded: ie }));
|
|
5313
5315
|
}, [N, ie]);
|
|
@@ -5315,13 +5317,13 @@ const Ic = "#1a5b6e", Tc = "#107180", Qc = "Arial, sans-serif", iA = "Q&A Bot",
|
|
|
5315
5317
|
K.current = (j) => me(j);
|
|
5316
5318
|
}, [me]);
|
|
5317
5319
|
const le = je(() => {
|
|
5318
|
-
const j = Object.assign({},
|
|
5319
|
-
j.general = Object.assign(Object.assign({}, j.general), { primaryColor: f ||
|
|
5320
|
-
const G = te === !1 ? [T.createElement(tA, { key: "login-button", loginUrl: B || aA, isHeaderButton: !0 })] : [T.createElement(
|
|
5321
|
-
j.header = { title: T.createElement("span", { style: { fontSize: 14, fontWeight: 500 } }, b || iA), showAvatar: !0, avatar: h ||
|
|
5320
|
+
const j = Object.assign({}, Hc);
|
|
5321
|
+
j.general = Object.assign(Object.assign({}, j.general), { primaryColor: f || Tc, secondaryColor: v || Qc, fontFamily: Mc, embedded: ie });
|
|
5322
|
+
const G = te === !1 ? [T.createElement(tA, { key: "login-button", loginUrl: B || aA, isHeaderButton: !0 })] : [T.createElement(Pc, { key: "history-button" }), T.createElement(uc, { key: "user-icon" })];
|
|
5323
|
+
j.header = { title: T.createElement("span", { style: { fontSize: 14, fontWeight: 500 } }, b || iA), showAvatar: !0, avatar: h || Oc, buttons: [...G, Pe.CLOSE_CHAT_BUTTON] }, j.chatInput = Object.assign(Object.assign({}, j.chatInput), { disabled: !1, enabledPlaceholderText: E || _c, disabledPlaceholderText: P || Nc }), j.tooltip = Object.assign(Object.assign({}, j.tooltip), { text: Q || Rc });
|
|
5322
5324
|
const ce = C ? x ? T.createElement("a", { href: x, target: "_blank", rel: "noopener noreferrer", key: "footer-link" }, C) : T.createElement("span", { key: "footer-text" }, C) : null;
|
|
5323
|
-
return j.footer = { text: ce ?? void 0, buttons: [T.createElement(
|
|
5324
|
-
}, [f, v, b, h, E, P, ie, Q, te, B, C, x]), ze = ne(null),
|
|
5325
|
+
return j.footer = { text: ce ?? void 0, buttons: [T.createElement(Cc, { key: "new-chat-button" })] }, j.chatWindow = Object.assign(Object.assign({}, j.chatWindow), { defaultOpen: !!ie }), j.event = { rcbPreInjectMessage: !0, rcbPostInjectMessage: !0, rcbUserSubmitText: !0, rcbChangePath: !0, rcbToggleChatWindow: !0 }, j;
|
|
5326
|
+
}, [f, v, b, h, E, P, ie, Q, te, B, C, x]), ze = ne(null), Se = (function(j) {
|
|
5325
5327
|
let G = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
|
|
5326
5328
|
return je(() => {
|
|
5327
5329
|
const ce = (Ae, we) => {
|
|
@@ -5353,7 +5355,7 @@ const Ic = "#1a5b6e", Tc = "#107180", Qc = "Arial, sans-serif", iA = "Q&A Bot",
|
|
|
5353
5355
|
var Ae, we;
|
|
5354
5356
|
!((Ae = G.header) === null || Ae === void 0) && Ae.title && typeof G.header.title == "string" && (G.header.title = T.createElement("div", { key: "header-title" }, T.createElement("h1", { className: "sr-only" }, G.header.title), T.createElement("span", { "aria-hidden": "true" }, G.header.title))), G.device = { desktopEnabled: !0, mobileEnabled: !0, applyMobileOptimizations: !1 }, G.chatHistory = { disabled: !0 }, G.chatButton = Object.assign(Object.assign({}, G.chatButton), { icon: (we = G.header) === null || we === void 0 ? void 0 : we.avatar }), G.event = Object.assign(Object.assign({}, G.event), { rcbToggleChatWindow: !0 });
|
|
5355
5357
|
}, [G]);
|
|
5356
|
-
})({ settings: le, themeColors:
|
|
5358
|
+
})({ settings: le, themeColors: Se });
|
|
5357
5359
|
const Oe = je(() => {
|
|
5358
5360
|
const j = ((G) => {
|
|
5359
5361
|
let { endpoint: ce, ratingEndpoint: Ae, agentRatingEndpoint: we, apiKey: ue, sessionId: be, isResetting: Te = () => !1, isLoggedIn: Ue, allowAnonAccess: Ut = !1, loginUrl: ke = "/login", trackEvent: ge, getTurnstileToken: Ft, resetTurnstileToken: At, backendId: jt, resourceContext: kt } = G;
|
|
@@ -5365,11 +5367,11 @@ const Ic = "#1a5b6e", Tc = "#107180", Qc = "Arial, sans-serif", iA = "Q&A Bot",
|
|
|
5365
5367
|
return { qa_loop: { message: async (X) => {
|
|
5366
5368
|
var Qe;
|
|
5367
5369
|
ae = X.injectMessage.bind(X);
|
|
5368
|
-
const { userInput:
|
|
5369
|
-
if ((!Te || !Te()) &&
|
|
5370
|
-
if (
|
|
5370
|
+
const { userInput: De } = X;
|
|
5371
|
+
if ((!Te || !Te()) && De && De.trim() !== "") {
|
|
5372
|
+
if (De === "👍 Helpful" || De === "👎 Not helpful") {
|
|
5371
5373
|
if (it) {
|
|
5372
|
-
const de =
|
|
5374
|
+
const de = De === "👍 Helpful", Be = I === "agent" ? we : Ae;
|
|
5373
5375
|
if (Be) try {
|
|
5374
5376
|
const Ce = { "Content-Type": "application/json" };
|
|
5375
5377
|
ue && (Ce["X-API-KEY"] = ue);
|
|
@@ -5383,12 +5385,12 @@ const Ic = "#1a5b6e", Tc = "#107180", Qc = "Arial, sans-serif", iA = "Q&A Bot",
|
|
|
5383
5385
|
}
|
|
5384
5386
|
try {
|
|
5385
5387
|
const de = wi();
|
|
5386
|
-
it = de, ge?.({ type: "chatbot_question_sent", queryId: de, questionLength:
|
|
5388
|
+
it = de, ge?.({ type: "chatbot_question_sent", queryId: de, questionLength: De.length });
|
|
5387
5389
|
const Be = { "Content-Type": "application/json" };
|
|
5388
5390
|
ue && (Be["X-API-KEY"] = ue);
|
|
5389
5391
|
const Ce = be();
|
|
5390
5392
|
Ce && (Be["X-Session-ID"] = Ce, Be["X-Query-ID"] = de), Be["X-Origin"] = kt || "access";
|
|
5391
|
-
const se = { query:
|
|
5393
|
+
const se = { query: De, question_id: de };
|
|
5392
5394
|
Ce && (se.session_id = Ce), jt && (se._backend = jt), kt && (se.rp_name = kt);
|
|
5393
5395
|
const Ve = Ft?.();
|
|
5394
5396
|
Ve && (se.turnstile_token = Ve), In("SENT to API", { session_id: Ce, question_id: de });
|
|
@@ -5402,17 +5404,17 @@ const Ic = "#1a5b6e", Tc = "#107180", Qc = "Arial, sans-serif", iA = "Q&A Bot",
|
|
|
5402
5404
|
let lt = "", wt = "", Ct = !1;
|
|
5403
5405
|
try {
|
|
5404
5406
|
for (; ; ) {
|
|
5405
|
-
const { done:
|
|
5406
|
-
if (
|
|
5407
|
+
const { done: St, value: bt } = await En.read();
|
|
5408
|
+
if (St) break;
|
|
5407
5409
|
lt += Xn.decode(bt, { stream: !0 });
|
|
5408
5410
|
let Gt = lt.indexOf(`
|
|
5409
5411
|
|
|
5410
5412
|
`);
|
|
5411
5413
|
for (; Gt !== -1; ) {
|
|
5412
|
-
const
|
|
5414
|
+
const Si = lt.slice(0, Gt);
|
|
5413
5415
|
lt = lt.slice(Gt + 2);
|
|
5414
5416
|
let Wt, Yt = "", kn = "";
|
|
5415
|
-
for (const Ge of
|
|
5417
|
+
for (const Ge of Si.split(`
|
|
5416
5418
|
`)) Ge.startsWith("event: ") ? Yt = Ge.slice(7) : Ge.startsWith("data: ") && (kn = Ge.slice(6));
|
|
5417
5419
|
if (Yt && kn) {
|
|
5418
5420
|
try {
|
|
@@ -5454,43 +5456,43 @@ const Ic = "#1a5b6e", Tc = "#107180", Qc = "Arial, sans-serif", iA = "Q&A Bot",
|
|
|
5454
5456
|
}
|
|
5455
5457
|
}
|
|
5456
5458
|
Ct && await X.endStreamMessage("BOT");
|
|
5457
|
-
} catch (
|
|
5458
|
-
if (_e("Error reading SSE stream:",
|
|
5459
|
+
} catch (St) {
|
|
5460
|
+
if (_e("Error reading SSE stream:", St), !Ct) throw St;
|
|
5459
5461
|
await X.streamMessage("I had trouble completing the response. Please try again.", "BOT"), await X.endStreamMessage("BOT");
|
|
5460
5462
|
}
|
|
5461
5463
|
const qt = Date.now() - qe;
|
|
5462
5464
|
return void (ge == null || ge({ type: "chatbot_answer_received", queryId: de, responseTimeMs: qt, success: !0, responseLength: wt.length }));
|
|
5463
5465
|
}
|
|
5464
5466
|
const wn = Date.now() - qe, st = await Pt.json();
|
|
5465
|
-
if (st.requires_turnstile) return ge?.({ type: "chatbot_turnstile_shown", queryId: de }), F.siteKey = st.site_key, F.pendingQuery = { query:
|
|
5467
|
+
if (st.requires_turnstile) return ge?.({ type: "chatbot_turnstile_shown", queryId: de }), F.siteKey = st.site_key, F.pendingQuery = { query: De, sessionId: Ce, queryId: de }, F.needsChallenge = !0, "One moment — verifying your session…";
|
|
5466
5468
|
At?.();
|
|
5467
5469
|
const zt = st.response || st.answer || st.text || st.message;
|
|
5468
5470
|
if (!zt) throw new Error("Invalid response format from API");
|
|
5469
5471
|
const bn = st.metadata || {};
|
|
5470
5472
|
I = bn.rating_target || null, Y = bn.is_final_response === !0;
|
|
5471
|
-
const vt = sn(zt),
|
|
5473
|
+
const vt = sn(zt), Dt = Nt() ? AA(st) : "", rn = Dt ? `${vt}
|
|
5472
5474
|
|
|
5473
|
-
${
|
|
5474
|
-
return await X.injectMessage(rn), void (ge == null || ge({ type: "chatbot_answer_received", queryId: de, responseTimeMs: wn, success: !0, responseLength: zt.length, hasMetadata: !!
|
|
5475
|
+
${Dt}` : vt;
|
|
5476
|
+
return await X.injectMessage(rn), void (ge == null || ge({ type: "chatbot_answer_received", queryId: de, responseTimeMs: wn, success: !0, responseLength: zt.length, hasMetadata: !!Dt }));
|
|
5475
5477
|
} catch (de) {
|
|
5476
5478
|
return _e("Error in Q&A flow:", de), ge?.({ type: "chatbot_answer_error", queryId: it ?? void 0, errorType: de instanceof Error ? de.message : "unknown" }), "I apologize, but I'm having trouble processing your question. Please try again later.";
|
|
5477
5479
|
}
|
|
5478
5480
|
}
|
|
5479
|
-
}, options: (X) => Te && Te() || X.userInput === "👍 Helpful" || X.userInput === "👎 Not helpful" || F.needsChallenge ? [] : Y && I && (I === "agent" ? we : Ae) ? ["👍 Helpful", "👎 Not helpful"] : [], renderMarkdown: ["BOT"], chatDisabled: !1, component: T.createElement(
|
|
5481
|
+
}, options: (X) => Te && Te() || X.userInput === "👍 Helpful" || X.userInput === "👎 Not helpful" || F.needsChallenge ? [] : Y && I && (I === "agent" ? we : Ae) ? ["👍 Helpful", "👎 Not helpful"] : [], renderMarkdown: ["BOT"], chatDisabled: !1, component: T.createElement(Ic, { getState: () => F, onResubmit: async (X) => {
|
|
5480
5482
|
var Qe;
|
|
5481
5483
|
if (!F.pendingQuery || !ae) return _e("Turnstile resubmit called without pending query or injectMessage"), "error";
|
|
5482
5484
|
try {
|
|
5483
|
-
const
|
|
5484
|
-
ue && (
|
|
5485
|
+
const De = { "Content-Type": "application/json" };
|
|
5486
|
+
ue && (De["X-API-KEY"] = ue), F.pendingQuery.sessionId && (De["X-Session-ID"] = F.pendingQuery.sessionId, De["X-Query-ID"] = F.pendingQuery.queryId), De["X-Origin"] = kt || "access";
|
|
5485
5487
|
const de = { query: F.pendingQuery.query, question_id: F.pendingQuery.queryId, turnstile_token: X };
|
|
5486
5488
|
F.pendingQuery.sessionId && (de.session_id = F.pendingQuery.sessionId), jt && (de._backend = jt), kt && (de.rp_name = kt);
|
|
5487
|
-
const Be = await fetch(ce, { method: "POST", headers:
|
|
5489
|
+
const Be = await fetch(ce, { method: "POST", headers: De, credentials: "include", body: JSON.stringify(de) }), Ce = F.pendingQuery.queryId;
|
|
5488
5490
|
if (!Be.ok) throw new Error(`API returned ${Be.status} after Turnstile`);
|
|
5489
5491
|
if ((Be.headers.get("content-type") || "").includes("text/event-stream")) {
|
|
5490
5492
|
const zt = (Qe = Be.body) === null || Qe === void 0 ? void 0 : Qe.getReader();
|
|
5491
5493
|
if (!zt) throw new Error("Response body is not readable");
|
|
5492
5494
|
const bn = new TextDecoder();
|
|
5493
|
-
let vt = "",
|
|
5495
|
+
let vt = "", Dt = "", rn = {};
|
|
5494
5496
|
for (; ; ) {
|
|
5495
5497
|
const { done: Xn, value: lt } = await zt.read();
|
|
5496
5498
|
if (Xn) break;
|
|
@@ -5501,12 +5503,12 @@ ${St}` : vt;
|
|
|
5501
5503
|
for (; wt !== -1; ) {
|
|
5502
5504
|
const Ct = vt.slice(0, wt);
|
|
5503
5505
|
vt = vt.slice(wt + 2);
|
|
5504
|
-
let qt = "",
|
|
5506
|
+
let qt = "", St = "";
|
|
5505
5507
|
for (const bt of Ct.split(`
|
|
5506
|
-
`)) bt.startsWith("event: ") ? qt = bt.slice(7) : bt.startsWith("data: ") && (
|
|
5507
|
-
if (qt &&
|
|
5508
|
-
const bt = JSON.parse(
|
|
5509
|
-
qt === "token" ?
|
|
5508
|
+
`)) bt.startsWith("event: ") ? qt = bt.slice(7) : bt.startsWith("data: ") && (St = bt.slice(6));
|
|
5509
|
+
if (qt && St) try {
|
|
5510
|
+
const bt = JSON.parse(St);
|
|
5511
|
+
qt === "token" ? Dt += bt.content || "" : qt === "done" && (rn = bt.metadata || {});
|
|
5510
5512
|
} catch {
|
|
5511
5513
|
}
|
|
5512
5514
|
wt = vt.indexOf(`
|
|
@@ -5514,10 +5516,10 @@ ${St}` : vt;
|
|
|
5514
5516
|
`);
|
|
5515
5517
|
}
|
|
5516
5518
|
}
|
|
5517
|
-
if (F.token = null, F.pendingQuery = null, F.needsChallenge = !1, F.siteKey = null, !
|
|
5519
|
+
if (F.token = null, F.pendingQuery = null, F.needsChallenge = !1, F.siteKey = null, !Dt) throw new Error("No content received from stream");
|
|
5518
5520
|
I = rn.rating_target || null, Y = rn.is_final_response === !0, it = Ce;
|
|
5519
|
-
const En = sn(
|
|
5520
|
-
return await ae(En), ge?.({ type: "chatbot_answer_received", queryId: Ce, success: !0, responseLength:
|
|
5521
|
+
const En = sn(Dt);
|
|
5522
|
+
return await ae(En), ge?.({ type: "chatbot_answer_received", queryId: Ce, success: !0, responseLength: Dt.length }), "success";
|
|
5521
5523
|
}
|
|
5522
5524
|
const se = await Be.json();
|
|
5523
5525
|
if (se.requires_turnstile) return F.siteKey = se.site_key, F.token = null, await ae("Still verifying — please complete the challenge again."), "needs_another_challenge";
|
|
@@ -5530,14 +5532,14 @@ ${St}` : vt;
|
|
|
5530
5532
|
|
|
5531
5533
|
${wn}` : Pt;
|
|
5532
5534
|
return await ae(st), ge?.({ type: "chatbot_answer_received", queryId: Ce, success: !0, responseLength: Ve.length }), "success";
|
|
5533
|
-
} catch (
|
|
5534
|
-
return _e("Error resubmitting after Turnstile:",
|
|
5535
|
+
} catch (De) {
|
|
5536
|
+
return _e("Error resubmitting after Turnstile:", De), F.token = null, F.pendingQuery = null, F.needsChallenge = !1, F.siteKey = null, await ae?.("I had trouble processing your question after verification. Please try again."), "error";
|
|
5535
5537
|
}
|
|
5536
5538
|
}, trackEvent: ge, loginUrl: ke }), path: "qa_loop" } };
|
|
5537
|
-
})({ endpoint: i, ratingEndpoint: a, agentRatingEndpoint: c, apiKey: A, sessionId: m.current.getSessionId, isResetting: m.current.isResetting, isLoggedIn: te, allowAnonAccess: g, loginUrl: B || aA, trackEvent: me, getTurnstileToken: () => q.current, resetTurnstileToken: () => w.reset(), backendId:
|
|
5539
|
+
})({ endpoint: i, ratingEndpoint: a, agentRatingEndpoint: c, apiKey: A, sessionId: m.current.getSessionId, isResetting: m.current.isResetting, isLoggedIn: te, allowAnonAccess: g, loginUrl: B || aA, trackEvent: me, getTurnstileToken: () => q.current, resetTurnstileToken: () => w.reset(), backendId: S, resourceContext: _ });
|
|
5538
5540
|
return Object.assign(Object.assign({ start: { message: l, renderMarkdown: ["BOT"], transition: { duration: 0 }, path: "qa_loop" } }, j), H || {});
|
|
5539
|
-
}, [A, i, a, c, l, te, g, B, H, y, me, _,
|
|
5540
|
-
return [() =>
|
|
5541
|
+
}, [A, i, a, c, l, te, g, B, H, y, me, _, S]), et = je(() => {
|
|
5542
|
+
return [() => ss(G), sc(), () => lc(j)];
|
|
5541
5543
|
var j, G;
|
|
5542
5544
|
}, []);
|
|
5543
5545
|
return V(() => {
|
|
@@ -5559,7 +5561,7 @@ ${wn}` : Pt;
|
|
|
5559
5561
|
})));
|
|
5560
5562
|
}, G = setInterval(j, 1e3);
|
|
5561
5563
|
return j(), () => clearInterval(G);
|
|
5562
|
-
}, []),
|
|
5564
|
+
}, []), Bc(), V(() => {
|
|
5563
5565
|
const j = ze.current;
|
|
5564
5566
|
if (!j) return;
|
|
5565
5567
|
const G = (ce) => {
|
|
@@ -5574,13 +5576,13 @@ ${wn}` : Pt;
|
|
|
5574
5576
|
const ce = G.data.newState;
|
|
5575
5577
|
u?.(ce);
|
|
5576
5578
|
const Ae = M.current;
|
|
5577
|
-
me(ce ? { type: "chatbot_open" } : { type: "chatbot_close", messageCount: Ae ? ki(Ae) : 0, durationMs: Ae ?
|
|
5579
|
+
me(ce ? { type: "chatbot_open" } : { type: "chatbot_close", messageCount: Ae ? ki(Ae) : 0, durationMs: Ae ? Ec(Ae) : 0 });
|
|
5578
5580
|
};
|
|
5579
5581
|
return window.addEventListener("rcb-toggle-chat-window", j), () => {
|
|
5580
5582
|
window.removeEventListener("rcb-toggle-chat-window", j);
|
|
5581
5583
|
};
|
|
5582
5584
|
}
|
|
5583
|
-
}, [ie, u, me]), T.createElement("div", { className: "qa-bot " + (!((r = le.general) === null || r === void 0) && r.embedded ? "embedded-qa-bot" : ""), ref: ze, role: "region", "aria-label": `${b || iA}${!((n = le.general) === null || n === void 0) && n.embedded ? " - Embedded" : ""}` }, T.createElement(
|
|
5585
|
+
}, [ie, u, me]), T.createElement("div", { className: "qa-bot " + (!((r = le.general) === null || r === void 0) && r.embedded ? "embedded-qa-bot" : ""), ref: ze, role: "region", "aria-label": `${b || iA}${!((n = le.general) === null || n === void 0) && n.embedded ? " - Embedded" : ""}` }, T.createElement(kc, { getSessionId: () => M.current, setSessionId: (j) => {
|
|
5584
5586
|
const G = M.current;
|
|
5585
5587
|
M.current = j, In("RESTORED", `${G?.slice(-12)} -> ${j.slice(-12)}`);
|
|
5586
5588
|
}, resetSession: () => {
|
|
@@ -5588,10 +5590,10 @@ ${wn}` : Pt;
|
|
|
5588
5590
|
L.current = !0, M.current = rA(), In("RESET", `${j?.slice(-12)} -> ${M.current.slice(-12)}`);
|
|
5589
5591
|
}, clearResettingFlag: () => {
|
|
5590
5592
|
L.current = !1;
|
|
5591
|
-
} }, T.createElement(
|
|
5593
|
+
} }, T.createElement(cc, { trackEvent: me }, T.createElement(NA, null, T.createElement("div", null, T.createElement(Sc, null), T.createElement(mi, { ref: t, embedded: ((o = le.general) === null || o === void 0 ? void 0 : o.embedded) || !1, currentOpen: d || !1, enabled: te !== !1, onSetEnabled: (j) => $(!!j && void 0) }), T.createElement(za, { key: `chatbot-${U.current}-${te}`, settings: le, flow: Oe, plugins: et }), T.createElement("div", { role: "status", "aria-live": "polite", "aria-label": "Bot response updates", className: "sr-only", id: "bot-live-region", style: { position: "absolute", width: "1px", height: "1px", padding: 0, margin: "-1px", overflow: "hidden", clip: "rect(0,0,0,0)", whiteSpace: "nowrap", border: 0 } }), T.createElement("div", { id: "chat-input-help", className: "sr-only", style: { position: "absolute", width: "1px", height: "1px", padding: 0, margin: "-1px", overflow: "hidden", clip: "rect(0,0,0,0)", whiteSpace: "nowrap", border: 0 } }, "Type your message and press Enter to send. Use arrow keys to navigate through response options."))))));
|
|
5592
5594
|
});
|
|
5593
5595
|
Jr.displayName = "QABot";
|
|
5594
|
-
const
|
|
5596
|
+
const Uc = () => {
|
|
5595
5597
|
const [e, t] = ee(!1), r = () => typeof navigator < "u" && navigator.mediaDevices !== void 0 && typeof navigator.mediaDevices.getDisplayMedia == "function";
|
|
5596
5598
|
return { captureScreenshot: async () => {
|
|
5597
5599
|
if (!r()) throw new Error("Screen capture is not available in this environment");
|
|
@@ -5616,16 +5618,16 @@ const Hc = () => {
|
|
|
5616
5618
|
throw _e("Error capturing screenshot:", n), t(!1), n;
|
|
5617
5619
|
}
|
|
5618
5620
|
}, isCapturing: e, isScreenCaptureAvailable: r() };
|
|
5619
|
-
},
|
|
5621
|
+
}, Fc = (e) => T.createElement(Di, e, T.createElement("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }), T.createElement("polyline", { points: "17 8 12 3 7 8" }), T.createElement("line", { x1: "12", y1: "3", x2: "12", y2: "15" })), jc = (e) => new Promise((t, r) => {
|
|
5620
5622
|
const n = new FileReader();
|
|
5621
5623
|
n.onload = () => {
|
|
5622
5624
|
if (typeof n.result != "string") return void r(new Error(`Failed to read file ${e.name}`));
|
|
5623
5625
|
const o = n.result.split(",")[1];
|
|
5624
5626
|
t({ fileName: e.name, contentType: e.type, size: e.size, fileData: o });
|
|
5625
5627
|
}, n.onerror = () => r(new Error(`Failed to read file ${e.name}`)), n.readAsDataURL(e);
|
|
5626
|
-
}),
|
|
5628
|
+
}), zc = (e) => Promise.all(e.map(jc)), qc = (e) => e < 1024 ? `${e} B` : e < 1048576 ? `${(e / 1024).toFixed(1)} KB` : `${(e / 1048576).toFixed(1)} MB`, Wn = (e) => {
|
|
5627
5629
|
let { onFileUpload: t, maxSizeMB: r = 10, acceptedTypes: n = "image/*,application/pdf,text/*,.doc,.docx", enableScreenshot: o = !1, className: A } = e;
|
|
5628
|
-
const [i, a] = ee(!1), [s, c] = ee([]), [l, d] = ee(null), u = ne(null), { captureScreenshot: p, isCapturing: g, isScreenCaptureAvailable: y } =
|
|
5630
|
+
const [i, a] = ee(!1), [s, c] = ee([]), [l, d] = ee(null), u = ne(null), { captureScreenshot: p, isCapturing: g, isScreenCaptureAvailable: y } = Uc(), f = (k) => {
|
|
5629
5631
|
const C = document.createElement("div");
|
|
5630
5632
|
C.setAttribute("aria-live", "assertive"), C.setAttribute("aria-atomic", "true"), C.className = "sr-only", C.textContent = k, document.body.appendChild(C), setTimeout(() => document.body.removeChild(C), 1e3);
|
|
5631
5633
|
}, v = (k) => {
|
|
@@ -5680,22 +5682,22 @@ const Hc = () => {
|
|
|
5680
5682
|
} catch (x) {
|
|
5681
5683
|
_e("FileUploadComponent: Error in handleFileSelect:", x), f("Error processing selected files. Please try again.");
|
|
5682
5684
|
}
|
|
5683
|
-
}, multiple: !0, style: { display: "none" }, "aria-label": "Select files to upload", accept: n }), T.createElement("div", { className: "upload-content", onClick: h, style: { cursor: "pointer", flexDirection: "column", alignItems: "center", display: "flex", textAlign: "center", padding: "12px" } }, T.createElement("div", { style: { display: "flex", flexDirection: "column", alignItems: "center", gap: "8px" } }, T.createElement("div", { style: { display: "flex", flexDirection: "row", alignItems: "center", gap: "10px" } }, T.createElement(
|
|
5685
|
+
}, multiple: !0, style: { display: "none" }, "aria-label": "Select files to upload", accept: n }), T.createElement("div", { className: "upload-content", onClick: h, style: { cursor: "pointer", flexDirection: "column", alignItems: "center", display: "flex", textAlign: "center", padding: "12px" } }, T.createElement("div", { style: { display: "flex", flexDirection: "column", alignItems: "center", gap: "8px" } }, T.createElement("div", { style: { display: "flex", flexDirection: "row", alignItems: "center", gap: "10px" } }, T.createElement(Fc, null), T.createElement("p", { style: { margin: 0, fontWeight: "bold" } }, "Upload Files")), T.createElement("p", { id: "upload-instructions", style: { margin: 0, fontSize: "14px", color: "#666" } }, "Drag and drop files here or click to select. (Max ", r, "MB each)")), s.length > 0 && T.createElement("div", { className: "selected-files", style: { display: "flex", flexWrap: "wrap", gap: "8px", marginTop: "12px", alignItems: "center" } }, T.createElement("span", { style: { fontWeight: 400, color: "#888", fontSize: "13px", marginRight: "8px", alignSelf: "center" } }, "Selected files:"), s.map((k, C) => T.createElement("span", { key: C, style: { background: "#fff", color: "#107180", borderRadius: "5px", padding: "4px 12px", fontSize: "14px", marginRight: "4px", marginBottom: "4px", border: "1px solid #ccc", display: "flex", alignItems: "center", gap: "6px", cursor: "pointer" }, onClick: (x) => {
|
|
5684
5686
|
x.stopPropagation(), ((Q) => {
|
|
5685
5687
|
d(Q);
|
|
5686
5688
|
})(k);
|
|
5687
5689
|
} }, T.createElement("span", { onClick: (x) => {
|
|
5688
5690
|
x.stopPropagation(), ((Q) => {
|
|
5689
|
-
const B = s.filter((O,
|
|
5691
|
+
const B = s.filter((O, S) => S !== Q);
|
|
5690
5692
|
c(B), t && t(B);
|
|
5691
5693
|
})(C);
|
|
5692
|
-
}, style: { cursor: "pointer", color: "#888", fontWeight: "bold", fontSize: "15px", marginRight: "4px", userSelect: "none", lineHeight: 1 }, title: "Remove file", "aria-label": `Remove ${k.name}` }, "×"), k.name, " (",
|
|
5694
|
+
}, style: { cursor: "pointer", color: "#888", fontWeight: "bold", fontSize: "15px", marginRight: "4px", userSelect: "none", lineHeight: 1 }, title: "Remove file", "aria-label": `Remove ${k.name}` }, "×"), k.name, " (", qc(k.size), ")"))))), (() => {
|
|
5693
5695
|
if (!l) return null;
|
|
5694
5696
|
const k = l.type.startsWith("image/"), C = l.type.startsWith("text/"), x = l.type === "application/pdf";
|
|
5695
5697
|
return T.createElement("div", { style: { position: "fixed", top: 0, left: 0, right: 0, bottom: 0, backgroundColor: "rgba(0, 0, 0, 0.7)", display: "flex", justifyContent: "center", alignItems: "center", zIndex: 1e3 }, onClick: E }, T.createElement("div", { style: { backgroundColor: "white", padding: "20px", borderRadius: "8px", maxWidth: "90%", maxHeight: "90%", overflow: "auto", position: "relative" }, onClick: (Q) => Q.stopPropagation() }, T.createElement("button", { onClick: E, style: { position: "absolute", top: "10px", right: "10px", background: "none", border: "none", fontSize: "24px", cursor: "pointer", color: "#666" } }, "×"), T.createElement("h3", { style: { marginTop: 0, marginBottom: "16px" } }, l.name), k && T.createElement("img", { src: URL.createObjectURL(l), alt: l.name, style: { maxWidth: "100%", maxHeight: "70vh" } }), C && T.createElement("pre", { style: { whiteSpace: "pre-wrap", wordWrap: "break-word", maxHeight: "70vh", overflow: "auto", padding: "16px", backgroundColor: "#f5f5f5", borderRadius: "4px" } }, URL.createObjectURL(l)), x && T.createElement("iframe", { src: URL.createObjectURL(l), style: { width: "100%", height: "70vh", border: "none" }, title: l.name }), !k && !C && !x && T.createElement("div", { style: { padding: "20px", textAlign: "center" } }, "Preview not available for this file type")));
|
|
5696
5698
|
})());
|
|
5697
5699
|
};
|
|
5698
|
-
function
|
|
5700
|
+
function Gc(e, t) {
|
|
5699
5701
|
if (!t || Object.keys(t).length === 0) return e;
|
|
5700
5702
|
const r = {};
|
|
5701
5703
|
for (const [n, o] of Object.entries(e)) {
|
|
@@ -5714,7 +5716,7 @@ function Yn(e) {
|
|
|
5714
5716
|
await t.injectMessage(r);
|
|
5715
5717
|
};
|
|
5716
5718
|
}
|
|
5717
|
-
const
|
|
5719
|
+
const Wc = T.forwardRef((e, t) => {
|
|
5718
5720
|
var { defaultOpen: r } = e, n = dA(e, ["defaultOpen"]);
|
|
5719
5721
|
const [o, A] = T.useState(r || !1), i = T.useRef(null);
|
|
5720
5722
|
return T.useImperativeHandle(t, () => ({ addMessage: (a) => {
|
|
@@ -5734,7 +5736,7 @@ const Gc = T.forwardRef((e, t) => {
|
|
|
5734
5736
|
A((s) => !s), (a = i.current) === null || a === void 0 || a.toggleChat();
|
|
5735
5737
|
} }), []), T.createElement(Jr, _n({ ref: i }, n, { open: o, onOpenChange: A }));
|
|
5736
5738
|
});
|
|
5737
|
-
|
|
5739
|
+
Wc.displayName = "ProgrammaticQABot";
|
|
5738
5740
|
const nt = {
|
|
5739
5741
|
// Q&A goes through qa-bot-proxy (Turnstile-protected) to UKY RAG.
|
|
5740
5742
|
// To bypass the proxy (local dev), set VITE_API_ENDPOINT directly.
|
|
@@ -5766,7 +5768,7 @@ const nt = {
|
|
|
5766
5768
|
// Netlify functions for JIRA/JSM (unchanged)
|
|
5767
5769
|
NETLIFY_BASE_URL: "https://access-jsm-api.netlify.app",
|
|
5768
5770
|
// API key (can be overridden via prop)
|
|
5769
|
-
DEFAULT_API_KEY: "
|
|
5771
|
+
DEFAULT_API_KEY: "4nn5l4T4TnkMdzsK0AwAtnGRcheBDnjawuAT42LaOLc",
|
|
5770
5772
|
// Cloudflare Turnstile site key (public, safe to embed in frontend)
|
|
5771
5773
|
TURNSTILE_SITE_KEY: "0x4AAAAAACyJamk8FS7-RSMr",
|
|
5772
5774
|
// Allow anonymous users to chat without logging in.
|
|
@@ -5786,7 +5788,7 @@ const nt = {
|
|
|
5786
5788
|
}, sA = {
|
|
5787
5789
|
SESSION_ID: "access-qa-bot-session-id"
|
|
5788
5790
|
};
|
|
5789
|
-
function
|
|
5791
|
+
function Yc({
|
|
5790
5792
|
welcome: e,
|
|
5791
5793
|
setTicketForm: t,
|
|
5792
5794
|
trackEvent: r
|
|
@@ -5805,6 +5807,8 @@ function Wc({
|
|
|
5805
5807
|
path: (n) => {
|
|
5806
5808
|
const o = n.userInput;
|
|
5807
5809
|
switch (r({ type: "chatbot_menu_selected", selection: o }), o) {
|
|
5810
|
+
case "Ask a question":
|
|
5811
|
+
return "qa_prompt";
|
|
5808
5812
|
case "Open a help ticket":
|
|
5809
5813
|
return t({}), "help_ticket";
|
|
5810
5814
|
case "Report a security issue":
|
|
@@ -5815,11 +5819,19 @@ function Wc({
|
|
|
5815
5819
|
return "qa_loop";
|
|
5816
5820
|
}
|
|
5817
5821
|
}
|
|
5822
|
+
},
|
|
5823
|
+
// Intermediate state between the "Ask a question" button click and the
|
|
5824
|
+
// qa_loop. Does nothing except prompt the user to type their question,
|
|
5825
|
+
// then hands them to qa_loop where their typed text is processed.
|
|
5826
|
+
qa_prompt: {
|
|
5827
|
+
message: "What would you like to ask?",
|
|
5828
|
+
chatDisabled: !1,
|
|
5829
|
+
path: "qa_loop"
|
|
5818
5830
|
}
|
|
5819
5831
|
};
|
|
5820
5832
|
}
|
|
5821
5833
|
let Mr = null;
|
|
5822
|
-
function
|
|
5834
|
+
function Kc(e) {
|
|
5823
5835
|
Mr = e;
|
|
5824
5836
|
}
|
|
5825
5837
|
function J() {
|
|
@@ -5844,7 +5856,7 @@ const Xt = {
|
|
|
5844
5856
|
LOGIN_PROVIDER: 31,
|
|
5845
5857
|
SECURITY: 26
|
|
5846
5858
|
};
|
|
5847
|
-
async function
|
|
5859
|
+
async function Vc(e, t = "support", r = []) {
|
|
5848
5860
|
const n = {
|
|
5849
5861
|
support: Xt.SUPPORT,
|
|
5850
5862
|
general_help: Xt.SUPPORT,
|
|
@@ -5856,9 +5868,9 @@ async function Kc(e, t = "support", r = []) {
|
|
|
5856
5868
|
requestTypeId: n,
|
|
5857
5869
|
requestFieldValues: { ...e }
|
|
5858
5870
|
};
|
|
5859
|
-
return r.length > 0 && (o.attachments = await
|
|
5871
|
+
return r.length > 0 && (o.attachments = await zc(r)), o;
|
|
5860
5872
|
}
|
|
5861
|
-
async function
|
|
5873
|
+
async function Xc(e, t) {
|
|
5862
5874
|
var r, n;
|
|
5863
5875
|
const o = `${nt.NETLIFY_BASE_URL}/api/v1/${t}`;
|
|
5864
5876
|
try {
|
|
@@ -5903,8 +5915,8 @@ async function Vc(e, t) {
|
|
|
5903
5915
|
}
|
|
5904
5916
|
async function Kn(e, t, r = []) {
|
|
5905
5917
|
try {
|
|
5906
|
-
const n = await
|
|
5907
|
-
return await
|
|
5918
|
+
const n = await Vc(e, t, r);
|
|
5919
|
+
return await Xc(n, t === "security" ? "security-incidents" : "tickets");
|
|
5908
5920
|
} catch (n) {
|
|
5909
5921
|
return {
|
|
5910
5922
|
success: !1,
|
|
@@ -5944,7 +5956,7 @@ function hn() {
|
|
|
5944
5956
|
function mn(e) {
|
|
5945
5957
|
return !e || e.trim() === "" || e.trim().toLowerCase() === "skip" ? "" : e.trim();
|
|
5946
5958
|
}
|
|
5947
|
-
function
|
|
5959
|
+
function Jc({ ticketForm: e, setTicketForm: t, userInfo: r, trackEvent: n }) {
|
|
5948
5960
|
let o = null;
|
|
5949
5961
|
const A = async (i, a = []) => {
|
|
5950
5962
|
o = await Kn(i, "loginAccess", a), o.success ? (t((s) => ({
|
|
@@ -6047,7 +6059,7 @@ Would you like to submit a help ticket for ACCESS login issues?`,
|
|
|
6047
6059
|
// Step 5: File upload (component + Continue button)
|
|
6048
6060
|
access_login_upload: {
|
|
6049
6061
|
message: "Please upload your screenshot.",
|
|
6050
|
-
component: /* @__PURE__ */
|
|
6062
|
+
component: /* @__PURE__ */ D(
|
|
6051
6063
|
Wn,
|
|
6052
6064
|
{
|
|
6053
6065
|
onFileUpload: (i) => {
|
|
@@ -6166,7 +6178,7 @@ Would you like to submit this ticket?`;
|
|
|
6166
6178
|
}
|
|
6167
6179
|
};
|
|
6168
6180
|
}
|
|
6169
|
-
function
|
|
6181
|
+
function Zc({ ticketForm: e, setTicketForm: t, userInfo: r, trackEvent: n }) {
|
|
6170
6182
|
let o = null;
|
|
6171
6183
|
const A = async (i, a = []) => {
|
|
6172
6184
|
o = await Kn(i, "loginProvider", a), o.success ? (t((s) => ({
|
|
@@ -6289,7 +6301,7 @@ Would you like to submit a help ticket for resource provider login issues?`,
|
|
|
6289
6301
|
// Step 5: File upload (component + Continue button)
|
|
6290
6302
|
resource_login_upload: {
|
|
6291
6303
|
message: "Please upload your screenshot.",
|
|
6292
|
-
component: /* @__PURE__ */
|
|
6304
|
+
component: /* @__PURE__ */ D(
|
|
6293
6305
|
Wn,
|
|
6294
6306
|
{
|
|
6295
6307
|
onFileUpload: (i) => {
|
|
@@ -6408,7 +6420,7 @@ Would you like to submit this ticket?`;
|
|
|
6408
6420
|
}
|
|
6409
6421
|
};
|
|
6410
6422
|
}
|
|
6411
|
-
const
|
|
6423
|
+
const $c = [
|
|
6412
6424
|
" C, C++",
|
|
6413
6425
|
"Abaqus",
|
|
6414
6426
|
"ACCESS",
|
|
@@ -6705,7 +6717,7 @@ const Zc = [
|
|
|
6705
6717
|
"XML",
|
|
6706
6718
|
"XSEDE",
|
|
6707
6719
|
"I don't see a relevant keyword"
|
|
6708
|
-
],
|
|
6720
|
+
], eu = [
|
|
6709
6721
|
"ACES",
|
|
6710
6722
|
"Anvil",
|
|
6711
6723
|
"Bridges-2",
|
|
@@ -6726,7 +6738,7 @@ const Zc = [
|
|
|
6726
6738
|
"Ranch",
|
|
6727
6739
|
"Stampede3"
|
|
6728
6740
|
];
|
|
6729
|
-
function
|
|
6741
|
+
function tu({ ticketForm: e, setTicketForm: t, userInfo: r, trackEvent: n }) {
|
|
6730
6742
|
let o = null;
|
|
6731
6743
|
const A = async (i, a = []) => {
|
|
6732
6744
|
o = await Kn(i, "support", a), o.success ? (t((s) => ({
|
|
@@ -6822,7 +6834,7 @@ function eu({ ticketForm: e, setTicketForm: t, userInfo: r, trackEvent: n }) {
|
|
|
6822
6834
|
// Step 5: File upload (conditional)
|
|
6823
6835
|
general_help_upload: {
|
|
6824
6836
|
message: "Please upload your file.",
|
|
6825
|
-
component: /* @__PURE__ */
|
|
6837
|
+
component: /* @__PURE__ */ D(
|
|
6826
6838
|
Wn,
|
|
6827
6839
|
{
|
|
6828
6840
|
onFileUpload: (i) => {
|
|
@@ -6869,7 +6881,7 @@ function eu({ ticketForm: e, setTicketForm: t, userInfo: r, trackEvent: n }) {
|
|
|
6869
6881
|
// Step 7: Resource selection (conditional)
|
|
6870
6882
|
general_help_resource_details: {
|
|
6871
6883
|
message: "Please select the ACCESS Resource involved with your issue:",
|
|
6872
|
-
options:
|
|
6884
|
+
options: eu,
|
|
6873
6885
|
function: (i) => {
|
|
6874
6886
|
const a = J();
|
|
6875
6887
|
t({ ...a, resourceDetails: i.userInput }), n({
|
|
@@ -6898,7 +6910,7 @@ function eu({ ticketForm: e, setTicketForm: t, userInfo: r, trackEvent: n }) {
|
|
|
6898
6910
|
general_help_keywords: {
|
|
6899
6911
|
message: "Please add up to 5 keywords to help route your ticket.",
|
|
6900
6912
|
checkboxes: {
|
|
6901
|
-
items:
|
|
6913
|
+
items: $c,
|
|
6902
6914
|
min: 0,
|
|
6903
6915
|
max: 5
|
|
6904
6916
|
},
|
|
@@ -7046,13 +7058,13 @@ Would you like to submit this ticket?`;
|
|
|
7046
7058
|
}
|
|
7047
7059
|
};
|
|
7048
7060
|
}
|
|
7049
|
-
const
|
|
7061
|
+
const nu = {
|
|
7050
7062
|
"Logging into ACCESS website": "access_login",
|
|
7051
7063
|
"Logging into a resource": "resource_login",
|
|
7052
7064
|
"Another question": "general_help"
|
|
7053
7065
|
};
|
|
7054
|
-
function
|
|
7055
|
-
const o =
|
|
7066
|
+
function ru({ ticketForm: e, setTicketForm: t, userInfo: r, trackEvent: n }) {
|
|
7067
|
+
const o = Jc({ ticketForm: e, setTicketForm: t, userInfo: r, trackEvent: n }), A = Zc({ ticketForm: e, setTicketForm: t, userInfo: r, trackEvent: n }), i = tu({ ticketForm: e, setTicketForm: t, userInfo: r, trackEvent: n });
|
|
7056
7068
|
return {
|
|
7057
7069
|
// Ticket type selection
|
|
7058
7070
|
help_ticket: {
|
|
@@ -7065,7 +7077,7 @@ function nu({ ticketForm: e, setTicketForm: t, userInfo: r, trackEvent: n }) {
|
|
|
7065
7077
|
function: (a) => {
|
|
7066
7078
|
t((s) => ({ ...s, ticketType: a.userInput })), n({
|
|
7067
7079
|
type: "chatbot_ticket_started",
|
|
7068
|
-
ticketType:
|
|
7080
|
+
ticketType: nu[a.userInput] || a.userInput
|
|
7069
7081
|
});
|
|
7070
7082
|
},
|
|
7071
7083
|
path: (a) => a.userInput === "Logging into ACCESS website" ? "access_help" : a.userInput === "Logging into a resource" ? "resource_help" : a.userInput === "Another question" ? "general_help_summary_subject" : "help_ticket"
|
|
@@ -7085,7 +7097,7 @@ function _t(e) {
|
|
|
7085
7097
|
accessId: e.accessId || t.accessId
|
|
7086
7098
|
};
|
|
7087
7099
|
}
|
|
7088
|
-
function
|
|
7100
|
+
function ou(e) {
|
|
7089
7101
|
return e ? e.success ? e.ticketUrl && e.ticketKey ? `Your security incident report has been submitted successfully.
|
|
7090
7102
|
|
|
7091
7103
|
Ticket: <a href="${e.ticketUrl}" target="_blank">${e.ticketKey}</a>
|
|
@@ -7098,7 +7110,7 @@ Please try again or contact our cybersecurity team directly.` : `We apologize, b
|
|
|
7098
7110
|
|
|
7099
7111
|
Please try again or contact our cybersecurity team directly.`;
|
|
7100
7112
|
}
|
|
7101
|
-
function
|
|
7113
|
+
function Au({ ticketForm: e, setTicketForm: t, userInfo: r, trackEvent: n }) {
|
|
7102
7114
|
let o = null, A = null;
|
|
7103
7115
|
const i = async (a, s = [], c) => {
|
|
7104
7116
|
A = await Kn(a, "security", s), A.success ? (t((l) => ({
|
|
@@ -7183,7 +7195,7 @@ function ou({ ticketForm: e, setTicketForm: t, userInfo: r, trackEvent: n }) {
|
|
|
7183
7195
|
// Step 5: File upload (conditional)
|
|
7184
7196
|
security_upload: {
|
|
7185
7197
|
message: "Please upload your files.",
|
|
7186
|
-
component: /* @__PURE__ */
|
|
7198
|
+
component: /* @__PURE__ */ D(
|
|
7187
7199
|
Wn,
|
|
7188
7200
|
{
|
|
7189
7201
|
onFileUpload: (a) => {
|
|
@@ -7331,7 +7343,7 @@ Would you like to submit this security incident report?`;
|
|
|
7331
7343
|
},
|
|
7332
7344
|
// Step 11: Success message
|
|
7333
7345
|
security_success: {
|
|
7334
|
-
message: Yn(() =>
|
|
7346
|
+
message: Yn(() => ou(A)),
|
|
7335
7347
|
options: ["Back to Main Menu"],
|
|
7336
7348
|
renderHtml: ["BOT"],
|
|
7337
7349
|
path: "start"
|
|
@@ -7341,31 +7353,31 @@ Would you like to submit this security incident report?`;
|
|
|
7341
7353
|
const Le = [];
|
|
7342
7354
|
for (let e = 0; e < 256; ++e)
|
|
7343
7355
|
Le.push((e + 256).toString(16).slice(1));
|
|
7344
|
-
function
|
|
7356
|
+
function iu(e, t = 0) {
|
|
7345
7357
|
return (Le[e[t + 0]] + Le[e[t + 1]] + Le[e[t + 2]] + Le[e[t + 3]] + "-" + Le[e[t + 4]] + Le[e[t + 5]] + "-" + Le[e[t + 6]] + Le[e[t + 7]] + "-" + Le[e[t + 8]] + Le[e[t + 9]] + "-" + Le[e[t + 10]] + Le[e[t + 11]] + Le[e[t + 12]] + Le[e[t + 13]] + Le[e[t + 14]] + Le[e[t + 15]]).toLowerCase();
|
|
7346
7358
|
}
|
|
7347
7359
|
let hr;
|
|
7348
|
-
const
|
|
7349
|
-
function
|
|
7360
|
+
const au = new Uint8Array(16);
|
|
7361
|
+
function su() {
|
|
7350
7362
|
if (!hr) {
|
|
7351
7363
|
if (typeof crypto > "u" || !crypto.getRandomValues)
|
|
7352
7364
|
throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
|
|
7353
7365
|
hr = crypto.getRandomValues.bind(crypto);
|
|
7354
7366
|
}
|
|
7355
|
-
return hr(
|
|
7367
|
+
return hr(au);
|
|
7356
7368
|
}
|
|
7357
|
-
const
|
|
7369
|
+
const lu = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto), lA = { randomUUID: lu };
|
|
7358
7370
|
function Or(e, t, r) {
|
|
7359
7371
|
var n;
|
|
7360
7372
|
if (lA.randomUUID && !e)
|
|
7361
7373
|
return lA.randomUUID();
|
|
7362
7374
|
e = e || {};
|
|
7363
|
-
const o = e.random ?? ((n = e.rng) == null ? void 0 : n.call(e)) ??
|
|
7375
|
+
const o = e.random ?? ((n = e.rng) == null ? void 0 : n.call(e)) ?? su();
|
|
7364
7376
|
if (o.length < 16)
|
|
7365
7377
|
throw new Error("Random bytes length must be >= 16");
|
|
7366
|
-
return o[6] = o[6] & 15 | 64, o[8] = o[8] & 63 | 128,
|
|
7378
|
+
return o[6] = o[6] & 15 | 64, o[8] = o[8] & 63 | 128, iu(o);
|
|
7367
7379
|
}
|
|
7368
|
-
function
|
|
7380
|
+
function cu({ sessionId: e, apiKey: t, trackEvent: r }) {
|
|
7369
7381
|
let n = null;
|
|
7370
7382
|
return {
|
|
7371
7383
|
// Entry point with instructions
|
|
@@ -7436,13 +7448,13 @@ function lu({ sessionId: e, apiKey: t, trackEvent: r }) {
|
|
|
7436
7448
|
}
|
|
7437
7449
|
};
|
|
7438
7450
|
}
|
|
7439
|
-
function
|
|
7451
|
+
function uu() {
|
|
7440
7452
|
if (typeof window > "u")
|
|
7441
7453
|
return Or();
|
|
7442
7454
|
let e = localStorage.getItem(sA.SESSION_ID);
|
|
7443
7455
|
return e || (e = Or(), localStorage.setItem(sA.SESSION_ID, e)), e;
|
|
7444
7456
|
}
|
|
7445
|
-
const cA = "access-qa-bot-shadow-overrides",
|
|
7457
|
+
const cA = "access-qa-bot-shadow-overrides", du = `
|
|
7446
7458
|
.rcb-checkbox-container {
|
|
7447
7459
|
display: flex !important;
|
|
7448
7460
|
flex-wrap: wrap !important;
|
|
@@ -7596,14 +7608,14 @@ const cA = "access-qa-bot-shadow-overrides", uu = `
|
|
|
7596
7608
|
margin: 0 !important;
|
|
7597
7609
|
}
|
|
7598
7610
|
`;
|
|
7599
|
-
function
|
|
7611
|
+
function pu(e) {
|
|
7600
7612
|
if (!e) return;
|
|
7601
7613
|
const t = e.getRootNode();
|
|
7602
7614
|
if (!(t instanceof ShadowRoot) || t.getElementById(cA)) return;
|
|
7603
7615
|
const r = document.createElement("style");
|
|
7604
|
-
r.id = cA, r.textContent =
|
|
7616
|
+
r.id = cA, r.textContent = du, t.appendChild(r);
|
|
7605
7617
|
}
|
|
7606
|
-
const
|
|
7618
|
+
const fu = Ke(
|
|
7607
7619
|
(e, t) => {
|
|
7608
7620
|
const {
|
|
7609
7621
|
apiKey: r = nt.DEFAULT_API_KEY,
|
|
@@ -7632,7 +7644,7 @@ const pu = Ke(
|
|
|
7632
7644
|
resourceContext: E,
|
|
7633
7645
|
// Analytics
|
|
7634
7646
|
onAnalyticsEvent: P
|
|
7635
|
-
} = e, k = nt.AGENT_ENABLED, C = h || nt.BACKEND_ID, x = ne(null), Q = ne(null), [B, O] = ee({}), [
|
|
7647
|
+
} = e, k = nt.AGENT_ENABLED, C = h || nt.BACKEND_ID, x = ne(null), Q = ne(null), [B, O] = ee({}), [S, _] = ee(
|
|
7636
7648
|
() => ({ categories: [], is_authenticated: !1 })
|
|
7637
7649
|
), H = je(() => ({
|
|
7638
7650
|
email: A,
|
|
@@ -7640,9 +7652,9 @@ const pu = Ke(
|
|
|
7640
7652
|
accessId: a
|
|
7641
7653
|
}), [A, i, a]);
|
|
7642
7654
|
V(() => {
|
|
7643
|
-
|
|
7655
|
+
pu(Q.current);
|
|
7644
7656
|
}, []), V(() => {
|
|
7645
|
-
|
|
7657
|
+
Kc({
|
|
7646
7658
|
ticketForm: B,
|
|
7647
7659
|
setTicketForm: O
|
|
7648
7660
|
});
|
|
@@ -7657,7 +7669,7 @@ const pu = Ke(
|
|
|
7657
7669
|
($ = (te = x.current) == null ? void 0 : te.addMessage) == null || $.call(te, q);
|
|
7658
7670
|
}
|
|
7659
7671
|
}));
|
|
7660
|
-
const M = y ||
|
|
7672
|
+
const M = y || S?.welcome_message || Ot.WELCOME_MESSAGE, L = je(() => uu(), []), m = W((q) => {
|
|
7661
7673
|
P && P({
|
|
7662
7674
|
...q,
|
|
7663
7675
|
type: q.type,
|
|
@@ -7672,21 +7684,21 @@ const pu = Ke(
|
|
|
7672
7684
|
sessionId: typeof q.sessionId == "string" ? q.sessionId : L
|
|
7673
7685
|
});
|
|
7674
7686
|
}, [P, L]), w = je(() => {
|
|
7675
|
-
const q =
|
|
7687
|
+
const q = Yc({
|
|
7676
7688
|
welcome: M,
|
|
7677
7689
|
setTicketForm: O,
|
|
7678
7690
|
trackEvent: m
|
|
7679
|
-
}), te =
|
|
7691
|
+
}), te = ru({
|
|
7680
7692
|
ticketForm: {},
|
|
7681
7693
|
setTicketForm: O,
|
|
7682
7694
|
userInfo: H,
|
|
7683
7695
|
trackEvent: m
|
|
7684
|
-
}), $ =
|
|
7696
|
+
}), $ = Au({
|
|
7685
7697
|
ticketForm: {},
|
|
7686
7698
|
setTicketForm: O,
|
|
7687
7699
|
userInfo: H,
|
|
7688
7700
|
trackEvent: m
|
|
7689
|
-
}), ie =
|
|
7701
|
+
}), ie = cu({
|
|
7690
7702
|
sessionId: L,
|
|
7691
7703
|
apiKey: r,
|
|
7692
7704
|
trackEvent: m
|
|
@@ -7696,9 +7708,9 @@ const pu = Ke(
|
|
|
7696
7708
|
...$,
|
|
7697
7709
|
...ie
|
|
7698
7710
|
};
|
|
7699
|
-
return
|
|
7700
|
-
}, [M, H, L, r, n, m,
|
|
7701
|
-
return
|
|
7711
|
+
return Gc(me, { disableOnOptions: !0 });
|
|
7712
|
+
}, [M, H, L, r, n, m, S]);
|
|
7713
|
+
return S ? /* @__PURE__ */ D("div", { ref: Q, children: /* @__PURE__ */ D(
|
|
7702
7714
|
Jr,
|
|
7703
7715
|
{
|
|
7704
7716
|
ref: x,
|
|
@@ -7726,13 +7738,13 @@ const pu = Ke(
|
|
|
7726
7738
|
resourceContext: E,
|
|
7727
7739
|
customFlow: w
|
|
7728
7740
|
}
|
|
7729
|
-
) }) : /* @__PURE__ */
|
|
7741
|
+
) }) : /* @__PURE__ */ D("div", { ref: Q });
|
|
7730
7742
|
}
|
|
7731
7743
|
);
|
|
7732
|
-
|
|
7744
|
+
fu.displayName = "AccessQABot";
|
|
7733
7745
|
export {
|
|
7734
7746
|
nt as API_CONFIG,
|
|
7735
|
-
|
|
7747
|
+
fu as AccessQABot,
|
|
7736
7748
|
Ot as BOT_CONFIG,
|
|
7737
|
-
|
|
7749
|
+
fu as QABot
|
|
7738
7750
|
};
|