@subiz/widget-v4 4.1.146 → 4.1.148

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/assets/less/form.less +13 -2
  2. package/assets/less/message.less +11 -0
  3. package/assets/less/message_input.less +19 -10
  4. package/assets/less/reboot.less +1 -1
  5. package/assets/less/widget.less +21 -17
  6. package/chat.html +10 -0
  7. package/chat.js +50 -0
  8. package/compiled_src/chatbox/Event.js +2 -1
  9. package/compiled_src/chatbox/FileAttachments.js +1 -0
  10. package/compiled_src/chatbox/Header.js +1 -0
  11. package/compiled_src/chatbox/ImageAttachments.js +2 -0
  12. package/compiled_src/chatbox/Widget.js +6 -2
  13. package/compiled_src/chatbox/block.js +15 -0
  14. package/compiled_src/lib.js +6 -1
  15. package/compiled_src/store/api.js +20 -24
  16. package/compiled_src/store/store.js +11 -2
  17. package/dist/{1970d063f3c.27.js → 1977d0fb90d.27.js} +1 -1
  18. package/dist/1977d0fb90d.278.js +1 -0
  19. package/dist/{1970d063f3c.339.js → 1977d0fb90d.339.js} +1 -1
  20. package/dist/{1970d063f3c.459.js → 1977d0fb90d.459.js} +1 -1
  21. package/dist/1977d0fb90d.app.js +1 -0
  22. package/dist/1977d0fb90d.chat.html +1 -0
  23. package/dist/1977d0fb90d.chat.js +1 -0
  24. package/dist/{1970d063f3c.form.html → 1977d0fb90d.form.html} +1 -1
  25. package/dist/{1970d063f3c.form.js → 1977d0fb90d.form.js} +1 -1
  26. package/dist/{1970d063f3c.index.html → 1977d0fb90d.index.html} +1 -1
  27. package/dist/{1970d063f3c.library.html → 1977d0fb90d.library.html} +1 -1
  28. package/dist/1977d0fb90d.library.js +1 -0
  29. package/dist/{1970d063f3c.preview.html → 1977d0fb90d.preview.html} +1 -1
  30. package/dist/1977d0fb90d.preview.js +1 -0
  31. package/dist/1977d0fb90d.webview.js +1 -0
  32. package/dist/27.js +1 -1
  33. package/dist/278.js +1 -1
  34. package/dist/459.js +1 -1
  35. package/dist/HASH +1 -0
  36. package/dist/screenshoot.js +26 -4
  37. package/package.json +5 -6
  38. package/src/chatbox/Event.js +7 -6
  39. package/src/chatbox/FileAttachments.js +7 -6
  40. package/src/chatbox/Header.js +1 -0
  41. package/src/chatbox/ImageAttachments.js +2 -0
  42. package/src/chatbox/Widget.js +6 -2
  43. package/src/chatbox/block.js +15 -0
  44. package/src/lib.js +5 -1
  45. package/src/store/api.js +30 -16
  46. package/src/store/store.js +14 -3
  47. package/webpack.dev.js +2 -0
  48. package/webpack.prod.js +7 -0
  49. package/dist/.HASH +0 -1
  50. package/dist/1970d063f3c.278.js +0 -1
  51. package/dist/1970d063f3c.app.js +0 -1
  52. package/dist/1970d063f3c.library.js +0 -1
  53. package/dist/1970d063f3c.preview.js +0 -1
  54. package/dist/1970d063f3c.webview.js +0 -1
  55. /package/dist/{1970d063f3c.127.js → 1977d0fb90d.127.js} +0 -0
  56. /package/dist/{1970d063f3c.132.js → 1977d0fb90d.132.js} +0 -0
  57. /package/dist/{1970d063f3c.185.js → 1977d0fb90d.185.js} +0 -0
  58. /package/dist/{1970d063f3c.490.js → 1977d0fb90d.490.js} +0 -0
  59. /package/dist/{1970d063f3c.74.js → 1977d0fb90d.74.js} +0 -0
  60. /package/dist/{1970d063f3c.997.js → 1977d0fb90d.997.js} +0 -0
package/dist/459.js CHANGED
@@ -14,7 +14,7 @@ __webpack_require__.r(__webpack_exports__);
14
14
 
15
15
  var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});
16
16
  // Module
17
- ___CSS_LOADER_EXPORT___.push([module.id, "@font-face {\n font-family: 'Dancing Script';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/dancingscript/v25/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7BMSoHTQ.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Dancing Script';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/dancingscript/v25/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7BAyoHTQ.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Dancing Script';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/dancingscript/v25/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7B7y0HTQ.ttf) format('truetype');\n}\n@font-face {\n font-family: 'EB Garamond';\n font-style: italic;\n font-weight: 400;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/ebgaramond/v30/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7e8QI96.ttf) format('truetype');\n}\n@font-face {\n font-family: 'EB Garamond';\n font-style: italic;\n font-weight: 500;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/ebgaramond/v30/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7eOQI96.ttf) format('truetype');\n}\n@font-face {\n font-family: 'EB Garamond';\n font-style: italic;\n font-weight: 600;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/ebgaramond/v30/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7diR496.ttf) format('truetype');\n}\n@font-face {\n font-family: 'EB Garamond';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/ebgaramond/v30/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-6_RUAw.ttf) format('truetype');\n}\n@font-face {\n font-family: 'EB Garamond';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/ebgaramond/v30/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-2fRUAw.ttf) format('truetype');\n}\n@font-face {\n font-family: 'EB Garamond';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/ebgaramond/v30/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-NfNUAw.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Inconsolata';\n font-style: normal;\n font-weight: 300;\n font-stretch: normal;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/inconsolata/v32/QldgNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLYxYWI2qfdm7Lpp9s8aRo.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Inconsolata';\n font-style: normal;\n font-weight: 400;\n font-stretch: normal;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/inconsolata/v32/QldgNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLYxYWI2qfdm7Lpp4U8aRo.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Inconsolata';\n font-style: normal;\n font-weight: 500;\n font-stretch: normal;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/inconsolata/v32/QldgNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLYxYWI2qfdm7Lpp7c8aRo.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Montserrat';\n font-style: italic;\n font-weight: 300;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/montserrat/v29/JTUFjIg1_i6t8kCHKm459Wx7xQYXK0vOoz6jq_p9aX8.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Montserrat';\n font-style: italic;\n font-weight: 400;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/montserrat/v29/JTUFjIg1_i6t8kCHKm459Wx7xQYXK0vOoz6jq6R9aX8.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Montserrat';\n font-style: italic;\n font-weight: 500;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/montserrat/v29/JTUFjIg1_i6t8kCHKm459Wx7xQYXK0vOoz6jq5Z9aX8.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Montserrat';\n font-style: italic;\n font-weight: 600;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/montserrat/v29/JTUFjIg1_i6t8kCHKm459Wx7xQYXK0vOoz6jq3p6aX8.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Montserrat';\n font-style: italic;\n font-weight: 700;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/montserrat/v29/JTUFjIg1_i6t8kCHKm459Wx7xQYXK0vOoz6jq0N6aX8.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Montserrat';\n font-style: normal;\n font-weight: 300;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/montserrat/v29/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCs16Ew-.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Montserrat';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/montserrat/v29/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Ew-.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Montserrat';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/montserrat/v29/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtZ6Ew-.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Montserrat';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/montserrat/v29/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCu170w-.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Montserrat';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/montserrat/v29/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCuM70w-.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Roboto';\n font-style: italic;\n font-weight: 300;\n font-stretch: normal;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/roboto/v47/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLt_QiA8.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Roboto';\n font-style: italic;\n font-weight: 400;\n font-stretch: normal;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/roboto/v47/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLoHQiA8.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Roboto';\n font-style: italic;\n font-weight: 500;\n font-stretch: normal;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/roboto/v47/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLrPQiA8.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Roboto';\n font-style: italic;\n font-weight: 700;\n font-stretch: normal;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/roboto/v47/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLmbXiA8.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 300;\n font-stretch: normal;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/roboto/v47/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabWmT.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 400;\n font-stretch: normal;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/roboto/v47/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWubEbWmT.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 500;\n font-stretch: normal;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/roboto/v47/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWub2bWmT.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 700;\n font-stretch: normal;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/roboto/v47/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuYjammT.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Signika';\n font-style: normal;\n font-weight: 300;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/signika/v25/vEF72_JTCgwQ5ejvMV0Ox_Kg1UwJ0tKfX4zNpD8E4ASzH1r93zuYzQ.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Signika';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/signika/v25/vEF72_JTCgwQ5ejvMV0Ox_Kg1UwJ0tKfX4zNpD8E4ASzH1r9gTuYzQ.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Signika';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/signika/v25/vEF72_JTCgwQ5ejvMV0Ox_Kg1UwJ0tKfX4zNpD8E4ASzH1r9szuYzQ.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Signika';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/signika/v25/vEF72_JTCgwQ5ejvMV0Ox_Kg1UwJ0tKfX4zNpD8E4ASzH1r9XzyYzQ.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Source Serif Pro';\n font-style: italic;\n font-weight: 300;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/sourceserifpro/v17/neIVzD-0qpwxpaWvjeD0X88SAOeauXEGCSmqwQ.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Source Serif Pro';\n font-style: italic;\n font-weight: 400;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/sourceserifpro/v17/neIWzD-0qpwxpaWvjeD0X88SAOeauXE-pQ.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Source Serif Pro';\n font-style: italic;\n font-weight: 600;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/sourceserifpro/v17/neIVzD-0qpwxpaWvjeD0X88SAOeauXEGfS-qwQ.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Source Serif Pro';\n font-style: normal;\n font-weight: 300;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/sourceserifpro/v17/neIXzD-0qpwxpaWvjeD0X88SAOeasd8chSs.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Source Serif Pro';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/sourceserifpro/v17/neIQzD-0qpwxpaWvjeD0X88SAOeaiXM.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Source Serif Pro';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/sourceserifpro/v17/neIXzD-0qpwxpaWvjeD0X88SAOeasasahSs.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Yeseva One';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/yesevaone/v22/OpNJno4ck8vc-xYpwWWxpio.ttf) format('truetype');\n}\n#sbz92 * {\n all: unset !important;\n}\n#sbz92 {\n z-index: 2000000100 !important;\n /* Handle on hover */\n}\n#sbz92 *,\n#sbz92 *::before,\n#sbz92 *::after {\n box-sizing: border-box !important;\n}\n#sbz92 [tabindex='-1']:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n#sbz92 b,\n#sbz92 strong {\n font-weight: 500 !important;\n}\n#sbz92 a {\n color: #020202 !important;\n text-decoration: none !important;\n background-color: transparent !important;\n}\n#sbz92 a:hover {\n cursor: pointer !important;\n color: #000000 !important;\n text-decoration: underline !important;\n}\n#sbz92 a:not([href]) {\n color: inherit !important;\n text-decoration: none !important;\n}\n#sbz92 a:not([href]):hover {\n color: inherit !important;\n text-decoration: none !important;\n}\n#sbz92 img {\n vertical-align: middle !important;\n border-style: none !important;\n}\n#sbz92 svg {\n overflow: hidden !important;\n vertical-align: middle !important;\n}\n#sbz92 label {\n display: inline-block !important;\n}\n#sbz92 button {\n border-radius: 0 !important;\n}\n#sbz92 button:focus {\n outline: 1px dotted !important;\n outline: 5px auto -webkit-focus-ring-color !important;\n}\n#sbz92 input,\n#sbz92 button,\n#sbz92 select,\n#sbz92 optgroup,\n#sbz92 textarea {\n margin: 0 !important;\n}\n#sbz92 button,\n#sbz92 input {\n overflow: visible !important;\n}\n#sbz92 button,\n#sbz92 select {\n text-transform: none !important;\n}\n#sbz92 select {\n word-wrap: normal !important;\n}\n#sbz92 button,\n#sbz92 [type=\"button\"],\n#sbz92 [type=\"reset\"],\n#sbz92 [type=\"submit\"] {\n -webkit-appearance: button !important;\n}\n#sbz92 button:not(:disabled),\n#sbz92 [type='button']:not(:disabled),\n#sbz92 [type='reset']:not(:disabled),\n#sbz92 [type='submit']:not(:disabled) {\n cursor: pointer !important;\n}\n#sbz92 button::-moz-focus-inner,\n#sbz92 [type='button']::-moz-focus-inner,\n#sbz92 [type='reset']::-moz-focus-inner,\n#sbz92 [type='submit']::-moz-focus-inner {\n padding: 0 !important;\n border-style: none !important;\n}\n#sbz92 input[type='radio'],\n#sbz92 input[type='checkbox'] {\n box-sizing: border-box !important;\n padding: 0 !important;\n}\n#sbz92 input[type='date'],\n#sbz92 input[type='time'],\n#sbz92 input[type='datetime-local'],\n#sbz92 input[type='month'] {\n -webkit-appearance: listbox !important;\n}\n#sbz92 textarea {\n overflow: auto !important;\n resize: vertical !important;\n}\n#sbz92 [type='number']::-webkit-inner-spin-button,\n#sbz92 [type='number']::-webkit-outer-spin-button {\n height: auto !important;\n}\n#sbz92 [hidden] {\n display: none !important;\n}\n#sbz92 ::-webkit-input-placeholder {\n /* Edge */\n color: #777 !important;\n}\n#sbz92 :-ms-input-placeholder {\n /* Internet Explorer 10-11 */\n color: #777 !important;\n}\n#sbz92 ::placeholder {\n color: #777 !important;\n}\n#sbz92 div {\n display: block !important;\n text-rendering: geometricPrecision !important;\n -webkit-font-smoothing: antialiased !important;\n -moz-osx-font-smoothing: grayscale !important;\n}\n#sbz92 ::-webkit-scrollbar {\n width: 7px !important;\n height: 7px !important;\n}\n#sbz92 ::-webkit-scrollbar-track {\n border-radius: 10px !important;\n}\n#sbz92 ::-webkit-scrollbar-thumb {\n border-radius: 10px !important;\n background: #d6d6d6 !important;\n}\n#sbz92 ::-webkit-scrollbar-thumb:hover {\n background: #aaa !important;\n}\n@keyframes fadeOut {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n#sbz92 .fadeOut {\n animation-name: fadeOut !important;\n animation-duration: 150ms !important;\n}\n@keyframes fadeInDownCenter {\n from {\n opacity: 0;\n transform: translate3d(0, -2000px, 0) translateX(-50%);\n }\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0) translateX(-50%);\n }\n}\n#sbz92 .fadeInDownCenter {\n animation-name: fadeInDownCenter !important;\n animation-duration: 0.25s !important;\n}\n@keyframes fadeInUpCenter {\n from {\n opacity: 0;\n transform: translate3d(0, 400px, 0) translateX(-50%);\n }\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0) translateX(-50%);\n }\n}\n#sbz92 .fadeInUpCenter {\n animation-name: fadeInUpCenter !important;\n animation-duration: 0.25s !important;\n}\n@keyframes fadeInDown {\n from {\n opacity: 0;\n transform: translate3d(0, -1000px, 0);\n }\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n}\n#sbz92 .fadeInDown {\n animation-name: fadeInDown !important;\n animation-duration: 0.5s !important;\n}\n@keyframes fadeInUpBig {\n from {\n opacity: 0;\n transform: translate3d(0, 400px, 0);\n }\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n}\n#sbz92 .fadeInUpBig {\n animation-name: fadeInUpBig !important;\n animation-duration: 0.25s !important;\n}\n@keyframes fadeInRightBig {\n from {\n opacity: 0;\n transform: translateY(-50%) translateX(200px);\n }\n to {\n opacity: 1;\n transform: translateY(-50%) translateX(0px);\n }\n}\n#sbz92 .fadeInRightBig {\n animation-name: fadeInRightBig !important;\n animation-duration: 0.5s !important;\n}\n@keyframes fadeInLeftBig {\n from {\n opacity: 0;\n transform: translateY(-50%) translateX(-200px);\n }\n to {\n opacity: 1;\n transform: translateY(-50%) translateX(0px);\n }\n}\n#sbz92 .fadeInLeftBig {\n animation-name: fadeInLeftBig !important;\n animation-duration: 0.5s !important;\n}\n@keyframes zoomIn {\n from {\n opacity: 0.3;\n transform: scale3d(0.5, 0.5, 0.5);\n }\n 50% {\n opacity: 1;\n }\n}\n#sbz92 .zoomIn {\n animation-name: zoomIn !important;\n transform-origin: top left !important;\n animation-duration: 0.15s !important;\n}\n@keyframes zoomOutCenter {\n from {\n opacity: 1;\n }\n 80% {\n opacity: 0.7;\n transform: scale3d(0.5, 0.5, 0.5) translateY(-50%) translateX(-50%);\n }\n}\n#sbz92 .zoomOutCenter {\n animation-name: zoomOutCenter !important;\n transform-origin: top left !important;\n animation-duration: 300ms !important;\n}\n@keyframes zoomInCenter {\n from {\n opacity: 0.3;\n transform: scale3d(0.5, 0.5, 0.5) translateY(-50%) translateX(-50%);\n }\n 50% {\n opacity: 1;\n }\n}\n#sbz92 .zoomInCenter {\n animation-name: zoomInCenter !important;\n transform-origin: top left !important;\n animation-duration: 0.15s !important;\n}\n@keyframes zoomDownYX {\n 0% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(0.01) scaleZ(1);\n }\n 100% {\n transform: scaleY(0.01) scaleX(0) scaleZ(0);\n }\n}\n#sbz92 .zoomDownYX {\n animation-duration: 0.5s !important;\n animation-name: zoomDownYX !important;\n}\n@keyframes zoomUpYX {\n 0% {\n transform: scaleY(0.01) scaleX(0) scaleZ(0);\n }\n 50% {\n transform: scaleY(0.01) scaleZ(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n#sbz92 .zoomUpYX {\n animation-duration: 0.5s !important;\n animation-name: zoomUpYX !important;\n}\n@keyframes bounceIn {\n from,\n 20%,\n 40%,\n 60%,\n 80%,\n to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n 0% {\n opacity: 0;\n transform: scale3d(0.3, 0.3, 0.3);\n }\n 20% {\n transform: scale3d(1.1, 1.1, 1.1);\n }\n 40% {\n transform: scale3d(0.9, 0.9, 0.9);\n }\n 60% {\n opacity: 1;\n transform: scale3d(1.03, 1.03, 1.03);\n }\n 80% {\n transform: scale3d(0.97, 0.97, 0.97);\n }\n to {\n opacity: 1;\n transform: scale3d(1, 1, 1);\n }\n}\n#sbz92 .bounceIn {\n animation-duration: 0.5s !important;\n animation-name: bounceIn !important;\n}\n@keyframes shake {\n 0% {\n transform: skewX(-15deg);\n }\n 5% {\n transform: skewX(15deg);\n }\n 10% {\n transform: skewX(-15deg);\n }\n 15% {\n transform: skewX(15deg);\n }\n 20% {\n transform: skewX(0deg);\n }\n 100% {\n transform: skewX(0deg);\n }\n}\n#sbz92 .notif {\n cursor: pointer !important;\n font-family: Inter !important;\n font-size: 14px !important;\n position: absolute !important;\n user-select: none !important;\n}\n#sbz92 .notif__bottom-left {\n bottom: 20px !important;\n left: 20px !important;\n}\n#sbz92 .notif__top-left {\n top: 20px !important;\n left: 20px !important;\n}\n#sbz92 .notif__top-right {\n top: 20px !important;\n right: 40px !important;\n}\n#sbz92 .notif__bottom-right {\n bottom: 20px !important;\n right: 40px !important;\n}\n#sbz92 .notif__bottom-center {\n transform: translateX(-50%) !important;\n left: 50% !important;\n bottom: 20px !important;\n}\n#sbz92 .notif__top-center {\n transform: translateX(-50%) !important;\n left: 50% !important;\n top: 20px !important;\n}\n#sbz92 .notif_avatar {\n margin-left: 15px !important;\n margin-top: 10px !important;\n margin-bottom: 10px !important;\n overflow: hidden !important;\n width: 70px !important;\n height: 70px !important;\n z-index: 1 !important;\n}\n#sbz92 .notif_avatar__img {\n width: 100% !important;\n height: 100% !important;\n object-fit: cover !important;\n}\n#sbz92 .notif_body {\n z-index: 1 !important;\n display: flex !important;\n flex-direction: column !important;\n justify-content: center !important;\n position: relative !important;\n padding-top: 10px !important;\n padding-left: 20px !important;\n padding-bottom: 30px !important;\n padding-right: 30px !important;\n width: 235px !important;\n height: 100px !important;\n overflow: hidden !important;\n}\n#sbz92 .btn_close {\n background: white !important;\n padding: 0 !important;\n right: -25px !important;\n top: 0px !important;\n position: absolute !important;\n z-index: 10 !important;\n cursor: pointer !important;\n transition: background-color 0.2s ease-out !important;\n box-shadow: rgba(0, 0, 0, 0.2) 0px 12px 28px 0px, rgba(0, 0, 0, 0.1) 0px 2px 4px 0px, rgba(255, 255, 255, 0.5) 0px 0px 0px 1px inset !important;\n border: none !important;\n width: 20px !important;\n height: 20px !important;\n display: flex !important;\n align-items: center !important;\n justify-content: center !important;\n border-radius: 50% !important;\n opacity: 0.7 !important;\n}\n#sbz92 .btn_close:hover {\n opacity: 1 !important;\n}\n#sbz92 .btn_close__icon {\n stroke: #444 !important;\n height: 16px !important;\n width: 16px !important;\n border: 0px !important;\n}\n#sbz92 .notif_bg {\n z-index: 0 !important;\n position: absolute !important;\n top: 50% !important;\n left: 50% !important;\n transform: translate(-50%, -50%) !important;\n}\n#sbz92 .notif_time {\n position: absolute !important;\n bottom: 15px !important;\n left: 20px !important;\n font-size: 12px !important;\n opacity: 0.5 !important;\n}\n#sbz92 .notif_title {\n white-space: nowrap !important;\n flex-shrink: 0 !important;\n text-overflow: ellipsis !important;\n overflow: hidden !important;\n}\n#sbz92 .notif_message {\n text-overflow: ellipsis !important;\n margin-top: 5px !important;\n overflow: hidden !important;\n}\ndiv#sbz92 {\n all: initial;\n}\nbody div#sbz92 {\n all: initial !important;\n}\n#sbz92 {\n z-index: 2000000100 !important;\n /* Handle on hover */\n}\n#sbz92 *,\n#sbz92 *::before,\n#sbz92 *::after {\n box-sizing: border-box;\n}\n#sbz92 [tabindex='-1']:focus:not(:focus-visible) {\n outline: 0;\n}\n#sbz92 b,\n#sbz92 strong {\n font-weight: 500;\n}\n#sbz92 a {\n color: #020202;\n text-decoration: none;\n background-color: transparent;\n}\n#sbz92 a:hover {\n cursor: pointer;\n color: #000000;\n text-decoration: underline;\n}\n#sbz92 a:not([href]) {\n color: inherit;\n text-decoration: none;\n}\n#sbz92 a:not([href]):hover {\n color: inherit;\n text-decoration: none;\n}\n#sbz92 img {\n vertical-align: middle;\n border-style: none;\n}\n#sbz92 svg {\n overflow: hidden;\n vertical-align: middle;\n}\n#sbz92 label {\n display: inline-block;\n}\n#sbz92 button {\n border-radius: 0;\n}\n#sbz92 button:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n#sbz92 input,\n#sbz92 button,\n#sbz92 select,\n#sbz92 optgroup,\n#sbz92 textarea {\n margin: 0;\n}\n#sbz92 button,\n#sbz92 input {\n overflow: visible;\n}\n#sbz92 button,\n#sbz92 select {\n text-transform: none;\n}\n#sbz92 select {\n word-wrap: normal;\n}\n#sbz92 button,\n#sbz92 [type=\"button\"],\n#sbz92 [type=\"reset\"],\n#sbz92 [type=\"submit\"] {\n -webkit-appearance: button;\n}\n#sbz92 button:not(:disabled),\n#sbz92 [type='button']:not(:disabled),\n#sbz92 [type='reset']:not(:disabled),\n#sbz92 [type='submit']:not(:disabled) {\n cursor: pointer;\n}\n#sbz92 button::-moz-focus-inner,\n#sbz92 [type='button']::-moz-focus-inner,\n#sbz92 [type='reset']::-moz-focus-inner,\n#sbz92 [type='submit']::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n#sbz92 input[type='radio'],\n#sbz92 input[type='checkbox'] {\n box-sizing: border-box;\n padding: 0;\n}\n#sbz92 input[type='date'],\n#sbz92 input[type='time'],\n#sbz92 input[type='datetime-local'],\n#sbz92 input[type='month'] {\n -webkit-appearance: listbox;\n}\n#sbz92 textarea {\n overflow: auto;\n resize: vertical;\n}\n#sbz92 [type='number']::-webkit-inner-spin-button,\n#sbz92 [type='number']::-webkit-outer-spin-button {\n height: auto;\n}\n#sbz92 [hidden] {\n display: none;\n}\n#sbz92 ::-webkit-input-placeholder {\n /* Edge */\n color: #777;\n}\n#sbz92 :-ms-input-placeholder {\n /* Internet Explorer 10-11 */\n color: #777;\n}\n#sbz92 ::placeholder {\n color: #777;\n}\n#sbz92 div {\n display: block;\n text-rendering: geometricPrecision;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n#sbz92 ::-webkit-scrollbar {\n width: 7px;\n height: 7px;\n}\n#sbz92 ::-webkit-scrollbar-track {\n border-radius: 10px;\n}\n#sbz92 ::-webkit-scrollbar-thumb {\n border-radius: 10px;\n background: #d6d6d6;\n}\n#sbz92 ::-webkit-scrollbar-thumb:hover {\n background: #aaa;\n}\n@keyframes fadeOut {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n#sbz92 .fadeOut {\n animation-name: fadeOut;\n animation-duration: 150ms;\n}\n@keyframes fadeInDownCenter {\n from {\n opacity: 0;\n transform: translate3d(0, -2000px, 0) translateX(-50%);\n }\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0) translateX(-50%);\n }\n}\n#sbz92 .fadeInDownCenter {\n animation-name: fadeInDownCenter;\n animation-duration: 0.25s;\n}\n@keyframes fadeInUpCenter {\n from {\n opacity: 0;\n transform: translate3d(0, 400px, 0) translateX(-50%);\n }\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0) translateX(-50%);\n }\n}\n#sbz92 .fadeInUpCenter {\n animation-name: fadeInUpCenter;\n animation-duration: 0.25s;\n}\n@keyframes fadeInDown {\n from {\n opacity: 0;\n transform: translate3d(0, -1000px, 0);\n }\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n}\n#sbz92 .fadeInDown {\n animation-name: fadeInDown;\n animation-duration: 0.5s;\n}\n@keyframes fadeInUpBig {\n from {\n opacity: 0;\n transform: translate3d(0, 400px, 0);\n }\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n}\n#sbz92 .fadeInUpBig {\n animation-name: fadeInUpBig;\n animation-duration: 0.25s;\n}\n@keyframes fadeInRightBig {\n from {\n opacity: 0;\n transform: translateY(-50%) translateX(200px);\n }\n to {\n opacity: 1;\n transform: translateY(-50%) translateX(0px);\n }\n}\n#sbz92 .fadeInRightBig {\n animation-name: fadeInRightBig;\n animation-duration: 0.5s;\n}\n@keyframes fadeInLeftBig {\n from {\n opacity: 0;\n transform: translateY(-50%) translateX(-200px);\n }\n to {\n opacity: 1;\n transform: translateY(-50%) translateX(0px);\n }\n}\n#sbz92 .fadeInLeftBig {\n animation-name: fadeInLeftBig;\n animation-duration: 0.5s;\n}\n@keyframes zoomIn {\n from {\n opacity: 0.3;\n transform: scale3d(0.5, 0.5, 0.5);\n }\n 50% {\n opacity: 1;\n }\n}\n#sbz92 .zoomIn {\n animation-name: zoomIn;\n transform-origin: top left;\n animation-duration: 0.15s;\n}\n@keyframes zoomOutCenter {\n from {\n opacity: 1;\n }\n 80% {\n opacity: 0.7;\n transform: scale3d(0.5, 0.5, 0.5) translateY(-50%) translateX(-50%);\n }\n}\n#sbz92 .zoomOutCenter {\n animation-name: zoomOutCenter;\n transform-origin: top left;\n animation-duration: 300ms;\n}\n@keyframes zoomInCenter {\n from {\n opacity: 0.3;\n transform: scale3d(0.5, 0.5, 0.5) translateY(-50%) translateX(-50%);\n }\n 50% {\n opacity: 1;\n }\n}\n#sbz92 .zoomInCenter {\n animation-name: zoomInCenter;\n transform-origin: top left;\n animation-duration: 0.15s;\n}\n@keyframes zoomDownYX {\n 0% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(0.01) scaleZ(1);\n }\n 100% {\n transform: scaleY(0.01) scaleX(0) scaleZ(0);\n }\n}\n#sbz92 .zoomDownYX {\n animation-duration: 0.5s;\n animation-name: zoomDownYX;\n}\n@keyframes zoomUpYX {\n 0% {\n transform: scaleY(0.01) scaleX(0) scaleZ(0);\n }\n 50% {\n transform: scaleY(0.01) scaleZ(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n#sbz92 .zoomUpYX {\n animation-duration: 0.5s;\n animation-name: zoomUpYX;\n}\n@keyframes bounceIn {\n from,\n 20%,\n 40%,\n 60%,\n 80%,\n to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n 0% {\n opacity: 0;\n transform: scale3d(0.3, 0.3, 0.3);\n }\n 20% {\n transform: scale3d(1.1, 1.1, 1.1);\n }\n 40% {\n transform: scale3d(0.9, 0.9, 0.9);\n }\n 60% {\n opacity: 1;\n transform: scale3d(1.03, 1.03, 1.03);\n }\n 80% {\n transform: scale3d(0.97, 0.97, 0.97);\n }\n to {\n opacity: 1;\n transform: scale3d(1, 1, 1);\n }\n}\n#sbz92 .bounceIn {\n animation-duration: 0.5s;\n animation-name: bounceIn;\n}\n@keyframes shake {\n 0% {\n transform: skewX(-15deg);\n }\n 5% {\n transform: skewX(15deg);\n }\n 10% {\n transform: skewX(-15deg);\n }\n 15% {\n transform: skewX(15deg);\n }\n 20% {\n transform: skewX(0deg);\n }\n 100% {\n transform: skewX(0deg);\n }\n}\n#sbz92 .notif {\n cursor: pointer;\n font-family: Inter;\n font-size: 14px;\n position: absolute;\n user-select: none;\n}\n#sbz92 .notif__bottom-left {\n bottom: 20px;\n left: 20px;\n}\n#sbz92 .notif__top-left {\n top: 20px;\n left: 20px;\n}\n#sbz92 .notif__top-right {\n top: 20px;\n right: 40px;\n}\n#sbz92 .notif__bottom-right {\n bottom: 20px;\n right: 40px;\n}\n#sbz92 .notif__bottom-center {\n transform: translateX(-50%);\n left: 50%;\n bottom: 20px;\n}\n#sbz92 .notif__top-center {\n transform: translateX(-50%);\n left: 50%;\n top: 20px;\n}\n#sbz92 .notif_avatar {\n margin-left: 15px;\n margin-top: 10px;\n margin-bottom: 10px;\n overflow: hidden;\n width: 70px;\n height: 70px;\n z-index: 1;\n}\n#sbz92 .notif_avatar__img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n#sbz92 .notif_body {\n z-index: 1;\n display: flex;\n flex-direction: column;\n justify-content: center;\n position: relative;\n padding-top: 10px;\n padding-left: 20px;\n padding-bottom: 30px;\n padding-right: 30px;\n width: 235px;\n height: 100px;\n overflow: hidden;\n}\n#sbz92 .btn_close {\n background: white;\n padding: 0;\n right: -25px;\n top: 0px;\n position: absolute;\n z-index: 10;\n cursor: pointer;\n transition: background-color 0.2s ease-out;\n box-shadow: rgba(0, 0, 0, 0.2) 0px 12px 28px 0px, rgba(0, 0, 0, 0.1) 0px 2px 4px 0px, rgba(255, 255, 255, 0.5) 0px 0px 0px 1px inset;\n border: none;\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n opacity: 0.7;\n}\n#sbz92 .btn_close:hover {\n opacity: 1;\n}\n#sbz92 .btn_close__icon {\n stroke: #444;\n height: 16px;\n width: 16px;\n border: 0px;\n}\n#sbz92 .notif_bg {\n z-index: 0;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n#sbz92 .notif_time {\n position: absolute;\n bottom: 15px;\n left: 20px;\n font-size: 12px;\n opacity: 0.5;\n}\n#sbz92 .notif_title {\n white-space: nowrap;\n flex-shrink: 0;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n#sbz92 .notif_message {\n text-overflow: ellipsis;\n margin-top: 5px;\n overflow: hidden;\n}\n", ""]);
17
+ ___CSS_LOADER_EXPORT___.push([module.id, "@font-face {\n font-family: 'Dancing Script';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/dancingscript/v28/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7BMSoHTQ.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Dancing Script';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/dancingscript/v28/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7BAyoHTQ.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Dancing Script';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/dancingscript/v28/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7B7y0HTQ.ttf) format('truetype');\n}\n@font-face {\n font-family: 'EB Garamond';\n font-style: italic;\n font-weight: 400;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/ebgaramond/v31/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7e8QI96.ttf) format('truetype');\n}\n@font-face {\n font-family: 'EB Garamond';\n font-style: italic;\n font-weight: 500;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/ebgaramond/v31/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7eOQI96.ttf) format('truetype');\n}\n@font-face {\n font-family: 'EB Garamond';\n font-style: italic;\n font-weight: 600;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/ebgaramond/v31/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7diR496.ttf) format('truetype');\n}\n@font-face {\n font-family: 'EB Garamond';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/ebgaramond/v31/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-6_RUAw.ttf) format('truetype');\n}\n@font-face {\n font-family: 'EB Garamond';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/ebgaramond/v31/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-2fRUAw.ttf) format('truetype');\n}\n@font-face {\n font-family: 'EB Garamond';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/ebgaramond/v31/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-NfNUAw.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Inconsolata';\n font-style: normal;\n font-weight: 300;\n font-stretch: normal;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/inconsolata/v36/QldgNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLYxYWI2qfdm7Lpp9s8aRo.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Inconsolata';\n font-style: normal;\n font-weight: 400;\n font-stretch: normal;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/inconsolata/v36/QldgNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLYxYWI2qfdm7Lpp4U8aRo.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Inconsolata';\n font-style: normal;\n font-weight: 500;\n font-stretch: normal;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/inconsolata/v36/QldgNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLYxYWI2qfdm7Lpp7c8aRo.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Montserrat';\n font-style: italic;\n font-weight: 300;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/montserrat/v30/JTUFjIg1_i6t8kCHKm459Wx7xQYXK0vOoz6jq_p9aX8.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Montserrat';\n font-style: italic;\n font-weight: 400;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/montserrat/v30/JTUFjIg1_i6t8kCHKm459Wx7xQYXK0vOoz6jq6R9aX8.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Montserrat';\n font-style: italic;\n font-weight: 500;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/montserrat/v30/JTUFjIg1_i6t8kCHKm459Wx7xQYXK0vOoz6jq5Z9aX8.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Montserrat';\n font-style: italic;\n font-weight: 600;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/montserrat/v30/JTUFjIg1_i6t8kCHKm459Wx7xQYXK0vOoz6jq3p6aX8.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Montserrat';\n font-style: italic;\n font-weight: 700;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/montserrat/v30/JTUFjIg1_i6t8kCHKm459Wx7xQYXK0vOoz6jq0N6aX8.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Montserrat';\n font-style: normal;\n font-weight: 300;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/montserrat/v30/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCs16Ew-.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Montserrat';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/montserrat/v30/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Ew-.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Montserrat';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/montserrat/v30/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtZ6Ew-.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Montserrat';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/montserrat/v30/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCu170w-.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Montserrat';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/montserrat/v30/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCuM70w-.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Roboto';\n font-style: italic;\n font-weight: 300;\n font-stretch: normal;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/roboto/v48/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLt_QiA8.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Roboto';\n font-style: italic;\n font-weight: 400;\n font-stretch: normal;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/roboto/v48/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLoHQiA8.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Roboto';\n font-style: italic;\n font-weight: 500;\n font-stretch: normal;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/roboto/v48/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLrPQiA8.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Roboto';\n font-style: italic;\n font-weight: 700;\n font-stretch: normal;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/roboto/v48/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLmbXiA8.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 300;\n font-stretch: normal;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/roboto/v48/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabWmT.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 400;\n font-stretch: normal;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/roboto/v48/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWubEbWmT.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 500;\n font-stretch: normal;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/roboto/v48/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWub2bWmT.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 700;\n font-stretch: normal;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/roboto/v48/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuYjammT.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Signika';\n font-style: normal;\n font-weight: 300;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/signika/v28/vEF72_JTCgwQ5ejvMV0Ox_Kg1UwJ0tKfX4zNpD8E4ASzH1r93zuYzQ.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Signika';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/signika/v28/vEF72_JTCgwQ5ejvMV0Ox_Kg1UwJ0tKfX4zNpD8E4ASzH1r9gTuYzQ.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Signika';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/signika/v28/vEF72_JTCgwQ5ejvMV0Ox_Kg1UwJ0tKfX4zNpD8E4ASzH1r9szuYzQ.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Signika';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/signika/v28/vEF72_JTCgwQ5ejvMV0Ox_Kg1UwJ0tKfX4zNpD8E4ASzH1r9XzyYzQ.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Source Serif Pro';\n font-style: italic;\n font-weight: 300;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/sourceserifpro/v17/neIVzD-0qpwxpaWvjeD0X88SAOeauXEGCSmqwQ.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Source Serif Pro';\n font-style: italic;\n font-weight: 400;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/sourceserifpro/v17/neIWzD-0qpwxpaWvjeD0X88SAOeauXE-pQ.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Source Serif Pro';\n font-style: italic;\n font-weight: 600;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/sourceserifpro/v17/neIVzD-0qpwxpaWvjeD0X88SAOeauXEGfS-qwQ.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Source Serif Pro';\n font-style: normal;\n font-weight: 300;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/sourceserifpro/v17/neIXzD-0qpwxpaWvjeD0X88SAOeasd8chSs.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Source Serif Pro';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/sourceserifpro/v17/neIQzD-0qpwxpaWvjeD0X88SAOeaiXM.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Source Serif Pro';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/sourceserifpro/v17/neIXzD-0qpwxpaWvjeD0X88SAOeasasahSs.ttf) format('truetype');\n}\n@font-face {\n font-family: 'Yeseva One';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/yesevaone/v23/OpNJno4ck8vc-xYpwWWxpio.ttf) format('truetype');\n}\n#sbz92 * {\n all: unset !important;\n}\n#sbz92 {\n z-index: 2000000100 !important;\n /* Handle on hover */\n}\n#sbz92 *,\n#sbz92 *::before,\n#sbz92 *::after {\n box-sizing: border-box !important;\n}\n#sbz92 [tabindex='-1']:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n#sbz92 b,\n#sbz92 strong {\n font-weight: 500 !important;\n}\n#sbz92 a {\n color: #020202 !important;\n text-decoration: none !important;\n background-color: transparent !important;\n}\n#sbz92 a:hover {\n cursor: pointer !important;\n color: #000000 !important;\n text-decoration: underline !important;\n}\n#sbz92 a:not([href]) {\n color: inherit !important;\n text-decoration: none !important;\n}\n#sbz92 a:not([href]):hover {\n color: inherit !important;\n text-decoration: none !important;\n}\n#sbz92 img {\n vertical-align: middle !important;\n border-style: none !important;\n}\n#sbz92 svg {\n overflow: hidden !important;\n vertical-align: middle !important;\n}\n#sbz92 label {\n display: inline-block !important;\n}\n#sbz92 button {\n border-radius: 0 !important;\n}\n#sbz92 button:focus {\n outline: 1px dotted !important;\n outline: 5px auto -webkit-focus-ring-color !important;\n}\n#sbz92 input,\n#sbz92 button,\n#sbz92 select,\n#sbz92 optgroup,\n#sbz92 textarea {\n margin: 0 !important;\n}\n#sbz92 button,\n#sbz92 input {\n overflow: visible !important;\n}\n#sbz92 button,\n#sbz92 select {\n text-transform: none !important;\n}\n#sbz92 select {\n word-wrap: normal !important;\n}\n#sbz92 button,\n#sbz92 [type=\"button\"],\n#sbz92 [type=\"reset\"],\n#sbz92 [type=\"submit\"] {\n -webkit-appearance: button !important;\n}\n#sbz92 button:not(:disabled),\n#sbz92 [type='button']:not(:disabled),\n#sbz92 [type='reset']:not(:disabled),\n#sbz92 [type='submit']:not(:disabled) {\n cursor: pointer !important;\n}\n#sbz92 button::-moz-focus-inner,\n#sbz92 [type='button']::-moz-focus-inner,\n#sbz92 [type='reset']::-moz-focus-inner,\n#sbz92 [type='submit']::-moz-focus-inner {\n padding: 0 !important;\n border-style: none !important;\n}\n#sbz92 input[type='radio'],\n#sbz92 input[type='checkbox'] {\n box-sizing: border-box !important;\n padding: 0 !important;\n}\n#sbz92 input[type='date'],\n#sbz92 input[type='time'],\n#sbz92 input[type='datetime-local'],\n#sbz92 input[type='month'] {\n -webkit-appearance: listbox !important;\n}\n#sbz92 textarea {\n overflow: auto !important;\n resize: vertical !important;\n}\n#sbz92 [type='number']::-webkit-inner-spin-button,\n#sbz92 [type='number']::-webkit-outer-spin-button {\n height: auto !important;\n}\n#sbz92 [hidden] {\n display: none !important;\n}\n#sbz92 ::-webkit-input-placeholder {\n /* Edge */\n color: #777 !important;\n}\n#sbz92 :-ms-input-placeholder {\n /* Internet Explorer 10-11 */\n color: #777 !important;\n}\n#sbz92 ::placeholder {\n color: #777 !important;\n}\n#sbz92 div {\n display: block !important;\n text-rendering: geometricPrecision !important;\n -webkit-font-smoothing: antialiased !important;\n -moz-osx-font-smoothing: grayscale !important;\n}\n#sbz92 ::-webkit-scrollbar {\n width: 7px !important;\n height: 7px !important;\n}\n#sbz92 ::-webkit-scrollbar-track {\n border-radius: 10px !important;\n}\n#sbz92 ::-webkit-scrollbar-thumb {\n border-radius: 10px !important;\n background: #d6d6d6 !important;\n}\n#sbz92 ::-webkit-scrollbar-thumb:hover {\n background: #aaa !important;\n}\n@keyframes fadeOut {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n#sbz92 .fadeOut {\n animation-name: fadeOut !important;\n animation-duration: 150ms !important;\n}\n@keyframes fadeInDownCenter {\n from {\n opacity: 0;\n transform: translate3d(0, -2000px, 0) translateX(-50%);\n }\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0) translateX(-50%);\n }\n}\n#sbz92 .fadeInDownCenter {\n animation-name: fadeInDownCenter !important;\n animation-duration: 0.25s !important;\n}\n@keyframes fadeInUpCenter {\n from {\n opacity: 0;\n transform: translate3d(0, 400px, 0) translateX(-50%);\n }\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0) translateX(-50%);\n }\n}\n#sbz92 .fadeInUpCenter {\n animation-name: fadeInUpCenter !important;\n animation-duration: 0.25s !important;\n}\n@keyframes fadeInDown {\n from {\n opacity: 0;\n transform: translate3d(0, -1000px, 0);\n }\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n}\n#sbz92 .fadeInDown {\n animation-name: fadeInDown !important;\n animation-duration: 0.5s !important;\n}\n@keyframes fadeInUpBig {\n from {\n opacity: 0;\n transform: translate3d(0, 400px, 0);\n }\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n}\n#sbz92 .fadeInUpBig {\n animation-name: fadeInUpBig !important;\n animation-duration: 0.25s !important;\n}\n@keyframes fadeInRightBig {\n from {\n opacity: 0;\n transform: translateY(-50%) translateX(200px);\n }\n to {\n opacity: 1;\n transform: translateY(-50%) translateX(0px);\n }\n}\n#sbz92 .fadeInRightBig {\n animation-name: fadeInRightBig !important;\n animation-duration: 0.5s !important;\n}\n@keyframes fadeInLeftBig {\n from {\n opacity: 0;\n transform: translateY(-50%) translateX(-200px);\n }\n to {\n opacity: 1;\n transform: translateY(-50%) translateX(0px);\n }\n}\n#sbz92 .fadeInLeftBig {\n animation-name: fadeInLeftBig !important;\n animation-duration: 0.5s !important;\n}\n@keyframes zoomIn {\n from {\n opacity: 0.3;\n transform: scale3d(0.5, 0.5, 0.5);\n }\n 50% {\n opacity: 1;\n }\n}\n#sbz92 .zoomIn {\n animation-name: zoomIn !important;\n transform-origin: top left !important;\n animation-duration: 0.15s !important;\n}\n@keyframes zoomOutCenter {\n from {\n opacity: 1;\n }\n 80% {\n opacity: 0.7;\n transform: scale3d(0.5, 0.5, 0.5) translateY(-50%) translateX(-50%);\n }\n}\n#sbz92 .zoomOutCenter {\n animation-name: zoomOutCenter !important;\n transform-origin: top left !important;\n animation-duration: 300ms !important;\n}\n@keyframes zoomInCenter {\n from {\n opacity: 0.3;\n transform: scale3d(0.5, 0.5, 0.5) translateY(-50%) translateX(-50%);\n }\n 50% {\n opacity: 1;\n }\n}\n#sbz92 .zoomInCenter {\n animation-name: zoomInCenter !important;\n transform-origin: top left !important;\n animation-duration: 0.15s !important;\n}\n@keyframes zoomDownYX {\n 0% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(0.01) scaleZ(1);\n }\n 100% {\n transform: scaleY(0.01) scaleX(0) scaleZ(0);\n }\n}\n#sbz92 .zoomDownYX {\n animation-duration: 0.5s !important;\n animation-name: zoomDownYX !important;\n}\n@keyframes zoomUpYX {\n 0% {\n transform: scaleY(0.01) scaleX(0) scaleZ(0);\n }\n 50% {\n transform: scaleY(0.01) scaleZ(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n#sbz92 .zoomUpYX {\n animation-duration: 0.5s !important;\n animation-name: zoomUpYX !important;\n}\n@keyframes bounceIn {\n from,\n 20%,\n 40%,\n 60%,\n 80%,\n to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n 0% {\n opacity: 0;\n transform: scale3d(0.3, 0.3, 0.3);\n }\n 20% {\n transform: scale3d(1.1, 1.1, 1.1);\n }\n 40% {\n transform: scale3d(0.9, 0.9, 0.9);\n }\n 60% {\n opacity: 1;\n transform: scale3d(1.03, 1.03, 1.03);\n }\n 80% {\n transform: scale3d(0.97, 0.97, 0.97);\n }\n to {\n opacity: 1;\n transform: scale3d(1, 1, 1);\n }\n}\n#sbz92 .bounceIn {\n animation-duration: 0.5s !important;\n animation-name: bounceIn !important;\n}\n@keyframes shake {\n 0% {\n transform: skewX(-15deg);\n }\n 5% {\n transform: skewX(15deg);\n }\n 10% {\n transform: skewX(-15deg);\n }\n 15% {\n transform: skewX(15deg);\n }\n 20% {\n transform: skewX(0deg);\n }\n 100% {\n transform: skewX(0deg);\n }\n}\n#sbz92 .notif {\n cursor: pointer !important;\n font-family: Inter !important;\n font-size: 14px !important;\n position: absolute !important;\n user-select: none !important;\n}\n#sbz92 .notif__bottom-left {\n bottom: 20px !important;\n left: 20px !important;\n}\n#sbz92 .notif__top-left {\n top: 20px !important;\n left: 20px !important;\n}\n#sbz92 .notif__top-right {\n top: 20px !important;\n right: 40px !important;\n}\n#sbz92 .notif__bottom-right {\n bottom: 20px !important;\n right: 40px !important;\n}\n#sbz92 .notif__bottom-center {\n transform: translateX(-50%) !important;\n left: 50% !important;\n bottom: 20px !important;\n}\n#sbz92 .notif__top-center {\n transform: translateX(-50%) !important;\n left: 50% !important;\n top: 20px !important;\n}\n#sbz92 .notif_avatar {\n margin-left: 15px !important;\n margin-top: 10px !important;\n margin-bottom: 10px !important;\n overflow: hidden !important;\n width: 70px !important;\n height: 70px !important;\n z-index: 1 !important;\n}\n#sbz92 .notif_avatar__img {\n width: 100% !important;\n height: 100% !important;\n object-fit: cover !important;\n}\n#sbz92 .notif_body {\n z-index: 1 !important;\n display: flex !important;\n flex-direction: column !important;\n justify-content: center !important;\n position: relative !important;\n padding-top: 10px !important;\n padding-left: 20px !important;\n padding-bottom: 30px !important;\n padding-right: 30px !important;\n width: 235px !important;\n height: 100px !important;\n overflow: hidden !important;\n}\n#sbz92 .btn_close {\n background: white !important;\n padding: 0 !important;\n right: -25px !important;\n top: 0px !important;\n position: absolute !important;\n z-index: 10 !important;\n cursor: pointer !important;\n transition: background-color 0.2s ease-out !important;\n box-shadow: rgba(0, 0, 0, 0.2) 0px 12px 28px 0px, rgba(0, 0, 0, 0.1) 0px 2px 4px 0px, rgba(255, 255, 255, 0.5) 0px 0px 0px 1px inset !important;\n border: none !important;\n width: 20px !important;\n height: 20px !important;\n display: flex !important;\n align-items: center !important;\n justify-content: center !important;\n border-radius: 50% !important;\n opacity: 0.7 !important;\n}\n#sbz92 .btn_close:hover {\n opacity: 1 !important;\n}\n#sbz92 .btn_close__icon {\n stroke: #444 !important;\n height: 16px !important;\n width: 16px !important;\n border: 0px !important;\n}\n#sbz92 .notif_bg {\n z-index: 0 !important;\n position: absolute !important;\n top: 50% !important;\n left: 50% !important;\n transform: translate(-50%, -50%) !important;\n}\n#sbz92 .notif_time {\n position: absolute !important;\n bottom: 15px !important;\n left: 20px !important;\n font-size: 12px !important;\n opacity: 0.5 !important;\n}\n#sbz92 .notif_title {\n white-space: nowrap !important;\n flex-shrink: 0 !important;\n text-overflow: ellipsis !important;\n overflow: hidden !important;\n}\n#sbz92 .notif_message {\n text-overflow: ellipsis !important;\n margin-top: 5px !important;\n overflow: hidden !important;\n}\ndiv#sbz92 {\n all: initial;\n}\nbody div#sbz92 {\n all: initial !important;\n}\n#sbz92 {\n z-index: 2000000100 !important;\n /* Handle on hover */\n}\n#sbz92 *,\n#sbz92 *::before,\n#sbz92 *::after {\n box-sizing: border-box;\n}\n#sbz92 [tabindex='-1']:focus:not(:focus-visible) {\n outline: 0;\n}\n#sbz92 b,\n#sbz92 strong {\n font-weight: 500;\n}\n#sbz92 a {\n color: #020202;\n text-decoration: none;\n background-color: transparent;\n}\n#sbz92 a:hover {\n cursor: pointer;\n color: #000000;\n text-decoration: underline;\n}\n#sbz92 a:not([href]) {\n color: inherit;\n text-decoration: none;\n}\n#sbz92 a:not([href]):hover {\n color: inherit;\n text-decoration: none;\n}\n#sbz92 img {\n vertical-align: middle;\n border-style: none;\n}\n#sbz92 svg {\n overflow: hidden;\n vertical-align: middle;\n}\n#sbz92 label {\n display: inline-block;\n}\n#sbz92 button {\n border-radius: 0;\n}\n#sbz92 button:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n#sbz92 input,\n#sbz92 button,\n#sbz92 select,\n#sbz92 optgroup,\n#sbz92 textarea {\n margin: 0;\n}\n#sbz92 button,\n#sbz92 input {\n overflow: visible;\n}\n#sbz92 button,\n#sbz92 select {\n text-transform: none;\n}\n#sbz92 select {\n word-wrap: normal;\n}\n#sbz92 button,\n#sbz92 [type=\"button\"],\n#sbz92 [type=\"reset\"],\n#sbz92 [type=\"submit\"] {\n -webkit-appearance: button;\n}\n#sbz92 button:not(:disabled),\n#sbz92 [type='button']:not(:disabled),\n#sbz92 [type='reset']:not(:disabled),\n#sbz92 [type='submit']:not(:disabled) {\n cursor: pointer;\n}\n#sbz92 button::-moz-focus-inner,\n#sbz92 [type='button']::-moz-focus-inner,\n#sbz92 [type='reset']::-moz-focus-inner,\n#sbz92 [type='submit']::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n#sbz92 input[type='radio'],\n#sbz92 input[type='checkbox'] {\n box-sizing: border-box;\n padding: 0;\n}\n#sbz92 input[type='date'],\n#sbz92 input[type='time'],\n#sbz92 input[type='datetime-local'],\n#sbz92 input[type='month'] {\n -webkit-appearance: listbox;\n}\n#sbz92 textarea {\n overflow: auto;\n resize: vertical;\n}\n#sbz92 [type='number']::-webkit-inner-spin-button,\n#sbz92 [type='number']::-webkit-outer-spin-button {\n height: auto;\n}\n#sbz92 [hidden] {\n display: none;\n}\n#sbz92 ::-webkit-input-placeholder {\n /* Edge */\n color: #777;\n}\n#sbz92 :-ms-input-placeholder {\n /* Internet Explorer 10-11 */\n color: #777;\n}\n#sbz92 ::placeholder {\n color: #777;\n}\n#sbz92 div {\n display: block;\n text-rendering: geometricPrecision;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n#sbz92 ::-webkit-scrollbar {\n width: 7px;\n height: 7px;\n}\n#sbz92 ::-webkit-scrollbar-track {\n border-radius: 10px;\n}\n#sbz92 ::-webkit-scrollbar-thumb {\n border-radius: 10px;\n background: #d6d6d6;\n}\n#sbz92 ::-webkit-scrollbar-thumb:hover {\n background: #aaa;\n}\n@keyframes fadeOut {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n#sbz92 .fadeOut {\n animation-name: fadeOut;\n animation-duration: 150ms;\n}\n@keyframes fadeInDownCenter {\n from {\n opacity: 0;\n transform: translate3d(0, -2000px, 0) translateX(-50%);\n }\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0) translateX(-50%);\n }\n}\n#sbz92 .fadeInDownCenter {\n animation-name: fadeInDownCenter;\n animation-duration: 0.25s;\n}\n@keyframes fadeInUpCenter {\n from {\n opacity: 0;\n transform: translate3d(0, 400px, 0) translateX(-50%);\n }\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0) translateX(-50%);\n }\n}\n#sbz92 .fadeInUpCenter {\n animation-name: fadeInUpCenter;\n animation-duration: 0.25s;\n}\n@keyframes fadeInDown {\n from {\n opacity: 0;\n transform: translate3d(0, -1000px, 0);\n }\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n}\n#sbz92 .fadeInDown {\n animation-name: fadeInDown;\n animation-duration: 0.5s;\n}\n@keyframes fadeInUpBig {\n from {\n opacity: 0;\n transform: translate3d(0, 400px, 0);\n }\n to {\n opacity: 1;\n transform: translate3d(0, 0, 0);\n }\n}\n#sbz92 .fadeInUpBig {\n animation-name: fadeInUpBig;\n animation-duration: 0.25s;\n}\n@keyframes fadeInRightBig {\n from {\n opacity: 0;\n transform: translateY(-50%) translateX(200px);\n }\n to {\n opacity: 1;\n transform: translateY(-50%) translateX(0px);\n }\n}\n#sbz92 .fadeInRightBig {\n animation-name: fadeInRightBig;\n animation-duration: 0.5s;\n}\n@keyframes fadeInLeftBig {\n from {\n opacity: 0;\n transform: translateY(-50%) translateX(-200px);\n }\n to {\n opacity: 1;\n transform: translateY(-50%) translateX(0px);\n }\n}\n#sbz92 .fadeInLeftBig {\n animation-name: fadeInLeftBig;\n animation-duration: 0.5s;\n}\n@keyframes zoomIn {\n from {\n opacity: 0.3;\n transform: scale3d(0.5, 0.5, 0.5);\n }\n 50% {\n opacity: 1;\n }\n}\n#sbz92 .zoomIn {\n animation-name: zoomIn;\n transform-origin: top left;\n animation-duration: 0.15s;\n}\n@keyframes zoomOutCenter {\n from {\n opacity: 1;\n }\n 80% {\n opacity: 0.7;\n transform: scale3d(0.5, 0.5, 0.5) translateY(-50%) translateX(-50%);\n }\n}\n#sbz92 .zoomOutCenter {\n animation-name: zoomOutCenter;\n transform-origin: top left;\n animation-duration: 300ms;\n}\n@keyframes zoomInCenter {\n from {\n opacity: 0.3;\n transform: scale3d(0.5, 0.5, 0.5) translateY(-50%) translateX(-50%);\n }\n 50% {\n opacity: 1;\n }\n}\n#sbz92 .zoomInCenter {\n animation-name: zoomInCenter;\n transform-origin: top left;\n animation-duration: 0.15s;\n}\n@keyframes zoomDownYX {\n 0% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(0.01) scaleZ(1);\n }\n 100% {\n transform: scaleY(0.01) scaleX(0) scaleZ(0);\n }\n}\n#sbz92 .zoomDownYX {\n animation-duration: 0.5s;\n animation-name: zoomDownYX;\n}\n@keyframes zoomUpYX {\n 0% {\n transform: scaleY(0.01) scaleX(0) scaleZ(0);\n }\n 50% {\n transform: scaleY(0.01) scaleZ(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n#sbz92 .zoomUpYX {\n animation-duration: 0.5s;\n animation-name: zoomUpYX;\n}\n@keyframes bounceIn {\n from,\n 20%,\n 40%,\n 60%,\n 80%,\n to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n 0% {\n opacity: 0;\n transform: scale3d(0.3, 0.3, 0.3);\n }\n 20% {\n transform: scale3d(1.1, 1.1, 1.1);\n }\n 40% {\n transform: scale3d(0.9, 0.9, 0.9);\n }\n 60% {\n opacity: 1;\n transform: scale3d(1.03, 1.03, 1.03);\n }\n 80% {\n transform: scale3d(0.97, 0.97, 0.97);\n }\n to {\n opacity: 1;\n transform: scale3d(1, 1, 1);\n }\n}\n#sbz92 .bounceIn {\n animation-duration: 0.5s;\n animation-name: bounceIn;\n}\n@keyframes shake {\n 0% {\n transform: skewX(-15deg);\n }\n 5% {\n transform: skewX(15deg);\n }\n 10% {\n transform: skewX(-15deg);\n }\n 15% {\n transform: skewX(15deg);\n }\n 20% {\n transform: skewX(0deg);\n }\n 100% {\n transform: skewX(0deg);\n }\n}\n#sbz92 .notif {\n cursor: pointer;\n font-family: Inter;\n font-size: 14px;\n position: absolute;\n user-select: none;\n}\n#sbz92 .notif__bottom-left {\n bottom: 20px;\n left: 20px;\n}\n#sbz92 .notif__top-left {\n top: 20px;\n left: 20px;\n}\n#sbz92 .notif__top-right {\n top: 20px;\n right: 40px;\n}\n#sbz92 .notif__bottom-right {\n bottom: 20px;\n right: 40px;\n}\n#sbz92 .notif__bottom-center {\n transform: translateX(-50%);\n left: 50%;\n bottom: 20px;\n}\n#sbz92 .notif__top-center {\n transform: translateX(-50%);\n left: 50%;\n top: 20px;\n}\n#sbz92 .notif_avatar {\n margin-left: 15px;\n margin-top: 10px;\n margin-bottom: 10px;\n overflow: hidden;\n width: 70px;\n height: 70px;\n z-index: 1;\n}\n#sbz92 .notif_avatar__img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n#sbz92 .notif_body {\n z-index: 1;\n display: flex;\n flex-direction: column;\n justify-content: center;\n position: relative;\n padding-top: 10px;\n padding-left: 20px;\n padding-bottom: 30px;\n padding-right: 30px;\n width: 235px;\n height: 100px;\n overflow: hidden;\n}\n#sbz92 .btn_close {\n background: white;\n padding: 0;\n right: -25px;\n top: 0px;\n position: absolute;\n z-index: 10;\n cursor: pointer;\n transition: background-color 0.2s ease-out;\n box-shadow: rgba(0, 0, 0, 0.2) 0px 12px 28px 0px, rgba(0, 0, 0, 0.1) 0px 2px 4px 0px, rgba(255, 255, 255, 0.5) 0px 0px 0px 1px inset;\n border: none;\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n opacity: 0.7;\n}\n#sbz92 .btn_close:hover {\n opacity: 1;\n}\n#sbz92 .btn_close__icon {\n stroke: #444;\n height: 16px;\n width: 16px;\n border: 0px;\n}\n#sbz92 .notif_bg {\n z-index: 0;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n#sbz92 .notif_time {\n position: absolute;\n bottom: 15px;\n left: 20px;\n font-size: 12px;\n opacity: 0.5;\n}\n#sbz92 .notif_title {\n white-space: nowrap;\n flex-shrink: 0;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n#sbz92 .notif_message {\n text-overflow: ellipsis;\n margin-top: 5px;\n overflow: hidden;\n}\n", ""]);
18
18
  // Exports
19
19
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
20
20
 
package/dist/HASH ADDED
@@ -0,0 +1 @@
1
+ 1977d0fb90d
@@ -5085,9 +5085,15 @@ class Store {
5085
5085
  setAIDevMode(mode) {
5086
5086
  this.ai_dev_mode = mode;
5087
5087
  }
5088
+ setEmbebedChatMode() {
5089
+ this.is_embed_chat_mode = true;
5090
+ }
5088
5091
  isAIDevMode() {
5089
5092
  return this.ai_dev_mode;
5090
5093
  }
5094
+ isEmbededChatMode() {
5095
+ return this.is_embed_chat_mode;
5096
+ }
5091
5097
  overrideDeviceType(type) {
5092
5098
  this.forceDevice = type;
5093
5099
  this.pubsub.publish('account');
@@ -5172,7 +5178,10 @@ class Store {
5172
5178
  mask: mask,
5173
5179
  ref: userRef
5174
5180
  });
5175
- if (user.error) return console.error(user);
5181
+ if (user.error) {
5182
+ console.error(user);
5183
+ return user;
5184
+ }
5176
5185
  if (this.realtime) this.realtime.stop();
5177
5186
  if (this.fake) this.realtime = new realtime_fake();else this.realtime = new Realtime(this.RealtimeURL, {
5178
5187
  account_id: accid,
@@ -6746,6 +6755,7 @@ Vui lòng hỏi chúng tôi bất cứ điều gì hoặc chia sẻ phản hồi
6746
6755
  renderCloseButton() {
6747
6756
  let accSetting = this.props.plugin.chatbox || {};
6748
6757
  if (accSetting.hide_close_button) return null;
6758
+ if (this.props.store.isEmbededChatMode()) return;
6749
6759
  return (0,preact_module.h)("div", {
6750
6760
  class: "widget-header--button-close",
6751
6761
  "data-tooltip": this.props.t('close'),
@@ -7189,6 +7199,7 @@ class ImageAttachment extends common/* Com */.Mw {
7189
7199
  return;
7190
7200
  }
7191
7201
  let byType = util/* default */.A.get(this.props.ev, 'by.type');
7202
+ if (byType !== 'user') byType = 'agent';
7192
7203
  if (!image.width || !image.height) {
7193
7204
  return (0,preact_module.h)("div", {
7194
7205
  class: `image-attachment image-attachment--${byType}`
@@ -7235,6 +7246,7 @@ class ImageAttachment extends common/* Com */.Mw {
7235
7246
  var attachments = util/* default */.A.get(this.props.ev, 'data.message.attachments', []);
7236
7247
  var images = [];
7237
7248
  let byType = util/* default */.A.get(this.props.ev, 'by.type');
7249
+ if (byType !== 'user') byType = 'agent';
7238
7250
  util/* default */.A.each(attachments, (att, i) => {
7239
7251
  if (!att) return;
7240
7252
  if (!util/* default */.A.includes(att.mimetype, 'image')) return;
@@ -7295,6 +7307,7 @@ function AudioAttachments(props) {
7295
7307
  class FileAttachments extends common/* Com */.Mw {
7296
7308
  render() {
7297
7309
  var byType = util/* default */.A.get(this.props.ev, 'by.type', 'agent');
7310
+ if (byType !== 'user') byType = 'agent';
7298
7311
  var attachments = util/* default */.A.get(this.props.ev, 'data.message.attachments', []);
7299
7312
  var files = [];
7300
7313
  util/* default */.A.each(attachments, att => {
@@ -10314,8 +10327,10 @@ class Widget extends common/* Com */.Mw {
10314
10327
  let hasError = util/* default */.A.find(this.state.formData, field => !!field.error);
10315
10328
  let newData = this.validateForm(this.state.formData);
10316
10329
  let hasEmptyError = util/* default */.A.find(newData, field => !!field.is_empty_error);
10330
+ let bodycls = 'widget-body';
10331
+ if (this.props.store.isEmbededChatMode()) bodycls += ' embed-chat';
10317
10332
  return (0,preact_module.h)("div", {
10318
- class: "widget-body"
10333
+ class: bodycls
10319
10334
  }, (0,preact_module.h)(FormMounter, {
10320
10335
  key: form._updated,
10321
10336
  form: form,
@@ -10476,8 +10491,10 @@ class Widget extends common/* Com */.Mw {
10476
10491
  onClick: e => this.onStartConvoClick(e)
10477
10492
  }, this.props.t('offline_preform_btn')));
10478
10493
  }
10494
+ let bodycls = 'widget-body';
10495
+ if (this.props.store.isEmbededChatMode()) bodycls += ' embed-chat';
10479
10496
  return (0,preact_module.h)("div", {
10480
- class: "widget-body"
10497
+ class: bodycls
10481
10498
  }, (0,preact_module.h)("div", {
10482
10499
  class: "widget-body--content",
10483
10500
  onClick: e => this.onContainerClick(e)
@@ -11293,6 +11310,9 @@ class lib_Widget {
11293
11310
  setAIDevMode(mode) {
11294
11311
  this.store.setAIDevMode(mode);
11295
11312
  }
11313
+ setEmbebedChatMode() {
11314
+ this.store.setEmbebedChatMode();
11315
+ }
11296
11316
  setTrackPageView(val) {
11297
11317
  this.store.setTrackPageview(val);
11298
11318
  }
@@ -11354,7 +11374,9 @@ class lib_Widget {
11354
11374
  return outmask;
11355
11375
  }
11356
11376
  async setAccount(id, $container, mask, cb) {
11357
- if (!id) return;
11377
+ if (!id) return {
11378
+ error: 'empty_account_id'
11379
+ };
11358
11380
  let outmask = await this.store.init(id, mask);
11359
11381
  util/* default */.A.setTimeout(() => window.postMessage({
11360
11382
  type: 'widget_loaded',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@subiz/widget-v4",
3
- "version": "4.1.146",
3
+ "version": "4.1.148",
4
4
  "main": "./compiled_src/lib.js",
5
5
  "scripts": {
6
6
  "dev": "npx webpack serve --config webpack.dev.js",
@@ -13,7 +13,7 @@
13
13
  "@subiz/flow": "^1.1.0",
14
14
  "@subiz/wsclient": "^4.0.34",
15
15
  "cookie_js": "1.4.2",
16
- "core-js": "^3.42.0",
16
+ "core-js": "^3.43.0",
17
17
  "css-loader": "5.2.7",
18
18
  "file-loader": "^6.2.0",
19
19
  "less": "^4.3.0",
@@ -22,18 +22,17 @@
22
22
  },
23
23
  "devDependencies": {
24
24
  "@babel/cli": "^7.27.2",
25
- "@babel/core": "^7.27.1",
25
+ "@babel/core": "^7.27.7",
26
26
  "@babel/plugin-proposal-class-properties": "^7.18.6",
27
27
  "@babel/plugin-transform-react-jsx": "^7.27.1",
28
28
  "@babel/preset-env": "^7.27.2",
29
29
  "babel-loader": "^10.0.0",
30
30
  "babel-plugin-syntax-jsx": "^6.18.0",
31
31
  "html-webpack-plugin": "^5.6.3",
32
- "prettier": "^3.5.3",
33
- "puppeteer": "^24.9.0",
32
+ "puppeteer": "^24.11.1",
34
33
  "webpack": "^5.99.9",
35
34
  "webpack-bundle-analyzer": "^4.10.2",
36
35
  "webpack-cli": "^6.0.1",
37
- "webpack-dev-server": "^5.2.1"
36
+ "webpack-dev-server": "^5.2.2"
38
37
  }
39
38
  }
@@ -232,9 +232,9 @@ export default class Event extends Com {
232
232
 
233
233
  renderMessageSent() {
234
234
  let ev = this.props.event.ev
235
- let attachments = sb.get(ev, 'data.message.attachments')
236
- let hasForm = sb.find(attachments, att => att.type === 'form')
237
- if (ev.id === 'evshpgaeetsplfqprzmynrvrl') hasForm = true
235
+ let attachments = sb.get(ev, 'data.message.attachments')
236
+ let hasForm = sb.find(attachments, (att) => att.type === 'form')
237
+ if (ev.id === 'evshpgaeetsplfqprzmynrvrl') hasForm = true
238
238
  this.tryLoadOrder(ev)
239
239
  let t = new sb.Date(ev.created).toLocaleString()
240
240
  // message of agent
@@ -244,8 +244,8 @@ export default class Event extends Com {
244
244
  let innercls = 'agent-convo-event-inner'
245
245
  if (this.props.isLast) innercls += ' last'
246
246
 
247
- let wrappercls = 'agent-convo-event-wrapper'
248
- if (hasForm) wrappercls += ' full'
247
+ let wrappercls = 'agent-convo-event-wrapper'
248
+ if (hasForm) wrappercls += ' full'
249
249
  return (
250
250
  <div class='convo-event agent-message'>
251
251
  {$sender}
@@ -446,10 +446,11 @@ export default class Event extends Com {
446
446
 
447
447
  getSenderName(ev) {
448
448
  let bytype = sb.get(ev, 'by.type')
449
- let byid = sb.get(ev, 'by.display_id', sb.get(ev, 'by.id'))
449
+ let byid = sb.get(ev, 'by.display_id', sb.get(ev, 'by.id')) || ''
450
450
  if (bytype === 'user') return sb.getUserDisplayName(this.props.store.matchUser())
451
451
  let acc = this.props.store.matchAccount()
452
452
  if (bytype === 'agent') return sb.getAgentDisplayName(acc, this.props.store.matchAgent(byid))
453
+ if (byid.startsWith('at')) return sb.getAgentDisplayName(acc, this.props.store.matchAgent(byid))
453
454
  if (bytype === 'bot') {
454
455
  let bot = this.props.store.matchBot()[byid]
455
456
  if (!bot) return 'Bot'
@@ -1,10 +1,11 @@
1
1
  import sb from '../util/index.js'
2
- import { Com } from '../common.js'
3
- import { h } from 'preact'
2
+ import {Com} from '../common.js'
3
+ import {h} from 'preact'
4
4
 
5
5
  export default class FileAttachments extends Com {
6
- render () {
6
+ render() {
7
7
  var byType = sb.get(this.props.ev, 'by.type', 'agent')
8
+ if (byType !== 'user') byType = 'agent'
8
9
  var attachments = sb.get(this.props.ev, 'data.message.attachments', [])
9
10
  var files = []
10
11
  sb.each(attachments, (att) => {
@@ -28,9 +29,9 @@ export default class FileAttachments extends Com {
28
29
  var $files = sb.map(files, (file, index) => {
29
30
  return (
30
31
  <div key={index} class={`file-attachment file-attachment--${byType}`}>
31
- <a class="file-attachment--link" href={this.props.store.replaceFileUrl(file.url)} target="_blank">
32
- <span class="file-attachment--download mr-2"></span>
33
- <span class="file-attachment--filename">{file.name}</span>
32
+ <a class='file-attachment--link' href={this.props.store.replaceFileUrl(file.url)} target='_blank'>
33
+ <span class='file-attachment--download mr-2'></span>
34
+ <span class='file-attachment--filename'>{file.name}</span>
34
35
  </a>
35
36
  </div>
36
37
  )
@@ -233,6 +233,7 @@ Vui lòng hỏi chúng tôi bất cứ điều gì hoặc chia sẻ phản hồi
233
233
  renderCloseButton() {
234
234
  let accSetting = this.props.plugin.chatbox || {}
235
235
  if (accSetting.hide_close_button) return null
236
+ if (this.props.store.isEmbededChatMode()) return
236
237
  return (
237
238
  <div
238
239
  class='widget-header--button-close'
@@ -58,6 +58,7 @@ export default class ImageAttachment extends Com {
58
58
  return
59
59
  }
60
60
  let byType = sb.get(this.props.ev, 'by.type')
61
+ if (byType !== 'user') byType = 'agent'
61
62
 
62
63
  if (!image.width || !image.height) {
63
64
  return (
@@ -108,6 +109,7 @@ export default class ImageAttachment extends Com {
108
109
  var attachments = sb.get(this.props.ev, 'data.message.attachments', [])
109
110
  var images = []
110
111
  let byType = sb.get(this.props.ev, 'by.type')
112
+ if (byType !== 'user') byType = 'agent'
111
113
 
112
114
  sb.each(attachments, (att, i) => {
113
115
  if (!att) return
@@ -629,8 +629,10 @@ export default class Widget extends Com {
629
629
  let hasError = sb.find(this.state.formData, (field) => !!field.error)
630
630
  let newData = this.validateForm(this.state.formData)
631
631
  let hasEmptyError = sb.find(newData, (field) => !!field.is_empty_error)
632
+ let bodycls = 'widget-body'
633
+ if (this.props.store.isEmbededChatMode()) bodycls += ' embed-chat'
632
634
  return (
633
- <div class='widget-body'>
635
+ <div class={bodycls}>
634
636
  <FormMounter key={form._updated} form={form} onMount={this.formMounted} />
635
637
  <div class='widget-body--content flex-grow-1 pl-3 pr-3 pb-2 d-flex flex-column'>
636
638
  <div class='mt-2 d-flex flex-column'>
@@ -832,8 +834,10 @@ export default class Widget extends Com {
832
834
  </div>
833
835
  )
834
836
  }
837
+ let bodycls = 'widget-body'
838
+ if (this.props.store.isEmbededChatMode()) bodycls += ' embed-chat'
835
839
  return (
836
- <div class='widget-body'>
840
+ <div class={bodycls}>
837
841
  <div class='widget-body--content' onClick={(e) => this.onContainerClick(e)}>
838
842
  <Events
839
843
  isShow={this.props.isShow}
@@ -106,6 +106,11 @@ export default class Block extends Com {
106
106
  if (block.type == 'table') {
107
107
  return null
108
108
  }
109
+ if (block.type === 'image') {
110
+ ele.tag = 'img'
111
+ ele.attrs['src'] = sb.get(block, 'image.url')
112
+ ele.attrs['alt'] = block.alt_text
113
+ }
109
114
 
110
115
  let $body = null
111
116
  if (sb.size(block.content)) {
@@ -138,6 +143,16 @@ export default class Block extends Com {
138
143
  $body = ele.text
139
144
  }
140
145
  switch (ele.tag) {
146
+ case 'img':
147
+ return (
148
+ <a class='message-text-inline-image-wrapper' href={sb.get(ele, 'attrs.src')} target='_blank'>
149
+ <img
150
+ class='message-text-inline-image'
151
+ src={sb.get(ele, 'attrs.src')}
152
+ alt={sb.get(ele, 'attrs.alt') || ''}
153
+ />
154
+ </a>
155
+ )
141
156
  case 'div':
142
157
  return <div>{$body}</div>
143
158
  case 'h1':
package/src/lib.js CHANGED
@@ -41,6 +41,10 @@ class Widget {
41
41
  this.store.setAIDevMode(mode)
42
42
  }
43
43
 
44
+ setEmbebedChatMode() {
45
+ this.store.setEmbebedChatMode()
46
+ }
47
+
44
48
  setTrackPageView(val) {
45
49
  this.store.setTrackPageview(val)
46
50
  }
@@ -114,7 +118,7 @@ class Widget {
114
118
  }
115
119
 
116
120
  async setAccount(id, $container, mask, cb) {
117
- if (!id) return // do nothing
121
+ if (!id) return {error: 'empty_account_id'} // do nothing
118
122
  let outmask = await this.store.init(id, mask)
119
123
  sb.setTimeout(() => window.postMessage({type: 'widget_loaded', account_id: id}, '*'), 0) // send to chrome extension
120
124
  // add container to client site
package/src/store/api.js CHANGED
@@ -270,25 +270,39 @@ export default class {
270
270
  }
271
271
 
272
272
  uploadToS3 = async (file) => {
273
- let {body: signed, error} = await this.apireq.post(`/accounts/${this.accid}/files`, {
274
- account_id: this.accid,
275
- description: 'upload\n user-client: web-widget',
276
- name: file.name.replace(/\s+/g, '_'),
277
- size: file.size,
278
- type: file.type,
279
- })
280
- if (error) return {body: signed, error}
273
+ var {body, error} = await ajax
274
+ .setBaseUrl('https://api5.subiz.com.vn/4.1')
275
+ .withCredentials(true)
276
+ .setQuery({
277
+ 'account-id': accid,
278
+ description: 'upload\n user-client: web-widget',
279
+ name: file.name.replace(/\s+/g, '_'),
280
+ size: file.size,
281
+ type: file.type,
282
+ })
283
+ .setParser('json')
284
+ .beforeHook((param, done) => {
285
+ if (this.token_generator) {
286
+ let user_id = this.profile_id
287
+ this.token_generator().then((token) => {
288
+ if (user_id != this.profile_id) return done(true) // outdated
281
289
 
282
- let contentType = file.type || 'application/octet-stream'
283
- ;({error} = await ajax.setContentType(contentType).put(signed.signed_url, file))
284
- if (error) return {error}
290
+ if (!token) return done(false)
291
+ if (token == 'error') return done(false)
292
+ param.request = param.request.addQuery('x-access-token', token)
293
+ return done(true)
294
+ })
295
+ return
296
+ }
285
297
 
286
- // finish uploading
287
- let body
288
- ;({body, error} = await this.apireq.post(`/accounts/${this.accid}/files/${signed.id}`, {account_id: this.accid}))
289
- if (error) return {body, error}
298
+ if (this.ref) param.request = param.request.addQuery('x-user-ref', this.ref)
299
+ else if (this.mask) param.request = param.request.addQuery('x-user-mask', this.mask) // deprecating
290
300
 
291
- return {url: body.url}
301
+ return done(true)
302
+ })
303
+ .post('/files', file)
304
+ if (error) return {body, error}
305
+ return {url: sb.get(body, 'file.url')}
292
306
  }
293
307
 
294
308
  time = (_) => ajax.setBaseUrl(this.ApiURL).withCredentials(true).setParser('json').get('/time')
@@ -243,10 +243,18 @@ export default class Store {
243
243
  this.ai_dev_mode = mode
244
244
  }
245
245
 
246
+ setEmbebedChatMode() {
247
+ this.is_embed_chat_mode = true
248
+ }
249
+
246
250
  isAIDevMode() {
247
251
  return this.ai_dev_mode
248
252
  }
249
253
 
254
+ isEmbededChatMode() {
255
+ return this.is_embed_chat_mode
256
+ }
257
+
250
258
  overrideDeviceType(type) {
251
259
  this.forceDevice = type
252
260
  this.pubsub.publish('account')
@@ -435,7 +443,7 @@ export default class Store {
435
443
  matchClosePreviewAt = () => this.kv.match('close_preview_at') || 0
436
444
 
437
445
  checkFormToken = (accid, token) => this.api.checkFormToken(accid, token)
438
- submitForm2 = (accid, token, data) => this.api.submitForm2(accid, token, data)
446
+ submitForm2 = (accid, token, data) => this.api.submitForm2(accid, token, data)
439
447
  sendPresence = sb.throttle(
440
448
  async () => {
441
449
  if (this._die) return dieErr
@@ -511,7 +519,10 @@ export default class Store {
511
519
  // set cookie forever
512
520
  if (userRef) this.cookie.set('__sbref', userRef)
513
521
  let user = await this.api.setAuth({accid: accid, mask: mask, ref: userRef})
514
- if (user.error) return console.error(user)
522
+ if (user.error) {
523
+ console.error(user)
524
+ return user
525
+ }
515
526
 
516
527
  if (this.realtime) this.realtime.stop()
517
528
  if (this.fake) this.realtime = new RealtimeFake()
@@ -1239,7 +1250,7 @@ export default class Store {
1239
1250
 
1240
1251
  src = src.replace('https://file.mysubiz.com/', this.FileURL)
1241
1252
  src = src.replace('http://file.mysubiz.com/', this.FileURL)
1242
- return src
1253
+ return src.replace('vcdn.subiz-cdn.com', 'cdn.subiz.net')
1243
1254
  }
1244
1255
 
1245
1256
  clearBrowserData() {
package/webpack.dev.js CHANGED
@@ -11,6 +11,7 @@ module.exports = {
11
11
  library: './library.js',
12
12
  order: './src/order/index.js',
13
13
  screenshoot: './screenshoot.js',
14
+ chat: './chat.js',
14
15
  },
15
16
  output: {publicPath: '/'},
16
17
  devServer: {port: 8082, host: '0.0.0.0', hot: false, liveReload: false},
@@ -22,6 +23,7 @@ module.exports = {
22
23
  new HtmlWebpackPlugin({filename: './inject.html', template: './inject.html', inject: 'body', chunks: ['inject']}),
23
24
  new HtmlWebpackPlugin({filename: './library.html', template: './index.html', inject: 'body', chunks: ['library']}),
24
25
  new HtmlWebpackPlugin({filename: './form.html', template: './form.html', inject: 'body', chunks: ['form']}),
26
+ new HtmlWebpackPlugin({filename: './chat.html', template: './chat.html', inject: 'body', chunks: ['chat']}),
25
27
  new HtmlWebpackPlugin({
26
28
  filename: './screenshoot.html',
27
29
  template: './screenshoot.html',
package/webpack.prod.js CHANGED
@@ -11,6 +11,7 @@ webpackconfig.entry = {
11
11
  preview: './preview.js',
12
12
  form: './src/form/index.js',
13
13
  library: './library.js',
14
+ chat: './chat.js',
14
15
  }
15
16
 
16
17
  const HASH = Date.now().toString(16)
@@ -46,6 +47,12 @@ webpackconfig.plugins = [
46
47
  inject: 'body',
47
48
  chunks: ['form'],
48
49
  }),
50
+ new HtmlWebpackPlugin({
51
+ filename: HASH + '.chat.html',
52
+ template: './chat.html',
53
+ inject: 'body',
54
+ chunks: ['chat'],
55
+ }),
49
56
  new HtmlWebpackPlugin({
50
57
  filename: HASH + '.library.html',
51
58
  template: './index.html',
package/dist/.HASH DELETED
@@ -1 +0,0 @@
1
- 1970d063f3c