(function(){"use strict";try{if(typeof document!="undefined"){var n=document.createElement("style");n.appendChild(document.createTextNode(`@import url("https://cdn.materialdesignicons.com/4.7.95/css/materialdesignicons.min.css");@import url("https://fonts.googleapis.com/icon?family=Material+Icons");@import url("https://fonts.googleapis.com/css2?family=Montserrat&family=Titillium+Web&display=swap");@import url("https://fonts.googleapis.com/css2?family=Montserrat&display=swap");@import url("https://cdn.materialdesignicons.com/4.7.95/css/materialdesignicons.min.css");@import url("https://fonts.googleapis.com/icon?family=Material+Icons");@import url("https://fonts.googleapis.com/css2?family=Montserrat&family=Titillium+Web&display=swap");@import url("https://fonts.googleapis.com/css2?family=Montserrat&display=swap");@import url("https://cdn.materialdesignicons.com/4.7.95/css/materialdesignicons.min.css");@import url("https://fonts.googleapis.com/icon?family=Material+Icons");@import url("https://fonts.googleapis.com/css2?family=Montserrat&family=Titillium+Web&display=swap");@import url("https://fonts.googleapis.com/css2?family=Montserrat&display=swap");@import url("https://cdn.materialdesignicons.com/4.7.95/css/materialdesignicons.min.css");@import url("https://fonts.googleapis.com/icon?family=Material+Icons");@import url("https://fonts.googleapis.com/css2?family=Montserrat&family=Titillium+Web&display=swap");@import url("https://fonts.googleapis.com/css2?family=Montserrat&display=swap");@import url("https://cdn.materialdesignicons.com/4.7.95/css/materialdesignicons.min.css");@import url("https://fonts.googleapis.com/icon?family=Material+Icons");@import url("https://fonts.googleapis.com/css2?family=Montserrat&family=Titillium+Web&display=swap");@import url("https://fonts.googleapis.com/css2?family=Montserrat&display=swap");@import url("https://cdn.materialdesignicons.com/4.7.95/css/materialdesignicons.min.css");@import url("https://fonts.googleapis.com/icon?family=Material+Icons");@import url("https://fonts.googleapis.com/css2?family=Montserrat&family=Titillium+Web&display=swap");@import url("https://fonts.googleapis.com/css2?family=Montserrat&display=swap");@import url("https://cdn.materialdesignicons.com/4.7.95/css/materialdesignicons.min.css");@import url("https://fonts.googleapis.com/icon?family=Material+Icons");@import url("https://fonts.googleapis.com/css2?family=Montserrat&family=Titillium+Web&display=swap");@import url("https://fonts.googleapis.com/css2?family=Montserrat&display=swap");@import url("https://cdn.materialdesignicons.com/4.7.95/css/materialdesignicons.min.css");@import url("https://fonts.googleapis.com/icon?family=Material+Icons");@import url("https://fonts.googleapis.com/css2?family=Montserrat&family=Titillium+Web&display=swap");@import url("https://fonts.googleapis.com/css2?family=Montserrat&display=swap");@import url("https://cdn.materialdesignicons.com/4.7.95/css/materialdesignicons.min.css");@import url("https://fonts.googleapis.com/icon?family=Material+Icons");@import url("https://fonts.googleapis.com/css2?family=Montserrat&family=Titillium+Web&display=swap");@import url("https://fonts.googleapis.com/css2?family=Montserrat&display=swap");@import url("https://cdn.materialdesignicons.com/4.7.95/css/materialdesignicons.min.css");@import url("https://fonts.googleapis.com/icon?family=Material+Icons");@import url("https://fonts.googleapis.com/css2?family=Montserrat&family=Titillium+Web&display=swap");@import url("https://fonts.googleapis.com/css2?family=Montserrat&display=swap");@import url("https://cdn.materialdesignicons.com/4.7.95/css/materialdesignicons.min.css");@import url("https://fonts.googleapis.com/icon?family=Material+Icons");@import url("https://fonts.googleapis.com/css2?family=Montserrat&family=Titillium+Web&display=swap");@import url("https://fonts.googleapis.com/css2?family=Montserrat&display=swap");@import url("https://cdn.materialdesignicons.com/4.7.95/css/materialdesignicons.min.css");@import url("https://fonts.googleapis.com/icon?family=Material+Icons");@import url("https://fonts.googleapis.com/css2?family=Montserrat&family=Titillium+Web&display=swap");@import url("https://fonts.googleapis.com/css2?family=Montserrat&display=swap");@import url("https://cdn.materialdesignicons.com/4.7.95/css/materialdesignicons.min.css");@import url("https://fonts.googleapis.com/icon?family=Material+Icons");@import url("https://fonts.googleapis.com/css2?family=Montserrat&family=Titillium+Web&display=swap");@import url("https://fonts.googleapis.com/css2?family=Montserrat&display=swap");@import url("https://cdn.materialdesignicons.com/4.7.95/css/materialdesignicons.min.css");@import url("https://fonts.googleapis.com/icon?family=Material+Icons");@import url("https://fonts.googleapis.com/css2?family=Montserrat&family=Titillium+Web&display=swap");@import url("https://fonts.googleapis.com/css2?family=Montserrat&display=swap");@import url("https://cdn.materialdesignicons.com/4.7.95/css/materialdesignicons.min.css");@import url("https://fonts.googleapis.com/icon?family=Material+Icons");@import url("https://fonts.googleapis.com/css2?family=Montserrat&family=Titillium+Web&display=swap");@import url("https://fonts.googleapis.com/css2?family=Montserrat&display=swap");@import url("https://cdn.materialdesignicons.com/4.7.95/css/materialdesignicons.min.css");@import url("https://fonts.googleapis.com/icon?family=Material+Icons");@import url("https://fonts.googleapis.com/css2?family=Montserrat&family=Titillium+Web&display=swap");@import url("https://fonts.googleapis.com/css2?family=Montserrat&display=swap");@import url("https://cdn.materialdesignicons.com/4.7.95/css/materialdesignicons.min.css");@import url("https://fonts.googleapis.com/icon?family=Material+Icons");@import url("https://fonts.googleapis.com/css2?family=Montserrat&family=Titillium+Web&display=swap");@import url("https://fonts.googleapis.com/css2?family=Montserrat&display=swap");.kb-toggle-button__pulse { /* pulse from: https://codepen.io/olam/pen/zcqea */ border-radius: 50%; box-shadow: 0 0 0 rgba(59, 59, 59, 0.4); animation: pulse 2s infinite; } @-webkit-keyframes pulse { 0% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -webkit-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } @keyframes pulse { 0% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -moz-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } .expand-y-enter-active, .expand-y-leave-active { transition: all 0.2s; max-height: 31px; } .expand-y-enter, .expand-y-leave-to { opacity: 0; max-height: 0; } .kb-auth-container { padding: 16px 25px 16px 25px; animation: fadeUp 0.6s ease-in both; animation-delay: 500ms; overflow: auto; } @keyframes fadeUp { from { opacity: 0; transform: translate3d(0, 10%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-button { font-family: "Montserrat", sans-serif !important; background-color: #3b3b3b; border: none; border-radius: 50px; color: white; cursor: pointer; padding: 6px; width: 100%; margin-top: 5px; } .kb-input { background-color: transparent; border: none; border-bottom: 1px solid grey; box-sizing: border-box; font-family: "Montserrat", sans-serif !important; padding: 10px 0 10px 0; width: 100%; color: black; font-size: 13px; } /* Change Autocomplete styles in Chrome*/ input.kb-input:-webkit-autofill, input.kb-input:-webkit-autofill:hover, input.kb-input:-webkit-autofill:focus, textarea.kb-input:-webkit-autofill, textarea.kb-input:-webkit-autofill:hover, textarea.kb-input:-webkit-autofill:focus, select.kb-input:-webkit-autofill, select.kb-input:-webkit-autofill:hover, select.kb-input:-webkit-autofill:focus { border-top: none; border-right: none; border-left: none; border-bottom: 1px solid grey; -webkit-text-fill-color: black; background-color: transparent !important; transition: background-color 5000s ease-in-out 0s; } button.kb-input:focus, input.kb-input:focus, textarea.kb-input:focus, select.kb-input:focus { border: none; border-bottom: 1px solid grey; outline: none; } .terms-and-conditions-settings { z-index: 1 !important; font-size: 12px !important; } .terms-and-conditions-settings a { font-weight: bold; text-decoration: none; z-index: 1 !important; } .vti__dropdown-list { width: 290px !important; overflow-x: hidden !important; } .vti__input { z-index: 1 !important; } .vti__dropdown-list { min-height: 6500px !important; } .vti__dropdown-list.above { top: 33px !important; bottom: 0 !important; } .vb-checkbox__checker { z-index: 1 !important; } .kb-bottom-menu { background-color: #FFFFFF; border-top: 1px solid #BBB; border-radius: 5px; display: flex; flex-direction: column; position: absolute; width: 100%; z-index: 2321321312311; bottom: 0; max-height: 90%; } .kb-bottom-menu__title { color: rgba(0, 0, 0, 0.5); padding-left: 16px; vertical-align: middle; } .kb-bottom-menu__header { background-color: white; cursor: default; border-radius: 10px; margin-top: -10px; align-items: center; display: flex; min-height: 48px; width: 100%; animation: fadeUpHead 0.7s ease-in both; animation-delay: 400ms; } @keyframes fadeUpHead { from { opacity: 0; transform: translate3d(0, 50%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-bottom-menu__footer { min-height: 48px; width: 100%; } .kb-bottom-menu__body { height: 100%; overflow-y: auto; width: 100%; } .kb-bottom-menu__close-button { cursor: pointer; display: flex; padding: 16px; } .kb-customized-question-container { text-align: center; } .kb-chip { background: white; border: solid 1px rgba(0, 0, 0, 0.12); border-radius: 25px; cursor: pointer; display: inline-flex; font-size: 13px; margin-left: 5px; margin-top: 5px; padding: 5px 12px; } .kb-chip img { margin-right: 6px; } .kb-customized-question-title { font-weight: bold; padding: 10px; } .kb-helper-link-out-suggestion { background-color: white; border-radius: 15px; margin: 10px 5px; padding: 5px; } .kb-helper-link-out-suggestion a { color: #039be5 !important; text-decoration: none; } .kb-permanent-messages-container { text-align: justify; } .kb-permanent-message { background-color: #e8effb; border-radius: 4px; cursor: default; display: inline-block; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; } .kb-permanent-message a { color: #039be5; text-decoration: none; } .kb-schedule-alert { background-color: #C92239; color: white; cursor: default; padding: 5px 5px 5px 16px; display: flex; align-items: center; } .kb-schedule-alert__message { margin-left: 10px; padding-right: 16px; text-align: justify; } .kb-schedule-alert__message a { color: white; } .kb-schedule-alert__permanent-message { background: white; border-radius: 4px; cursor: default; display: inline-flex; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; } #keybe-webchat { font-family: "Montserrat", sans-serif !important; font-size: 14px !important; z-index: 214748364 !important; /* AUXILIARES */ /* COLORS */ } #keybe-webchat * { z-index: 214748364; } #keybe-webchat .language-toggle { margin-right: 8px; font-size: 17px; font-weight: bold; } #keybe-webchat .kb-welcome-container { word-break: break-word; align-items: center; display: flex; height: 50%; margin-top: -2px; background: rgba(255, 255, 255, 0); z-index: 2222222222222222300; } #keybe-webchat .kb-welcome-text { padding-right: 20px; padding-left: 20px; font-weight: 600; } #keybe-webchat .kb-fade-in-animation { animation: fadeIn 1s ease-in both; } @keyframes fadeIn { from { opacity: 0; transform: translate3d(0, -20%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-in-animation--delay { animation: fadeIn 0.3s ease-in both; } @keyframes fadeIn { from { opacity: 0; transform: translate3d(0, 30%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-animation { animation: fade 0.3s ease-in both; } @keyframes fade { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .slide-fade-enter-active { transition: all 0.3s ease; } #keybe-webchat .slide-fade-leave-active { transition: all 0.3s ease; } #keybe-webchat .slide-fade-enter, #keybe-webchat .slide-fade-leave-to { transform: translateY(56px); opacity: 0; } #keybe-webchat .fade-enter-active, #keybe-webchat .fade-leave-active { transition: opacity 0.2s; } #keybe-webchat .fade-enter, #keybe-webchat .fade-leave-to { opacity: 0; } #keybe-webchat .cursor-pointer { cursor: pointer; } #keybe-webchat .kb-error--text { color: #C92239 !important; } #keybe-webchat .kb-inactivity-container { align-items: center; background-color: white; border-radius: 5px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 70%; max-width: 92%; padding: 20px; position: fixed; text-align: center; width: 360px; z-index: 2147483648; } #keybe-webchat .kb-inactivity-container-left { left: 16px; } #keybe-webchat .kb-inactivity-container-right { right: 16px; } #keybe-webchat .kb-inactivity-container__logo { max-width: 300px; } #keybe-webchat .kb-inactivity-container__close-button { display: inline-flex; padding: 8px; position: absolute; right: 0; top: 0; } #keybe-webchat .kb-whatsapp-button__container { align-items: center; background-color: transparent; border-radius: 5px; bottom: 16px; cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 320px; overflow-y: hidden; max-width: 92%; padding: 20px; position: fixed; text-align: center; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__chat { width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__whatsApp { background-color: #40C451; width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__close { background-color: transparent; border-width: 4px; border-style: solid; width: 52px; height: 52px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-chat-container { background-color: white; border-radius: 10px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); display: flex; flex-direction: column; height: 85vh; max-height: 552px; max-width: 75vh; position: fixed; width: 340px; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__phone { background-color: transparent; min-width: 64px; min-height: 64px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-phone-button__container { position: relative; } #keybe-webchat .kb-phone-button__phones { position: absolute; top: 6px; width: 230px; border-radius: 50px; height: 64px; padding: 6px; } #keybe-webchat .kb-phone-button__phones div { display: flex; align-items: center; justify-content: center; height: 100%; } #keybe-webchat .kb-phone-button__phones div span { font-size: 13px; font-weight: 400; max-width: 45%; font-family: "Montserrat", sans-serif !important; } #keybe-webchat .kb-phone-button__numbers { display: flex; flex-direction: column; margin-left: 20px; } #keybe-webchat .kb-phone-button__numbers h5 { font-size: 13px; padding: 0; margin: 5px 0; } #keybe-webchat .kb-phone-button__phones-right { left: 80px; } #keybe-webchat .kb-phone-button__phones-left { right: 80px; } #keybe-webchat .kb-chat-container-left { left: 16px; overflow: visible; } #keybe-webchat .kb-chat-container-right { right: 16px; overflow: visible; } #keybe-webchat .kb-chat-conversation { background-color: rgba(242, 242, 242, 0.4); display: flex; flex: 1 1 0; flex-direction: column; overflow-y: auto; padding: 0 5px; } #keybe-webchat .kb-message-error { background-color: #C92239; color: white; font-weight: bold; padding: 5px 5px 5px 16px; z-index: 21474836482; } #keybe-webchat .kb-chat-conversation .kb-message:first-child { margin-top: 6px; } #keybe-webchat .kb-chat-header { align-items: center; border-radius: 10px 10px 0 0; cursor: pointer; display: flex; flex-direction: row; height: 54px; z-index: 214748364; } #keybe-webchat .kb-error-connection { background-color: #C92239; border-radius: 10px; bottom: 32px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: default; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; right: 32px; } #keybe-webchat .kb-footer { background-color: rgba(242, 242, 242, 0.4); min-height: 50px; z-index: 2147483649; } #keybe-webchat .kb-message-box { display: flex; flex-direction: row; max-height: 40px; z-index: 2147483649; border-radius: 60px; margin: 3px 10px 10px 10px; box-shadow: 6px 11px 32px -4px rgb(176, 170, 176); } #keybe-webchat .kb-divider { border-bottom: 1px solid rgba(0, 0, 0, 0.1); } #keybe-webchat .kb-font-weight-bold { font-weight: bold; } #keybe-webchat .kb-message-in { background-color: #e8effb; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; animation: bounce-in 2s both; } #keybe-webchat .kb-message-out { background-color: #cdefe8; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 15px 15px 0px 15px/15px 15px 15px 15px; animation: bounce-out 2s both; } #keybe-webchat .kb-message { display: flex; padding-left: 12px; padding-right: 12px; position: relative; margin-bottom: 6px; } @keyframes bounce-out { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform-origin: 90%; transform: scale(0.1); } } @keyframes bounce-in { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform: scale(0.1); } } #keybe-webchat .kb-message-text { padding: 6px 7px 0px 9px; white-space: pre-wrap; word-wrap: break-word; color: black; } #keybe-webchat .kb-message-text a { color: #039be5; text-decoration: none; } #keybe-webchat .kb-message-text a:hover { text-decoration: underline; } #keybe-webchat .kb-ml2 { margin-left: 8px; } #keybe-webchat .kb-mt2 { margin-top: 8px; } #keybe-webchat .kb-mx2 { margin: 0 8px 0 8px; } #keybe-webchat .kb-my2 { margin-bottom: 8px; margin-top: 8px; } #keybe-webchat .kb-powered-container { align-items: center; border-top: solid 1px rgba(0, 0, 0, 0.12); border-radius: 0 0 5px 5px; display: flex; justify-content: flex-end; min-height: 27px; } #keybe-webchat .kb-powered-container a { color: #676767; font-family: "Montserrat", sans-serif !important; font-size: 11px; padding-right: 8px; text-decoration: none; } #keybe-webchat .kb-powered-container-auth-form { align-items: center; color: #676767; cursor: pointer; border-radius: 0 0 5px 5px; display: flex; font-family: "Montserrat", sans-serif !important; font-size: 11px; justify-content: flex-end; padding-top: 6px; text-decoration: none; } #keybe-webchat .kb-px2 { padding: 0 8px 0 8px; } #keybe-webchat .kb-px4 { padding: 0 16px 0 16px; } #keybe-webchat .kb-pointer { cursor: pointer; } #keybe-webchat .kb-reverse { flex-direction: row-reverse; } #keybe-webchat .kb-row { display: flex; flex-direction: row; } #keybe-webchat .kb-spacer { display: flex; flex-grow: 1; } #keybe-webchat .kb-textarea-container { overflow-y: auto; flex: 1 1 auto; flex-grow: 1; min-width: 0; padding: 3px 0 3px 0px; } #keybe-webchat .kb-textarea-container::-webkit-scrollbar { width: 3px; } #keybe-webchat .kb-textarea-container::-webkit-scrollbar-thumb { background-color: #fafafa; } #keybe-webchat .kb-textarea-container [contentEditable=true]:empty:before { content: attr(data-ph); color: rgba(99, 99, 99, 0.705); cursor: text; } #keybe-webchat .kb-textarea-container [contentEditable=false]:empty:before { content: attr(data-ph); color: #C92239; cursor: not-allowed; } #keybe-webchat .kb-textarea { color: black; background-color: rgba(242, 242, 242, 0.4); border-radius: 24px; line-height: 20px; max-height: 100px; max-width: 100%; min-height: 24px; padding: 6px 12px; overflow-x: hidden; overflow-y: auto; white-space: pre-wrap; word-wrap: break-word; } #keybe-webchat .kb-textarea:focus { outline: none; } #keybe-webchat .kb-text-center { text-align: center; } #keybe-webchat .kb-toggle-button { border-radius: 50%; bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-image { bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-button-comfama { border-radius: 3px; bottom: 14px; right: 10px !important; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; box-shadow: 0 1px 6px #d3d3d3, 0 2px 32px #d3d3d3; } #keybe-webchat .kb-drag-zone { height: 100%; flex-shrink: 0; display: flex; position: relative; flex-direction: column; height: 100%; max-height: 100%; overflow-y: auto; animation: scrollIn 0.7s ease-in-out both; } @keyframes scrollIn { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .kb-drop-zone-form { background-color: white; z-index: 99999999999999 !important; position: absolute; width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; } #keybe-webchat .kb-drop-zone-icons { padding: 15px 15px 13px 15px; margin: 10px 10px 3px 10px; border-radius: 50px; min-height: 20px; min-width: 20px; background-color: #d1dae4; color: #aab7c5; } #keybe-webchat .kb-drop-zone-cancel-button { background-color: #aab7c5; border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; margin-right: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-drop-zone__border { align-items: center; box-shadow: -2px 10px 60px -37px rgb(0, 0, 0); border-radius: 8px; box-sizing: border-box; display: flex; flex-direction: column; font-size: 16px; height: 80%; justify-content: center; width: 80%; } #keybe-webchat .drop-zone-preview { border-radius: 8px; max-height: 65%; max-width: 90%; } #keybe-webchat .drop-zone-progress { background-color: grey; border-radius: 30px; box-sizing: border-box; display: flex; align-items: center; margin: 10px; position: relative; width: 90%; overflow: hidden; } #keybe-webchat .kb-drop-zone-button { display: inline-flex; flex-direction: column; justify-content: center; align-items: center; } #keybe-webchat .drop-zone-progress__successful { background-color: #4f8e62; border-radius: 30px; height: 30px; transition: width 0.5s ease; } #keybe-webchat .drop-zone-progress__value { color: white; font-size: 14px; font-weight: normal; position: absolute; text-align: center; width: 100%; } #keybe-webchat .kb-drop-zone-send-button { border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-toggle-button-message { border-radius: 10px; bottom: 32px; box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: pointer; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; } #keybe-webchat .kb-toggle-button-message-comfama { display: none; } #keybe-webchat .kb-toggle-button-left { left: 32px; } #keybe-webchat .kb-toggle-button-right { right: 32px; } #keybe-webchat .kb-toggle-button-message-left { left: 105px; } #keybe-webchat .kb-toggle-button-message-right { right: 105px; } #keybe-webchat .kb-font-weight-bold { font-weight: bold; } #keybe-webchat .black { color: black; } #keybe-webchat .white { color: white; } #keybe-webchat .kb-white--text { color: white !important; } #keybe-webchat .grey { color: #9e9e9e; } #keybe-webchat .red { color: #C92239; } #keybe-webchat ::-webkit-scrollbar { width: 6px !important; height: 6px !important; } #keybe-webchat ::-webkit-scrollbar-thumb { background-color: rgba(0, 0, 0, 0.2); } #keybe-webchat ::-webkit-scrollbar-track { background: hsla(0, 0%, 100%, 0.08); } #keybe-webchat .pswp__ui { z-index: 2147483649 !important; } .vb-checkbox { align-items: center; cursor: pointer; display: flex; flex-direction: row; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .vb-checkbox__checker { align-items: center; background-color: white; border-radius: 4px; box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3) !important; display: flex; font-size: 16px; justify-content: center; margin-right: 8px; min-height: 24px; min-width: 24px; } .tooltip { display: block !important; font-family: "Montserrat", sans-serif !important; font-size: 13px; max-width: 390px; z-index: 2147483649; } .tooltip .tooltip-inner { background: rgba(35, 47, 52, 0.9); color: white; border-radius: 4px; padding: 5px 10px; } .tooltip[x-placement^=top] { margin-bottom: 5px; } .tooltip[x-placement^=bottom] { margin-top: 5px; } .tooltip[x-placement^=right] { margin-left: 5px; } .tooltip[x-placement^=left] { margin-right: 5px; } .tooltip.popover .popover-inner { background: #f9f9f9; color: black; padding: 24px; border-radius: 5px; box-shadow: 0 5px 30px rgba(0, 0, 0, 0.1); } .tooltip.popover .popover-arrow { border-color: #f9f9f9; } .tooltip[aria-hidden=true] { visibility: hidden; opacity: 0; transition: opacity 0.15s, visibility 0.15s; } .tooltip[aria-hidden=false] { visibility: visible; opacity: 1; transition: opacity 0.15s; } .kb-bottom-menu { background-color: #FFFFFF; border-top: 1px solid #BBB; border-radius: 5px; display: flex; flex-direction: column; position: absolute; width: 100%; z-index: 2321321312311; bottom: 0; max-height: 90%; } .kb-bottom-menu__title { color: rgba(0, 0, 0, 0.5); padding-left: 16px; vertical-align: middle; } .kb-bottom-menu__header { background-color: white; cursor: default; border-radius: 10px; margin-top: -10px; align-items: center; display: flex; min-height: 48px; width: 100%; animation: fadeUpHead 0.7s ease-in both; animation-delay: 400ms; } @keyframes fadeUpHead { from { opacity: 0; transform: translate3d(0, 50%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-bottom-menu__footer { min-height: 48px; width: 100%; } .kb-bottom-menu__body { height: 100%; overflow-y: auto; width: 100%; } .kb-bottom-menu__close-button { cursor: pointer; display: flex; padding: 16px; }.kb-toggle-button__pulse { /* pulse from: https://codepen.io/olam/pen/zcqea */ border-radius: 50%; box-shadow: 0 0 0 rgba(59, 59, 59, 0.4); animation: pulse 2s infinite; } @-webkit-keyframes pulse { 0% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -webkit-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } @keyframes pulse { 0% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -moz-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } .expand-y-enter-active, .expand-y-leave-active { transition: all 0.2s; max-height: 31px; } .expand-y-enter, .expand-y-leave-to { opacity: 0; max-height: 0; } .kb-auth-container { padding: 16px 25px 16px 25px; animation: fadeUp 0.6s ease-in both; animation-delay: 500ms; overflow: auto; } @keyframes fadeUp { from { opacity: 0; transform: translate3d(0, 10%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-button { font-family: "Montserrat", sans-serif !important; background-color: #3b3b3b; border: none; border-radius: 50px; color: white; cursor: pointer; padding: 6px; width: 100%; margin-top: 5px; } .kb-input { background-color: transparent; border: none; border-bottom: 1px solid grey; box-sizing: border-box; font-family: "Montserrat", sans-serif !important; padding: 10px 0 10px 0; width: 100%; color: black; font-size: 13px; } /* Change Autocomplete styles in Chrome*/ input.kb-input:-webkit-autofill, input.kb-input:-webkit-autofill:hover, input.kb-input:-webkit-autofill:focus, textarea.kb-input:-webkit-autofill, textarea.kb-input:-webkit-autofill:hover, textarea.kb-input:-webkit-autofill:focus, select.kb-input:-webkit-autofill, select.kb-input:-webkit-autofill:hover, select.kb-input:-webkit-autofill:focus { border-top: none; border-right: none; border-left: none; border-bottom: 1px solid grey; -webkit-text-fill-color: black; background-color: transparent !important; transition: background-color 5000s ease-in-out 0s; } button.kb-input:focus, input.kb-input:focus, textarea.kb-input:focus, select.kb-input:focus { border: none; border-bottom: 1px solid grey; outline: none; } .terms-and-conditions-settings { z-index: 1 !important; font-size: 12px !important; } .terms-and-conditions-settings a { font-weight: bold; text-decoration: none; z-index: 1 !important; } .vti__dropdown-list { width: 290px !important; overflow-x: hidden !important; } .vti__input { z-index: 1 !important; } .vti__dropdown-list { min-height: 6500px !important; } .vti__dropdown-list.above { top: 33px !important; bottom: 0 !important; } .vb-checkbox__checker { z-index: 1 !important; } .kb-bottom-menu { background-color: #FFFFFF; border-top: 1px solid #BBB; border-radius: 5px; display: flex; flex-direction: column; position: absolute; width: 100%; z-index: 2321321312311; bottom: 0; max-height: 90%; } .kb-bottom-menu__title { color: rgba(0, 0, 0, 0.5); padding-left: 16px; vertical-align: middle; } .kb-bottom-menu__header { background-color: white; cursor: default; border-radius: 10px; margin-top: -10px; align-items: center; display: flex; min-height: 48px; width: 100%; animation: fadeUpHead 0.7s ease-in both; animation-delay: 400ms; } @keyframes fadeUpHead { from { opacity: 0; transform: translate3d(0, 50%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-bottom-menu__footer { min-height: 48px; width: 100%; } .kb-bottom-menu__body { height: 100%; overflow-y: auto; width: 100%; } .kb-bottom-menu__close-button { cursor: pointer; display: flex; padding: 16px; } .kb-customized-question-container { text-align: center; } .kb-chip { background: white; border: solid 1px rgba(0, 0, 0, 0.12); border-radius: 25px; cursor: pointer; display: inline-flex; font-size: 13px; margin-left: 5px; margin-top: 5px; padding: 5px 12px; } .kb-chip img { margin-right: 6px; } .kb-customized-question-title { font-weight: bold; padding: 10px; } .kb-helper-link-out-suggestion { background-color: white; border-radius: 15px; margin: 10px 5px; padding: 5px; } .kb-helper-link-out-suggestion a { color: #039be5 !important; text-decoration: none; } .kb-permanent-messages-container { text-align: justify; } .kb-permanent-message { background-color: #e8effb; border-radius: 4px; cursor: default; display: inline-block; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; } .kb-permanent-message a { color: #039be5; text-decoration: none; } .kb-schedule-alert { background-color: #C92239; color: white; cursor: default; padding: 5px 5px 5px 16px; display: flex; align-items: center; } .kb-schedule-alert__message { margin-left: 10px; padding-right: 16px; text-align: justify; } .kb-schedule-alert__message a { color: white; } .kb-schedule-alert__permanent-message { background: white; border-radius: 4px; cursor: default; display: inline-flex; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; } #keybe-webchat { font-family: "Montserrat", sans-serif !important; font-size: 14px !important; z-index: 214748364 !important; /* AUXILIARES */ /* COLORS */ } #keybe-webchat * { z-index: 214748364; } #keybe-webchat .language-toggle { margin-right: 8px; font-size: 17px; font-weight: bold; } #keybe-webchat .kb-welcome-container { word-break: break-word; align-items: center; display: flex; height: 50%; margin-top: -2px; background: rgba(255, 255, 255, 0); z-index: 2222222222222222300; } #keybe-webchat .kb-welcome-text { padding-right: 20px; padding-left: 20px; font-weight: 600; } #keybe-webchat .kb-fade-in-animation { animation: fadeIn 1s ease-in both; } @keyframes fadeIn { from { opacity: 0; transform: translate3d(0, -20%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-in-animation--delay { animation: fadeIn 0.3s ease-in both; } @keyframes fadeIn { from { opacity: 0; transform: translate3d(0, 30%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-animation { animation: fade 0.3s ease-in both; } @keyframes fade { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .slide-fade-enter-active { transition: all 0.3s ease; } #keybe-webchat .slide-fade-leave-active { transition: all 0.3s ease; } #keybe-webchat .slide-fade-enter, #keybe-webchat .slide-fade-leave-to { transform: translateY(56px); opacity: 0; } #keybe-webchat .fade-enter-active, #keybe-webchat .fade-leave-active { transition: opacity 0.2s; } #keybe-webchat .fade-enter, #keybe-webchat .fade-leave-to { opacity: 0; } #keybe-webchat .cursor-pointer { cursor: pointer; } #keybe-webchat .kb-error--text { color: #C92239 !important; } #keybe-webchat .kb-inactivity-container { align-items: center; background-color: white; border-radius: 5px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 70%; max-width: 92%; padding: 20px; position: fixed; text-align: center; width: 360px; z-index: 2147483648; } #keybe-webchat .kb-inactivity-container-left { left: 16px; } #keybe-webchat .kb-inactivity-container-right { right: 16px; } #keybe-webchat .kb-inactivity-container__logo { max-width: 300px; } #keybe-webchat .kb-inactivity-container__close-button { display: inline-flex; padding: 8px; position: absolute; right: 0; top: 0; } #keybe-webchat .kb-whatsapp-button__container { align-items: center; background-color: transparent; border-radius: 5px; bottom: 16px; cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 320px; overflow-y: hidden; max-width: 92%; padding: 20px; position: fixed; text-align: center; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__chat { width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__whatsApp { background-color: #40C451; width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__close { background-color: transparent; border-width: 4px; border-style: solid; width: 52px; height: 52px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-chat-container { background-color: white; border-radius: 10px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); display: flex; flex-direction: column; height: 85vh; max-height: 552px; max-width: 75vh; position: fixed; width: 340px; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__phone { background-color: transparent; min-width: 64px; min-height: 64px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-phone-button__container { position: relative; } #keybe-webchat .kb-phone-button__phones { position: absolute; top: 6px; width: 230px; border-radius: 50px; height: 64px; padding: 6px; } #keybe-webchat .kb-phone-button__phones div { display: flex; align-items: center; justify-content: center; height: 100%; } #keybe-webchat .kb-phone-button__phones div span { font-size: 13px; font-weight: 400; max-width: 45%; font-family: "Montserrat", sans-serif !important; } #keybe-webchat .kb-phone-button__numbers { display: flex; flex-direction: column; margin-left: 20px; } #keybe-webchat .kb-phone-button__numbers h5 { font-size: 13px; padding: 0; margin: 5px 0; } #keybe-webchat .kb-phone-button__phones-right { left: 80px; } #keybe-webchat .kb-phone-button__phones-left { right: 80px; } #keybe-webchat .kb-chat-container-left { left: 16px; overflow: visible; } #keybe-webchat .kb-chat-container-right { right: 16px; overflow: visible; } #keybe-webchat .kb-chat-conversation { background-color: rgba(242, 242, 242, 0.4); display: flex; flex: 1 1 0; flex-direction: column; overflow-y: auto; padding: 0 5px; } #keybe-webchat .kb-message-error { background-color: #C92239; color: white; font-weight: bold; padding: 5px 5px 5px 16px; z-index: 21474836482; } #keybe-webchat .kb-chat-conversation .kb-message:first-child { margin-top: 6px; } #keybe-webchat .kb-chat-header { align-items: center; border-radius: 10px 10px 0 0; cursor: pointer; display: flex; flex-direction: row; height: 54px; z-index: 214748364; } #keybe-webchat .kb-error-connection { background-color: #C92239; border-radius: 10px; bottom: 32px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: default; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; right: 32px; } #keybe-webchat .kb-footer { background-color: rgba(242, 242, 242, 0.4); min-height: 50px; z-index: 2147483649; } #keybe-webchat .kb-message-box { display: flex; flex-direction: row; max-height: 40px; z-index: 2147483649; border-radius: 60px; margin: 3px 10px 10px 10px; box-shadow: 6px 11px 32px -4px rgb(176, 170, 176); } #keybe-webchat .kb-divider { border-bottom: 1px solid rgba(0, 0, 0, 0.1); } #keybe-webchat .kb-font-weight-bold { font-weight: bold; } #keybe-webchat .kb-message-in { background-color: #e8effb; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; animation: bounce-in 2s both; } #keybe-webchat .kb-message-out { background-color: #cdefe8; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 15px 15px 0px 15px/15px 15px 15px 15px; animation: bounce-out 2s both; } #keybe-webchat .kb-message { display: flex; padding-left: 12px; padding-right: 12px; position: relative; margin-bottom: 6px; } @keyframes bounce-out { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform-origin: 90%; transform: scale(0.1); } } @keyframes bounce-in { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform: scale(0.1); } } #keybe-webchat .kb-message-text { padding: 6px 7px 0px 9px; white-space: pre-wrap; word-wrap: break-word; color: black; } #keybe-webchat .kb-message-text a { color: #039be5; text-decoration: none; } #keybe-webchat .kb-message-text a:hover { text-decoration: underline; } #keybe-webchat .kb-ml2 { margin-left: 8px; } #keybe-webchat .kb-mt2 { margin-top: 8px; } #keybe-webchat .kb-mx2 { margin: 0 8px 0 8px; } #keybe-webchat .kb-my2 { margin-bottom: 8px; margin-top: 8px; } #keybe-webchat .kb-powered-container { align-items: center; border-top: solid 1px rgba(0, 0, 0, 0.12); border-radius: 0 0 5px 5px; display: flex; justify-content: flex-end; min-height: 27px; } #keybe-webchat .kb-powered-container a { color: #676767; font-family: "Montserrat", sans-serif !important; font-size: 11px; padding-right: 8px; text-decoration: none; } #keybe-webchat .kb-powered-container-auth-form { align-items: center; color: #676767; cursor: pointer; border-radius: 0 0 5px 5px; display: flex; font-family: "Montserrat", sans-serif !important; font-size: 11px; justify-content: flex-end; padding-top: 6px; text-decoration: none; } #keybe-webchat .kb-px2 { padding: 0 8px 0 8px; } #keybe-webchat .kb-px4 { padding: 0 16px 0 16px; } #keybe-webchat .kb-pointer { cursor: pointer; } #keybe-webchat .kb-reverse { flex-direction: row-reverse; } #keybe-webchat .kb-row { display: flex; flex-direction: row; } #keybe-webchat .kb-spacer { display: flex; flex-grow: 1; } #keybe-webchat .kb-textarea-container { overflow-y: auto; flex: 1 1 auto; flex-grow: 1; min-width: 0; padding: 3px 0 3px 0px; } #keybe-webchat .kb-textarea-container::-webkit-scrollbar { width: 3px; } #keybe-webchat .kb-textarea-container::-webkit-scrollbar-thumb { background-color: #fafafa; } #keybe-webchat .kb-textarea-container [contentEditable=true]:empty:before { content: attr(data-ph); color: rgba(99, 99, 99, 0.705); cursor: text; } #keybe-webchat .kb-textarea-container [contentEditable=false]:empty:before { content: attr(data-ph); color: #C92239; cursor: not-allowed; } #keybe-webchat .kb-textarea { color: black; background-color: rgba(242, 242, 242, 0.4); border-radius: 24px; line-height: 20px; max-height: 100px; max-width: 100%; min-height: 24px; padding: 6px 12px; overflow-x: hidden; overflow-y: auto; white-space: pre-wrap; word-wrap: break-word; } #keybe-webchat .kb-textarea:focus { outline: none; } #keybe-webchat .kb-text-center { text-align: center; } #keybe-webchat .kb-toggle-button { border-radius: 50%; bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-image { bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-button-comfama { border-radius: 3px; bottom: 14px; right: 10px !important; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; box-shadow: 0 1px 6px #d3d3d3, 0 2px 32px #d3d3d3; } #keybe-webchat .kb-drag-zone { height: 100%; flex-shrink: 0; display: flex; position: relative; flex-direction: column; height: 100%; max-height: 100%; overflow-y: auto; animation: scrollIn 0.7s ease-in-out both; } @keyframes scrollIn { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .kb-drop-zone-form { background-color: white; z-index: 99999999999999 !important; position: absolute; width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; } #keybe-webchat .kb-drop-zone-icons { padding: 15px 15px 13px 15px; margin: 10px 10px 3px 10px; border-radius: 50px; min-height: 20px; min-width: 20px; background-color: #d1dae4; color: #aab7c5; } #keybe-webchat .kb-drop-zone-cancel-button { background-color: #aab7c5; border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; margin-right: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-drop-zone__border { align-items: center; box-shadow: -2px 10px 60px -37px rgb(0, 0, 0); border-radius: 8px; box-sizing: border-box; display: flex; flex-direction: column; font-size: 16px; height: 80%; justify-content: center; width: 80%; } #keybe-webchat .drop-zone-preview { border-radius: 8px; max-height: 65%; max-width: 90%; } #keybe-webchat .drop-zone-progress { background-color: grey; border-radius: 30px; box-sizing: border-box; display: flex; align-items: center; margin: 10px; position: relative; width: 90%; overflow: hidden; } #keybe-webchat .kb-drop-zone-button { display: inline-flex; flex-direction: column; justify-content: center; align-items: center; } #keybe-webchat .drop-zone-progress__successful { background-color: #4f8e62; border-radius: 30px; height: 30px; transition: width 0.5s ease; } #keybe-webchat .drop-zone-progress__value { color: white; font-size: 14px; font-weight: normal; position: absolute; text-align: center; width: 100%; } #keybe-webchat .kb-drop-zone-send-button { border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-toggle-button-message { border-radius: 10px; bottom: 32px; box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: pointer; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; } #keybe-webchat .kb-toggle-button-message-comfama { display: none; } #keybe-webchat .kb-toggle-button-left { left: 32px; } #keybe-webchat .kb-toggle-button-right { right: 32px; } #keybe-webchat .kb-toggle-button-message-left { left: 105px; } #keybe-webchat .kb-toggle-button-message-right { right: 105px; } #keybe-webchat .kb-font-weight-bold { font-weight: bold; } #keybe-webchat .black { color: black; } #keybe-webchat .white { color: white; } #keybe-webchat .kb-white--text { color: white !important; } #keybe-webchat .grey { color: #9e9e9e; } #keybe-webchat .red { color: #C92239; } #keybe-webchat ::-webkit-scrollbar { width: 6px !important; height: 6px !important; } #keybe-webchat ::-webkit-scrollbar-thumb { background-color: rgba(0, 0, 0, 0.2); } #keybe-webchat ::-webkit-scrollbar-track { background: hsla(0, 0%, 100%, 0.08); } #keybe-webchat .pswp__ui { z-index: 2147483649 !important; } .vb-checkbox { align-items: center; cursor: pointer; display: flex; flex-direction: row; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .vb-checkbox__checker { align-items: center; background-color: white; border-radius: 4px; box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3) !important; display: flex; font-size: 16px; justify-content: center; margin-right: 8px; min-height: 24px; min-width: 24px; } .tooltip { display: block !important; font-family: "Montserrat", sans-serif !important; font-size: 13px; max-width: 390px; z-index: 2147483649; } .tooltip .tooltip-inner { background: rgba(35, 47, 52, 0.9); color: white; border-radius: 4px; padding: 5px 10px; } .tooltip[x-placement^=top] { margin-bottom: 5px; } .tooltip[x-placement^=bottom] { margin-top: 5px; } .tooltip[x-placement^=right] { margin-left: 5px; } .tooltip[x-placement^=left] { margin-right: 5px; } .tooltip.popover .popover-inner { background: #f9f9f9; color: black; padding: 24px; border-radius: 5px; box-shadow: 0 5px 30px rgba(0, 0, 0, 0.1); } .tooltip.popover .popover-arrow { border-color: #f9f9f9; } .tooltip[aria-hidden=true] { visibility: hidden; opacity: 0; transition: opacity 0.15s, visibility 0.15s; } .tooltip[aria-hidden=false] { visibility: visible; opacity: 1; transition: opacity 0.15s; } .vb-checkbox { align-items: center; cursor: pointer; display: flex; flex-direction: row; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .vb-checkbox__checker { align-items: center; background-color: white; border-radius: 4px; box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3) !important; display: flex; font-size: 16px; justify-content: center; margin-right: 8px; min-height: 24px; min-width: 24px; }.kb-toggle-button__pulse { /* pulse from: https://codepen.io/olam/pen/zcqea */ border-radius: 50%; box-shadow: 0 0 0 rgba(59, 59, 59, 0.4); animation: pulse 2s infinite; } @-webkit-keyframes pulse { 0% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -webkit-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } @keyframes pulse { 0% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -moz-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } .expand-y-enter-active, .expand-y-leave-active { transition: all 0.2s; max-height: 31px; } .expand-y-enter, .expand-y-leave-to { opacity: 0; max-height: 0; } .kb-auth-container { padding: 16px 25px 16px 25px; animation: fadeUp 0.6s ease-in both; animation-delay: 500ms; overflow: auto; } @keyframes fadeUp { from { opacity: 0; transform: translate3d(0, 10%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-button { font-family: "Montserrat", sans-serif !important; background-color: #3b3b3b; border: none; border-radius: 50px; color: white; cursor: pointer; padding: 6px; width: 100%; margin-top: 5px; } .kb-input { background-color: transparent; border: none; border-bottom: 1px solid grey; box-sizing: border-box; font-family: "Montserrat", sans-serif !important; padding: 10px 0 10px 0; width: 100%; color: black; font-size: 13px; } /* Change Autocomplete styles in Chrome*/ input.kb-input:-webkit-autofill, input.kb-input:-webkit-autofill:hover, input.kb-input:-webkit-autofill:focus, textarea.kb-input:-webkit-autofill, textarea.kb-input:-webkit-autofill:hover, textarea.kb-input:-webkit-autofill:focus, select.kb-input:-webkit-autofill, select.kb-input:-webkit-autofill:hover, select.kb-input:-webkit-autofill:focus { border-top: none; border-right: none; border-left: none; border-bottom: 1px solid grey; -webkit-text-fill-color: black; background-color: transparent !important; transition: background-color 5000s ease-in-out 0s; } button.kb-input:focus, input.kb-input:focus, textarea.kb-input:focus, select.kb-input:focus { border: none; border-bottom: 1px solid grey; outline: none; } .terms-and-conditions-settings { z-index: 1 !important; font-size: 12px !important; } .terms-and-conditions-settings a { font-weight: bold; text-decoration: none; z-index: 1 !important; } .vti__dropdown-list { width: 290px !important; overflow-x: hidden !important; } .vti__input { z-index: 1 !important; } .vti__dropdown-list { min-height: 6500px !important; } .vti__dropdown-list.above { top: 33px !important; bottom: 0 !important; } .vb-checkbox__checker { z-index: 1 !important; } .kb-bottom-menu { background-color: #FFFFFF; border-top: 1px solid #BBB; border-radius: 5px; display: flex; flex-direction: column; position: absolute; width: 100%; z-index: 2321321312311; bottom: 0; max-height: 90%; } .kb-bottom-menu__title { color: rgba(0, 0, 0, 0.5); padding-left: 16px; vertical-align: middle; } .kb-bottom-menu__header { background-color: white; cursor: default; border-radius: 10px; margin-top: -10px; align-items: center; display: flex; min-height: 48px; width: 100%; animation: fadeUpHead 0.7s ease-in both; animation-delay: 400ms; } @keyframes fadeUpHead { from { opacity: 0; transform: translate3d(0, 50%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-bottom-menu__footer { min-height: 48px; width: 100%; } .kb-bottom-menu__body { height: 100%; overflow-y: auto; width: 100%; } .kb-bottom-menu__close-button { cursor: pointer; display: flex; padding: 16px; } .kb-customized-question-container { text-align: center; } .kb-chip { background: white; border: solid 1px rgba(0, 0, 0, 0.12); border-radius: 25px; cursor: pointer; display: inline-flex; font-size: 13px; margin-left: 5px; margin-top: 5px; padding: 5px 12px; } .kb-chip img { margin-right: 6px; } .kb-customized-question-title { font-weight: bold; padding: 10px; } .kb-helper-link-out-suggestion { background-color: white; border-radius: 15px; margin: 10px 5px; padding: 5px; } .kb-helper-link-out-suggestion a { color: #039be5 !important; text-decoration: none; } .kb-permanent-messages-container { text-align: justify; } .kb-permanent-message { background-color: #e8effb; border-radius: 4px; cursor: default; display: inline-block; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; } .kb-permanent-message a { color: #039be5; text-decoration: none; } .kb-schedule-alert { background-color: #C92239; color: white; cursor: default; padding: 5px 5px 5px 16px; display: flex; align-items: center; } .kb-schedule-alert__message { margin-left: 10px; padding-right: 16px; text-align: justify; } .kb-schedule-alert__message a { color: white; } .kb-schedule-alert__permanent-message { background: white; border-radius: 4px; cursor: default; display: inline-flex; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; } #keybe-webchat { font-family: "Montserrat", sans-serif !important; font-size: 14px !important; z-index: 214748364 !important; /* AUXILIARES */ /* COLORS */ } #keybe-webchat * { z-index: 214748364; } #keybe-webchat .language-toggle { margin-right: 8px; font-size: 17px; font-weight: bold; } #keybe-webchat .kb-welcome-container { word-break: break-word; align-items: center; display: flex; height: 50%; margin-top: -2px; background: rgba(255, 255, 255, 0); z-index: 2222222222222222300; } #keybe-webchat .kb-welcome-text { padding-right: 20px; padding-left: 20px; font-weight: 600; } #keybe-webchat .kb-fade-in-animation { animation: fadeIn 1s ease-in both; } @keyframes fadeIn { from { opacity: 0; transform: translate3d(0, -20%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-in-animation--delay { animation: fadeIn 0.3s ease-in both; } @keyframes fadeIn { from { opacity: 0; transform: translate3d(0, 30%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-animation { animation: fade 0.3s ease-in both; } @keyframes fade { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .slide-fade-enter-active { transition: all 0.3s ease; } #keybe-webchat .slide-fade-leave-active { transition: all 0.3s ease; } #keybe-webchat .slide-fade-enter, #keybe-webchat .slide-fade-leave-to { transform: translateY(56px); opacity: 0; } #keybe-webchat .fade-enter-active, #keybe-webchat .fade-leave-active { transition: opacity 0.2s; } #keybe-webchat .fade-enter, #keybe-webchat .fade-leave-to { opacity: 0; } #keybe-webchat .cursor-pointer { cursor: pointer; } #keybe-webchat .kb-error--text { color: #C92239 !important; } #keybe-webchat .kb-inactivity-container { align-items: center; background-color: white; border-radius: 5px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 70%; max-width: 92%; padding: 20px; position: fixed; text-align: center; width: 360px; z-index: 2147483648; } #keybe-webchat .kb-inactivity-container-left { left: 16px; } #keybe-webchat .kb-inactivity-container-right { right: 16px; } #keybe-webchat .kb-inactivity-container__logo { max-width: 300px; } #keybe-webchat .kb-inactivity-container__close-button { display: inline-flex; padding: 8px; position: absolute; right: 0; top: 0; } #keybe-webchat .kb-whatsapp-button__container { align-items: center; background-color: transparent; border-radius: 5px; bottom: 16px; cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 320px; overflow-y: hidden; max-width: 92%; padding: 20px; position: fixed; text-align: center; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__chat { width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__whatsApp { background-color: #40C451; width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__close { background-color: transparent; border-width: 4px; border-style: solid; width: 52px; height: 52px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-chat-container { background-color: white; border-radius: 10px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); display: flex; flex-direction: column; height: 85vh; max-height: 552px; max-width: 75vh; position: fixed; width: 340px; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__phone { background-color: transparent; min-width: 64px; min-height: 64px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-phone-button__container { position: relative; } #keybe-webchat .kb-phone-button__phones { position: absolute; top: 6px; width: 230px; border-radius: 50px; height: 64px; padding: 6px; } #keybe-webchat .kb-phone-button__phones div { display: flex; align-items: center; justify-content: center; height: 100%; } #keybe-webchat .kb-phone-button__phones div span { font-size: 13px; font-weight: 400; max-width: 45%; font-family: "Montserrat", sans-serif !important; } #keybe-webchat .kb-phone-button__numbers { display: flex; flex-direction: column; margin-left: 20px; } #keybe-webchat .kb-phone-button__numbers h5 { font-size: 13px; padding: 0; margin: 5px 0; } #keybe-webchat .kb-phone-button__phones-right { left: 80px; } #keybe-webchat .kb-phone-button__phones-left { right: 80px; } #keybe-webchat .kb-chat-container-left { left: 16px; overflow: visible; } #keybe-webchat .kb-chat-container-right { right: 16px; overflow: visible; } #keybe-webchat .kb-chat-conversation { background-color: rgba(242, 242, 242, 0.4); display: flex; flex: 1 1 0; flex-direction: column; overflow-y: auto; padding: 0 5px; } #keybe-webchat .kb-message-error { background-color: #C92239; color: white; font-weight: bold; padding: 5px 5px 5px 16px; z-index: 21474836482; } #keybe-webchat .kb-chat-conversation .kb-message:first-child { margin-top: 6px; } #keybe-webchat .kb-chat-header { align-items: center; border-radius: 10px 10px 0 0; cursor: pointer; display: flex; flex-direction: row; height: 54px; z-index: 214748364; } #keybe-webchat .kb-error-connection { background-color: #C92239; border-radius: 10px; bottom: 32px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: default; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; right: 32px; } #keybe-webchat .kb-footer { background-color: rgba(242, 242, 242, 0.4); min-height: 50px; z-index: 2147483649; } #keybe-webchat .kb-message-box { display: flex; flex-direction: row; max-height: 40px; z-index: 2147483649; border-radius: 60px; margin: 3px 10px 10px 10px; box-shadow: 6px 11px 32px -4px rgb(176, 170, 176); } #keybe-webchat .kb-divider { border-bottom: 1px solid rgba(0, 0, 0, 0.1); } #keybe-webchat .kb-font-weight-bold { font-weight: bold; } #keybe-webchat .kb-message-in { background-color: #e8effb; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; animation: bounce-in 2s both; } #keybe-webchat .kb-message-out { background-color: #cdefe8; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 15px 15px 0px 15px/15px 15px 15px 15px; animation: bounce-out 2s both; } #keybe-webchat .kb-message { display: flex; padding-left: 12px; padding-right: 12px; position: relative; margin-bottom: 6px; } @keyframes bounce-out { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform-origin: 90%; transform: scale(0.1); } } @keyframes bounce-in { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform: scale(0.1); } } #keybe-webchat .kb-message-text { padding: 6px 7px 0px 9px; white-space: pre-wrap; word-wrap: break-word; color: black; } #keybe-webchat .kb-message-text a { color: #039be5; text-decoration: none; } #keybe-webchat .kb-message-text a:hover { text-decoration: underline; } #keybe-webchat .kb-ml2 { margin-left: 8px; } #keybe-webchat .kb-mt2 { margin-top: 8px; } #keybe-webchat .kb-mx2 { margin: 0 8px 0 8px; } #keybe-webchat .kb-my2 { margin-bottom: 8px; margin-top: 8px; } #keybe-webchat .kb-powered-container { align-items: center; border-top: solid 1px rgba(0, 0, 0, 0.12); border-radius: 0 0 5px 5px; display: flex; justify-content: flex-end; min-height: 27px; } #keybe-webchat .kb-powered-container a { color: #676767; font-family: "Montserrat", sans-serif !important; font-size: 11px; padding-right: 8px; text-decoration: none; } #keybe-webchat .kb-powered-container-auth-form { align-items: center; color: #676767; cursor: pointer; border-radius: 0 0 5px 5px; display: flex; font-family: "Montserrat", sans-serif !important; font-size: 11px; justify-content: flex-end; padding-top: 6px; text-decoration: none; } #keybe-webchat .kb-px2 { padding: 0 8px 0 8px; } #keybe-webchat .kb-px4 { padding: 0 16px 0 16px; } #keybe-webchat .kb-pointer { cursor: pointer; } #keybe-webchat .kb-reverse { flex-direction: row-reverse; } #keybe-webchat .kb-row { display: flex; flex-direction: row; } #keybe-webchat .kb-spacer { display: flex; flex-grow: 1; } #keybe-webchat .kb-textarea-container { overflow-y: auto; flex: 1 1 auto; flex-grow: 1; min-width: 0; padding: 3px 0 3px 0px; } #keybe-webchat .kb-textarea-container::-webkit-scrollbar { width: 3px; } #keybe-webchat .kb-textarea-container::-webkit-scrollbar-thumb { background-color: #fafafa; } #keybe-webchat .kb-textarea-container [contentEditable=true]:empty:before { content: attr(data-ph); color: rgba(99, 99, 99, 0.705); cursor: text; } #keybe-webchat .kb-textarea-container [contentEditable=false]:empty:before { content: attr(data-ph); color: #C92239; cursor: not-allowed; } #keybe-webchat .kb-textarea { color: black; background-color: rgba(242, 242, 242, 0.4); border-radius: 24px; line-height: 20px; max-height: 100px; max-width: 100%; min-height: 24px; padding: 6px 12px; overflow-x: hidden; overflow-y: auto; white-space: pre-wrap; word-wrap: break-word; } #keybe-webchat .kb-textarea:focus { outline: none; } #keybe-webchat .kb-text-center { text-align: center; } #keybe-webchat .kb-toggle-button { border-radius: 50%; bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-image { bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-button-comfama { border-radius: 3px; bottom: 14px; right: 10px !important; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; box-shadow: 0 1px 6px #d3d3d3, 0 2px 32px #d3d3d3; } #keybe-webchat .kb-drag-zone { height: 100%; flex-shrink: 0; display: flex; position: relative; flex-direction: column; height: 100%; max-height: 100%; overflow-y: auto; animation: scrollIn 0.7s ease-in-out both; } @keyframes scrollIn { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .kb-drop-zone-form { background-color: white; z-index: 99999999999999 !important; position: absolute; width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; } #keybe-webchat .kb-drop-zone-icons { padding: 15px 15px 13px 15px; margin: 10px 10px 3px 10px; border-radius: 50px; min-height: 20px; min-width: 20px; background-color: #d1dae4; color: #aab7c5; } #keybe-webchat .kb-drop-zone-cancel-button { background-color: #aab7c5; border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; margin-right: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-drop-zone__border { align-items: center; box-shadow: -2px 10px 60px -37px rgb(0, 0, 0); border-radius: 8px; box-sizing: border-box; display: flex; flex-direction: column; font-size: 16px; height: 80%; justify-content: center; width: 80%; } #keybe-webchat .drop-zone-preview { border-radius: 8px; max-height: 65%; max-width: 90%; } #keybe-webchat .drop-zone-progress { background-color: grey; border-radius: 30px; box-sizing: border-box; display: flex; align-items: center; margin: 10px; position: relative; width: 90%; overflow: hidden; } #keybe-webchat .kb-drop-zone-button { display: inline-flex; flex-direction: column; justify-content: center; align-items: center; } #keybe-webchat .drop-zone-progress__successful { background-color: #4f8e62; border-radius: 30px; height: 30px; transition: width 0.5s ease; } #keybe-webchat .drop-zone-progress__value { color: white; font-size: 14px; font-weight: normal; position: absolute; text-align: center; width: 100%; } #keybe-webchat .kb-drop-zone-send-button { border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-toggle-button-message { border-radius: 10px; bottom: 32px; box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: pointer; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; } #keybe-webchat .kb-toggle-button-message-comfama { display: none; } #keybe-webchat .kb-toggle-button-left { left: 32px; } #keybe-webchat .kb-toggle-button-right { right: 32px; } #keybe-webchat .kb-toggle-button-message-left { left: 105px; } #keybe-webchat .kb-toggle-button-message-right { right: 105px; } #keybe-webchat .kb-font-weight-bold { font-weight: bold; } #keybe-webchat .black { color: black; } #keybe-webchat .white { color: white; } #keybe-webchat .kb-white--text { color: white !important; } #keybe-webchat .grey { color: #9e9e9e; } #keybe-webchat .red { color: #C92239; } #keybe-webchat ::-webkit-scrollbar { width: 6px !important; height: 6px !important; } #keybe-webchat ::-webkit-scrollbar-thumb { background-color: rgba(0, 0, 0, 0.2); } #keybe-webchat ::-webkit-scrollbar-track { background: hsla(0, 0%, 100%, 0.08); } #keybe-webchat .pswp__ui { z-index: 2147483649 !important; } .vb-checkbox { align-items: center; cursor: pointer; display: flex; flex-direction: row; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .vb-checkbox__checker { align-items: center; background-color: white; border-radius: 4px; box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3) !important; display: flex; font-size: 16px; justify-content: center; margin-right: 8px; min-height: 24px; min-width: 24px; } .tooltip { display: block !important; font-family: "Montserrat", sans-serif !important; font-size: 13px; max-width: 390px; z-index: 2147483649; } .tooltip .tooltip-inner { background: rgba(35, 47, 52, 0.9); color: white; border-radius: 4px; padding: 5px 10px; } .tooltip[x-placement^=top] { margin-bottom: 5px; } .tooltip[x-placement^=bottom] { margin-top: 5px; } .tooltip[x-placement^=right] { margin-left: 5px; } .tooltip[x-placement^=left] { margin-right: 5px; } .tooltip.popover .popover-inner { background: #f9f9f9; color: black; padding: 24px; border-radius: 5px; box-shadow: 0 5px 30px rgba(0, 0, 0, 0.1); } .tooltip.popover .popover-arrow { border-color: #f9f9f9; } .tooltip[aria-hidden=true] { visibility: hidden; opacity: 0; transition: opacity 0.15s, visibility 0.15s; } .tooltip[aria-hidden=false] { visibility: visible; opacity: 1; transition: opacity 0.15s; } .kb-auth-container { padding: 16px 25px 16px 25px; animation: fadeUp 0.6s ease-in both; animation-delay: 500ms; overflow: auto; } @keyframes fadeUp { from { opacity: 0; transform: translate3d(0, 10%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-button { font-family: "Montserrat", sans-serif !important; background-color: #3b3b3b; border: none; border-radius: 50px; color: white; cursor: pointer; padding: 6px; width: 100%; margin-top: 5px; } .kb-input { background-color: transparent; border: none; border-bottom: 1px solid grey; box-sizing: border-box; font-family: "Montserrat", sans-serif !important; padding: 10px 0 10px 0; width: 100%; color: black; font-size: 13px; } /* Change Autocomplete styles in Chrome*/ input.kb-input:-webkit-autofill, input.kb-input:-webkit-autofill:hover, input.kb-input:-webkit-autofill:focus, textarea.kb-input:-webkit-autofill, textarea.kb-input:-webkit-autofill:hover, textarea.kb-input:-webkit-autofill:focus, select.kb-input:-webkit-autofill, select.kb-input:-webkit-autofill:hover, select.kb-input:-webkit-autofill:focus { border-top: none; border-right: none; border-left: none; border-bottom: 1px solid grey; -webkit-text-fill-color: black; background-color: transparent !important; transition: background-color 5000s ease-in-out 0s; } button.kb-input:focus, input.kb-input:focus, textarea.kb-input:focus, select.kb-input:focus { border: none; border-bottom: 1px solid grey; outline: none; } .terms-and-conditions-settings { z-index: 1 !important; font-size: 12px !important; } .terms-and-conditions-settings a { font-weight: bold; text-decoration: none; z-index: 1 !important; } .vti__dropdown-list { width: 290px !important; overflow-x: hidden !important; } .vti__input { z-index: 1 !important; } .vti__dropdown-list { min-height: 6500px !important; } .vti__dropdown-list.above { top: 33px !important; bottom: 0 !important; } .vb-checkbox__checker { z-index: 1 !important; } .kb-selector { width: 100%; background-color: white; border: none; border-bottom: solid 1px grey; padding: 10px 0; outline: none; }.kb-toggle-button__pulse { /* pulse from: https://codepen.io/olam/pen/zcqea */ border-radius: 50%; box-shadow: 0 0 0 rgba(59, 59, 59, 0.4); animation: pulse 2s infinite; } @-webkit-keyframes pulse { 0% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -webkit-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } @keyframes pulse { 0% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -moz-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } .expand-y-enter-active, .expand-y-leave-active { transition: all 0.2s; max-height: 31px; } .expand-y-enter, .expand-y-leave-to { opacity: 0; max-height: 0; } .kb-auth-container { padding: 16px 25px 16px 25px; animation: fadeUp 0.6s ease-in both; animation-delay: 500ms; overflow: auto; } @keyframes fadeUp { from { opacity: 0; transform: translate3d(0, 10%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-button { font-family: "Montserrat", sans-serif !important; background-color: #3b3b3b; border: none; border-radius: 50px; color: white; cursor: pointer; padding: 6px; width: 100%; margin-top: 5px; } .kb-input { background-color: transparent; border: none; border-bottom: 1px solid grey; box-sizing: border-box; font-family: "Montserrat", sans-serif !important; padding: 10px 0 10px 0; width: 100%; color: black; font-size: 13px; } /* Change Autocomplete styles in Chrome*/ input.kb-input:-webkit-autofill, input.kb-input:-webkit-autofill:hover, input.kb-input:-webkit-autofill:focus, textarea.kb-input:-webkit-autofill, textarea.kb-input:-webkit-autofill:hover, textarea.kb-input:-webkit-autofill:focus, select.kb-input:-webkit-autofill, select.kb-input:-webkit-autofill:hover, select.kb-input:-webkit-autofill:focus { border-top: none; border-right: none; border-left: none; border-bottom: 1px solid grey; -webkit-text-fill-color: black; background-color: transparent !important; transition: background-color 5000s ease-in-out 0s; } button.kb-input:focus, input.kb-input:focus, textarea.kb-input:focus, select.kb-input:focus { border: none; border-bottom: 1px solid grey; outline: none; } .terms-and-conditions-settings { z-index: 1 !important; font-size: 12px !important; } .terms-and-conditions-settings a { font-weight: bold; text-decoration: none; z-index: 1 !important; } .vti__dropdown-list { width: 290px !important; overflow-x: hidden !important; } .vti__input { z-index: 1 !important; } .vti__dropdown-list { min-height: 6500px !important; } .vti__dropdown-list.above { top: 33px !important; bottom: 0 !important; } .vb-checkbox__checker { z-index: 1 !important; } .kb-bottom-menu { background-color: #FFFFFF; border-top: 1px solid #BBB; border-radius: 5px; display: flex; flex-direction: column; position: absolute; width: 100%; z-index: 2321321312311; bottom: 0; max-height: 90%; } .kb-bottom-menu__title { color: rgba(0, 0, 0, 0.5); padding-left: 16px; vertical-align: middle; } .kb-bottom-menu__header { background-color: white; cursor: default; border-radius: 10px; margin-top: -10px; align-items: center; display: flex; min-height: 48px; width: 100%; animation: fadeUpHead 0.7s ease-in both; animation-delay: 400ms; } @keyframes fadeUpHead { from { opacity: 0; transform: translate3d(0, 50%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-bottom-menu__footer { min-height: 48px; width: 100%; } .kb-bottom-menu__body { height: 100%; overflow-y: auto; width: 100%; } .kb-bottom-menu__close-button { cursor: pointer; display: flex; padding: 16px; } .kb-customized-question-container { text-align: center; } .kb-chip { background: white; border: solid 1px rgba(0, 0, 0, 0.12); border-radius: 25px; cursor: pointer; display: inline-flex; font-size: 13px; margin-left: 5px; margin-top: 5px; padding: 5px 12px; } .kb-chip img { margin-right: 6px; } .kb-customized-question-title { font-weight: bold; padding: 10px; } .kb-helper-link-out-suggestion { background-color: white; border-radius: 15px; margin: 10px 5px; padding: 5px; } .kb-helper-link-out-suggestion a { color: #039be5 !important; text-decoration: none; } .kb-permanent-messages-container { text-align: justify; } .kb-permanent-message { background-color: #e8effb; border-radius: 4px; cursor: default; display: inline-block; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; } .kb-permanent-message a { color: #039be5; text-decoration: none; } .kb-schedule-alert { background-color: #C92239; color: white; cursor: default; padding: 5px 5px 5px 16px; display: flex; align-items: center; } .kb-schedule-alert__message { margin-left: 10px; padding-right: 16px; text-align: justify; } .kb-schedule-alert__message a { color: white; } .kb-schedule-alert__permanent-message { background: white; border-radius: 4px; cursor: default; display: inline-flex; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; } #keybe-webchat { font-family: "Montserrat", sans-serif !important; font-size: 14px !important; z-index: 214748364 !important; /* AUXILIARES */ /* COLORS */ } #keybe-webchat * { z-index: 214748364; } #keybe-webchat .language-toggle { margin-right: 8px; font-size: 17px; font-weight: bold; } #keybe-webchat .kb-welcome-container { word-break: break-word; align-items: center; display: flex; height: 50%; margin-top: -2px; background: rgba(255, 255, 255, 0); z-index: 2222222222222222300; } #keybe-webchat .kb-welcome-text { padding-right: 20px; padding-left: 20px; font-weight: 600; } #keybe-webchat .kb-fade-in-animation { animation: fadeIn 1s ease-in both; } @keyframes fadeIn { from { opacity: 0; transform: translate3d(0, -20%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-in-animation--delay { animation: fadeIn 0.3s ease-in both; } @keyframes fadeIn { from { opacity: 0; transform: translate3d(0, 30%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-animation { animation: fade 0.3s ease-in both; } @keyframes fade { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .slide-fade-enter-active { transition: all 0.3s ease; } #keybe-webchat .slide-fade-leave-active { transition: all 0.3s ease; } #keybe-webchat .slide-fade-enter, #keybe-webchat .slide-fade-leave-to { transform: translateY(56px); opacity: 0; } #keybe-webchat .fade-enter-active, #keybe-webchat .fade-leave-active { transition: opacity 0.2s; } #keybe-webchat .fade-enter, #keybe-webchat .fade-leave-to { opacity: 0; } #keybe-webchat .cursor-pointer { cursor: pointer; } #keybe-webchat .kb-error--text { color: #C92239 !important; } #keybe-webchat .kb-inactivity-container { align-items: center; background-color: white; border-radius: 5px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 70%; max-width: 92%; padding: 20px; position: fixed; text-align: center; width: 360px; z-index: 2147483648; } #keybe-webchat .kb-inactivity-container-left { left: 16px; } #keybe-webchat .kb-inactivity-container-right { right: 16px; } #keybe-webchat .kb-inactivity-container__logo { max-width: 300px; } #keybe-webchat .kb-inactivity-container__close-button { display: inline-flex; padding: 8px; position: absolute; right: 0; top: 0; } #keybe-webchat .kb-whatsapp-button__container { align-items: center; background-color: transparent; border-radius: 5px; bottom: 16px; cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 320px; overflow-y: hidden; max-width: 92%; padding: 20px; position: fixed; text-align: center; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__chat { width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__whatsApp { background-color: #40C451; width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__close { background-color: transparent; border-width: 4px; border-style: solid; width: 52px; height: 52px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-chat-container { background-color: white; border-radius: 10px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); display: flex; flex-direction: column; height: 85vh; max-height: 552px; max-width: 75vh; position: fixed; width: 340px; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__phone { background-color: transparent; min-width: 64px; min-height: 64px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-phone-button__container { position: relative; } #keybe-webchat .kb-phone-button__phones { position: absolute; top: 6px; width: 230px; border-radius: 50px; height: 64px; padding: 6px; } #keybe-webchat .kb-phone-button__phones div { display: flex; align-items: center; justify-content: center; height: 100%; } #keybe-webchat .kb-phone-button__phones div span { font-size: 13px; font-weight: 400; max-width: 45%; font-family: "Montserrat", sans-serif !important; } #keybe-webchat .kb-phone-button__numbers { display: flex; flex-direction: column; margin-left: 20px; } #keybe-webchat .kb-phone-button__numbers h5 { font-size: 13px; padding: 0; margin: 5px 0; } #keybe-webchat .kb-phone-button__phones-right { left: 80px; } #keybe-webchat .kb-phone-button__phones-left { right: 80px; } #keybe-webchat .kb-chat-container-left { left: 16px; overflow: visible; } #keybe-webchat .kb-chat-container-right { right: 16px; overflow: visible; } #keybe-webchat .kb-chat-conversation { background-color: rgba(242, 242, 242, 0.4); display: flex; flex: 1 1 0; flex-direction: column; overflow-y: auto; padding: 0 5px; } #keybe-webchat .kb-message-error { background-color: #C92239; color: white; font-weight: bold; padding: 5px 5px 5px 16px; z-index: 21474836482; } #keybe-webchat .kb-chat-conversation .kb-message:first-child { margin-top: 6px; } #keybe-webchat .kb-chat-header { align-items: center; border-radius: 10px 10px 0 0; cursor: pointer; display: flex; flex-direction: row; height: 54px; z-index: 214748364; } #keybe-webchat .kb-error-connection { background-color: #C92239; border-radius: 10px; bottom: 32px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: default; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; right: 32px; } #keybe-webchat .kb-footer { background-color: rgba(242, 242, 242, 0.4); min-height: 50px; z-index: 2147483649; } #keybe-webchat .kb-message-box { display: flex; flex-direction: row; max-height: 40px; z-index: 2147483649; border-radius: 60px; margin: 3px 10px 10px 10px; box-shadow: 6px 11px 32px -4px rgb(176, 170, 176); } #keybe-webchat .kb-divider { border-bottom: 1px solid rgba(0, 0, 0, 0.1); } #keybe-webchat .kb-font-weight-bold { font-weight: bold; } #keybe-webchat .kb-message-in { background-color: #e8effb; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; animation: bounce-in 2s both; } #keybe-webchat .kb-message-out { background-color: #cdefe8; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 15px 15px 0px 15px/15px 15px 15px 15px; animation: bounce-out 2s both; } #keybe-webchat .kb-message { display: flex; padding-left: 12px; padding-right: 12px; position: relative; margin-bottom: 6px; } @keyframes bounce-out { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform-origin: 90%; transform: scale(0.1); } } @keyframes bounce-in { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform: scale(0.1); } } #keybe-webchat .kb-message-text { padding: 6px 7px 0px 9px; white-space: pre-wrap; word-wrap: break-word; color: black; } #keybe-webchat .kb-message-text a { color: #039be5; text-decoration: none; } #keybe-webchat .kb-message-text a:hover { text-decoration: underline; } #keybe-webchat .kb-ml2 { margin-left: 8px; } #keybe-webchat .kb-mt2 { margin-top: 8px; } #keybe-webchat .kb-mx2 { margin: 0 8px 0 8px; } #keybe-webchat .kb-my2 { margin-bottom: 8px; margin-top: 8px; } #keybe-webchat .kb-powered-container { align-items: center; border-top: solid 1px rgba(0, 0, 0, 0.12); border-radius: 0 0 5px 5px; display: flex; justify-content: flex-end; min-height: 27px; } #keybe-webchat .kb-powered-container a { color: #676767; font-family: "Montserrat", sans-serif !important; font-size: 11px; padding-right: 8px; text-decoration: none; } #keybe-webchat .kb-powered-container-auth-form { align-items: center; color: #676767; cursor: pointer; border-radius: 0 0 5px 5px; display: flex; font-family: "Montserrat", sans-serif !important; font-size: 11px; justify-content: flex-end; padding-top: 6px; text-decoration: none; } #keybe-webchat .kb-px2 { padding: 0 8px 0 8px; } #keybe-webchat .kb-px4 { padding: 0 16px 0 16px; } #keybe-webchat .kb-pointer { cursor: pointer; } #keybe-webchat .kb-reverse { flex-direction: row-reverse; } #keybe-webchat .kb-row { display: flex; flex-direction: row; } #keybe-webchat .kb-spacer { display: flex; flex-grow: 1; } #keybe-webchat .kb-textarea-container { overflow-y: auto; flex: 1 1 auto; flex-grow: 1; min-width: 0; padding: 3px 0 3px 0px; } #keybe-webchat .kb-textarea-container::-webkit-scrollbar { width: 3px; } #keybe-webchat .kb-textarea-container::-webkit-scrollbar-thumb { background-color: #fafafa; } #keybe-webchat .kb-textarea-container [contentEditable=true]:empty:before { content: attr(data-ph); color: rgba(99, 99, 99, 0.705); cursor: text; } #keybe-webchat .kb-textarea-container [contentEditable=false]:empty:before { content: attr(data-ph); color: #C92239; cursor: not-allowed; } #keybe-webchat .kb-textarea { color: black; background-color: rgba(242, 242, 242, 0.4); border-radius: 24px; line-height: 20px; max-height: 100px; max-width: 100%; min-height: 24px; padding: 6px 12px; overflow-x: hidden; overflow-y: auto; white-space: pre-wrap; word-wrap: break-word; } #keybe-webchat .kb-textarea:focus { outline: none; } #keybe-webchat .kb-text-center { text-align: center; } #keybe-webchat .kb-toggle-button { border-radius: 50%; bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-image { bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-button-comfama { border-radius: 3px; bottom: 14px; right: 10px !important; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; box-shadow: 0 1px 6px #d3d3d3, 0 2px 32px #d3d3d3; } #keybe-webchat .kb-drag-zone { height: 100%; flex-shrink: 0; display: flex; position: relative; flex-direction: column; height: 100%; max-height: 100%; overflow-y: auto; animation: scrollIn 0.7s ease-in-out both; } @keyframes scrollIn { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .kb-drop-zone-form { background-color: white; z-index: 99999999999999 !important; position: absolute; width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; } #keybe-webchat .kb-drop-zone-icons { padding: 15px 15px 13px 15px; margin: 10px 10px 3px 10px; border-radius: 50px; min-height: 20px; min-width: 20px; background-color: #d1dae4; color: #aab7c5; } #keybe-webchat .kb-drop-zone-cancel-button { background-color: #aab7c5; border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; margin-right: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-drop-zone__border { align-items: center; box-shadow: -2px 10px 60px -37px rgb(0, 0, 0); border-radius: 8px; box-sizing: border-box; display: flex; flex-direction: column; font-size: 16px; height: 80%; justify-content: center; width: 80%; } #keybe-webchat .drop-zone-preview { border-radius: 8px; max-height: 65%; max-width: 90%; } #keybe-webchat .drop-zone-progress { background-color: grey; border-radius: 30px; box-sizing: border-box; display: flex; align-items: center; margin: 10px; position: relative; width: 90%; overflow: hidden; } #keybe-webchat .kb-drop-zone-button { display: inline-flex; flex-direction: column; justify-content: center; align-items: center; } #keybe-webchat .drop-zone-progress__successful { background-color: #4f8e62; border-radius: 30px; height: 30px; transition: width 0.5s ease; } #keybe-webchat .drop-zone-progress__value { color: white; font-size: 14px; font-weight: normal; position: absolute; text-align: center; width: 100%; } #keybe-webchat .kb-drop-zone-send-button { border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-toggle-button-message { border-radius: 10px; bottom: 32px; box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: pointer; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; } #keybe-webchat .kb-toggle-button-message-comfama { display: none; } #keybe-webchat .kb-toggle-button-left { left: 32px; } #keybe-webchat .kb-toggle-button-right { right: 32px; } #keybe-webchat .kb-toggle-button-message-left { left: 105px; } #keybe-webchat .kb-toggle-button-message-right { right: 105px; } #keybe-webchat .kb-font-weight-bold { font-weight: bold; } #keybe-webchat .black { color: black; } #keybe-webchat .white { color: white; } #keybe-webchat .kb-white--text { color: white !important; } #keybe-webchat .grey { color: #9e9e9e; } #keybe-webchat .red { color: #C92239; } #keybe-webchat ::-webkit-scrollbar { width: 6px !important; height: 6px !important; } #keybe-webchat ::-webkit-scrollbar-thumb { background-color: rgba(0, 0, 0, 0.2); } #keybe-webchat ::-webkit-scrollbar-track { background: hsla(0, 0%, 100%, 0.08); } #keybe-webchat .pswp__ui { z-index: 2147483649 !important; } .vb-checkbox { align-items: center; cursor: pointer; display: flex; flex-direction: row; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .vb-checkbox__checker { align-items: center; background-color: white; border-radius: 4px; box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3) !important; display: flex; font-size: 16px; justify-content: center; margin-right: 8px; min-height: 24px; min-width: 24px; } .tooltip { display: block !important; font-family: "Montserrat", sans-serif !important; font-size: 13px; max-width: 390px; z-index: 2147483649; } .tooltip .tooltip-inner { background: rgba(35, 47, 52, 0.9); color: white; border-radius: 4px; padding: 5px 10px; } .tooltip[x-placement^=top] { margin-bottom: 5px; } .tooltip[x-placement^=bottom] { margin-top: 5px; } .tooltip[x-placement^=right] { margin-left: 5px; } .tooltip[x-placement^=left] { margin-right: 5px; } .tooltip.popover .popover-inner { background: #f9f9f9; color: black; padding: 24px; border-radius: 5px; box-shadow: 0 5px 30px rgba(0, 0, 0, 0.1); } .tooltip.popover .popover-arrow { border-color: #f9f9f9; } .tooltip[aria-hidden=true] { visibility: hidden; opacity: 0; transition: opacity 0.15s, visibility 0.15s; } .tooltip[aria-hidden=false] { visibility: visible; opacity: 1; transition: opacity 0.15s; } .kb-customized-question-container { text-align: center; } .kb-chip { background: white; border: solid 1px rgba(0, 0, 0, 0.12); border-radius: 25px; cursor: pointer; display: inline-flex; font-size: 13px; margin-left: 5px; margin-top: 5px; padding: 5px 12px; } .kb-chip img { margin-right: 6px; } .kb-customized-question-title { font-weight: bold; padding: 10px; }.kb-toggle-button__pulse { /* pulse from: https://codepen.io/olam/pen/zcqea */ border-radius: 50%; box-shadow: 0 0 0 rgba(59, 59, 59, 0.4); animation: pulse 2s infinite; } @-webkit-keyframes pulse { 0% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -webkit-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } @keyframes pulse { 0% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -moz-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } .expand-y-enter-active, .expand-y-leave-active { transition: all 0.2s; max-height: 31px; } .expand-y-enter, .expand-y-leave-to { opacity: 0; max-height: 0; } .kb-auth-container { padding: 16px 25px 16px 25px; animation: fadeUp 0.6s ease-in both; animation-delay: 500ms; overflow: auto; } @keyframes fadeUp { from { opacity: 0; transform: translate3d(0, 10%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-button { font-family: "Montserrat", sans-serif !important; background-color: #3b3b3b; border: none; border-radius: 50px; color: white; cursor: pointer; padding: 6px; width: 100%; margin-top: 5px; } .kb-input { background-color: transparent; border: none; border-bottom: 1px solid grey; box-sizing: border-box; font-family: "Montserrat", sans-serif !important; padding: 10px 0 10px 0; width: 100%; color: black; font-size: 13px; } /* Change Autocomplete styles in Chrome*/ input.kb-input:-webkit-autofill, input.kb-input:-webkit-autofill:hover, input.kb-input:-webkit-autofill:focus, textarea.kb-input:-webkit-autofill, textarea.kb-input:-webkit-autofill:hover, textarea.kb-input:-webkit-autofill:focus, select.kb-input:-webkit-autofill, select.kb-input:-webkit-autofill:hover, select.kb-input:-webkit-autofill:focus { border-top: none; border-right: none; border-left: none; border-bottom: 1px solid grey; -webkit-text-fill-color: black; background-color: transparent !important; transition: background-color 5000s ease-in-out 0s; } button.kb-input:focus, input.kb-input:focus, textarea.kb-input:focus, select.kb-input:focus { border: none; border-bottom: 1px solid grey; outline: none; } .terms-and-conditions-settings { z-index: 1 !important; font-size: 12px !important; } .terms-and-conditions-settings a { font-weight: bold; text-decoration: none; z-index: 1 !important; } .vti__dropdown-list { width: 290px !important; overflow-x: hidden !important; } .vti__input { z-index: 1 !important; } .vti__dropdown-list { min-height: 6500px !important; } .vti__dropdown-list.above { top: 33px !important; bottom: 0 !important; } .vb-checkbox__checker { z-index: 1 !important; } .kb-bottom-menu { background-color: #FFFFFF; border-top: 1px solid #BBB; border-radius: 5px; display: flex; flex-direction: column; position: absolute; width: 100%; z-index: 2321321312311; bottom: 0; max-height: 90%; } .kb-bottom-menu__title { color: rgba(0, 0, 0, 0.5); padding-left: 16px; vertical-align: middle; } .kb-bottom-menu__header { background-color: white; cursor: default; border-radius: 10px; margin-top: -10px; align-items: center; display: flex; min-height: 48px; width: 100%; animation: fadeUpHead 0.7s ease-in both; animation-delay: 400ms; } @keyframes fadeUpHead { from { opacity: 0; transform: translate3d(0, 50%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-bottom-menu__footer { min-height: 48px; width: 100%; } .kb-bottom-menu__body { height: 100%; overflow-y: auto; width: 100%; } .kb-bottom-menu__close-button { cursor: pointer; display: flex; padding: 16px; } .kb-customized-question-container { text-align: center; } .kb-chip { background: white; border: solid 1px rgba(0, 0, 0, 0.12); border-radius: 25px; cursor: pointer; display: inline-flex; font-size: 13px; margin-left: 5px; margin-top: 5px; padding: 5px 12px; } .kb-chip img { margin-right: 6px; } .kb-customized-question-title { font-weight: bold; padding: 10px; } .kb-helper-link-out-suggestion { background-color: white; border-radius: 15px; margin: 10px 5px; padding: 5px; } .kb-helper-link-out-suggestion a { color: #039be5 !important; text-decoration: none; } .kb-permanent-messages-container { text-align: justify; } .kb-permanent-message { background-color: #e8effb; border-radius: 4px; cursor: default; display: inline-block; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; } .kb-permanent-message a { color: #039be5; text-decoration: none; } .kb-schedule-alert { background-color: #C92239; color: white; cursor: default; padding: 5px 5px 5px 16px; display: flex; align-items: center; } .kb-schedule-alert__message { margin-left: 10px; padding-right: 16px; text-align: justify; } .kb-schedule-alert__message a { color: white; } .kb-schedule-alert__permanent-message { background: white; border-radius: 4px; cursor: default; display: inline-flex; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; } #keybe-webchat { font-family: "Montserrat", sans-serif !important; font-size: 14px !important; z-index: 214748364 !important; /* AUXILIARES */ /* COLORS */ } #keybe-webchat * { z-index: 214748364; } #keybe-webchat .language-toggle { margin-right: 8px; font-size: 17px; font-weight: bold; } #keybe-webchat .kb-welcome-container { word-break: break-word; align-items: center; display: flex; height: 50%; margin-top: -2px; background: rgba(255, 255, 255, 0); z-index: 2222222222222222300; } #keybe-webchat .kb-welcome-text { padding-right: 20px; padding-left: 20px; font-weight: 600; } #keybe-webchat .kb-fade-in-animation { animation: fadeIn 1s ease-in both; } @keyframes fadeIn { from { opacity: 0; transform: translate3d(0, -20%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-in-animation--delay { animation: fadeIn 0.3s ease-in both; } @keyframes fadeIn { from { opacity: 0; transform: translate3d(0, 30%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-animation { animation: fade 0.3s ease-in both; } @keyframes fade { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .slide-fade-enter-active { transition: all 0.3s ease; } #keybe-webchat .slide-fade-leave-active { transition: all 0.3s ease; } #keybe-webchat .slide-fade-enter, #keybe-webchat .slide-fade-leave-to { transform: translateY(56px); opacity: 0; } #keybe-webchat .fade-enter-active, #keybe-webchat .fade-leave-active { transition: opacity 0.2s; } #keybe-webchat .fade-enter, #keybe-webchat .fade-leave-to { opacity: 0; } #keybe-webchat .cursor-pointer { cursor: pointer; } #keybe-webchat .kb-error--text { color: #C92239 !important; } #keybe-webchat .kb-inactivity-container { align-items: center; background-color: white; border-radius: 5px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 70%; max-width: 92%; padding: 20px; position: fixed; text-align: center; width: 360px; z-index: 2147483648; } #keybe-webchat .kb-inactivity-container-left { left: 16px; } #keybe-webchat .kb-inactivity-container-right { right: 16px; } #keybe-webchat .kb-inactivity-container__logo { max-width: 300px; } #keybe-webchat .kb-inactivity-container__close-button { display: inline-flex; padding: 8px; position: absolute; right: 0; top: 0; } #keybe-webchat .kb-whatsapp-button__container { align-items: center; background-color: transparent; border-radius: 5px; bottom: 16px; cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 320px; overflow-y: hidden; max-width: 92%; padding: 20px; position: fixed; text-align: center; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__chat { width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__whatsApp { background-color: #40C451; width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__close { background-color: transparent; border-width: 4px; border-style: solid; width: 52px; height: 52px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-chat-container { background-color: white; border-radius: 10px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); display: flex; flex-direction: column; height: 85vh; max-height: 552px; max-width: 75vh; position: fixed; width: 340px; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__phone { background-color: transparent; min-width: 64px; min-height: 64px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-phone-button__container { position: relative; } #keybe-webchat .kb-phone-button__phones { position: absolute; top: 6px; width: 230px; border-radius: 50px; height: 64px; padding: 6px; } #keybe-webchat .kb-phone-button__phones div { display: flex; align-items: center; justify-content: center; height: 100%; } #keybe-webchat .kb-phone-button__phones div span { font-size: 13px; font-weight: 400; max-width: 45%; font-family: "Montserrat", sans-serif !important; } #keybe-webchat .kb-phone-button__numbers { display: flex; flex-direction: column; margin-left: 20px; } #keybe-webchat .kb-phone-button__numbers h5 { font-size: 13px; padding: 0; margin: 5px 0; } #keybe-webchat .kb-phone-button__phones-right { left: 80px; } #keybe-webchat .kb-phone-button__phones-left { right: 80px; } #keybe-webchat .kb-chat-container-left { left: 16px; overflow: visible; } #keybe-webchat .kb-chat-container-right { right: 16px; overflow: visible; } #keybe-webchat .kb-chat-conversation { background-color: rgba(242, 242, 242, 0.4); display: flex; flex: 1 1 0; flex-direction: column; overflow-y: auto; padding: 0 5px; } #keybe-webchat .kb-message-error { background-color: #C92239; color: white; font-weight: bold; padding: 5px 5px 5px 16px; z-index: 21474836482; } #keybe-webchat .kb-chat-conversation .kb-message:first-child { margin-top: 6px; } #keybe-webchat .kb-chat-header { align-items: center; border-radius: 10px 10px 0 0; cursor: pointer; display: flex; flex-direction: row; height: 54px; z-index: 214748364; } #keybe-webchat .kb-error-connection { background-color: #C92239; border-radius: 10px; bottom: 32px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: default; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; right: 32px; } #keybe-webchat .kb-footer { background-color: rgba(242, 242, 242, 0.4); min-height: 50px; z-index: 2147483649; } #keybe-webchat .kb-message-box { display: flex; flex-direction: row; max-height: 40px; z-index: 2147483649; border-radius: 60px; margin: 3px 10px 10px 10px; box-shadow: 6px 11px 32px -4px rgb(176, 170, 176); } #keybe-webchat .kb-divider { border-bottom: 1px solid rgba(0, 0, 0, 0.1); } #keybe-webchat .kb-font-weight-bold { font-weight: bold; } #keybe-webchat .kb-message-in { background-color: #e8effb; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; animation: bounce-in 2s both; } #keybe-webchat .kb-message-out { background-color: #cdefe8; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 15px 15px 0px 15px/15px 15px 15px 15px; animation: bounce-out 2s both; } #keybe-webchat .kb-message { display: flex; padding-left: 12px; padding-right: 12px; position: relative; margin-bottom: 6px; } @keyframes bounce-out { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform-origin: 90%; transform: scale(0.1); } } @keyframes bounce-in { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform: scale(0.1); } } #keybe-webchat .kb-message-text { padding: 6px 7px 0px 9px; white-space: pre-wrap; word-wrap: break-word; color: black; } #keybe-webchat .kb-message-text a { color: #039be5; text-decoration: none; } #keybe-webchat .kb-message-text a:hover { text-decoration: underline; } #keybe-webchat .kb-ml2 { margin-left: 8px; } #keybe-webchat .kb-mt2 { margin-top: 8px; } #keybe-webchat .kb-mx2 { margin: 0 8px 0 8px; } #keybe-webchat .kb-my2 { margin-bottom: 8px; margin-top: 8px; } #keybe-webchat .kb-powered-container { align-items: center; border-top: solid 1px rgba(0, 0, 0, 0.12); border-radius: 0 0 5px 5px; display: flex; justify-content: flex-end; min-height: 27px; } #keybe-webchat .kb-powered-container a { color: #676767; font-family: "Montserrat", sans-serif !important; font-size: 11px; padding-right: 8px; text-decoration: none; } #keybe-webchat .kb-powered-container-auth-form { align-items: center; color: #676767; cursor: pointer; border-radius: 0 0 5px 5px; display: flex; font-family: "Montserrat", sans-serif !important; font-size: 11px; justify-content: flex-end; padding-top: 6px; text-decoration: none; } #keybe-webchat .kb-px2 { padding: 0 8px 0 8px; } #keybe-webchat .kb-px4 { padding: 0 16px 0 16px; } #keybe-webchat .kb-pointer { cursor: pointer; } #keybe-webchat .kb-reverse { flex-direction: row-reverse; } #keybe-webchat .kb-row { display: flex; flex-direction: row; } #keybe-webchat .kb-spacer { display: flex; flex-grow: 1; } #keybe-webchat .kb-textarea-container { overflow-y: auto; flex: 1 1 auto; flex-grow: 1; min-width: 0; padding: 3px 0 3px 0px; } #keybe-webchat .kb-textarea-container::-webkit-scrollbar { width: 3px; } #keybe-webchat .kb-textarea-container::-webkit-scrollbar-thumb { background-color: #fafafa; } #keybe-webchat .kb-textarea-container [contentEditable=true]:empty:before { content: attr(data-ph); color: rgba(99, 99, 99, 0.705); cursor: text; } #keybe-webchat .kb-textarea-container [contentEditable=false]:empty:before { content: attr(data-ph); color: #C92239; cursor: not-allowed; } #keybe-webchat .kb-textarea { color: black; background-color: rgba(242, 242, 242, 0.4); border-radius: 24px; line-height: 20px; max-height: 100px; max-width: 100%; min-height: 24px; padding: 6px 12px; overflow-x: hidden; overflow-y: auto; white-space: pre-wrap; word-wrap: break-word; } #keybe-webchat .kb-textarea:focus { outline: none; } #keybe-webchat .kb-text-center { text-align: center; } #keybe-webchat .kb-toggle-button { border-radius: 50%; bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-image { bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-button-comfama { border-radius: 3px; bottom: 14px; right: 10px !important; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; box-shadow: 0 1px 6px #d3d3d3, 0 2px 32px #d3d3d3; } #keybe-webchat .kb-drag-zone { height: 100%; flex-shrink: 0; display: flex; position: relative; flex-direction: column; height: 100%; max-height: 100%; overflow-y: auto; animation: scrollIn 0.7s ease-in-out both; } @keyframes scrollIn { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .kb-drop-zone-form { background-color: white; z-index: 99999999999999 !important; position: absolute; width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; } #keybe-webchat .kb-drop-zone-icons { padding: 15px 15px 13px 15px; margin: 10px 10px 3px 10px; border-radius: 50px; min-height: 20px; min-width: 20px; background-color: #d1dae4; color: #aab7c5; } #keybe-webchat .kb-drop-zone-cancel-button { background-color: #aab7c5; border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; margin-right: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-drop-zone__border { align-items: center; box-shadow: -2px 10px 60px -37px rgb(0, 0, 0); border-radius: 8px; box-sizing: border-box; display: flex; flex-direction: column; font-size: 16px; height: 80%; justify-content: center; width: 80%; } #keybe-webchat .drop-zone-preview { border-radius: 8px; max-height: 65%; max-width: 90%; } #keybe-webchat .drop-zone-progress { background-color: grey; border-radius: 30px; box-sizing: border-box; display: flex; align-items: center; margin: 10px; position: relative; width: 90%; overflow: hidden; } #keybe-webchat .kb-drop-zone-button { display: inline-flex; flex-direction: column; justify-content: center; align-items: center; } #keybe-webchat .drop-zone-progress__successful { background-color: #4f8e62; border-radius: 30px; height: 30px; transition: width 0.5s ease; } #keybe-webchat .drop-zone-progress__value { color: white; font-size: 14px; font-weight: normal; position: absolute; text-align: center; width: 100%; } #keybe-webchat .kb-drop-zone-send-button { border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-toggle-button-message { border-radius: 10px; bottom: 32px; box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: pointer; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; } #keybe-webchat .kb-toggle-button-message-comfama { display: none; } #keybe-webchat .kb-toggle-button-left { left: 32px; } #keybe-webchat .kb-toggle-button-right { right: 32px; } #keybe-webchat .kb-toggle-button-message-left { left: 105px; } #keybe-webchat .kb-toggle-button-message-right { right: 105px; } #keybe-webchat .kb-font-weight-bold { font-weight: bold; } #keybe-webchat .black { color: black; } #keybe-webchat .white { color: white; } #keybe-webchat .kb-white--text { color: white !important; } #keybe-webchat .grey { color: #9e9e9e; } #keybe-webchat .red { color: #C92239; } #keybe-webchat ::-webkit-scrollbar { width: 6px !important; height: 6px !important; } #keybe-webchat ::-webkit-scrollbar-thumb { background-color: rgba(0, 0, 0, 0.2); } #keybe-webchat ::-webkit-scrollbar-track { background: hsla(0, 0%, 100%, 0.08); } #keybe-webchat .pswp__ui { z-index: 2147483649 !important; } .vb-checkbox { align-items: center; cursor: pointer; display: flex; flex-direction: row; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .vb-checkbox__checker { align-items: center; background-color: white; border-radius: 4px; box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3) !important; display: flex; font-size: 16px; justify-content: center; margin-right: 8px; min-height: 24px; min-width: 24px; } .tooltip { display: block !important; font-family: "Montserrat", sans-serif !important; font-size: 13px; max-width: 390px; z-index: 2147483649; } .tooltip .tooltip-inner { background: rgba(35, 47, 52, 0.9); color: white; border-radius: 4px; padding: 5px 10px; } .tooltip[x-placement^=top] { margin-bottom: 5px; } .tooltip[x-placement^=bottom] { margin-top: 5px; } .tooltip[x-placement^=right] { margin-left: 5px; } .tooltip[x-placement^=left] { margin-right: 5px; } .tooltip.popover .popover-inner { background: #f9f9f9; color: black; padding: 24px; border-radius: 5px; box-shadow: 0 5px 30px rgba(0, 0, 0, 0.1); } .tooltip.popover .popover-arrow { border-color: #f9f9f9; } .tooltip[aria-hidden=true] { visibility: hidden; opacity: 0; transition: opacity 0.15s, visibility 0.15s; } .tooltip[aria-hidden=false] { visibility: visible; opacity: 1; transition: opacity 0.15s; } .kb-permanent-messages-container { text-align: justify; } .kb-permanent-message { background-color: #e8effb; border-radius: 4px; cursor: default; display: inline-block; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; } .kb-permanent-message a { color: #039be5; text-decoration: none; }.kb-toggle-button__pulse { /* pulse from: https://codepen.io/olam/pen/zcqea */ border-radius: 50%; box-shadow: 0 0 0 rgba(59, 59, 59, 0.4); animation: pulse 2s infinite; } @-webkit-keyframes pulse { 0% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -webkit-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } @keyframes pulse { 0% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -moz-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } .expand-y-enter-active, .expand-y-leave-active { transition: all 0.2s; max-height: 31px; } .expand-y-enter, .expand-y-leave-to { opacity: 0; max-height: 0; } .kb-auth-container { padding: 16px 25px 16px 25px; animation: fadeUp 0.6s ease-in both; animation-delay: 500ms; overflow: auto; } @keyframes fadeUp { from { opacity: 0; transform: translate3d(0, 10%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-button { font-family: "Montserrat", sans-serif !important; background-color: #3b3b3b; border: none; border-radius: 50px; color: white; cursor: pointer; padding: 6px; width: 100%; margin-top: 5px; } .kb-input { background-color: transparent; border: none; border-bottom: 1px solid grey; box-sizing: border-box; font-family: "Montserrat", sans-serif !important; padding: 10px 0 10px 0; width: 100%; color: black; font-size: 13px; } /* Change Autocomplete styles in Chrome*/ input.kb-input:-webkit-autofill, input.kb-input:-webkit-autofill:hover, input.kb-input:-webkit-autofill:focus, textarea.kb-input:-webkit-autofill, textarea.kb-input:-webkit-autofill:hover, textarea.kb-input:-webkit-autofill:focus, select.kb-input:-webkit-autofill, select.kb-input:-webkit-autofill:hover, select.kb-input:-webkit-autofill:focus { border-top: none; border-right: none; border-left: none; border-bottom: 1px solid grey; -webkit-text-fill-color: black; background-color: transparent !important; transition: background-color 5000s ease-in-out 0s; } button.kb-input:focus, input.kb-input:focus, textarea.kb-input:focus, select.kb-input:focus { border: none; border-bottom: 1px solid grey; outline: none; } .terms-and-conditions-settings { z-index: 1 !important; font-size: 12px !important; } .terms-and-conditions-settings a { font-weight: bold; text-decoration: none; z-index: 1 !important; } .vti__dropdown-list { width: 290px !important; overflow-x: hidden !important; } .vti__input { z-index: 1 !important; } .vti__dropdown-list { min-height: 6500px !important; } .vti__dropdown-list.above { top: 33px !important; bottom: 0 !important; } .vb-checkbox__checker { z-index: 1 !important; } .kb-bottom-menu { background-color: #FFFFFF; border-top: 1px solid #BBB; border-radius: 5px; display: flex; flex-direction: column; position: absolute; width: 100%; z-index: 2321321312311; bottom: 0; max-height: 90%; } .kb-bottom-menu__title { color: rgba(0, 0, 0, 0.5); padding-left: 16px; vertical-align: middle; } .kb-bottom-menu__header { background-color: white; cursor: default; border-radius: 10px; margin-top: -10px; align-items: center; display: flex; min-height: 48px; width: 100%; animation: fadeUpHead 0.7s ease-in both; animation-delay: 400ms; } @keyframes fadeUpHead { from { opacity: 0; transform: translate3d(0, 50%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-bottom-menu__footer { min-height: 48px; width: 100%; } .kb-bottom-menu__body { height: 100%; overflow-y: auto; width: 100%; } .kb-bottom-menu__close-button { cursor: pointer; display: flex; padding: 16px; } .kb-customized-question-container { text-align: center; } .kb-chip { background: white; border: solid 1px rgba(0, 0, 0, 0.12); border-radius: 25px; cursor: pointer; display: inline-flex; font-size: 13px; margin-left: 5px; margin-top: 5px; padding: 5px 12px; } .kb-chip img { margin-right: 6px; } .kb-customized-question-title { font-weight: bold; padding: 10px; } .kb-helper-link-out-suggestion { background-color: white; border-radius: 15px; margin: 10px 5px; padding: 5px; } .kb-helper-link-out-suggestion a { color: #039be5 !important; text-decoration: none; } .kb-permanent-messages-container { text-align: justify; } .kb-permanent-message { background-color: #e8effb; border-radius: 4px; cursor: default; display: inline-block; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; } .kb-permanent-message a { color: #039be5; text-decoration: none; } .kb-schedule-alert { background-color: #C92239; color: white; cursor: default; padding: 5px 5px 5px 16px; display: flex; align-items: center; } .kb-schedule-alert__message { margin-left: 10px; padding-right: 16px; text-align: justify; } .kb-schedule-alert__message a { color: white; } .kb-schedule-alert__permanent-message { background: white; border-radius: 4px; cursor: default; display: inline-flex; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; } #keybe-webchat { font-family: "Montserrat", sans-serif !important; font-size: 14px !important; z-index: 214748364 !important; /* AUXILIARES */ /* COLORS */ } #keybe-webchat * { z-index: 214748364; } #keybe-webchat .language-toggle { margin-right: 8px; font-size: 17px; font-weight: bold; } #keybe-webchat .kb-welcome-container { word-break: break-word; align-items: center; display: flex; height: 50%; margin-top: -2px; background: rgba(255, 255, 255, 0); z-index: 2222222222222222300; } #keybe-webchat .kb-welcome-text { padding-right: 20px; padding-left: 20px; font-weight: 600; } #keybe-webchat .kb-fade-in-animation { animation: fadeIn 1s ease-in both; } @keyframes fadeIn { from { opacity: 0; transform: translate3d(0, -20%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-in-animation--delay { animation: fadeIn 0.3s ease-in both; } @keyframes fadeIn { from { opacity: 0; transform: translate3d(0, 30%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-animation { animation: fade 0.3s ease-in both; } @keyframes fade { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .slide-fade-enter-active { transition: all 0.3s ease; } #keybe-webchat .slide-fade-leave-active { transition: all 0.3s ease; } #keybe-webchat .slide-fade-enter, #keybe-webchat .slide-fade-leave-to { transform: translateY(56px); opacity: 0; } #keybe-webchat .fade-enter-active, #keybe-webchat .fade-leave-active { transition: opacity 0.2s; } #keybe-webchat .fade-enter, #keybe-webchat .fade-leave-to { opacity: 0; } #keybe-webchat .cursor-pointer { cursor: pointer; } #keybe-webchat .kb-error--text { color: #C92239 !important; } #keybe-webchat .kb-inactivity-container { align-items: center; background-color: white; border-radius: 5px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 70%; max-width: 92%; padding: 20px; position: fixed; text-align: center; width: 360px; z-index: 2147483648; } #keybe-webchat .kb-inactivity-container-left { left: 16px; } #keybe-webchat .kb-inactivity-container-right { right: 16px; } #keybe-webchat .kb-inactivity-container__logo { max-width: 300px; } #keybe-webchat .kb-inactivity-container__close-button { display: inline-flex; padding: 8px; position: absolute; right: 0; top: 0; } #keybe-webchat .kb-whatsapp-button__container { align-items: center; background-color: transparent; border-radius: 5px; bottom: 16px; cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 320px; overflow-y: hidden; max-width: 92%; padding: 20px; position: fixed; text-align: center; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__chat { width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__whatsApp { background-color: #40C451; width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__close { background-color: transparent; border-width: 4px; border-style: solid; width: 52px; height: 52px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-chat-container { background-color: white; border-radius: 10px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); display: flex; flex-direction: column; height: 85vh; max-height: 552px; max-width: 75vh; position: fixed; width: 340px; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__phone { background-color: transparent; min-width: 64px; min-height: 64px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-phone-button__container { position: relative; } #keybe-webchat .kb-phone-button__phones { position: absolute; top: 6px; width: 230px; border-radius: 50px; height: 64px; padding: 6px; } #keybe-webchat .kb-phone-button__phones div { display: flex; align-items: center; justify-content: center; height: 100%; } #keybe-webchat .kb-phone-button__phones div span { font-size: 13px; font-weight: 400; max-width: 45%; font-family: "Montserrat", sans-serif !important; } #keybe-webchat .kb-phone-button__numbers { display: flex; flex-direction: column; margin-left: 20px; } #keybe-webchat .kb-phone-button__numbers h5 { font-size: 13px; padding: 0; margin: 5px 0; } #keybe-webchat .kb-phone-button__phones-right { left: 80px; } #keybe-webchat .kb-phone-button__phones-left { right: 80px; } #keybe-webchat .kb-chat-container-left { left: 16px; overflow: visible; } #keybe-webchat .kb-chat-container-right { right: 16px; overflow: visible; } #keybe-webchat .kb-chat-conversation { background-color: rgba(242, 242, 242, 0.4); display: flex; flex: 1 1 0; flex-direction: column; overflow-y: auto; padding: 0 5px; } #keybe-webchat .kb-message-error { background-color: #C92239; color: white; font-weight: bold; padding: 5px 5px 5px 16px; z-index: 21474836482; } #keybe-webchat .kb-chat-conversation .kb-message:first-child { margin-top: 6px; } #keybe-webchat .kb-chat-header { align-items: center; border-radius: 10px 10px 0 0; cursor: pointer; display: flex; flex-direction: row; height: 54px; z-index: 214748364; } #keybe-webchat .kb-error-connection { background-color: #C92239; border-radius: 10px; bottom: 32px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: default; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; right: 32px; } #keybe-webchat .kb-footer { background-color: rgba(242, 242, 242, 0.4); min-height: 50px; z-index: 2147483649; } #keybe-webchat .kb-message-box { display: flex; flex-direction: row; max-height: 40px; z-index: 2147483649; border-radius: 60px; margin: 3px 10px 10px 10px; box-shadow: 6px 11px 32px -4px rgb(176, 170, 176); } #keybe-webchat .kb-divider { border-bottom: 1px solid rgba(0, 0, 0, 0.1); } #keybe-webchat .kb-font-weight-bold { font-weight: bold; } #keybe-webchat .kb-message-in { background-color: #e8effb; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; animation: bounce-in 2s both; } #keybe-webchat .kb-message-out { background-color: #cdefe8; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 15px 15px 0px 15px/15px 15px 15px 15px; animation: bounce-out 2s both; } #keybe-webchat .kb-message { display: flex; padding-left: 12px; padding-right: 12px; position: relative; margin-bottom: 6px; } @keyframes bounce-out { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform-origin: 90%; transform: scale(0.1); } } @keyframes bounce-in { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform: scale(0.1); } } #keybe-webchat .kb-message-text { padding: 6px 7px 0px 9px; white-space: pre-wrap; word-wrap: break-word; color: black; } #keybe-webchat .kb-message-text a { color: #039be5; text-decoration: none; } #keybe-webchat .kb-message-text a:hover { text-decoration: underline; } #keybe-webchat .kb-ml2 { margin-left: 8px; } #keybe-webchat .kb-mt2 { margin-top: 8px; } #keybe-webchat .kb-mx2 { margin: 0 8px 0 8px; } #keybe-webchat .kb-my2 { margin-bottom: 8px; margin-top: 8px; } #keybe-webchat .kb-powered-container { align-items: center; border-top: solid 1px rgba(0, 0, 0, 0.12); border-radius: 0 0 5px 5px; display: flex; justify-content: flex-end; min-height: 27px; } #keybe-webchat .kb-powered-container a { color: #676767; font-family: "Montserrat", sans-serif !important; font-size: 11px; padding-right: 8px; text-decoration: none; } #keybe-webchat .kb-powered-container-auth-form { align-items: center; color: #676767; cursor: pointer; border-radius: 0 0 5px 5px; display: flex; font-family: "Montserrat", sans-serif !important; font-size: 11px; justify-content: flex-end; padding-top: 6px; text-decoration: none; } #keybe-webchat .kb-px2 { padding: 0 8px 0 8px; } #keybe-webchat .kb-px4 { padding: 0 16px 0 16px; } #keybe-webchat .kb-pointer { cursor: pointer; } #keybe-webchat .kb-reverse { flex-direction: row-reverse; } #keybe-webchat .kb-row { display: flex; flex-direction: row; } #keybe-webchat .kb-spacer { display: flex; flex-grow: 1; } #keybe-webchat .kb-textarea-container { overflow-y: auto; flex: 1 1 auto; flex-grow: 1; min-width: 0; padding: 3px 0 3px 0px; } #keybe-webchat .kb-textarea-container::-webkit-scrollbar { width: 3px; } #keybe-webchat .kb-textarea-container::-webkit-scrollbar-thumb { background-color: #fafafa; } #keybe-webchat .kb-textarea-container [contentEditable=true]:empty:before { content: attr(data-ph); color: rgba(99, 99, 99, 0.705); cursor: text; } #keybe-webchat .kb-textarea-container [contentEditable=false]:empty:before { content: attr(data-ph); color: #C92239; cursor: not-allowed; } #keybe-webchat .kb-textarea { color: black; background-color: rgba(242, 242, 242, 0.4); border-radius: 24px; line-height: 20px; max-height: 100px; max-width: 100%; min-height: 24px; padding: 6px 12px; overflow-x: hidden; overflow-y: auto; white-space: pre-wrap; word-wrap: break-word; } #keybe-webchat .kb-textarea:focus { outline: none; } #keybe-webchat .kb-text-center { text-align: center; } #keybe-webchat .kb-toggle-button { border-radius: 50%; bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-image { bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-button-comfama { border-radius: 3px; bottom: 14px; right: 10px !important; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; box-shadow: 0 1px 6px #d3d3d3, 0 2px 32px #d3d3d3; } #keybe-webchat .kb-drag-zone { height: 100%; flex-shrink: 0; display: flex; position: relative; flex-direction: column; height: 100%; max-height: 100%; overflow-y: auto; animation: scrollIn 0.7s ease-in-out both; } @keyframes scrollIn { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .kb-drop-zone-form { background-color: white; z-index: 99999999999999 !important; position: absolute; width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; } #keybe-webchat .kb-drop-zone-icons { padding: 15px 15px 13px 15px; margin: 10px 10px 3px 10px; border-radius: 50px; min-height: 20px; min-width: 20px; background-color: #d1dae4; color: #aab7c5; } #keybe-webchat .kb-drop-zone-cancel-button { background-color: #aab7c5; border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; margin-right: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-drop-zone__border { align-items: center; box-shadow: -2px 10px 60px -37px rgb(0, 0, 0); border-radius: 8px; box-sizing: border-box; display: flex; flex-direction: column; font-size: 16px; height: 80%; justify-content: center; width: 80%; } #keybe-webchat .drop-zone-preview { border-radius: 8px; max-height: 65%; max-width: 90%; } #keybe-webchat .drop-zone-progress { background-color: grey; border-radius: 30px; box-sizing: border-box; display: flex; align-items: center; margin: 10px; position: relative; width: 90%; overflow: hidden; } #keybe-webchat .kb-drop-zone-button { display: inline-flex; flex-direction: column; justify-content: center; align-items: center; } #keybe-webchat .drop-zone-progress__successful { background-color: #4f8e62; border-radius: 30px; height: 30px; transition: width 0.5s ease; } #keybe-webchat .drop-zone-progress__value { color: white; font-size: 14px; font-weight: normal; position: absolute; text-align: center; width: 100%; } #keybe-webchat .kb-drop-zone-send-button { border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-toggle-button-message { border-radius: 10px; bottom: 32px; box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: pointer; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; } #keybe-webchat .kb-toggle-button-message-comfama { display: none; } #keybe-webchat .kb-toggle-button-left { left: 32px; } #keybe-webchat .kb-toggle-button-right { right: 32px; } #keybe-webchat .kb-toggle-button-message-left { left: 105px; } #keybe-webchat .kb-toggle-button-message-right { right: 105px; } #keybe-webchat .kb-font-weight-bold { font-weight: bold; } #keybe-webchat .black { color: black; } #keybe-webchat .white { color: white; } #keybe-webchat .kb-white--text { color: white !important; } #keybe-webchat .grey { color: #9e9e9e; } #keybe-webchat .red { color: #C92239; } #keybe-webchat ::-webkit-scrollbar { width: 6px !important; height: 6px !important; } #keybe-webchat ::-webkit-scrollbar-thumb { background-color: rgba(0, 0, 0, 0.2); } #keybe-webchat ::-webkit-scrollbar-track { background: hsla(0, 0%, 100%, 0.08); } #keybe-webchat .pswp__ui { z-index: 2147483649 !important; } .vb-checkbox { align-items: center; cursor: pointer; display: flex; flex-direction: row; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .vb-checkbox__checker { align-items: center; background-color: white; border-radius: 4px; box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3) !important; display: flex; font-size: 16px; justify-content: center; margin-right: 8px; min-height: 24px; min-width: 24px; } .tooltip { display: block !important; font-family: "Montserrat", sans-serif !important; font-size: 13px; max-width: 390px; z-index: 2147483649; } .tooltip .tooltip-inner { background: rgba(35, 47, 52, 0.9); color: white; border-radius: 4px; padding: 5px 10px; } .tooltip[x-placement^=top] { margin-bottom: 5px; } .tooltip[x-placement^=bottom] { margin-top: 5px; } .tooltip[x-placement^=right] { margin-left: 5px; } .tooltip[x-placement^=left] { margin-right: 5px; } .tooltip.popover .popover-inner { background: #f9f9f9; color: black; padding: 24px; border-radius: 5px; box-shadow: 0 5px 30px rgba(0, 0, 0, 0.1); } .tooltip.popover .popover-arrow { border-color: #f9f9f9; } .tooltip[aria-hidden=true] { visibility: hidden; opacity: 0; transition: opacity 0.15s, visibility 0.15s; } .tooltip[aria-hidden=false] { visibility: visible; opacity: 1; transition: opacity 0.15s; } audio { outline: none; min-width: 250px; width: 100%; }.kb-toggle-button__pulse { /* pulse from: https://codepen.io/olam/pen/zcqea */ border-radius: 50%; box-shadow: 0 0 0 rgba(59, 59, 59, 0.4); animation: pulse 2s infinite; } @-webkit-keyframes pulse { 0% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -webkit-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } @keyframes pulse { 0% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -moz-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } .expand-y-enter-active, .expand-y-leave-active { transition: all 0.2s; max-height: 31px; } .expand-y-enter, .expand-y-leave-to { opacity: 0; max-height: 0; } .kb-auth-container { padding: 16px 25px 16px 25px; animation: fadeUp 0.6s ease-in both; animation-delay: 500ms; overflow: auto; } @keyframes fadeUp { from { opacity: 0; transform: translate3d(0, 10%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-button { font-family: "Montserrat", sans-serif !important; background-color: #3b3b3b; border: none; border-radius: 50px; color: white; cursor: pointer; padding: 6px; width: 100%; margin-top: 5px; } .kb-input { background-color: transparent; border: none; border-bottom: 1px solid grey; box-sizing: border-box; font-family: "Montserrat", sans-serif !important; padding: 10px 0 10px 0; width: 100%; color: black; font-size: 13px; } /* Change Autocomplete styles in Chrome*/ input.kb-input:-webkit-autofill, input.kb-input:-webkit-autofill:hover, input.kb-input:-webkit-autofill:focus, textarea.kb-input:-webkit-autofill, textarea.kb-input:-webkit-autofill:hover, textarea.kb-input:-webkit-autofill:focus, select.kb-input:-webkit-autofill, select.kb-input:-webkit-autofill:hover, select.kb-input:-webkit-autofill:focus { border-top: none; border-right: none; border-left: none; border-bottom: 1px solid grey; -webkit-text-fill-color: black; background-color: transparent !important; transition: background-color 5000s ease-in-out 0s; } button.kb-input:focus, input.kb-input:focus, textarea.kb-input:focus, select.kb-input:focus { border: none; border-bottom: 1px solid grey; outline: none; } .terms-and-conditions-settings { z-index: 1 !important; font-size: 12px !important; } .terms-and-conditions-settings a { font-weight: bold; text-decoration: none; z-index: 1 !important; } .vti__dropdown-list { width: 290px !important; overflow-x: hidden !important; } .vti__input { z-index: 1 !important; } .vti__dropdown-list { min-height: 6500px !important; } .vti__dropdown-list.above { top: 33px !important; bottom: 0 !important; } .vb-checkbox__checker { z-index: 1 !important; } .kb-bottom-menu { background-color: #FFFFFF; border-top: 1px solid #BBB; border-radius: 5px; display: flex; flex-direction: column; position: absolute; width: 100%; z-index: 2321321312311; bottom: 0; max-height: 90%; } .kb-bottom-menu__title { color: rgba(0, 0, 0, 0.5); padding-left: 16px; vertical-align: middle; } .kb-bottom-menu__header { background-color: white; cursor: default; border-radius: 10px; margin-top: -10px; align-items: center; display: flex; min-height: 48px; width: 100%; animation: fadeUpHead 0.7s ease-in both; animation-delay: 400ms; } @keyframes fadeUpHead { from { opacity: 0; transform: translate3d(0, 50%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-bottom-menu__footer { min-height: 48px; width: 100%; } .kb-bottom-menu__body { height: 100%; overflow-y: auto; width: 100%; } .kb-bottom-menu__close-button { cursor: pointer; display: flex; padding: 16px; } .kb-customized-question-container { text-align: center; } .kb-chip { background: white; border: solid 1px rgba(0, 0, 0, 0.12); border-radius: 25px; cursor: pointer; display: inline-flex; font-size: 13px; margin-left: 5px; margin-top: 5px; padding: 5px 12px; } .kb-chip img { margin-right: 6px; } .kb-customized-question-title { font-weight: bold; padding: 10px; } .kb-helper-link-out-suggestion { background-color: white; border-radius: 15px; margin: 10px 5px; padding: 5px; } .kb-helper-link-out-suggestion a { color: #039be5 !important; text-decoration: none; } .kb-permanent-messages-container { text-align: justify; } .kb-permanent-message { background-color: #e8effb; border-radius: 4px; cursor: default; display: inline-block; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; } .kb-permanent-message a { color: #039be5; text-decoration: none; } .kb-schedule-alert { background-color: #C92239; color: white; cursor: default; padding: 5px 5px 5px 16px; display: flex; align-items: center; } .kb-schedule-alert__message { margin-left: 10px; padding-right: 16px; text-align: justify; } .kb-schedule-alert__message a { color: white; } .kb-schedule-alert__permanent-message { background: white; border-radius: 4px; cursor: default; display: inline-flex; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; } #keybe-webchat { font-family: "Montserrat", sans-serif !important; font-size: 14px !important; z-index: 214748364 !important; /* AUXILIARES */ /* COLORS */ } #keybe-webchat * { z-index: 214748364; } #keybe-webchat .language-toggle { margin-right: 8px; font-size: 17px; font-weight: bold; } #keybe-webchat .kb-welcome-container { word-break: break-word; align-items: center; display: flex; height: 50%; margin-top: -2px; background: rgba(255, 255, 255, 0); z-index: 2222222222222222300; } #keybe-webchat .kb-welcome-text { padding-right: 20px; padding-left: 20px; font-weight: 600; } #keybe-webchat .kb-fade-in-animation { animation: fadeIn 1s ease-in both; } @keyframes fadeIn { from { opacity: 0; transform: translate3d(0, -20%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-in-animation--delay { animation: fadeIn 0.3s ease-in both; } @keyframes fadeIn { from { opacity: 0; transform: translate3d(0, 30%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-animation { animation: fade 0.3s ease-in both; } @keyframes fade { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .slide-fade-enter-active { transition: all 0.3s ease; } #keybe-webchat .slide-fade-leave-active { transition: all 0.3s ease; } #keybe-webchat .slide-fade-enter, #keybe-webchat .slide-fade-leave-to { transform: translateY(56px); opacity: 0; } #keybe-webchat .fade-enter-active, #keybe-webchat .fade-leave-active { transition: opacity 0.2s; } #keybe-webchat .fade-enter, #keybe-webchat .fade-leave-to { opacity: 0; } #keybe-webchat .cursor-pointer { cursor: pointer; } #keybe-webchat .kb-error--text { color: #C92239 !important; } #keybe-webchat .kb-inactivity-container { align-items: center; background-color: white; border-radius: 5px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 70%; max-width: 92%; padding: 20px; position: fixed; text-align: center; width: 360px; z-index: 2147483648; } #keybe-webchat .kb-inactivity-container-left { left: 16px; } #keybe-webchat .kb-inactivity-container-right { right: 16px; } #keybe-webchat .kb-inactivity-container__logo { max-width: 300px; } #keybe-webchat .kb-inactivity-container__close-button { display: inline-flex; padding: 8px; position: absolute; right: 0; top: 0; } #keybe-webchat .kb-whatsapp-button__container { align-items: center; background-color: transparent; border-radius: 5px; bottom: 16px; cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 320px; overflow-y: hidden; max-width: 92%; padding: 20px; position: fixed; text-align: center; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__chat { width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__whatsApp { background-color: #40C451; width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__close { background-color: transparent; border-width: 4px; border-style: solid; width: 52px; height: 52px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-chat-container { background-color: white; border-radius: 10px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); display: flex; flex-direction: column; height: 85vh; max-height: 552px; max-width: 75vh; position: fixed; width: 340px; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__phone { background-color: transparent; min-width: 64px; min-height: 64px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-phone-button__container { position: relative; } #keybe-webchat .kb-phone-button__phones { position: absolute; top: 6px; width: 230px; border-radius: 50px; height: 64px; padding: 6px; } #keybe-webchat .kb-phone-button__phones div { display: flex; align-items: center; justify-content: center; height: 100%; } #keybe-webchat .kb-phone-button__phones div span { font-size: 13px; font-weight: 400; max-width: 45%; font-family: "Montserrat", sans-serif !important; } #keybe-webchat .kb-phone-button__numbers { display: flex; flex-direction: column; margin-left: 20px; } #keybe-webchat .kb-phone-button__numbers h5 { font-size: 13px; padding: 0; margin: 5px 0; } #keybe-webchat .kb-phone-button__phones-right { left: 80px; } #keybe-webchat .kb-phone-button__phones-left { right: 80px; } #keybe-webchat .kb-chat-container-left { left: 16px; overflow: visible; } #keybe-webchat .kb-chat-container-right { right: 16px; overflow: visible; } #keybe-webchat .kb-chat-conversation { background-color: rgba(242, 242, 242, 0.4); display: flex; flex: 1 1 0; flex-direction: column; overflow-y: auto; padding: 0 5px; } #keybe-webchat .kb-message-error { background-color: #C92239; color: white; font-weight: bold; padding: 5px 5px 5px 16px; z-index: 21474836482; } #keybe-webchat .kb-chat-conversation .kb-message:first-child { margin-top: 6px; } #keybe-webchat .kb-chat-header { align-items: center; border-radius: 10px 10px 0 0; cursor: pointer; display: flex; flex-direction: row; height: 54px; z-index: 214748364; } #keybe-webchat .kb-error-connection { background-color: #C92239; border-radius: 10px; bottom: 32px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: default; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; right: 32px; } #keybe-webchat .kb-footer { background-color: rgba(242, 242, 242, 0.4); min-height: 50px; z-index: 2147483649; } #keybe-webchat .kb-message-box { display: flex; flex-direction: row; max-height: 40px; z-index: 2147483649; border-radius: 60px; margin: 3px 10px 10px 10px; box-shadow: 6px 11px 32px -4px rgb(176, 170, 176); } #keybe-webchat .kb-divider { border-bottom: 1px solid rgba(0, 0, 0, 0.1); } #keybe-webchat .kb-font-weight-bold { font-weight: bold; } #keybe-webchat .kb-message-in { background-color: #e8effb; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; animation: bounce-in 2s both; } #keybe-webchat .kb-message-out { background-color: #cdefe8; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 15px 15px 0px 15px/15px 15px 15px 15px; animation: bounce-out 2s both; } #keybe-webchat .kb-message { display: flex; padding-left: 12px; padding-right: 12px; position: relative; margin-bottom: 6px; } @keyframes bounce-out { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform-origin: 90%; transform: scale(0.1); } } @keyframes bounce-in { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform: scale(0.1); } } #keybe-webchat .kb-message-text { padding: 6px 7px 0px 9px; white-space: pre-wrap; word-wrap: break-word; color: black; } #keybe-webchat .kb-message-text a { color: #039be5; text-decoration: none; } #keybe-webchat .kb-message-text a:hover { text-decoration: underline; } #keybe-webchat .kb-ml2 { margin-left: 8px; } #keybe-webchat .kb-mt2 { margin-top: 8px; } #keybe-webchat .kb-mx2 { margin: 0 8px 0 8px; } #keybe-webchat .kb-my2 { margin-bottom: 8px; margin-top: 8px; } #keybe-webchat .kb-powered-container { align-items: center; border-top: solid 1px rgba(0, 0, 0, 0.12); border-radius: 0 0 5px 5px; display: flex; justify-content: flex-end; min-height: 27px; } #keybe-webchat .kb-powered-container a { color: #676767; font-family: "Montserrat", sans-serif !important; font-size: 11px; padding-right: 8px; text-decoration: none; } #keybe-webchat .kb-powered-container-auth-form { align-items: center; color: #676767; cursor: pointer; border-radius: 0 0 5px 5px; display: flex; font-family: "Montserrat", sans-serif !important; font-size: 11px; justify-content: flex-end; padding-top: 6px; text-decoration: none; } #keybe-webchat .kb-px2 { padding: 0 8px 0 8px; } #keybe-webchat .kb-px4 { padding: 0 16px 0 16px; } #keybe-webchat .kb-pointer { cursor: pointer; } #keybe-webchat .kb-reverse { flex-direction: row-reverse; } #keybe-webchat .kb-row { display: flex; flex-direction: row; } #keybe-webchat .kb-spacer { display: flex; flex-grow: 1; } #keybe-webchat .kb-textarea-container { overflow-y: auto; flex: 1 1 auto; flex-grow: 1; min-width: 0; padding: 3px 0 3px 0px; } #keybe-webchat .kb-textarea-container::-webkit-scrollbar { width: 3px; } #keybe-webchat .kb-textarea-container::-webkit-scrollbar-thumb { background-color: #fafafa; } #keybe-webchat .kb-textarea-container [contentEditable=true]:empty:before { content: attr(data-ph); color: rgba(99, 99, 99, 0.705); cursor: text; } #keybe-webchat .kb-textarea-container [contentEditable=false]:empty:before { content: attr(data-ph); color: #C92239; cursor: not-allowed; } #keybe-webchat .kb-textarea { color: black; background-color: rgba(242, 242, 242, 0.4); border-radius: 24px; line-height: 20px; max-height: 100px; max-width: 100%; min-height: 24px; padding: 6px 12px; overflow-x: hidden; overflow-y: auto; white-space: pre-wrap; word-wrap: break-word; } #keybe-webchat .kb-textarea:focus { outline: none; } #keybe-webchat .kb-text-center { text-align: center; } #keybe-webchat .kb-toggle-button { border-radius: 50%; bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-image { bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-button-comfama { border-radius: 3px; bottom: 14px; right: 10px !important; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; box-shadow: 0 1px 6px #d3d3d3, 0 2px 32px #d3d3d3; } #keybe-webchat .kb-drag-zone { height: 100%; flex-shrink: 0; display: flex; position: relative; flex-direction: column; height: 100%; max-height: 100%; overflow-y: auto; animation: scrollIn 0.7s ease-in-out both; } @keyframes scrollIn { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .kb-drop-zone-form { background-color: white; z-index: 99999999999999 !important; position: absolute; width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; } #keybe-webchat .kb-drop-zone-icons { padding: 15px 15px 13px 15px; margin: 10px 10px 3px 10px; border-radius: 50px; min-height: 20px; min-width: 20px; background-color: #d1dae4; color: #aab7c5; } #keybe-webchat .kb-drop-zone-cancel-button { background-color: #aab7c5; border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; margin-right: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-drop-zone__border { align-items: center; box-shadow: -2px 10px 60px -37px rgb(0, 0, 0); border-radius: 8px; box-sizing: border-box; display: flex; flex-direction: column; font-size: 16px; height: 80%; justify-content: center; width: 80%; } #keybe-webchat .drop-zone-preview { border-radius: 8px; max-height: 65%; max-width: 90%; } #keybe-webchat .drop-zone-progress { background-color: grey; border-radius: 30px; box-sizing: border-box; display: flex; align-items: center; margin: 10px; position: relative; width: 90%; overflow: hidden; } #keybe-webchat .kb-drop-zone-button { display: inline-flex; flex-direction: column; justify-content: center; align-items: center; } #keybe-webchat .drop-zone-progress__successful { background-color: #4f8e62; border-radius: 30px; height: 30px; transition: width 0.5s ease; } #keybe-webchat .drop-zone-progress__value { color: white; font-size: 14px; font-weight: normal; position: absolute; text-align: center; width: 100%; } #keybe-webchat .kb-drop-zone-send-button { border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-toggle-button-message { border-radius: 10px; bottom: 32px; box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: pointer; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; } #keybe-webchat .kb-toggle-button-message-comfama { display: none; } #keybe-webchat .kb-toggle-button-left { left: 32px; } #keybe-webchat .kb-toggle-button-right { right: 32px; } #keybe-webchat .kb-toggle-button-message-left { left: 105px; } #keybe-webchat .kb-toggle-button-message-right { right: 105px; } #keybe-webchat .kb-font-weight-bold { font-weight: bold; } #keybe-webchat .black { color: black; } #keybe-webchat .white { color: white; } #keybe-webchat .kb-white--text { color: white !important; } #keybe-webchat .grey { color: #9e9e9e; } #keybe-webchat .red { color: #C92239; } #keybe-webchat ::-webkit-scrollbar { width: 6px !important; height: 6px !important; } #keybe-webchat ::-webkit-scrollbar-thumb { background-color: rgba(0, 0, 0, 0.2); } #keybe-webchat ::-webkit-scrollbar-track { background: hsla(0, 0%, 100%, 0.08); } #keybe-webchat .pswp__ui { z-index: 2147483649 !important; } .vb-checkbox { align-items: center; cursor: pointer; display: flex; flex-direction: row; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .vb-checkbox__checker { align-items: center; background-color: white; border-radius: 4px; box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3) !important; display: flex; font-size: 16px; justify-content: center; margin-right: 8px; min-height: 24px; min-width: 24px; } .tooltip { display: block !important; font-family: "Montserrat", sans-serif !important; font-size: 13px; max-width: 390px; z-index: 2147483649; } .tooltip .tooltip-inner { background: rgba(35, 47, 52, 0.9); color: white; border-radius: 4px; padding: 5px 10px; } .tooltip[x-placement^=top] { margin-bottom: 5px; } .tooltip[x-placement^=bottom] { margin-top: 5px; } .tooltip[x-placement^=right] { margin-left: 5px; } .tooltip[x-placement^=left] { margin-right: 5px; } .tooltip.popover .popover-inner { background: #f9f9f9; color: black; padding: 24px; border-radius: 5px; box-shadow: 0 5px 30px rgba(0, 0, 0, 0.1); } .tooltip.popover .popover-arrow { border-color: #f9f9f9; } .tooltip[aria-hidden=true] { visibility: hidden; opacity: 0; transition: opacity 0.15s, visibility 0.15s; } .tooltip[aria-hidden=false] { visibility: visible; opacity: 1; transition: opacity 0.15s; } video { outline: none; }.kb-toggle-button__pulse { /* pulse from: https://codepen.io/olam/pen/zcqea */ border-radius: 50%; box-shadow: 0 0 0 rgba(59, 59, 59, 0.4); animation: pulse 2s infinite; } @-webkit-keyframes pulse { 0% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -webkit-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } @keyframes pulse { 0% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -moz-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } .expand-y-enter-active, .expand-y-leave-active { transition: all 0.2s; max-height: 31px; } .expand-y-enter, .expand-y-leave-to { opacity: 0; max-height: 0; } .kb-auth-container { padding: 16px 25px 16px 25px; animation: fadeUp 0.6s ease-in both; animation-delay: 500ms; overflow: auto; } @keyframes fadeUp { from { opacity: 0; transform: translate3d(0, 10%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-button { font-family: "Montserrat", sans-serif !important; background-color: #3b3b3b; border: none; border-radius: 50px; color: white; cursor: pointer; padding: 6px; width: 100%; margin-top: 5px; } .kb-input { background-color: transparent; border: none; border-bottom: 1px solid grey; box-sizing: border-box; font-family: "Montserrat", sans-serif !important; padding: 10px 0 10px 0; width: 100%; color: black; font-size: 13px; } /* Change Autocomplete styles in Chrome*/ input.kb-input:-webkit-autofill, input.kb-input:-webkit-autofill:hover, input.kb-input:-webkit-autofill:focus, textarea.kb-input:-webkit-autofill, textarea.kb-input:-webkit-autofill:hover, textarea.kb-input:-webkit-autofill:focus, select.kb-input:-webkit-autofill, select.kb-input:-webkit-autofill:hover, select.kb-input:-webkit-autofill:focus { border-top: none; border-right: none; border-left: none; border-bottom: 1px solid grey; -webkit-text-fill-color: black; background-color: transparent !important; transition: background-color 5000s ease-in-out 0s; } button.kb-input:focus, input.kb-input:focus, textarea.kb-input:focus, select.kb-input:focus { border: none; border-bottom: 1px solid grey; outline: none; } .terms-and-conditions-settings { z-index: 1 !important; font-size: 12px !important; } .terms-and-conditions-settings a { font-weight: bold; text-decoration: none; z-index: 1 !important; } .vti__dropdown-list { width: 290px !important; overflow-x: hidden !important; } .vti__input { z-index: 1 !important; } .vti__dropdown-list { min-height: 6500px !important; } .vti__dropdown-list.above { top: 33px !important; bottom: 0 !important; } .vb-checkbox__checker { z-index: 1 !important; } .kb-bottom-menu { background-color: #FFFFFF; border-top: 1px solid #BBB; border-radius: 5px; display: flex; flex-direction: column; position: absolute; width: 100%; z-index: 2321321312311; bottom: 0; max-height: 90%; } .kb-bottom-menu__title { color: rgba(0, 0, 0, 0.5); padding-left: 16px; vertical-align: middle; } .kb-bottom-menu__header { background-color: white; cursor: default; border-radius: 10px; margin-top: -10px; align-items: center; display: flex; min-height: 48px; width: 100%; animation: fadeUpHead 0.7s ease-in both; animation-delay: 400ms; } @keyframes fadeUpHead { from { opacity: 0; transform: translate3d(0, 50%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-bottom-menu__footer { min-height: 48px; width: 100%; } .kb-bottom-menu__body { height: 100%; overflow-y: auto; width: 100%; } .kb-bottom-menu__close-button { cursor: pointer; display: flex; padding: 16px; } .kb-customized-question-container { text-align: center; } .kb-chip { background: white; border: solid 1px rgba(0, 0, 0, 0.12); border-radius: 25px; cursor: pointer; display: inline-flex; font-size: 13px; margin-left: 5px; margin-top: 5px; padding: 5px 12px; } .kb-chip img { margin-right: 6px; } .kb-customized-question-title { font-weight: bold; padding: 10px; } .kb-helper-link-out-suggestion { background-color: white; border-radius: 15px; margin: 10px 5px; padding: 5px; } .kb-helper-link-out-suggestion a { color: #039be5 !important; text-decoration: none; } .kb-permanent-messages-container { text-align: justify; } .kb-permanent-message { background-color: #e8effb; border-radius: 4px; cursor: default; display: inline-block; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; } .kb-permanent-message a { color: #039be5; text-decoration: none; } .kb-schedule-alert { background-color: #C92239; color: white; cursor: default; padding: 5px 5px 5px 16px; display: flex; align-items: center; } .kb-schedule-alert__message { margin-left: 10px; padding-right: 16px; text-align: justify; } .kb-schedule-alert__message a { color: white; } .kb-schedule-alert__permanent-message { background: white; border-radius: 4px; cursor: default; display: inline-flex; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; } #keybe-webchat { font-family: "Montserrat", sans-serif !important; font-size: 14px !important; z-index: 214748364 !important; /* AUXILIARES */ /* COLORS */ } #keybe-webchat * { z-index: 214748364; } #keybe-webchat .language-toggle { margin-right: 8px; font-size: 17px; font-weight: bold; } #keybe-webchat .kb-welcome-container { word-break: break-word; align-items: center; display: flex; height: 50%; margin-top: -2px; background: rgba(255, 255, 255, 0); z-index: 2222222222222222300; } #keybe-webchat .kb-welcome-text { padding-right: 20px; padding-left: 20px; font-weight: 600; } #keybe-webchat .kb-fade-in-animation { animation: fadeIn 1s ease-in both; } @keyframes fadeIn { from { opacity: 0; transform: translate3d(0, -20%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-in-animation--delay { animation: fadeIn 0.3s ease-in both; } @keyframes fadeIn { from { opacity: 0; transform: translate3d(0, 30%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-animation { animation: fade 0.3s ease-in both; } @keyframes fade { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .slide-fade-enter-active { transition: all 0.3s ease; } #keybe-webchat .slide-fade-leave-active { transition: all 0.3s ease; } #keybe-webchat .slide-fade-enter, #keybe-webchat .slide-fade-leave-to { transform: translateY(56px); opacity: 0; } #keybe-webchat .fade-enter-active, #keybe-webchat .fade-leave-active { transition: opacity 0.2s; } #keybe-webchat .fade-enter, #keybe-webchat .fade-leave-to { opacity: 0; } #keybe-webchat .cursor-pointer { cursor: pointer; } #keybe-webchat .kb-error--text { color: #C92239 !important; } #keybe-webchat .kb-inactivity-container { align-items: center; background-color: white; border-radius: 5px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 70%; max-width: 92%; padding: 20px; position: fixed; text-align: center; width: 360px; z-index: 2147483648; } #keybe-webchat .kb-inactivity-container-left { left: 16px; } #keybe-webchat .kb-inactivity-container-right { right: 16px; } #keybe-webchat .kb-inactivity-container__logo { max-width: 300px; } #keybe-webchat .kb-inactivity-container__close-button { display: inline-flex; padding: 8px; position: absolute; right: 0; top: 0; } #keybe-webchat .kb-whatsapp-button__container { align-items: center; background-color: transparent; border-radius: 5px; bottom: 16px; cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 320px; overflow-y: hidden; max-width: 92%; padding: 20px; position: fixed; text-align: center; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__chat { width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__whatsApp { background-color: #40C451; width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__close { background-color: transparent; border-width: 4px; border-style: solid; width: 52px; height: 52px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-chat-container { background-color: white; border-radius: 10px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); display: flex; flex-direction: column; height: 85vh; max-height: 552px; max-width: 75vh; position: fixed; width: 340px; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__phone { background-color: transparent; min-width: 64px; min-height: 64px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-phone-button__container { position: relative; } #keybe-webchat .kb-phone-button__phones { position: absolute; top: 6px; width: 230px; border-radius: 50px; height: 64px; padding: 6px; } #keybe-webchat .kb-phone-button__phones div { display: flex; align-items: center; justify-content: center; height: 100%; } #keybe-webchat .kb-phone-button__phones div span { font-size: 13px; font-weight: 400; max-width: 45%; font-family: "Montserrat", sans-serif !important; } #keybe-webchat .kb-phone-button__numbers { display: flex; flex-direction: column; margin-left: 20px; } #keybe-webchat .kb-phone-button__numbers h5 { font-size: 13px; padding: 0; margin: 5px 0; } #keybe-webchat .kb-phone-button__phones-right { left: 80px; } #keybe-webchat .kb-phone-button__phones-left { right: 80px; } #keybe-webchat .kb-chat-container-left { left: 16px; overflow: visible; } #keybe-webchat .kb-chat-container-right { right: 16px; overflow: visible; } #keybe-webchat .kb-chat-conversation { background-color: rgba(242, 242, 242, 0.4); display: flex; flex: 1 1 0; flex-direction: column; overflow-y: auto; padding: 0 5px; } #keybe-webchat .kb-message-error { background-color: #C92239; color: white; font-weight: bold; padding: 5px 5px 5px 16px; z-index: 21474836482; } #keybe-webchat .kb-chat-conversation .kb-message:first-child { margin-top: 6px; } #keybe-webchat .kb-chat-header { align-items: center; border-radius: 10px 10px 0 0; cursor: pointer; display: flex; flex-direction: row; height: 54px; z-index: 214748364; } #keybe-webchat .kb-error-connection { background-color: #C92239; border-radius: 10px; bottom: 32px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: default; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; right: 32px; } #keybe-webchat .kb-footer { background-color: rgba(242, 242, 242, 0.4); min-height: 50px; z-index: 2147483649; } #keybe-webchat .kb-message-box { display: flex; flex-direction: row; max-height: 40px; z-index: 2147483649; border-radius: 60px; margin: 3px 10px 10px 10px; box-shadow: 6px 11px 32px -4px rgb(176, 170, 176); } #keybe-webchat .kb-divider { border-bottom: 1px solid rgba(0, 0, 0, 0.1); } #keybe-webchat .kb-font-weight-bold { font-weight: bold; } #keybe-webchat .kb-message-in { background-color: #e8effb; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; animation: bounce-in 2s both; } #keybe-webchat .kb-message-out { background-color: #cdefe8; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 15px 15px 0px 15px/15px 15px 15px 15px; animation: bounce-out 2s both; } #keybe-webchat .kb-message { display: flex; padding-left: 12px; padding-right: 12px; position: relative; margin-bottom: 6px; } @keyframes bounce-out { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform-origin: 90%; transform: scale(0.1); } } @keyframes bounce-in { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform: scale(0.1); } } #keybe-webchat .kb-message-text { padding: 6px 7px 0px 9px; white-space: pre-wrap; word-wrap: break-word; color: black; } #keybe-webchat .kb-message-text a { color: #039be5; text-decoration: none; } #keybe-webchat .kb-message-text a:hover { text-decoration: underline; } #keybe-webchat .kb-ml2 { margin-left: 8px; } #keybe-webchat .kb-mt2 { margin-top: 8px; } #keybe-webchat .kb-mx2 { margin: 0 8px 0 8px; } #keybe-webchat .kb-my2 { margin-bottom: 8px; margin-top: 8px; } #keybe-webchat .kb-powered-container { align-items: center; border-top: solid 1px rgba(0, 0, 0, 0.12); border-radius: 0 0 5px 5px; display: flex; justify-content: flex-end; min-height: 27px; } #keybe-webchat .kb-powered-container a { color: #676767; font-family: "Montserrat", sans-serif !important; font-size: 11px; padding-right: 8px; text-decoration: none; } #keybe-webchat .kb-powered-container-auth-form { align-items: center; color: #676767; cursor: pointer; border-radius: 0 0 5px 5px; display: flex; font-family: "Montserrat", sans-serif !important; font-size: 11px; justify-content: flex-end; padding-top: 6px; text-decoration: none; } #keybe-webchat .kb-px2 { padding: 0 8px 0 8px; } #keybe-webchat .kb-px4 { padding: 0 16px 0 16px; } #keybe-webchat .kb-pointer { cursor: pointer; } #keybe-webchat .kb-reverse { flex-direction: row-reverse; } #keybe-webchat .kb-row { display: flex; flex-direction: row; } #keybe-webchat .kb-spacer { display: flex; flex-grow: 1; } #keybe-webchat .kb-textarea-container { overflow-y: auto; flex: 1 1 auto; flex-grow: 1; min-width: 0; padding: 3px 0 3px 0px; } #keybe-webchat .kb-textarea-container::-webkit-scrollbar { width: 3px; } #keybe-webchat .kb-textarea-container::-webkit-scrollbar-thumb { background-color: #fafafa; } #keybe-webchat .kb-textarea-container [contentEditable=true]:empty:before { content: attr(data-ph); color: rgba(99, 99, 99, 0.705); cursor: text; } #keybe-webchat .kb-textarea-container [contentEditable=false]:empty:before { content: attr(data-ph); color: #C92239; cursor: not-allowed; } #keybe-webchat .kb-textarea { color: black; background-color: rgba(242, 242, 242, 0.4); border-radius: 24px; line-height: 20px; max-height: 100px; max-width: 100%; min-height: 24px; padding: 6px 12px; overflow-x: hidden; overflow-y: auto; white-space: pre-wrap; word-wrap: break-word; } #keybe-webchat .kb-textarea:focus { outline: none; } #keybe-webchat .kb-text-center { text-align: center; } #keybe-webchat .kb-toggle-button { border-radius: 50%; bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-image { bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-button-comfama { border-radius: 3px; bottom: 14px; right: 10px !important; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; box-shadow: 0 1px 6px #d3d3d3, 0 2px 32px #d3d3d3; } #keybe-webchat .kb-drag-zone { height: 100%; flex-shrink: 0; display: flex; position: relative; flex-direction: column; height: 100%; max-height: 100%; overflow-y: auto; animation: scrollIn 0.7s ease-in-out both; } @keyframes scrollIn { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .kb-drop-zone-form { background-color: white; z-index: 99999999999999 !important; position: absolute; width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; } #keybe-webchat .kb-drop-zone-icons { padding: 15px 15px 13px 15px; margin: 10px 10px 3px 10px; border-radius: 50px; min-height: 20px; min-width: 20px; background-color: #d1dae4; color: #aab7c5; } #keybe-webchat .kb-drop-zone-cancel-button { background-color: #aab7c5; border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; margin-right: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-drop-zone__border { align-items: center; box-shadow: -2px 10px 60px -37px rgb(0, 0, 0); border-radius: 8px; box-sizing: border-box; display: flex; flex-direction: column; font-size: 16px; height: 80%; justify-content: center; width: 80%; } #keybe-webchat .drop-zone-preview { border-radius: 8px; max-height: 65%; max-width: 90%; } #keybe-webchat .drop-zone-progress { background-color: grey; border-radius: 30px; box-sizing: border-box; display: flex; align-items: center; margin: 10px; position: relative; width: 90%; overflow: hidden; } #keybe-webchat .kb-drop-zone-button { display: inline-flex; flex-direction: column; justify-content: center; align-items: center; } #keybe-webchat .drop-zone-progress__successful { background-color: #4f8e62; border-radius: 30px; height: 30px; transition: width 0.5s ease; } #keybe-webchat .drop-zone-progress__value { color: white; font-size: 14px; font-weight: normal; position: absolute; text-align: center; width: 100%; } #keybe-webchat .kb-drop-zone-send-button { border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-toggle-button-message { border-radius: 10px; bottom: 32px; box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: pointer; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; } #keybe-webchat .kb-toggle-button-message-comfama { display: none; } #keybe-webchat .kb-toggle-button-left { left: 32px; } #keybe-webchat .kb-toggle-button-right { right: 32px; } #keybe-webchat .kb-toggle-button-message-left { left: 105px; } #keybe-webchat .kb-toggle-button-message-right { right: 105px; } #keybe-webchat .kb-font-weight-bold { font-weight: bold; } #keybe-webchat .black { color: black; } #keybe-webchat .white { color: white; } #keybe-webchat .kb-white--text { color: white !important; } #keybe-webchat .grey { color: #9e9e9e; } #keybe-webchat .red { color: #C92239; } #keybe-webchat ::-webkit-scrollbar { width: 6px !important; height: 6px !important; } #keybe-webchat ::-webkit-scrollbar-thumb { background-color: rgba(0, 0, 0, 0.2); } #keybe-webchat ::-webkit-scrollbar-track { background: hsla(0, 0%, 100%, 0.08); } #keybe-webchat .pswp__ui { z-index: 2147483649 !important; } .vb-checkbox { align-items: center; cursor: pointer; display: flex; flex-direction: row; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .vb-checkbox__checker { align-items: center; background-color: white; border-radius: 4px; box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3) !important; display: flex; font-size: 16px; justify-content: center; margin-right: 8px; min-height: 24px; min-width: 24px; } .tooltip { display: block !important; font-family: "Montserrat", sans-serif !important; font-size: 13px; max-width: 390px; z-index: 2147483649; } .tooltip .tooltip-inner { background: rgba(35, 47, 52, 0.9); color: white; border-radius: 4px; padding: 5px 10px; } .tooltip[x-placement^=top] { margin-bottom: 5px; } .tooltip[x-placement^=bottom] { margin-top: 5px; } .tooltip[x-placement^=right] { margin-left: 5px; } .tooltip[x-placement^=left] { margin-right: 5px; } .tooltip.popover .popover-inner { background: #f9f9f9; color: black; padding: 24px; border-radius: 5px; box-shadow: 0 5px 30px rgba(0, 0, 0, 0.1); } .tooltip.popover .popover-arrow { border-color: #f9f9f9; } .tooltip[aria-hidden=true] { visibility: hidden; opacity: 0; transition: opacity 0.15s, visibility 0.15s; } .tooltip[aria-hidden=false] { visibility: visible; opacity: 1; transition: opacity 0.15s; } .kb-helper-link-out-suggestion { background-color: white; border-radius: 15px; margin: 10px 5px; padding: 5px; } .kb-helper-link-out-suggestion a { color: #039be5 !important; text-decoration: none; }.kb-toggle-button__pulse { /* pulse from: https://codepen.io/olam/pen/zcqea */ border-radius: 50%; box-shadow: 0 0 0 rgba(59, 59, 59, 0.4); animation: pulse 2s infinite; } @-webkit-keyframes pulse { 0% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -webkit-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } @keyframes pulse { 0% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -moz-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } .expand-y-enter-active, .expand-y-leave-active { transition: all 0.2s; max-height: 31px; } .expand-y-enter, .expand-y-leave-to { opacity: 0; max-height: 0; } .kb-auth-container { padding: 16px 25px 16px 25px; animation: fadeUp 0.6s ease-in both; animation-delay: 500ms; overflow: auto; } @keyframes fadeUp { from { opacity: 0; transform: translate3d(0, 10%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-button { font-family: "Montserrat", sans-serif !important; background-color: #3b3b3b; border: none; border-radius: 50px; color: white; cursor: pointer; padding: 6px; width: 100%; margin-top: 5px; } .kb-input { background-color: transparent; border: none; border-bottom: 1px solid grey; box-sizing: border-box; font-family: "Montserrat", sans-serif !important; padding: 10px 0 10px 0; width: 100%; color: black; font-size: 13px; } /* Change Autocomplete styles in Chrome*/ input.kb-input:-webkit-autofill, input.kb-input:-webkit-autofill:hover, input.kb-input:-webkit-autofill:focus, textarea.kb-input:-webkit-autofill, textarea.kb-input:-webkit-autofill:hover, textarea.kb-input:-webkit-autofill:focus, select.kb-input:-webkit-autofill, select.kb-input:-webkit-autofill:hover, select.kb-input:-webkit-autofill:focus { border-top: none; border-right: none; border-left: none; border-bottom: 1px solid grey; -webkit-text-fill-color: black; background-color: transparent !important; transition: background-color 5000s ease-in-out 0s; } button.kb-input:focus, input.kb-input:focus, textarea.kb-input:focus, select.kb-input:focus { border: none; border-bottom: 1px solid grey; outline: none; } .terms-and-conditions-settings { z-index: 1 !important; font-size: 12px !important; } .terms-and-conditions-settings a { font-weight: bold; text-decoration: none; z-index: 1 !important; } .vti__dropdown-list { width: 290px !important; overflow-x: hidden !important; } .vti__input { z-index: 1 !important; } .vti__dropdown-list { min-height: 6500px !important; } .vti__dropdown-list.above { top: 33px !important; bottom: 0 !important; } .vb-checkbox__checker { z-index: 1 !important; } .kb-bottom-menu { background-color: #FFFFFF; border-top: 1px solid #BBB; border-radius: 5px; display: flex; flex-direction: column; position: absolute; width: 100%; z-index: 2321321312311; bottom: 0; max-height: 90%; } .kb-bottom-menu__title { color: rgba(0, 0, 0, 0.5); padding-left: 16px; vertical-align: middle; } .kb-bottom-menu__header { background-color: white; cursor: default; border-radius: 10px; margin-top: -10px; align-items: center; display: flex; min-height: 48px; width: 100%; animation: fadeUpHead 0.7s ease-in both; animation-delay: 400ms; } @keyframes fadeUpHead { from { opacity: 0; transform: translate3d(0, 50%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-bottom-menu__footer { min-height: 48px; width: 100%; } .kb-bottom-menu__body { height: 100%; overflow-y: auto; width: 100%; } .kb-bottom-menu__close-button { cursor: pointer; display: flex; padding: 16px; } .kb-customized-question-container { text-align: center; } .kb-chip { background: white; border: solid 1px rgba(0, 0, 0, 0.12); border-radius: 25px; cursor: pointer; display: inline-flex; font-size: 13px; margin-left: 5px; margin-top: 5px; padding: 5px 12px; } .kb-chip img { margin-right: 6px; } .kb-customized-question-title { font-weight: bold; padding: 10px; } .kb-helper-link-out-suggestion { background-color: white; border-radius: 15px; margin: 10px 5px; padding: 5px; } .kb-helper-link-out-suggestion a { color: #039be5 !important; text-decoration: none; } .kb-permanent-messages-container { text-align: justify; } .kb-permanent-message { background-color: #e8effb; border-radius: 4px; cursor: default; display: inline-block; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; } .kb-permanent-message a { color: #039be5; text-decoration: none; } .kb-schedule-alert { background-color: #C92239; color: white; cursor: default; padding: 5px 5px 5px 16px; display: flex; align-items: center; } .kb-schedule-alert__message { margin-left: 10px; padding-right: 16px; text-align: justify; } .kb-schedule-alert__message a { color: white; } .kb-schedule-alert__permanent-message { background: white; border-radius: 4px; cursor: default; display: inline-flex; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; } #keybe-webchat { font-family: "Montserrat", sans-serif !important; font-size: 14px !important; z-index: 214748364 !important; /* AUXILIARES */ /* COLORS */ } #keybe-webchat * { z-index: 214748364; } #keybe-webchat .language-toggle { margin-right: 8px; font-size: 17px; font-weight: bold; } #keybe-webchat .kb-welcome-container { word-break: break-word; align-items: center; display: flex; height: 50%; margin-top: -2px; background: rgba(255, 255, 255, 0); z-index: 2222222222222222300; } #keybe-webchat .kb-welcome-text { padding-right: 20px; padding-left: 20px; font-weight: 600; } #keybe-webchat .kb-fade-in-animation { animation: fadeIn 1s ease-in both; } @keyframes fadeIn { from { opacity: 0; transform: translate3d(0, -20%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-in-animation--delay { animation: fadeIn 0.3s ease-in both; } @keyframes fadeIn { from { opacity: 0; transform: translate3d(0, 30%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-animation { animation: fade 0.3s ease-in both; } @keyframes fade { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .slide-fade-enter-active { transition: all 0.3s ease; } #keybe-webchat .slide-fade-leave-active { transition: all 0.3s ease; } #keybe-webchat .slide-fade-enter, #keybe-webchat .slide-fade-leave-to { transform: translateY(56px); opacity: 0; } #keybe-webchat .fade-enter-active, #keybe-webchat .fade-leave-active { transition: opacity 0.2s; } #keybe-webchat .fade-enter, #keybe-webchat .fade-leave-to { opacity: 0; } #keybe-webchat .cursor-pointer { cursor: pointer; } #keybe-webchat .kb-error--text { color: #C92239 !important; } #keybe-webchat .kb-inactivity-container { align-items: center; background-color: white; border-radius: 5px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 70%; max-width: 92%; padding: 20px; position: fixed; text-align: center; width: 360px; z-index: 2147483648; } #keybe-webchat .kb-inactivity-container-left { left: 16px; } #keybe-webchat .kb-inactivity-container-right { right: 16px; } #keybe-webchat .kb-inactivity-container__logo { max-width: 300px; } #keybe-webchat .kb-inactivity-container__close-button { display: inline-flex; padding: 8px; position: absolute; right: 0; top: 0; } #keybe-webchat .kb-whatsapp-button__container { align-items: center; background-color: transparent; border-radius: 5px; bottom: 16px; cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 320px; overflow-y: hidden; max-width: 92%; padding: 20px; position: fixed; text-align: center; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__chat { width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__whatsApp { background-color: #40C451; width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__close { background-color: transparent; border-width: 4px; border-style: solid; width: 52px; height: 52px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-chat-container { background-color: white; border-radius: 10px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); display: flex; flex-direction: column; height: 85vh; max-height: 552px; max-width: 75vh; position: fixed; width: 340px; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__phone { background-color: transparent; min-width: 64px; min-height: 64px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-phone-button__container { position: relative; } #keybe-webchat .kb-phone-button__phones { position: absolute; top: 6px; width: 230px; border-radius: 50px; height: 64px; padding: 6px; } #keybe-webchat .kb-phone-button__phones div { display: flex; align-items: center; justify-content: center; height: 100%; } #keybe-webchat .kb-phone-button__phones div span { font-size: 13px; font-weight: 400; max-width: 45%; font-family: "Montserrat", sans-serif !important; } #keybe-webchat .kb-phone-button__numbers { display: flex; flex-direction: column; margin-left: 20px; } #keybe-webchat .kb-phone-button__numbers h5 { font-size: 13px; padding: 0; margin: 5px 0; } #keybe-webchat .kb-phone-button__phones-right { left: 80px; } #keybe-webchat .kb-phone-button__phones-left { right: 80px; } #keybe-webchat .kb-chat-container-left { left: 16px; overflow: visible; } #keybe-webchat .kb-chat-container-right { right: 16px; overflow: visible; } #keybe-webchat .kb-chat-conversation { background-color: rgba(242, 242, 242, 0.4); display: flex; flex: 1 1 0; flex-direction: column; overflow-y: auto; padding: 0 5px; } #keybe-webchat .kb-message-error { background-color: #C92239; color: white; font-weight: bold; padding: 5px 5px 5px 16px; z-index: 21474836482; } #keybe-webchat .kb-chat-conversation .kb-message:first-child { margin-top: 6px; } #keybe-webchat .kb-chat-header { align-items: center; border-radius: 10px 10px 0 0; cursor: pointer; display: flex; flex-direction: row; height: 54px; z-index: 214748364; } #keybe-webchat .kb-error-connection { background-color: #C92239; border-radius: 10px; bottom: 32px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: default; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; right: 32px; } #keybe-webchat .kb-footer { background-color: rgba(242, 242, 242, 0.4); min-height: 50px; z-index: 2147483649; } #keybe-webchat .kb-message-box { display: flex; flex-direction: row; max-height: 40px; z-index: 2147483649; border-radius: 60px; margin: 3px 10px 10px 10px; box-shadow: 6px 11px 32px -4px rgb(176, 170, 176); } #keybe-webchat .kb-divider { border-bottom: 1px solid rgba(0, 0, 0, 0.1); } #keybe-webchat .kb-font-weight-bold { font-weight: bold; } #keybe-webchat .kb-message-in { background-color: #e8effb; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; animation: bounce-in 2s both; } #keybe-webchat .kb-message-out { background-color: #cdefe8; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 15px 15px 0px 15px/15px 15px 15px 15px; animation: bounce-out 2s both; } #keybe-webchat .kb-message { display: flex; padding-left: 12px; padding-right: 12px; position: relative; margin-bottom: 6px; } @keyframes bounce-out { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform-origin: 90%; transform: scale(0.1); } } @keyframes bounce-in { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform: scale(0.1); } } #keybe-webchat .kb-message-text { padding: 6px 7px 0px 9px; white-space: pre-wrap; word-wrap: break-word; color: black; } #keybe-webchat .kb-message-text a { color: #039be5; text-decoration: none; } #keybe-webchat .kb-message-text a:hover { text-decoration: underline; } #keybe-webchat .kb-ml2 { margin-left: 8px; } #keybe-webchat .kb-mt2 { margin-top: 8px; } #keybe-webchat .kb-mx2 { margin: 0 8px 0 8px; } #keybe-webchat .kb-my2 { margin-bottom: 8px; margin-top: 8px; } #keybe-webchat .kb-powered-container { align-items: center; border-top: solid 1px rgba(0, 0, 0, 0.12); border-radius: 0 0 5px 5px; display: flex; justify-content: flex-end; min-height: 27px; } #keybe-webchat .kb-powered-container a { color: #676767; font-family: "Montserrat", sans-serif !important; font-size: 11px; padding-right: 8px; text-decoration: none; } #keybe-webchat .kb-powered-container-auth-form { align-items: center; color: #676767; cursor: pointer; border-radius: 0 0 5px 5px; display: flex; font-family: "Montserrat", sans-serif !important; font-size: 11px; justify-content: flex-end; padding-top: 6px; text-decoration: none; } #keybe-webchat .kb-px2 { padding: 0 8px 0 8px; } #keybe-webchat .kb-px4 { padding: 0 16px 0 16px; } #keybe-webchat .kb-pointer { cursor: pointer; } #keybe-webchat .kb-reverse { flex-direction: row-reverse; } #keybe-webchat .kb-row { display: flex; flex-direction: row; } #keybe-webchat .kb-spacer { display: flex; flex-grow: 1; } #keybe-webchat .kb-textarea-container { overflow-y: auto; flex: 1 1 auto; flex-grow: 1; min-width: 0; padding: 3px 0 3px 0px; } #keybe-webchat .kb-textarea-container::-webkit-scrollbar { width: 3px; } #keybe-webchat .kb-textarea-container::-webkit-scrollbar-thumb { background-color: #fafafa; } #keybe-webchat .kb-textarea-container [contentEditable=true]:empty:before { content: attr(data-ph); color: rgba(99, 99, 99, 0.705); cursor: text; } #keybe-webchat .kb-textarea-container [contentEditable=false]:empty:before { content: attr(data-ph); color: #C92239; cursor: not-allowed; } #keybe-webchat .kb-textarea { color: black; background-color: rgba(242, 242, 242, 0.4); border-radius: 24px; line-height: 20px; max-height: 100px; max-width: 100%; min-height: 24px; padding: 6px 12px; overflow-x: hidden; overflow-y: auto; white-space: pre-wrap; word-wrap: break-word; } #keybe-webchat .kb-textarea:focus { outline: none; } #keybe-webchat .kb-text-center { text-align: center; } #keybe-webchat .kb-toggle-button { border-radius: 50%; bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-image { bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-button-comfama { border-radius: 3px; bottom: 14px; right: 10px !important; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; box-shadow: 0 1px 6px #d3d3d3, 0 2px 32px #d3d3d3; } #keybe-webchat .kb-drag-zone { height: 100%; flex-shrink: 0; display: flex; position: relative; flex-direction: column; height: 100%; max-height: 100%; overflow-y: auto; animation: scrollIn 0.7s ease-in-out both; } @keyframes scrollIn { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .kb-drop-zone-form { background-color: white; z-index: 99999999999999 !important; position: absolute; width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; } #keybe-webchat .kb-drop-zone-icons { padding: 15px 15px 13px 15px; margin: 10px 10px 3px 10px; border-radius: 50px; min-height: 20px; min-width: 20px; background-color: #d1dae4; color: #aab7c5; } #keybe-webchat .kb-drop-zone-cancel-button { background-color: #aab7c5; border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; margin-right: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-drop-zone__border { align-items: center; box-shadow: -2px 10px 60px -37px rgb(0, 0, 0); border-radius: 8px; box-sizing: border-box; display: flex; flex-direction: column; font-size: 16px; height: 80%; justify-content: center; width: 80%; } #keybe-webchat .drop-zone-preview { border-radius: 8px; max-height: 65%; max-width: 90%; } #keybe-webchat .drop-zone-progress { background-color: grey; border-radius: 30px; box-sizing: border-box; display: flex; align-items: center; margin: 10px; position: relative; width: 90%; overflow: hidden; } #keybe-webchat .kb-drop-zone-button { display: inline-flex; flex-direction: column; justify-content: center; align-items: center; } #keybe-webchat .drop-zone-progress__successful { background-color: #4f8e62; border-radius: 30px; height: 30px; transition: width 0.5s ease; } #keybe-webchat .drop-zone-progress__value { color: white; font-size: 14px; font-weight: normal; position: absolute; text-align: center; width: 100%; } #keybe-webchat .kb-drop-zone-send-button { border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-toggle-button-message { border-radius: 10px; bottom: 32px; box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: pointer; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; } #keybe-webchat .kb-toggle-button-message-comfama { display: none; } #keybe-webchat .kb-toggle-button-left { left: 32px; } #keybe-webchat .kb-toggle-button-right { right: 32px; } #keybe-webchat .kb-toggle-button-message-left { left: 105px; } #keybe-webchat .kb-toggle-button-message-right { right: 105px; } #keybe-webchat .kb-font-weight-bold { font-weight: bold; } #keybe-webchat .black { color: black; } #keybe-webchat .white { color: white; } #keybe-webchat .kb-white--text { color: white !important; } #keybe-webchat .grey { color: #9e9e9e; } #keybe-webchat .red { color: #C92239; } #keybe-webchat ::-webkit-scrollbar { width: 6px !important; height: 6px !important; } #keybe-webchat ::-webkit-scrollbar-thumb { background-color: rgba(0, 0, 0, 0.2); } #keybe-webchat ::-webkit-scrollbar-track { background: hsla(0, 0%, 100%, 0.08); } #keybe-webchat .pswp__ui { z-index: 2147483649 !important; } .vb-checkbox { align-items: center; cursor: pointer; display: flex; flex-direction: row; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .vb-checkbox__checker { align-items: center; background-color: white; border-radius: 4px; box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3) !important; display: flex; font-size: 16px; justify-content: center; margin-right: 8px; min-height: 24px; min-width: 24px; } .tooltip { display: block !important; font-family: "Montserrat", sans-serif !important; font-size: 13px; max-width: 390px; z-index: 2147483649; } .tooltip .tooltip-inner { background: rgba(35, 47, 52, 0.9); color: white; border-radius: 4px; padding: 5px 10px; } .tooltip[x-placement^=top] { margin-bottom: 5px; } .tooltip[x-placement^=bottom] { margin-top: 5px; } .tooltip[x-placement^=right] { margin-left: 5px; } .tooltip[x-placement^=left] { margin-right: 5px; } .tooltip.popover .popover-inner { background: #f9f9f9; color: black; padding: 24px; border-radius: 5px; box-shadow: 0 5px 30px rgba(0, 0, 0, 0.1); } .tooltip.popover .popover-arrow { border-color: #f9f9f9; } .tooltip[aria-hidden=true] { visibility: hidden; opacity: 0; transition: opacity 0.15s, visibility 0.15s; } .tooltip[aria-hidden=false] { visibility: visible; opacity: 1; transition: opacity 0.15s; } img.kb-emoji { margin: 6px; height: 24px; width: 24px; }.kb-toggle-button__pulse { /* pulse from: https://codepen.io/olam/pen/zcqea */ border-radius: 50%; box-shadow: 0 0 0 rgba(59, 59, 59, 0.4); animation: pulse 2s infinite; } @-webkit-keyframes pulse { 0% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -webkit-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } @keyframes pulse { 0% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -moz-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } .expand-y-enter-active, .expand-y-leave-active { transition: all 0.2s; max-height: 31px; } .expand-y-enter, .expand-y-leave-to { opacity: 0; max-height: 0; } .kb-auth-container { padding: 16px 25px 16px 25px; animation: fadeUp 0.6s ease-in both; animation-delay: 500ms; overflow: auto; } @keyframes fadeUp { from { opacity: 0; transform: translate3d(0, 10%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-button { font-family: "Montserrat", sans-serif !important; background-color: #3b3b3b; border: none; border-radius: 50px; color: white; cursor: pointer; padding: 6px; width: 100%; margin-top: 5px; } .kb-input { background-color: transparent; border: none; border-bottom: 1px solid grey; box-sizing: border-box; font-family: "Montserrat", sans-serif !important; padding: 10px 0 10px 0; width: 100%; color: black; font-size: 13px; } /* Change Autocomplete styles in Chrome*/ input.kb-input:-webkit-autofill, input.kb-input:-webkit-autofill:hover, input.kb-input:-webkit-autofill:focus, textarea.kb-input:-webkit-autofill, textarea.kb-input:-webkit-autofill:hover, textarea.kb-input:-webkit-autofill:focus, select.kb-input:-webkit-autofill, select.kb-input:-webkit-autofill:hover, select.kb-input:-webkit-autofill:focus { border-top: none; border-right: none; border-left: none; border-bottom: 1px solid grey; -webkit-text-fill-color: black; background-color: transparent !important; transition: background-color 5000s ease-in-out 0s; } button.kb-input:focus, input.kb-input:focus, textarea.kb-input:focus, select.kb-input:focus { border: none; border-bottom: 1px solid grey; outline: none; } .terms-and-conditions-settings { z-index: 1 !important; font-size: 12px !important; } .terms-and-conditions-settings a { font-weight: bold; text-decoration: none; z-index: 1 !important; } .vti__dropdown-list { width: 290px !important; overflow-x: hidden !important; } .vti__input { z-index: 1 !important; } .vti__dropdown-list { min-height: 6500px !important; } .vti__dropdown-list.above { top: 33px !important; bottom: 0 !important; } .vb-checkbox__checker { z-index: 1 !important; } .kb-bottom-menu { background-color: #FFFFFF; border-top: 1px solid #BBB; border-radius: 5px; display: flex; flex-direction: column; position: absolute; width: 100%; z-index: 2321321312311; bottom: 0; max-height: 90%; } .kb-bottom-menu__title { color: rgba(0, 0, 0, 0.5); padding-left: 16px; vertical-align: middle; } .kb-bottom-menu__header { background-color: white; cursor: default; border-radius: 10px; margin-top: -10px; align-items: center; display: flex; min-height: 48px; width: 100%; animation: fadeUpHead 0.7s ease-in both; animation-delay: 400ms; } @keyframes fadeUpHead { from { opacity: 0; transform: translate3d(0, 50%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-bottom-menu__footer { min-height: 48px; width: 100%; } .kb-bottom-menu__body { height: 100%; overflow-y: auto; width: 100%; } .kb-bottom-menu__close-button { cursor: pointer; display: flex; padding: 16px; } .kb-customized-question-container { text-align: center; } .kb-chip { background: white; border: solid 1px rgba(0, 0, 0, 0.12); border-radius: 25px; cursor: pointer; display: inline-flex; font-size: 13px; margin-left: 5px; margin-top: 5px; padding: 5px 12px; } .kb-chip img { margin-right: 6px; } .kb-customized-question-title { font-weight: bold; padding: 10px; } .kb-helper-link-out-suggestion { background-color: white; border-radius: 15px; margin: 10px 5px; padding: 5px; } .kb-helper-link-out-suggestion a { color: #039be5 !important; text-decoration: none; } .kb-permanent-messages-container { text-align: justify; } .kb-permanent-message { background-color: #e8effb; border-radius: 4px; cursor: default; display: inline-block; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; } .kb-permanent-message a { color: #039be5; text-decoration: none; } .kb-schedule-alert { background-color: #C92239; color: white; cursor: default; padding: 5px 5px 5px 16px; display: flex; align-items: center; } .kb-schedule-alert__message { margin-left: 10px; padding-right: 16px; text-align: justify; } .kb-schedule-alert__message a { color: white; } .kb-schedule-alert__permanent-message { background: white; border-radius: 4px; cursor: default; display: inline-flex; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; } #keybe-webchat { font-family: "Montserrat", sans-serif !important; font-size: 14px !important; z-index: 214748364 !important; /* AUXILIARES */ /* COLORS */ } #keybe-webchat * { z-index: 214748364; } #keybe-webchat .language-toggle { margin-right: 8px; font-size: 17px; font-weight: bold; } #keybe-webchat .kb-welcome-container { word-break: break-word; align-items: center; display: flex; height: 50%; margin-top: -2px; background: rgba(255, 255, 255, 0); z-index: 2222222222222222300; } #keybe-webchat .kb-welcome-text { padding-right: 20px; padding-left: 20px; font-weight: 600; } #keybe-webchat .kb-fade-in-animation { animation: fadeIn 1s ease-in both; } @keyframes fadeIn { from { opacity: 0; transform: translate3d(0, -20%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-in-animation--delay { animation: fadeIn 0.3s ease-in both; } @keyframes fadeIn { from { opacity: 0; transform: translate3d(0, 30%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-animation { animation: fade 0.3s ease-in both; } @keyframes fade { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .slide-fade-enter-active { transition: all 0.3s ease; } #keybe-webchat .slide-fade-leave-active { transition: all 0.3s ease; } #keybe-webchat .slide-fade-enter, #keybe-webchat .slide-fade-leave-to { transform: translateY(56px); opacity: 0; } #keybe-webchat .fade-enter-active, #keybe-webchat .fade-leave-active { transition: opacity 0.2s; } #keybe-webchat .fade-enter, #keybe-webchat .fade-leave-to { opacity: 0; } #keybe-webchat .cursor-pointer { cursor: pointer; } #keybe-webchat .kb-error--text { color: #C92239 !important; } #keybe-webchat .kb-inactivity-container { align-items: center; background-color: white; border-radius: 5px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 70%; max-width: 92%; padding: 20px; position: fixed; text-align: center; width: 360px; z-index: 2147483648; } #keybe-webchat .kb-inactivity-container-left { left: 16px; } #keybe-webchat .kb-inactivity-container-right { right: 16px; } #keybe-webchat .kb-inactivity-container__logo { max-width: 300px; } #keybe-webchat .kb-inactivity-container__close-button { display: inline-flex; padding: 8px; position: absolute; right: 0; top: 0; } #keybe-webchat .kb-whatsapp-button__container { align-items: center; background-color: transparent; border-radius: 5px; bottom: 16px; cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 320px; overflow-y: hidden; max-width: 92%; padding: 20px; position: fixed; text-align: center; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__chat { width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__whatsApp { background-color: #40C451; width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__close { background-color: transparent; border-width: 4px; border-style: solid; width: 52px; height: 52px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-chat-container { background-color: white; border-radius: 10px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); display: flex; flex-direction: column; height: 85vh; max-height: 552px; max-width: 75vh; position: fixed; width: 340px; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__phone { background-color: transparent; min-width: 64px; min-height: 64px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-phone-button__container { position: relative; } #keybe-webchat .kb-phone-button__phones { position: absolute; top: 6px; width: 230px; border-radius: 50px; height: 64px; padding: 6px; } #keybe-webchat .kb-phone-button__phones div { display: flex; align-items: center; justify-content: center; height: 100%; } #keybe-webchat .kb-phone-button__phones div span { font-size: 13px; font-weight: 400; max-width: 45%; font-family: "Montserrat", sans-serif !important; } #keybe-webchat .kb-phone-button__numbers { display: flex; flex-direction: column; margin-left: 20px; } #keybe-webchat .kb-phone-button__numbers h5 { font-size: 13px; padding: 0; margin: 5px 0; } #keybe-webchat .kb-phone-button__phones-right { left: 80px; } #keybe-webchat .kb-phone-button__phones-left { right: 80px; } #keybe-webchat .kb-chat-container-left { left: 16px; overflow: visible; } #keybe-webchat .kb-chat-container-right { right: 16px; overflow: visible; } #keybe-webchat .kb-chat-conversation { background-color: rgba(242, 242, 242, 0.4); display: flex; flex: 1 1 0; flex-direction: column; overflow-y: auto; padding: 0 5px; } #keybe-webchat .kb-message-error { background-color: #C92239; color: white; font-weight: bold; padding: 5px 5px 5px 16px; z-index: 21474836482; } #keybe-webchat .kb-chat-conversation .kb-message:first-child { margin-top: 6px; } #keybe-webchat .kb-chat-header { align-items: center; border-radius: 10px 10px 0 0; cursor: pointer; display: flex; flex-direction: row; height: 54px; z-index: 214748364; } #keybe-webchat .kb-error-connection { background-color: #C92239; border-radius: 10px; bottom: 32px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: default; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; right: 32px; } #keybe-webchat .kb-footer { background-color: rgba(242, 242, 242, 0.4); min-height: 50px; z-index: 2147483649; } #keybe-webchat .kb-message-box { display: flex; flex-direction: row; max-height: 40px; z-index: 2147483649; border-radius: 60px; margin: 3px 10px 10px 10px; box-shadow: 6px 11px 32px -4px rgb(176, 170, 176); } #keybe-webchat .kb-divider { border-bottom: 1px solid rgba(0, 0, 0, 0.1); } #keybe-webchat .kb-font-weight-bold { font-weight: bold; } #keybe-webchat .kb-message-in { background-color: #e8effb; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; animation: bounce-in 2s both; } #keybe-webchat .kb-message-out { background-color: #cdefe8; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 15px 15px 0px 15px/15px 15px 15px 15px; animation: bounce-out 2s both; } #keybe-webchat .kb-message { display: flex; padding-left: 12px; padding-right: 12px; position: relative; margin-bottom: 6px; } @keyframes bounce-out { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform-origin: 90%; transform: scale(0.1); } } @keyframes bounce-in { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform: scale(0.1); } } #keybe-webchat .kb-message-text { padding: 6px 7px 0px 9px; white-space: pre-wrap; word-wrap: break-word; color: black; } #keybe-webchat .kb-message-text a { color: #039be5; text-decoration: none; } #keybe-webchat .kb-message-text a:hover { text-decoration: underline; } #keybe-webchat .kb-ml2 { margin-left: 8px; } #keybe-webchat .kb-mt2 { margin-top: 8px; } #keybe-webchat .kb-mx2 { margin: 0 8px 0 8px; } #keybe-webchat .kb-my2 { margin-bottom: 8px; margin-top: 8px; } #keybe-webchat .kb-powered-container { align-items: center; border-top: solid 1px rgba(0, 0, 0, 0.12); border-radius: 0 0 5px 5px; display: flex; justify-content: flex-end; min-height: 27px; } #keybe-webchat .kb-powered-container a { color: #676767; font-family: "Montserrat", sans-serif !important; font-size: 11px; padding-right: 8px; text-decoration: none; } #keybe-webchat .kb-powered-container-auth-form { align-items: center; color: #676767; cursor: pointer; border-radius: 0 0 5px 5px; display: flex; font-family: "Montserrat", sans-serif !important; font-size: 11px; justify-content: flex-end; padding-top: 6px; text-decoration: none; } #keybe-webchat .kb-px2 { padding: 0 8px 0 8px; } #keybe-webchat .kb-px4 { padding: 0 16px 0 16px; } #keybe-webchat .kb-pointer { cursor: pointer; } #keybe-webchat .kb-reverse { flex-direction: row-reverse; } #keybe-webchat .kb-row { display: flex; flex-direction: row; } #keybe-webchat .kb-spacer { display: flex; flex-grow: 1; } #keybe-webchat .kb-textarea-container { overflow-y: auto; flex: 1 1 auto; flex-grow: 1; min-width: 0; padding: 3px 0 3px 0px; } #keybe-webchat .kb-textarea-container::-webkit-scrollbar { width: 3px; } #keybe-webchat .kb-textarea-container::-webkit-scrollbar-thumb { background-color: #fafafa; } #keybe-webchat .kb-textarea-container [contentEditable=true]:empty:before { content: attr(data-ph); color: rgba(99, 99, 99, 0.705); cursor: text; } #keybe-webchat .kb-textarea-container [contentEditable=false]:empty:before { content: attr(data-ph); color: #C92239; cursor: not-allowed; } #keybe-webchat .kb-textarea { color: black; background-color: rgba(242, 242, 242, 0.4); border-radius: 24px; line-height: 20px; max-height: 100px; max-width: 100%; min-height: 24px; padding: 6px 12px; overflow-x: hidden; overflow-y: auto; white-space: pre-wrap; word-wrap: break-word; } #keybe-webchat .kb-textarea:focus { outline: none; } #keybe-webchat .kb-text-center { text-align: center; } #keybe-webchat .kb-toggle-button { border-radius: 50%; bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-image { bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-button-comfama { border-radius: 3px; bottom: 14px; right: 10px !important; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; box-shadow: 0 1px 6px #d3d3d3, 0 2px 32px #d3d3d3; } #keybe-webchat .kb-drag-zone { height: 100%; flex-shrink: 0; display: flex; position: relative; flex-direction: column; height: 100%; max-height: 100%; overflow-y: auto; animation: scrollIn 0.7s ease-in-out both; } @keyframes scrollIn { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .kb-drop-zone-form { background-color: white; z-index: 99999999999999 !important; position: absolute; width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; } #keybe-webchat .kb-drop-zone-icons { padding: 15px 15px 13px 15px; margin: 10px 10px 3px 10px; border-radius: 50px; min-height: 20px; min-width: 20px; background-color: #d1dae4; color: #aab7c5; } #keybe-webchat .kb-drop-zone-cancel-button { background-color: #aab7c5; border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; margin-right: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-drop-zone__border { align-items: center; box-shadow: -2px 10px 60px -37px rgb(0, 0, 0); border-radius: 8px; box-sizing: border-box; display: flex; flex-direction: column; font-size: 16px; height: 80%; justify-content: center; width: 80%; } #keybe-webchat .drop-zone-preview { border-radius: 8px; max-height: 65%; max-width: 90%; } #keybe-webchat .drop-zone-progress { background-color: grey; border-radius: 30px; box-sizing: border-box; display: flex; align-items: center; margin: 10px; position: relative; width: 90%; overflow: hidden; } #keybe-webchat .kb-drop-zone-button { display: inline-flex; flex-direction: column; justify-content: center; align-items: center; } #keybe-webchat .drop-zone-progress__successful { background-color: #4f8e62; border-radius: 30px; height: 30px; transition: width 0.5s ease; } #keybe-webchat .drop-zone-progress__value { color: white; font-size: 14px; font-weight: normal; position: absolute; text-align: center; width: 100%; } #keybe-webchat .kb-drop-zone-send-button { border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-toggle-button-message { border-radius: 10px; bottom: 32px; box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: pointer; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; } #keybe-webchat .kb-toggle-button-message-comfama { display: none; } #keybe-webchat .kb-toggle-button-left { left: 32px; } #keybe-webchat .kb-toggle-button-right { right: 32px; } #keybe-webchat .kb-toggle-button-message-left { left: 105px; } #keybe-webchat .kb-toggle-button-message-right { right: 105px; } #keybe-webchat .kb-font-weight-bold { font-weight: bold; } #keybe-webchat .black { color: black; } #keybe-webchat .white { color: white; } #keybe-webchat .kb-white--text { color: white !important; } #keybe-webchat .grey { color: #9e9e9e; } #keybe-webchat .red { color: #C92239; } #keybe-webchat ::-webkit-scrollbar { width: 6px !important; height: 6px !important; } #keybe-webchat ::-webkit-scrollbar-thumb { background-color: rgba(0, 0, 0, 0.2); } #keybe-webchat ::-webkit-scrollbar-track { background: hsla(0, 0%, 100%, 0.08); } #keybe-webchat .pswp__ui { z-index: 2147483649 !important; } .vb-checkbox { align-items: center; cursor: pointer; display: flex; flex-direction: row; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .vb-checkbox__checker { align-items: center; background-color: white; border-radius: 4px; box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3) !important; display: flex; font-size: 16px; justify-content: center; margin-right: 8px; min-height: 24px; min-width: 24px; } .tooltip { display: block !important; font-family: "Montserrat", sans-serif !important; font-size: 13px; max-width: 390px; z-index: 2147483649; } .tooltip .tooltip-inner { background: rgba(35, 47, 52, 0.9); color: white; border-radius: 4px; padding: 5px 10px; } .tooltip[x-placement^=top] { margin-bottom: 5px; } .tooltip[x-placement^=bottom] { margin-top: 5px; } .tooltip[x-placement^=right] { margin-left: 5px; } .tooltip[x-placement^=left] { margin-right: 5px; } .tooltip.popover .popover-inner { background: #f9f9f9; color: black; padding: 24px; border-radius: 5px; box-shadow: 0 5px 30px rgba(0, 0, 0, 0.1); } .tooltip.popover .popover-arrow { border-color: #f9f9f9; } .tooltip[aria-hidden=true] { visibility: hidden; opacity: 0; transition: opacity 0.15s, visibility 0.15s; } .tooltip[aria-hidden=false] { visibility: visible; opacity: 1; transition: opacity 0.15s; } .kb-helpers-container { margin-bottom: 6px; } .kb-message-date-container { display: flex; align-items: center; padding-left: 12px; padding-right: 12px; } .kb-caption { font-size: 11px !important; font-weight: 400; color: rgba(0, 0, 0, 0.45); letter-spacing: 0.0333333333em !important; line-height: 17px; } img.emoji { width: 1.5em; height: 1.5em; vertical-align: middle; }.kb-toggle-button__pulse { /* pulse from: https://codepen.io/olam/pen/zcqea */ border-radius: 50%; box-shadow: 0 0 0 rgba(59, 59, 59, 0.4); animation: pulse 2s infinite; } @-webkit-keyframes pulse { 0% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -webkit-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } @keyframes pulse { 0% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -moz-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } .expand-y-enter-active, .expand-y-leave-active { transition: all 0.2s; max-height: 31px; } .expand-y-enter, .expand-y-leave-to { opacity: 0; max-height: 0; } .kb-auth-container { padding: 16px 25px 16px 25px; animation: fadeUp 0.6s ease-in both; animation-delay: 500ms; overflow: auto; } @keyframes fadeUp { from { opacity: 0; transform: translate3d(0, 10%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-button { font-family: "Montserrat", sans-serif !important; background-color: #3b3b3b; border: none; border-radius: 50px; color: white; cursor: pointer; padding: 6px; width: 100%; margin-top: 5px; } .kb-input { background-color: transparent; border: none; border-bottom: 1px solid grey; box-sizing: border-box; font-family: "Montserrat", sans-serif !important; padding: 10px 0 10px 0; width: 100%; color: black; font-size: 13px; } /* Change Autocomplete styles in Chrome*/ input.kb-input:-webkit-autofill, input.kb-input:-webkit-autofill:hover, input.kb-input:-webkit-autofill:focus, textarea.kb-input:-webkit-autofill, textarea.kb-input:-webkit-autofill:hover, textarea.kb-input:-webkit-autofill:focus, select.kb-input:-webkit-autofill, select.kb-input:-webkit-autofill:hover, select.kb-input:-webkit-autofill:focus { border-top: none; border-right: none; border-left: none; border-bottom: 1px solid grey; -webkit-text-fill-color: black; background-color: transparent !important; transition: background-color 5000s ease-in-out 0s; } button.kb-input:focus, input.kb-input:focus, textarea.kb-input:focus, select.kb-input:focus { border: none; border-bottom: 1px solid grey; outline: none; } .terms-and-conditions-settings { z-index: 1 !important; font-size: 12px !important; } .terms-and-conditions-settings a { font-weight: bold; text-decoration: none; z-index: 1 !important; } .vti__dropdown-list { width: 290px !important; overflow-x: hidden !important; } .vti__input { z-index: 1 !important; } .vti__dropdown-list { min-height: 6500px !important; } .vti__dropdown-list.above { top: 33px !important; bottom: 0 !important; } .vb-checkbox__checker { z-index: 1 !important; } .kb-bottom-menu { background-color: #FFFFFF; border-top: 1px solid #BBB; border-radius: 5px; display: flex; flex-direction: column; position: absolute; width: 100%; z-index: 2321321312311; bottom: 0; max-height: 90%; } .kb-bottom-menu__title { color: rgba(0, 0, 0, 0.5); padding-left: 16px; vertical-align: middle; } .kb-bottom-menu__header { background-color: white; cursor: default; border-radius: 10px; margin-top: -10px; align-items: center; display: flex; min-height: 48px; width: 100%; animation: fadeUpHead 0.7s ease-in both; animation-delay: 400ms; } @keyframes fadeUpHead { from { opacity: 0; transform: translate3d(0, 50%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-bottom-menu__footer { min-height: 48px; width: 100%; } .kb-bottom-menu__body { height: 100%; overflow-y: auto; width: 100%; } .kb-bottom-menu__close-button { cursor: pointer; display: flex; padding: 16px; } .kb-customized-question-container { text-align: center; } .kb-chip { background: white; border: solid 1px rgba(0, 0, 0, 0.12); border-radius: 25px; cursor: pointer; display: inline-flex; font-size: 13px; margin-left: 5px; margin-top: 5px; padding: 5px 12px; } .kb-chip img { margin-right: 6px; } .kb-customized-question-title { font-weight: bold; padding: 10px; } .kb-helper-link-out-suggestion { background-color: white; border-radius: 15px; margin: 10px 5px; padding: 5px; } .kb-helper-link-out-suggestion a { color: #039be5 !important; text-decoration: none; } .kb-permanent-messages-container { text-align: justify; } .kb-permanent-message { background-color: #e8effb; border-radius: 4px; cursor: default; display: inline-block; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; } .kb-permanent-message a { color: #039be5; text-decoration: none; } .kb-schedule-alert { background-color: #C92239; color: white; cursor: default; padding: 5px 5px 5px 16px; display: flex; align-items: center; } .kb-schedule-alert__message { margin-left: 10px; padding-right: 16px; text-align: justify; } .kb-schedule-alert__message a { color: white; } .kb-schedule-alert__permanent-message { background: white; border-radius: 4px; cursor: default; display: inline-flex; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; } #keybe-webchat { font-family: "Montserrat", sans-serif !important; font-size: 14px !important; z-index: 214748364 !important; /* AUXILIARES */ /* COLORS */ } #keybe-webchat * { z-index: 214748364; } #keybe-webchat .language-toggle { margin-right: 8px; font-size: 17px; font-weight: bold; } #keybe-webchat .kb-welcome-container { word-break: break-word; align-items: center; display: flex; height: 50%; margin-top: -2px; background: rgba(255, 255, 255, 0); z-index: 2222222222222222300; } #keybe-webchat .kb-welcome-text { padding-right: 20px; padding-left: 20px; font-weight: 600; } #keybe-webchat .kb-fade-in-animation { animation: fadeIn 1s ease-in both; } @keyframes fadeIn { from { opacity: 0; transform: translate3d(0, -20%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-in-animation--delay { animation: fadeIn 0.3s ease-in both; } @keyframes fadeIn { from { opacity: 0; transform: translate3d(0, 30%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-animation { animation: fade 0.3s ease-in both; } @keyframes fade { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .slide-fade-enter-active { transition: all 0.3s ease; } #keybe-webchat .slide-fade-leave-active { transition: all 0.3s ease; } #keybe-webchat .slide-fade-enter, #keybe-webchat .slide-fade-leave-to { transform: translateY(56px); opacity: 0; } #keybe-webchat .fade-enter-active, #keybe-webchat .fade-leave-active { transition: opacity 0.2s; } #keybe-webchat .fade-enter, #keybe-webchat .fade-leave-to { opacity: 0; } #keybe-webchat .cursor-pointer { cursor: pointer; } #keybe-webchat .kb-error--text { color: #C92239 !important; } #keybe-webchat .kb-inactivity-container { align-items: center; background-color: white; border-radius: 5px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 70%; max-width: 92%; padding: 20px; position: fixed; text-align: center; width: 360px; z-index: 2147483648; } #keybe-webchat .kb-inactivity-container-left { left: 16px; } #keybe-webchat .kb-inactivity-container-right { right: 16px; } #keybe-webchat .kb-inactivity-container__logo { max-width: 300px; } #keybe-webchat .kb-inactivity-container__close-button { display: inline-flex; padding: 8px; position: absolute; right: 0; top: 0; } #keybe-webchat .kb-whatsapp-button__container { align-items: center; background-color: transparent; border-radius: 5px; bottom: 16px; cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 320px; overflow-y: hidden; max-width: 92%; padding: 20px; position: fixed; text-align: center; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__chat { width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__whatsApp { background-color: #40C451; width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__close { background-color: transparent; border-width: 4px; border-style: solid; width: 52px; height: 52px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-chat-container { background-color: white; border-radius: 10px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); display: flex; flex-direction: column; height: 85vh; max-height: 552px; max-width: 75vh; position: fixed; width: 340px; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__phone { background-color: transparent; min-width: 64px; min-height: 64px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-phone-button__container { position: relative; } #keybe-webchat .kb-phone-button__phones { position: absolute; top: 6px; width: 230px; border-radius: 50px; height: 64px; padding: 6px; } #keybe-webchat .kb-phone-button__phones div { display: flex; align-items: center; justify-content: center; height: 100%; } #keybe-webchat .kb-phone-button__phones div span { font-size: 13px; font-weight: 400; max-width: 45%; font-family: "Montserrat", sans-serif !important; } #keybe-webchat .kb-phone-button__numbers { display: flex; flex-direction: column; margin-left: 20px; } #keybe-webchat .kb-phone-button__numbers h5 { font-size: 13px; padding: 0; margin: 5px 0; } #keybe-webchat .kb-phone-button__phones-right { left: 80px; } #keybe-webchat .kb-phone-button__phones-left { right: 80px; } #keybe-webchat .kb-chat-container-left { left: 16px; overflow: visible; } #keybe-webchat .kb-chat-container-right { right: 16px; overflow: visible; } #keybe-webchat .kb-chat-conversation { background-color: rgba(242, 242, 242, 0.4); display: flex; flex: 1 1 0; flex-direction: column; overflow-y: auto; padding: 0 5px; } #keybe-webchat .kb-message-error { background-color: #C92239; color: white; font-weight: bold; padding: 5px 5px 5px 16px; z-index: 21474836482; } #keybe-webchat .kb-chat-conversation .kb-message:first-child { margin-top: 6px; } #keybe-webchat .kb-chat-header { align-items: center; border-radius: 10px 10px 0 0; cursor: pointer; display: flex; flex-direction: row; height: 54px; z-index: 214748364; } #keybe-webchat .kb-error-connection { background-color: #C92239; border-radius: 10px; bottom: 32px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: default; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; right: 32px; } #keybe-webchat .kb-footer { background-color: rgba(242, 242, 242, 0.4); min-height: 50px; z-index: 2147483649; } #keybe-webchat .kb-message-box { display: flex; flex-direction: row; max-height: 40px; z-index: 2147483649; border-radius: 60px; margin: 3px 10px 10px 10px; box-shadow: 6px 11px 32px -4px rgb(176, 170, 176); } #keybe-webchat .kb-divider { border-bottom: 1px solid rgba(0, 0, 0, 0.1); } #keybe-webchat .kb-font-weight-bold { font-weight: bold; } #keybe-webchat .kb-message-in { background-color: #e8effb; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; animation: bounce-in 2s both; } #keybe-webchat .kb-message-out { background-color: #cdefe8; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 15px 15px 0px 15px/15px 15px 15px 15px; animation: bounce-out 2s both; } #keybe-webchat .kb-message { display: flex; padding-left: 12px; padding-right: 12px; position: relative; margin-bottom: 6px; } @keyframes bounce-out { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform-origin: 90%; transform: scale(0.1); } } @keyframes bounce-in { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform: scale(0.1); } } #keybe-webchat .kb-message-text { padding: 6px 7px 0px 9px; white-space: pre-wrap; word-wrap: break-word; color: black; } #keybe-webchat .kb-message-text a { color: #039be5; text-decoration: none; } #keybe-webchat .kb-message-text a:hover { text-decoration: underline; } #keybe-webchat .kb-ml2 { margin-left: 8px; } #keybe-webchat .kb-mt2 { margin-top: 8px; } #keybe-webchat .kb-mx2 { margin: 0 8px 0 8px; } #keybe-webchat .kb-my2 { margin-bottom: 8px; margin-top: 8px; } #keybe-webchat .kb-powered-container { align-items: center; border-top: solid 1px rgba(0, 0, 0, 0.12); border-radius: 0 0 5px 5px; display: flex; justify-content: flex-end; min-height: 27px; } #keybe-webchat .kb-powered-container a { color: #676767; font-family: "Montserrat", sans-serif !important; font-size: 11px; padding-right: 8px; text-decoration: none; } #keybe-webchat .kb-powered-container-auth-form { align-items: center; color: #676767; cursor: pointer; border-radius: 0 0 5px 5px; display: flex; font-family: "Montserrat", sans-serif !important; font-size: 11px; justify-content: flex-end; padding-top: 6px; text-decoration: none; } #keybe-webchat .kb-px2 { padding: 0 8px 0 8px; } #keybe-webchat .kb-px4 { padding: 0 16px 0 16px; } #keybe-webchat .kb-pointer { cursor: pointer; } #keybe-webchat .kb-reverse { flex-direction: row-reverse; } #keybe-webchat .kb-row { display: flex; flex-direction: row; } #keybe-webchat .kb-spacer { display: flex; flex-grow: 1; } #keybe-webchat .kb-textarea-container { overflow-y: auto; flex: 1 1 auto; flex-grow: 1; min-width: 0; padding: 3px 0 3px 0px; } #keybe-webchat .kb-textarea-container::-webkit-scrollbar { width: 3px; } #keybe-webchat .kb-textarea-container::-webkit-scrollbar-thumb { background-color: #fafafa; } #keybe-webchat .kb-textarea-container [contentEditable=true]:empty:before { content: attr(data-ph); color: rgba(99, 99, 99, 0.705); cursor: text; } #keybe-webchat .kb-textarea-container [contentEditable=false]:empty:before { content: attr(data-ph); color: #C92239; cursor: not-allowed; } #keybe-webchat .kb-textarea { color: black; background-color: rgba(242, 242, 242, 0.4); border-radius: 24px; line-height: 20px; max-height: 100px; max-width: 100%; min-height: 24px; padding: 6px 12px; overflow-x: hidden; overflow-y: auto; white-space: pre-wrap; word-wrap: break-word; } #keybe-webchat .kb-textarea:focus { outline: none; } #keybe-webchat .kb-text-center { text-align: center; } #keybe-webchat .kb-toggle-button { border-radius: 50%; bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-image { bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-button-comfama { border-radius: 3px; bottom: 14px; right: 10px !important; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; box-shadow: 0 1px 6px #d3d3d3, 0 2px 32px #d3d3d3; } #keybe-webchat .kb-drag-zone { height: 100%; flex-shrink: 0; display: flex; position: relative; flex-direction: column; height: 100%; max-height: 100%; overflow-y: auto; animation: scrollIn 0.7s ease-in-out both; } @keyframes scrollIn { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .kb-drop-zone-form { background-color: white; z-index: 99999999999999 !important; position: absolute; width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; } #keybe-webchat .kb-drop-zone-icons { padding: 15px 15px 13px 15px; margin: 10px 10px 3px 10px; border-radius: 50px; min-height: 20px; min-width: 20px; background-color: #d1dae4; color: #aab7c5; } #keybe-webchat .kb-drop-zone-cancel-button { background-color: #aab7c5; border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; margin-right: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-drop-zone__border { align-items: center; box-shadow: -2px 10px 60px -37px rgb(0, 0, 0); border-radius: 8px; box-sizing: border-box; display: flex; flex-direction: column; font-size: 16px; height: 80%; justify-content: center; width: 80%; } #keybe-webchat .drop-zone-preview { border-radius: 8px; max-height: 65%; max-width: 90%; } #keybe-webchat .drop-zone-progress { background-color: grey; border-radius: 30px; box-sizing: border-box; display: flex; align-items: center; margin: 10px; position: relative; width: 90%; overflow: hidden; } #keybe-webchat .kb-drop-zone-button { display: inline-flex; flex-direction: column; justify-content: center; align-items: center; } #keybe-webchat .drop-zone-progress__successful { background-color: #4f8e62; border-radius: 30px; height: 30px; transition: width 0.5s ease; } #keybe-webchat .drop-zone-progress__value { color: white; font-size: 14px; font-weight: normal; position: absolute; text-align: center; width: 100%; } #keybe-webchat .kb-drop-zone-send-button { border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-toggle-button-message { border-radius: 10px; bottom: 32px; box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: pointer; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; } #keybe-webchat .kb-toggle-button-message-comfama { display: none; } #keybe-webchat .kb-toggle-button-left { left: 32px; } #keybe-webchat .kb-toggle-button-right { right: 32px; } #keybe-webchat .kb-toggle-button-message-left { left: 105px; } #keybe-webchat .kb-toggle-button-message-right { right: 105px; } #keybe-webchat .kb-font-weight-bold { font-weight: bold; } #keybe-webchat .black { color: black; } #keybe-webchat .white { color: white; } #keybe-webchat .kb-white--text { color: white !important; } #keybe-webchat .grey { color: #9e9e9e; } #keybe-webchat .red { color: #C92239; } #keybe-webchat ::-webkit-scrollbar { width: 6px !important; height: 6px !important; } #keybe-webchat ::-webkit-scrollbar-thumb { background-color: rgba(0, 0, 0, 0.2); } #keybe-webchat ::-webkit-scrollbar-track { background: hsla(0, 0%, 100%, 0.08); } #keybe-webchat .pswp__ui { z-index: 2147483649 !important; } .vb-checkbox { align-items: center; cursor: pointer; display: flex; flex-direction: row; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .vb-checkbox__checker { align-items: center; background-color: white; border-radius: 4px; box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3) !important; display: flex; font-size: 16px; justify-content: center; margin-right: 8px; min-height: 24px; min-width: 24px; } .tooltip { display: block !important; font-family: "Montserrat", sans-serif !important; font-size: 13px; max-width: 390px; z-index: 2147483649; } .tooltip .tooltip-inner { background: rgba(35, 47, 52, 0.9); color: white; border-radius: 4px; padding: 5px 10px; } .tooltip[x-placement^=top] { margin-bottom: 5px; } .tooltip[x-placement^=bottom] { margin-top: 5px; } .tooltip[x-placement^=right] { margin-left: 5px; } .tooltip[x-placement^=left] { margin-right: 5px; } .tooltip.popover .popover-inner { background: #f9f9f9; color: black; padding: 24px; border-radius: 5px; box-shadow: 0 5px 30px rgba(0, 0, 0, 0.1); } .tooltip.popover .popover-arrow { border-color: #f9f9f9; } .tooltip[aria-hidden=true] { visibility: hidden; opacity: 0; transition: opacity 0.15s, visibility 0.15s; } .tooltip[aria-hidden=false] { visibility: visible; opacity: 1; transition: opacity 0.15s; } img.kb-emoji { margin: 6px; height: 24px; width: 24px; }.kb-toggle-button__pulse { /* pulse from: https://codepen.io/olam/pen/zcqea */ border-radius: 50%; box-shadow: 0 0 0 rgba(59, 59, 59, 0.4); animation: pulse 2s infinite; } @-webkit-keyframes pulse { 0% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -webkit-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } @keyframes pulse { 0% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -moz-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } .expand-y-enter-active, .expand-y-leave-active { transition: all 0.2s; max-height: 31px; } .expand-y-enter, .expand-y-leave-to { opacity: 0; max-height: 0; } .kb-auth-container { padding: 16px 25px 16px 25px; animation: fadeUp 0.6s ease-in both; animation-delay: 500ms; overflow: auto; } @keyframes fadeUp { from { opacity: 0; transform: translate3d(0, 10%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-button { font-family: "Montserrat", sans-serif !important; background-color: #3b3b3b; border: none; border-radius: 50px; color: white; cursor: pointer; padding: 6px; width: 100%; margin-top: 5px; } .kb-input { background-color: transparent; border: none; border-bottom: 1px solid grey; box-sizing: border-box; font-family: "Montserrat", sans-serif !important; padding: 10px 0 10px 0; width: 100%; color: black; font-size: 13px; } /* Change Autocomplete styles in Chrome*/ input.kb-input:-webkit-autofill, input.kb-input:-webkit-autofill:hover, input.kb-input:-webkit-autofill:focus, textarea.kb-input:-webkit-autofill, textarea.kb-input:-webkit-autofill:hover, textarea.kb-input:-webkit-autofill:focus, select.kb-input:-webkit-autofill, select.kb-input:-webkit-autofill:hover, select.kb-input:-webkit-autofill:focus { border-top: none; border-right: none; border-left: none; border-bottom: 1px solid grey; -webkit-text-fill-color: black; background-color: transparent !important; transition: background-color 5000s ease-in-out 0s; } button.kb-input:focus, input.kb-input:focus, textarea.kb-input:focus, select.kb-input:focus { border: none; border-bottom: 1px solid grey; outline: none; } .terms-and-conditions-settings { z-index: 1 !important; font-size: 12px !important; } .terms-and-conditions-settings a { font-weight: bold; text-decoration: none; z-index: 1 !important; } .vti__dropdown-list { width: 290px !important; overflow-x: hidden !important; } .vti__input { z-index: 1 !important; } .vti__dropdown-list { min-height: 6500px !important; } .vti__dropdown-list.above { top: 33px !important; bottom: 0 !important; } .vb-checkbox__checker { z-index: 1 !important; } .kb-bottom-menu { background-color: #FFFFFF; border-top: 1px solid #BBB; border-radius: 5px; display: flex; flex-direction: column; position: absolute; width: 100%; z-index: 2321321312311; bottom: 0; max-height: 90%; } .kb-bottom-menu__title { color: rgba(0, 0, 0, 0.5); padding-left: 16px; vertical-align: middle; } .kb-bottom-menu__header { background-color: white; cursor: default; border-radius: 10px; margin-top: -10px; align-items: center; display: flex; min-height: 48px; width: 100%; animation: fadeUpHead 0.7s ease-in both; animation-delay: 400ms; } @keyframes fadeUpHead { from { opacity: 0; transform: translate3d(0, 50%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-bottom-menu__footer { min-height: 48px; width: 100%; } .kb-bottom-menu__body { height: 100%; overflow-y: auto; width: 100%; } .kb-bottom-menu__close-button { cursor: pointer; display: flex; padding: 16px; } .kb-customized-question-container { text-align: center; } .kb-chip { background: white; border: solid 1px rgba(0, 0, 0, 0.12); border-radius: 25px; cursor: pointer; display: inline-flex; font-size: 13px; margin-left: 5px; margin-top: 5px; padding: 5px 12px; } .kb-chip img { margin-right: 6px; } .kb-customized-question-title { font-weight: bold; padding: 10px; } .kb-helper-link-out-suggestion { background-color: white; border-radius: 15px; margin: 10px 5px; padding: 5px; } .kb-helper-link-out-suggestion a { color: #039be5 !important; text-decoration: none; } .kb-permanent-messages-container { text-align: justify; } .kb-permanent-message { background-color: #e8effb; border-radius: 4px; cursor: default; display: inline-block; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; } .kb-permanent-message a { color: #039be5; text-decoration: none; } .kb-schedule-alert { background-color: #C92239; color: white; cursor: default; padding: 5px 5px 5px 16px; display: flex; align-items: center; } .kb-schedule-alert__message { margin-left: 10px; padding-right: 16px; text-align: justify; } .kb-schedule-alert__message a { color: white; } .kb-schedule-alert__permanent-message { background: white; border-radius: 4px; cursor: default; display: inline-flex; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; } #keybe-webchat { font-family: "Montserrat", sans-serif !important; font-size: 14px !important; z-index: 214748364 !important; /* AUXILIARES */ /* COLORS */ } #keybe-webchat * { z-index: 214748364; } #keybe-webchat .language-toggle { margin-right: 8px; font-size: 17px; font-weight: bold; } #keybe-webchat .kb-welcome-container { word-break: break-word; align-items: center; display: flex; height: 50%; margin-top: -2px; background: rgba(255, 255, 255, 0); z-index: 2222222222222222300; } #keybe-webchat .kb-welcome-text { padding-right: 20px; padding-left: 20px; font-weight: 600; } #keybe-webchat .kb-fade-in-animation { animation: fadeIn 1s ease-in both; } @keyframes fadeIn { from { opacity: 0; transform: translate3d(0, -20%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-in-animation--delay { animation: fadeIn 0.3s ease-in both; } @keyframes fadeIn { from { opacity: 0; transform: translate3d(0, 30%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-animation { animation: fade 0.3s ease-in both; } @keyframes fade { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .slide-fade-enter-active { transition: all 0.3s ease; } #keybe-webchat .slide-fade-leave-active { transition: all 0.3s ease; } #keybe-webchat .slide-fade-enter, #keybe-webchat .slide-fade-leave-to { transform: translateY(56px); opacity: 0; } #keybe-webchat .fade-enter-active, #keybe-webchat .fade-leave-active { transition: opacity 0.2s; } #keybe-webchat .fade-enter, #keybe-webchat .fade-leave-to { opacity: 0; } #keybe-webchat .cursor-pointer { cursor: pointer; } #keybe-webchat .kb-error--text { color: #C92239 !important; } #keybe-webchat .kb-inactivity-container { align-items: center; background-color: white; border-radius: 5px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 70%; max-width: 92%; padding: 20px; position: fixed; text-align: center; width: 360px; z-index: 2147483648; } #keybe-webchat .kb-inactivity-container-left { left: 16px; } #keybe-webchat .kb-inactivity-container-right { right: 16px; } #keybe-webchat .kb-inactivity-container__logo { max-width: 300px; } #keybe-webchat .kb-inactivity-container__close-button { display: inline-flex; padding: 8px; position: absolute; right: 0; top: 0; } #keybe-webchat .kb-whatsapp-button__container { align-items: center; background-color: transparent; border-radius: 5px; bottom: 16px; cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 320px; overflow-y: hidden; max-width: 92%; padding: 20px; position: fixed; text-align: center; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__chat { width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__whatsApp { background-color: #40C451; width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__close { background-color: transparent; border-width: 4px; border-style: solid; width: 52px; height: 52px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-chat-container { background-color: white; border-radius: 10px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); display: flex; flex-direction: column; height: 85vh; max-height: 552px; max-width: 75vh; position: fixed; width: 340px; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__phone { background-color: transparent; min-width: 64px; min-height: 64px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-phone-button__container { position: relative; } #keybe-webchat .kb-phone-button__phones { position: absolute; top: 6px; width: 230px; border-radius: 50px; height: 64px; padding: 6px; } #keybe-webchat .kb-phone-button__phones div { display: flex; align-items: center; justify-content: center; height: 100%; } #keybe-webchat .kb-phone-button__phones div span { font-size: 13px; font-weight: 400; max-width: 45%; font-family: "Montserrat", sans-serif !important; } #keybe-webchat .kb-phone-button__numbers { display: flex; flex-direction: column; margin-left: 20px; } #keybe-webchat .kb-phone-button__numbers h5 { font-size: 13px; padding: 0; margin: 5px 0; } #keybe-webchat .kb-phone-button__phones-right { left: 80px; } #keybe-webchat .kb-phone-button__phones-left { right: 80px; } #keybe-webchat .kb-chat-container-left { left: 16px; overflow: visible; } #keybe-webchat .kb-chat-container-right { right: 16px; overflow: visible; } #keybe-webchat .kb-chat-conversation { background-color: rgba(242, 242, 242, 0.4); display: flex; flex: 1 1 0; flex-direction: column; overflow-y: auto; padding: 0 5px; } #keybe-webchat .kb-message-error { background-color: #C92239; color: white; font-weight: bold; padding: 5px 5px 5px 16px; z-index: 21474836482; } #keybe-webchat .kb-chat-conversation .kb-message:first-child { margin-top: 6px; } #keybe-webchat .kb-chat-header { align-items: center; border-radius: 10px 10px 0 0; cursor: pointer; display: flex; flex-direction: row; height: 54px; z-index: 214748364; } #keybe-webchat .kb-error-connection { background-color: #C92239; border-radius: 10px; bottom: 32px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: default; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; right: 32px; } #keybe-webchat .kb-footer { background-color: rgba(242, 242, 242, 0.4); min-height: 50px; z-index: 2147483649; } #keybe-webchat .kb-message-box { display: flex; flex-direction: row; max-height: 40px; z-index: 2147483649; border-radius: 60px; margin: 3px 10px 10px 10px; box-shadow: 6px 11px 32px -4px rgb(176, 170, 176); } #keybe-webchat .kb-divider { border-bottom: 1px solid rgba(0, 0, 0, 0.1); } #keybe-webchat .kb-font-weight-bold { font-weight: bold; } #keybe-webchat .kb-message-in { background-color: #e8effb; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; animation: bounce-in 2s both; } #keybe-webchat .kb-message-out { background-color: #cdefe8; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 15px 15px 0px 15px/15px 15px 15px 15px; animation: bounce-out 2s both; } #keybe-webchat .kb-message { display: flex; padding-left: 12px; padding-right: 12px; position: relative; margin-bottom: 6px; } @keyframes bounce-out { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform-origin: 90%; transform: scale(0.1); } } @keyframes bounce-in { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform: scale(0.1); } } #keybe-webchat .kb-message-text { padding: 6px 7px 0px 9px; white-space: pre-wrap; word-wrap: break-word; color: black; } #keybe-webchat .kb-message-text a { color: #039be5; text-decoration: none; } #keybe-webchat .kb-message-text a:hover { text-decoration: underline; } #keybe-webchat .kb-ml2 { margin-left: 8px; } #keybe-webchat .kb-mt2 { margin-top: 8px; } #keybe-webchat .kb-mx2 { margin: 0 8px 0 8px; } #keybe-webchat .kb-my2 { margin-bottom: 8px; margin-top: 8px; } #keybe-webchat .kb-powered-container { align-items: center; border-top: solid 1px rgba(0, 0, 0, 0.12); border-radius: 0 0 5px 5px; display: flex; justify-content: flex-end; min-height: 27px; } #keybe-webchat .kb-powered-container a { color: #676767; font-family: "Montserrat", sans-serif !important; font-size: 11px; padding-right: 8px; text-decoration: none; } #keybe-webchat .kb-powered-container-auth-form { align-items: center; color: #676767; cursor: pointer; border-radius: 0 0 5px 5px; display: flex; font-family: "Montserrat", sans-serif !important; font-size: 11px; justify-content: flex-end; padding-top: 6px; text-decoration: none; } #keybe-webchat .kb-px2 { padding: 0 8px 0 8px; } #keybe-webchat .kb-px4 { padding: 0 16px 0 16px; } #keybe-webchat .kb-pointer { cursor: pointer; } #keybe-webchat .kb-reverse { flex-direction: row-reverse; } #keybe-webchat .kb-row { display: flex; flex-direction: row; } #keybe-webchat .kb-spacer { display: flex; flex-grow: 1; } #keybe-webchat .kb-textarea-container { overflow-y: auto; flex: 1 1 auto; flex-grow: 1; min-width: 0; padding: 3px 0 3px 0px; } #keybe-webchat .kb-textarea-container::-webkit-scrollbar { width: 3px; } #keybe-webchat .kb-textarea-container::-webkit-scrollbar-thumb { background-color: #fafafa; } #keybe-webchat .kb-textarea-container [contentEditable=true]:empty:before { content: attr(data-ph); color: rgba(99, 99, 99, 0.705); cursor: text; } #keybe-webchat .kb-textarea-container [contentEditable=false]:empty:before { content: attr(data-ph); color: #C92239; cursor: not-allowed; } #keybe-webchat .kb-textarea { color: black; background-color: rgba(242, 242, 242, 0.4); border-radius: 24px; line-height: 20px; max-height: 100px; max-width: 100%; min-height: 24px; padding: 6px 12px; overflow-x: hidden; overflow-y: auto; white-space: pre-wrap; word-wrap: break-word; } #keybe-webchat .kb-textarea:focus { outline: none; } #keybe-webchat .kb-text-center { text-align: center; } #keybe-webchat .kb-toggle-button { border-radius: 50%; bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-image { bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-button-comfama { border-radius: 3px; bottom: 14px; right: 10px !important; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; box-shadow: 0 1px 6px #d3d3d3, 0 2px 32px #d3d3d3; } #keybe-webchat .kb-drag-zone { height: 100%; flex-shrink: 0; display: flex; position: relative; flex-direction: column; height: 100%; max-height: 100%; overflow-y: auto; animation: scrollIn 0.7s ease-in-out both; } @keyframes scrollIn { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .kb-drop-zone-form { background-color: white; z-index: 99999999999999 !important; position: absolute; width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; } #keybe-webchat .kb-drop-zone-icons { padding: 15px 15px 13px 15px; margin: 10px 10px 3px 10px; border-radius: 50px; min-height: 20px; min-width: 20px; background-color: #d1dae4; color: #aab7c5; } #keybe-webchat .kb-drop-zone-cancel-button { background-color: #aab7c5; border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; margin-right: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-drop-zone__border { align-items: center; box-shadow: -2px 10px 60px -37px rgb(0, 0, 0); border-radius: 8px; box-sizing: border-box; display: flex; flex-direction: column; font-size: 16px; height: 80%; justify-content: center; width: 80%; } #keybe-webchat .drop-zone-preview { border-radius: 8px; max-height: 65%; max-width: 90%; } #keybe-webchat .drop-zone-progress { background-color: grey; border-radius: 30px; box-sizing: border-box; display: flex; align-items: center; margin: 10px; position: relative; width: 90%; overflow: hidden; } #keybe-webchat .kb-drop-zone-button { display: inline-flex; flex-direction: column; justify-content: center; align-items: center; } #keybe-webchat .drop-zone-progress__successful { background-color: #4f8e62; border-radius: 30px; height: 30px; transition: width 0.5s ease; } #keybe-webchat .drop-zone-progress__value { color: white; font-size: 14px; font-weight: normal; position: absolute; text-align: center; width: 100%; } #keybe-webchat .kb-drop-zone-send-button { border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-toggle-button-message { border-radius: 10px; bottom: 32px; box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: pointer; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; } #keybe-webchat .kb-toggle-button-message-comfama { display: none; } #keybe-webchat .kb-toggle-button-left { left: 32px; } #keybe-webchat .kb-toggle-button-right { right: 32px; } #keybe-webchat .kb-toggle-button-message-left { left: 105px; } #keybe-webchat .kb-toggle-button-message-right { right: 105px; } #keybe-webchat .kb-font-weight-bold { font-weight: bold; } #keybe-webchat .black { color: black; } #keybe-webchat .white { color: white; } #keybe-webchat .kb-white--text { color: white !important; } #keybe-webchat .grey { color: #9e9e9e; } #keybe-webchat .red { color: #C92239; } #keybe-webchat ::-webkit-scrollbar { width: 6px !important; height: 6px !important; } #keybe-webchat ::-webkit-scrollbar-thumb { background-color: rgba(0, 0, 0, 0.2); } #keybe-webchat ::-webkit-scrollbar-track { background: hsla(0, 0%, 100%, 0.08); } #keybe-webchat .pswp__ui { z-index: 2147483649 !important; } .vb-checkbox { align-items: center; cursor: pointer; display: flex; flex-direction: row; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .vb-checkbox__checker { align-items: center; background-color: white; border-radius: 4px; box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3) !important; display: flex; font-size: 16px; justify-content: center; margin-right: 8px; min-height: 24px; min-width: 24px; } .tooltip { display: block !important; font-family: "Montserrat", sans-serif !important; font-size: 13px; max-width: 390px; z-index: 2147483649; } .tooltip .tooltip-inner { background: rgba(35, 47, 52, 0.9); color: white; border-radius: 4px; padding: 5px 10px; } .tooltip[x-placement^=top] { margin-bottom: 5px; } .tooltip[x-placement^=bottom] { margin-top: 5px; } .tooltip[x-placement^=right] { margin-left: 5px; } .tooltip[x-placement^=left] { margin-right: 5px; } .tooltip.popover .popover-inner { background: #f9f9f9; color: black; padding: 24px; border-radius: 5px; box-shadow: 0 5px 30px rgba(0, 0, 0, 0.1); } .tooltip.popover .popover-arrow { border-color: #f9f9f9; } .tooltip[aria-hidden=true] { visibility: hidden; opacity: 0; transition: opacity 0.15s, visibility 0.15s; } .tooltip[aria-hidden=false] { visibility: visible; opacity: 1; transition: opacity 0.15s; } #keybe-webchat .emojis-category { display: flex; flex-wrap: wrap; justify-content: space-around; padding: 8px; overflow-y: auto; }.kb-toggle-button__pulse { /* pulse from: https://codepen.io/olam/pen/zcqea */ border-radius: 50%; box-shadow: 0 0 0 rgba(59, 59, 59, 0.4); animation: pulse 2s infinite; } @-webkit-keyframes pulse { 0% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -webkit-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } @keyframes pulse { 0% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -moz-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } .expand-y-enter-active, .expand-y-leave-active { transition: all 0.2s; max-height: 31px; } .expand-y-enter, .expand-y-leave-to { opacity: 0; max-height: 0; } .kb-auth-container { padding: 16px 25px 16px 25px; animation: fadeUp 0.6s ease-in both; animation-delay: 500ms; overflow: auto; } @keyframes fadeUp { from { opacity: 0; transform: translate3d(0, 10%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-button { font-family: "Montserrat", sans-serif !important; background-color: #3b3b3b; border: none; border-radius: 50px; color: white; cursor: pointer; padding: 6px; width: 100%; margin-top: 5px; } .kb-input { background-color: transparent; border: none; border-bottom: 1px solid grey; box-sizing: border-box; font-family: "Montserrat", sans-serif !important; padding: 10px 0 10px 0; width: 100%; color: black; font-size: 13px; } /* Change Autocomplete styles in Chrome*/ input.kb-input:-webkit-autofill, input.kb-input:-webkit-autofill:hover, input.kb-input:-webkit-autofill:focus, textarea.kb-input:-webkit-autofill, textarea.kb-input:-webkit-autofill:hover, textarea.kb-input:-webkit-autofill:focus, select.kb-input:-webkit-autofill, select.kb-input:-webkit-autofill:hover, select.kb-input:-webkit-autofill:focus { border-top: none; border-right: none; border-left: none; border-bottom: 1px solid grey; -webkit-text-fill-color: black; background-color: transparent !important; transition: background-color 5000s ease-in-out 0s; } button.kb-input:focus, input.kb-input:focus, textarea.kb-input:focus, select.kb-input:focus { border: none; border-bottom: 1px solid grey; outline: none; } .terms-and-conditions-settings { z-index: 1 !important; font-size: 12px !important; } .terms-and-conditions-settings a { font-weight: bold; text-decoration: none; z-index: 1 !important; } .vti__dropdown-list { width: 290px !important; overflow-x: hidden !important; } .vti__input { z-index: 1 !important; } .vti__dropdown-list { min-height: 6500px !important; } .vti__dropdown-list.above { top: 33px !important; bottom: 0 !important; } .vb-checkbox__checker { z-index: 1 !important; } .kb-bottom-menu { background-color: #FFFFFF; border-top: 1px solid #BBB; border-radius: 5px; display: flex; flex-direction: column; position: absolute; width: 100%; z-index: 2321321312311; bottom: 0; max-height: 90%; } .kb-bottom-menu__title { color: rgba(0, 0, 0, 0.5); padding-left: 16px; vertical-align: middle; } .kb-bottom-menu__header { background-color: white; cursor: default; border-radius: 10px; margin-top: -10px; align-items: center; display: flex; min-height: 48px; width: 100%; animation: fadeUpHead 0.7s ease-in both; animation-delay: 400ms; } @keyframes fadeUpHead { from { opacity: 0; transform: translate3d(0, 50%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-bottom-menu__footer { min-height: 48px; width: 100%; } .kb-bottom-menu__body { height: 100%; overflow-y: auto; width: 100%; } .kb-bottom-menu__close-button { cursor: pointer; display: flex; padding: 16px; } .kb-customized-question-container { text-align: center; } .kb-chip { background: white; border: solid 1px rgba(0, 0, 0, 0.12); border-radius: 25px; cursor: pointer; display: inline-flex; font-size: 13px; margin-left: 5px; margin-top: 5px; padding: 5px 12px; } .kb-chip img { margin-right: 6px; } .kb-customized-question-title { font-weight: bold; padding: 10px; } .kb-helper-link-out-suggestion { background-color: white; border-radius: 15px; margin: 10px 5px; padding: 5px; } .kb-helper-link-out-suggestion a { color: #039be5 !important; text-decoration: none; } .kb-permanent-messages-container { text-align: justify; } .kb-permanent-message { background-color: #e8effb; border-radius: 4px; cursor: default; display: inline-block; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; } .kb-permanent-message a { color: #039be5; text-decoration: none; } .kb-schedule-alert { background-color: #C92239; color: white; cursor: default; padding: 5px 5px 5px 16px; display: flex; align-items: center; } .kb-schedule-alert__message { margin-left: 10px; padding-right: 16px; text-align: justify; } .kb-schedule-alert__message a { color: white; } .kb-schedule-alert__permanent-message { background: white; border-radius: 4px; cursor: default; display: inline-flex; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; } #keybe-webchat { font-family: "Montserrat", sans-serif !important; font-size: 14px !important; z-index: 214748364 !important; /* AUXILIARES */ /* COLORS */ } #keybe-webchat * { z-index: 214748364; } #keybe-webchat .language-toggle { margin-right: 8px; font-size: 17px; font-weight: bold; } #keybe-webchat .kb-welcome-container { word-break: break-word; align-items: center; display: flex; height: 50%; margin-top: -2px; background: rgba(255, 255, 255, 0); z-index: 2222222222222222300; } #keybe-webchat .kb-welcome-text { padding-right: 20px; padding-left: 20px; font-weight: 600; } #keybe-webchat .kb-fade-in-animation { animation: fadeIn 1s ease-in both; } @keyframes fadeIn { from { opacity: 0; transform: translate3d(0, -20%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-in-animation--delay { animation: fadeIn 0.3s ease-in both; } @keyframes fadeIn { from { opacity: 0; transform: translate3d(0, 30%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-animation { animation: fade 0.3s ease-in both; } @keyframes fade { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .slide-fade-enter-active { transition: all 0.3s ease; } #keybe-webchat .slide-fade-leave-active { transition: all 0.3s ease; } #keybe-webchat .slide-fade-enter, #keybe-webchat .slide-fade-leave-to { transform: translateY(56px); opacity: 0; } #keybe-webchat .fade-enter-active, #keybe-webchat .fade-leave-active { transition: opacity 0.2s; } #keybe-webchat .fade-enter, #keybe-webchat .fade-leave-to { opacity: 0; } #keybe-webchat .cursor-pointer { cursor: pointer; } #keybe-webchat .kb-error--text { color: #C92239 !important; } #keybe-webchat .kb-inactivity-container { align-items: center; background-color: white; border-radius: 5px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 70%; max-width: 92%; padding: 20px; position: fixed; text-align: center; width: 360px; z-index: 2147483648; } #keybe-webchat .kb-inactivity-container-left { left: 16px; } #keybe-webchat .kb-inactivity-container-right { right: 16px; } #keybe-webchat .kb-inactivity-container__logo { max-width: 300px; } #keybe-webchat .kb-inactivity-container__close-button { display: inline-flex; padding: 8px; position: absolute; right: 0; top: 0; } #keybe-webchat .kb-whatsapp-button__container { align-items: center; background-color: transparent; border-radius: 5px; bottom: 16px; cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 320px; overflow-y: hidden; max-width: 92%; padding: 20px; position: fixed; text-align: center; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__chat { width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__whatsApp { background-color: #40C451; width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__close { background-color: transparent; border-width: 4px; border-style: solid; width: 52px; height: 52px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-chat-container { background-color: white; border-radius: 10px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); display: flex; flex-direction: column; height: 85vh; max-height: 552px; max-width: 75vh; position: fixed; width: 340px; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__phone { background-color: transparent; min-width: 64px; min-height: 64px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-phone-button__container { position: relative; } #keybe-webchat .kb-phone-button__phones { position: absolute; top: 6px; width: 230px; border-radius: 50px; height: 64px; padding: 6px; } #keybe-webchat .kb-phone-button__phones div { display: flex; align-items: center; justify-content: center; height: 100%; } #keybe-webchat .kb-phone-button__phones div span { font-size: 13px; font-weight: 400; max-width: 45%; font-family: "Montserrat", sans-serif !important; } #keybe-webchat .kb-phone-button__numbers { display: flex; flex-direction: column; margin-left: 20px; } #keybe-webchat .kb-phone-button__numbers h5 { font-size: 13px; padding: 0; margin: 5px 0; } #keybe-webchat .kb-phone-button__phones-right { left: 80px; } #keybe-webchat .kb-phone-button__phones-left { right: 80px; } #keybe-webchat .kb-chat-container-left { left: 16px; overflow: visible; } #keybe-webchat .kb-chat-container-right { right: 16px; overflow: visible; } #keybe-webchat .kb-chat-conversation { background-color: rgba(242, 242, 242, 0.4); display: flex; flex: 1 1 0; flex-direction: column; overflow-y: auto; padding: 0 5px; } #keybe-webchat .kb-message-error { background-color: #C92239; color: white; font-weight: bold; padding: 5px 5px 5px 16px; z-index: 21474836482; } #keybe-webchat .kb-chat-conversation .kb-message:first-child { margin-top: 6px; } #keybe-webchat .kb-chat-header { align-items: center; border-radius: 10px 10px 0 0; cursor: pointer; display: flex; flex-direction: row; height: 54px; z-index: 214748364; } #keybe-webchat .kb-error-connection { background-color: #C92239; border-radius: 10px; bottom: 32px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: default; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; right: 32px; } #keybe-webchat .kb-footer { background-color: rgba(242, 242, 242, 0.4); min-height: 50px; z-index: 2147483649; } #keybe-webchat .kb-message-box { display: flex; flex-direction: row; max-height: 40px; z-index: 2147483649; border-radius: 60px; margin: 3px 10px 10px 10px; box-shadow: 6px 11px 32px -4px rgb(176, 170, 176); } #keybe-webchat .kb-divider { border-bottom: 1px solid rgba(0, 0, 0, 0.1); } #keybe-webchat .kb-font-weight-bold { font-weight: bold; } #keybe-webchat .kb-message-in { background-color: #e8effb; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; animation: bounce-in 2s both; } #keybe-webchat .kb-message-out { background-color: #cdefe8; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 15px 15px 0px 15px/15px 15px 15px 15px; animation: bounce-out 2s both; } #keybe-webchat .kb-message { display: flex; padding-left: 12px; padding-right: 12px; position: relative; margin-bottom: 6px; } @keyframes bounce-out { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform-origin: 90%; transform: scale(0.1); } } @keyframes bounce-in { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform: scale(0.1); } } #keybe-webchat .kb-message-text { padding: 6px 7px 0px 9px; white-space: pre-wrap; word-wrap: break-word; color: black; } #keybe-webchat .kb-message-text a { color: #039be5; text-decoration: none; } #keybe-webchat .kb-message-text a:hover { text-decoration: underline; } #keybe-webchat .kb-ml2 { margin-left: 8px; } #keybe-webchat .kb-mt2 { margin-top: 8px; } #keybe-webchat .kb-mx2 { margin: 0 8px 0 8px; } #keybe-webchat .kb-my2 { margin-bottom: 8px; margin-top: 8px; } #keybe-webchat .kb-powered-container { align-items: center; border-top: solid 1px rgba(0, 0, 0, 0.12); border-radius: 0 0 5px 5px; display: flex; justify-content: flex-end; min-height: 27px; } #keybe-webchat .kb-powered-container a { color: #676767; font-family: "Montserrat", sans-serif !important; font-size: 11px; padding-right: 8px; text-decoration: none; } #keybe-webchat .kb-powered-container-auth-form { align-items: center; color: #676767; cursor: pointer; border-radius: 0 0 5px 5px; display: flex; font-family: "Montserrat", sans-serif !important; font-size: 11px; justify-content: flex-end; padding-top: 6px; text-decoration: none; } #keybe-webchat .kb-px2 { padding: 0 8px 0 8px; } #keybe-webchat .kb-px4 { padding: 0 16px 0 16px; } #keybe-webchat .kb-pointer { cursor: pointer; } #keybe-webchat .kb-reverse { flex-direction: row-reverse; } #keybe-webchat .kb-row { display: flex; flex-direction: row; } #keybe-webchat .kb-spacer { display: flex; flex-grow: 1; } #keybe-webchat .kb-textarea-container { overflow-y: auto; flex: 1 1 auto; flex-grow: 1; min-width: 0; padding: 3px 0 3px 0px; } #keybe-webchat .kb-textarea-container::-webkit-scrollbar { width: 3px; } #keybe-webchat .kb-textarea-container::-webkit-scrollbar-thumb { background-color: #fafafa; } #keybe-webchat .kb-textarea-container [contentEditable=true]:empty:before { content: attr(data-ph); color: rgba(99, 99, 99, 0.705); cursor: text; } #keybe-webchat .kb-textarea-container [contentEditable=false]:empty:before { content: attr(data-ph); color: #C92239; cursor: not-allowed; } #keybe-webchat .kb-textarea { color: black; background-color: rgba(242, 242, 242, 0.4); border-radius: 24px; line-height: 20px; max-height: 100px; max-width: 100%; min-height: 24px; padding: 6px 12px; overflow-x: hidden; overflow-y: auto; white-space: pre-wrap; word-wrap: break-word; } #keybe-webchat .kb-textarea:focus { outline: none; } #keybe-webchat .kb-text-center { text-align: center; } #keybe-webchat .kb-toggle-button { border-radius: 50%; bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-image { bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-button-comfama { border-radius: 3px; bottom: 14px; right: 10px !important; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; box-shadow: 0 1px 6px #d3d3d3, 0 2px 32px #d3d3d3; } #keybe-webchat .kb-drag-zone { height: 100%; flex-shrink: 0; display: flex; position: relative; flex-direction: column; height: 100%; max-height: 100%; overflow-y: auto; animation: scrollIn 0.7s ease-in-out both; } @keyframes scrollIn { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .kb-drop-zone-form { background-color: white; z-index: 99999999999999 !important; position: absolute; width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; } #keybe-webchat .kb-drop-zone-icons { padding: 15px 15px 13px 15px; margin: 10px 10px 3px 10px; border-radius: 50px; min-height: 20px; min-width: 20px; background-color: #d1dae4; color: #aab7c5; } #keybe-webchat .kb-drop-zone-cancel-button { background-color: #aab7c5; border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; margin-right: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-drop-zone__border { align-items: center; box-shadow: -2px 10px 60px -37px rgb(0, 0, 0); border-radius: 8px; box-sizing: border-box; display: flex; flex-direction: column; font-size: 16px; height: 80%; justify-content: center; width: 80%; } #keybe-webchat .drop-zone-preview { border-radius: 8px; max-height: 65%; max-width: 90%; } #keybe-webchat .drop-zone-progress { background-color: grey; border-radius: 30px; box-sizing: border-box; display: flex; align-items: center; margin: 10px; position: relative; width: 90%; overflow: hidden; } #keybe-webchat .kb-drop-zone-button { display: inline-flex; flex-direction: column; justify-content: center; align-items: center; } #keybe-webchat .drop-zone-progress__successful { background-color: #4f8e62; border-radius: 30px; height: 30px; transition: width 0.5s ease; } #keybe-webchat .drop-zone-progress__value { color: white; font-size: 14px; font-weight: normal; position: absolute; text-align: center; width: 100%; } #keybe-webchat .kb-drop-zone-send-button { border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-toggle-button-message { border-radius: 10px; bottom: 32px; box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: pointer; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; } #keybe-webchat .kb-toggle-button-message-comfama { display: none; } #keybe-webchat .kb-toggle-button-left { left: 32px; } #keybe-webchat .kb-toggle-button-right { right: 32px; } #keybe-webchat .kb-toggle-button-message-left { left: 105px; } #keybe-webchat .kb-toggle-button-message-right { right: 105px; } #keybe-webchat .kb-font-weight-bold { font-weight: bold; } #keybe-webchat .black { color: black; } #keybe-webchat .white { color: white; } #keybe-webchat .kb-white--text { color: white !important; } #keybe-webchat .grey { color: #9e9e9e; } #keybe-webchat .red { color: #C92239; } #keybe-webchat ::-webkit-scrollbar { width: 6px !important; height: 6px !important; } #keybe-webchat ::-webkit-scrollbar-thumb { background-color: rgba(0, 0, 0, 0.2); } #keybe-webchat ::-webkit-scrollbar-track { background: hsla(0, 0%, 100%, 0.08); } #keybe-webchat .pswp__ui { z-index: 2147483649 !important; } .vb-checkbox { align-items: center; cursor: pointer; display: flex; flex-direction: row; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .vb-checkbox__checker { align-items: center; background-color: white; border-radius: 4px; box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3) !important; display: flex; font-size: 16px; justify-content: center; margin-right: 8px; min-height: 24px; min-width: 24px; } .tooltip { display: block !important; font-family: "Montserrat", sans-serif !important; font-size: 13px; max-width: 390px; z-index: 2147483649; } .tooltip .tooltip-inner { background: rgba(35, 47, 52, 0.9); color: white; border-radius: 4px; padding: 5px 10px; } .tooltip[x-placement^=top] { margin-bottom: 5px; } .tooltip[x-placement^=bottom] { margin-top: 5px; } .tooltip[x-placement^=right] { margin-left: 5px; } .tooltip[x-placement^=left] { margin-right: 5px; } .tooltip.popover .popover-inner { background: #f9f9f9; color: black; padding: 24px; border-radius: 5px; box-shadow: 0 5px 30px rgba(0, 0, 0, 0.1); } .tooltip.popover .popover-arrow { border-color: #f9f9f9; } .tooltip[aria-hidden=true] { visibility: hidden; opacity: 0; transition: opacity 0.15s, visibility 0.15s; } .tooltip[aria-hidden=false] { visibility: visible; opacity: 1; transition: opacity 0.15s; } .close:hover { background-color: rgba(229, 37, 37, 0.95); animation: zoomIn 5s -3s; color: white !important; } .check:hover { background-color: #55db55; animation: zoomIn 5s -3s; color: white !important; } @keyframes zoomIn { from { transform: scale(0); } } .btn-audio { height: 27px; width: 27px; border-radius: 50%; cursor: pointer; display: flex; justify-content: center; align-self: center; } .icons-audio { display: flex; align-self: center; font-size: 20px !important; } .spinner { width: 19px; height: 15px; margin: 20px auto; background-color: #dc2743; border-radius: 100%; -webkit-animation: sk-scaleout 1s infinite ease-in-out; animation: sk-scaleout 1s infinite ease-in-out; } .recorder-timer { min-width: 50px; text-align: center; align-self: center; font-size: 17px !important; } @-webkit-keyframes sk-scaleout { 0% { -webkit-transform: scale(0); } 100% { -webkit-transform: scale(1); opacity: 0; } } @keyframes sk-scaleout { 0% { -webkit-transform: scale(0); transform: scale(0); } 100% { -webkit-transform: scale(1); transform: scale(1); opacity: 0; } } audio { width: 93%; }.kb-toggle-button__pulse { /* pulse from: https://codepen.io/olam/pen/zcqea */ border-radius: 50%; box-shadow: 0 0 0 rgba(59, 59, 59, 0.4); animation: pulse 2s infinite; } @-webkit-keyframes pulse { 0% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -webkit-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } @keyframes pulse { 0% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -moz-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } .expand-y-enter-active, .expand-y-leave-active { transition: all 0.2s; max-height: 31px; } .expand-y-enter, .expand-y-leave-to { opacity: 0; max-height: 0; } .kb-auth-container { padding: 16px 25px 16px 25px; animation: fadeUp 0.6s ease-in both; animation-delay: 500ms; overflow: auto; } @keyframes fadeUp { from { opacity: 0; transform: translate3d(0, 10%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-button { font-family: "Montserrat", sans-serif !important; background-color: #3b3b3b; border: none; border-radius: 50px; color: white; cursor: pointer; padding: 6px; width: 100%; margin-top: 5px; } .kb-input { background-color: transparent; border: none; border-bottom: 1px solid grey; box-sizing: border-box; font-family: "Montserrat", sans-serif !important; padding: 10px 0 10px 0; width: 100%; color: black; font-size: 13px; } /* Change Autocomplete styles in Chrome*/ input.kb-input:-webkit-autofill, input.kb-input:-webkit-autofill:hover, input.kb-input:-webkit-autofill:focus, textarea.kb-input:-webkit-autofill, textarea.kb-input:-webkit-autofill:hover, textarea.kb-input:-webkit-autofill:focus, select.kb-input:-webkit-autofill, select.kb-input:-webkit-autofill:hover, select.kb-input:-webkit-autofill:focus { border-top: none; border-right: none; border-left: none; border-bottom: 1px solid grey; -webkit-text-fill-color: black; background-color: transparent !important; transition: background-color 5000s ease-in-out 0s; } button.kb-input:focus, input.kb-input:focus, textarea.kb-input:focus, select.kb-input:focus { border: none; border-bottom: 1px solid grey; outline: none; } .terms-and-conditions-settings { z-index: 1 !important; font-size: 12px !important; } .terms-and-conditions-settings a { font-weight: bold; text-decoration: none; z-index: 1 !important; } .vti__dropdown-list { width: 290px !important; overflow-x: hidden !important; } .vti__input { z-index: 1 !important; } .vti__dropdown-list { min-height: 6500px !important; } .vti__dropdown-list.above { top: 33px !important; bottom: 0 !important; } .vb-checkbox__checker { z-index: 1 !important; } .kb-bottom-menu { background-color: #FFFFFF; border-top: 1px solid #BBB; border-radius: 5px; display: flex; flex-direction: column; position: absolute; width: 100%; z-index: 2321321312311; bottom: 0; max-height: 90%; } .kb-bottom-menu__title { color: rgba(0, 0, 0, 0.5); padding-left: 16px; vertical-align: middle; } .kb-bottom-menu__header { background-color: white; cursor: default; border-radius: 10px; margin-top: -10px; align-items: center; display: flex; min-height: 48px; width: 100%; animation: fadeUpHead 0.7s ease-in both; animation-delay: 400ms; } @keyframes fadeUpHead { from { opacity: 0; transform: translate3d(0, 50%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-bottom-menu__footer { min-height: 48px; width: 100%; } .kb-bottom-menu__body { height: 100%; overflow-y: auto; width: 100%; } .kb-bottom-menu__close-button { cursor: pointer; display: flex; padding: 16px; } .kb-customized-question-container { text-align: center; } .kb-chip { background: white; border: solid 1px rgba(0, 0, 0, 0.12); border-radius: 25px; cursor: pointer; display: inline-flex; font-size: 13px; margin-left: 5px; margin-top: 5px; padding: 5px 12px; } .kb-chip img { margin-right: 6px; } .kb-customized-question-title { font-weight: bold; padding: 10px; } .kb-helper-link-out-suggestion { background-color: white; border-radius: 15px; margin: 10px 5px; padding: 5px; } .kb-helper-link-out-suggestion a { color: #039be5 !important; text-decoration: none; } .kb-permanent-messages-container { text-align: justify; } .kb-permanent-message { background-color: #e8effb; border-radius: 4px; cursor: default; display: inline-block; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; } .kb-permanent-message a { color: #039be5; text-decoration: none; } .kb-schedule-alert { background-color: #C92239; color: white; cursor: default; padding: 5px 5px 5px 16px; display: flex; align-items: center; } .kb-schedule-alert__message { margin-left: 10px; padding-right: 16px; text-align: justify; } .kb-schedule-alert__message a { color: white; } .kb-schedule-alert__permanent-message { background: white; border-radius: 4px; cursor: default; display: inline-flex; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; } #keybe-webchat { font-family: "Montserrat", sans-serif !important; font-size: 14px !important; z-index: 214748364 !important; /* AUXILIARES */ /* COLORS */ } #keybe-webchat * { z-index: 214748364; } #keybe-webchat .language-toggle { margin-right: 8px; font-size: 17px; font-weight: bold; } #keybe-webchat .kb-welcome-container { word-break: break-word; align-items: center; display: flex; height: 50%; margin-top: -2px; background: rgba(255, 255, 255, 0); z-index: 2222222222222222300; } #keybe-webchat .kb-welcome-text { padding-right: 20px; padding-left: 20px; font-weight: 600; } #keybe-webchat .kb-fade-in-animation { animation: fadeIn 1s ease-in both; } @keyframes fadeIn { from { opacity: 0; transform: translate3d(0, -20%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-in-animation--delay { animation: fadeIn 0.3s ease-in both; } @keyframes fadeIn { from { opacity: 0; transform: translate3d(0, 30%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-animation { animation: fade 0.3s ease-in both; } @keyframes fade { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .slide-fade-enter-active { transition: all 0.3s ease; } #keybe-webchat .slide-fade-leave-active { transition: all 0.3s ease; } #keybe-webchat .slide-fade-enter, #keybe-webchat .slide-fade-leave-to { transform: translateY(56px); opacity: 0; } #keybe-webchat .fade-enter-active, #keybe-webchat .fade-leave-active { transition: opacity 0.2s; } #keybe-webchat .fade-enter, #keybe-webchat .fade-leave-to { opacity: 0; } #keybe-webchat .cursor-pointer { cursor: pointer; } #keybe-webchat .kb-error--text { color: #C92239 !important; } #keybe-webchat .kb-inactivity-container { align-items: center; background-color: white; border-radius: 5px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 70%; max-width: 92%; padding: 20px; position: fixed; text-align: center; width: 360px; z-index: 2147483648; } #keybe-webchat .kb-inactivity-container-left { left: 16px; } #keybe-webchat .kb-inactivity-container-right { right: 16px; } #keybe-webchat .kb-inactivity-container__logo { max-width: 300px; } #keybe-webchat .kb-inactivity-container__close-button { display: inline-flex; padding: 8px; position: absolute; right: 0; top: 0; } #keybe-webchat .kb-whatsapp-button__container { align-items: center; background-color: transparent; border-radius: 5px; bottom: 16px; cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 320px; overflow-y: hidden; max-width: 92%; padding: 20px; position: fixed; text-align: center; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__chat { width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__whatsApp { background-color: #40C451; width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__close { background-color: transparent; border-width: 4px; border-style: solid; width: 52px; height: 52px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-chat-container { background-color: white; border-radius: 10px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); display: flex; flex-direction: column; height: 85vh; max-height: 552px; max-width: 75vh; position: fixed; width: 340px; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__phone { background-color: transparent; min-width: 64px; min-height: 64px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-phone-button__container { position: relative; } #keybe-webchat .kb-phone-button__phones { position: absolute; top: 6px; width: 230px; border-radius: 50px; height: 64px; padding: 6px; } #keybe-webchat .kb-phone-button__phones div { display: flex; align-items: center; justify-content: center; height: 100%; } #keybe-webchat .kb-phone-button__phones div span { font-size: 13px; font-weight: 400; max-width: 45%; font-family: "Montserrat", sans-serif !important; } #keybe-webchat .kb-phone-button__numbers { display: flex; flex-direction: column; margin-left: 20px; } #keybe-webchat .kb-phone-button__numbers h5 { font-size: 13px; padding: 0; margin: 5px 0; } #keybe-webchat .kb-phone-button__phones-right { left: 80px; } #keybe-webchat .kb-phone-button__phones-left { right: 80px; } #keybe-webchat .kb-chat-container-left { left: 16px; overflow: visible; } #keybe-webchat .kb-chat-container-right { right: 16px; overflow: visible; } #keybe-webchat .kb-chat-conversation { background-color: rgba(242, 242, 242, 0.4); display: flex; flex: 1 1 0; flex-direction: column; overflow-y: auto; padding: 0 5px; } #keybe-webchat .kb-message-error { background-color: #C92239; color: white; font-weight: bold; padding: 5px 5px 5px 16px; z-index: 21474836482; } #keybe-webchat .kb-chat-conversation .kb-message:first-child { margin-top: 6px; } #keybe-webchat .kb-chat-header { align-items: center; border-radius: 10px 10px 0 0; cursor: pointer; display: flex; flex-direction: row; height: 54px; z-index: 214748364; } #keybe-webchat .kb-error-connection { background-color: #C92239; border-radius: 10px; bottom: 32px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: default; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; right: 32px; } #keybe-webchat .kb-footer { background-color: rgba(242, 242, 242, 0.4); min-height: 50px; z-index: 2147483649; } #keybe-webchat .kb-message-box { display: flex; flex-direction: row; max-height: 40px; z-index: 2147483649; border-radius: 60px; margin: 3px 10px 10px 10px; box-shadow: 6px 11px 32px -4px rgb(176, 170, 176); } #keybe-webchat .kb-divider { border-bottom: 1px solid rgba(0, 0, 0, 0.1); } #keybe-webchat .kb-font-weight-bold { font-weight: bold; } #keybe-webchat .kb-message-in { background-color: #e8effb; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; animation: bounce-in 2s both; } #keybe-webchat .kb-message-out { background-color: #cdefe8; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 15px 15px 0px 15px/15px 15px 15px 15px; animation: bounce-out 2s both; } #keybe-webchat .kb-message { display: flex; padding-left: 12px; padding-right: 12px; position: relative; margin-bottom: 6px; } @keyframes bounce-out { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform-origin: 90%; transform: scale(0.1); } } @keyframes bounce-in { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform: scale(0.1); } } #keybe-webchat .kb-message-text { padding: 6px 7px 0px 9px; white-space: pre-wrap; word-wrap: break-word; color: black; } #keybe-webchat .kb-message-text a { color: #039be5; text-decoration: none; } #keybe-webchat .kb-message-text a:hover { text-decoration: underline; } #keybe-webchat .kb-ml2 { margin-left: 8px; } #keybe-webchat .kb-mt2 { margin-top: 8px; } #keybe-webchat .kb-mx2 { margin: 0 8px 0 8px; } #keybe-webchat .kb-my2 { margin-bottom: 8px; margin-top: 8px; } #keybe-webchat .kb-powered-container { align-items: center; border-top: solid 1px rgba(0, 0, 0, 0.12); border-radius: 0 0 5px 5px; display: flex; justify-content: flex-end; min-height: 27px; } #keybe-webchat .kb-powered-container a { color: #676767; font-family: "Montserrat", sans-serif !important; font-size: 11px; padding-right: 8px; text-decoration: none; } #keybe-webchat .kb-powered-container-auth-form { align-items: center; color: #676767; cursor: pointer; border-radius: 0 0 5px 5px; display: flex; font-family: "Montserrat", sans-serif !important; font-size: 11px; justify-content: flex-end; padding-top: 6px; text-decoration: none; } #keybe-webchat .kb-px2 { padding: 0 8px 0 8px; } #keybe-webchat .kb-px4 { padding: 0 16px 0 16px; } #keybe-webchat .kb-pointer { cursor: pointer; } #keybe-webchat .kb-reverse { flex-direction: row-reverse; } #keybe-webchat .kb-row { display: flex; flex-direction: row; } #keybe-webchat .kb-spacer { display: flex; flex-grow: 1; } #keybe-webchat .kb-textarea-container { overflow-y: auto; flex: 1 1 auto; flex-grow: 1; min-width: 0; padding: 3px 0 3px 0px; } #keybe-webchat .kb-textarea-container::-webkit-scrollbar { width: 3px; } #keybe-webchat .kb-textarea-container::-webkit-scrollbar-thumb { background-color: #fafafa; } #keybe-webchat .kb-textarea-container [contentEditable=true]:empty:before { content: attr(data-ph); color: rgba(99, 99, 99, 0.705); cursor: text; } #keybe-webchat .kb-textarea-container [contentEditable=false]:empty:before { content: attr(data-ph); color: #C92239; cursor: not-allowed; } #keybe-webchat .kb-textarea { color: black; background-color: rgba(242, 242, 242, 0.4); border-radius: 24px; line-height: 20px; max-height: 100px; max-width: 100%; min-height: 24px; padding: 6px 12px; overflow-x: hidden; overflow-y: auto; white-space: pre-wrap; word-wrap: break-word; } #keybe-webchat .kb-textarea:focus { outline: none; } #keybe-webchat .kb-text-center { text-align: center; } #keybe-webchat .kb-toggle-button { border-radius: 50%; bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-image { bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-button-comfama { border-radius: 3px; bottom: 14px; right: 10px !important; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; box-shadow: 0 1px 6px #d3d3d3, 0 2px 32px #d3d3d3; } #keybe-webchat .kb-drag-zone { height: 100%; flex-shrink: 0; display: flex; position: relative; flex-direction: column; height: 100%; max-height: 100%; overflow-y: auto; animation: scrollIn 0.7s ease-in-out both; } @keyframes scrollIn { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .kb-drop-zone-form { background-color: white; z-index: 99999999999999 !important; position: absolute; width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; } #keybe-webchat .kb-drop-zone-icons { padding: 15px 15px 13px 15px; margin: 10px 10px 3px 10px; border-radius: 50px; min-height: 20px; min-width: 20px; background-color: #d1dae4; color: #aab7c5; } #keybe-webchat .kb-drop-zone-cancel-button { background-color: #aab7c5; border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; margin-right: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-drop-zone__border { align-items: center; box-shadow: -2px 10px 60px -37px rgb(0, 0, 0); border-radius: 8px; box-sizing: border-box; display: flex; flex-direction: column; font-size: 16px; height: 80%; justify-content: center; width: 80%; } #keybe-webchat .drop-zone-preview { border-radius: 8px; max-height: 65%; max-width: 90%; } #keybe-webchat .drop-zone-progress { background-color: grey; border-radius: 30px; box-sizing: border-box; display: flex; align-items: center; margin: 10px; position: relative; width: 90%; overflow: hidden; } #keybe-webchat .kb-drop-zone-button { display: inline-flex; flex-direction: column; justify-content: center; align-items: center; } #keybe-webchat .drop-zone-progress__successful { background-color: #4f8e62; border-radius: 30px; height: 30px; transition: width 0.5s ease; } #keybe-webchat .drop-zone-progress__value { color: white; font-size: 14px; font-weight: normal; position: absolute; text-align: center; width: 100%; } #keybe-webchat .kb-drop-zone-send-button { border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-toggle-button-message { border-radius: 10px; bottom: 32px; box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: pointer; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; } #keybe-webchat .kb-toggle-button-message-comfama { display: none; } #keybe-webchat .kb-toggle-button-left { left: 32px; } #keybe-webchat .kb-toggle-button-right { right: 32px; } #keybe-webchat .kb-toggle-button-message-left { left: 105px; } #keybe-webchat .kb-toggle-button-message-right { right: 105px; } #keybe-webchat .kb-font-weight-bold { font-weight: bold; } #keybe-webchat .black { color: black; } #keybe-webchat .white { color: white; } #keybe-webchat .kb-white--text { color: white !important; } #keybe-webchat .grey { color: #9e9e9e; } #keybe-webchat .red { color: #C92239; } #keybe-webchat ::-webkit-scrollbar { width: 6px !important; height: 6px !important; } #keybe-webchat ::-webkit-scrollbar-thumb { background-color: rgba(0, 0, 0, 0.2); } #keybe-webchat ::-webkit-scrollbar-track { background: hsla(0, 0%, 100%, 0.08); } #keybe-webchat .pswp__ui { z-index: 2147483649 !important; } .vb-checkbox { align-items: center; cursor: pointer; display: flex; flex-direction: row; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .vb-checkbox__checker { align-items: center; background-color: white; border-radius: 4px; box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3) !important; display: flex; font-size: 16px; justify-content: center; margin-right: 8px; min-height: 24px; min-width: 24px; } .tooltip { display: block !important; font-family: "Montserrat", sans-serif !important; font-size: 13px; max-width: 390px; z-index: 2147483649; } .tooltip .tooltip-inner { background: rgba(35, 47, 52, 0.9); color: white; border-radius: 4px; padding: 5px 10px; } .tooltip[x-placement^=top] { margin-bottom: 5px; } .tooltip[x-placement^=bottom] { margin-top: 5px; } .tooltip[x-placement^=right] { margin-left: 5px; } .tooltip[x-placement^=left] { margin-right: 5px; } .tooltip.popover .popover-inner { background: #f9f9f9; color: black; padding: 24px; border-radius: 5px; box-shadow: 0 5px 30px rgba(0, 0, 0, 0.1); } .tooltip.popover .popover-arrow { border-color: #f9f9f9; } .tooltip[aria-hidden=true] { visibility: hidden; opacity: 0; transition: opacity 0.15s, visibility 0.15s; } .tooltip[aria-hidden=false] { visibility: visible; opacity: 1; transition: opacity 0.15s; } .noWritingAllow { visibility: hidden; }.kb-toggle-button__pulse { /* pulse from: https://codepen.io/olam/pen/zcqea */ border-radius: 50%; box-shadow: 0 0 0 rgba(59, 59, 59, 0.4); animation: pulse 2s infinite; } @-webkit-keyframes pulse { 0% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -webkit-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } @keyframes pulse { 0% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -moz-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } .expand-y-enter-active, .expand-y-leave-active { transition: all 0.2s; max-height: 31px; } .expand-y-enter, .expand-y-leave-to { opacity: 0; max-height: 0; } .kb-auth-container { padding: 16px 25px 16px 25px; animation: fadeUp 0.6s ease-in both; animation-delay: 500ms; overflow: auto; } @keyframes fadeUp { from { opacity: 0; transform: translate3d(0, 10%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-button { font-family: "Montserrat", sans-serif !important; background-color: #3b3b3b; border: none; border-radius: 50px; color: white; cursor: pointer; padding: 6px; width: 100%; margin-top: 5px; } .kb-input { background-color: transparent; border: none; border-bottom: 1px solid grey; box-sizing: border-box; font-family: "Montserrat", sans-serif !important; padding: 10px 0 10px 0; width: 100%; color: black; font-size: 13px; } /* Change Autocomplete styles in Chrome*/ input.kb-input:-webkit-autofill, input.kb-input:-webkit-autofill:hover, input.kb-input:-webkit-autofill:focus, textarea.kb-input:-webkit-autofill, textarea.kb-input:-webkit-autofill:hover, textarea.kb-input:-webkit-autofill:focus, select.kb-input:-webkit-autofill, select.kb-input:-webkit-autofill:hover, select.kb-input:-webkit-autofill:focus { border-top: none; border-right: none; border-left: none; border-bottom: 1px solid grey; -webkit-text-fill-color: black; background-color: transparent !important; transition: background-color 5000s ease-in-out 0s; } button.kb-input:focus, input.kb-input:focus, textarea.kb-input:focus, select.kb-input:focus { border: none; border-bottom: 1px solid grey; outline: none; } .terms-and-conditions-settings { z-index: 1 !important; font-size: 12px !important; } .terms-and-conditions-settings a { font-weight: bold; text-decoration: none; z-index: 1 !important; } .vti__dropdown-list { width: 290px !important; overflow-x: hidden !important; } .vti__input { z-index: 1 !important; } .vti__dropdown-list { min-height: 6500px !important; } .vti__dropdown-list.above { top: 33px !important; bottom: 0 !important; } .vb-checkbox__checker { z-index: 1 !important; } .kb-bottom-menu { background-color: #FFFFFF; border-top: 1px solid #BBB; border-radius: 5px; display: flex; flex-direction: column; position: absolute; width: 100%; z-index: 2321321312311; bottom: 0; max-height: 90%; } .kb-bottom-menu__title { color: rgba(0, 0, 0, 0.5); padding-left: 16px; vertical-align: middle; } .kb-bottom-menu__header { background-color: white; cursor: default; border-radius: 10px; margin-top: -10px; align-items: center; display: flex; min-height: 48px; width: 100%; animation: fadeUpHead 0.7s ease-in both; animation-delay: 400ms; } @keyframes fadeUpHead { from { opacity: 0; transform: translate3d(0, 50%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-bottom-menu__footer { min-height: 48px; width: 100%; } .kb-bottom-menu__body { height: 100%; overflow-y: auto; width: 100%; } .kb-bottom-menu__close-button { cursor: pointer; display: flex; padding: 16px; } .kb-customized-question-container { text-align: center; } .kb-chip { background: white; border: solid 1px rgba(0, 0, 0, 0.12); border-radius: 25px; cursor: pointer; display: inline-flex; font-size: 13px; margin-left: 5px; margin-top: 5px; padding: 5px 12px; } .kb-chip img { margin-right: 6px; } .kb-customized-question-title { font-weight: bold; padding: 10px; } .kb-helper-link-out-suggestion { background-color: white; border-radius: 15px; margin: 10px 5px; padding: 5px; } .kb-helper-link-out-suggestion a { color: #039be5 !important; text-decoration: none; } .kb-permanent-messages-container { text-align: justify; } .kb-permanent-message { background-color: #e8effb; border-radius: 4px; cursor: default; display: inline-block; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; } .kb-permanent-message a { color: #039be5; text-decoration: none; } .kb-schedule-alert { background-color: #C92239; color: white; cursor: default; padding: 5px 5px 5px 16px; display: flex; align-items: center; } .kb-schedule-alert__message { margin-left: 10px; padding-right: 16px; text-align: justify; } .kb-schedule-alert__message a { color: white; } .kb-schedule-alert__permanent-message { background: white; border-radius: 4px; cursor: default; display: inline-flex; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; } #keybe-webchat { font-family: "Montserrat", sans-serif !important; font-size: 14px !important; z-index: 214748364 !important; /* AUXILIARES */ /* COLORS */ } #keybe-webchat * { z-index: 214748364; } #keybe-webchat .language-toggle { margin-right: 8px; font-size: 17px; font-weight: bold; } #keybe-webchat .kb-welcome-container { word-break: break-word; align-items: center; display: flex; height: 50%; margin-top: -2px; background: rgba(255, 255, 255, 0); z-index: 2222222222222222300; } #keybe-webchat .kb-welcome-text { padding-right: 20px; padding-left: 20px; font-weight: 600; } #keybe-webchat .kb-fade-in-animation { animation: fadeIn 1s ease-in both; } @keyframes fadeIn { from { opacity: 0; transform: translate3d(0, -20%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-in-animation--delay { animation: fadeIn 0.3s ease-in both; } @keyframes fadeIn { from { opacity: 0; transform: translate3d(0, 30%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-animation { animation: fade 0.3s ease-in both; } @keyframes fade { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .slide-fade-enter-active { transition: all 0.3s ease; } #keybe-webchat .slide-fade-leave-active { transition: all 0.3s ease; } #keybe-webchat .slide-fade-enter, #keybe-webchat .slide-fade-leave-to { transform: translateY(56px); opacity: 0; } #keybe-webchat .fade-enter-active, #keybe-webchat .fade-leave-active { transition: opacity 0.2s; } #keybe-webchat .fade-enter, #keybe-webchat .fade-leave-to { opacity: 0; } #keybe-webchat .cursor-pointer { cursor: pointer; } #keybe-webchat .kb-error--text { color: #C92239 !important; } #keybe-webchat .kb-inactivity-container { align-items: center; background-color: white; border-radius: 5px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 70%; max-width: 92%; padding: 20px; position: fixed; text-align: center; width: 360px; z-index: 2147483648; } #keybe-webchat .kb-inactivity-container-left { left: 16px; } #keybe-webchat .kb-inactivity-container-right { right: 16px; } #keybe-webchat .kb-inactivity-container__logo { max-width: 300px; } #keybe-webchat .kb-inactivity-container__close-button { display: inline-flex; padding: 8px; position: absolute; right: 0; top: 0; } #keybe-webchat .kb-whatsapp-button__container { align-items: center; background-color: transparent; border-radius: 5px; bottom: 16px; cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 320px; overflow-y: hidden; max-width: 92%; padding: 20px; position: fixed; text-align: center; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__chat { width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__whatsApp { background-color: #40C451; width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__close { background-color: transparent; border-width: 4px; border-style: solid; width: 52px; height: 52px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-chat-container { background-color: white; border-radius: 10px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); display: flex; flex-direction: column; height: 85vh; max-height: 552px; max-width: 75vh; position: fixed; width: 340px; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__phone { background-color: transparent; min-width: 64px; min-height: 64px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-phone-button__container { position: relative; } #keybe-webchat .kb-phone-button__phones { position: absolute; top: 6px; width: 230px; border-radius: 50px; height: 64px; padding: 6px; } #keybe-webchat .kb-phone-button__phones div { display: flex; align-items: center; justify-content: center; height: 100%; } #keybe-webchat .kb-phone-button__phones div span { font-size: 13px; font-weight: 400; max-width: 45%; font-family: "Montserrat", sans-serif !important; } #keybe-webchat .kb-phone-button__numbers { display: flex; flex-direction: column; margin-left: 20px; } #keybe-webchat .kb-phone-button__numbers h5 { font-size: 13px; padding: 0; margin: 5px 0; } #keybe-webchat .kb-phone-button__phones-right { left: 80px; } #keybe-webchat .kb-phone-button__phones-left { right: 80px; } #keybe-webchat .kb-chat-container-left { left: 16px; overflow: visible; } #keybe-webchat .kb-chat-container-right { right: 16px; overflow: visible; } #keybe-webchat .kb-chat-conversation { background-color: rgba(242, 242, 242, 0.4); display: flex; flex: 1 1 0; flex-direction: column; overflow-y: auto; padding: 0 5px; } #keybe-webchat .kb-message-error { background-color: #C92239; color: white; font-weight: bold; padding: 5px 5px 5px 16px; z-index: 21474836482; } #keybe-webchat .kb-chat-conversation .kb-message:first-child { margin-top: 6px; } #keybe-webchat .kb-chat-header { align-items: center; border-radius: 10px 10px 0 0; cursor: pointer; display: flex; flex-direction: row; height: 54px; z-index: 214748364; } #keybe-webchat .kb-error-connection { background-color: #C92239; border-radius: 10px; bottom: 32px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: default; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; right: 32px; } #keybe-webchat .kb-footer { background-color: rgba(242, 242, 242, 0.4); min-height: 50px; z-index: 2147483649; } #keybe-webchat .kb-message-box { display: flex; flex-direction: row; max-height: 40px; z-index: 2147483649; border-radius: 60px; margin: 3px 10px 10px 10px; box-shadow: 6px 11px 32px -4px rgb(176, 170, 176); } #keybe-webchat .kb-divider { border-bottom: 1px solid rgba(0, 0, 0, 0.1); } #keybe-webchat .kb-font-weight-bold { font-weight: bold; } #keybe-webchat .kb-message-in { background-color: #e8effb; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; animation: bounce-in 2s both; } #keybe-webchat .kb-message-out { background-color: #cdefe8; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 15px 15px 0px 15px/15px 15px 15px 15px; animation: bounce-out 2s both; } #keybe-webchat .kb-message { display: flex; padding-left: 12px; padding-right: 12px; position: relative; margin-bottom: 6px; } @keyframes bounce-out { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform-origin: 90%; transform: scale(0.1); } } @keyframes bounce-in { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform: scale(0.1); } } #keybe-webchat .kb-message-text { padding: 6px 7px 0px 9px; white-space: pre-wrap; word-wrap: break-word; color: black; } #keybe-webchat .kb-message-text a { color: #039be5; text-decoration: none; } #keybe-webchat .kb-message-text a:hover { text-decoration: underline; } #keybe-webchat .kb-ml2 { margin-left: 8px; } #keybe-webchat .kb-mt2 { margin-top: 8px; } #keybe-webchat .kb-mx2 { margin: 0 8px 0 8px; } #keybe-webchat .kb-my2 { margin-bottom: 8px; margin-top: 8px; } #keybe-webchat .kb-powered-container { align-items: center; border-top: solid 1px rgba(0, 0, 0, 0.12); border-radius: 0 0 5px 5px; display: flex; justify-content: flex-end; min-height: 27px; } #keybe-webchat .kb-powered-container a { color: #676767; font-family: "Montserrat", sans-serif !important; font-size: 11px; padding-right: 8px; text-decoration: none; } #keybe-webchat .kb-powered-container-auth-form { align-items: center; color: #676767; cursor: pointer; border-radius: 0 0 5px 5px; display: flex; font-family: "Montserrat", sans-serif !important; font-size: 11px; justify-content: flex-end; padding-top: 6px; text-decoration: none; } #keybe-webchat .kb-px2 { padding: 0 8px 0 8px; } #keybe-webchat .kb-px4 { padding: 0 16px 0 16px; } #keybe-webchat .kb-pointer { cursor: pointer; } #keybe-webchat .kb-reverse { flex-direction: row-reverse; } #keybe-webchat .kb-row { display: flex; flex-direction: row; } #keybe-webchat .kb-spacer { display: flex; flex-grow: 1; } #keybe-webchat .kb-textarea-container { overflow-y: auto; flex: 1 1 auto; flex-grow: 1; min-width: 0; padding: 3px 0 3px 0px; } #keybe-webchat .kb-textarea-container::-webkit-scrollbar { width: 3px; } #keybe-webchat .kb-textarea-container::-webkit-scrollbar-thumb { background-color: #fafafa; } #keybe-webchat .kb-textarea-container [contentEditable=true]:empty:before { content: attr(data-ph); color: rgba(99, 99, 99, 0.705); cursor: text; } #keybe-webchat .kb-textarea-container [contentEditable=false]:empty:before { content: attr(data-ph); color: #C92239; cursor: not-allowed; } #keybe-webchat .kb-textarea { color: black; background-color: rgba(242, 242, 242, 0.4); border-radius: 24px; line-height: 20px; max-height: 100px; max-width: 100%; min-height: 24px; padding: 6px 12px; overflow-x: hidden; overflow-y: auto; white-space: pre-wrap; word-wrap: break-word; } #keybe-webchat .kb-textarea:focus { outline: none; } #keybe-webchat .kb-text-center { text-align: center; } #keybe-webchat .kb-toggle-button { border-radius: 50%; bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-image { bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-button-comfama { border-radius: 3px; bottom: 14px; right: 10px !important; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; box-shadow: 0 1px 6px #d3d3d3, 0 2px 32px #d3d3d3; } #keybe-webchat .kb-drag-zone { height: 100%; flex-shrink: 0; display: flex; position: relative; flex-direction: column; height: 100%; max-height: 100%; overflow-y: auto; animation: scrollIn 0.7s ease-in-out both; } @keyframes scrollIn { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .kb-drop-zone-form { background-color: white; z-index: 99999999999999 !important; position: absolute; width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; } #keybe-webchat .kb-drop-zone-icons { padding: 15px 15px 13px 15px; margin: 10px 10px 3px 10px; border-radius: 50px; min-height: 20px; min-width: 20px; background-color: #d1dae4; color: #aab7c5; } #keybe-webchat .kb-drop-zone-cancel-button { background-color: #aab7c5; border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; margin-right: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-drop-zone__border { align-items: center; box-shadow: -2px 10px 60px -37px rgb(0, 0, 0); border-radius: 8px; box-sizing: border-box; display: flex; flex-direction: column; font-size: 16px; height: 80%; justify-content: center; width: 80%; } #keybe-webchat .drop-zone-preview { border-radius: 8px; max-height: 65%; max-width: 90%; } #keybe-webchat .drop-zone-progress { background-color: grey; border-radius: 30px; box-sizing: border-box; display: flex; align-items: center; margin: 10px; position: relative; width: 90%; overflow: hidden; } #keybe-webchat .kb-drop-zone-button { display: inline-flex; flex-direction: column; justify-content: center; align-items: center; } #keybe-webchat .drop-zone-progress__successful { background-color: #4f8e62; border-radius: 30px; height: 30px; transition: width 0.5s ease; } #keybe-webchat .drop-zone-progress__value { color: white; font-size: 14px; font-weight: normal; position: absolute; text-align: center; width: 100%; } #keybe-webchat .kb-drop-zone-send-button { border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-toggle-button-message { border-radius: 10px; bottom: 32px; box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: pointer; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; } #keybe-webchat .kb-toggle-button-message-comfama { display: none; } #keybe-webchat .kb-toggle-button-left { left: 32px; } #keybe-webchat .kb-toggle-button-right { right: 32px; } #keybe-webchat .kb-toggle-button-message-left { left: 105px; } #keybe-webchat .kb-toggle-button-message-right { right: 105px; } #keybe-webchat .kb-font-weight-bold { font-weight: bold; } #keybe-webchat .black { color: black; } #keybe-webchat .white { color: white; } #keybe-webchat .kb-white--text { color: white !important; } #keybe-webchat .grey { color: #9e9e9e; } #keybe-webchat .red { color: #C92239; } #keybe-webchat ::-webkit-scrollbar { width: 6px !important; height: 6px !important; } #keybe-webchat ::-webkit-scrollbar-thumb { background-color: rgba(0, 0, 0, 0.2); } #keybe-webchat ::-webkit-scrollbar-track { background: hsla(0, 0%, 100%, 0.08); } #keybe-webchat .pswp__ui { z-index: 2147483649 !important; } .vb-checkbox { align-items: center; cursor: pointer; display: flex; flex-direction: row; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .vb-checkbox__checker { align-items: center; background-color: white; border-radius: 4px; box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3) !important; display: flex; font-size: 16px; justify-content: center; margin-right: 8px; min-height: 24px; min-width: 24px; } .tooltip { display: block !important; font-family: "Montserrat", sans-serif !important; font-size: 13px; max-width: 390px; z-index: 2147483649; } .tooltip .tooltip-inner { background: rgba(35, 47, 52, 0.9); color: white; border-radius: 4px; padding: 5px 10px; } .tooltip[x-placement^=top] { margin-bottom: 5px; } .tooltip[x-placement^=bottom] { margin-top: 5px; } .tooltip[x-placement^=right] { margin-left: 5px; } .tooltip[x-placement^=left] { margin-right: 5px; } .tooltip.popover .popover-inner { background: #f9f9f9; color: black; padding: 24px; border-radius: 5px; box-shadow: 0 5px 30px rgba(0, 0, 0, 0.1); } .tooltip.popover .popover-arrow { border-color: #f9f9f9; } .tooltip[aria-hidden=true] { visibility: hidden; opacity: 0; transition: opacity 0.15s, visibility 0.15s; } .tooltip[aria-hidden=false] { visibility: visible; opacity: 1; transition: opacity 0.15s; } .verify-identity-container { background-color: rgba(0, 0, 0, 0.8); border-radius: 5px; color: white; cursor: pointer; font-size: 16px; font-weight: bold; display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; position: absolute; width: 100%; } .timeout-progress-container { background-color: #EEE; border-radius: 5px; } .timeout-progress { border-radius: 5px; height: 10px; transition: 0.5s width; }.kb-toggle-button__pulse[data-v-e8add922] { /* pulse from: https://codepen.io/olam/pen/zcqea */ border-radius: 50%; box-shadow: 0 0 0 rgba(59, 59, 59, 0.4); animation: pulse-e8add922 2s infinite; } @-webkit-keyframes pulse-e8add922 { 0% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -webkit-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } @keyframes pulse-e8add922 { 0% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -moz-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } .expand-y-enter-active[data-v-e8add922], .expand-y-leave-active[data-v-e8add922] { transition: all 0.2s; max-height: 31px; } .expand-y-enter[data-v-e8add922], .expand-y-leave-to[data-v-e8add922] { opacity: 0; max-height: 0; } .kb-auth-container[data-v-e8add922] { padding: 16px 25px 16px 25px; animation: fadeUp-e8add922 0.6s ease-in both; animation-delay: 500ms; overflow: auto; } @keyframes fadeUp-e8add922 { from { opacity: 0; transform: translate3d(0, 10%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-button[data-v-e8add922] { font-family: "Montserrat", sans-serif !important; background-color: #3b3b3b; border: none; border-radius: 50px; color: white; cursor: pointer; padding: 6px; width: 100%; margin-top: 5px; } .kb-input[data-v-e8add922] { background-color: transparent; border: none; border-bottom: 1px solid grey; box-sizing: border-box; font-family: "Montserrat", sans-serif !important; padding: 10px 0 10px 0; width: 100%; color: black; font-size: 13px; } /* Change Autocomplete styles in Chrome*/ input.kb-input[data-v-e8add922]:-webkit-autofill, input.kb-input[data-v-e8add922]:-webkit-autofill:hover, input.kb-input[data-v-e8add922]:-webkit-autofill:focus, textarea.kb-input[data-v-e8add922]:-webkit-autofill, textarea.kb-input[data-v-e8add922]:-webkit-autofill:hover, textarea.kb-input[data-v-e8add922]:-webkit-autofill:focus, select.kb-input[data-v-e8add922]:-webkit-autofill, select.kb-input[data-v-e8add922]:-webkit-autofill:hover, select.kb-input[data-v-e8add922]:-webkit-autofill:focus { border-top: none; border-right: none; border-left: none; border-bottom: 1px solid grey; -webkit-text-fill-color: black; background-color: transparent !important; transition: background-color 5000s ease-in-out 0s; } button.kb-input[data-v-e8add922]:focus, input.kb-input[data-v-e8add922]:focus, textarea.kb-input[data-v-e8add922]:focus, select.kb-input[data-v-e8add922]:focus { border: none; border-bottom: 1px solid grey; outline: none; } .terms-and-conditions-settings[data-v-e8add922] { z-index: 1 !important; font-size: 12px !important; } .terms-and-conditions-settings a[data-v-e8add922] { font-weight: bold; text-decoration: none; z-index: 1 !important; } .vti__dropdown-list[data-v-e8add922] { width: 290px !important; overflow-x: hidden !important; } .vti__input[data-v-e8add922] { z-index: 1 !important; } .vti__dropdown-list[data-v-e8add922] { min-height: 6500px !important; } .vti__dropdown-list.above[data-v-e8add922] { top: 33px !important; bottom: 0 !important; } .vb-checkbox__checker[data-v-e8add922] { z-index: 1 !important; } .kb-bottom-menu[data-v-e8add922] { background-color: #FFFFFF; border-top: 1px solid #BBB; border-radius: 5px; display: flex; flex-direction: column; position: absolute; width: 100%; z-index: 2321321312311; bottom: 0; max-height: 90%; } .kb-bottom-menu__title[data-v-e8add922] { color: rgba(0, 0, 0, 0.5); padding-left: 16px; vertical-align: middle; } .kb-bottom-menu__header[data-v-e8add922] { background-color: white; cursor: default; border-radius: 10px; margin-top: -10px; align-items: center; display: flex; min-height: 48px; width: 100%; animation: fadeUpHead-e8add922 0.7s ease-in both; animation-delay: 400ms; } @keyframes fadeUpHead-e8add922 { from { opacity: 0; transform: translate3d(0, 50%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-bottom-menu__footer[data-v-e8add922] { min-height: 48px; width: 100%; } .kb-bottom-menu__body[data-v-e8add922] { height: 100%; overflow-y: auto; width: 100%; } .kb-bottom-menu__close-button[data-v-e8add922] { cursor: pointer; display: flex; padding: 16px; } .kb-customized-question-container[data-v-e8add922] { text-align: center; } .kb-chip[data-v-e8add922] { background: white; border: solid 1px rgba(0, 0, 0, 0.12); border-radius: 25px; cursor: pointer; display: inline-flex; font-size: 13px; margin-left: 5px; margin-top: 5px; padding: 5px 12px; } .kb-chip img[data-v-e8add922] { margin-right: 6px; } .kb-customized-question-title[data-v-e8add922] { font-weight: bold; padding: 10px; } .kb-helper-link-out-suggestion[data-v-e8add922] { background-color: white; border-radius: 15px; margin: 10px 5px; padding: 5px; } .kb-helper-link-out-suggestion a[data-v-e8add922] { color: #039be5 !important; text-decoration: none; } .kb-permanent-messages-container[data-v-e8add922] { text-align: justify; } .kb-permanent-message[data-v-e8add922] { background-color: #e8effb; border-radius: 4px; cursor: default; display: inline-block; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; } .kb-permanent-message a[data-v-e8add922] { color: #039be5; text-decoration: none; } .kb-schedule-alert[data-v-e8add922] { background-color: #C92239; color: white; cursor: default; padding: 5px 5px 5px 16px; display: flex; align-items: center; } .kb-schedule-alert__message[data-v-e8add922] { margin-left: 10px; padding-right: 16px; text-align: justify; } .kb-schedule-alert__message a[data-v-e8add922] { color: white; } .kb-schedule-alert__permanent-message[data-v-e8add922] { background: white; border-radius: 4px; cursor: default; display: inline-flex; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; } #keybe-webchat[data-v-e8add922] { font-family: "Montserrat", sans-serif !important; font-size: 14px !important; z-index: 214748364 !important; /* AUXILIARES */ /* COLORS */ } #keybe-webchat[data-v-e8add922] * { z-index: 214748364; } #keybe-webchat .language-toggle[data-v-e8add922] { margin-right: 8px; font-size: 17px; font-weight: bold; } #keybe-webchat .kb-welcome-container[data-v-e8add922] { word-break: break-word; align-items: center; display: flex; height: 50%; margin-top: -2px; background: rgba(255, 255, 255, 0); z-index: 2222222222222222300; } #keybe-webchat .kb-welcome-text[data-v-e8add922] { padding-right: 20px; padding-left: 20px; font-weight: 600; } #keybe-webchat .kb-fade-in-animation[data-v-e8add922] { animation: fadeIn-e8add922 1s ease-in both; } @keyframes fadeIn-e8add922 { from { opacity: 0; transform: translate3d(0, -20%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-in-animation--delay[data-v-e8add922] { animation: fadeIn-e8add922 0.3s ease-in both; } @keyframes fadeIn-e8add922 { from { opacity: 0; transform: translate3d(0, 30%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-animation[data-v-e8add922] { animation: fade-e8add922 0.3s ease-in both; } @keyframes fade-e8add922 { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .slide-fade-enter-active[data-v-e8add922] { transition: all 0.3s ease; } #keybe-webchat .slide-fade-leave-active[data-v-e8add922] { transition: all 0.3s ease; } #keybe-webchat .slide-fade-enter[data-v-e8add922], #keybe-webchat .slide-fade-leave-to[data-v-e8add922] { transform: translateY(56px); opacity: 0; } #keybe-webchat .fade-enter-active[data-v-e8add922], #keybe-webchat .fade-leave-active[data-v-e8add922] { transition: opacity 0.2s; } #keybe-webchat .fade-enter[data-v-e8add922], #keybe-webchat .fade-leave-to[data-v-e8add922] { opacity: 0; } #keybe-webchat .cursor-pointer[data-v-e8add922] { cursor: pointer; } #keybe-webchat .kb-error--text[data-v-e8add922] { color: #C92239 !important; } #keybe-webchat .kb-inactivity-container[data-v-e8add922] { align-items: center; background-color: white; border-radius: 5px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 70%; max-width: 92%; padding: 20px; position: fixed; text-align: center; width: 360px; z-index: 2147483648; } #keybe-webchat .kb-inactivity-container-left[data-v-e8add922] { left: 16px; } #keybe-webchat .kb-inactivity-container-right[data-v-e8add922] { right: 16px; } #keybe-webchat .kb-inactivity-container__logo[data-v-e8add922] { max-width: 300px; } #keybe-webchat .kb-inactivity-container__close-button[data-v-e8add922] { display: inline-flex; padding: 8px; position: absolute; right: 0; top: 0; } #keybe-webchat .kb-whatsapp-button__container[data-v-e8add922] { align-items: center; background-color: transparent; border-radius: 5px; bottom: 16px; cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 320px; overflow-y: hidden; max-width: 92%; padding: 20px; position: fixed; text-align: center; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__chat[data-v-e8add922] { width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__whatsApp[data-v-e8add922] { background-color: #40C451; width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__close[data-v-e8add922] { background-color: transparent; border-width: 4px; border-style: solid; width: 52px; height: 52px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-chat-container[data-v-e8add922] { background-color: white; border-radius: 10px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); display: flex; flex-direction: column; height: 85vh; max-height: 552px; max-width: 75vh; position: fixed; width: 340px; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__phone[data-v-e8add922] { background-color: transparent; min-width: 64px; min-height: 64px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-phone-button__container[data-v-e8add922] { position: relative; } #keybe-webchat .kb-phone-button__phones[data-v-e8add922] { position: absolute; top: 6px; width: 230px; border-radius: 50px; height: 64px; padding: 6px; } #keybe-webchat .kb-phone-button__phones div[data-v-e8add922] { display: flex; align-items: center; justify-content: center; height: 100%; } #keybe-webchat .kb-phone-button__phones div span[data-v-e8add922] { font-size: 13px; font-weight: 400; max-width: 45%; font-family: "Montserrat", sans-serif !important; } #keybe-webchat .kb-phone-button__numbers[data-v-e8add922] { display: flex; flex-direction: column; margin-left: 20px; } #keybe-webchat .kb-phone-button__numbers h5[data-v-e8add922] { font-size: 13px; padding: 0; margin: 5px 0; } #keybe-webchat .kb-phone-button__phones-right[data-v-e8add922] { left: 80px; } #keybe-webchat .kb-phone-button__phones-left[data-v-e8add922] { right: 80px; } #keybe-webchat .kb-chat-container-left[data-v-e8add922] { left: 16px; overflow: visible; } #keybe-webchat .kb-chat-container-right[data-v-e8add922] { right: 16px; overflow: visible; } #keybe-webchat .kb-chat-conversation[data-v-e8add922] { background-color: rgba(242, 242, 242, 0.4); display: flex; flex: 1 1 0; flex-direction: column; overflow-y: auto; padding: 0 5px; } #keybe-webchat .kb-message-error[data-v-e8add922] { background-color: #C92239; color: white; font-weight: bold; padding: 5px 5px 5px 16px; z-index: 21474836482; } #keybe-webchat .kb-chat-conversation .kb-message[data-v-e8add922]:first-child { margin-top: 6px; } #keybe-webchat .kb-chat-header[data-v-e8add922] { align-items: center; border-radius: 10px 10px 0 0; cursor: pointer; display: flex; flex-direction: row; height: 54px; z-index: 214748364; } #keybe-webchat .kb-error-connection[data-v-e8add922] { background-color: #C92239; border-radius: 10px; bottom: 32px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: default; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; right: 32px; } #keybe-webchat .kb-footer[data-v-e8add922] { background-color: rgba(242, 242, 242, 0.4); min-height: 50px; z-index: 2147483649; } #keybe-webchat .kb-message-box[data-v-e8add922] { display: flex; flex-direction: row; max-height: 40px; z-index: 2147483649; border-radius: 60px; margin: 3px 10px 10px 10px; box-shadow: 6px 11px 32px -4px rgb(176, 170, 176); } #keybe-webchat .kb-divider[data-v-e8add922] { border-bottom: 1px solid rgba(0, 0, 0, 0.1); } #keybe-webchat .kb-font-weight-bold[data-v-e8add922] { font-weight: bold; } #keybe-webchat .kb-message-in[data-v-e8add922] { background-color: #e8effb; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; animation: bounce-in-e8add922 2s both; } #keybe-webchat .kb-message-out[data-v-e8add922] { background-color: #cdefe8; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 15px 15px 0px 15px/15px 15px 15px 15px; animation: bounce-out-e8add922 2s both; } #keybe-webchat .kb-message[data-v-e8add922] { display: flex; padding-left: 12px; padding-right: 12px; position: relative; margin-bottom: 6px; } @keyframes bounce-out-e8add922 { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform-origin: 90%; transform: scale(0.1); } } @keyframes bounce-in-e8add922 { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform: scale(0.1); } } #keybe-webchat .kb-message-text[data-v-e8add922] { padding: 6px 7px 0px 9px; white-space: pre-wrap; word-wrap: break-word; color: black; } #keybe-webchat .kb-message-text a[data-v-e8add922] { color: #039be5; text-decoration: none; } #keybe-webchat .kb-message-text a[data-v-e8add922]:hover { text-decoration: underline; } #keybe-webchat .kb-ml2[data-v-e8add922] { margin-left: 8px; } #keybe-webchat .kb-mt2[data-v-e8add922] { margin-top: 8px; } #keybe-webchat .kb-mx2[data-v-e8add922] { margin: 0 8px 0 8px; } #keybe-webchat .kb-my2[data-v-e8add922] { margin-bottom: 8px; margin-top: 8px; } #keybe-webchat .kb-powered-container[data-v-e8add922] { align-items: center; border-top: solid 1px rgba(0, 0, 0, 0.12); border-radius: 0 0 5px 5px; display: flex; justify-content: flex-end; min-height: 27px; } #keybe-webchat .kb-powered-container a[data-v-e8add922] { color: #676767; font-family: "Montserrat", sans-serif !important; font-size: 11px; padding-right: 8px; text-decoration: none; } #keybe-webchat .kb-powered-container-auth-form[data-v-e8add922] { align-items: center; color: #676767; cursor: pointer; border-radius: 0 0 5px 5px; display: flex; font-family: "Montserrat", sans-serif !important; font-size: 11px; justify-content: flex-end; padding-top: 6px; text-decoration: none; } #keybe-webchat .kb-px2[data-v-e8add922] { padding: 0 8px 0 8px; } #keybe-webchat .kb-px4[data-v-e8add922] { padding: 0 16px 0 16px; } #keybe-webchat .kb-pointer[data-v-e8add922] { cursor: pointer; } #keybe-webchat .kb-reverse[data-v-e8add922] { flex-direction: row-reverse; } #keybe-webchat .kb-row[data-v-e8add922] { display: flex; flex-direction: row; } #keybe-webchat .kb-spacer[data-v-e8add922] { display: flex; flex-grow: 1; } #keybe-webchat .kb-textarea-container[data-v-e8add922] { overflow-y: auto; flex: 1 1 auto; flex-grow: 1; min-width: 0; padding: 3px 0 3px 0px; } #keybe-webchat .kb-textarea-container[data-v-e8add922]::-webkit-scrollbar { width: 3px; } #keybe-webchat .kb-textarea-container[data-v-e8add922]::-webkit-scrollbar-thumb { background-color: #fafafa; } #keybe-webchat .kb-textarea-container [contentEditable=true][data-v-e8add922]:empty:before { content: attr(data-ph); color: rgba(99, 99, 99, 0.705); cursor: text; } #keybe-webchat .kb-textarea-container [contentEditable=false][data-v-e8add922]:empty:before { content: attr(data-ph); color: #C92239; cursor: not-allowed; } #keybe-webchat .kb-textarea[data-v-e8add922] { color: black; background-color: rgba(242, 242, 242, 0.4); border-radius: 24px; line-height: 20px; max-height: 100px; max-width: 100%; min-height: 24px; padding: 6px 12px; overflow-x: hidden; overflow-y: auto; white-space: pre-wrap; word-wrap: break-word; } #keybe-webchat .kb-textarea[data-v-e8add922]:focus { outline: none; } #keybe-webchat .kb-text-center[data-v-e8add922] { text-align: center; } #keybe-webchat .kb-toggle-button[data-v-e8add922] { border-radius: 50%; bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-image[data-v-e8add922] { bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-button-comfama[data-v-e8add922] { border-radius: 3px; bottom: 14px; right: 10px !important; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; box-shadow: 0 1px 6px #d3d3d3, 0 2px 32px #d3d3d3; } #keybe-webchat .kb-drag-zone[data-v-e8add922] { height: 100%; flex-shrink: 0; display: flex; position: relative; flex-direction: column; height: 100%; max-height: 100%; overflow-y: auto; animation: scrollIn-e8add922 0.7s ease-in-out both; } @keyframes scrollIn-e8add922 { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .kb-drop-zone-form[data-v-e8add922] { background-color: white; z-index: 99999999999999 !important; position: absolute; width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; } #keybe-webchat .kb-drop-zone-icons[data-v-e8add922] { padding: 15px 15px 13px 15px; margin: 10px 10px 3px 10px; border-radius: 50px; min-height: 20px; min-width: 20px; background-color: #d1dae4; color: #aab7c5; } #keybe-webchat .kb-drop-zone-cancel-button[data-v-e8add922] { background-color: #aab7c5; border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; margin-right: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-drop-zone__border[data-v-e8add922] { align-items: center; box-shadow: -2px 10px 60px -37px rgb(0, 0, 0); border-radius: 8px; box-sizing: border-box; display: flex; flex-direction: column; font-size: 16px; height: 80%; justify-content: center; width: 80%; } #keybe-webchat .drop-zone-preview[data-v-e8add922] { border-radius: 8px; max-height: 65%; max-width: 90%; } #keybe-webchat .drop-zone-progress[data-v-e8add922] { background-color: grey; border-radius: 30px; box-sizing: border-box; display: flex; align-items: center; margin: 10px; position: relative; width: 90%; overflow: hidden; } #keybe-webchat .kb-drop-zone-button[data-v-e8add922] { display: inline-flex; flex-direction: column; justify-content: center; align-items: center; } #keybe-webchat .drop-zone-progress__successful[data-v-e8add922] { background-color: #4f8e62; border-radius: 30px; height: 30px; transition: width 0.5s ease; } #keybe-webchat .drop-zone-progress__value[data-v-e8add922] { color: white; font-size: 14px; font-weight: normal; position: absolute; text-align: center; width: 100%; } #keybe-webchat .kb-drop-zone-send-button[data-v-e8add922] { border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-toggle-button-message[data-v-e8add922] { border-radius: 10px; bottom: 32px; box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: pointer; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; } #keybe-webchat .kb-toggle-button-message-comfama[data-v-e8add922] { display: none; } #keybe-webchat .kb-toggle-button-left[data-v-e8add922] { left: 32px; } #keybe-webchat .kb-toggle-button-right[data-v-e8add922] { right: 32px; } #keybe-webchat .kb-toggle-button-message-left[data-v-e8add922] { left: 105px; } #keybe-webchat .kb-toggle-button-message-right[data-v-e8add922] { right: 105px; } #keybe-webchat .kb-font-weight-bold[data-v-e8add922] { font-weight: bold; } #keybe-webchat .black[data-v-e8add922] { color: black; } #keybe-webchat .white[data-v-e8add922] { color: white; } #keybe-webchat .kb-white--text[data-v-e8add922] { color: white !important; } #keybe-webchat .grey[data-v-e8add922] { color: #9e9e9e; } #keybe-webchat .red[data-v-e8add922] { color: #C92239; } #keybe-webchat[data-v-e8add922] ::-webkit-scrollbar { width: 6px !important; height: 6px !important; } #keybe-webchat[data-v-e8add922] ::-webkit-scrollbar-thumb { background-color: rgba(0, 0, 0, 0.2); } #keybe-webchat[data-v-e8add922] ::-webkit-scrollbar-track { background: hsla(0, 0%, 100%, 0.08); } #keybe-webchat .pswp__ui[data-v-e8add922] { z-index: 2147483649 !important; } .vb-checkbox[data-v-e8add922] { align-items: center; cursor: pointer; display: flex; flex-direction: row; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .vb-checkbox__checker[data-v-e8add922] { align-items: center; background-color: white; border-radius: 4px; box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3) !important; display: flex; font-size: 16px; justify-content: center; margin-right: 8px; min-height: 24px; min-width: 24px; } .tooltip[data-v-e8add922] { display: block !important; font-family: "Montserrat", sans-serif !important; font-size: 13px; max-width: 390px; z-index: 2147483649; } .tooltip .tooltip-inner[data-v-e8add922] { background: rgba(35, 47, 52, 0.9); color: white; border-radius: 4px; padding: 5px 10px; } .tooltip[x-placement^=top][data-v-e8add922] { margin-bottom: 5px; } .tooltip[x-placement^=bottom][data-v-e8add922] { margin-top: 5px; } .tooltip[x-placement^=right][data-v-e8add922] { margin-left: 5px; } .tooltip[x-placement^=left][data-v-e8add922] { margin-right: 5px; } .tooltip.popover .popover-inner[data-v-e8add922] { background: #f9f9f9; color: black; padding: 24px; border-radius: 5px; box-shadow: 0 5px 30px rgba(0, 0, 0, 0.1); } .tooltip.popover .popover-arrow[data-v-e8add922] { border-color: #f9f9f9; } .tooltip[aria-hidden=true][data-v-e8add922] { visibility: hidden; opacity: 0; transition: opacity 0.15s, visibility 0.15s; } .tooltip[aria-hidden=false][data-v-e8add922] { visibility: visible; opacity: 1; transition: opacity 0.15s; } .KBImageModal-modal[data-v-e8add922] { position: absolute; width: 100vw; height: 100vh; top: 0; right: 0; z-index: 999999999999999 !important; background-color: rgba(0, 0, 0, 0.8); display: flex; flex-direction: column; align-items: center; } .KBImageModal-modal .KBImageModal-modal-row[data-v-e8add922] { width: 100%; display: flex; justify-content: flex-end; align-items: center; padding: 2rem; } .KBImageModal-modal .KBImageModal-imageContainer[data-v-e8add922] { margin: auto; } .KBImageModal-modal .KBImageModal-imageContainer img[data-v-e8add922] { width: 80%; height: auto; max-height: 800px; margin: auto; border-radius: 4px; animation-name: zoom-e8add922; animation-duration: 0.6s; } @keyframes zoom-e8add922 { from { transform: scale(0.1); } to { transform: scale(1); } }.kb-toggle-button__pulse { /* pulse from: https://codepen.io/olam/pen/zcqea */ border-radius: 50%; box-shadow: 0 0 0 rgba(59, 59, 59, 0.4); animation: pulse 2s infinite; } @-webkit-keyframes pulse { 0% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -webkit-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -webkit-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } @keyframes pulse { 0% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0.4); } 70% { -moz-box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); box-shadow: 0 0 0 35px rgba(59, 59, 59, 0); } 100% { -moz-box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); box-shadow: 0 0 0 0 rgba(59, 59, 59, 0); } } .expand-y-enter-active, .expand-y-leave-active { transition: all 0.2s; max-height: 31px; } .expand-y-enter, .expand-y-leave-to { opacity: 0; max-height: 0; } .kb-auth-container { padding: 16px 25px 16px 25px; animation: fadeUp 0.6s ease-in both; animation-delay: 500ms; overflow: auto; } @keyframes fadeUp { from { opacity: 0; transform: translate3d(0, 10%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-button { font-family: "Montserrat", sans-serif !important; background-color: #3b3b3b; border: none; border-radius: 50px; color: white; cursor: pointer; padding: 6px; width: 100%; margin-top: 5px; } .kb-input { background-color: transparent; border: none; border-bottom: 1px solid grey; box-sizing: border-box; font-family: "Montserrat", sans-serif !important; padding: 10px 0 10px 0; width: 100%; color: black; font-size: 13px; } /* Change Autocomplete styles in Chrome*/ input.kb-input:-webkit-autofill, input.kb-input:-webkit-autofill:hover, input.kb-input:-webkit-autofill:focus, textarea.kb-input:-webkit-autofill, textarea.kb-input:-webkit-autofill:hover, textarea.kb-input:-webkit-autofill:focus, select.kb-input:-webkit-autofill, select.kb-input:-webkit-autofill:hover, select.kb-input:-webkit-autofill:focus { border-top: none; border-right: none; border-left: none; border-bottom: 1px solid grey; -webkit-text-fill-color: black; background-color: transparent !important; transition: background-color 5000s ease-in-out 0s; } button.kb-input:focus, input.kb-input:focus, textarea.kb-input:focus, select.kb-input:focus { border: none; border-bottom: 1px solid grey; outline: none; } .terms-and-conditions-settings { z-index: 1 !important; font-size: 12px !important; } .terms-and-conditions-settings a { font-weight: bold; text-decoration: none; z-index: 1 !important; } .vti__dropdown-list { width: 290px !important; overflow-x: hidden !important; } .vti__input { z-index: 1 !important; } .vti__dropdown-list { min-height: 6500px !important; } .vti__dropdown-list.above { top: 33px !important; bottom: 0 !important; } .vb-checkbox__checker { z-index: 1 !important; } .kb-bottom-menu { background-color: #FFFFFF; border-top: 1px solid #BBB; border-radius: 5px; display: flex; flex-direction: column; position: absolute; width: 100%; z-index: 2321321312311; bottom: 0; max-height: 90%; } .kb-bottom-menu__title { color: rgba(0, 0, 0, 0.5); padding-left: 16px; vertical-align: middle; } .kb-bottom-menu__header { background-color: white; cursor: default; border-radius: 10px; margin-top: -10px; align-items: center; display: flex; min-height: 48px; width: 100%; animation: fadeUpHead 0.7s ease-in both; animation-delay: 400ms; } @keyframes fadeUpHead { from { opacity: 0; transform: translate3d(0, 50%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .kb-bottom-menu__footer { min-height: 48px; width: 100%; } .kb-bottom-menu__body { height: 100%; overflow-y: auto; width: 100%; } .kb-bottom-menu__close-button { cursor: pointer; display: flex; padding: 16px; } .kb-customized-question-container { text-align: center; } .kb-chip { background: white; border: solid 1px rgba(0, 0, 0, 0.12); border-radius: 25px; cursor: pointer; display: inline-flex; font-size: 13px; margin-left: 5px; margin-top: 5px; padding: 5px 12px; } .kb-chip img { margin-right: 6px; } .kb-customized-question-title { font-weight: bold; padding: 10px; } .kb-helper-link-out-suggestion { background-color: white; border-radius: 15px; margin: 10px 5px; padding: 5px; } .kb-helper-link-out-suggestion a { color: #039be5 !important; text-decoration: none; } .kb-permanent-messages-container { text-align: justify; } .kb-permanent-message { background-color: #e8effb; border-radius: 4px; cursor: default; display: inline-block; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; } .kb-permanent-message a { color: #039be5; text-decoration: none; } .kb-schedule-alert { background-color: #C92239; color: white; cursor: default; padding: 5px 5px 5px 16px; display: flex; align-items: center; } .kb-schedule-alert__message { margin-left: 10px; padding-right: 16px; text-align: justify; } .kb-schedule-alert__message a { color: white; } .kb-schedule-alert__permanent-message { background: white; border-radius: 4px; cursor: default; display: inline-flex; font-size: 13px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding: 6px 12px; } #keybe-webchat { font-family: "Montserrat", sans-serif !important; font-size: 14px !important; z-index: 214748364 !important; /* AUXILIARES */ /* COLORS */ } #keybe-webchat * { z-index: 214748364; } #keybe-webchat .language-toggle { margin-right: 8px; font-size: 17px; font-weight: bold; } #keybe-webchat .kb-welcome-container { word-break: break-word; align-items: center; display: flex; height: 50%; margin-top: -2px; background: rgba(255, 255, 255, 0); z-index: 2222222222222222300; } #keybe-webchat .kb-welcome-text { padding-right: 20px; padding-left: 20px; font-weight: 600; } #keybe-webchat .kb-fade-in-animation { animation: fadeIn 1s ease-in both; } @keyframes fadeIn { from { opacity: 0; transform: translate3d(0, -20%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-in-animation--delay { animation: fadeIn 0.3s ease-in both; } @keyframes fadeIn { from { opacity: 0; transform: translate3d(0, 30%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } #keybe-webchat .kb-fade-animation { animation: fade 0.3s ease-in both; } @keyframes fade { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .slide-fade-enter-active { transition: all 0.3s ease; } #keybe-webchat .slide-fade-leave-active { transition: all 0.3s ease; } #keybe-webchat .slide-fade-enter, #keybe-webchat .slide-fade-leave-to { transform: translateY(56px); opacity: 0; } #keybe-webchat .fade-enter-active, #keybe-webchat .fade-leave-active { transition: opacity 0.2s; } #keybe-webchat .fade-enter, #keybe-webchat .fade-leave-to { opacity: 0; } #keybe-webchat .cursor-pointer { cursor: pointer; } #keybe-webchat .kb-error--text { color: #C92239 !important; } #keybe-webchat .kb-inactivity-container { align-items: center; background-color: white; border-radius: 5px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 70%; max-width: 92%; padding: 20px; position: fixed; text-align: center; width: 360px; z-index: 2147483648; } #keybe-webchat .kb-inactivity-container-left { left: 16px; } #keybe-webchat .kb-inactivity-container-right { right: 16px; } #keybe-webchat .kb-inactivity-container__logo { max-width: 300px; } #keybe-webchat .kb-inactivity-container__close-button { display: inline-flex; padding: 8px; position: absolute; right: 0; top: 0; } #keybe-webchat .kb-whatsapp-button__container { align-items: center; background-color: transparent; border-radius: 5px; bottom: 16px; cursor: pointer; display: flex; flex-direction: column; font-size: 26px; max-height: 320px; overflow-y: hidden; max-width: 92%; padding: 20px; position: fixed; text-align: center; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__chat { width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__whatsApp { background-color: #40C451; width: 58px; height: 58px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-whatsapp-button__close { background-color: transparent; border-width: 4px; border-style: solid; width: 52px; height: 52px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-chat-container { background-color: white; border-radius: 10px; bottom: 16px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); display: flex; flex-direction: column; height: 85vh; max-height: 552px; max-width: 75vh; position: fixed; width: 340px; z-index: 2147483648; } #keybe-webchat .kb-whatsapp-button__phone { background-color: transparent; min-width: 64px; min-height: 64px; border-radius: 64px; display: flex; justify-content: center; align-items: center; margin: 10px 0; } #keybe-webchat .kb-phone-button__container { position: relative; } #keybe-webchat .kb-phone-button__phones { position: absolute; top: 6px; width: 230px; border-radius: 50px; height: 64px; padding: 6px; } #keybe-webchat .kb-phone-button__phones div { display: flex; align-items: center; justify-content: center; height: 100%; } #keybe-webchat .kb-phone-button__phones div span { font-size: 13px; font-weight: 400; max-width: 45%; font-family: "Montserrat", sans-serif !important; } #keybe-webchat .kb-phone-button__numbers { display: flex; flex-direction: column; margin-left: 20px; } #keybe-webchat .kb-phone-button__numbers h5 { font-size: 13px; padding: 0; margin: 5px 0; } #keybe-webchat .kb-phone-button__phones-right { left: 80px; } #keybe-webchat .kb-phone-button__phones-left { right: 80px; } #keybe-webchat .kb-chat-container-left { left: 16px; overflow: visible; } #keybe-webchat .kb-chat-container-right { right: 16px; overflow: visible; } #keybe-webchat .kb-chat-conversation { background-color: rgba(242, 242, 242, 0.4); display: flex; flex: 1 1 0; flex-direction: column; overflow-y: auto; padding: 0 5px; } #keybe-webchat .kb-message-error { background-color: #C92239; color: white; font-weight: bold; padding: 5px 5px 5px 16px; z-index: 21474836482; } #keybe-webchat .kb-chat-conversation .kb-message:first-child { margin-top: 6px; } #keybe-webchat .kb-chat-header { align-items: center; border-radius: 10px 10px 0 0; cursor: pointer; display: flex; flex-direction: row; height: 54px; z-index: 214748364; } #keybe-webchat .kb-error-connection { background-color: #C92239; border-radius: 10px; bottom: 32px; box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: default; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; right: 32px; } #keybe-webchat .kb-footer { background-color: rgba(242, 242, 242, 0.4); min-height: 50px; z-index: 2147483649; } #keybe-webchat .kb-message-box { display: flex; flex-direction: row; max-height: 40px; z-index: 2147483649; border-radius: 60px; margin: 3px 10px 10px 10px; box-shadow: 6px 11px 32px -4px rgb(176, 170, 176); } #keybe-webchat .kb-divider { border-bottom: 1px solid rgba(0, 0, 0, 0.1); } #keybe-webchat .kb-font-weight-bold { font-weight: bold; } #keybe-webchat .kb-message-in { background-color: #e8effb; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 0px 15px 15px 15px/15px 15px 15px 15px; animation: bounce-in 2s both; } #keybe-webchat .kb-message-out { background-color: #cdefe8; border-radius: 5px; max-width: 100%; width: max-content; border-radius: 15px 15px 0px 15px/15px 15px 15px 15px; animation: bounce-out 2s both; } #keybe-webchat .kb-message { display: flex; padding-left: 12px; padding-right: 12px; position: relative; margin-bottom: 6px; } @keyframes bounce-out { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform-origin: 90%; transform: scale(0.1); } } @keyframes bounce-in { 20%, 40%, 50%, 60%, 80%, 100% { transform: scale(1); } 0% { transform: scale(0.1); } } #keybe-webchat .kb-message-text { padding: 6px 7px 0px 9px; white-space: pre-wrap; word-wrap: break-word; color: black; } #keybe-webchat .kb-message-text a { color: #039be5; text-decoration: none; } #keybe-webchat .kb-message-text a:hover { text-decoration: underline; } #keybe-webchat .kb-ml2 { margin-left: 8px; } #keybe-webchat .kb-mt2 { margin-top: 8px; } #keybe-webchat .kb-mx2 { margin: 0 8px 0 8px; } #keybe-webchat .kb-my2 { margin-bottom: 8px; margin-top: 8px; } #keybe-webchat .kb-powered-container { align-items: center; border-top: solid 1px rgba(0, 0, 0, 0.12); border-radius: 0 0 5px 5px; display: flex; justify-content: flex-end; min-height: 27px; } #keybe-webchat .kb-powered-container a { color: #676767; font-family: "Montserrat", sans-serif !important; font-size: 11px; padding-right: 8px; text-decoration: none; } #keybe-webchat .kb-powered-container-auth-form { align-items: center; color: #676767; cursor: pointer; border-radius: 0 0 5px 5px; display: flex; font-family: "Montserrat", sans-serif !important; font-size: 11px; justify-content: flex-end; padding-top: 6px; text-decoration: none; } #keybe-webchat .kb-px2 { padding: 0 8px 0 8px; } #keybe-webchat .kb-px4 { padding: 0 16px 0 16px; } #keybe-webchat .kb-pointer { cursor: pointer; } #keybe-webchat .kb-reverse { flex-direction: row-reverse; } #keybe-webchat .kb-row { display: flex; flex-direction: row; } #keybe-webchat .kb-spacer { display: flex; flex-grow: 1; } #keybe-webchat .kb-textarea-container { overflow-y: auto; flex: 1 1 auto; flex-grow: 1; min-width: 0; padding: 3px 0 3px 0px; } #keybe-webchat .kb-textarea-container::-webkit-scrollbar { width: 3px; } #keybe-webchat .kb-textarea-container::-webkit-scrollbar-thumb { background-color: #fafafa; } #keybe-webchat .kb-textarea-container [contentEditable=true]:empty:before { content: attr(data-ph); color: rgba(99, 99, 99, 0.705); cursor: text; } #keybe-webchat .kb-textarea-container [contentEditable=false]:empty:before { content: attr(data-ph); color: #C92239; cursor: not-allowed; } #keybe-webchat .kb-textarea { color: black; background-color: rgba(242, 242, 242, 0.4); border-radius: 24px; line-height: 20px; max-height: 100px; max-width: 100%; min-height: 24px; padding: 6px 12px; overflow-x: hidden; overflow-y: auto; white-space: pre-wrap; word-wrap: break-word; } #keybe-webchat .kb-textarea:focus { outline: none; } #keybe-webchat .kb-text-center { text-align: center; } #keybe-webchat .kb-toggle-button { border-radius: 50%; bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-image { bottom: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; } #keybe-webchat .kb-toggle-button-comfama { border-radius: 3px; bottom: 14px; right: 10px !important; cursor: pointer; display: flex; justify-content: center; align-items: center; position: fixed; z-index: 2147483648 !important; box-shadow: 0 1px 6px #d3d3d3, 0 2px 32px #d3d3d3; } #keybe-webchat .kb-drag-zone { height: 100%; flex-shrink: 0; display: flex; position: relative; flex-direction: column; height: 100%; max-height: 100%; overflow-y: auto; animation: scrollIn 0.7s ease-in-out both; } @keyframes scrollIn { from { opacity: 0; } to { opacity: 1; } } #keybe-webchat .kb-drop-zone-form { background-color: white; z-index: 99999999999999 !important; position: absolute; width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; } #keybe-webchat .kb-drop-zone-icons { padding: 15px 15px 13px 15px; margin: 10px 10px 3px 10px; border-radius: 50px; min-height: 20px; min-width: 20px; background-color: #d1dae4; color: #aab7c5; } #keybe-webchat .kb-drop-zone-cancel-button { background-color: #aab7c5; border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; margin-right: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-drop-zone__border { align-items: center; box-shadow: -2px 10px 60px -37px rgb(0, 0, 0); border-radius: 8px; box-sizing: border-box; display: flex; flex-direction: column; font-size: 16px; height: 80%; justify-content: center; width: 80%; } #keybe-webchat .drop-zone-preview { border-radius: 8px; max-height: 65%; max-width: 90%; } #keybe-webchat .drop-zone-progress { background-color: grey; border-radius: 30px; box-sizing: border-box; display: flex; align-items: center; margin: 10px; position: relative; width: 90%; overflow: hidden; } #keybe-webchat .kb-drop-zone-button { display: inline-flex; flex-direction: column; justify-content: center; align-items: center; } #keybe-webchat .drop-zone-progress__successful { background-color: #4f8e62; border-radius: 30px; height: 30px; transition: width 0.5s ease; } #keybe-webchat .drop-zone-progress__value { color: white; font-size: 14px; font-weight: normal; position: absolute; text-align: center; width: 100%; } #keybe-webchat .kb-drop-zone-send-button { border-radius: 50px; color: white; cursor: pointer; font-size: 14px; margin-top: 8px; min-width: 81px; padding: 8px; text-align: center; } #keybe-webchat .kb-toggle-button-message { border-radius: 10px; bottom: 32px; box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12); color: white; cursor: pointer; display: flex; font-weight: bold; line-height: normal; padding: 5px 15px; position: fixed; } #keybe-webchat .kb-toggle-button-message-comfama { display: none; } #keybe-webchat .kb-toggle-button-left { left: 32px; } #keybe-webchat .kb-toggle-button-right { right: 32px; } #keybe-webchat .kb-toggle-button-message-left { left: 105px; } #keybe-webchat .kb-toggle-button-message-right { right: 105px; } #keybe-webchat .kb-font-weight-bold { font-weight: bold; } #keybe-webchat .black { color: black; } #keybe-webchat .white { color: white; } #keybe-webchat .kb-white--text { color: white !important; } #keybe-webchat .grey { color: #9e9e9e; } #keybe-webchat .red { color: #C92239; } #keybe-webchat ::-webkit-scrollbar { width: 6px !important; height: 6px !important; } #keybe-webchat ::-webkit-scrollbar-thumb { background-color: rgba(0, 0, 0, 0.2); } #keybe-webchat ::-webkit-scrollbar-track { background: hsla(0, 0%, 100%, 0.08); } #keybe-webchat .pswp__ui { z-index: 2147483649 !important; } .vb-checkbox { align-items: center; cursor: pointer; display: flex; flex-direction: row; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .vb-checkbox__checker { align-items: center; background-color: white; border-radius: 4px; box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3) !important; display: flex; font-size: 16px; justify-content: center; margin-right: 8px; min-height: 24px; min-width: 24px; } .tooltip { display: block !important; font-family: "Montserrat", sans-serif !important; font-size: 13px; max-width: 390px; z-index: 2147483649; } .tooltip .tooltip-inner { background: rgba(35, 47, 52, 0.9); color: white; border-radius: 4px; padding: 5px 10px; } .tooltip[x-placement^=top] { margin-bottom: 5px; } .tooltip[x-placement^=bottom] { margin-top: 5px; } .tooltip[x-placement^=right] { margin-left: 5px; } .tooltip[x-placement^=left] { margin-right: 5px; } .tooltip.popover .popover-inner { background: #f9f9f9; color: black; padding: 24px; border-radius: 5px; box-shadow: 0 5px 30px rgba(0, 0, 0, 0.1); } .tooltip.popover .popover-arrow { border-color: #f9f9f9; } .tooltip[aria-hidden=true] { visibility: hidden; opacity: 0; transition: opacity 0.15s, visibility 0.15s; } .tooltip[aria-hidden=false] { visibility: visible; opacity: 1; transition: opacity 0.15s; } .kb-dropdown { background-color: #f1f1f1; border-radius: 3px; box-shadow: 0px 4px 8px 0px rgba(0, 0, 0, 0.2); box-sizing: border-box; overflow: auto; padding: 10px; position: absolute; right: 5px; top: 59px; width: 250px; z-index: 10000000000000000000000 !important; } .isDragZoneOpen { overflow: hidden !important; } .isNotOpen { display: flex; }.vti__flag{width:20px}.vti__flag.be{width:18px}.vti__flag.ch{width:15px}.vti__flag.mc{width:19px}.vti__flag.ne{width:18px}.vti__flag.np{width:13px}.vti__flag.va{width:15px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2),only screen and (min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx){.vti__flag{background-size:5630px 15px}}.vti__flag.ac{height:10px;background-position:0px 0px}.vti__flag.ad{height:14px;background-position:-22px 0px}.vti__flag.ae{height:10px;background-position:-44px 0px}.vti__flag.af{height:14px;background-position:-66px 0px}.vti__flag.ag{height:14px;background-position:-88px 0px}.vti__flag.ai{height:10px;background-position:-110px 0px}.vti__flag.al{height:15px;background-position:-132px 0px}.vti__flag.am{height:10px;background-position:-154px 0px}.vti__flag.ao{height:14px;background-position:-176px 0px}.vti__flag.aq{height:14px;background-position:-198px 0px}.vti__flag.ar{height:13px;background-position:-220px 0px}.vti__flag.as{height:10px;background-position:-242px 0px}.vti__flag.at{height:14px;background-position:-264px 0px}.vti__flag.au{height:10px;background-position:-286px 0px}.vti__flag.aw{height:14px;background-position:-308px 0px}.vti__flag.ax{height:13px;background-position:-330px 0px}.vti__flag.az{height:10px;background-position:-352px 0px}.vti__flag.ba{height:10px;background-position:-374px 0px}.vti__flag.bb{height:14px;background-position:-396px 0px}.vti__flag.bd{height:12px;background-position:-418px 0px}.vti__flag.be{height:15px;background-position:-440px 0px}.vti__flag.bf{height:14px;background-position:-460px 0px}.vti__flag.bg{height:12px;background-position:-482px 0px}.vti__flag.bh{height:12px;background-position:-504px 0px}.vti__flag.bi{height:12px;background-position:-526px 0px}.vti__flag.bj{height:14px;background-position:-548px 0px}.vti__flag.bl{height:14px;background-position:-570px 0px}.vti__flag.bm{height:10px;background-position:-592px 0px}.vti__flag.bn{height:10px;background-position:-614px 0px}.vti__flag.bo{height:14px;background-position:-636px 0px}.vti__flag.bq{height:14px;background-position:-658px 0px}.vti__flag.br{height:14px;background-position:-680px 0px}.vti__flag.bs{height:10px;background-position:-702px 0px}.vti__flag.bt{height:14px;background-position:-724px 0px}.vti__flag.bv{height:15px;background-position:-746px 0px}.vti__flag.bw{height:14px;background-position:-768px 0px}.vti__flag.by{height:10px;background-position:-790px 0px}.vti__flag.bz{height:14px;background-position:-812px 0px}.vti__flag.ca{height:10px;background-position:-834px 0px}.vti__flag.cc{height:10px;background-position:-856px 0px}.vti__flag.cd{height:15px;background-position:-878px 0px}.vti__flag.cf{height:14px;background-position:-900px 0px}.vti__flag.cg{height:14px;background-position:-922px 0px}.vti__flag.ch{height:15px;background-position:-944px 0px}.vti__flag.ci{height:14px;background-position:-961px 0px}.vti__flag.ck{height:10px;background-position:-983px 0px}.vti__flag.cl{height:14px;background-position:-1005px 0px}.vti__flag.cm{height:14px;background-position:-1027px 0px}.vti__flag.cn{height:14px;background-position:-1049px 0px}.vti__flag.co{height:14px;background-position:-1071px 0px}.vti__flag.cp{height:14px;background-position:-1093px 0px}.vti__flag.cr{height:12px;background-position:-1115px 0px}.vti__flag.cu{height:10px;background-position:-1137px 0px}.vti__flag.cv{height:12px;background-position:-1159px 0px}.vti__flag.cw{height:14px;background-position:-1181px 0px}.vti__flag.cx{height:10px;background-position:-1203px 0px}.vti__flag.cy{height:14px;background-position:-1225px 0px}.vti__flag.cz{height:14px;background-position:-1247px 0px}.vti__flag.de{height:12px;background-position:-1269px 0px}.vti__flag.dg{height:10px;background-position:-1291px 0px}.vti__flag.dj{height:14px;background-position:-1313px 0px}.vti__flag.dk{height:15px;background-position:-1335px 0px}.vti__flag.dm{height:10px;background-position:-1357px 0px}.vti__flag.do{height:13px;background-position:-1379px 0px}.vti__flag.dz{height:14px;background-position:-1401px 0px}.vti__flag.ea{height:14px;background-position:-1423px 0px}.vti__flag.ec{height:14px;background-position:-1445px 0px}.vti__flag.ee{height:13px;background-position:-1467px 0px}.vti__flag.eg{height:14px;background-position:-1489px 0px}.vti__flag.eh{height:10px;background-position:-1511px 0px}.vti__flag.er{height:10px;background-position:-1533px 0px}.vti__flag.es{height:14px;background-position:-1555px 0px}.vti__flag.et{height:10px;background-position:-1577px 0px}.vti__flag.eu{height:14px;background-position:-1599px 0px}.vti__flag.fi{height:12px;background-position:-1621px 0px}.vti__flag.fj{height:10px;background-position:-1643px 0px}.vti__flag.fk{height:10px;background-position:-1665px 0px}.vti__flag.fm{height:11px;background-position:-1687px 0px}.vti__flag.fo{height:15px;background-position:-1709px 0px}.vti__flag.fr{height:14px;background-position:-1731px 0px}.vti__flag.ga{height:15px;background-position:-1753px 0px}.vti__flag.gb{height:10px;background-position:-1775px 0px}.vti__flag.gd{height:12px;background-position:-1797px 0px}.vti__flag.ge{height:14px;background-position:-1819px 0px}.vti__flag.gf{height:14px;background-position:-1841px 0px}.vti__flag.gg{height:14px;background-position:-1863px 0px}.vti__flag.gh{height:14px;background-position:-1885px 0px}.vti__flag.gi{height:10px;background-position:-1907px 0px}.vti__flag.gl{height:14px;background-position:-1929px 0px}.vti__flag.gm{height:14px;background-position:-1951px 0px}.vti__flag.gn{height:14px;background-position:-1973px 0px}.vti__flag.gp{height:14px;background-position:-1995px 0px}.vti__flag.gq{height:14px;background-position:-2017px 0px}.vti__flag.gr{height:14px;background-position:-2039px 0px}.vti__flag.gs{height:10px;background-position:-2061px 0px}.vti__flag.gt{height:13px;background-position:-2083px 0px}.vti__flag.gu{height:11px;background-position:-2105px 0px}.vti__flag.gw{height:10px;background-position:-2127px 0px}.vti__flag.gy{height:12px;background-position:-2149px 0px}.vti__flag.hk{height:14px;background-position:-2171px 0px}.vti__flag.hm{height:10px;background-position:-2193px 0px}.vti__flag.hn{height:10px;background-position:-2215px 0px}.vti__flag.hr{height:10px;background-position:-2237px 0px}.vti__flag.ht{height:12px;background-position:-2259px 0px}.vti__flag.hu{height:10px;background-position:-2281px 0px}.vti__flag.ic{height:14px;background-position:-2303px 0px}.vti__flag.id{height:14px;background-position:-2325px 0px}.vti__flag.ie{height:10px;background-position:-2347px 0px}.vti__flag.il{height:15px;background-position:-2369px 0px}.vti__flag.im{height:10px;background-position:-2391px 0px}.vti__flag.in{height:14px;background-position:-2413px 0px}.vti__flag.io{height:10px;background-position:-2435px 0px}.vti__flag.iq{height:14px;background-position:-2457px 0px}.vti__flag.ir{height:12px;background-position:-2479px 0px}.vti__flag.is{height:15px;background-position:-2501px 0px}.vti__flag.it{height:14px;background-position:-2523px 0px}.vti__flag.je{height:12px;background-position:-2545px 0px}.vti__flag.jm{height:10px;background-position:-2567px 0px}.vti__flag.jo{height:10px;background-position:-2589px 0px}.vti__flag.jp{height:14px;background-position:-2611px 0px}.vti__flag.ke{height:14px;background-position:-2633px 0px}.vti__flag.kg{height:12px;background-position:-2655px 0px}.vti__flag.kh{height:13px;background-position:-2677px 0px}.vti__flag.ki{height:10px;background-position:-2699px 0px}.vti__flag.km{height:12px;background-position:-2721px 0px}.vti__flag.kn{height:14px;background-position:-2743px 0px}.vti__flag.kp{height:10px;background-position:-2765px 0px}.vti__flag.kr{height:14px;background-position:-2787px 0px}.vti__flag.kw{height:10px;background-position:-2809px 0px}.vti__flag.ky{height:10px;background-position:-2831px 0px}.vti__flag.kz{height:10px;background-position:-2853px 0px}.vti__flag.la{height:14px;background-position:-2875px 0px}.vti__flag.lb{height:14px;background-position:-2897px 0px}.vti__flag.lc{height:10px;background-position:-2919px 0px}.vti__flag.li{height:12px;background-position:-2941px 0px}.vti__flag.lk{height:10px;background-position:-2963px 0px}.vti__flag.lr{height:11px;background-position:-2985px 0px}.vti__flag.ls{height:14px;background-position:-3007px 0px}.vti__flag.lt{height:12px;background-position:-3029px 0px}.vti__flag.lu{height:12px;background-position:-3051px 0px}.vti__flag.lv{height:10px;background-position:-3073px 0px}.vti__flag.ly{height:10px;background-position:-3095px 0px}.vti__flag.ma{height:14px;background-position:-3117px 0px}.vti__flag.mc{height:15px;background-position:-3139px 0px}.vti__flag.md{height:10px;background-position:-3160px 0px}.vti__flag.me{height:10px;background-position:-3182px 0px}.vti__flag.mf{height:14px;background-position:-3204px 0px}.vti__flag.mg{height:14px;background-position:-3226px 0px}.vti__flag.mh{height:11px;background-position:-3248px 0px}.vti__flag.mk{height:10px;background-position:-3270px 0px}.vti__flag.ml{height:14px;background-position:-3292px 0px}.vti__flag.mm{height:14px;background-position:-3314px 0px}.vti__flag.mn{height:10px;background-position:-3336px 0px}.vti__flag.mo{height:14px;background-position:-3358px 0px}.vti__flag.mp{height:10px;background-position:-3380px 0px}.vti__flag.mq{height:14px;background-position:-3402px 0px}.vti__flag.mr{height:14px;background-position:-3424px 0px}.vti__flag.ms{height:10px;background-position:-3446px 0px}.vti__flag.mt{height:14px;background-position:-3468px 0px}.vti__flag.mu{height:14px;background-position:-3490px 0px}.vti__flag.mv{height:14px;background-position:-3512px 0px}.vti__flag.mw{height:14px;background-position:-3534px 0px}.vti__flag.mx{height:12px;background-position:-3556px 0px}.vti__flag.my{height:10px;background-position:-3578px 0px}.vti__flag.mz{height:14px;background-position:-3600px 0px}.vti__flag.na{height:14px;background-position:-3622px 0px}.vti__flag.nc{height:10px;background-position:-3644px 0px}.vti__flag.ne{height:15px;background-position:-3666px 0px}.vti__flag.nf{height:10px;background-position:-3686px 0px}.vti__flag.ng{height:10px;background-position:-3708px 0px}.vti__flag.ni{height:12px;background-position:-3730px 0px}.vti__flag.nl{height:14px;background-position:-3752px 0px}.vti__flag.no{height:15px;background-position:-3774px 0px}.vti__flag.np{height:15px;background-position:-3796px 0px}.vti__flag.nr{height:10px;background-position:-3811px 0px}.vti__flag.nu{height:10px;background-position:-3833px 0px}.vti__flag.nz{height:10px;background-position:-3855px 0px}.vti__flag.om{height:10px;background-position:-3877px 0px}.vti__flag.pa{height:14px;background-position:-3899px 0px}.vti__flag.pe{height:14px;background-position:-3921px 0px}.vti__flag.pf{height:14px;background-position:-3943px 0px}.vti__flag.pg{height:15px;background-position:-3965px 0px}.vti__flag.ph{height:10px;background-position:-3987px 0px}.vti__flag.pk{height:14px;background-position:-4009px 0px}.vti__flag.pl{height:13px;background-position:-4031px 0px}.vti__flag.pm{height:14px;background-position:-4053px 0px}.vti__flag.pn{height:10px;background-position:-4075px 0px}.vti__flag.pr{height:14px;background-position:-4097px 0px}.vti__flag.ps{height:10px;background-position:-4119px 0px}.vti__flag.pt{height:14px;background-position:-4141px 0px}.vti__flag.pw{height:13px;background-position:-4163px 0px}.vti__flag.py{height:11px;background-position:-4185px 0px}.vti__flag.qa{height:8px;background-position:-4207px 0px}.vti__flag.re{height:14px;background-position:-4229px 0px}.vti__flag.ro{height:14px;background-position:-4251px 0px}.vti__flag.rs{height:14px;background-position:-4273px 0px}.vti__flag.ru{height:14px;background-position:-4295px 0px}.vti__flag.rw{height:14px;background-position:-4317px 0px}.vti__flag.sa{height:14px;background-position:-4339px 0px}.vti__flag.sb{height:10px;background-position:-4361px 0px}.vti__flag.sc{height:10px;background-position:-4383px 0px}.vti__flag.sd{height:10px;background-position:-4405px 0px}.vti__flag.se{height:13px;background-position:-4427px 0px}.vti__flag.sg{height:14px;background-position:-4449px 0px}.vti__flag.sh{height:10px;background-position:-4471px 0px}.vti__flag.si{height:10px;background-position:-4493px 0px}.vti__flag.sj{height:15px;background-position:-4515px 0px}.vti__flag.sk{height:14px;background-position:-4537px 0px}.vti__flag.sl{height:14px;background-position:-4559px 0px}.vti__flag.sm{height:15px;background-position:-4581px 0px}.vti__flag.sn{height:14px;background-position:-4603px 0px}.vti__flag.so{height:14px;background-position:-4625px 0px}.vti__flag.sr{height:14px;background-position:-4647px 0px}.vti__flag.ss{height:10px;background-position:-4669px 0px}.vti__flag.st{height:10px;background-position:-4691px 0px}.vti__flag.sv{height:12px;background-position:-4713px 0px}.vti__flag.sx{height:14px;background-position:-4735px 0px}.vti__flag.sy{height:14px;background-position:-4757px 0px}.vti__flag.sz{height:14px;background-position:-4779px 0px}.vti__flag.ta{height:10px;background-position:-4801px 0px}.vti__flag.tc{height:10px;background-position:-4823px 0px}.vti__flag.td{height:14px;background-position:-4845px 0px}.vti__flag.tf{height:14px;background-position:-4867px 0px}.vti__flag.tg{height:13px;background-position:-4889px 0px}.vti__flag.th{height:14px;background-position:-4911px 0px}.vti__flag.tj{height:10px;background-position:-4933px 0px}.vti__flag.tk{height:10px;background-position:-4955px 0px}.vti__flag.tl{height:10px;background-position:-4977px 0px}.vti__flag.tm{height:14px;background-position:-4999px 0px}.vti__flag.tn{height:14px;background-position:-5021px 0px}.vti__flag.to{height:10px;background-position:-5043px 0px}.vti__flag.tr{height:14px;background-position:-5065px 0px}.vti__flag.tt{height:12px;background-position:-5087px 0px}.vti__flag.tv{height:10px;background-position:-5109px 0px}.vti__flag.tw{height:14px;background-position:-5131px 0px}.vti__flag.tz{height:14px;background-position:-5153px 0px}.vti__flag.ua{height:14px;background-position:-5175px 0px}.vti__flag.ug{height:14px;background-position:-5197px 0px}.vti__flag.um{height:11px;background-position:-5219px 0px}.vti__flag.us{height:11px;background-position:-5241px 0px}.vti__flag.uy{height:14px;background-position:-5263px 0px}.vti__flag.uz{height:10px;background-position:-5285px 0px}.vti__flag.va{height:15px;background-position:-5307px 0px}.vti__flag.vc{height:14px;background-position:-5324px 0px}.vti__flag.ve{height:14px;background-position:-5346px 0px}.vti__flag.vg{height:10px;background-position:-5368px 0px}.vti__flag.vi{height:14px;background-position:-5390px 0px}.vti__flag.vn{height:14px;background-position:-5412px 0px}.vti__flag.vu{height:12px;background-position:-5434px 0px}.vti__flag.wf{height:14px;background-position:-5456px 0px}.vti__flag.ws{height:10px;background-position:-5478px 0px}.vti__flag.xk{height:15px;background-position:-5500px 0px}.vti__flag.ye{height:14px;background-position:-5522px 0px}.vti__flag.yt{height:14px;background-position:-5544px 0px}.vti__flag.za{height:14px;background-position:-5566px 0px}.vti__flag.zm{height:14px;background-position:-5588px 0px}.vti__flag.zw{height:10px;background-position:-5610px 0px}.vti__flag{width:20px;height:15px;box-shadow:0 0 1px #888;background-image:url(data:image/png;base64,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);background-repeat:no-repeat;background-color:#dbdbdb;background-position:20px 0}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2),only screen and (min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx){.vti__flag{background-image:url(data:image/png;base64,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)}}.vti__flag.np{background-color:transparent}.vue-tel-input{border-radius:3px;display:flex;border:1px solid #bbb;text-align:left}.vue-tel-input.disabled .selection,.vue-tel-input.disabled .dropdown,.vue-tel-input.disabled input{cursor:no-drop}.vue-tel-input:focus-within{box-shadow:inset 0 1px 1px #00000013,0 0 8px #66afe999;border-color:#66afe9}.vti__dropdown{display:flex;flex-direction:column;align-content:center;justify-content:center;position:relative;padding:7px;cursor:pointer}.vti__dropdown.show{max-height:300px;overflow:scroll}.vti__dropdown.open{background-color:#f3f3f3}.vti__dropdown.disabled{cursor:no-drop;outline:none;background-color:#f3f3f3}.vti__dropdown:hover{background-color:#f3f3f3}.vti__selection{font-size:.8em;display:flex;align-items:center}.vti__selection .vti__country-code{color:#666}.vti__flag{margin-right:5px;margin-left:5px}.vti__dropdown-list{z-index:1;padding:0;margin:0;text-align:left;list-style:none;max-height:200px;overflow-y:scroll;position:absolute;left:-1px;background-color:#fff;border:1px solid #ccc;width:390px}.vti__dropdown-list.below{top:33px}.vti__dropdown-list.above{top:auto;bottom:100%}.vti__dropdown-arrow{transform:scaleY(.5);display:inline-block;color:#666}.vti__dropdown-item{cursor:pointer;padding:4px 15px}.vti__dropdown-item.highlighted{background-color:#f3f3f3}.vti__dropdown-item.last-preferred{border-bottom:1px solid #cacaca}.vti__dropdown-item .vti__flag{display:inline-block;margin-right:5px}.vti__input{border:none;border-radius:0 2px 2px 0;width:100%;outline:none;padding-left:7px}`)),document.head.appendChild(n)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})(); var __getOwnPropNames = Object.getOwnPropertyNames; var __commonJS = (cb, mod) => function __require() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var require_keybe_chat = __commonJS({ "keybe-chat.js"(exports, module) { (function polyfill() { const relList = document.createElement("link").relList; if (relList && relList.supports && relList.supports("modulepreload")) { return; } for (const link2 of document.querySelectorAll('link[rel="modulepreload"]')) { processPreload(link2); } new MutationObserver((mutations2) => { for (const mutation of mutations2) { if (mutation.type !== "childList") { continue; } for (const node of mutation.addedNodes) { if (node.tagName === "LINK" && node.rel === "modulepreload") processPreload(node); } } }).observe(document, { childList: true, subtree: true }); function getFetchOpts(script) { const fetchOpts = {}; if (script.integrity) fetchOpts.integrity = script.integrity; if (script.referrerpolicy) fetchOpts.referrerPolicy = script.referrerpolicy; if (script.crossorigin === "use-credentials") fetchOpts.credentials = "include"; else if (script.crossorigin === "anonymous") fetchOpts.credentials = "omit"; else fetchOpts.credentials = "same-origin"; return fetchOpts; } function processPreload(link2) { if (link2.ep) return; link2.ep = true; const fetchOpts = getFetchOpts(link2); fetch(link2.href, fetchOpts); } })(); /** * @vue/shared v3.5.13 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/ /*! #__NO_SIDE_EFFECTS__ */ function makeMap(str) { const map2 = /* @__PURE__ */ Object.create(null); for (const key of str.split(",")) map2[key] = 1; return (val) => val in map2; } const EMPTY_OBJ = {}; const EMPTY_ARR = []; const NOOP = () => { }; const NO = () => false; const isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && (key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97); const isModelListener = (key) => key.startsWith("onUpdate:"); const extend$2 = Object.assign; const remove = (arr, el) => { const i2 = arr.indexOf(el); if (i2 > -1) { arr.splice(i2, 1); } }; const hasOwnProperty$9 = Object.prototype.hasOwnProperty; const hasOwn$2 = (val, key) => hasOwnProperty$9.call(val, key); const isArray$4 = Array.isArray; const isMap = (val) => toTypeString$1(val) === "[object Map]"; const isSet = (val) => toTypeString$1(val) === "[object Set]"; const isDate$3 = (val) => toTypeString$1(val) === "[object Date]"; const isRegExp$1 = (val) => toTypeString$1(val) === "[object RegExp]"; const isFunction$3 = (val) => typeof val === "function"; const isString$6 = (val) => typeof val === "string"; const isSymbol = (val) => typeof val === "symbol"; const isObject$8 = (val) => val !== null && typeof val === "object"; const isPromise$2 = (val) => { return (isObject$8(val) || isFunction$3(val)) && isFunction$3(val.then) && isFunction$3(val.catch); }; const objectToString$1 = Object.prototype.toString; const toTypeString$1 = (value) => objectToString$1.call(value); const toRawType = (value) => { return toTypeString$1(value).slice(8, -1); }; const isPlainObject$2 = (val) => toTypeString$1(val) === "[object Object]"; const isIntegerKey = (key) => isString$6(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; const isReservedProp = /* @__PURE__ */ makeMap( ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" ); const cacheStringFunction = (fn) => { const cache2 = /* @__PURE__ */ Object.create(null); return (str) => { const hit = cache2[str]; return hit || (cache2[str] = fn(str)); }; }; const camelizeRE = /-(\w)/g; const camelize = cacheStringFunction( (str) => { return str.replace(camelizeRE, (_, c2) => c2 ? c2.toUpperCase() : ""); } ); const hyphenateRE = /\B([A-Z])/g; const hyphenate = cacheStringFunction( (str) => str.replace(hyphenateRE, "-$1").toLowerCase() ); const capitalize$1 = cacheStringFunction((str) => { return str.charAt(0).toUpperCase() + str.slice(1); }); const toHandlerKey = cacheStringFunction( (str) => { const s = str ? `on${capitalize$1(str)}` : ``; return s; } ); const hasChanged = (value, oldValue) => !Object.is(value, oldValue); const invokeArrayFns = (fns, ...arg) => { for (let i2 = 0; i2 < fns.length; i2++) { fns[i2](...arg); } }; const def = (obj, key, value, writable = false) => { Object.defineProperty(obj, key, { configurable: true, enumerable: false, writable, value }); }; const looseToNumber = (val) => { const n2 = parseFloat(val); return isNaN(n2) ? val : n2; }; const toNumber = (val) => { const n2 = isString$6(val) ? Number(val) : NaN; return isNaN(n2) ? val : n2; }; let _globalThis$1; const getGlobalThis$1 = () => { return _globalThis$1 || (_globalThis$1 = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); }; const GLOBALS_ALLOWED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol"; const isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED); function normalizeStyle(value) { if (isArray$4(value)) { const res = {}; for (let i2 = 0; i2 < value.length; i2++) { const item = value[i2]; const normalized = isString$6(item) ? parseStringStyle(item) : normalizeStyle(item); if (normalized) { for (const key in normalized) { res[key] = normalized[key]; } } } return res; } else if (isString$6(value) || isObject$8(value)) { return value; } } const listDelimiterRE = /;(?![^(]*\))/g; const propertyDelimiterRE = /:([^]+)/; const styleCommentRE = /\/\*[^]*?\*\//g; function parseStringStyle(cssText) { const ret = {}; cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { if (item) { const tmp = item.split(propertyDelimiterRE); tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); } }); return ret; } function stringifyStyle(styles) { if (!styles) return ""; if (isString$6(styles)) return styles; let ret = ""; for (const key in styles) { const value = styles[key]; if (isString$6(value) || typeof value === "number") { const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key); ret += `${normalizedKey}:${value};`; } } return ret; } function normalizeClass(value) { let res = ""; if (isString$6(value)) { res = value; } else if (isArray$4(value)) { for (let i2 = 0; i2 < value.length; i2++) { const normalized = normalizeClass(value[i2]); if (normalized) { res += normalized + " "; } } } else if (isObject$8(value)) { for (const name in value) { if (value[name]) { res += name + " "; } } } return res.trim(); } function normalizeProps(props) { if (!props) return null; let { class: klass, style } = props; if (klass && !isString$6(klass)) { props.class = normalizeClass(klass); } if (style) { props.style = normalizeStyle(style); } return props; } const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs); const isBooleanAttr = /* @__PURE__ */ makeMap( specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected` ); function includeBooleanAttr(value) { return !!value || value === ""; } const isKnownHtmlAttr = /* @__PURE__ */ makeMap( `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap` ); const isKnownSvgAttr = /* @__PURE__ */ makeMap( `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan` ); function isRenderableAttrValue(value) { if (value == null) { return false; } const type = typeof value; return type === "string" || type === "number" || type === "boolean"; } const cssVarNameEscapeSymbolsRE = /[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g; function getEscapedCssVarName(key, doubleEscape) { return key.replace( cssVarNameEscapeSymbolsRE, (s) => doubleEscape ? s === '"' ? '\\\\\\"' : `\\\\${s}` : `\\${s}` ); } function looseCompareArrays(a2, b) { if (a2.length !== b.length) return false; let equal2 = true; for (let i2 = 0; equal2 && i2 < a2.length; i2++) { equal2 = looseEqual(a2[i2], b[i2]); } return equal2; } function looseEqual(a2, b) { if (a2 === b) return true; let aValidType = isDate$3(a2); let bValidType = isDate$3(b); if (aValidType || bValidType) { return aValidType && bValidType ? a2.getTime() === b.getTime() : false; } aValidType = isSymbol(a2); bValidType = isSymbol(b); if (aValidType || bValidType) { return a2 === b; } aValidType = isArray$4(a2); bValidType = isArray$4(b); if (aValidType || bValidType) { return aValidType && bValidType ? looseCompareArrays(a2, b) : false; } aValidType = isObject$8(a2); bValidType = isObject$8(b); if (aValidType || bValidType) { if (!aValidType || !bValidType) { return false; } const aKeysCount = Object.keys(a2).length; const bKeysCount = Object.keys(b).length; if (aKeysCount !== bKeysCount) { return false; } for (const key in a2) { const aHasKey = a2.hasOwnProperty(key); const bHasKey = b.hasOwnProperty(key); if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a2[key], b[key])) { return false; } } } return String(a2) === String(b); } function looseIndexOf(arr, val) { return arr.findIndex((item) => looseEqual(item, val)); } const isRef$1 = (val) => { return !!(val && val["__v_isRef"] === true); }; const toDisplayString$1 = (val) => { return isString$6(val) ? val : val == null ? "" : isArray$4(val) || isObject$8(val) && (val.toString === objectToString$1 || !isFunction$3(val.toString)) ? isRef$1(val) ? toDisplayString$1(val.value) : JSON.stringify(val, replacer, 2) : String(val); }; const replacer = (_key, val) => { if (isRef$1(val)) { return replacer(_key, val.value); } else if (isMap(val)) { return { [`Map(${val.size})`]: [...val.entries()].reduce( (entries, [key, val2], i2) => { entries[stringifySymbol(key, i2) + " =>"] = val2; return entries; }, {} ) }; } else if (isSet(val)) { return { [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v)) }; } else if (isSymbol(val)) { return stringifySymbol(val); } else if (isObject$8(val) && !isArray$4(val) && !isPlainObject$2(val)) { return String(val); } return val; }; const stringifySymbol = (v, i2 = "") => { var _a2; return isSymbol(v) ? `Symbol(${(_a2 = v.description) != null ? _a2 : i2})` : v; }; /** * @vue/reactivity v3.5.13 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/ let activeEffectScope; class EffectScope { constructor(detached = false) { this.detached = detached; this._active = true; this.effects = []; this.cleanups = []; this._isPaused = false; this.parent = activeEffectScope; if (!detached && activeEffectScope) { this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push( this ) - 1; } } get active() { return this._active; } pause() { if (this._active) { this._isPaused = true; let i2, l; if (this.scopes) { for (i2 = 0, l = this.scopes.length; i2 < l; i2++) { this.scopes[i2].pause(); } } for (i2 = 0, l = this.effects.length; i2 < l; i2++) { this.effects[i2].pause(); } } } resume() { if (this._active) { if (this._isPaused) { this._isPaused = false; let i2, l; if (this.scopes) { for (i2 = 0, l = this.scopes.length; i2 < l; i2++) { this.scopes[i2].resume(); } } for (i2 = 0, l = this.effects.length; i2 < l; i2++) { this.effects[i2].resume(); } } } } run(fn) { if (this._active) { const currentEffectScope = activeEffectScope; try { activeEffectScope = this; return fn(); } finally { activeEffectScope = currentEffectScope; } } } on() { activeEffectScope = this; } off() { activeEffectScope = this.parent; } stop(fromParent) { if (this._active) { this._active = false; let i2, l; for (i2 = 0, l = this.effects.length; i2 < l; i2++) { this.effects[i2].stop(); } this.effects.length = 0; for (i2 = 0, l = this.cleanups.length; i2 < l; i2++) { this.cleanups[i2](); } this.cleanups.length = 0; if (this.scopes) { for (i2 = 0, l = this.scopes.length; i2 < l; i2++) { this.scopes[i2].stop(true); } this.scopes.length = 0; } if (!this.detached && this.parent && !fromParent) { const last = this.parent.scopes.pop(); if (last && last !== this) { this.parent.scopes[this.index] = last; last.index = this.index; } } this.parent = void 0; } } } function effectScope(detached) { return new EffectScope(detached); } function getCurrentScope() { return activeEffectScope; } function onScopeDispose(fn, failSilently = false) { if (activeEffectScope) { activeEffectScope.cleanups.push(fn); } } let activeSub; const pausedQueueEffects = /* @__PURE__ */ new WeakSet(); class ReactiveEffect { constructor(fn) { this.fn = fn; this.deps = void 0; this.depsTail = void 0; this.flags = 1 | 4; this.next = void 0; this.cleanup = void 0; this.scheduler = void 0; if (activeEffectScope && activeEffectScope.active) { activeEffectScope.effects.push(this); } } pause() { this.flags |= 64; } resume() { if (this.flags & 64) { this.flags &= ~64; if (pausedQueueEffects.has(this)) { pausedQueueEffects.delete(this); this.trigger(); } } } notify() { if (this.flags & 2 && !(this.flags & 32)) { return; } if (!(this.flags & 8)) { batch(this); } } run() { if (!(this.flags & 1)) { return this.fn(); } this.flags |= 2; cleanupEffect(this); prepareDeps(this); const prevEffect = activeSub; const prevShouldTrack = shouldTrack; activeSub = this; shouldTrack = true; try { return this.fn(); } finally { cleanupDeps(this); activeSub = prevEffect; shouldTrack = prevShouldTrack; this.flags &= ~2; } } stop() { if (this.flags & 1) { for (let link2 = this.deps; link2; link2 = link2.nextDep) { removeSub(link2); } this.deps = this.depsTail = void 0; cleanupEffect(this); this.onStop && this.onStop(); this.flags &= ~1; } } trigger() { if (this.flags & 64) { pausedQueueEffects.add(this); } else if (this.scheduler) { this.scheduler(); } else { this.runIfDirty(); } } runIfDirty() { if (isDirty(this)) { this.run(); } } get dirty() { return isDirty(this); } } let batchDepth = 0; let batchedSub; let batchedComputed; function batch(sub, isComputed = false) { sub.flags |= 8; if (isComputed) { sub.next = batchedComputed; batchedComputed = sub; return; } sub.next = batchedSub; batchedSub = sub; } function startBatch() { batchDepth++; } function endBatch() { if (--batchDepth > 0) { return; } if (batchedComputed) { let e2 = batchedComputed; batchedComputed = void 0; while (e2) { const next = e2.next; e2.next = void 0; e2.flags &= ~8; e2 = next; } } let error; while (batchedSub) { let e2 = batchedSub; batchedSub = void 0; while (e2) { const next = e2.next; e2.next = void 0; e2.flags &= ~8; if (e2.flags & 1) { try { ; e2.trigger(); } catch (err) { if (!error) error = err; } } e2 = next; } } if (error) throw error; } function prepareDeps(sub) { for (let link2 = sub.deps; link2; link2 = link2.nextDep) { link2.version = -1; link2.prevActiveLink = link2.dep.activeLink; link2.dep.activeLink = link2; } } function cleanupDeps(sub) { let head; let tail = sub.depsTail; let link2 = tail; while (link2) { const prev = link2.prevDep; if (link2.version === -1) { if (link2 === tail) tail = prev; removeSub(link2); removeDep(link2); } else { head = link2; } link2.dep.activeLink = link2.prevActiveLink; link2.prevActiveLink = void 0; link2 = prev; } sub.deps = head; sub.depsTail = tail; } function isDirty(sub) { for (let link2 = sub.deps; link2; link2 = link2.nextDep) { if (link2.dep.version !== link2.version || link2.dep.computed && (refreshComputed(link2.dep.computed) || link2.dep.version !== link2.version)) { return true; } } if (sub._dirty) { return true; } return false; } function refreshComputed(computed2) { if (computed2.flags & 4 && !(computed2.flags & 16)) { return; } computed2.flags &= ~16; if (computed2.globalVersion === globalVersion) { return; } computed2.globalVersion = globalVersion; const dep2 = computed2.dep; computed2.flags |= 2; if (dep2.version > 0 && !computed2.isSSR && computed2.deps && !isDirty(computed2)) { computed2.flags &= ~2; return; } const prevSub = activeSub; const prevShouldTrack = shouldTrack; activeSub = computed2; shouldTrack = true; try { prepareDeps(computed2); const value = computed2.fn(computed2._value); if (dep2.version === 0 || hasChanged(value, computed2._value)) { computed2._value = value; dep2.version++; } } catch (err) { dep2.version++; throw err; } finally { activeSub = prevSub; shouldTrack = prevShouldTrack; cleanupDeps(computed2); computed2.flags &= ~2; } } function removeSub(link2, soft = false) { const { dep: dep2, prevSub, nextSub } = link2; if (prevSub) { prevSub.nextSub = nextSub; link2.prevSub = void 0; } if (nextSub) { nextSub.prevSub = prevSub; link2.nextSub = void 0; } if (dep2.subs === link2) { dep2.subs = prevSub; if (!prevSub && dep2.computed) { dep2.computed.flags &= ~4; for (let l = dep2.computed.deps; l; l = l.nextDep) { removeSub(l, true); } } } if (!soft && !--dep2.sc && dep2.map) { dep2.map.delete(dep2.key); } } function removeDep(link2) { const { prevDep, nextDep } = link2; if (prevDep) { prevDep.nextDep = nextDep; link2.prevDep = void 0; } if (nextDep) { nextDep.prevDep = prevDep; link2.nextDep = void 0; } } function effect(fn, options) { if (fn.effect instanceof ReactiveEffect) { fn = fn.effect.fn; } const e2 = new ReactiveEffect(fn); if (options) { extend$2(e2, options); } try { e2.run(); } catch (err) { e2.stop(); throw err; } const runner = e2.run.bind(e2); runner.effect = e2; return runner; } function stop(runner) { runner.effect.stop(); } let shouldTrack = true; const trackStack = []; function pauseTracking() { trackStack.push(shouldTrack); shouldTrack = false; } function resetTracking() { const last = trackStack.pop(); shouldTrack = last === void 0 ? true : last; } function cleanupEffect(e2) { const { cleanup } = e2; e2.cleanup = void 0; if (cleanup) { const prevSub = activeSub; activeSub = void 0; try { cleanup(); } finally { activeSub = prevSub; } } } let globalVersion = 0; class Link { constructor(sub, dep2) { this.sub = sub; this.dep = dep2; this.version = dep2.version; this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0; } } class Dep { constructor(computed2) { this.computed = computed2; this.version = 0; this.activeLink = void 0; this.subs = void 0; this.map = void 0; this.key = void 0; this.sc = 0; } track(debugInfo) { if (!activeSub || !shouldTrack || activeSub === this.computed) { return; } let link2 = this.activeLink; if (link2 === void 0 || link2.sub !== activeSub) { link2 = this.activeLink = new Link(activeSub, this); if (!activeSub.deps) { activeSub.deps = activeSub.depsTail = link2; } else { link2.prevDep = activeSub.depsTail; activeSub.depsTail.nextDep = link2; activeSub.depsTail = link2; } addSub(link2); } else if (link2.version === -1) { link2.version = this.version; if (link2.nextDep) { const next = link2.nextDep; next.prevDep = link2.prevDep; if (link2.prevDep) { link2.prevDep.nextDep = next; } link2.prevDep = activeSub.depsTail; link2.nextDep = void 0; activeSub.depsTail.nextDep = link2; activeSub.depsTail = link2; if (activeSub.deps === link2) { activeSub.deps = next; } } } return link2; } trigger(debugInfo) { this.version++; globalVersion++; this.notify(debugInfo); } notify(debugInfo) { startBatch(); try { if (false) ; for (let link2 = this.subs; link2; link2 = link2.prevSub) { if (link2.sub.notify()) { ; link2.sub.dep.notify(); } } } finally { endBatch(); } } } function addSub(link2) { link2.dep.sc++; if (link2.sub.flags & 4) { const computed2 = link2.dep.computed; if (computed2 && !link2.dep.subs) { computed2.flags |= 4 | 16; for (let l = computed2.deps; l; l = l.nextDep) { addSub(l); } } const currentTail = link2.dep.subs; if (currentTail !== link2) { link2.prevSub = currentTail; if (currentTail) currentTail.nextSub = link2; } link2.dep.subs = link2; } } const targetMap = /* @__PURE__ */ new WeakMap(); const ITERATE_KEY = Symbol( "" ); const MAP_KEY_ITERATE_KEY = Symbol( "" ); const ARRAY_ITERATE_KEY = Symbol( "" ); function track(target, type, key) { if (shouldTrack && activeSub) { let depsMap = targetMap.get(target); if (!depsMap) { targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); } let dep2 = depsMap.get(key); if (!dep2) { depsMap.set(key, dep2 = new Dep()); dep2.map = depsMap; dep2.key = key; } { dep2.track(); } } } function trigger(target, type, key, newValue, oldValue, oldTarget) { const depsMap = targetMap.get(target); if (!depsMap) { globalVersion++; return; } const run = (dep2) => { if (dep2) { { dep2.trigger(); } } }; startBatch(); if (type === "clear") { depsMap.forEach(run); } else { const targetIsArray = isArray$4(target); const isArrayIndex = targetIsArray && isIntegerKey(key); if (targetIsArray && key === "length") { const newLength = Number(newValue); depsMap.forEach((dep2, key2) => { if (key2 === "length" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) { run(dep2); } }); } else { if (key !== void 0 || depsMap.has(void 0)) { run(depsMap.get(key)); } if (isArrayIndex) { run(depsMap.get(ARRAY_ITERATE_KEY)); } switch (type) { case "add": if (!targetIsArray) { run(depsMap.get(ITERATE_KEY)); if (isMap(target)) { run(depsMap.get(MAP_KEY_ITERATE_KEY)); } } else if (isArrayIndex) { run(depsMap.get("length")); } break; case "delete": if (!targetIsArray) { run(depsMap.get(ITERATE_KEY)); if (isMap(target)) { run(depsMap.get(MAP_KEY_ITERATE_KEY)); } } break; case "set": if (isMap(target)) { run(depsMap.get(ITERATE_KEY)); } break; } } } endBatch(); } function getDepFromReactive(object, key) { const depMap = targetMap.get(object); return depMap && depMap.get(key); } function reactiveReadArray(array) { const raw = toRaw(array); if (raw === array) return raw; track(raw, "iterate", ARRAY_ITERATE_KEY); return isShallow(array) ? raw : raw.map(toReactive); } function shallowReadArray(arr) { track(arr = toRaw(arr), "iterate", ARRAY_ITERATE_KEY); return arr; } const arrayInstrumentations = { __proto__: null, [Symbol.iterator]() { return iterator(this, Symbol.iterator, toReactive); }, concat(...args) { return reactiveReadArray(this).concat( ...args.map((x) => isArray$4(x) ? reactiveReadArray(x) : x) ); }, entries() { return iterator(this, "entries", (value) => { value[1] = toReactive(value[1]); return value; }); }, every(fn, thisArg) { return apply$1(this, "every", fn, thisArg, void 0, arguments); }, filter(fn, thisArg) { return apply$1(this, "filter", fn, thisArg, (v) => v.map(toReactive), arguments); }, find(fn, thisArg) { return apply$1(this, "find", fn, thisArg, toReactive, arguments); }, findIndex(fn, thisArg) { return apply$1(this, "findIndex", fn, thisArg, void 0, arguments); }, findLast(fn, thisArg) { return apply$1(this, "findLast", fn, thisArg, toReactive, arguments); }, findLastIndex(fn, thisArg) { return apply$1(this, "findLastIndex", fn, thisArg, void 0, arguments); }, forEach(fn, thisArg) { return apply$1(this, "forEach", fn, thisArg, void 0, arguments); }, includes(...args) { return searchProxy(this, "includes", args); }, indexOf(...args) { return searchProxy(this, "indexOf", args); }, join(separator) { return reactiveReadArray(this).join(separator); }, lastIndexOf(...args) { return searchProxy(this, "lastIndexOf", args); }, map(fn, thisArg) { return apply$1(this, "map", fn, thisArg, void 0, arguments); }, pop() { return noTracking(this, "pop"); }, push(...args) { return noTracking(this, "push", args); }, reduce(fn, ...args) { return reduce(this, "reduce", fn, args); }, reduceRight(fn, ...args) { return reduce(this, "reduceRight", fn, args); }, shift() { return noTracking(this, "shift"); }, some(fn, thisArg) { return apply$1(this, "some", fn, thisArg, void 0, arguments); }, splice(...args) { return noTracking(this, "splice", args); }, toReversed() { return reactiveReadArray(this).toReversed(); }, toSorted(comparer) { return reactiveReadArray(this).toSorted(comparer); }, toSpliced(...args) { return reactiveReadArray(this).toSpliced(...args); }, unshift(...args) { return noTracking(this, "unshift", args); }, values() { return iterator(this, "values", toReactive); } }; function iterator(self2, method, wrapValue) { const arr = shallowReadArray(self2); const iter = arr[method](); if (arr !== self2 && !isShallow(self2)) { iter._next = iter.next; iter.next = () => { const result2 = iter._next(); if (result2.value) { result2.value = wrapValue(result2.value); } return result2; }; } return iter; } const arrayProto = Array.prototype; function apply$1(self2, method, fn, thisArg, wrappedRetFn, args) { const arr = shallowReadArray(self2); const needsWrap = arr !== self2 && !isShallow(self2); const methodFn = arr[method]; if (methodFn !== arrayProto[method]) { const result22 = methodFn.apply(self2, args); return needsWrap ? toReactive(result22) : result22; } let wrappedFn = fn; if (arr !== self2) { if (needsWrap) { wrappedFn = function(item, index2) { return fn.call(this, toReactive(item), index2, self2); }; } else if (fn.length > 2) { wrappedFn = function(item, index2) { return fn.call(this, item, index2, self2); }; } } const result2 = methodFn.call(arr, wrappedFn, thisArg); return needsWrap && wrappedRetFn ? wrappedRetFn(result2) : result2; } function reduce(self2, method, fn, args) { const arr = shallowReadArray(self2); let wrappedFn = fn; if (arr !== self2) { if (!isShallow(self2)) { wrappedFn = function(acc, item, index2) { return fn.call(this, acc, toReactive(item), index2, self2); }; } else if (fn.length > 3) { wrappedFn = function(acc, item, index2) { return fn.call(this, acc, item, index2, self2); }; } } return arr[method](wrappedFn, ...args); } function searchProxy(self2, method, args) { const arr = toRaw(self2); track(arr, "iterate", ARRAY_ITERATE_KEY); const res = arr[method](...args); if ((res === -1 || res === false) && isProxy(args[0])) { args[0] = toRaw(args[0]); return arr[method](...args); } return res; } function noTracking(self2, method, args = []) { pauseTracking(); startBatch(); const res = toRaw(self2)[method].apply(self2, args); endBatch(); resetTracking(); return res; } const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`); const builtInSymbols = new Set( /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol) ); function hasOwnProperty$8(key) { if (!isSymbol(key)) key = String(key); const obj = toRaw(this); track(obj, "has", key); return obj.hasOwnProperty(key); } class BaseReactiveHandler { constructor(_isReadonly = false, _isShallow = false) { this._isReadonly = _isReadonly; this._isShallow = _isShallow; } get(target, key, receiver) { if (key === "__v_skip") return target["__v_skip"]; const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow; if (key === "__v_isReactive") { return !isReadonly2; } else if (key === "__v_isReadonly") { return isReadonly2; } else if (key === "__v_isShallow") { return isShallow2; } else if (key === "__v_raw") { if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) { return target; } return; } const targetIsArray = isArray$4(target); if (!isReadonly2) { let fn; if (targetIsArray && (fn = arrayInstrumentations[key])) { return fn; } if (key === "hasOwnProperty") { return hasOwnProperty$8; } } const res = Reflect.get( target, key, isRef(target) ? target : receiver ); if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { return res; } if (!isReadonly2) { track(target, "get", key); } if (isShallow2) { return res; } if (isRef(res)) { return targetIsArray && isIntegerKey(key) ? res : res.value; } if (isObject$8(res)) { return isReadonly2 ? readonly(res) : reactive(res); } return res; } } class MutableReactiveHandler extends BaseReactiveHandler { constructor(isShallow2 = false) { super(false, isShallow2); } set(target, key, value, receiver) { let oldValue = target[key]; if (!this._isShallow) { const isOldValueReadonly = isReadonly(oldValue); if (!isShallow(value) && !isReadonly(value)) { oldValue = toRaw(oldValue); value = toRaw(value); } if (!isArray$4(target) && isRef(oldValue) && !isRef(value)) { if (isOldValueReadonly) { return false; } else { oldValue.value = value; return true; } } } const hadKey = isArray$4(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn$2(target, key); const result2 = Reflect.set( target, key, value, isRef(target) ? target : receiver ); if (target === toRaw(receiver)) { if (!hadKey) { trigger(target, "add", key, value); } else if (hasChanged(value, oldValue)) { trigger(target, "set", key, value); } } return result2; } deleteProperty(target, key) { const hadKey = hasOwn$2(target, key); target[key]; const result2 = Reflect.deleteProperty(target, key); if (result2 && hadKey) { trigger(target, "delete", key, void 0); } return result2; } has(target, key) { const result2 = Reflect.has(target, key); if (!isSymbol(key) || !builtInSymbols.has(key)) { track(target, "has", key); } return result2; } ownKeys(target) { track( target, "iterate", isArray$4(target) ? "length" : ITERATE_KEY ); return Reflect.ownKeys(target); } } class ReadonlyReactiveHandler extends BaseReactiveHandler { constructor(isShallow2 = false) { super(true, isShallow2); } set(target, key) { return true; } deleteProperty(target, key) { return true; } } const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler(); const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(); const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true); const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true); const toShallow = (value) => value; const getProto = (v) => Reflect.getPrototypeOf(v); function createIterableMethod(method, isReadonly2, isShallow2) { return function(...args) { const target = this["__v_raw"]; const rawTarget = toRaw(target); const targetIsMap = isMap(rawTarget); const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; const isKeyOnly = method === "keys" && targetIsMap; const innerIterator = target[method](...args); const wrap2 = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive; !isReadonly2 && track( rawTarget, "iterate", isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY ); return { next() { const { value, done } = innerIterator.next(); return done ? { value, done } : { value: isPair ? [wrap2(value[0]), wrap2(value[1])] : wrap2(value), done }; }, [Symbol.iterator]() { return this; } }; }; } function createReadonlyMethod(type) { return function(...args) { return type === "delete" ? false : type === "clear" ? void 0 : this; }; } function createInstrumentations(readonly2, shallow) { const instrumentations = { get(key) { const target = this["__v_raw"]; const rawTarget = toRaw(target); const rawKey = toRaw(key); if (!readonly2) { if (hasChanged(key, rawKey)) { track(rawTarget, "get", key); } track(rawTarget, "get", rawKey); } const { has } = getProto(rawTarget); const wrap2 = shallow ? toShallow : readonly2 ? toReadonly : toReactive; if (has.call(rawTarget, key)) { return wrap2(target.get(key)); } else if (has.call(rawTarget, rawKey)) { return wrap2(target.get(rawKey)); } else if (target !== rawTarget) { target.get(key); } }, get size() { const target = this["__v_raw"]; !readonly2 && track(toRaw(target), "iterate", ITERATE_KEY); return Reflect.get(target, "size", target); }, has(key) { const target = this["__v_raw"]; const rawTarget = toRaw(target); const rawKey = toRaw(key); if (!readonly2) { if (hasChanged(key, rawKey)) { track(rawTarget, "has", key); } track(rawTarget, "has", rawKey); } return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); }, forEach(callback, thisArg) { const observed = this; const target = observed["__v_raw"]; const rawTarget = toRaw(target); const wrap2 = shallow ? toShallow : readonly2 ? toReadonly : toReactive; !readonly2 && track(rawTarget, "iterate", ITERATE_KEY); return target.forEach((value, key) => { return callback.call(thisArg, wrap2(value), wrap2(key), observed); }); } }; extend$2( instrumentations, readonly2 ? { add: createReadonlyMethod("add"), set: createReadonlyMethod("set"), delete: createReadonlyMethod("delete"), clear: createReadonlyMethod("clear") } : { add(value) { if (!shallow && !isShallow(value) && !isReadonly(value)) { value = toRaw(value); } const target = toRaw(this); const proto2 = getProto(target); const hadKey = proto2.has.call(target, value); if (!hadKey) { target.add(value); trigger(target, "add", value, value); } return this; }, set(key, value) { if (!shallow && !isShallow(value) && !isReadonly(value)) { value = toRaw(value); } const target = toRaw(this); const { has, get: get2 } = getProto(target); let hadKey = has.call(target, key); if (!hadKey) { key = toRaw(key); hadKey = has.call(target, key); } const oldValue = get2.call(target, key); target.set(key, value); if (!hadKey) { trigger(target, "add", key, value); } else if (hasChanged(value, oldValue)) { trigger(target, "set", key, value); } return this; }, delete(key) { const target = toRaw(this); const { has, get: get2 } = getProto(target); let hadKey = has.call(target, key); if (!hadKey) { key = toRaw(key); hadKey = has.call(target, key); } get2 ? get2.call(target, key) : void 0; const result2 = target.delete(key); if (hadKey) { trigger(target, "delete", key, void 0); } return result2; }, clear() { const target = toRaw(this); const hadItems = target.size !== 0; const result2 = target.clear(); if (hadItems) { trigger( target, "clear", void 0, void 0 ); } return result2; } } ); const iteratorMethods = [ "keys", "values", "entries", Symbol.iterator ]; iteratorMethods.forEach((method) => { instrumentations[method] = createIterableMethod(method, readonly2, shallow); }); return instrumentations; } function createInstrumentationGetter(isReadonly2, shallow) { const instrumentations = createInstrumentations(isReadonly2, shallow); return (target, key, receiver) => { if (key === "__v_isReactive") { return !isReadonly2; } else if (key === "__v_isReadonly") { return isReadonly2; } else if (key === "__v_raw") { return target; } return Reflect.get( hasOwn$2(instrumentations, key) && key in target ? instrumentations : target, key, receiver ); }; } const mutableCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(false, false) }; const shallowCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(false, true) }; const readonlyCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(true, false) }; const shallowReadonlyCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(true, true) }; const reactiveMap = /* @__PURE__ */ new WeakMap(); const shallowReactiveMap = /* @__PURE__ */ new WeakMap(); const readonlyMap = /* @__PURE__ */ new WeakMap(); const shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); function targetTypeMap(rawType) { switch (rawType) { case "Object": case "Array": return 1; case "Map": case "Set": case "WeakMap": case "WeakSet": return 2; default: return 0; } } function getTargetType(value) { return value["__v_skip"] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value)); } function reactive(target) { if (isReadonly(target)) { return target; } return createReactiveObject( target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap ); } function shallowReactive(target) { return createReactiveObject( target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap ); } function readonly(target) { return createReactiveObject( target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap ); } function shallowReadonly(target) { return createReactiveObject( target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap ); } function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { if (!isObject$8(target)) { return target; } if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) { return target; } const existingProxy = proxyMap.get(target); if (existingProxy) { return existingProxy; } const targetType = getTargetType(target); if (targetType === 0) { return target; } const proxy = new Proxy( target, targetType === 2 ? collectionHandlers : baseHandlers ); proxyMap.set(target, proxy); return proxy; } function isReactive(value) { if (isReadonly(value)) { return isReactive(value["__v_raw"]); } return !!(value && value["__v_isReactive"]); } function isReadonly(value) { return !!(value && value["__v_isReadonly"]); } function isShallow(value) { return !!(value && value["__v_isShallow"]); } function isProxy(value) { return value ? !!value["__v_raw"] : false; } function toRaw(observed) { const raw = observed && observed["__v_raw"]; return raw ? toRaw(raw) : observed; } function markRaw(value) { if (!hasOwn$2(value, "__v_skip") && Object.isExtensible(value)) { def(value, "__v_skip", true); } return value; } const toReactive = (value) => isObject$8(value) ? reactive(value) : value; const toReadonly = (value) => isObject$8(value) ? readonly(value) : value; function isRef(r2) { return r2 ? r2["__v_isRef"] === true : false; } function ref(value) { return createRef(value, false); } function shallowRef(value) { return createRef(value, true); } function createRef(rawValue, shallow) { if (isRef(rawValue)) { return rawValue; } return new RefImpl(rawValue, shallow); } class RefImpl { constructor(value, isShallow2) { this.dep = new Dep(); this["__v_isRef"] = true; this["__v_isShallow"] = false; this._rawValue = isShallow2 ? value : toRaw(value); this._value = isShallow2 ? value : toReactive(value); this["__v_isShallow"] = isShallow2; } get value() { { this.dep.track(); } return this._value; } set value(newValue) { const oldValue = this._rawValue; const useDirectValue = this["__v_isShallow"] || isShallow(newValue) || isReadonly(newValue); newValue = useDirectValue ? newValue : toRaw(newValue); if (hasChanged(newValue, oldValue)) { this._rawValue = newValue; this._value = useDirectValue ? newValue : toReactive(newValue); { this.dep.trigger(); } } } } function triggerRef(ref2) { if (ref2.dep) { { ref2.dep.trigger(); } } } function unref(ref2) { return isRef(ref2) ? ref2.value : ref2; } function toValue(source) { return isFunction$3(source) ? source() : unref(source); } const shallowUnwrapHandlers = { get: (target, key, receiver) => key === "__v_raw" ? target : unref(Reflect.get(target, key, receiver)), set: (target, key, value, receiver) => { const oldValue = target[key]; if (isRef(oldValue) && !isRef(value)) { oldValue.value = value; return true; } else { return Reflect.set(target, key, value, receiver); } } }; function proxyRefs(objectWithRefs) { return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); } class CustomRefImpl { constructor(factory2) { this["__v_isRef"] = true; this._value = void 0; const dep2 = this.dep = new Dep(); const { get: get2, set: set2 } = factory2(dep2.track.bind(dep2), dep2.trigger.bind(dep2)); this._get = get2; this._set = set2; } get value() { return this._value = this._get(); } set value(newVal) { this._set(newVal); } } function customRef(factory2) { return new CustomRefImpl(factory2); } function toRefs(object) { const ret = isArray$4(object) ? new Array(object.length) : {}; for (const key in object) { ret[key] = propertyToRef(object, key); } return ret; } class ObjectRefImpl { constructor(_object, _key, _defaultValue) { this._object = _object; this._key = _key; this._defaultValue = _defaultValue; this["__v_isRef"] = true; this._value = void 0; } get value() { const val = this._object[this._key]; return this._value = val === void 0 ? this._defaultValue : val; } set value(newVal) { this._object[this._key] = newVal; } get dep() { return getDepFromReactive(toRaw(this._object), this._key); } } class GetterRefImpl { constructor(_getter) { this._getter = _getter; this["__v_isRef"] = true; this["__v_isReadonly"] = true; this._value = void 0; } get value() { return this._value = this._getter(); } } function toRef(source, key, defaultValue) { if (isRef(source)) { return source; } else if (isFunction$3(source)) { return new GetterRefImpl(source); } else if (isObject$8(source) && arguments.length > 1) { return propertyToRef(source, key, defaultValue); } else { return ref(source); } } function propertyToRef(source, key, defaultValue) { const val = source[key]; return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue); } class ComputedRefImpl { constructor(fn, setter, isSSR) { this.fn = fn; this.setter = setter; this._value = void 0; this.dep = new Dep(this); this.__v_isRef = true; this.deps = void 0; this.depsTail = void 0; this.flags = 16; this.globalVersion = globalVersion - 1; this.next = void 0; this.effect = this; this["__v_isReadonly"] = !setter; this.isSSR = isSSR; } notify() { this.flags |= 16; if (!(this.flags & 8) && activeSub !== this) { batch(this, true); return true; } } get value() { const link2 = this.dep.track(); refreshComputed(this); if (link2) { link2.version = this.dep.version; } return this._value; } set value(newValue) { if (this.setter) { this.setter(newValue); } } } function computed$1(getterOrOptions, debugOptions, isSSR = false) { let getter; let setter; if (isFunction$3(getterOrOptions)) { getter = getterOrOptions; } else { getter = getterOrOptions.get; setter = getterOrOptions.set; } const cRef = new ComputedRefImpl(getter, setter, isSSR); return cRef; } const TrackOpTypes = { "GET": "get", "HAS": "has", "ITERATE": "iterate" }; const TriggerOpTypes = { "SET": "set", "ADD": "add", "DELETE": "delete", "CLEAR": "clear" }; const INITIAL_WATCHER_VALUE = {}; const cleanupMap = /* @__PURE__ */ new WeakMap(); let activeWatcher = void 0; function getCurrentWatcher() { return activeWatcher; } function onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) { if (owner) { let cleanups = cleanupMap.get(owner); if (!cleanups) cleanupMap.set(owner, cleanups = []); cleanups.push(cleanupFn); } } function watch$1(source, cb, options = EMPTY_OBJ) { const { immediate, deep, once, scheduler, augmentJob, call } = options; const reactiveGetter = (source2) => { if (deep) return source2; if (isShallow(source2) || deep === false || deep === 0) return traverse(source2, 1); return traverse(source2); }; let effect2; let getter; let cleanup; let boundCleanup; let forceTrigger = false; let isMultiSource = false; if (isRef(source)) { getter = () => source.value; forceTrigger = isShallow(source); } else if (isReactive(source)) { getter = () => reactiveGetter(source); forceTrigger = true; } else if (isArray$4(source)) { isMultiSource = true; forceTrigger = source.some((s) => isReactive(s) || isShallow(s)); getter = () => source.map((s) => { if (isRef(s)) { return s.value; } else if (isReactive(s)) { return reactiveGetter(s); } else if (isFunction$3(s)) { return call ? call(s, 2) : s(); } else ; }); } else if (isFunction$3(source)) { if (cb) { getter = call ? () => call(source, 2) : source; } else { getter = () => { if (cleanup) { pauseTracking(); try { cleanup(); } finally { resetTracking(); } } const currentEffect = activeWatcher; activeWatcher = effect2; try { return call ? call(source, 3, [boundCleanup]) : source(boundCleanup); } finally { activeWatcher = currentEffect; } }; } } else { getter = NOOP; } if (cb && deep) { const baseGetter = getter; const depth = deep === true ? Infinity : deep; getter = () => traverse(baseGetter(), depth); } const scope = getCurrentScope(); const watchHandle = () => { effect2.stop(); if (scope && scope.active) { remove(scope.effects, effect2); } }; if (once && cb) { const _cb = cb; cb = (...args) => { _cb(...args); watchHandle(); }; } let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE; const job = (immediateFirstRun) => { if (!(effect2.flags & 1) || !effect2.dirty && !immediateFirstRun) { return; } if (cb) { const newValue = effect2.run(); if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i2) => hasChanged(v, oldValue[i2])) : hasChanged(newValue, oldValue))) { if (cleanup) { cleanup(); } const currentWatcher = activeWatcher; activeWatcher = effect2; try { const args = [ newValue, oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue, boundCleanup ]; call ? call(cb, 3, args) : cb(...args); oldValue = newValue; } finally { activeWatcher = currentWatcher; } } } else { effect2.run(); } }; if (augmentJob) { augmentJob(job); } effect2 = new ReactiveEffect(getter); effect2.scheduler = scheduler ? () => scheduler(job, false) : job; boundCleanup = (fn) => onWatcherCleanup(fn, false, effect2); cleanup = effect2.onStop = () => { const cleanups = cleanupMap.get(effect2); if (cleanups) { if (call) { call(cleanups, 4); } else { for (const cleanup2 of cleanups) cleanup2(); } cleanupMap.delete(effect2); } }; if (cb) { if (immediate) { job(true); } else { oldValue = effect2.run(); } } else if (scheduler) { scheduler(job.bind(null, true), true); } else { effect2.run(); } watchHandle.pause = effect2.pause.bind(effect2); watchHandle.resume = effect2.resume.bind(effect2); watchHandle.stop = watchHandle; return watchHandle; } function traverse(value, depth = Infinity, seen) { if (depth <= 0 || !isObject$8(value) || value["__v_skip"]) { return value; } seen = seen || /* @__PURE__ */ new Set(); if (seen.has(value)) { return value; } seen.add(value); depth--; if (isRef(value)) { traverse(value.value, depth, seen); } else if (isArray$4(value)) { for (let i2 = 0; i2 < value.length; i2++) { traverse(value[i2], depth, seen); } } else if (isSet(value) || isMap(value)) { value.forEach((v) => { traverse(v, depth, seen); }); } else if (isPlainObject$2(value)) { for (const key in value) { traverse(value[key], depth, seen); } for (const key of Object.getOwnPropertySymbols(value)) { if (Object.prototype.propertyIsEnumerable.call(value, key)) { traverse(value[key], depth, seen); } } } return value; } /** * @vue/runtime-core v3.5.13 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/ const stack = []; function pushWarningContext(vnode) { stack.push(vnode); } function popWarningContext() { stack.pop(); } let isWarning = false; function warn$1$1(msg, ...args) { if (isWarning) return; isWarning = true; pauseTracking(); const instance = stack.length ? stack[stack.length - 1].component : null; const appWarnHandler = instance && instance.appContext.config.warnHandler; const trace = getComponentTrace(); if (appWarnHandler) { callWithErrorHandling( appWarnHandler, instance, 11, [ msg + args.map((a2) => { var _a2, _b; return (_b = (_a2 = a2.toString) == null ? void 0 : _a2.call(a2)) != null ? _b : JSON.stringify(a2); }).join(""), instance && instance.proxy, trace.map( ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>` ).join("\n"), trace ] ); } else { const warnArgs = [`[Vue warn]: ${msg}`, ...args]; if (trace.length && true) { warnArgs.push(` `, ...formatTrace(trace)); } console.warn(...warnArgs); } resetTracking(); isWarning = false; } function getComponentTrace() { let currentVNode = stack[stack.length - 1]; if (!currentVNode) { return []; } const normalizedStack = []; while (currentVNode) { const last = normalizedStack[0]; if (last && last.vnode === currentVNode) { last.recurseCount++; } else { normalizedStack.push({ vnode: currentVNode, recurseCount: 0 }); } const parentInstance = currentVNode.component && currentVNode.component.parent; currentVNode = parentInstance && parentInstance.vnode; } return normalizedStack; } function formatTrace(trace) { const logs = []; trace.forEach((entry, i2) => { logs.push(...i2 === 0 ? [] : [` `], ...formatTraceEntry(entry)); }); return logs; } function formatTraceEntry({ vnode, recurseCount }) { const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``; const isRoot = vnode.component ? vnode.component.parent == null : false; const open = ` at <${formatComponentName( vnode.component, vnode.type, isRoot )}`; const close = `>` + postfix; return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close]; } function formatProps(props) { const res = []; const keys2 = Object.keys(props); keys2.slice(0, 3).forEach((key) => { res.push(...formatProp(key, props[key])); }); if (keys2.length > 3) { res.push(` ...`); } return res; } function formatProp(key, value, raw) { if (isString$6(value)) { value = JSON.stringify(value); return raw ? value : [`${key}=${value}`]; } else if (typeof value === "number" || typeof value === "boolean" || value == null) { return raw ? value : [`${key}=${value}`]; } else if (isRef(value)) { value = formatProp(key, toRaw(value.value), true); return raw ? value : [`${key}=Ref<`, value, `>`]; } else if (isFunction$3(value)) { return [`${key}=fn${value.name ? `<${value.name}>` : ``}`]; } else { value = toRaw(value); return raw ? value : [`${key}=`, value]; } } function assertNumber(val, type) { return; } const ErrorCodes = { "SETUP_FUNCTION": 0, "0": "SETUP_FUNCTION", "RENDER_FUNCTION": 1, "1": "RENDER_FUNCTION", "NATIVE_EVENT_HANDLER": 5, "5": "NATIVE_EVENT_HANDLER", "COMPONENT_EVENT_HANDLER": 6, "6": "COMPONENT_EVENT_HANDLER", "VNODE_HOOK": 7, "7": "VNODE_HOOK", "DIRECTIVE_HOOK": 8, "8": "DIRECTIVE_HOOK", "TRANSITION_HOOK": 9, "9": "TRANSITION_HOOK", "APP_ERROR_HANDLER": 10, "10": "APP_ERROR_HANDLER", "APP_WARN_HANDLER": 11, "11": "APP_WARN_HANDLER", "FUNCTION_REF": 12, "12": "FUNCTION_REF", "ASYNC_COMPONENT_LOADER": 13, "13": "ASYNC_COMPONENT_LOADER", "SCHEDULER": 14, "14": "SCHEDULER", "COMPONENT_UPDATE": 15, "15": "COMPONENT_UPDATE", "APP_UNMOUNT_CLEANUP": 16, "16": "APP_UNMOUNT_CLEANUP" }; const ErrorTypeStrings$1 = { ["sp"]: "serverPrefetch hook", ["bc"]: "beforeCreate hook", ["c"]: "created hook", ["bm"]: "beforeMount hook", ["m"]: "mounted hook", ["bu"]: "beforeUpdate hook", ["u"]: "updated", ["bum"]: "beforeUnmount hook", ["um"]: "unmounted hook", ["a"]: "activated hook", ["da"]: "deactivated hook", ["ec"]: "errorCaptured hook", ["rtc"]: "renderTracked hook", ["rtg"]: "renderTriggered hook", [0]: "setup function", [1]: "render function", [2]: "watcher getter", [3]: "watcher callback", [4]: "watcher cleanup function", [5]: "native event handler", [6]: "component event handler", [7]: "vnode hook", [8]: "directive hook", [9]: "transition hook", [10]: "app errorHandler", [11]: "app warnHandler", [12]: "ref function", [13]: "async component loader", [14]: "scheduler flush", [15]: "component update", [16]: "app unmount cleanup function" }; function callWithErrorHandling(fn, instance, type, args) { try { return args ? fn(...args) : fn(); } catch (err) { handleError$1(err, instance, type); } } function callWithAsyncErrorHandling(fn, instance, type, args) { if (isFunction$3(fn)) { const res = callWithErrorHandling(fn, instance, type, args); if (res && isPromise$2(res)) { res.catch((err) => { handleError$1(err, instance, type); }); } return res; } if (isArray$4(fn)) { const values = []; for (let i2 = 0; i2 < fn.length; i2++) { values.push(callWithAsyncErrorHandling(fn[i2], instance, type, args)); } return values; } } function handleError$1(err, instance, type, throwInDev = true) { const contextVNode = instance ? instance.vnode : null; const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ; if (instance) { let cur = instance.parent; const exposedInstance = instance.proxy; const errorInfo = `https://vuejs.org/error-reference/#runtime-${type}`; while (cur) { const errorCapturedHooks = cur.ec; if (errorCapturedHooks) { for (let i2 = 0; i2 < errorCapturedHooks.length; i2++) { if (errorCapturedHooks[i2](err, exposedInstance, errorInfo) === false) { return; } } } cur = cur.parent; } if (errorHandler) { pauseTracking(); callWithErrorHandling(errorHandler, null, 10, [ err, exposedInstance, errorInfo ]); resetTracking(); return; } } logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction); } function logError(err, type, contextVNode, throwInDev = true, throwInProd = false) { if (throwInProd) { throw err; } else { console.error(err); } } const queue = []; let flushIndex = -1; const pendingPostFlushCbs = []; let activePostFlushCbs = null; let postFlushIndex = 0; const resolvedPromise = /* @__PURE__ */ Promise.resolve(); let currentFlushPromise = null; function nextTick(fn) { const p2 = currentFlushPromise || resolvedPromise; return fn ? p2.then(this ? fn.bind(this) : fn) : p2; } function findInsertionIndex(id) { let start = flushIndex + 1; let end = queue.length; while (start < end) { const middle = start + end >>> 1; const middleJob = queue[middle]; const middleJobId = getId(middleJob); if (middleJobId < id || middleJobId === id && middleJob.flags & 2) { start = middle + 1; } else { end = middle; } } return start; } function queueJob(job) { if (!(job.flags & 1)) { const jobId = getId(job); const lastJob = queue[queue.length - 1]; if (!lastJob || !(job.flags & 2) && jobId >= getId(lastJob)) { queue.push(job); } else { queue.splice(findInsertionIndex(jobId), 0, job); } job.flags |= 1; queueFlush(); } } function queueFlush() { if (!currentFlushPromise) { currentFlushPromise = resolvedPromise.then(flushJobs); } } function queuePostFlushCb(cb) { if (!isArray$4(cb)) { if (activePostFlushCbs && cb.id === -1) { activePostFlushCbs.splice(postFlushIndex + 1, 0, cb); } else if (!(cb.flags & 1)) { pendingPostFlushCbs.push(cb); cb.flags |= 1; } } else { pendingPostFlushCbs.push(...cb); } queueFlush(); } function flushPreFlushCbs(instance, seen, i2 = flushIndex + 1) { for (; i2 < queue.length; i2++) { const cb = queue[i2]; if (cb && cb.flags & 2) { if (instance && cb.id !== instance.uid) { continue; } queue.splice(i2, 1); i2--; if (cb.flags & 4) { cb.flags &= ~1; } cb(); if (!(cb.flags & 4)) { cb.flags &= ~1; } } } } function flushPostFlushCbs(seen) { if (pendingPostFlushCbs.length) { const deduped = [...new Set(pendingPostFlushCbs)].sort( (a2, b) => getId(a2) - getId(b) ); pendingPostFlushCbs.length = 0; if (activePostFlushCbs) { activePostFlushCbs.push(...deduped); return; } activePostFlushCbs = deduped; for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { const cb = activePostFlushCbs[postFlushIndex]; if (cb.flags & 4) { cb.flags &= ~1; } if (!(cb.flags & 8)) cb(); cb.flags &= ~1; } activePostFlushCbs = null; postFlushIndex = 0; } } const getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id; function flushJobs(seen) { const check2 = NOOP; try { for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { const job = queue[flushIndex]; if (job && !(job.flags & 8)) { if (false) ; if (job.flags & 4) { job.flags &= ~1; } callWithErrorHandling( job, job.i, job.i ? 15 : 14 ); if (!(job.flags & 4)) { job.flags &= ~1; } } } } finally { for (; flushIndex < queue.length; flushIndex++) { const job = queue[flushIndex]; if (job) { job.flags &= ~1; } } flushIndex = -1; queue.length = 0; flushPostFlushCbs(); currentFlushPromise = null; if (queue.length || pendingPostFlushCbs.length) { flushJobs(); } } } let devtools$1; let buffer = []; function setDevtoolsHook$1(hook, target) { var _a2, _b; devtools$1 = hook; if (devtools$1) { devtools$1.enabled = true; buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args)); buffer = []; } else if (typeof window !== "undefined" && window.HTMLElement && !((_b = (_a2 = window.navigator) == null ? void 0 : _a2.userAgent) == null ? void 0 : _b.includes("jsdom"))) { const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []; replay.push((newHook) => { setDevtoolsHook$1(newHook, target); }); setTimeout(() => { if (!devtools$1) { target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null; buffer = []; } }, 3e3); } else { buffer = []; } } let currentRenderingInstance = null; let currentScopeId = null; function setCurrentRenderingInstance(instance) { const prev = currentRenderingInstance; currentRenderingInstance = instance; currentScopeId = instance && instance.type.__scopeId || null; return prev; } function pushScopeId(id) { currentScopeId = id; } function popScopeId() { currentScopeId = null; } const withScopeId = (_id) => withCtx; function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) { if (!ctx) return fn; if (fn._n) { return fn; } const renderFnWithContext = (...args) => { if (renderFnWithContext._d) { setBlockTracking(-1); } const prevInstance = setCurrentRenderingInstance(ctx); let res; try { res = fn(...args); } finally { setCurrentRenderingInstance(prevInstance); if (renderFnWithContext._d) { setBlockTracking(1); } } return res; }; renderFnWithContext._n = true; renderFnWithContext._c = true; renderFnWithContext._d = true; return renderFnWithContext; } function withDirectives(vnode, directives) { if (currentRenderingInstance === null) { return vnode; } const instance = getComponentPublicInstance(currentRenderingInstance); const bindings = vnode.dirs || (vnode.dirs = []); for (let i2 = 0; i2 < directives.length; i2++) { let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i2]; if (dir) { if (isFunction$3(dir)) { dir = { mounted: dir, updated: dir }; } if (dir.deep) { traverse(value); } bindings.push({ dir, instance, value, oldValue: void 0, arg, modifiers }); } } return vnode; } function invokeDirectiveHook(vnode, prevVNode, instance, name) { const bindings = vnode.dirs; const oldBindings = prevVNode && prevVNode.dirs; for (let i2 = 0; i2 < bindings.length; i2++) { const binding = bindings[i2]; if (oldBindings) { binding.oldValue = oldBindings[i2].value; } let hook = binding.dir[name]; if (hook) { pauseTracking(); callWithAsyncErrorHandling(hook, instance, 8, [ vnode.el, binding, vnode, prevVNode ]); resetTracking(); } } } const TeleportEndKey = Symbol("_vte"); const isTeleport = (type) => type.__isTeleport; const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === ""); const isTeleportDeferred = (props) => props && (props.defer || props.defer === ""); const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target instanceof SVGElement; const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement; const resolveTarget = (props, select) => { const targetSelector = props && props.to; if (isString$6(targetSelector)) { if (!select) { return null; } else { const target = select(targetSelector); return target; } } else { return targetSelector; } }; const TeleportImpl = { name: "Teleport", __isTeleport: true, process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) { const { mc: mountChildren, pc: patchChildren, pbc: patchBlockChildren, o: { insert, querySelector, createText, createComment } } = internals; const disabled = isTeleportDisabled(n2.props); let { shapeFlag, children, dynamicChildren } = n2; if (n1 == null) { const placeholder = n2.el = createText(""); const mainAnchor = n2.anchor = createText(""); insert(placeholder, container, anchor); insert(mainAnchor, container, anchor); const mount = (container2, anchor2) => { if (shapeFlag & 16) { if (parentComponent && parentComponent.isCE) { parentComponent.ce._teleportTarget = container2; } mountChildren( children, container2, anchor2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized ); } }; const mountToTarget = () => { const target = n2.target = resolveTarget(n2.props, querySelector); const targetAnchor = prepareAnchor(target, n2, createText, insert); if (target) { if (namespace !== "svg" && isTargetSVG(target)) { namespace = "svg"; } else if (namespace !== "mathml" && isTargetMathML(target)) { namespace = "mathml"; } if (!disabled) { mount(target, targetAnchor); updateCssVars(n2, false); } } }; if (disabled) { mount(container, mainAnchor); updateCssVars(n2, true); } if (isTeleportDeferred(n2.props)) { queuePostRenderEffect(() => { mountToTarget(); n2.el.__isMounted = true; }, parentSuspense); } else { mountToTarget(); } } else { if (isTeleportDeferred(n2.props) && !n1.el.__isMounted) { queuePostRenderEffect(() => { TeleportImpl.process( n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals ); delete n1.el.__isMounted; }, parentSuspense); return; } n2.el = n1.el; n2.targetStart = n1.targetStart; const mainAnchor = n2.anchor = n1.anchor; const target = n2.target = n1.target; const targetAnchor = n2.targetAnchor = n1.targetAnchor; const wasDisabled = isTeleportDisabled(n1.props); const currentContainer = wasDisabled ? container : target; const currentAnchor = wasDisabled ? mainAnchor : targetAnchor; if (namespace === "svg" || isTargetSVG(target)) { namespace = "svg"; } else if (namespace === "mathml" || isTargetMathML(target)) { namespace = "mathml"; } if (dynamicChildren) { patchBlockChildren( n1.dynamicChildren, dynamicChildren, currentContainer, parentComponent, parentSuspense, namespace, slotScopeIds ); traverseStaticChildren(n1, n2, true); } else if (!optimized) { patchChildren( n1, n2, currentContainer, currentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, false ); } if (disabled) { if (!wasDisabled) { moveTeleport( n2, container, mainAnchor, internals, 1 ); } else { if (n2.props && n1.props && n2.props.to !== n1.props.to) { n2.props.to = n1.props.to; } } } else { if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) { const nextTarget = n2.target = resolveTarget( n2.props, querySelector ); if (nextTarget) { moveTeleport( n2, nextTarget, null, internals, 0 ); } } else if (wasDisabled) { moveTeleport( n2, target, targetAnchor, internals, 1 ); } } updateCssVars(n2, disabled); } }, remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) { const { shapeFlag, children, anchor, targetStart, targetAnchor, target, props } = vnode; if (target) { hostRemove(targetStart); hostRemove(targetAnchor); } doRemove && hostRemove(anchor); if (shapeFlag & 16) { const shouldRemove = doRemove || !isTeleportDisabled(props); for (let i2 = 0; i2 < children.length; i2++) { const child = children[i2]; unmount( child, parentComponent, parentSuspense, shouldRemove, !!child.dynamicChildren ); } } }, move: moveTeleport, hydrate: hydrateTeleport }; function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) { if (moveType === 0) { insert(vnode.targetAnchor, container, parentAnchor); } const { el, anchor, shapeFlag, children, props } = vnode; const isReorder = moveType === 2; if (isReorder) { insert(el, container, parentAnchor); } if (!isReorder || isTeleportDisabled(props)) { if (shapeFlag & 16) { for (let i2 = 0; i2 < children.length; i2++) { move( children[i2], container, parentAnchor, 2 ); } } } if (isReorder) { insert(anchor, container, parentAnchor); } } function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, { o: { nextSibling, parentNode, querySelector, insert, createText } }, hydrateChildren) { const target = vnode.target = resolveTarget( vnode.props, querySelector ); if (target) { const disabled = isTeleportDisabled(vnode.props); const targetNode = target._lpa || target.firstChild; if (vnode.shapeFlag & 16) { if (disabled) { vnode.anchor = hydrateChildren( nextSibling(node), vnode, parentNode(node), parentComponent, parentSuspense, slotScopeIds, optimized ); vnode.targetStart = targetNode; vnode.targetAnchor = targetNode && nextSibling(targetNode); } else { vnode.anchor = nextSibling(node); let targetAnchor = targetNode; while (targetAnchor) { if (targetAnchor && targetAnchor.nodeType === 8) { if (targetAnchor.data === "teleport start anchor") { vnode.targetStart = targetAnchor; } else if (targetAnchor.data === "teleport anchor") { vnode.targetAnchor = targetAnchor; target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor); break; } } targetAnchor = nextSibling(targetAnchor); } if (!vnode.targetAnchor) { prepareAnchor(target, vnode, createText, insert); } hydrateChildren( targetNode && nextSibling(targetNode), vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized ); } } updateCssVars(vnode, disabled); } return vnode.anchor && nextSibling(vnode.anchor); } const Teleport = TeleportImpl; function updateCssVars(vnode, isDisabled) { const ctx = vnode.ctx; if (ctx && ctx.ut) { let node, anchor; if (isDisabled) { node = vnode.el; anchor = vnode.anchor; } else { node = vnode.targetStart; anchor = vnode.targetAnchor; } while (node && node !== anchor) { if (node.nodeType === 1) node.setAttribute("data-v-owner", ctx.uid); node = node.nextSibling; } ctx.ut(); } } function prepareAnchor(target, vnode, createText, insert) { const targetStart = vnode.targetStart = createText(""); const targetAnchor = vnode.targetAnchor = createText(""); targetStart[TeleportEndKey] = targetAnchor; if (target) { insert(targetStart, target); insert(targetAnchor, target); } return targetAnchor; } const leaveCbKey = Symbol("_leaveCb"); const enterCbKey$1 = Symbol("_enterCb"); function useTransitionState() { const state2 = { isMounted: false, isLeaving: false, isUnmounting: false, leavingVNodes: /* @__PURE__ */ new Map() }; onMounted(() => { state2.isMounted = true; }); onBeforeUnmount(() => { state2.isUnmounting = true; }); return state2; } const TransitionHookValidator = [Function, Array]; const BaseTransitionPropsValidators = { mode: String, appear: Boolean, persisted: Boolean, onBeforeEnter: TransitionHookValidator, onEnter: TransitionHookValidator, onAfterEnter: TransitionHookValidator, onEnterCancelled: TransitionHookValidator, onBeforeLeave: TransitionHookValidator, onLeave: TransitionHookValidator, onAfterLeave: TransitionHookValidator, onLeaveCancelled: TransitionHookValidator, onBeforeAppear: TransitionHookValidator, onAppear: TransitionHookValidator, onAfterAppear: TransitionHookValidator, onAppearCancelled: TransitionHookValidator }; const recursiveGetSubtree = (instance) => { const subTree = instance.subTree; return subTree.component ? recursiveGetSubtree(subTree.component) : subTree; }; const BaseTransitionImpl = { name: `BaseTransition`, props: BaseTransitionPropsValidators, setup(props, { slots }) { const instance = getCurrentInstance(); const state2 = useTransitionState(); return () => { const children = slots.default && getTransitionRawChildren(slots.default(), true); if (!children || !children.length) { return; } const child = findNonCommentChild(children); const rawProps = toRaw(props); const { mode } = rawProps; if (state2.isLeaving) { return emptyPlaceholder(child); } const innerChild = getInnerChild$1(child); if (!innerChild) { return emptyPlaceholder(child); } let enterHooks = resolveTransitionHooks( innerChild, rawProps, state2, instance, (hooks2) => enterHooks = hooks2 ); if (innerChild.type !== Comment) { setTransitionHooks(innerChild, enterHooks); } let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree); if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild) && recursiveGetSubtree(instance).type !== Comment) { let leavingHooks = resolveTransitionHooks( oldInnerChild, rawProps, state2, instance ); setTransitionHooks(oldInnerChild, leavingHooks); if (mode === "out-in" && innerChild.type !== Comment) { state2.isLeaving = true; leavingHooks.afterLeave = () => { state2.isLeaving = false; if (!(instance.job.flags & 8)) { instance.update(); } delete leavingHooks.afterLeave; oldInnerChild = void 0; }; return emptyPlaceholder(child); } else if (mode === "in-out" && innerChild.type !== Comment) { leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => { const leavingVNodesCache = getLeavingNodesForType( state2, oldInnerChild ); leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild; el[leaveCbKey] = () => { earlyRemove(); el[leaveCbKey] = void 0; delete enterHooks.delayedLeave; oldInnerChild = void 0; }; enterHooks.delayedLeave = () => { delayedLeave(); delete enterHooks.delayedLeave; oldInnerChild = void 0; }; }; } else { oldInnerChild = void 0; } } else if (oldInnerChild) { oldInnerChild = void 0; } return child; }; } }; function findNonCommentChild(children) { let child = children[0]; if (children.length > 1) { for (const c2 of children) { if (c2.type !== Comment) { child = c2; break; } } } return child; } const BaseTransition = BaseTransitionImpl; function getLeavingNodesForType(state2, vnode) { const { leavingVNodes } = state2; let leavingVNodesCache = leavingVNodes.get(vnode.type); if (!leavingVNodesCache) { leavingVNodesCache = /* @__PURE__ */ Object.create(null); leavingVNodes.set(vnode.type, leavingVNodesCache); } return leavingVNodesCache; } function resolveTransitionHooks(vnode, props, state2, instance, postClone) { const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props; const key = String(vnode.key); const leavingVNodesCache = getLeavingNodesForType(state2, vnode); const callHook2 = (hook, args) => { hook && callWithAsyncErrorHandling( hook, instance, 9, args ); }; const callAsyncHook = (hook, args) => { const done = args[1]; callHook2(hook, args); if (isArray$4(hook)) { if (hook.every((hook2) => hook2.length <= 1)) done(); } else if (hook.length <= 1) { done(); } }; const hooks2 = { mode, persisted, beforeEnter(el) { let hook = onBeforeEnter; if (!state2.isMounted) { if (appear) { hook = onBeforeAppear || onBeforeEnter; } else { return; } } if (el[leaveCbKey]) { el[leaveCbKey]( true ); } const leavingVNode = leavingVNodesCache[key]; if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) { leavingVNode.el[leaveCbKey](); } callHook2(hook, [el]); }, enter(el) { let hook = onEnter; let afterHook = onAfterEnter; let cancelHook = onEnterCancelled; if (!state2.isMounted) { if (appear) { hook = onAppear || onEnter; afterHook = onAfterAppear || onAfterEnter; cancelHook = onAppearCancelled || onEnterCancelled; } else { return; } } let called = false; const done = el[enterCbKey$1] = (cancelled) => { if (called) return; called = true; if (cancelled) { callHook2(cancelHook, [el]); } else { callHook2(afterHook, [el]); } if (hooks2.delayedLeave) { hooks2.delayedLeave(); } el[enterCbKey$1] = void 0; }; if (hook) { callAsyncHook(hook, [el, done]); } else { done(); } }, leave(el, remove2) { const key2 = String(vnode.key); if (el[enterCbKey$1]) { el[enterCbKey$1]( true ); } if (state2.isUnmounting) { return remove2(); } callHook2(onBeforeLeave, [el]); let called = false; const done = el[leaveCbKey] = (cancelled) => { if (called) return; called = true; remove2(); if (cancelled) { callHook2(onLeaveCancelled, [el]); } else { callHook2(onAfterLeave, [el]); } el[leaveCbKey] = void 0; if (leavingVNodesCache[key2] === vnode) { delete leavingVNodesCache[key2]; } }; leavingVNodesCache[key2] = vnode; if (onLeave) { callAsyncHook(onLeave, [el, done]); } else { done(); } }, clone(vnode2) { const hooks22 = resolveTransitionHooks( vnode2, props, state2, instance, postClone ); if (postClone) postClone(hooks22); return hooks22; } }; return hooks2; } function emptyPlaceholder(vnode) { if (isKeepAlive(vnode)) { vnode = cloneVNode(vnode); vnode.children = null; return vnode; } } function getInnerChild$1(vnode) { if (!isKeepAlive(vnode)) { if (isTeleport(vnode.type) && vnode.children) { return findNonCommentChild(vnode.children); } return vnode; } const { shapeFlag, children } = vnode; if (children) { if (shapeFlag & 16) { return children[0]; } if (shapeFlag & 32 && isFunction$3(children.default)) { return children.default(); } } } function setTransitionHooks(vnode, hooks2) { if (vnode.shapeFlag & 6 && vnode.component) { vnode.transition = hooks2; setTransitionHooks(vnode.component.subTree, hooks2); } else if (vnode.shapeFlag & 128) { vnode.ssContent.transition = hooks2.clone(vnode.ssContent); vnode.ssFallback.transition = hooks2.clone(vnode.ssFallback); } else { vnode.transition = hooks2; } } function getTransitionRawChildren(children, keepComment = false, parentKey) { let ret = []; let keyedFragmentCount = 0; for (let i2 = 0; i2 < children.length; i2++) { let child = children[i2]; const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i2); if (child.type === Fragment) { if (child.patchFlag & 128) keyedFragmentCount++; ret = ret.concat( getTransitionRawChildren(child.children, keepComment, key) ); } else if (keepComment || child.type !== Comment) { ret.push(key != null ? cloneVNode(child, { key }) : child); } } if (keyedFragmentCount > 1) { for (let i2 = 0; i2 < ret.length; i2++) { ret[i2].patchFlag = -2; } } return ret; } /*! #__NO_SIDE_EFFECTS__ */ function defineComponent(options, extraOptions) { return isFunction$3(options) ? /* @__PURE__ */ (() => extend$2({ name: options.name }, extraOptions, { setup: options }))() : options; } function useId() { const i2 = getCurrentInstance(); if (i2) { return (i2.appContext.config.idPrefix || "v") + "-" + i2.ids[0] + i2.ids[1]++; } return ""; } function markAsyncBoundary(instance) { instance.ids = [instance.ids[0] + instance.ids[2]++ + "-", 0, 0]; } function useTemplateRef(key) { const i2 = getCurrentInstance(); const r2 = shallowRef(null); if (i2) { const refs = i2.refs === EMPTY_OBJ ? i2.refs = {} : i2.refs; { Object.defineProperty(refs, key, { enumerable: true, get: () => r2.value, set: (val) => r2.value = val }); } } const ret = r2; return ret; } function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) { if (isArray$4(rawRef)) { rawRef.forEach( (r2, i2) => setRef( r2, oldRawRef && (isArray$4(oldRawRef) ? oldRawRef[i2] : oldRawRef), parentSuspense, vnode, isUnmount ) ); return; } if (isAsyncWrapper(vnode) && !isUnmount) { if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) { setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree); } return; } const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el; const value = isUnmount ? null : refValue; const { i: owner, r: ref2 } = rawRef; const oldRef = oldRawRef && oldRawRef.r; const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs; const setupState = owner.setupState; const rawSetupState = toRaw(setupState); const canSetSetupRef = setupState === EMPTY_OBJ ? () => false : (key) => { return hasOwn$2(rawSetupState, key); }; if (oldRef != null && oldRef !== ref2) { if (isString$6(oldRef)) { refs[oldRef] = null; if (canSetSetupRef(oldRef)) { setupState[oldRef] = null; } } else if (isRef(oldRef)) { oldRef.value = null; } } if (isFunction$3(ref2)) { callWithErrorHandling(ref2, owner, 12, [value, refs]); } else { const _isString = isString$6(ref2); const _isRef = isRef(ref2); if (_isString || _isRef) { const doSet = () => { if (rawRef.f) { const existing = _isString ? canSetSetupRef(ref2) ? setupState[ref2] : refs[ref2] : ref2.value; if (isUnmount) { isArray$4(existing) && remove(existing, refValue); } else { if (!isArray$4(existing)) { if (_isString) { refs[ref2] = [refValue]; if (canSetSetupRef(ref2)) { setupState[ref2] = refs[ref2]; } } else { ref2.value = [refValue]; if (rawRef.k) refs[rawRef.k] = ref2.value; } } else if (!existing.includes(refValue)) { existing.push(refValue); } } } else if (_isString) { refs[ref2] = value; if (canSetSetupRef(ref2)) { setupState[ref2] = value; } } else if (_isRef) { ref2.value = value; if (rawRef.k) refs[rawRef.k] = value; } else ; }; if (value) { doSet.id = -1; queuePostRenderEffect(doSet, parentSuspense); } else { doSet(); } } } } let hasLoggedMismatchError = false; const logMismatchError = () => { if (hasLoggedMismatchError) { return; } console.error("Hydration completed but contains mismatches."); hasLoggedMismatchError = true; }; const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject"; const isMathMLContainer = (container) => container.namespaceURI.includes("MathML"); const getContainerType = (container) => { if (container.nodeType !== 1) return void 0; if (isSVGContainer(container)) return "svg"; if (isMathMLContainer(container)) return "mathml"; return void 0; }; const isComment = (node) => node.nodeType === 8; function createHydrationFunctions(rendererInternals) { const { mt: mountComponent, p: patch, o: { patchProp: patchProp2, createText, nextSibling, parentNode, remove: remove2, insert, createComment } } = rendererInternals; const hydrate2 = (vnode, container) => { if (!container.hasChildNodes()) { __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ && warn$1$1( `Attempting to hydrate existing markup but container is empty. Performing full mount instead.` ); patch(null, vnode, container); flushPostFlushCbs(); container._vnode = vnode; return; } hydrateNode(container.firstChild, vnode, null, null, null); flushPostFlushCbs(); container._vnode = vnode; }; const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => { optimized = optimized || !!vnode.dynamicChildren; const isFragmentStart = isComment(node) && node.data === "["; const onMismatch = () => handleMismatch( node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragmentStart ); const { type, ref: ref2, shapeFlag, patchFlag } = vnode; let domType = node.nodeType; vnode.el = node; if (patchFlag === -2) { optimized = false; vnode.dynamicChildren = null; } let nextNode = null; switch (type) { case Text: if (domType !== 3) { if (vnode.children === "") { insert(vnode.el = createText(""), parentNode(node), node); nextNode = node; } else { nextNode = onMismatch(); } } else { if (node.data !== vnode.children) { __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ && warn$1$1( `Hydration text mismatch in`, node.parentNode, ` - rendered on server: ${JSON.stringify( node.data )} - expected on client: ${JSON.stringify(vnode.children)}` ); logMismatchError(); node.data = vnode.children; } nextNode = nextSibling(node); } break; case Comment: if (isTemplateNode(node)) { nextNode = nextSibling(node); replaceNode( vnode.el = node.content.firstChild, node, parentComponent ); } else if (domType !== 8 || isFragmentStart) { nextNode = onMismatch(); } else { nextNode = nextSibling(node); } break; case Static: if (isFragmentStart) { node = nextSibling(node); domType = node.nodeType; } if (domType === 1 || domType === 3) { nextNode = node; const needToAdoptContent = !vnode.children.length; for (let i2 = 0; i2 < vnode.staticCount; i2++) { if (needToAdoptContent) vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data; if (i2 === vnode.staticCount - 1) { vnode.anchor = nextNode; } nextNode = nextSibling(nextNode); } return isFragmentStart ? nextSibling(nextNode) : nextNode; } else { onMismatch(); } break; case Fragment: if (!isFragmentStart) { nextNode = onMismatch(); } else { nextNode = hydrateFragment( node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized ); } break; default: if (shapeFlag & 1) { if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) { nextNode = onMismatch(); } else { nextNode = hydrateElement( node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized ); } } else if (shapeFlag & 6) { vnode.slotScopeIds = slotScopeIds; const container = parentNode(node); if (isFragmentStart) { nextNode = locateClosingAnchor(node); } else if (isComment(node) && node.data === "teleport start") { nextNode = locateClosingAnchor(node, node.data, "teleport end"); } else { nextNode = nextSibling(node); } mountComponent( vnode, container, null, parentComponent, parentSuspense, getContainerType(container), optimized ); if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) { let subTree; if (isFragmentStart) { subTree = createVNode(Fragment); subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild; } else { subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div"); } subTree.el = node; vnode.component.subTree = subTree; } } else if (shapeFlag & 64) { if (domType !== 8) { nextNode = onMismatch(); } else { nextNode = vnode.type.hydrate( node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren ); } } else if (shapeFlag & 128) { nextNode = vnode.type.hydrate( node, vnode, parentComponent, parentSuspense, getContainerType(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode ); } else if (__VUE_PROD_HYDRATION_MISMATCH_DETAILS__) { warn$1$1("Invalid HostVNode type:", type, `(${typeof type})`); } } if (ref2 != null) { setRef(ref2, null, parentSuspense, vnode); } return nextNode; }; const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { optimized = optimized || !!vnode.dynamicChildren; const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode; const forcePatch = type === "input" || type === "option"; if (forcePatch || patchFlag !== -1) { if (dirs) { invokeDirectiveHook(vnode, null, parentComponent, "created"); } let needCallTransitionHooks = false; if (isTemplateNode(el)) { needCallTransitionHooks = needTransition( null, transition ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear; const content = el.content.firstChild; if (needCallTransitionHooks) { transition.beforeEnter(content); } replaceNode(content, el, parentComponent); vnode.el = el = content; } if (shapeFlag & 16 && !(props && (props.innerHTML || props.textContent))) { let next = hydrateChildren( el.firstChild, vnode, el, parentComponent, parentSuspense, slotScopeIds, optimized ); let hasWarned = false; while (next) { if (!isMismatchAllowed(el, 1)) { if (__VUE_PROD_HYDRATION_MISMATCH_DETAILS__ && !hasWarned) { warn$1$1( `Hydration children mismatch on`, el, ` Server rendered element contains more child nodes than client vdom.` ); hasWarned = true; } logMismatchError(); } const cur = next; next = next.nextSibling; remove2(cur); } } else if (shapeFlag & 8) { let clientText = vnode.children; if (clientText[0] === "\n" && (el.tagName === "PRE" || el.tagName === "TEXTAREA")) { clientText = clientText.slice(1); } if (el.textContent !== clientText) { if (!isMismatchAllowed(el, 0)) { __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ && warn$1$1( `Hydration text content mismatch on`, el, ` - rendered on server: ${el.textContent} - expected on client: ${vnode.children}` ); logMismatchError(); } el.textContent = vnode.children; } } if (props) { if (__VUE_PROD_HYDRATION_MISMATCH_DETAILS__ || forcePatch || !optimized || patchFlag & (16 | 32)) { const isCustomElement = el.tagName.includes("-"); for (const key in props) { if (__VUE_PROD_HYDRATION_MISMATCH_DETAILS__ && !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) { logMismatchError(); } if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || key[0] === "." || isCustomElement) { patchProp2(el, key, null, props[key], void 0, parentComponent); } } } else if (props.onClick) { patchProp2( el, "onClick", null, props.onClick, void 0, parentComponent ); } else if (patchFlag & 4 && isReactive(props.style)) { for (const key in props.style) props.style[key]; } } let vnodeHooks; if (vnodeHooks = props && props.onVnodeBeforeMount) { invokeVNodeHook(vnodeHooks, parentComponent, vnode); } if (dirs) { invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); } if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) { queueEffectWithSuspense(() => { vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode); needCallTransitionHooks && transition.enter(el); dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); }, parentSuspense); } } return el.nextSibling; }; const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => { optimized = optimized || !!parentVNode.dynamicChildren; const children = parentVNode.children; const l = children.length; let hasWarned = false; for (let i2 = 0; i2 < l; i2++) { const vnode = optimized ? children[i2] : children[i2] = normalizeVNode(children[i2]); const isText = vnode.type === Text; if (node) { if (isText && !optimized) { if (i2 + 1 < l && normalizeVNode(children[i2 + 1]).type === Text) { insert( createText( node.data.slice(vnode.children.length) ), container, nextSibling(node) ); node.data = vnode.children; } } node = hydrateNode( node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized ); } else if (isText && !vnode.children) { insert(vnode.el = createText(""), container); } else { if (!isMismatchAllowed(container, 1)) { if (__VUE_PROD_HYDRATION_MISMATCH_DETAILS__ && !hasWarned) { warn$1$1( `Hydration children mismatch on`, container, ` Server rendered element contains fewer child nodes than client vdom.` ); hasWarned = true; } logMismatchError(); } patch( null, vnode, container, null, parentComponent, parentSuspense, getContainerType(container), slotScopeIds ); } } return node; }; const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { const { slotScopeIds: fragmentSlotScopeIds } = vnode; if (fragmentSlotScopeIds) { slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; } const container = parentNode(node); const next = hydrateChildren( nextSibling(node), vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized ); if (next && isComment(next) && next.data === "]") { return nextSibling(vnode.anchor = next); } else { logMismatchError(); insert(vnode.anchor = createComment(`]`), container, next); return next; } }; const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => { if (!isMismatchAllowed(node.parentElement, 1)) { __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ && warn$1$1( `Hydration node mismatch: - rendered on server:`, node, node.nodeType === 3 ? `(text)` : isComment(node) && node.data === "[" ? `(start of fragment)` : ``, ` - expected on client:`, vnode.type ); logMismatchError(); } vnode.el = null; if (isFragment) { const end = locateClosingAnchor(node); while (true) { const next2 = nextSibling(node); if (next2 && next2 !== end) { remove2(next2); } else { break; } } } const next = nextSibling(node); const container = parentNode(node); remove2(node); patch( null, vnode, container, next, parentComponent, parentSuspense, getContainerType(container), slotScopeIds ); if (parentComponent) { parentComponent.vnode.el = vnode.el; updateHOCHostEl(parentComponent, vnode.el); } return next; }; const locateClosingAnchor = (node, open = "[", close = "]") => { let match = 0; while (node) { node = nextSibling(node); if (node && isComment(node)) { if (node.data === open) match++; if (node.data === close) { if (match === 0) { return nextSibling(node); } else { match--; } } } } return node; }; const replaceNode = (newNode, oldNode, parentComponent) => { const parentNode2 = oldNode.parentNode; if (parentNode2) { parentNode2.replaceChild(newNode, oldNode); } let parent = parentComponent; while (parent) { if (parent.vnode.el === oldNode) { parent.vnode.el = parent.subTree.el = newNode; } parent = parent.parent; } }; const isTemplateNode = (node) => { return node.nodeType === 1 && node.tagName === "TEMPLATE"; }; return [hydrate2, hydrateNode]; } function propHasMismatch(el, key, clientValue, vnode, instance) { let mismatchType; let mismatchKey; let actual; let expected; if (key === "class") { actual = el.getAttribute("class"); expected = normalizeClass(clientValue); if (!isSetEqual(toClassSet(actual || ""), toClassSet(expected))) { mismatchType = 2; mismatchKey = `class`; } } else if (key === "style") { actual = el.getAttribute("style") || ""; expected = isString$6(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue)); const actualMap = toStyleMap(actual); const expectedMap = toStyleMap(expected); if (vnode.dirs) { for (const { dir, value } of vnode.dirs) { if (dir.name === "show" && !value) { expectedMap.set("display", "none"); } } } if (instance) { resolveCssVars(instance, vnode, expectedMap); } if (!isMapEqual(actualMap, expectedMap)) { mismatchType = 3; mismatchKey = "style"; } } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) { if (isBooleanAttr(key)) { actual = el.hasAttribute(key); expected = includeBooleanAttr(clientValue); } else if (clientValue == null) { actual = el.hasAttribute(key); expected = false; } else { if (el.hasAttribute(key)) { actual = el.getAttribute(key); } else if (key === "value" && el.tagName === "TEXTAREA") { actual = el.value; } else { actual = false; } expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false; } if (actual !== expected) { mismatchType = 4; mismatchKey = key; } } if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) { const format2 = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`; const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`; const postSegment = ` - rendered on server: ${format2(actual)} - expected on client: ${format2(expected)} Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead. You should fix the source of the mismatch.`; { warn$1$1(preSegment, el, postSegment); } return true; } return false; } function toClassSet(str) { return new Set(str.trim().split(/\s+/)); } function isSetEqual(a2, b) { if (a2.size !== b.size) { return false; } for (const s of a2) { if (!b.has(s)) { return false; } } return true; } function toStyleMap(str) { const styleMap = /* @__PURE__ */ new Map(); for (const item of str.split(";")) { let [key, value] = item.split(":"); key = key.trim(); value = value && value.trim(); if (key && value) { styleMap.set(key, value); } } return styleMap; } function isMapEqual(a2, b) { if (a2.size !== b.size) { return false; } for (const [key, value] of a2) { if (value !== b.get(key)) { return false; } } return true; } function resolveCssVars(instance, vnode, expectedMap) { const root2 = instance.subTree; if (instance.getCssVars && (vnode === root2 || root2 && root2.type === Fragment && root2.children.includes(vnode))) { const cssVars = instance.getCssVars(); for (const key in cssVars) { expectedMap.set( `--${getEscapedCssVarName(key, false)}`, String(cssVars[key]) ); } } if (vnode === root2 && instance.parent) { resolveCssVars(instance.parent, instance.vnode, expectedMap); } } const allowMismatchAttr = "data-allow-mismatch"; const MismatchTypeString = { [0]: "text", [1]: "children", [2]: "class", [3]: "style", [4]: "attribute" }; function isMismatchAllowed(el, allowedType) { if (allowedType === 0 || allowedType === 1) { while (el && !el.hasAttribute(allowMismatchAttr)) { el = el.parentElement; } } const allowedAttr = el && el.getAttribute(allowMismatchAttr); if (allowedAttr == null) { return false; } else if (allowedAttr === "") { return true; } else { const list = allowedAttr.split(","); if (allowedType === 0 && list.includes("children")) { return true; } return allowedAttr.split(",").includes(MismatchTypeString[allowedType]); } } const requestIdleCallback = getGlobalThis$1().requestIdleCallback || ((cb) => setTimeout(cb, 1)); const cancelIdleCallback = getGlobalThis$1().cancelIdleCallback || ((id) => clearTimeout(id)); const hydrateOnIdle = (timeout = 1e4) => (hydrate2) => { const id = requestIdleCallback(hydrate2, { timeout }); return () => cancelIdleCallback(id); }; function elementIsVisibleInViewport(el) { const { top, left, bottom, right } = el.getBoundingClientRect(); const { innerHeight, innerWidth } = window; return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth); } const hydrateOnVisible = (opts) => (hydrate2, forEach2) => { const ob = new IntersectionObserver((entries) => { for (const e2 of entries) { if (!e2.isIntersecting) continue; ob.disconnect(); hydrate2(); break; } }, opts); forEach2((el) => { if (!(el instanceof Element)) return; if (elementIsVisibleInViewport(el)) { hydrate2(); ob.disconnect(); return false; } ob.observe(el); }); return () => ob.disconnect(); }; const hydrateOnMediaQuery = (query) => (hydrate2) => { if (query) { const mql = matchMedia(query); if (mql.matches) { hydrate2(); } else { mql.addEventListener("change", hydrate2, { once: true }); return () => mql.removeEventListener("change", hydrate2); } } }; const hydrateOnInteraction = (interactions = []) => (hydrate2, forEach2) => { if (isString$6(interactions)) interactions = [interactions]; let hasHydrated = false; const doHydrate = (e2) => { if (!hasHydrated) { hasHydrated = true; teardown(); hydrate2(); e2.target.dispatchEvent(new e2.constructor(e2.type, e2)); } }; const teardown = () => { forEach2((el) => { for (const i2 of interactions) { el.removeEventListener(i2, doHydrate); } }); }; forEach2((el) => { for (const i2 of interactions) { el.addEventListener(i2, doHydrate, { once: true }); } }); return teardown; }; function forEachElement(node, cb) { if (isComment(node) && node.data === "[") { let depth = 1; let next = node.nextSibling; while (next) { if (next.nodeType === 1) { const result2 = cb(next); if (result2 === false) { break; } } else if (isComment(next)) { if (next.data === "]") { if (--depth === 0) break; } else if (next.data === "[") { depth++; } } next = next.nextSibling; } } else { cb(node); } } const isAsyncWrapper = (i2) => !!i2.type.__asyncLoader; /*! #__NO_SIDE_EFFECTS__ */ function defineAsyncComponent(source) { if (isFunction$3(source)) { source = { loader: source }; } const { loader, loadingComponent, errorComponent, delay = 200, hydrate: hydrateStrategy, timeout, suspensible = true, onError: userOnError } = source; let pendingRequest = null; let resolvedComp; let retries = 0; const retry = () => { retries++; pendingRequest = null; return load(); }; const load = () => { let thisRequest; return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => { err = err instanceof Error ? err : new Error(String(err)); if (userOnError) { return new Promise((resolve2, reject) => { const userRetry = () => resolve2(retry()); const userFail = () => reject(err); userOnError(err, userRetry, userFail, retries + 1); }); } else { throw err; } }).then((comp) => { if (thisRequest !== pendingRequest && pendingRequest) { return pendingRequest; } if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) { comp = comp.default; } resolvedComp = comp; return comp; })); }; return defineComponent({ name: "AsyncComponentWrapper", __asyncLoader: load, __asyncHydrate(el, instance, hydrate2) { const doHydrate = hydrateStrategy ? () => { const teardown = hydrateStrategy( hydrate2, (cb) => forEachElement(el, cb) ); if (teardown) { (instance.bum || (instance.bum = [])).push(teardown); } } : hydrate2; if (resolvedComp) { doHydrate(); } else { load().then(() => !instance.isUnmounted && doHydrate()); } }, get __asyncResolved() { return resolvedComp; }, setup() { const instance = currentInstance; markAsyncBoundary(instance); if (resolvedComp) { return () => createInnerComp(resolvedComp, instance); } const onError = (err) => { pendingRequest = null; handleError$1( err, instance, 13, !errorComponent ); }; if (suspensible && instance.suspense || isInSSRComponentSetup) { return load().then((comp) => { return () => createInnerComp(comp, instance); }).catch((err) => { onError(err); return () => errorComponent ? createVNode(errorComponent, { error: err }) : null; }); } const loaded = ref(false); const error = ref(); const delayed = ref(!!delay); if (delay) { setTimeout(() => { delayed.value = false; }, delay); } if (timeout != null) { setTimeout(() => { if (!loaded.value && !error.value) { const err = new Error( `Async component timed out after ${timeout}ms.` ); onError(err); error.value = err; } }, timeout); } load().then(() => { loaded.value = true; if (instance.parent && isKeepAlive(instance.parent.vnode)) { instance.parent.update(); } }).catch((err) => { onError(err); error.value = err; }); return () => { if (loaded.value && resolvedComp) { return createInnerComp(resolvedComp, instance); } else if (error.value && errorComponent) { return createVNode(errorComponent, { error: error.value }); } else if (loadingComponent && !delayed.value) { return createVNode(loadingComponent); } }; } }); } function createInnerComp(comp, parent) { const { ref: ref2, props, children, ce } = parent.vnode; const vnode = createVNode(comp, props, children); vnode.ref = ref2; vnode.ce = ce; delete parent.vnode.ce; return vnode; } const isKeepAlive = (vnode) => vnode.type.__isKeepAlive; const KeepAliveImpl = { name: `KeepAlive`, __isKeepAlive: true, props: { include: [String, RegExp, Array], exclude: [String, RegExp, Array], max: [String, Number] }, setup(props, { slots }) { const instance = getCurrentInstance(); const sharedContext = instance.ctx; if (!sharedContext.renderer) { return () => { const children = slots.default && slots.default(); return children && children.length === 1 ? children[0] : children; }; } const cache2 = /* @__PURE__ */ new Map(); const keys2 = /* @__PURE__ */ new Set(); let current = null; const parentSuspense = instance.suspense; const { renderer: { p: patch, m: move, um: _unmount, o: { createElement } } } = sharedContext; const storageContainer = createElement("div"); sharedContext.activate = (vnode, container, anchor, namespace, optimized) => { const instance2 = vnode.component; move(vnode, container, anchor, 0, parentSuspense); patch( instance2.vnode, vnode, container, anchor, instance2, parentSuspense, namespace, vnode.slotScopeIds, optimized ); queuePostRenderEffect(() => { instance2.isDeactivated = false; if (instance2.a) { invokeArrayFns(instance2.a); } const vnodeHook = vnode.props && vnode.props.onVnodeMounted; if (vnodeHook) { invokeVNodeHook(vnodeHook, instance2.parent, vnode); } }, parentSuspense); }; sharedContext.deactivate = (vnode) => { const instance2 = vnode.component; invalidateMount(instance2.m); invalidateMount(instance2.a); move(vnode, storageContainer, null, 1, parentSuspense); queuePostRenderEffect(() => { if (instance2.da) { invokeArrayFns(instance2.da); } const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted; if (vnodeHook) { invokeVNodeHook(vnodeHook, instance2.parent, vnode); } instance2.isDeactivated = true; }, parentSuspense); }; function unmount(vnode) { resetShapeFlag(vnode); _unmount(vnode, instance, parentSuspense, true); } function pruneCache(filter) { cache2.forEach((vnode, key) => { const name = getComponentName(vnode.type); if (name && !filter(name)) { pruneCacheEntry(key); } }); } function pruneCacheEntry(key) { const cached = cache2.get(key); if (cached && (!current || !isSameVNodeType(cached, current))) { unmount(cached); } else if (current) { resetShapeFlag(current); } cache2.delete(key); keys2.delete(key); } watch( () => [props.include, props.exclude], ([include, exclude]) => { include && pruneCache((name) => matches(include, name)); exclude && pruneCache((name) => !matches(exclude, name)); }, { flush: "post", deep: true } ); let pendingCacheKey = null; const cacheSubtree = () => { if (pendingCacheKey != null) { if (isSuspense(instance.subTree.type)) { queuePostRenderEffect(() => { cache2.set(pendingCacheKey, getInnerChild(instance.subTree)); }, instance.subTree.suspense); } else { cache2.set(pendingCacheKey, getInnerChild(instance.subTree)); } } }; onMounted(cacheSubtree); onUpdated(cacheSubtree); onBeforeUnmount(() => { cache2.forEach((cached) => { const { subTree, suspense } = instance; const vnode = getInnerChild(subTree); if (cached.type === vnode.type && cached.key === vnode.key) { resetShapeFlag(vnode); const da = vnode.component.da; da && queuePostRenderEffect(da, suspense); return; } unmount(cached); }); }); return () => { pendingCacheKey = null; if (!slots.default) { return current = null; } const children = slots.default(); const rawVNode = children[0]; if (children.length > 1) { current = null; return children; } else if (!isVNode$1(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) { current = null; return rawVNode; } let vnode = getInnerChild(rawVNode); if (vnode.type === Comment) { current = null; return vnode; } const comp = vnode.type; const name = getComponentName( isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp ); const { include, exclude, max: max2 } = props; if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) { vnode.shapeFlag &= ~256; current = vnode; return rawVNode; } const key = vnode.key == null ? comp : vnode.key; const cachedVNode = cache2.get(key); if (vnode.el) { vnode = cloneVNode(vnode); if (rawVNode.shapeFlag & 128) { rawVNode.ssContent = vnode; } } pendingCacheKey = key; if (cachedVNode) { vnode.el = cachedVNode.el; vnode.component = cachedVNode.component; if (vnode.transition) { setTransitionHooks(vnode, vnode.transition); } vnode.shapeFlag |= 512; keys2.delete(key); keys2.add(key); } else { keys2.add(key); if (max2 && keys2.size > parseInt(max2, 10)) { pruneCacheEntry(keys2.values().next().value); } } vnode.shapeFlag |= 256; current = vnode; return isSuspense(rawVNode.type) ? rawVNode : vnode; }; } }; const KeepAlive = KeepAliveImpl; function matches(pattern, name) { if (isArray$4(pattern)) { return pattern.some((p2) => matches(p2, name)); } else if (isString$6(pattern)) { return pattern.split(",").includes(name); } else if (isRegExp$1(pattern)) { pattern.lastIndex = 0; return pattern.test(name); } return false; } function onActivated(hook, target) { registerKeepAliveHook(hook, "a", target); } function onDeactivated(hook, target) { registerKeepAliveHook(hook, "da", target); } function registerKeepAliveHook(hook, type, target = currentInstance) { const wrappedHook = hook.__wdc || (hook.__wdc = () => { let current = target; while (current) { if (current.isDeactivated) { return; } current = current.parent; } return hook(); }); injectHook(type, wrappedHook, target); if (target) { let current = target.parent; while (current && current.parent) { if (isKeepAlive(current.parent.vnode)) { injectToKeepAliveRoot(wrappedHook, type, target, current); } current = current.parent; } } } function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) { const injected = injectHook( type, hook, keepAliveRoot, true ); onUnmounted(() => { remove(keepAliveRoot[type], injected); }, target); } function resetShapeFlag(vnode) { vnode.shapeFlag &= ~256; vnode.shapeFlag &= ~512; } function getInnerChild(vnode) { return vnode.shapeFlag & 128 ? vnode.ssContent : vnode; } function injectHook(type, hook, target = currentInstance, prepend = false) { if (target) { const hooks2 = target[type] || (target[type] = []); const wrappedHook = hook.__weh || (hook.__weh = (...args) => { pauseTracking(); const reset = setCurrentInstance(target); const res = callWithAsyncErrorHandling(hook, target, type, args); reset(); resetTracking(); return res; }); if (prepend) { hooks2.unshift(wrappedHook); } else { hooks2.push(wrappedHook); } return wrappedHook; } } const createHook = (lifecycle) => (hook, target = currentInstance) => { if (!isInSSRComponentSetup || lifecycle === "sp") { injectHook(lifecycle, (...args) => hook(...args), target); } }; const onBeforeMount = createHook("bm"); const onMounted = createHook("m"); const onBeforeUpdate = createHook( "bu" ); const onUpdated = createHook("u"); const onBeforeUnmount = createHook( "bum" ); const onUnmounted = createHook("um"); const onServerPrefetch = createHook( "sp" ); const onRenderTriggered = createHook("rtg"); const onRenderTracked = createHook("rtc"); function onErrorCaptured(hook, target = currentInstance) { injectHook("ec", hook, target); } const COMPONENTS = "components"; const DIRECTIVES = "directives"; function resolveComponent(name, maybeSelfReference) { return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name; } const NULL_DYNAMIC_COMPONENT = Symbol.for("v-ndc"); function resolveDynamicComponent(component) { if (isString$6(component)) { return resolveAsset(COMPONENTS, component, false) || component; } else { return component || NULL_DYNAMIC_COMPONENT; } } function resolveDirective(name) { return resolveAsset(DIRECTIVES, name); } function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) { const instance = currentRenderingInstance || currentInstance; if (instance) { const Component = instance.type; if (type === COMPONENTS) { const selfName = getComponentName( Component, false ); if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize$1(camelize(name)))) { return Component; } } const res = resolve(instance[type] || Component[type], name) || resolve(instance.appContext[type], name); if (!res && maybeSelfReference) { return Component; } return res; } } function resolve(registry, name) { return registry && (registry[name] || registry[camelize(name)] || registry[capitalize$1(camelize(name))]); } function renderList(source, renderItem, cache2, index2) { let ret; const cached = cache2 && cache2[index2]; const sourceIsArray = isArray$4(source); if (sourceIsArray || isString$6(source)) { const sourceIsReactiveArray = sourceIsArray && isReactive(source); let needsWrap = false; if (sourceIsReactiveArray) { needsWrap = !isShallow(source); source = shallowReadArray(source); } ret = new Array(source.length); for (let i2 = 0, l = source.length; i2 < l; i2++) { ret[i2] = renderItem( needsWrap ? toReactive(source[i2]) : source[i2], i2, void 0, cached && cached[i2] ); } } else if (typeof source === "number") { ret = new Array(source); for (let i2 = 0; i2 < source; i2++) { ret[i2] = renderItem(i2 + 1, i2, void 0, cached && cached[i2]); } } else if (isObject$8(source)) { if (source[Symbol.iterator]) { ret = Array.from( source, (item, i2) => renderItem(item, i2, void 0, cached && cached[i2]) ); } else { const keys2 = Object.keys(source); ret = new Array(keys2.length); for (let i2 = 0, l = keys2.length; i2 < l; i2++) { const key = keys2[i2]; ret[i2] = renderItem(source[key], key, i2, cached && cached[i2]); } } } else { ret = []; } if (cache2) { cache2[index2] = ret; } return ret; } function createSlots(slots, dynamicSlots) { for (let i2 = 0; i2 < dynamicSlots.length; i2++) { const slot = dynamicSlots[i2]; if (isArray$4(slot)) { for (let j = 0; j < slot.length; j++) { slots[slot[j].name] = slot[j].fn; } } else if (slot) { slots[slot.name] = slot.key ? (...args) => { const res = slot.fn(...args); if (res) res.key = slot.key; return res; } : slot.fn; } } return slots; } function renderSlot(slots, name, props = {}, fallback, noSlotted) { if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) { if (name !== "default") props.name = name; return openBlock(), createBlock( Fragment, null, [createVNode("slot", props, fallback && fallback())], 64 ); } let slot = slots[name]; if (slot && slot._c) { slot._d = false; } openBlock(); const validSlotContent = slot && ensureValidVNode(slot(props)); const slotKey = props.key || validSlotContent && validSlotContent.key; const rendered = createBlock( Fragment, { key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + (!validSlotContent && fallback ? "_fb" : "") }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 ? 64 : -2 ); if (!noSlotted && rendered.scopeId) { rendered.slotScopeIds = [rendered.scopeId + "-s"]; } if (slot && slot._c) { slot._d = true; } return rendered; } function ensureValidVNode(vnodes) { return vnodes.some((child) => { if (!isVNode$1(child)) return true; if (child.type === Comment) return false; if (child.type === Fragment && !ensureValidVNode(child.children)) return false; return true; }) ? vnodes : null; } function toHandlers(obj, preserveCaseIfNecessary) { const ret = {}; for (const key in obj) { ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key]; } return ret; } const getPublicInstance = (i2) => { if (!i2) return null; if (isStatefulComponent(i2)) return getComponentPublicInstance(i2); return getPublicInstance(i2.parent); }; const publicPropertiesMap = /* @__PURE__ */ extend$2(/* @__PURE__ */ Object.create(null), { $: (i2) => i2, $el: (i2) => i2.vnode.el, $data: (i2) => i2.data, $props: (i2) => i2.props, $attrs: (i2) => i2.attrs, $slots: (i2) => i2.slots, $refs: (i2) => i2.refs, $parent: (i2) => getPublicInstance(i2.parent), $root: (i2) => getPublicInstance(i2.root), $host: (i2) => i2.ce, $emit: (i2) => i2.emit, $options: (i2) => resolveMergedOptions(i2), $forceUpdate: (i2) => i2.f || (i2.f = () => { queueJob(i2.update); }), $nextTick: (i2) => i2.n || (i2.n = nextTick.bind(i2.proxy)), $watch: (i2) => instanceWatch.bind(i2) }); const hasSetupBinding = (state2, key) => state2 !== EMPTY_OBJ && !state2.__isScriptSetup && hasOwn$2(state2, key); const PublicInstanceProxyHandlers = { get({ _: instance }, key) { if (key === "__v_skip") { return true; } const { ctx, setupState, data: data2, props, accessCache, type, appContext } = instance; let normalizedProps; if (key[0] !== "$") { const n2 = accessCache[key]; if (n2 !== void 0) { switch (n2) { case 1: return setupState[key]; case 2: return data2[key]; case 4: return ctx[key]; case 3: return props[key]; } } else if (hasSetupBinding(setupState, key)) { accessCache[key] = 1; return setupState[key]; } else if (data2 !== EMPTY_OBJ && hasOwn$2(data2, key)) { accessCache[key] = 2; return data2[key]; } else if ((normalizedProps = instance.propsOptions[0]) && hasOwn$2(normalizedProps, key)) { accessCache[key] = 3; return props[key]; } else if (ctx !== EMPTY_OBJ && hasOwn$2(ctx, key)) { accessCache[key] = 4; return ctx[key]; } else if (shouldCacheAccess) { accessCache[key] = 0; } } const publicGetter = publicPropertiesMap[key]; let cssModule, globalProperties; if (publicGetter) { if (key === "$attrs") { track(instance.attrs, "get", ""); } return publicGetter(instance); } else if ((cssModule = type.__cssModules) && (cssModule = cssModule[key])) { return cssModule; } else if (ctx !== EMPTY_OBJ && hasOwn$2(ctx, key)) { accessCache[key] = 4; return ctx[key]; } else if (globalProperties = appContext.config.globalProperties, hasOwn$2(globalProperties, key)) { { return globalProperties[key]; } } else ; }, set({ _: instance }, key, value) { const { data: data2, setupState, ctx } = instance; if (hasSetupBinding(setupState, key)) { setupState[key] = value; return true; } else if (data2 !== EMPTY_OBJ && hasOwn$2(data2, key)) { data2[key] = value; return true; } else if (hasOwn$2(instance.props, key)) { return false; } if (key[0] === "$" && key.slice(1) in instance) { return false; } else { { ctx[key] = value; } } return true; }, has({ _: { data: data2, setupState, accessCache, ctx, appContext, propsOptions } }, key) { let normalizedProps; return !!accessCache[key] || data2 !== EMPTY_OBJ && hasOwn$2(data2, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && hasOwn$2(normalizedProps, key) || hasOwn$2(ctx, key) || hasOwn$2(publicPropertiesMap, key) || hasOwn$2(appContext.config.globalProperties, key); }, defineProperty(target, key, descriptor) { if (descriptor.get != null) { target._.accessCache[key] = 0; } else if (hasOwn$2(descriptor, "value")) { this.set(target, key, descriptor.value, null); } return Reflect.defineProperty(target, key, descriptor); } }; const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend$2({}, PublicInstanceProxyHandlers, { get(target, key) { if (key === Symbol.unscopables) { return; } return PublicInstanceProxyHandlers.get(target, key, target); }, has(_, key) { const has = key[0] !== "_" && !isGloballyAllowed(key); return has; } }); function defineProps() { return null; } function defineEmits() { return null; } function defineExpose(exposed) { } function defineOptions(options) { } function defineSlots() { return null; } function defineModel() { } function withDefaults(props, defaults2) { return null; } function useSlots() { return getContext().slots; } function useAttrs() { return getContext().attrs; } function getContext() { const i2 = getCurrentInstance(); return i2.setupContext || (i2.setupContext = createSetupContext(i2)); } function normalizePropsOrEmits(props) { return isArray$4(props) ? props.reduce( (normalized, p2) => (normalized[p2] = null, normalized), {} ) : props; } function mergeDefaults(raw, defaults2) { const props = normalizePropsOrEmits(raw); for (const key in defaults2) { if (key.startsWith("__skip")) continue; let opt = props[key]; if (opt) { if (isArray$4(opt) || isFunction$3(opt)) { opt = props[key] = { type: opt, default: defaults2[key] }; } else { opt.default = defaults2[key]; } } else if (opt === null) { opt = props[key] = { default: defaults2[key] }; } else ; if (opt && defaults2[`__skip_${key}`]) { opt.skipFactory = true; } } return props; } function mergeModels(a2, b) { if (!a2 || !b) return a2 || b; if (isArray$4(a2) && isArray$4(b)) return a2.concat(b); return extend$2({}, normalizePropsOrEmits(a2), normalizePropsOrEmits(b)); } function createPropsRestProxy(props, excludedKeys) { const ret = {}; for (const key in props) { if (!excludedKeys.includes(key)) { Object.defineProperty(ret, key, { enumerable: true, get: () => props[key] }); } } return ret; } function withAsyncContext(getAwaitable) { const ctx = getCurrentInstance(); let awaitable = getAwaitable(); unsetCurrentInstance(); if (isPromise$2(awaitable)) { awaitable = awaitable.catch((e2) => { setCurrentInstance(ctx); throw e2; }); } return [awaitable, () => setCurrentInstance(ctx)]; } let shouldCacheAccess = true; function applyOptions(instance) { const options = resolveMergedOptions(instance); const publicThis = instance.proxy; const ctx = instance.ctx; shouldCacheAccess = false; if (options.beforeCreate) { callHook$1(options.beforeCreate, instance, "bc"); } const { data: dataOptions, computed: computedOptions, methods, watch: watchOptions, provide: provideOptions, inject: injectOptions, created, beforeMount, mounted, beforeUpdate, updated, activated, deactivated, beforeDestroy, beforeUnmount, destroyed, unmounted, render: render2, renderTracked, renderTriggered, errorCaptured, serverPrefetch, expose, inheritAttrs, components, directives, filters } = options; const checkDuplicateProperties = null; if (injectOptions) { resolveInjections(injectOptions, ctx, checkDuplicateProperties); } if (methods) { for (const key in methods) { const methodHandler = methods[key]; if (isFunction$3(methodHandler)) { { ctx[key] = methodHandler.bind(publicThis); } } } } if (dataOptions) { const data2 = dataOptions.call(publicThis, publicThis); if (!isObject$8(data2)) ; else { instance.data = reactive(data2); } } shouldCacheAccess = true; if (computedOptions) { for (const key in computedOptions) { const opt = computedOptions[key]; const get2 = isFunction$3(opt) ? opt.bind(publicThis, publicThis) : isFunction$3(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP; const set2 = !isFunction$3(opt) && isFunction$3(opt.set) ? opt.set.bind(publicThis) : NOOP; const c2 = computed({ get: get2, set: set2 }); Object.defineProperty(ctx, key, { enumerable: true, configurable: true, get: () => c2.value, set: (v) => c2.value = v }); } } if (watchOptions) { for (const key in watchOptions) { createWatcher(watchOptions[key], ctx, publicThis, key); } } if (provideOptions) { const provides = isFunction$3(provideOptions) ? provideOptions.call(publicThis) : provideOptions; Reflect.ownKeys(provides).forEach((key) => { provide(key, provides[key]); }); } if (created) { callHook$1(created, instance, "c"); } function registerLifecycleHook(register, hook) { if (isArray$4(hook)) { hook.forEach((_hook) => register(_hook.bind(publicThis))); } else if (hook) { register(hook.bind(publicThis)); } } registerLifecycleHook(onBeforeMount, beforeMount); registerLifecycleHook(onMounted, mounted); registerLifecycleHook(onBeforeUpdate, beforeUpdate); registerLifecycleHook(onUpdated, updated); registerLifecycleHook(onActivated, activated); registerLifecycleHook(onDeactivated, deactivated); registerLifecycleHook(onErrorCaptured, errorCaptured); registerLifecycleHook(onRenderTracked, renderTracked); registerLifecycleHook(onRenderTriggered, renderTriggered); registerLifecycleHook(onBeforeUnmount, beforeUnmount); registerLifecycleHook(onUnmounted, unmounted); registerLifecycleHook(onServerPrefetch, serverPrefetch); if (isArray$4(expose)) { if (expose.length) { const exposed = instance.exposed || (instance.exposed = {}); expose.forEach((key) => { Object.defineProperty(exposed, key, { get: () => publicThis[key], set: (val) => publicThis[key] = val }); }); } else if (!instance.exposed) { instance.exposed = {}; } } if (render2 && instance.render === NOOP) { instance.render = render2; } if (inheritAttrs != null) { instance.inheritAttrs = inheritAttrs; } if (components) instance.components = components; if (directives) instance.directives = directives; if (serverPrefetch) { markAsyncBoundary(instance); } } function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP) { if (isArray$4(injectOptions)) { injectOptions = normalizeInject(injectOptions); } for (const key in injectOptions) { const opt = injectOptions[key]; let injected; if (isObject$8(opt)) { if ("default" in opt) { injected = inject( opt.from || key, opt.default, true ); } else { injected = inject(opt.from || key); } } else { injected = inject(opt); } if (isRef(injected)) { Object.defineProperty(ctx, key, { enumerable: true, configurable: true, get: () => injected.value, set: (v) => injected.value = v }); } else { ctx[key] = injected; } } } function callHook$1(hook, instance, type) { callWithAsyncErrorHandling( isArray$4(hook) ? hook.map((h2) => h2.bind(instance.proxy)) : hook.bind(instance.proxy), instance, type ); } function createWatcher(raw, ctx, publicThis, key) { let getter = key.includes(".") ? createPathGetter(publicThis, key) : () => publicThis[key]; if (isString$6(raw)) { const handler = ctx[raw]; if (isFunction$3(handler)) { { watch(getter, handler); } } } else if (isFunction$3(raw)) { { watch(getter, raw.bind(publicThis)); } } else if (isObject$8(raw)) { if (isArray$4(raw)) { raw.forEach((r2) => createWatcher(r2, ctx, publicThis, key)); } else { const handler = isFunction$3(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler]; if (isFunction$3(handler)) { watch(getter, handler, raw); } } } else ; } function resolveMergedOptions(instance) { const base = instance.type; const { mixins, extends: extendsOptions } = base; const { mixins: globalMixins, optionsCache: cache2, config: { optionMergeStrategies } } = instance.appContext; const cached = cache2.get(base); let resolved; if (cached) { resolved = cached; } else if (!globalMixins.length && !mixins && !extendsOptions) { { resolved = base; } } else { resolved = {}; if (globalMixins.length) { globalMixins.forEach( (m) => mergeOptions$1(resolved, m, optionMergeStrategies, true) ); } mergeOptions$1(resolved, base, optionMergeStrategies); } if (isObject$8(base)) { cache2.set(base, resolved); } return resolved; } function mergeOptions$1(to2, from2, strats, asMixin = false) { const { mixins, extends: extendsOptions } = from2; if (extendsOptions) { mergeOptions$1(to2, extendsOptions, strats, true); } if (mixins) { mixins.forEach( (m) => mergeOptions$1(to2, m, strats, true) ); } for (const key in from2) { if (asMixin && key === "expose") ; else { const strat = internalOptionMergeStrats[key] || strats && strats[key]; to2[key] = strat ? strat(to2[key], from2[key]) : from2[key]; } } return to2; } const internalOptionMergeStrats = { data: mergeDataFn, props: mergeEmitsOrPropsOptions, emits: mergeEmitsOrPropsOptions, methods: mergeObjectOptions$1, computed: mergeObjectOptions$1, beforeCreate: mergeAsArray, created: mergeAsArray, beforeMount: mergeAsArray, mounted: mergeAsArray, beforeUpdate: mergeAsArray, updated: mergeAsArray, beforeDestroy: mergeAsArray, beforeUnmount: mergeAsArray, destroyed: mergeAsArray, unmounted: mergeAsArray, activated: mergeAsArray, deactivated: mergeAsArray, errorCaptured: mergeAsArray, serverPrefetch: mergeAsArray, components: mergeObjectOptions$1, directives: mergeObjectOptions$1, watch: mergeWatchOptions, provide: mergeDataFn, inject: mergeInject }; function mergeDataFn(to2, from2) { if (!from2) { return to2; } if (!to2) { return from2; } return function mergedDataFn() { return extend$2( isFunction$3(to2) ? to2.call(this, this) : to2, isFunction$3(from2) ? from2.call(this, this) : from2 ); }; } function mergeInject(to2, from2) { return mergeObjectOptions$1(normalizeInject(to2), normalizeInject(from2)); } function normalizeInject(raw) { if (isArray$4(raw)) { const res = {}; for (let i2 = 0; i2 < raw.length; i2++) { res[raw[i2]] = raw[i2]; } return res; } return raw; } function mergeAsArray(to2, from2) { return to2 ? [...new Set([].concat(to2, from2))] : from2; } function mergeObjectOptions$1(to2, from2) { return to2 ? extend$2(/* @__PURE__ */ Object.create(null), to2, from2) : from2; } function mergeEmitsOrPropsOptions(to2, from2) { if (to2) { if (isArray$4(to2) && isArray$4(from2)) { return [.../* @__PURE__ */ new Set([...to2, ...from2])]; } return extend$2( /* @__PURE__ */ Object.create(null), normalizePropsOrEmits(to2), normalizePropsOrEmits(from2 != null ? from2 : {}) ); } else { return from2; } } function mergeWatchOptions(to2, from2) { if (!to2) return from2; if (!from2) return to2; const merged = extend$2(/* @__PURE__ */ Object.create(null), to2); for (const key in from2) { merged[key] = mergeAsArray(to2[key], from2[key]); } return merged; } function createAppContext() { return { app: null, config: { isNativeTag: NO, performance: false, globalProperties: {}, optionMergeStrategies: {}, errorHandler: void 0, warnHandler: void 0, compilerOptions: {} }, mixins: [], components: {}, directives: {}, provides: /* @__PURE__ */ Object.create(null), optionsCache: /* @__PURE__ */ new WeakMap(), propsCache: /* @__PURE__ */ new WeakMap(), emitsCache: /* @__PURE__ */ new WeakMap() }; } let uid$1 = 0; function createAppAPI(render2, hydrate2) { return function createApp2(rootComponent, rootProps = null) { if (!isFunction$3(rootComponent)) { rootComponent = extend$2({}, rootComponent); } if (rootProps != null && !isObject$8(rootProps)) { rootProps = null; } const context = createAppContext(); const installedPlugins = /* @__PURE__ */ new WeakSet(); const pluginCleanupFns = []; let isMounted = false; const app2 = context.app = { _uid: uid$1++, _component: rootComponent, _props: rootProps, _container: null, _context: context, _instance: null, version: version$1, get config() { return context.config; }, set config(v) { }, use(plugin, ...options) { if (installedPlugins.has(plugin)) ; else if (plugin && isFunction$3(plugin.install)) { installedPlugins.add(plugin); plugin.install(app2, ...options); } else if (isFunction$3(plugin)) { installedPlugins.add(plugin); plugin(app2, ...options); } else ; return app2; }, mixin(mixin) { { if (!context.mixins.includes(mixin)) { context.mixins.push(mixin); } } return app2; }, component(name, component) { if (!component) { return context.components[name]; } context.components[name] = component; return app2; }, directive(name, directive) { if (!directive) { return context.directives[name]; } context.directives[name] = directive; return app2; }, mount(rootContainer, isHydrate, namespace) { if (!isMounted) { const vnode = app2._ceVNode || createVNode(rootComponent, rootProps); vnode.appContext = context; if (namespace === true) { namespace = "svg"; } else if (namespace === false) { namespace = void 0; } if (isHydrate && hydrate2) { hydrate2(vnode, rootContainer); } else { render2(vnode, rootContainer, namespace); } isMounted = true; app2._container = rootContainer; rootContainer.__vue_app__ = app2; return getComponentPublicInstance(vnode.component); } }, onUnmount(cleanupFn) { pluginCleanupFns.push(cleanupFn); }, unmount() { if (isMounted) { callWithAsyncErrorHandling( pluginCleanupFns, app2._instance, 16 ); render2(null, app2._container); delete app2._container.__vue_app__; } }, provide(key, value) { context.provides[key] = value; return app2; }, runWithContext(fn) { const lastApp = currentApp; currentApp = app2; try { return fn(); } finally { currentApp = lastApp; } } }; return app2; }; } let currentApp = null; function provide(key, value) { if (!currentInstance) ; else { let provides = currentInstance.provides; const parentProvides = currentInstance.parent && currentInstance.parent.provides; if (parentProvides === provides) { provides = currentInstance.provides = Object.create(parentProvides); } provides[key] = value; } } function inject(key, defaultValue, treatDefaultAsFactory = false) { const instance = currentInstance || currentRenderingInstance; if (instance || currentApp) { const provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0; if (provides && key in provides) { return provides[key]; } else if (arguments.length > 1) { return treatDefaultAsFactory && isFunction$3(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue; } else ; } } function hasInjectionContext() { return !!(currentInstance || currentRenderingInstance || currentApp); } const internalObjectProto = {}; const createInternalObject = () => Object.create(internalObjectProto); const isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto; function initProps(instance, rawProps, isStateful, isSSR = false) { const props = {}; const attrs = createInternalObject(); instance.propsDefaults = /* @__PURE__ */ Object.create(null); setFullProps(instance, rawProps, props, attrs); for (const key in instance.propsOptions[0]) { if (!(key in props)) { props[key] = void 0; } } if (isStateful) { instance.props = isSSR ? props : shallowReactive(props); } else { if (!instance.type.props) { instance.props = attrs; } else { instance.props = props; } } instance.attrs = attrs; } function updateProps(instance, rawProps, rawPrevProps, optimized) { const { props, attrs, vnode: { patchFlag } } = instance; const rawCurrentProps = toRaw(props); const [options] = instance.propsOptions; let hasAttrsChanged = false; if ((optimized || patchFlag > 0) && !(patchFlag & 16)) { if (patchFlag & 8) { const propsToUpdate = instance.vnode.dynamicProps; for (let i2 = 0; i2 < propsToUpdate.length; i2++) { let key = propsToUpdate[i2]; if (isEmitListener(instance.emitsOptions, key)) { continue; } const value = rawProps[key]; if (options) { if (hasOwn$2(attrs, key)) { if (value !== attrs[key]) { attrs[key] = value; hasAttrsChanged = true; } } else { const camelizedKey = camelize(key); props[camelizedKey] = resolvePropValue( options, rawCurrentProps, camelizedKey, value, instance, false ); } } else { if (value !== attrs[key]) { attrs[key] = value; hasAttrsChanged = true; } } } } } else { if (setFullProps(instance, rawProps, props, attrs)) { hasAttrsChanged = true; } let kebabKey; for (const key in rawCurrentProps) { if (!rawProps || !hasOwn$2(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn$2(rawProps, kebabKey))) { if (options) { if (rawPrevProps && (rawPrevProps[key] !== void 0 || rawPrevProps[kebabKey] !== void 0)) { props[key] = resolvePropValue( options, rawCurrentProps, key, void 0, instance, true ); } } else { delete props[key]; } } } if (attrs !== rawCurrentProps) { for (const key in attrs) { if (!rawProps || !hasOwn$2(rawProps, key) && true) { delete attrs[key]; hasAttrsChanged = true; } } } } if (hasAttrsChanged) { trigger(instance.attrs, "set", ""); } } function setFullProps(instance, rawProps, props, attrs) { const [options, needCastKeys] = instance.propsOptions; let hasAttrsChanged = false; let rawCastValues; if (rawProps) { for (let key in rawProps) { if (isReservedProp(key)) { continue; } const value = rawProps[key]; let camelKey; if (options && hasOwn$2(options, camelKey = camelize(key))) { if (!needCastKeys || !needCastKeys.includes(camelKey)) { props[camelKey] = value; } else { (rawCastValues || (rawCastValues = {}))[camelKey] = value; } } else if (!isEmitListener(instance.emitsOptions, key)) { if (!(key in attrs) || value !== attrs[key]) { attrs[key] = value; hasAttrsChanged = true; } } } } if (needCastKeys) { const rawCurrentProps = toRaw(props); const castValues = rawCastValues || EMPTY_OBJ; for (let i2 = 0; i2 < needCastKeys.length; i2++) { const key = needCastKeys[i2]; props[key] = resolvePropValue( options, rawCurrentProps, key, castValues[key], instance, !hasOwn$2(castValues, key) ); } } return hasAttrsChanged; } function resolvePropValue(options, props, key, value, instance, isAbsent) { const opt = options[key]; if (opt != null) { const hasDefault = hasOwn$2(opt, "default"); if (hasDefault && value === void 0) { const defaultValue = opt.default; if (opt.type !== Function && !opt.skipFactory && isFunction$3(defaultValue)) { const { propsDefaults } = instance; if (key in propsDefaults) { value = propsDefaults[key]; } else { const reset = setCurrentInstance(instance); value = propsDefaults[key] = defaultValue.call( null, props ); reset(); } } else { value = defaultValue; } if (instance.ce) { instance.ce._setProp(key, value); } } if (opt[0]) { if (isAbsent && !hasDefault) { value = false; } else if (opt[1] && (value === "" || value === hyphenate(key))) { value = true; } } } return value; } const mixinPropsCache = /* @__PURE__ */ new WeakMap(); function normalizePropsOptions(comp, appContext, asMixin = false) { const cache2 = asMixin ? mixinPropsCache : appContext.propsCache; const cached = cache2.get(comp); if (cached) { return cached; } const raw = comp.props; const normalized = {}; const needCastKeys = []; let hasExtends = false; if (!isFunction$3(comp)) { const extendProps = (raw2) => { hasExtends = true; const [props, keys2] = normalizePropsOptions(raw2, appContext, true); extend$2(normalized, props); if (keys2) needCastKeys.push(...keys2); }; if (!asMixin && appContext.mixins.length) { appContext.mixins.forEach(extendProps); } if (comp.extends) { extendProps(comp.extends); } if (comp.mixins) { comp.mixins.forEach(extendProps); } } if (!raw && !hasExtends) { if (isObject$8(comp)) { cache2.set(comp, EMPTY_ARR); } return EMPTY_ARR; } if (isArray$4(raw)) { for (let i2 = 0; i2 < raw.length; i2++) { const normalizedKey = camelize(raw[i2]); if (validatePropName(normalizedKey)) { normalized[normalizedKey] = EMPTY_OBJ; } } } else if (raw) { for (const key in raw) { const normalizedKey = camelize(key); if (validatePropName(normalizedKey)) { const opt = raw[key]; const prop = normalized[normalizedKey] = isArray$4(opt) || isFunction$3(opt) ? { type: opt } : extend$2({}, opt); const propType = prop.type; let shouldCast = false; let shouldCastTrue = true; if (isArray$4(propType)) { for (let index2 = 0; index2 < propType.length; ++index2) { const type = propType[index2]; const typeName = isFunction$3(type) && type.name; if (typeName === "Boolean") { shouldCast = true; break; } else if (typeName === "String") { shouldCastTrue = false; } } } else { shouldCast = isFunction$3(propType) && propType.name === "Boolean"; } prop[0] = shouldCast; prop[1] = shouldCastTrue; if (shouldCast || hasOwn$2(prop, "default")) { needCastKeys.push(normalizedKey); } } } } const res = [normalized, needCastKeys]; if (isObject$8(comp)) { cache2.set(comp, res); } return res; } function validatePropName(key) { if (key[0] !== "$" && !isReservedProp(key)) { return true; } return false; } const isInternalKey = (key) => key[0] === "_" || key === "$stable"; const normalizeSlotValue = (value) => isArray$4(value) ? value.map(normalizeVNode) : [normalizeVNode(value)]; const normalizeSlot = (key, rawSlot, ctx) => { if (rawSlot._n) { return rawSlot; } const normalized = withCtx((...args) => { if (false) ; return normalizeSlotValue(rawSlot(...args)); }, ctx); normalized._c = false; return normalized; }; const normalizeObjectSlots = (rawSlots, slots, instance) => { const ctx = rawSlots._ctx; for (const key in rawSlots) { if (isInternalKey(key)) continue; const value = rawSlots[key]; if (isFunction$3(value)) { slots[key] = normalizeSlot(key, value, ctx); } else if (value != null) { const normalized = normalizeSlotValue(value); slots[key] = () => normalized; } } }; const normalizeVNodeSlots = (instance, children) => { const normalized = normalizeSlotValue(children); instance.slots.default = () => normalized; }; const assignSlots = (slots, children, optimized) => { for (const key in children) { if (optimized || key !== "_") { slots[key] = children[key]; } } }; const initSlots = (instance, children, optimized) => { const slots = instance.slots = createInternalObject(); if (instance.vnode.shapeFlag & 32) { const type = children._; if (type) { assignSlots(slots, children, optimized); if (optimized) { def(slots, "_", type, true); } } else { normalizeObjectSlots(children, slots); } } else if (children) { normalizeVNodeSlots(instance, children); } }; const updateSlots = (instance, children, optimized) => { const { vnode, slots } = instance; let needDeletionCheck = true; let deletionComparisonTarget = EMPTY_OBJ; if (vnode.shapeFlag & 32) { const type = children._; if (type) { if (optimized && type === 1) { needDeletionCheck = false; } else { assignSlots(slots, children, optimized); } } else { needDeletionCheck = !children.$stable; normalizeObjectSlots(children, slots); } deletionComparisonTarget = children; } else if (children) { normalizeVNodeSlots(instance, children); deletionComparisonTarget = { default: 1 }; } if (needDeletionCheck) { for (const key in slots) { if (!isInternalKey(key) && deletionComparisonTarget[key] == null) { delete slots[key]; } } } }; function initFeatureFlags$2() { if (typeof __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ !== "boolean") { getGlobalThis$1().__VUE_PROD_HYDRATION_MISMATCH_DETAILS__ = false; } } const queuePostRenderEffect = queueEffectWithSuspense; function createRenderer(options) { return baseCreateRenderer(options); } function createHydrationRenderer(options) { return baseCreateRenderer(options, createHydrationFunctions); } function baseCreateRenderer(options, createHydrationFns) { { initFeatureFlags$2(); } const target = getGlobalThis$1(); target.__VUE__ = true; const { insert: hostInsert, remove: hostRemove, patchProp: hostPatchProp, createElement: hostCreateElement, createText: hostCreateText, createComment: hostCreateComment, setText: hostSetText, setElementText: hostSetElementText, parentNode: hostParentNode, nextSibling: hostNextSibling, setScopeId: hostSetScopeId = NOOP, insertStaticContent: hostInsertStaticContent } = options; const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = !!n2.dynamicChildren) => { if (n1 === n2) { return; } if (n1 && !isSameVNodeType(n1, n2)) { anchor = getNextHostNode(n1); unmount(n1, parentComponent, parentSuspense, true); n1 = null; } if (n2.patchFlag === -2) { optimized = false; n2.dynamicChildren = null; } const { type, ref: ref2, shapeFlag } = n2; switch (type) { case Text: processText(n1, n2, container, anchor); break; case Comment: processCommentNode(n1, n2, container, anchor); break; case Static: if (n1 == null) { mountStaticNode(n2, container, anchor, namespace); } break; case Fragment: processFragment( n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized ); break; default: if (shapeFlag & 1) { processElement( n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized ); } else if (shapeFlag & 6) { processComponent( n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized ); } else if (shapeFlag & 64) { type.process( n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals ); } else if (shapeFlag & 128) { type.process( n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals ); } else ; } if (ref2 != null && parentComponent) { setRef(ref2, n1 && n1.ref, parentSuspense, n2 || n1, !n2); } }; const processText = (n1, n2, container, anchor) => { if (n1 == null) { hostInsert( n2.el = hostCreateText(n2.children), container, anchor ); } else { const el = n2.el = n1.el; if (n2.children !== n1.children) { hostSetText(el, n2.children); } } }; const processCommentNode = (n1, n2, container, anchor) => { if (n1 == null) { hostInsert( n2.el = hostCreateComment(n2.children || ""), container, anchor ); } else { n2.el = n1.el; } }; const mountStaticNode = (n2, container, anchor, namespace) => { [n2.el, n2.anchor] = hostInsertStaticContent( n2.children, container, anchor, namespace, n2.el, n2.anchor ); }; const moveStaticNode = ({ el, anchor }, container, nextSibling) => { let next; while (el && el !== anchor) { next = hostNextSibling(el); hostInsert(el, container, nextSibling); el = next; } hostInsert(anchor, container, nextSibling); }; const removeStaticNode = ({ el, anchor }) => { let next; while (el && el !== anchor) { next = hostNextSibling(el); hostRemove(el); el = next; } hostRemove(anchor); }; const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { if (n2.type === "svg") { namespace = "svg"; } else if (n2.type === "math") { namespace = "mathml"; } if (n1 == null) { mountElement( n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized ); } else { patchElement( n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized ); } }; const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { let el; let vnodeHook; const { props, shapeFlag, transition, dirs } = vnode; el = vnode.el = hostCreateElement( vnode.type, namespace, props && props.is, props ); if (shapeFlag & 8) { hostSetElementText(el, vnode.children); } else if (shapeFlag & 16) { mountChildren( vnode.children, el, null, parentComponent, parentSuspense, resolveChildrenNamespace(vnode, namespace), slotScopeIds, optimized ); } if (dirs) { invokeDirectiveHook(vnode, null, parentComponent, "created"); } setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent); if (props) { for (const key in props) { if (key !== "value" && !isReservedProp(key)) { hostPatchProp(el, key, null, props[key], namespace, parentComponent); } } if ("value" in props) { hostPatchProp(el, "value", null, props.value, namespace); } if (vnodeHook = props.onVnodeBeforeMount) { invokeVNodeHook(vnodeHook, parentComponent, vnode); } } if (dirs) { invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); } const needCallTransitionHooks = needTransition(parentSuspense, transition); if (needCallTransitionHooks) { transition.beforeEnter(el); } hostInsert(el, container, anchor); if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) { queuePostRenderEffect(() => { vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode); needCallTransitionHooks && transition.enter(el); dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); }, parentSuspense); } }; const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => { if (scopeId) { hostSetScopeId(el, scopeId); } if (slotScopeIds) { for (let i2 = 0; i2 < slotScopeIds.length; i2++) { hostSetScopeId(el, slotScopeIds[i2]); } } if (parentComponent) { let subTree = parentComponent.subTree; if (vnode === subTree || isSuspense(subTree.type) && (subTree.ssContent === vnode || subTree.ssFallback === vnode)) { const parentVNode = parentComponent.vnode; setScopeId( el, parentVNode, parentVNode.scopeId, parentVNode.slotScopeIds, parentComponent.parent ); } } }; const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => { for (let i2 = start; i2 < children.length; i2++) { const child = children[i2] = optimized ? cloneIfMounted(children[i2]) : normalizeVNode(children[i2]); patch( null, child, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized ); } }; const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { const el = n2.el = n1.el; let { patchFlag, dynamicChildren, dirs } = n2; patchFlag |= n1.patchFlag & 16; const oldProps = n1.props || EMPTY_OBJ; const newProps = n2.props || EMPTY_OBJ; let vnodeHook; parentComponent && toggleRecurse(parentComponent, false); if (vnodeHook = newProps.onVnodeBeforeUpdate) { invokeVNodeHook(vnodeHook, parentComponent, n2, n1); } if (dirs) { invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate"); } parentComponent && toggleRecurse(parentComponent, true); if (oldProps.innerHTML && newProps.innerHTML == null || oldProps.textContent && newProps.textContent == null) { hostSetElementText(el, ""); } if (dynamicChildren) { patchBlockChildren( n1.dynamicChildren, dynamicChildren, el, parentComponent, parentSuspense, resolveChildrenNamespace(n2, namespace), slotScopeIds ); } else if (!optimized) { patchChildren( n1, n2, el, null, parentComponent, parentSuspense, resolveChildrenNamespace(n2, namespace), slotScopeIds, false ); } if (patchFlag > 0) { if (patchFlag & 16) { patchProps(el, oldProps, newProps, parentComponent, namespace); } else { if (patchFlag & 2) { if (oldProps.class !== newProps.class) { hostPatchProp(el, "class", null, newProps.class, namespace); } } if (patchFlag & 4) { hostPatchProp(el, "style", oldProps.style, newProps.style, namespace); } if (patchFlag & 8) { const propsToUpdate = n2.dynamicProps; for (let i2 = 0; i2 < propsToUpdate.length; i2++) { const key = propsToUpdate[i2]; const prev = oldProps[key]; const next = newProps[key]; if (next !== prev || key === "value") { hostPatchProp(el, key, prev, next, namespace, parentComponent); } } } } if (patchFlag & 1) { if (n1.children !== n2.children) { hostSetElementText(el, n2.children); } } } else if (!optimized && dynamicChildren == null) { patchProps(el, oldProps, newProps, parentComponent, namespace); } if ((vnodeHook = newProps.onVnodeUpdated) || dirs) { queuePostRenderEffect(() => { vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1); dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated"); }, parentSuspense); } }; const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => { for (let i2 = 0; i2 < newChildren.length; i2++) { const oldVNode = oldChildren[i2]; const newVNode = newChildren[i2]; const container = oldVNode.el && (oldVNode.type === Fragment || !isSameVNodeType(oldVNode, newVNode) || oldVNode.shapeFlag & (6 | 64)) ? hostParentNode(oldVNode.el) : fallbackContainer; patch( oldVNode, newVNode, container, null, parentComponent, parentSuspense, namespace, slotScopeIds, true ); } }; const patchProps = (el, oldProps, newProps, parentComponent, namespace) => { if (oldProps !== newProps) { if (oldProps !== EMPTY_OBJ) { for (const key in oldProps) { if (!isReservedProp(key) && !(key in newProps)) { hostPatchProp( el, key, oldProps[key], null, namespace, parentComponent ); } } } for (const key in newProps) { if (isReservedProp(key)) continue; const next = newProps[key]; const prev = oldProps[key]; if (next !== prev && key !== "value") { hostPatchProp(el, key, prev, next, namespace, parentComponent); } } if ("value" in newProps) { hostPatchProp(el, "value", oldProps.value, newProps.value, namespace); } } }; const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(""); const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(""); let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2; if (fragmentSlotScopeIds) { slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; } if (n1 == null) { hostInsert(fragmentStartAnchor, container, anchor); hostInsert(fragmentEndAnchor, container, anchor); mountChildren( n2.children || [], container, fragmentEndAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized ); } else { if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && n1.dynamicChildren) { patchBlockChildren( n1.dynamicChildren, dynamicChildren, container, parentComponent, parentSuspense, namespace, slotScopeIds ); if (n2.key != null || parentComponent && n2 === parentComponent.subTree) { traverseStaticChildren( n1, n2, true ); } } else { patchChildren( n1, n2, container, fragmentEndAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized ); } } }; const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { n2.slotScopeIds = slotScopeIds; if (n1 == null) { if (n2.shapeFlag & 512) { parentComponent.ctx.activate( n2, container, anchor, namespace, optimized ); } else { mountComponent( n2, container, anchor, parentComponent, parentSuspense, namespace, optimized ); } } else { updateComponent(n1, n2, optimized); } }; const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => { const instance = initialVNode.component = createComponentInstance( initialVNode, parentComponent, parentSuspense ); if (isKeepAlive(initialVNode)) { instance.ctx.renderer = internals; } { setupComponent(instance, false, optimized); } if (instance.asyncDep) { parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized); if (!initialVNode.el) { const placeholder = instance.subTree = createVNode(Comment); processCommentNode(null, placeholder, container, anchor); } } else { setupRenderEffect( instance, initialVNode, container, anchor, parentSuspense, namespace, optimized ); } }; const updateComponent = (n1, n2, optimized) => { const instance = n2.component = n1.component; if (shouldUpdateComponent(n1, n2, optimized)) { if (instance.asyncDep && !instance.asyncResolved) { updateComponentPreRender(instance, n2, optimized); return; } else { instance.next = n2; instance.update(); } } else { n2.el = n1.el; instance.vnode = n2; } }; const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => { const componentUpdateFn = () => { if (!instance.isMounted) { let vnodeHook; const { el, props } = initialVNode; const { bm, m, parent, root: root2, type } = instance; const isAsyncWrapperVNode = isAsyncWrapper(initialVNode); toggleRecurse(instance, false); if (bm) { invokeArrayFns(bm); } if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) { invokeVNodeHook(vnodeHook, parent, initialVNode); } toggleRecurse(instance, true); if (el && hydrateNode) { const hydrateSubTree = () => { instance.subTree = renderComponentRoot(instance); hydrateNode( el, instance.subTree, instance, parentSuspense, null ); }; if (isAsyncWrapperVNode && type.__asyncHydrate) { type.__asyncHydrate( el, instance, hydrateSubTree ); } else { hydrateSubTree(); } } else { if (root2.ce) { root2.ce._injectChildStyle(type); } const subTree = instance.subTree = renderComponentRoot(instance); patch( null, subTree, container, anchor, instance, parentSuspense, namespace ); initialVNode.el = subTree.el; } if (m) { queuePostRenderEffect(m, parentSuspense); } if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) { const scopedInitialVNode = initialVNode; queuePostRenderEffect( () => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode), parentSuspense ); } if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) { instance.a && queuePostRenderEffect(instance.a, parentSuspense); } instance.isMounted = true; initialVNode = container = anchor = null; } else { let { next, bu, u: u2, parent, vnode } = instance; { const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance); if (nonHydratedAsyncRoot) { if (next) { next.el = vnode.el; updateComponentPreRender(instance, next, optimized); } nonHydratedAsyncRoot.asyncDep.then(() => { if (!instance.isUnmounted) { componentUpdateFn(); } }); return; } } let originNext = next; let vnodeHook; toggleRecurse(instance, false); if (next) { next.el = vnode.el; updateComponentPreRender(instance, next, optimized); } else { next = vnode; } if (bu) { invokeArrayFns(bu); } if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) { invokeVNodeHook(vnodeHook, parent, next, vnode); } toggleRecurse(instance, true); const nextTree = renderComponentRoot(instance); const prevTree = instance.subTree; instance.subTree = nextTree; patch( prevTree, nextTree, hostParentNode(prevTree.el), getNextHostNode(prevTree), instance, parentSuspense, namespace ); next.el = nextTree.el; if (originNext === null) { updateHOCHostEl(instance, nextTree.el); } if (u2) { queuePostRenderEffect(u2, parentSuspense); } if (vnodeHook = next.props && next.props.onVnodeUpdated) { queuePostRenderEffect( () => invokeVNodeHook(vnodeHook, parent, next, vnode), parentSuspense ); } } }; instance.scope.on(); const effect2 = instance.effect = new ReactiveEffect(componentUpdateFn); instance.scope.off(); const update2 = instance.update = effect2.run.bind(effect2); const job = instance.job = effect2.runIfDirty.bind(effect2); job.i = instance; job.id = instance.uid; effect2.scheduler = () => queueJob(job); toggleRecurse(instance, true); update2(); }; const updateComponentPreRender = (instance, nextVNode, optimized) => { nextVNode.component = instance; const prevProps = instance.vnode.props; instance.vnode = nextVNode; instance.next = null; updateProps(instance, nextVNode.props, prevProps, optimized); updateSlots(instance, nextVNode.children, optimized); pauseTracking(); flushPreFlushCbs(instance); resetTracking(); }; const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => { const c1 = n1 && n1.children; const prevShapeFlag = n1 ? n1.shapeFlag : 0; const c2 = n2.children; const { patchFlag, shapeFlag } = n2; if (patchFlag > 0) { if (patchFlag & 128) { patchKeyedChildren( c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized ); return; } else if (patchFlag & 256) { patchUnkeyedChildren( c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized ); return; } } if (shapeFlag & 8) { if (prevShapeFlag & 16) { unmountChildren(c1, parentComponent, parentSuspense); } if (c2 !== c1) { hostSetElementText(container, c2); } } else { if (prevShapeFlag & 16) { if (shapeFlag & 16) { patchKeyedChildren( c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized ); } else { unmountChildren(c1, parentComponent, parentSuspense, true); } } else { if (prevShapeFlag & 8) { hostSetElementText(container, ""); } if (shapeFlag & 16) { mountChildren( c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized ); } } } }; const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { c1 = c1 || EMPTY_ARR; c2 = c2 || EMPTY_ARR; const oldLength = c1.length; const newLength = c2.length; const commonLength = Math.min(oldLength, newLength); let i2; for (i2 = 0; i2 < commonLength; i2++) { const nextChild = c2[i2] = optimized ? cloneIfMounted(c2[i2]) : normalizeVNode(c2[i2]); patch( c1[i2], nextChild, container, null, parentComponent, parentSuspense, namespace, slotScopeIds, optimized ); } if (oldLength > newLength) { unmountChildren( c1, parentComponent, parentSuspense, true, false, commonLength ); } else { mountChildren( c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, commonLength ); } }; const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { let i2 = 0; const l2 = c2.length; let e1 = c1.length - 1; let e2 = l2 - 1; while (i2 <= e1 && i2 <= e2) { const n1 = c1[i2]; const n2 = c2[i2] = optimized ? cloneIfMounted(c2[i2]) : normalizeVNode(c2[i2]); if (isSameVNodeType(n1, n2)) { patch( n1, n2, container, null, parentComponent, parentSuspense, namespace, slotScopeIds, optimized ); } else { break; } i2++; } while (i2 <= e1 && i2 <= e2) { const n1 = c1[e1]; const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]); if (isSameVNodeType(n1, n2)) { patch( n1, n2, container, null, parentComponent, parentSuspense, namespace, slotScopeIds, optimized ); } else { break; } e1--; e2--; } if (i2 > e1) { if (i2 <= e2) { const nextPos = e2 + 1; const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor; while (i2 <= e2) { patch( null, c2[i2] = optimized ? cloneIfMounted(c2[i2]) : normalizeVNode(c2[i2]), container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized ); i2++; } } } else if (i2 > e2) { while (i2 <= e1) { unmount(c1[i2], parentComponent, parentSuspense, true); i2++; } } else { const s1 = i2; const s2 = i2; const keyToNewIndexMap = /* @__PURE__ */ new Map(); for (i2 = s2; i2 <= e2; i2++) { const nextChild = c2[i2] = optimized ? cloneIfMounted(c2[i2]) : normalizeVNode(c2[i2]); if (nextChild.key != null) { keyToNewIndexMap.set(nextChild.key, i2); } } let j; let patched = 0; const toBePatched = e2 - s2 + 1; let moved = false; let maxNewIndexSoFar = 0; const newIndexToOldIndexMap = new Array(toBePatched); for (i2 = 0; i2 < toBePatched; i2++) newIndexToOldIndexMap[i2] = 0; for (i2 = s1; i2 <= e1; i2++) { const prevChild = c1[i2]; if (patched >= toBePatched) { unmount(prevChild, parentComponent, parentSuspense, true); continue; } let newIndex; if (prevChild.key != null) { newIndex = keyToNewIndexMap.get(prevChild.key); } else { for (j = s2; j <= e2; j++) { if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) { newIndex = j; break; } } } if (newIndex === void 0) { unmount(prevChild, parentComponent, parentSuspense, true); } else { newIndexToOldIndexMap[newIndex - s2] = i2 + 1; if (newIndex >= maxNewIndexSoFar) { maxNewIndexSoFar = newIndex; } else { moved = true; } patch( prevChild, c2[newIndex], container, null, parentComponent, parentSuspense, namespace, slotScopeIds, optimized ); patched++; } } const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR; j = increasingNewIndexSequence.length - 1; for (i2 = toBePatched - 1; i2 >= 0; i2--) { const nextIndex = s2 + i2; const nextChild = c2[nextIndex]; const anchor = nextIndex + 1 < l2 ? c2[nextIndex + 1].el : parentAnchor; if (newIndexToOldIndexMap[i2] === 0) { patch( null, nextChild, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized ); } else if (moved) { if (j < 0 || i2 !== increasingNewIndexSequence[j]) { move(nextChild, container, anchor, 2); } else { j--; } } } } }; const move = (vnode, container, anchor, moveType, parentSuspense = null) => { const { el, type, transition, children, shapeFlag } = vnode; if (shapeFlag & 6) { move(vnode.component.subTree, container, anchor, moveType); return; } if (shapeFlag & 128) { vnode.suspense.move(container, anchor, moveType); return; } if (shapeFlag & 64) { type.move(vnode, container, anchor, internals); return; } if (type === Fragment) { hostInsert(el, container, anchor); for (let i2 = 0; i2 < children.length; i2++) { move(children[i2], container, anchor, moveType); } hostInsert(vnode.anchor, container, anchor); return; } if (type === Static) { moveStaticNode(vnode, container, anchor); return; } const needTransition2 = moveType !== 2 && shapeFlag & 1 && transition; if (needTransition2) { if (moveType === 0) { transition.beforeEnter(el); hostInsert(el, container, anchor); queuePostRenderEffect(() => transition.enter(el), parentSuspense); } else { const { leave, delayLeave, afterLeave } = transition; const remove22 = () => hostInsert(el, container, anchor); const performLeave = () => { leave(el, () => { remove22(); afterLeave && afterLeave(); }); }; if (delayLeave) { delayLeave(el, remove22, performLeave); } else { performLeave(); } } } else { hostInsert(el, container, anchor); } }; const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => { const { type, props, ref: ref2, children, dynamicChildren, shapeFlag, patchFlag, dirs, cacheIndex } = vnode; if (patchFlag === -2) { optimized = false; } if (ref2 != null) { setRef(ref2, null, parentSuspense, vnode, true); } if (cacheIndex != null) { parentComponent.renderCache[cacheIndex] = void 0; } if (shapeFlag & 256) { parentComponent.ctx.deactivate(vnode); return; } const shouldInvokeDirs = shapeFlag & 1 && dirs; const shouldInvokeVnodeHook = !isAsyncWrapper(vnode); let vnodeHook; if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) { invokeVNodeHook(vnodeHook, parentComponent, vnode); } if (shapeFlag & 6) { unmountComponent(vnode.component, parentSuspense, doRemove); } else { if (shapeFlag & 128) { vnode.suspense.unmount(parentSuspense, doRemove); return; } if (shouldInvokeDirs) { invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount"); } if (shapeFlag & 64) { vnode.type.remove( vnode, parentComponent, parentSuspense, internals, doRemove ); } else if (dynamicChildren && !dynamicChildren.hasOnce && (type !== Fragment || patchFlag > 0 && patchFlag & 64)) { unmountChildren( dynamicChildren, parentComponent, parentSuspense, false, true ); } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) { unmountChildren(children, parentComponent, parentSuspense); } if (doRemove) { remove2(vnode); } } if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) { queuePostRenderEffect(() => { vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode); shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted"); }, parentSuspense); } }; const remove2 = (vnode) => { const { type, el, anchor, transition } = vnode; if (type === Fragment) { { removeFragment(el, anchor); } return; } if (type === Static) { removeStaticNode(vnode); return; } const performRemove = () => { hostRemove(el); if (transition && !transition.persisted && transition.afterLeave) { transition.afterLeave(); } }; if (vnode.shapeFlag & 1 && transition && !transition.persisted) { const { leave, delayLeave } = transition; const performLeave = () => leave(el, performRemove); if (delayLeave) { delayLeave(vnode.el, performRemove, performLeave); } else { performLeave(); } } else { performRemove(); } }; const removeFragment = (cur, end) => { let next; while (cur !== end) { next = hostNextSibling(cur); hostRemove(cur); cur = next; } hostRemove(end); }; const unmountComponent = (instance, parentSuspense, doRemove) => { const { bum, scope, job, subTree, um, m, a: a2 } = instance; invalidateMount(m); invalidateMount(a2); if (bum) { invokeArrayFns(bum); } scope.stop(); if (job) { job.flags |= 8; unmount(subTree, instance, parentSuspense, doRemove); } if (um) { queuePostRenderEffect(um, parentSuspense); } queuePostRenderEffect(() => { instance.isUnmounted = true; }, parentSuspense); if (parentSuspense && parentSuspense.pendingBranch && !parentSuspense.isUnmounted && instance.asyncDep && !instance.asyncResolved && instance.suspenseId === parentSuspense.pendingId) { parentSuspense.deps--; if (parentSuspense.deps === 0) { parentSuspense.resolve(); } } }; const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => { for (let i2 = start; i2 < children.length; i2++) { unmount(children[i2], parentComponent, parentSuspense, doRemove, optimized); } }; const getNextHostNode = (vnode) => { if (vnode.shapeFlag & 6) { return getNextHostNode(vnode.component.subTree); } if (vnode.shapeFlag & 128) { return vnode.suspense.next(); } const el = hostNextSibling(vnode.anchor || vnode.el); const teleportEnd = el && el[TeleportEndKey]; return teleportEnd ? hostNextSibling(teleportEnd) : el; }; let isFlushing = false; const render2 = (vnode, container, namespace) => { if (vnode == null) { if (container._vnode) { unmount(container._vnode, null, null, true); } } else { patch( container._vnode || null, vnode, container, null, null, null, namespace ); } container._vnode = vnode; if (!isFlushing) { isFlushing = true; flushPreFlushCbs(); flushPostFlushCbs(); isFlushing = false; } }; const internals = { p: patch, um: unmount, m: move, r: remove2, mt: mountComponent, mc: mountChildren, pc: patchChildren, pbc: patchBlockChildren, n: getNextHostNode, o: options }; let hydrate2; let hydrateNode; if (createHydrationFns) { [hydrate2, hydrateNode] = createHydrationFns( internals ); } return { render: render2, hydrate: hydrate2, createApp: createAppAPI(render2, hydrate2) }; } function resolveChildrenNamespace({ type, props }, currentNamespace) { return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace; } function toggleRecurse({ effect: effect2, job }, allowed) { if (allowed) { effect2.flags |= 32; job.flags |= 4; } else { effect2.flags &= ~32; job.flags &= ~4; } } function needTransition(parentSuspense, transition) { return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted; } function traverseStaticChildren(n1, n2, shallow = false) { const ch1 = n1.children; const ch2 = n2.children; if (isArray$4(ch1) && isArray$4(ch2)) { for (let i2 = 0; i2 < ch1.length; i2++) { const c1 = ch1[i2]; let c2 = ch2[i2]; if (c2.shapeFlag & 1 && !c2.dynamicChildren) { if (c2.patchFlag <= 0 || c2.patchFlag === 32) { c2 = ch2[i2] = cloneIfMounted(ch2[i2]); c2.el = c1.el; } if (!shallow && c2.patchFlag !== -2) traverseStaticChildren(c1, c2); } if (c2.type === Text) { c2.el = c1.el; } } } } function getSequence(arr) { const p2 = arr.slice(); const result2 = [0]; let i2, j, u2, v, c2; const len = arr.length; for (i2 = 0; i2 < len; i2++) { const arrI = arr[i2]; if (arrI !== 0) { j = result2[result2.length - 1]; if (arr[j] < arrI) { p2[i2] = j; result2.push(i2); continue; } u2 = 0; v = result2.length - 1; while (u2 < v) { c2 = u2 + v >> 1; if (arr[result2[c2]] < arrI) { u2 = c2 + 1; } else { v = c2; } } if (arrI < arr[result2[u2]]) { if (u2 > 0) { p2[i2] = result2[u2 - 1]; } result2[u2] = i2; } } } u2 = result2.length; v = result2[u2 - 1]; while (u2-- > 0) { result2[u2] = v; v = p2[v]; } return result2; } function locateNonHydratedAsyncRoot(instance) { const subComponent = instance.subTree.component; if (subComponent) { if (subComponent.asyncDep && !subComponent.asyncResolved) { return subComponent; } else { return locateNonHydratedAsyncRoot(subComponent); } } } function invalidateMount(hooks2) { if (hooks2) { for (let i2 = 0; i2 < hooks2.length; i2++) hooks2[i2].flags |= 8; } } const ssrContextKey = Symbol.for("v-scx"); const useSSRContext = () => { { const ctx = inject(ssrContextKey); return ctx; } }; function watchEffect(effect2, options) { return doWatch(effect2, null, options); } function watchPostEffect(effect2, options) { return doWatch( effect2, null, { flush: "post" } ); } function watchSyncEffect(effect2, options) { return doWatch( effect2, null, { flush: "sync" } ); } function watch(source, cb, options) { return doWatch(source, cb, options); } function doWatch(source, cb, options = EMPTY_OBJ) { const { immediate, deep, flush, once } = options; const baseWatchOptions = extend$2({}, options); const runsImmediately = cb && immediate || !cb && flush !== "post"; let ssrCleanup; if (isInSSRComponentSetup) { if (flush === "sync") { const ctx = useSSRContext(); ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []); } else if (!runsImmediately) { const watchStopHandle = () => { }; watchStopHandle.stop = NOOP; watchStopHandle.resume = NOOP; watchStopHandle.pause = NOOP; return watchStopHandle; } } const instance = currentInstance; baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args); let isPre = false; if (flush === "post") { baseWatchOptions.scheduler = (job) => { queuePostRenderEffect(job, instance && instance.suspense); }; } else if (flush !== "sync") { isPre = true; baseWatchOptions.scheduler = (job, isFirstRun) => { if (isFirstRun) { job(); } else { queueJob(job); } }; } baseWatchOptions.augmentJob = (job) => { if (cb) { job.flags |= 4; } if (isPre) { job.flags |= 2; if (instance) { job.id = instance.uid; job.i = instance; } } }; const watchHandle = watch$1(source, cb, baseWatchOptions); if (isInSSRComponentSetup) { if (ssrCleanup) { ssrCleanup.push(watchHandle); } else if (runsImmediately) { watchHandle(); } } return watchHandle; } function instanceWatch(source, value, options) { const publicThis = this.proxy; const getter = isString$6(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis); let cb; if (isFunction$3(value)) { cb = value; } else { cb = value.handler; options = value; } const reset = setCurrentInstance(this); const res = doWatch(getter, cb.bind(publicThis), options); reset(); return res; } function createPathGetter(ctx, path) { const segments = path.split("."); return () => { let cur = ctx; for (let i2 = 0; i2 < segments.length && cur; i2++) { cur = cur[segments[i2]]; } return cur; }; } function useModel(props, name, options = EMPTY_OBJ) { const i2 = getCurrentInstance(); const camelizedName = camelize(name); const hyphenatedName = hyphenate(name); const modifiers = getModelModifiers(props, camelizedName); const res = customRef((track2, trigger2) => { let localValue; let prevSetValue = EMPTY_OBJ; let prevEmittedValue; watchSyncEffect(() => { const propValue = props[camelizedName]; if (hasChanged(localValue, propValue)) { localValue = propValue; trigger2(); } }); return { get() { track2(); return options.get ? options.get(localValue) : localValue; }, set(value) { const emittedValue = options.set ? options.set(value) : value; if (!hasChanged(emittedValue, localValue) && !(prevSetValue !== EMPTY_OBJ && hasChanged(value, prevSetValue))) { return; } const rawProps = i2.vnode.props; if (!(rawProps && (name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps))) { localValue = value; trigger2(); } i2.emit(`update:${name}`, emittedValue); if (hasChanged(value, emittedValue) && hasChanged(value, prevSetValue) && !hasChanged(emittedValue, prevEmittedValue)) { trigger2(); } prevSetValue = value; prevEmittedValue = emittedValue; } }; }); res[Symbol.iterator] = () => { let i22 = 0; return { next() { if (i22 < 2) { return { value: i22++ ? modifiers || EMPTY_OBJ : res, done: false }; } else { return { done: true }; } } }; }; return res; } const getModelModifiers = (props, modelName) => { return modelName === "modelValue" || modelName === "model-value" ? props.modelModifiers : props[`${modelName}Modifiers`] || props[`${camelize(modelName)}Modifiers`] || props[`${hyphenate(modelName)}Modifiers`]; }; function emit(instance, event, ...rawArgs) { if (instance.isUnmounted) return; const props = instance.vnode.props || EMPTY_OBJ; let args = rawArgs; const isModelListener2 = event.startsWith("update:"); const modifiers = isModelListener2 && getModelModifiers(props, event.slice(7)); if (modifiers) { if (modifiers.trim) { args = rawArgs.map((a2) => isString$6(a2) ? a2.trim() : a2); } if (modifiers.number) { args = rawArgs.map(looseToNumber); } } let handlerName; let handler = props[handlerName = toHandlerKey(event)] || props[handlerName = toHandlerKey(camelize(event))]; if (!handler && isModelListener2) { handler = props[handlerName = toHandlerKey(hyphenate(event))]; } if (handler) { callWithAsyncErrorHandling( handler, instance, 6, args ); } const onceHandler = props[handlerName + `Once`]; if (onceHandler) { if (!instance.emitted) { instance.emitted = {}; } else if (instance.emitted[handlerName]) { return; } instance.emitted[handlerName] = true; callWithAsyncErrorHandling( onceHandler, instance, 6, args ); } } function normalizeEmitsOptions(comp, appContext, asMixin = false) { const cache2 = appContext.emitsCache; const cached = cache2.get(comp); if (cached !== void 0) { return cached; } const raw = comp.emits; let normalized = {}; let hasExtends = false; if (!isFunction$3(comp)) { const extendEmits = (raw2) => { const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true); if (normalizedFromExtend) { hasExtends = true; extend$2(normalized, normalizedFromExtend); } }; if (!asMixin && appContext.mixins.length) { appContext.mixins.forEach(extendEmits); } if (comp.extends) { extendEmits(comp.extends); } if (comp.mixins) { comp.mixins.forEach(extendEmits); } } if (!raw && !hasExtends) { if (isObject$8(comp)) { cache2.set(comp, null); } return null; } if (isArray$4(raw)) { raw.forEach((key) => normalized[key] = null); } else { extend$2(normalized, raw); } if (isObject$8(comp)) { cache2.set(comp, normalized); } return normalized; } function isEmitListener(options, key) { if (!options || !isOn(key)) { return false; } key = key.slice(2).replace(/Once$/, ""); return hasOwn$2(options, key[0].toLowerCase() + key.slice(1)) || hasOwn$2(options, hyphenate(key)) || hasOwn$2(options, key); } function markAttrsAccessed() { } function renderComponentRoot(instance) { const { type: Component, vnode, proxy, withProxy, propsOptions: [propsOptions], slots, attrs, emit: emit2, render: render2, renderCache, props, data: data2, setupState, ctx, inheritAttrs } = instance; const prev = setCurrentRenderingInstance(instance); let result2; let fallthroughAttrs; try { if (vnode.shapeFlag & 4) { const proxyToUse = withProxy || proxy; const thisProxy = false ? new Proxy(proxyToUse, { get(target, key, receiver) { warn$1$1( `Property '${String( key )}' was accessed via 'this'. Avoid using 'this' in templates.` ); return Reflect.get(target, key, receiver); } }) : proxyToUse; result2 = normalizeVNode( render2.call( thisProxy, proxyToUse, renderCache, false ? shallowReadonly(props) : props, setupState, data2, ctx ) ); fallthroughAttrs = attrs; } else { const render22 = Component; if (false) ; result2 = normalizeVNode( render22.length > 1 ? render22( false ? shallowReadonly(props) : props, false ? { get attrs() { markAttrsAccessed(); return shallowReadonly(attrs); }, slots, emit: emit2 } : { attrs, slots, emit: emit2 } ) : render22( false ? shallowReadonly(props) : props, null ) ); fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs); } } catch (err) { blockStack.length = 0; handleError$1(err, instance, 1); result2 = createVNode(Comment); } let root2 = result2; if (fallthroughAttrs && inheritAttrs !== false) { const keys2 = Object.keys(fallthroughAttrs); const { shapeFlag } = root2; if (keys2.length) { if (shapeFlag & (1 | 6)) { if (propsOptions && keys2.some(isModelListener)) { fallthroughAttrs = filterModelListeners( fallthroughAttrs, propsOptions ); } root2 = cloneVNode(root2, fallthroughAttrs, false, true); } } } if (vnode.dirs) { root2 = cloneVNode(root2, null, false, true); root2.dirs = root2.dirs ? root2.dirs.concat(vnode.dirs) : vnode.dirs; } if (vnode.transition) { setTransitionHooks(root2, vnode.transition); } { result2 = root2; } setCurrentRenderingInstance(prev); return result2; } function filterSingleRoot(children, recurse = true) { let singleRoot; for (let i2 = 0; i2 < children.length; i2++) { const child = children[i2]; if (isVNode$1(child)) { if (child.type !== Comment || child.children === "v-if") { if (singleRoot) { return; } else { singleRoot = child; } } } else { return; } } return singleRoot; } const getFunctionalFallthrough = (attrs) => { let res; for (const key in attrs) { if (key === "class" || key === "style" || isOn(key)) { (res || (res = {}))[key] = attrs[key]; } } return res; }; const filterModelListeners = (attrs, props) => { const res = {}; for (const key in attrs) { if (!isModelListener(key) || !(key.slice(9) in props)) { res[key] = attrs[key]; } } return res; }; function shouldUpdateComponent(prevVNode, nextVNode, optimized) { const { props: prevProps, children: prevChildren, component } = prevVNode; const { props: nextProps, children: nextChildren, patchFlag } = nextVNode; const emits = component.emitsOptions; if (nextVNode.dirs || nextVNode.transition) { return true; } if (optimized && patchFlag >= 0) { if (patchFlag & 1024) { return true; } if (patchFlag & 16) { if (!prevProps) { return !!nextProps; } return hasPropsChanged(prevProps, nextProps, emits); } else if (patchFlag & 8) { const dynamicProps = nextVNode.dynamicProps; for (let i2 = 0; i2 < dynamicProps.length; i2++) { const key = dynamicProps[i2]; if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) { return true; } } } } else { if (prevChildren || nextChildren) { if (!nextChildren || !nextChildren.$stable) { return true; } } if (prevProps === nextProps) { return false; } if (!prevProps) { return !!nextProps; } if (!nextProps) { return true; } return hasPropsChanged(prevProps, nextProps, emits); } return false; } function hasPropsChanged(prevProps, nextProps, emitsOptions) { const nextKeys = Object.keys(nextProps); if (nextKeys.length !== Object.keys(prevProps).length) { return true; } for (let i2 = 0; i2 < nextKeys.length; i2++) { const key = nextKeys[i2]; if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) { return true; } } return false; } function updateHOCHostEl({ vnode, parent }, el) { while (parent) { const root2 = parent.subTree; if (root2.suspense && root2.suspense.activeBranch === vnode) { root2.el = vnode.el; } if (root2 === vnode) { (vnode = parent.vnode).el = el; parent = parent.parent; } else { break; } } } const isSuspense = (type) => type.__isSuspense; let suspenseId = 0; const SuspenseImpl = { name: "Suspense", __isSuspense: true, process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) { if (n1 == null) { mountSuspense( n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals ); } else { if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) { n2.suspense = n1.suspense; n2.suspense.vnode = n2; n2.el = n1.el; return; } patchSuspense( n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, rendererInternals ); } }, hydrate: hydrateSuspense, normalize: normalizeSuspenseChildren }; const Suspense = SuspenseImpl; function triggerEvent(vnode, name) { const eventListener = vnode.props && vnode.props[name]; if (isFunction$3(eventListener)) { eventListener(); } } function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) { const { p: patch, o: { createElement } } = rendererInternals; const hiddenContainer = createElement("div"); const suspense = vnode.suspense = createSuspenseBoundary( vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals ); patch( null, suspense.pendingBranch = vnode.ssContent, hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds ); if (suspense.deps > 0) { triggerEvent(vnode, "onPending"); triggerEvent(vnode, "onFallback"); patch( null, vnode.ssFallback, container, anchor, parentComponent, null, namespace, slotScopeIds ); setActiveBranch(suspense, vnode.ssFallback); } else { suspense.resolve(false, true); } } function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) { const suspense = n2.suspense = n1.suspense; suspense.vnode = n2; n2.el = n1.el; const newBranch = n2.ssContent; const newFallback = n2.ssFallback; const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense; if (pendingBranch) { suspense.pendingBranch = newBranch; if (isSameVNodeType(newBranch, pendingBranch)) { patch( pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized ); if (suspense.deps <= 0) { suspense.resolve(); } else if (isInFallback) { if (!isHydrating) { patch( activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized ); setActiveBranch(suspense, newFallback); } } } else { suspense.pendingId = suspenseId++; if (isHydrating) { suspense.isHydrating = false; suspense.activeBranch = pendingBranch; } else { unmount(pendingBranch, parentComponent, suspense); } suspense.deps = 0; suspense.effects.length = 0; suspense.hiddenContainer = createElement("div"); if (isInFallback) { patch( null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized ); if (suspense.deps <= 0) { suspense.resolve(); } else { patch( activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized ); setActiveBranch(suspense, newFallback); } } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) { patch( activeBranch, newBranch, container, anchor, parentComponent, suspense, namespace, slotScopeIds, optimized ); suspense.resolve(true); } else { patch( null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized ); if (suspense.deps <= 0) { suspense.resolve(); } } } } else { if (activeBranch && isSameVNodeType(newBranch, activeBranch)) { patch( activeBranch, newBranch, container, anchor, parentComponent, suspense, namespace, slotScopeIds, optimized ); setActiveBranch(suspense, newBranch); } else { triggerEvent(n2, "onPending"); suspense.pendingBranch = newBranch; if (newBranch.shapeFlag & 512) { suspense.pendingId = newBranch.component.suspenseId; } else { suspense.pendingId = suspenseId++; } patch( null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized ); if (suspense.deps <= 0) { suspense.resolve(); } else { const { timeout, pendingId } = suspense; if (timeout > 0) { setTimeout(() => { if (suspense.pendingId === pendingId) { suspense.fallback(newFallback); } }, timeout); } else if (timeout === 0) { suspense.fallback(newFallback); } } } } } function createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) { const { p: patch, m: move, um: unmount, n: next, o: { parentNode, remove: remove2 } } = rendererInternals; let parentSuspenseId; const isSuspensible = isVNodeSuspensible(vnode); if (isSuspensible) { if (parentSuspense && parentSuspense.pendingBranch) { parentSuspenseId = parentSuspense.pendingId; parentSuspense.deps++; } } const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0; const initialAnchor = anchor; const suspense = { vnode, parent: parentSuspense, parentComponent, namespace, container, hiddenContainer, deps: 0, pendingId: suspenseId++, timeout: typeof timeout === "number" ? timeout : -1, activeBranch: null, pendingBranch: null, isInFallback: !isHydrating, isHydrating, isUnmounted: false, effects: [], resolve(resume = false, sync = false) { const { vnode: vnode2, activeBranch, pendingBranch, pendingId, effects, parentComponent: parentComponent2, container: container2 } = suspense; let delayEnter = false; if (suspense.isHydrating) { suspense.isHydrating = false; } else if (!resume) { delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in"; if (delayEnter) { activeBranch.transition.afterLeave = () => { if (pendingId === suspense.pendingId) { move( pendingBranch, container2, anchor === initialAnchor ? next(activeBranch) : anchor, 0 ); queuePostFlushCb(effects); } }; } if (activeBranch) { if (parentNode(activeBranch.el) === container2) { anchor = next(activeBranch); } unmount(activeBranch, parentComponent2, suspense, true); } if (!delayEnter) { move(pendingBranch, container2, anchor, 0); } } setActiveBranch(suspense, pendingBranch); suspense.pendingBranch = null; suspense.isInFallback = false; let parent = suspense.parent; let hasUnresolvedAncestor = false; while (parent) { if (parent.pendingBranch) { parent.effects.push(...effects); hasUnresolvedAncestor = true; break; } parent = parent.parent; } if (!hasUnresolvedAncestor && !delayEnter) { queuePostFlushCb(effects); } suspense.effects = []; if (isSuspensible) { if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) { parentSuspense.deps--; if (parentSuspense.deps === 0 && !sync) { parentSuspense.resolve(); } } } triggerEvent(vnode2, "onResolve"); }, fallback(fallbackVNode) { if (!suspense.pendingBranch) { return; } const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense; triggerEvent(vnode2, "onFallback"); const anchor2 = next(activeBranch); const mountFallback = () => { if (!suspense.isInFallback) { return; } patch( null, fallbackVNode, container2, anchor2, parentComponent2, null, namespace2, slotScopeIds, optimized ); setActiveBranch(suspense, fallbackVNode); }; const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in"; if (delayEnter) { activeBranch.transition.afterLeave = mountFallback; } suspense.isInFallback = true; unmount( activeBranch, parentComponent2, null, true ); if (!delayEnter) { mountFallback(); } }, move(container2, anchor2, type) { suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type); suspense.container = container2; }, next() { return suspense.activeBranch && next(suspense.activeBranch); }, registerDep(instance, setupRenderEffect, optimized2) { const isInPendingSuspense = !!suspense.pendingBranch; if (isInPendingSuspense) { suspense.deps++; } const hydratedEl = instance.vnode.el; instance.asyncDep.catch((err) => { handleError$1(err, instance, 0); }).then((asyncSetupResult) => { if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) { return; } instance.asyncResolved = true; const { vnode: vnode2 } = instance; handleSetupResult(instance, asyncSetupResult, false); if (hydratedEl) { vnode2.el = hydratedEl; } const placeholder = !hydratedEl && instance.subTree.el; setupRenderEffect( instance, vnode2, parentNode(hydratedEl || instance.subTree.el), hydratedEl ? null : next(instance.subTree), suspense, namespace, optimized2 ); if (placeholder) { remove2(placeholder); } updateHOCHostEl(instance, vnode2.el); if (isInPendingSuspense && --suspense.deps === 0) { suspense.resolve(); } }); }, unmount(parentSuspense2, doRemove) { suspense.isUnmounted = true; if (suspense.activeBranch) { unmount( suspense.activeBranch, parentComponent, parentSuspense2, doRemove ); } if (suspense.pendingBranch) { unmount( suspense.pendingBranch, parentComponent, parentSuspense2, doRemove ); } } }; return suspense; } function hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) { const suspense = vnode.suspense = createSuspenseBoundary( vnode, parentSuspense, parentComponent, node.parentNode, document.createElement("div"), null, namespace, slotScopeIds, optimized, rendererInternals, true ); const result2 = hydrateNode( node, suspense.pendingBranch = vnode.ssContent, parentComponent, suspense, slotScopeIds, optimized ); if (suspense.deps === 0) { suspense.resolve(false, true); } return result2; } function normalizeSuspenseChildren(vnode) { const { shapeFlag, children } = vnode; const isSlotChildren = shapeFlag & 32; vnode.ssContent = normalizeSuspenseSlot( isSlotChildren ? children.default : children ); vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment); } function normalizeSuspenseSlot(s) { let block2; if (isFunction$3(s)) { const trackBlock = isBlockTreeEnabled && s._c; if (trackBlock) { s._d = false; openBlock(); } s = s(); if (trackBlock) { s._d = true; block2 = currentBlock; closeBlock(); } } if (isArray$4(s)) { const singleChild = filterSingleRoot(s); s = singleChild; } s = normalizeVNode(s); if (block2 && !s.dynamicChildren) { s.dynamicChildren = block2.filter((c2) => c2 !== s); } return s; } function queueEffectWithSuspense(fn, suspense) { if (suspense && suspense.pendingBranch) { if (isArray$4(fn)) { suspense.effects.push(...fn); } else { suspense.effects.push(fn); } } else { queuePostFlushCb(fn); } } function setActiveBranch(suspense, branch) { suspense.activeBranch = branch; const { vnode, parentComponent } = suspense; let el = branch.el; while (!el && branch.component) { branch = branch.component.subTree; el = branch.el; } vnode.el = el; if (parentComponent && parentComponent.subTree === vnode) { parentComponent.vnode.el = el; updateHOCHostEl(parentComponent, el); } } function isVNodeSuspensible(vnode) { const suspensible = vnode.props && vnode.props.suspensible; return suspensible != null && suspensible !== false; } const Fragment = Symbol.for("v-fgt"); const Text = Symbol.for("v-txt"); const Comment = Symbol.for("v-cmt"); const Static = Symbol.for("v-stc"); const blockStack = []; let currentBlock = null; function openBlock(disableTracking = false) { blockStack.push(currentBlock = disableTracking ? null : []); } function closeBlock() { blockStack.pop(); currentBlock = blockStack[blockStack.length - 1] || null; } let isBlockTreeEnabled = 1; function setBlockTracking(value, inVOnce = false) { isBlockTreeEnabled += value; if (value < 0 && currentBlock && inVOnce) { currentBlock.hasOnce = true; } } function setupBlock(vnode) { vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null; closeBlock(); if (isBlockTreeEnabled > 0 && currentBlock) { currentBlock.push(vnode); } return vnode; } function createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) { return setupBlock( createBaseVNode( type, props, children, patchFlag, dynamicProps, shapeFlag, true ) ); } function createBlock(type, props, children, patchFlag, dynamicProps) { return setupBlock( createVNode( type, props, children, patchFlag, dynamicProps, true ) ); } function isVNode$1(value) { return value ? value.__v_isVNode === true : false; } function isSameVNodeType(n1, n2) { return n1.type === n2.type && n1.key === n2.key; } function transformVNodeArgs(transformer) { } const normalizeKey = ({ key }) => key != null ? key : null; const normalizeRef = ({ ref: ref2, ref_key, ref_for }) => { if (typeof ref2 === "number") { ref2 = "" + ref2; } return ref2 != null ? isString$6(ref2) || isRef(ref2) || isFunction$3(ref2) ? { i: currentRenderingInstance, r: ref2, k: ref_key, f: !!ref_for } : ref2 : null; }; function createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) { const vnode = { __v_isVNode: true, __v_skip: true, type, props, key: props && normalizeKey(props), ref: props && normalizeRef(props), scopeId: currentScopeId, slotScopeIds: null, children, component: null, suspense: null, ssContent: null, ssFallback: null, dirs: null, transition: null, el: null, anchor: null, target: null, targetStart: null, targetAnchor: null, staticCount: 0, shapeFlag, patchFlag, dynamicProps, dynamicChildren: null, appContext: null, ctx: currentRenderingInstance }; if (needFullChildrenNormalization) { normalizeChildren(vnode, children); if (shapeFlag & 128) { type.normalize(vnode); } } else if (children) { vnode.shapeFlag |= isString$6(children) ? 8 : 16; } if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock && (vnode.patchFlag > 0 || shapeFlag & 6) && vnode.patchFlag !== 32) { currentBlock.push(vnode); } return vnode; } const createVNode = _createVNode; function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) { if (!type || type === NULL_DYNAMIC_COMPONENT) { type = Comment; } if (isVNode$1(type)) { const cloned = cloneVNode( type, props, true ); if (children) { normalizeChildren(cloned, children); } if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) { if (cloned.shapeFlag & 6) { currentBlock[currentBlock.indexOf(type)] = cloned; } else { currentBlock.push(cloned); } } cloned.patchFlag = -2; return cloned; } if (isClassComponent(type)) { type = type.__vccOpts; } if (props) { props = guardReactiveProps(props); let { class: klass, style } = props; if (klass && !isString$6(klass)) { props.class = normalizeClass(klass); } if (isObject$8(style)) { if (isProxy(style) && !isArray$4(style)) { style = extend$2({}, style); } props.style = normalizeStyle(style); } } const shapeFlag = isString$6(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject$8(type) ? 4 : isFunction$3(type) ? 2 : 0; return createBaseVNode( type, props, children, patchFlag, dynamicProps, shapeFlag, isBlockNode, true ); } function guardReactiveProps(props) { if (!props) return null; return isProxy(props) || isInternalObject(props) ? extend$2({}, props) : props; } function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false) { const { props, ref: ref2, patchFlag, children, transition } = vnode; const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props; const cloned = { __v_isVNode: true, __v_skip: true, type: vnode.type, props: mergedProps, key: mergedProps && normalizeKey(mergedProps), ref: extraProps && extraProps.ref ? mergeRef && ref2 ? isArray$4(ref2) ? ref2.concat(normalizeRef(extraProps)) : [ref2, normalizeRef(extraProps)] : normalizeRef(extraProps) : ref2, scopeId: vnode.scopeId, slotScopeIds: vnode.slotScopeIds, children, target: vnode.target, targetStart: vnode.targetStart, targetAnchor: vnode.targetAnchor, staticCount: vnode.staticCount, shapeFlag: vnode.shapeFlag, patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag, dynamicProps: vnode.dynamicProps, dynamicChildren: vnode.dynamicChildren, appContext: vnode.appContext, dirs: vnode.dirs, transition, component: vnode.component, suspense: vnode.suspense, ssContent: vnode.ssContent && cloneVNode(vnode.ssContent), ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback), el: vnode.el, anchor: vnode.anchor, ctx: vnode.ctx, ce: vnode.ce }; if (transition && cloneTransition) { setTransitionHooks( cloned, transition.clone(cloned) ); } return cloned; } function createTextVNode(text = " ", flag = 0) { return createVNode(Text, null, text, flag); } function createStaticVNode(content, numberOfNodes) { const vnode = createVNode(Static, null, content); vnode.staticCount = numberOfNodes; return vnode; } function createCommentVNode(text = "", asBlock = false) { return asBlock ? (openBlock(), createBlock(Comment, null, text)) : createVNode(Comment, null, text); } function normalizeVNode(child) { if (child == null || typeof child === "boolean") { return createVNode(Comment); } else if (isArray$4(child)) { return createVNode( Fragment, null, child.slice() ); } else if (isVNode$1(child)) { return cloneIfMounted(child); } else { return createVNode(Text, null, String(child)); } } function cloneIfMounted(child) { return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child); } function normalizeChildren(vnode, children) { let type = 0; const { shapeFlag } = vnode; if (children == null) { children = null; } else if (isArray$4(children)) { type = 16; } else if (typeof children === "object") { if (shapeFlag & (1 | 64)) { const slot = children.default; if (slot) { slot._c && (slot._d = false); normalizeChildren(vnode, slot()); slot._c && (slot._d = true); } return; } else { type = 32; const slotFlag = children._; if (!slotFlag && !isInternalObject(children)) { children._ctx = currentRenderingInstance; } else if (slotFlag === 3 && currentRenderingInstance) { if (currentRenderingInstance.slots._ === 1) { children._ = 1; } else { children._ = 2; vnode.patchFlag |= 1024; } } } } else if (isFunction$3(children)) { children = { default: children, _ctx: currentRenderingInstance }; type = 32; } else { children = String(children); if (shapeFlag & 64) { type = 16; children = [createTextVNode(children)]; } else { type = 8; } } vnode.children = children; vnode.shapeFlag |= type; } function mergeProps(...args) { const ret = {}; for (let i2 = 0; i2 < args.length; i2++) { const toMerge = args[i2]; for (const key in toMerge) { if (key === "class") { if (ret.class !== toMerge.class) { ret.class = normalizeClass([ret.class, toMerge.class]); } } else if (key === "style") { ret.style = normalizeStyle([ret.style, toMerge.style]); } else if (isOn(key)) { const existing = ret[key]; const incoming = toMerge[key]; if (incoming && existing !== incoming && !(isArray$4(existing) && existing.includes(incoming))) { ret[key] = existing ? [].concat(existing, incoming) : incoming; } } else if (key !== "") { ret[key] = toMerge[key]; } } } return ret; } function invokeVNodeHook(hook, instance, vnode, prevVNode = null) { callWithAsyncErrorHandling(hook, instance, 7, [ vnode, prevVNode ]); } const emptyAppContext = createAppContext(); let uid = 0; function createComponentInstance(vnode, parent, suspense) { const type = vnode.type; const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext; const instance = { uid: uid++, vnode, type, parent, appContext, root: null, next: null, subTree: null, effect: null, update: null, job: null, scope: new EffectScope( true ), render: null, proxy: null, exposed: null, exposeProxy: null, withProxy: null, provides: parent ? parent.provides : Object.create(appContext.provides), ids: parent ? parent.ids : ["", 0, 0], accessCache: null, renderCache: [], components: null, directives: null, propsOptions: normalizePropsOptions(type, appContext), emitsOptions: normalizeEmitsOptions(type, appContext), emit: null, emitted: null, propsDefaults: EMPTY_OBJ, inheritAttrs: type.inheritAttrs, ctx: EMPTY_OBJ, data: EMPTY_OBJ, props: EMPTY_OBJ, attrs: EMPTY_OBJ, slots: EMPTY_OBJ, refs: EMPTY_OBJ, setupState: EMPTY_OBJ, setupContext: null, suspense, suspenseId: suspense ? suspense.pendingId : 0, asyncDep: null, asyncResolved: false, isMounted: false, isUnmounted: false, isDeactivated: false, bc: null, c: null, bm: null, m: null, bu: null, u: null, um: null, bum: null, da: null, a: null, rtg: null, rtc: null, ec: null, sp: null }; { instance.ctx = { _: instance }; } instance.root = parent ? parent.root : instance; instance.emit = emit.bind(null, instance); if (vnode.ce) { vnode.ce(instance); } return instance; } let currentInstance = null; const getCurrentInstance = () => currentInstance || currentRenderingInstance; let internalSetCurrentInstance; let setInSSRSetupState; { const g = getGlobalThis$1(); const registerGlobalSetter = (key, setter) => { let setters; if (!(setters = g[key])) setters = g[key] = []; setters.push(setter); return (v) => { if (setters.length > 1) setters.forEach((set2) => set2(v)); else setters[0](v); }; }; internalSetCurrentInstance = registerGlobalSetter( `__VUE_INSTANCE_SETTERS__`, (v) => currentInstance = v ); setInSSRSetupState = registerGlobalSetter( `__VUE_SSR_SETTERS__`, (v) => isInSSRComponentSetup = v ); } const setCurrentInstance = (instance) => { const prev = currentInstance; internalSetCurrentInstance(instance); instance.scope.on(); return () => { instance.scope.off(); internalSetCurrentInstance(prev); }; }; const unsetCurrentInstance = () => { currentInstance && currentInstance.scope.off(); internalSetCurrentInstance(null); }; function isStatefulComponent(instance) { return instance.vnode.shapeFlag & 4; } let isInSSRComponentSetup = false; function setupComponent(instance, isSSR = false, optimized = false) { isSSR && setInSSRSetupState(isSSR); const { props, children } = instance.vnode; const isStateful = isStatefulComponent(instance); initProps(instance, props, isStateful, isSSR); initSlots(instance, children, optimized); const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0; isSSR && setInSSRSetupState(false); return setupResult; } function setupStatefulComponent(instance, isSSR) { const Component = instance.type; instance.accessCache = /* @__PURE__ */ Object.create(null); instance.proxy = new Proxy(instance.ctx, PublicInstanceProxyHandlers); const { setup } = Component; if (setup) { pauseTracking(); const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null; const reset = setCurrentInstance(instance); const setupResult = callWithErrorHandling( setup, instance, 0, [ instance.props, setupContext ] ); const isAsyncSetup = isPromise$2(setupResult); resetTracking(); reset(); if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) { markAsyncBoundary(instance); } if (isAsyncSetup) { setupResult.then(unsetCurrentInstance, unsetCurrentInstance); if (isSSR) { return setupResult.then((resolvedResult) => { handleSetupResult(instance, resolvedResult, isSSR); }).catch((e2) => { handleError$1(e2, instance, 0); }); } else { instance.asyncDep = setupResult; } } else { handleSetupResult(instance, setupResult, isSSR); } } else { finishComponentSetup(instance, isSSR); } } function handleSetupResult(instance, setupResult, isSSR) { if (isFunction$3(setupResult)) { if (instance.type.__ssrInlineRender) { instance.ssrRender = setupResult; } else { instance.render = setupResult; } } else if (isObject$8(setupResult)) { instance.setupState = proxyRefs(setupResult); } else ; finishComponentSetup(instance, isSSR); } let compile$2; let installWithProxy; function registerRuntimeCompiler(_compile) { compile$2 = _compile; installWithProxy = (i2) => { if (i2.render._rc) { i2.withProxy = new Proxy(i2.ctx, RuntimeCompiledPublicInstanceProxyHandlers); } }; } const isRuntimeOnly = () => !compile$2; function finishComponentSetup(instance, isSSR, skipOptions) { const Component = instance.type; if (!instance.render) { if (!isSSR && compile$2 && !Component.render) { const template = Component.template || resolveMergedOptions(instance).template; if (template) { const { isCustomElement, compilerOptions } = instance.appContext.config; const { delimiters, compilerOptions: componentCompilerOptions } = Component; const finalCompilerOptions = extend$2( extend$2( { isCustomElement, delimiters }, compilerOptions ), componentCompilerOptions ); Component.render = compile$2(template, finalCompilerOptions); } } instance.render = Component.render || NOOP; if (installWithProxy) { installWithProxy(instance); } } { const reset = setCurrentInstance(instance); pauseTracking(); try { applyOptions(instance); } finally { resetTracking(); reset(); } } } const attrsProxyHandlers = { get(target, key) { track(target, "get", ""); return target[key]; } }; function createSetupContext(instance) { const expose = (exposed) => { instance.exposed = exposed || {}; }; { return { attrs: new Proxy(instance.attrs, attrsProxyHandlers), slots: instance.slots, emit: instance.emit, expose }; } } function getComponentPublicInstance(instance) { if (instance.exposed) { return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), { get(target, key) { if (key in target) { return target[key]; } else if (key in publicPropertiesMap) { return publicPropertiesMap[key](instance); } }, has(target, key) { return key in target || key in publicPropertiesMap; } })); } else { return instance.proxy; } } const classifyRE = /(?:^|[-_])(\w)/g; const classify = (str) => str.replace(classifyRE, (c2) => c2.toUpperCase()).replace(/[-_]/g, ""); function getComponentName(Component, includeInferred = true) { return isFunction$3(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name; } function formatComponentName(instance, Component, isRoot = false) { let name = getComponentName(Component); if (!name && Component.__file) { const match = Component.__file.match(/([^/\\]+)\.\w+$/); if (match) { name = match[1]; } } if (!name && instance && instance.parent) { const inferFromRegistry = (registry) => { for (const key in registry) { if (registry[key] === Component) { return key; } } }; name = inferFromRegistry( instance.components || instance.parent.type.components ) || inferFromRegistry(instance.appContext.components); } return name ? classify(name) : isRoot ? `App` : `Anonymous`; } function isClassComponent(value) { return isFunction$3(value) && "__vccOpts" in value; } const computed = (getterOrOptions, debugOptions) => { const c2 = computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup); return c2; }; function h(type, propsOrChildren, children) { const l = arguments.length; if (l === 2) { if (isObject$8(propsOrChildren) && !isArray$4(propsOrChildren)) { if (isVNode$1(propsOrChildren)) { return createVNode(type, null, [propsOrChildren]); } return createVNode(type, propsOrChildren); } else { return createVNode(type, null, propsOrChildren); } } else { if (l > 3) { children = Array.prototype.slice.call(arguments, 2); } else if (l === 3 && isVNode$1(children)) { children = [children]; } return createVNode(type, propsOrChildren, children); } } function initCustomFormatter() { { return; } } function withMemo(memo, render2, cache2, index2) { const cached = cache2[index2]; if (cached && isMemoSame(cached, memo)) { return cached; } const ret = render2(); ret.memo = memo.slice(); ret.cacheIndex = index2; return cache2[index2] = ret; } function isMemoSame(cached, memo) { const prev = cached.memo; if (prev.length != memo.length) { return false; } for (let i2 = 0; i2 < prev.length; i2++) { if (hasChanged(prev[i2], memo[i2])) { return false; } } if (isBlockTreeEnabled > 0 && currentBlock) { currentBlock.push(cached); } return true; } const version$1 = "3.5.13"; const warn$2 = NOOP; const ErrorTypeStrings = ErrorTypeStrings$1; const devtools$2 = devtools$1; const setDevtoolsHook = setDevtoolsHook$1; const _ssrUtils = { createComponentInstance, setupComponent, renderComponentRoot, setCurrentRenderingInstance, isVNode: isVNode$1, normalizeVNode, getComponentPublicInstance, ensureValidVNode, pushWarningContext, popWarningContext }; const ssrUtils = _ssrUtils; const resolveFilter = null; const compatUtils = null; const DeprecationTypes = null; /** * @vue/runtime-dom v3.5.13 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/ let policy = void 0; const tt = typeof window !== "undefined" && window.trustedTypes; if (tt) { try { policy = /* @__PURE__ */ tt.createPolicy("vue", { createHTML: (val) => val }); } catch (e2) { } } const unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) => val; const svgNS = "http://www.w3.org/2000/svg"; const mathmlNS = "http://www.w3.org/1998/Math/MathML"; const doc = typeof document !== "undefined" ? document : null; const templateContainer = doc && /* @__PURE__ */ doc.createElement("template"); const nodeOps = { insert: (child, parent, anchor) => { parent.insertBefore(child, anchor || null); }, remove: (child) => { const parent = child.parentNode; if (parent) { parent.removeChild(child); } }, createElement: (tag, namespace, is, props) => { const el = namespace === "svg" ? doc.createElementNS(svgNS, tag) : namespace === "mathml" ? doc.createElementNS(mathmlNS, tag) : is ? doc.createElement(tag, { is }) : doc.createElement(tag); if (tag === "select" && props && props.multiple != null) { el.setAttribute("multiple", props.multiple); } return el; }, createText: (text) => doc.createTextNode(text), createComment: (text) => doc.createComment(text), setText: (node, text) => { node.nodeValue = text; }, setElementText: (el, text) => { el.textContent = text; }, parentNode: (node) => node.parentNode, nextSibling: (node) => node.nextSibling, querySelector: (selector) => doc.querySelector(selector), setScopeId(el, id) { el.setAttribute(id, ""); }, insertStaticContent(content, parent, anchor, namespace, start, end) { const before = anchor ? anchor.previousSibling : parent.lastChild; if (start && (start === end || start.nextSibling)) { while (true) { parent.insertBefore(start.cloneNode(true), anchor); if (start === end || !(start = start.nextSibling)) break; } } else { templateContainer.innerHTML = unsafeToTrustedHTML( namespace === "svg" ? `${content}` : namespace === "mathml" ? `${content}` : content ); const template = templateContainer.content; if (namespace === "svg" || namespace === "mathml") { const wrapper = template.firstChild; while (wrapper.firstChild) { template.appendChild(wrapper.firstChild); } template.removeChild(wrapper); } parent.insertBefore(template, anchor); } return [ before ? before.nextSibling : parent.firstChild, anchor ? anchor.previousSibling : parent.lastChild ]; } }; const TRANSITION = "transition"; const ANIMATION = "animation"; const vtcKey = Symbol("_vtc"); const DOMTransitionPropsValidators = { name: String, type: String, css: { type: Boolean, default: true }, duration: [String, Number, Object], enterFromClass: String, enterActiveClass: String, enterToClass: String, appearFromClass: String, appearActiveClass: String, appearToClass: String, leaveFromClass: String, leaveActiveClass: String, leaveToClass: String }; const TransitionPropsValidators = /* @__PURE__ */ extend$2( {}, BaseTransitionPropsValidators, DOMTransitionPropsValidators ); const decorate$1 = (t2) => { t2.displayName = "Transition"; t2.props = TransitionPropsValidators; return t2; }; const Transition = /* @__PURE__ */ decorate$1( (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots) ); const callHook = (hook, args = []) => { if (isArray$4(hook)) { hook.forEach((h2) => h2(...args)); } else if (hook) { hook(...args); } }; const hasExplicitCallback = (hook) => { return hook ? isArray$4(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false; }; function resolveTransitionProps(rawProps) { const baseProps = {}; for (const key in rawProps) { if (!(key in DOMTransitionPropsValidators)) { baseProps[key] = rawProps[key]; } } if (rawProps.css === false) { return baseProps; } const { name = "v", type, duration, enterFromClass = `${name}-enter-from`, enterActiveClass = `${name}-enter-active`, enterToClass = `${name}-enter-to`, appearFromClass = enterFromClass, appearActiveClass = enterActiveClass, appearToClass = enterToClass, leaveFromClass = `${name}-leave-from`, leaveActiveClass = `${name}-leave-active`, leaveToClass = `${name}-leave-to` } = rawProps; const durations = normalizeDuration(duration); const enterDuration = durations && durations[0]; const leaveDuration = durations && durations[1]; const { onBeforeEnter, onEnter, onEnterCancelled, onLeave, onLeaveCancelled, onBeforeAppear = onBeforeEnter, onAppear = onEnter, onAppearCancelled = onEnterCancelled } = baseProps; const finishEnter = (el, isAppear, done, isCancelled) => { el._enterCancelled = isCancelled; removeTransitionClass(el, isAppear ? appearToClass : enterToClass); removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass); done && done(); }; const finishLeave = (el, done) => { el._isLeaving = false; removeTransitionClass(el, leaveFromClass); removeTransitionClass(el, leaveToClass); removeTransitionClass(el, leaveActiveClass); done && done(); }; const makeEnterHook = (isAppear) => { return (el, done) => { const hook = isAppear ? onAppear : onEnter; const resolve2 = () => finishEnter(el, isAppear, done); callHook(hook, [el, resolve2]); nextFrame(() => { removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass); addTransitionClass(el, isAppear ? appearToClass : enterToClass); if (!hasExplicitCallback(hook)) { whenTransitionEnds(el, type, enterDuration, resolve2); } }); }; }; return extend$2(baseProps, { onBeforeEnter(el) { callHook(onBeforeEnter, [el]); addTransitionClass(el, enterFromClass); addTransitionClass(el, enterActiveClass); }, onBeforeAppear(el) { callHook(onBeforeAppear, [el]); addTransitionClass(el, appearFromClass); addTransitionClass(el, appearActiveClass); }, onEnter: makeEnterHook(false), onAppear: makeEnterHook(true), onLeave(el, done) { el._isLeaving = true; const resolve2 = () => finishLeave(el, done); addTransitionClass(el, leaveFromClass); if (!el._enterCancelled) { forceReflow(); addTransitionClass(el, leaveActiveClass); } else { addTransitionClass(el, leaveActiveClass); forceReflow(); } nextFrame(() => { if (!el._isLeaving) { return; } removeTransitionClass(el, leaveFromClass); addTransitionClass(el, leaveToClass); if (!hasExplicitCallback(onLeave)) { whenTransitionEnds(el, type, leaveDuration, resolve2); } }); callHook(onLeave, [el, resolve2]); }, onEnterCancelled(el) { finishEnter(el, false, void 0, true); callHook(onEnterCancelled, [el]); }, onAppearCancelled(el) { finishEnter(el, true, void 0, true); callHook(onAppearCancelled, [el]); }, onLeaveCancelled(el) { finishLeave(el); callHook(onLeaveCancelled, [el]); } }); } function normalizeDuration(duration) { if (duration == null) { return null; } else if (isObject$8(duration)) { return [NumberOf(duration.enter), NumberOf(duration.leave)]; } else { const n2 = NumberOf(duration); return [n2, n2]; } } function NumberOf(val) { const res = toNumber(val); return res; } function addTransitionClass(el, cls) { cls.split(/\s+/).forEach((c2) => c2 && el.classList.add(c2)); (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls); } function removeTransitionClass(el, cls) { cls.split(/\s+/).forEach((c2) => c2 && el.classList.remove(c2)); const _vtc = el[vtcKey]; if (_vtc) { _vtc.delete(cls); if (!_vtc.size) { el[vtcKey] = void 0; } } } function nextFrame(cb) { requestAnimationFrame(() => { requestAnimationFrame(cb); }); } let endId = 0; function whenTransitionEnds(el, expectedType, explicitTimeout, resolve2) { const id = el._endId = ++endId; const resolveIfNotStale = () => { if (id === el._endId) { resolve2(); } }; if (explicitTimeout != null) { return setTimeout(resolveIfNotStale, explicitTimeout); } const { type, timeout, propCount } = getTransitionInfo(el, expectedType); if (!type) { return resolve2(); } const endEvent = type + "end"; let ended = 0; const end = () => { el.removeEventListener(endEvent, onEnd); resolveIfNotStale(); }; const onEnd = (e2) => { if (e2.target === el && ++ended >= propCount) { end(); } }; setTimeout(() => { if (ended < propCount) { end(); } }, timeout + 1); el.addEventListener(endEvent, onEnd); } function getTransitionInfo(el, expectedType) { const styles = window.getComputedStyle(el); const getStyleProperties = (key) => (styles[key] || "").split(", "); const transitionDelays = getStyleProperties(`${TRANSITION}Delay`); const transitionDurations = getStyleProperties(`${TRANSITION}Duration`); const transitionTimeout = getTimeout(transitionDelays, transitionDurations); const animationDelays = getStyleProperties(`${ANIMATION}Delay`); const animationDurations = getStyleProperties(`${ANIMATION}Duration`); const animationTimeout = getTimeout(animationDelays, animationDurations); let type = null; let timeout = 0; let propCount = 0; if (expectedType === TRANSITION) { if (transitionTimeout > 0) { type = TRANSITION; timeout = transitionTimeout; propCount = transitionDurations.length; } } else if (expectedType === ANIMATION) { if (animationTimeout > 0) { type = ANIMATION; timeout = animationTimeout; propCount = animationDurations.length; } } else { timeout = Math.max(transitionTimeout, animationTimeout); type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null; propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0; } const hasTransform = type === TRANSITION && /\b(transform|all)(,|$)/.test( getStyleProperties(`${TRANSITION}Property`).toString() ); return { type, timeout, propCount, hasTransform }; } function getTimeout(delays, durations) { while (delays.length < durations.length) { delays = delays.concat(delays); } return Math.max(...durations.map((d, i2) => toMs(d) + toMs(delays[i2]))); } function toMs(s) { if (s === "auto") return 0; return Number(s.slice(0, -1).replace(",", ".")) * 1e3; } function forceReflow() { return document.body.offsetHeight; } function patchClass(el, value, isSVG) { const transitionClasses = el[vtcKey]; if (transitionClasses) { value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" "); } if (value == null) { el.removeAttribute("class"); } else if (isSVG) { el.setAttribute("class", value); } else { el.className = value; } } const vShowOriginalDisplay = Symbol("_vod"); const vShowHidden = Symbol("_vsh"); const vShow = { beforeMount(el, { value }, { transition }) { el[vShowOriginalDisplay] = el.style.display === "none" ? "" : el.style.display; if (transition && value) { transition.beforeEnter(el); } else { setDisplay(el, value); } }, mounted(el, { value }, { transition }) { if (transition && value) { transition.enter(el); } }, updated(el, { value, oldValue }, { transition }) { if (!value === !oldValue) return; if (transition) { if (value) { transition.beforeEnter(el); setDisplay(el, true); transition.enter(el); } else { transition.leave(el, () => { setDisplay(el, false); }); } } else { setDisplay(el, value); } }, beforeUnmount(el, { value }) { setDisplay(el, value); } }; function setDisplay(el, value) { el.style.display = value ? el[vShowOriginalDisplay] : "none"; el[vShowHidden] = !value; } function initVShowForSSR() { vShow.getSSRProps = ({ value }) => { if (!value) { return { style: { display: "none" } }; } }; } const CSS_VAR_TEXT = Symbol(""); function useCssVars(getter) { const instance = getCurrentInstance(); if (!instance) { return; } const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => { Array.from( document.querySelectorAll(`[data-v-owner="${instance.uid}"]`) ).forEach((node) => setVarsOnNode(node, vars)); }; const setVars = () => { const vars = getter(instance.proxy); if (instance.ce) { setVarsOnNode(instance.ce, vars); } else { setVarsOnVNode(instance.subTree, vars); } updateTeleports(vars); }; onBeforeUpdate(() => { queuePostFlushCb(setVars); }); onMounted(() => { watch(setVars, NOOP, { flush: "post" }); const ob = new MutationObserver(setVars); ob.observe(instance.subTree.el.parentNode, { childList: true }); onUnmounted(() => ob.disconnect()); }); } function setVarsOnVNode(vnode, vars) { if (vnode.shapeFlag & 128) { const suspense = vnode.suspense; vnode = suspense.activeBranch; if (suspense.pendingBranch && !suspense.isHydrating) { suspense.effects.push(() => { setVarsOnVNode(suspense.activeBranch, vars); }); } } while (vnode.component) { vnode = vnode.component.subTree; } if (vnode.shapeFlag & 1 && vnode.el) { setVarsOnNode(vnode.el, vars); } else if (vnode.type === Fragment) { vnode.children.forEach((c2) => setVarsOnVNode(c2, vars)); } else if (vnode.type === Static) { let { el, anchor } = vnode; while (el) { setVarsOnNode(el, vars); if (el === anchor) break; el = el.nextSibling; } } } function setVarsOnNode(el, vars) { if (el.nodeType === 1) { const style = el.style; let cssText = ""; for (const key in vars) { style.setProperty(`--${key}`, vars[key]); cssText += `--${key}: ${vars[key]};`; } style[CSS_VAR_TEXT] = cssText; } } const displayRE = /(^|;)\s*display\s*:/; function patchStyle(el, prev, next) { const style = el.style; const isCssString = isString$6(next); let hasControlledDisplay = false; if (next && !isCssString) { if (prev) { if (!isString$6(prev)) { for (const key in prev) { if (next[key] == null) { setStyle(style, key, ""); } } } else { for (const prevStyle of prev.split(";")) { const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim(); if (next[key] == null) { setStyle(style, key, ""); } } } } for (const key in next) { if (key === "display") { hasControlledDisplay = true; } setStyle(style, key, next[key]); } } else { if (isCssString) { if (prev !== next) { const cssVarText = style[CSS_VAR_TEXT]; if (cssVarText) { next += ";" + cssVarText; } style.cssText = next; hasControlledDisplay = displayRE.test(next); } } else if (prev) { el.removeAttribute("style"); } } if (vShowOriginalDisplay in el) { el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : ""; if (el[vShowHidden]) { style.display = "none"; } } } const importantRE = /\s*!important$/; function setStyle(style, name, val) { if (isArray$4(val)) { val.forEach((v) => setStyle(style, name, v)); } else { if (val == null) val = ""; if (name.startsWith("--")) { style.setProperty(name, val); } else { const prefixed = autoPrefix(style, name); if (importantRE.test(val)) { style.setProperty( hyphenate(prefixed), val.replace(importantRE, ""), "important" ); } else { style[prefixed] = val; } } } } const prefixes = ["Webkit", "Moz", "ms"]; const prefixCache = {}; function autoPrefix(style, rawName) { const cached = prefixCache[rawName]; if (cached) { return cached; } let name = camelize(rawName); if (name !== "filter" && name in style) { return prefixCache[rawName] = name; } name = capitalize$1(name); for (let i2 = 0; i2 < prefixes.length; i2++) { const prefixed = prefixes[i2] + name; if (prefixed in style) { return prefixCache[rawName] = prefixed; } } return rawName; } const xlinkNS = "http://www.w3.org/1999/xlink"; function patchAttr(el, key, value, isSVG, instance, isBoolean2 = isSpecialBooleanAttr(key)) { if (isSVG && key.startsWith("xlink:")) { if (value == null) { el.removeAttributeNS(xlinkNS, key.slice(6, key.length)); } else { el.setAttributeNS(xlinkNS, key, value); } } else { if (value == null || isBoolean2 && !includeBooleanAttr(value)) { el.removeAttribute(key); } else { el.setAttribute( key, isBoolean2 ? "" : isSymbol(value) ? String(value) : value ); } } } function patchDOMProp(el, key, value, parentComponent, attrName) { if (key === "innerHTML" || key === "textContent") { if (value != null) { el[key] = key === "innerHTML" ? unsafeToTrustedHTML(value) : value; } return; } const tag = el.tagName; if (key === "value" && tag !== "PROGRESS" && !tag.includes("-")) { const oldValue = tag === "OPTION" ? el.getAttribute("value") || "" : el.value; const newValue = value == null ? el.type === "checkbox" ? "on" : "" : String(value); if (oldValue !== newValue || !("_value" in el)) { el.value = newValue; } if (value == null) { el.removeAttribute(key); } el._value = value; return; } let needRemove = false; if (value === "" || value == null) { const type = typeof el[key]; if (type === "boolean") { value = includeBooleanAttr(value); } else if (value == null && type === "string") { value = ""; needRemove = true; } else if (type === "number") { value = 0; needRemove = true; } } try { el[key] = value; } catch (e2) { } needRemove && el.removeAttribute(attrName || key); } function addEventListener(el, event, handler, options) { el.addEventListener(event, handler, options); } function removeEventListener(el, event, handler, options) { el.removeEventListener(event, handler, options); } const veiKey = Symbol("_vei"); function patchEvent(el, rawName, prevValue, nextValue, instance = null) { const invokers = el[veiKey] || (el[veiKey] = {}); const existingInvoker = invokers[rawName]; if (nextValue && existingInvoker) { existingInvoker.value = nextValue; } else { const [name, options] = parseName(rawName); if (nextValue) { const invoker = invokers[rawName] = createInvoker( nextValue, instance ); addEventListener(el, name, invoker, options); } else if (existingInvoker) { removeEventListener(el, name, existingInvoker, options); invokers[rawName] = void 0; } } } const optionsModifierRE = /(?:Once|Passive|Capture)$/; function parseName(name) { let options; if (optionsModifierRE.test(name)) { options = {}; let m; while (m = name.match(optionsModifierRE)) { name = name.slice(0, name.length - m[0].length); options[m[0].toLowerCase()] = true; } } const event = name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2)); return [event, options]; } let cachedNow = 0; const p = /* @__PURE__ */ Promise.resolve(); const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now()); function createInvoker(initialValue, instance) { const invoker = (e2) => { if (!e2._vts) { e2._vts = Date.now(); } else if (e2._vts <= invoker.attached) { return; } callWithAsyncErrorHandling( patchStopImmediatePropagation(e2, invoker.value), instance, 5, [e2] ); }; invoker.value = initialValue; invoker.attached = getNow(); return invoker; } function patchStopImmediatePropagation(e2, value) { if (isArray$4(value)) { const originalStop = e2.stopImmediatePropagation; e2.stopImmediatePropagation = () => { originalStop.call(e2); e2._stopped = true; }; return value.map( (fn) => (e22) => !e22._stopped && fn && fn(e22) ); } else { return value; } } const isNativeOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && key.charCodeAt(2) > 96 && key.charCodeAt(2) < 123; const patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) => { const isSVG = namespace === "svg"; if (key === "class") { patchClass(el, nextValue, isSVG); } else if (key === "style") { patchStyle(el, prevValue, nextValue); } else if (isOn(key)) { if (!isModelListener(key)) { patchEvent(el, key, prevValue, nextValue, parentComponent); } } else if (key[0] === "." ? (key = key.slice(1), true) : key[0] === "^" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) { patchDOMProp(el, key, nextValue); if (!el.tagName.includes("-") && (key === "value" || key === "checked" || key === "selected")) { patchAttr(el, key, nextValue, isSVG, parentComponent, key !== "value"); } } else if (el._isVueCE && (/[A-Z]/.test(key) || !isString$6(nextValue))) { patchDOMProp(el, camelize(key), nextValue, parentComponent, key); } else { if (key === "true-value") { el._trueValue = nextValue; } else if (key === "false-value") { el._falseValue = nextValue; } patchAttr(el, key, nextValue, isSVG); } }; function shouldSetAsProp(el, key, value, isSVG) { if (isSVG) { if (key === "innerHTML" || key === "textContent") { return true; } if (key in el && isNativeOn(key) && isFunction$3(value)) { return true; } return false; } if (key === "spellcheck" || key === "draggable" || key === "translate") { return false; } if (key === "form") { return false; } if (key === "list" && el.tagName === "INPUT") { return false; } if (key === "type" && el.tagName === "TEXTAREA") { return false; } if (key === "width" || key === "height") { const tag = el.tagName; if (tag === "IMG" || tag === "VIDEO" || tag === "CANVAS" || tag === "SOURCE") { return false; } } if (isNativeOn(key) && isString$6(value)) { return false; } return key in el; } const REMOVAL = {}; /*! #__NO_SIDE_EFFECTS__ */ function defineCustomElement(options, extraOptions, _createApp) { const Comp = defineComponent(options, extraOptions); if (isPlainObject$2(Comp)) extend$2(Comp, extraOptions); class VueCustomElement extends VueElement { constructor(initialProps) { super(Comp, initialProps, _createApp); } } VueCustomElement.def = Comp; return VueCustomElement; } /*! #__NO_SIDE_EFFECTS__ */ const defineSSRCustomElement = (options, extraOptions) => { return /* @__PURE__ */ defineCustomElement(options, extraOptions, createSSRApp); }; const BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class { }; class VueElement extends BaseClass { constructor(_def, _props = {}, _createApp = createApp) { super(); this._def = _def; this._props = _props; this._createApp = _createApp; this._isVueCE = true; this._instance = null; this._app = null; this._nonce = this._def.nonce; this._connected = false; this._resolved = false; this._numberProps = null; this._styleChildren = /* @__PURE__ */ new WeakSet(); this._ob = null; if (this.shadowRoot && _createApp !== createApp) { this._root = this.shadowRoot; } else { if (_def.shadowRoot !== false) { this.attachShadow({ mode: "open" }); this._root = this.shadowRoot; } else { this._root = this; } } if (!this._def.__asyncLoader) { this._resolveProps(this._def); } } connectedCallback() { if (!this.isConnected) return; if (!this.shadowRoot) { this._parseSlots(); } this._connected = true; let parent = this; while (parent = parent && (parent.parentNode || parent.host)) { if (parent instanceof VueElement) { this._parent = parent; break; } } if (!this._instance) { if (this._resolved) { this._setParent(); this._update(); } else { if (parent && parent._pendingResolve) { this._pendingResolve = parent._pendingResolve.then(() => { this._pendingResolve = void 0; this._resolveDef(); }); } else { this._resolveDef(); } } } } _setParent(parent = this._parent) { if (parent) { this._instance.parent = parent._instance; this._instance.provides = parent._instance.provides; } } disconnectedCallback() { this._connected = false; nextTick(() => { if (!this._connected) { if (this._ob) { this._ob.disconnect(); this._ob = null; } this._app && this._app.unmount(); if (this._instance) this._instance.ce = void 0; this._app = this._instance = null; } }); } _resolveDef() { if (this._pendingResolve) { return; } for (let i2 = 0; i2 < this.attributes.length; i2++) { this._setAttr(this.attributes[i2].name); } this._ob = new MutationObserver((mutations2) => { for (const m of mutations2) { this._setAttr(m.attributeName); } }); this._ob.observe(this, { attributes: true }); const resolve2 = (def2, isAsync = false) => { this._resolved = true; this._pendingResolve = void 0; const { props, styles } = def2; let numberProps; if (props && !isArray$4(props)) { for (const key in props) { const opt = props[key]; if (opt === Number || opt && opt.type === Number) { if (key in this._props) { this._props[key] = toNumber(this._props[key]); } (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[camelize(key)] = true; } } } this._numberProps = numberProps; if (isAsync) { this._resolveProps(def2); } if (this.shadowRoot) { this._applyStyles(styles); } this._mount(def2); }; const asyncDef = this._def.__asyncLoader; if (asyncDef) { this._pendingResolve = asyncDef().then( (def2) => resolve2(this._def = def2, true) ); } else { resolve2(this._def); } } _mount(def2) { this._app = this._createApp(def2); if (def2.configureApp) { def2.configureApp(this._app); } this._app._ceVNode = this._createVNode(); this._app.mount(this._root); const exposed = this._instance && this._instance.exposed; if (!exposed) return; for (const key in exposed) { if (!hasOwn$2(this, key)) { Object.defineProperty(this, key, { get: () => unref(exposed[key]) }); } } } _resolveProps(def2) { const { props } = def2; const declaredPropKeys = isArray$4(props) ? props : Object.keys(props || {}); for (const key of Object.keys(this)) { if (key[0] !== "_" && declaredPropKeys.includes(key)) { this._setProp(key, this[key]); } } for (const key of declaredPropKeys.map(camelize)) { Object.defineProperty(this, key, { get() { return this._getProp(key); }, set(val) { this._setProp(key, val, true, true); } }); } } _setAttr(key) { if (key.startsWith("data-v-")) return; const has = this.hasAttribute(key); let value = has ? this.getAttribute(key) : REMOVAL; const camelKey = camelize(key); if (has && this._numberProps && this._numberProps[camelKey]) { value = toNumber(value); } this._setProp(camelKey, value, false, true); } _getProp(key) { return this._props[key]; } _setProp(key, val, shouldReflect = true, shouldUpdate = false) { if (val !== this._props[key]) { if (val === REMOVAL) { delete this._props[key]; } else { this._props[key] = val; if (key === "key" && this._app) { this._app._ceVNode.key = val; } } if (shouldUpdate && this._instance) { this._update(); } if (shouldReflect) { const ob = this._ob; ob && ob.disconnect(); if (val === true) { this.setAttribute(hyphenate(key), ""); } else if (typeof val === "string" || typeof val === "number") { this.setAttribute(hyphenate(key), val + ""); } else if (!val) { this.removeAttribute(hyphenate(key)); } ob && ob.observe(this, { attributes: true }); } } } _update() { render(this._createVNode(), this._root); } _createVNode() { const baseProps = {}; if (!this.shadowRoot) { baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this); } const vnode = createVNode(this._def, extend$2(baseProps, this._props)); if (!this._instance) { vnode.ce = (instance) => { this._instance = instance; instance.ce = this; instance.isCE = true; const dispatch = (event, args) => { this.dispatchEvent( new CustomEvent( event, isPlainObject$2(args[0]) ? extend$2({ detail: args }, args[0]) : { detail: args } ) ); }; instance.emit = (event, ...args) => { dispatch(event, args); if (hyphenate(event) !== event) { dispatch(hyphenate(event), args); } }; this._setParent(); }; } return vnode; } _applyStyles(styles, owner) { if (!styles) return; if (owner) { if (owner === this._def || this._styleChildren.has(owner)) { return; } this._styleChildren.add(owner); } const nonce = this._nonce; for (let i2 = styles.length - 1; i2 >= 0; i2--) { const s = document.createElement("style"); if (nonce) s.setAttribute("nonce", nonce); s.textContent = styles[i2]; this.shadowRoot.prepend(s); } } _parseSlots() { const slots = this._slots = {}; let n2; while (n2 = this.firstChild) { const slotName = n2.nodeType === 1 && n2.getAttribute("slot") || "default"; (slots[slotName] || (slots[slotName] = [])).push(n2); this.removeChild(n2); } } _renderSlots() { const outlets = (this._teleportTarget || this).querySelectorAll("slot"); const scopeId = this._instance.type.__scopeId; for (let i2 = 0; i2 < outlets.length; i2++) { const o2 = outlets[i2]; const slotName = o2.getAttribute("name") || "default"; const content = this._slots[slotName]; const parent = o2.parentNode; if (content) { for (const n2 of content) { if (scopeId && n2.nodeType === 1) { const id = scopeId + "-s"; const walker = document.createTreeWalker(n2, 1); n2.setAttribute(id, ""); let child; while (child = walker.nextNode()) { child.setAttribute(id, ""); } } parent.insertBefore(n2, o2); } } else { while (o2.firstChild) parent.insertBefore(o2.firstChild, o2); } parent.removeChild(o2); } } _injectChildStyle(comp) { this._applyStyles(comp.styles, comp); } _removeChildStyle(comp) { } } function useHost(caller) { const instance = getCurrentInstance(); const el = instance && instance.ce; if (el) { return el; } return null; } function useShadowRoot() { const el = useHost(); return el && el.shadowRoot; } function useCssModule(name = "$style") { { const instance = getCurrentInstance(); if (!instance) { return EMPTY_OBJ; } const modules = instance.type.__cssModules; if (!modules) { return EMPTY_OBJ; } const mod2 = modules[name]; if (!mod2) { return EMPTY_OBJ; } return mod2; } } const positionMap = /* @__PURE__ */ new WeakMap(); const newPositionMap = /* @__PURE__ */ new WeakMap(); const moveCbKey = Symbol("_moveCb"); const enterCbKey = Symbol("_enterCb"); const decorate = (t2) => { delete t2.props.mode; return t2; }; const TransitionGroupImpl = /* @__PURE__ */ decorate({ name: "TransitionGroup", props: /* @__PURE__ */ extend$2({}, TransitionPropsValidators, { tag: String, moveClass: String }), setup(props, { slots }) { const instance = getCurrentInstance(); const state2 = useTransitionState(); let prevChildren; let children; onUpdated(() => { if (!prevChildren.length) { return; } const moveClass = props.moveClass || `${props.name || "v"}-move`; if (!hasCSSTransform( prevChildren[0].el, instance.vnode.el, moveClass )) { return; } prevChildren.forEach(callPendingCbs); prevChildren.forEach(recordPosition); const movedChildren = prevChildren.filter(applyTranslation); forceReflow(); movedChildren.forEach((c2) => { const el = c2.el; const style = el.style; addTransitionClass(el, moveClass); style.transform = style.webkitTransform = style.transitionDuration = ""; const cb = el[moveCbKey] = (e2) => { if (e2 && e2.target !== el) { return; } if (!e2 || /transform$/.test(e2.propertyName)) { el.removeEventListener("transitionend", cb); el[moveCbKey] = null; removeTransitionClass(el, moveClass); } }; el.addEventListener("transitionend", cb); }); }); return () => { const rawProps = toRaw(props); const cssTransitionProps = resolveTransitionProps(rawProps); let tag = rawProps.tag || Fragment; prevChildren = []; if (children) { for (let i2 = 0; i2 < children.length; i2++) { const child = children[i2]; if (child.el && child.el instanceof Element) { prevChildren.push(child); setTransitionHooks( child, resolveTransitionHooks( child, cssTransitionProps, state2, instance ) ); positionMap.set( child, child.el.getBoundingClientRect() ); } } } children = slots.default ? getTransitionRawChildren(slots.default()) : []; for (let i2 = 0; i2 < children.length; i2++) { const child = children[i2]; if (child.key != null) { setTransitionHooks( child, resolveTransitionHooks(child, cssTransitionProps, state2, instance) ); } } return createVNode(tag, null, children); }; } }); const TransitionGroup = TransitionGroupImpl; function callPendingCbs(c2) { const el = c2.el; if (el[moveCbKey]) { el[moveCbKey](); } if (el[enterCbKey]) { el[enterCbKey](); } } function recordPosition(c2) { newPositionMap.set(c2, c2.el.getBoundingClientRect()); } function applyTranslation(c2) { const oldPos = positionMap.get(c2); const newPos = newPositionMap.get(c2); const dx = oldPos.left - newPos.left; const dy = oldPos.top - newPos.top; if (dx || dy) { const s = c2.el.style; s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`; s.transitionDuration = "0s"; return c2; } } function hasCSSTransform(el, root2, moveClass) { const clone2 = el.cloneNode(); const _vtc = el[vtcKey]; if (_vtc) { _vtc.forEach((cls) => { cls.split(/\s+/).forEach((c2) => c2 && clone2.classList.remove(c2)); }); } moveClass.split(/\s+/).forEach((c2) => c2 && clone2.classList.add(c2)); clone2.style.display = "none"; const container = root2.nodeType === 1 ? root2 : root2.parentNode; container.appendChild(clone2); const { hasTransform } = getTransitionInfo(clone2); container.removeChild(clone2); return hasTransform; } const getModelAssigner = (vnode) => { const fn = vnode.props["onUpdate:modelValue"] || false; return isArray$4(fn) ? (value) => invokeArrayFns(fn, value) : fn; }; function onCompositionStart(e2) { e2.target.composing = true; } function onCompositionEnd(e2) { const target = e2.target; if (target.composing) { target.composing = false; target.dispatchEvent(new Event("input")); } } const assignKey = Symbol("_assign"); const vModelText = { created(el, { modifiers: { lazy, trim: trim2, number: number2 } }, vnode) { el[assignKey] = getModelAssigner(vnode); const castToNumber = number2 || vnode.props && vnode.props.type === "number"; addEventListener(el, lazy ? "change" : "input", (e2) => { if (e2.target.composing) return; let domValue = el.value; if (trim2) { domValue = domValue.trim(); } if (castToNumber) { domValue = looseToNumber(domValue); } el[assignKey](domValue); }); if (trim2) { addEventListener(el, "change", () => { el.value = el.value.trim(); }); } if (!lazy) { addEventListener(el, "compositionstart", onCompositionStart); addEventListener(el, "compositionend", onCompositionEnd); addEventListener(el, "change", onCompositionEnd); } }, mounted(el, { value }) { el.value = value == null ? "" : value; }, beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim: trim2, number: number2 } }, vnode) { el[assignKey] = getModelAssigner(vnode); if (el.composing) return; const elValue = (number2 || el.type === "number") && !/^0\d/.test(el.value) ? looseToNumber(el.value) : el.value; const newValue = value == null ? "" : value; if (elValue === newValue) { return; } if (document.activeElement === el && el.type !== "range") { if (lazy && value === oldValue) { return; } if (trim2 && el.value.trim() === newValue) { return; } } el.value = newValue; } }; const vModelCheckbox = { deep: true, created(el, _, vnode) { el[assignKey] = getModelAssigner(vnode); addEventListener(el, "change", () => { const modelValue = el._modelValue; const elementValue = getValue(el); const checked = el.checked; const assign2 = el[assignKey]; if (isArray$4(modelValue)) { const index2 = looseIndexOf(modelValue, elementValue); const found = index2 !== -1; if (checked && !found) { assign2(modelValue.concat(elementValue)); } else if (!checked && found) { const filtered = [...modelValue]; filtered.splice(index2, 1); assign2(filtered); } } else if (isSet(modelValue)) { const cloned = new Set(modelValue); if (checked) { cloned.add(elementValue); } else { cloned.delete(elementValue); } assign2(cloned); } else { assign2(getCheckboxValue(el, checked)); } }); }, mounted: setChecked, beforeUpdate(el, binding, vnode) { el[assignKey] = getModelAssigner(vnode); setChecked(el, binding, vnode); } }; function setChecked(el, { value, oldValue }, vnode) { el._modelValue = value; let checked; if (isArray$4(value)) { checked = looseIndexOf(value, vnode.props.value) > -1; } else if (isSet(value)) { checked = value.has(vnode.props.value); } else { if (value === oldValue) return; checked = looseEqual(value, getCheckboxValue(el, true)); } if (el.checked !== checked) { el.checked = checked; } } const vModelRadio = { created(el, { value }, vnode) { el.checked = looseEqual(value, vnode.props.value); el[assignKey] = getModelAssigner(vnode); addEventListener(el, "change", () => { el[assignKey](getValue(el)); }); }, beforeUpdate(el, { value, oldValue }, vnode) { el[assignKey] = getModelAssigner(vnode); if (value !== oldValue) { el.checked = looseEqual(value, vnode.props.value); } } }; const vModelSelect = { deep: true, created(el, { value, modifiers: { number: number2 } }, vnode) { const isSetModel = isSet(value); addEventListener(el, "change", () => { const selectedVal = Array.prototype.filter.call(el.options, (o2) => o2.selected).map( (o2) => number2 ? looseToNumber(getValue(o2)) : getValue(o2) ); el[assignKey]( el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0] ); el._assigning = true; nextTick(() => { el._assigning = false; }); }); el[assignKey] = getModelAssigner(vnode); }, mounted(el, { value }) { setSelected(el, value); }, beforeUpdate(el, _binding, vnode) { el[assignKey] = getModelAssigner(vnode); }, updated(el, { value }) { if (!el._assigning) { setSelected(el, value); } } }; function setSelected(el, value) { const isMultiple = el.multiple; const isArrayValue = isArray$4(value); if (isMultiple && !isArrayValue && !isSet(value)) { return; } for (let i2 = 0, l = el.options.length; i2 < l; i2++) { const option = el.options[i2]; const optionValue = getValue(option); if (isMultiple) { if (isArrayValue) { const optionType = typeof optionValue; if (optionType === "string" || optionType === "number") { option.selected = value.some((v) => String(v) === String(optionValue)); } else { option.selected = looseIndexOf(value, optionValue) > -1; } } else { option.selected = value.has(optionValue); } } else if (looseEqual(getValue(option), value)) { if (el.selectedIndex !== i2) el.selectedIndex = i2; return; } } if (!isMultiple && el.selectedIndex !== -1) { el.selectedIndex = -1; } } function getValue(el) { return "_value" in el ? el._value : el.value; } function getCheckboxValue(el, checked) { const key = checked ? "_trueValue" : "_falseValue"; return key in el ? el[key] : checked; } const vModelDynamic = { created(el, binding, vnode) { callModelHook(el, binding, vnode, null, "created"); }, mounted(el, binding, vnode) { callModelHook(el, binding, vnode, null, "mounted"); }, beforeUpdate(el, binding, vnode, prevVNode) { callModelHook(el, binding, vnode, prevVNode, "beforeUpdate"); }, updated(el, binding, vnode, prevVNode) { callModelHook(el, binding, vnode, prevVNode, "updated"); } }; function resolveDynamicModel(tagName, type) { switch (tagName) { case "SELECT": return vModelSelect; case "TEXTAREA": return vModelText; default: switch (type) { case "checkbox": return vModelCheckbox; case "radio": return vModelRadio; default: return vModelText; } } } function callModelHook(el, binding, vnode, prevVNode, hook) { const modelToUse = resolveDynamicModel( el.tagName, vnode.props && vnode.props.type ); const fn = modelToUse[hook]; fn && fn(el, binding, vnode, prevVNode); } function initVModelForSSR() { vModelText.getSSRProps = ({ value }) => ({ value }); vModelRadio.getSSRProps = ({ value }, vnode) => { if (vnode.props && looseEqual(vnode.props.value, value)) { return { checked: true }; } }; vModelCheckbox.getSSRProps = ({ value }, vnode) => { if (isArray$4(value)) { if (vnode.props && looseIndexOf(value, vnode.props.value) > -1) { return { checked: true }; } } else if (isSet(value)) { if (vnode.props && value.has(vnode.props.value)) { return { checked: true }; } } else if (value) { return { checked: true }; } }; vModelDynamic.getSSRProps = (binding, vnode) => { if (typeof vnode.type !== "string") { return; } const modelToUse = resolveDynamicModel( vnode.type.toUpperCase(), vnode.props && vnode.props.type ); if (modelToUse.getSSRProps) { return modelToUse.getSSRProps(binding, vnode); } }; } const systemModifiers = ["ctrl", "shift", "alt", "meta"]; const modifierGuards = { stop: (e2) => e2.stopPropagation(), prevent: (e2) => e2.preventDefault(), self: (e2) => e2.target !== e2.currentTarget, ctrl: (e2) => !e2.ctrlKey, shift: (e2) => !e2.shiftKey, alt: (e2) => !e2.altKey, meta: (e2) => !e2.metaKey, left: (e2) => "button" in e2 && e2.button !== 0, middle: (e2) => "button" in e2 && e2.button !== 1, right: (e2) => "button" in e2 && e2.button !== 2, exact: (e2, modifiers) => systemModifiers.some((m) => e2[`${m}Key`] && !modifiers.includes(m)) }; const withModifiers = (fn, modifiers) => { const cache2 = fn._withMods || (fn._withMods = {}); const cacheKey = modifiers.join("."); return cache2[cacheKey] || (cache2[cacheKey] = (event, ...args) => { for (let i2 = 0; i2 < modifiers.length; i2++) { const guard = modifierGuards[modifiers[i2]]; if (guard && guard(event, modifiers)) return; } return fn(event, ...args); }); }; const keyNames = { esc: "escape", space: " ", up: "arrow-up", left: "arrow-left", right: "arrow-right", down: "arrow-down", delete: "backspace" }; const withKeys = (fn, modifiers) => { const cache2 = fn._withKeys || (fn._withKeys = {}); const cacheKey = modifiers.join("."); return cache2[cacheKey] || (cache2[cacheKey] = (event) => { if (!("key" in event)) { return; } const eventKey = hyphenate(event.key); if (modifiers.some( (k) => k === eventKey || keyNames[k] === eventKey )) { return fn(event); } }); }; const rendererOptions = /* @__PURE__ */ extend$2({ patchProp }, nodeOps); let renderer; let enabledHydration = false; function ensureRenderer() { return renderer || (renderer = createRenderer(rendererOptions)); } function ensureHydrationRenderer() { renderer = enabledHydration ? renderer : createHydrationRenderer(rendererOptions); enabledHydration = true; return renderer; } const render = (...args) => { ensureRenderer().render(...args); }; const hydrate = (...args) => { ensureHydrationRenderer().hydrate(...args); }; const createApp = (...args) => { const app2 = ensureRenderer().createApp(...args); const { mount } = app2; app2.mount = (containerOrSelector) => { const container = normalizeContainer(containerOrSelector); if (!container) return; const component = app2._component; if (!isFunction$3(component) && !component.render && !component.template) { component.template = container.innerHTML; } if (container.nodeType === 1) { container.textContent = ""; } const proxy = mount(container, false, resolveRootNamespace(container)); if (container instanceof Element) { container.removeAttribute("v-cloak"); container.setAttribute("data-v-app", ""); } return proxy; }; return app2; }; const createSSRApp = (...args) => { const app2 = ensureHydrationRenderer().createApp(...args); const { mount } = app2; app2.mount = (containerOrSelector) => { const container = normalizeContainer(containerOrSelector); if (container) { return mount(container, true, resolveRootNamespace(container)); } }; return app2; }; function resolveRootNamespace(container) { if (container instanceof SVGElement) { return "svg"; } if (typeof MathMLElement === "function" && container instanceof MathMLElement) { return "mathml"; } } function normalizeContainer(container) { if (isString$6(container)) { const res = document.querySelector(container); return res; } return container; } let ssrDirectiveInitialized = false; const initDirectivesForSSR = () => { if (!ssrDirectiveInitialized) { ssrDirectiveInitialized = true; initVModelForSSR(); initVShowForSSR(); } }; /** * vue v3.5.13 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/ const compile$1 = () => { }; const vue_runtime_esmBundler = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, compile: compile$1, EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, onWatcherCleanup, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref, camelize, capitalize: capitalize$1, normalizeClass, normalizeProps, normalizeStyle, toDisplayString: toDisplayString$1, toHandlerKey, BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, Static, Suspense, Teleport, Text, assertNumber, callWithAsyncErrorHandling, callWithErrorHandling, cloneVNode, compatUtils, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode: createBaseVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSlots, createStaticVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSlots, devtools: devtools$2, getCurrentInstance, getTransitionRawChildren, guardReactiveProps, h, handleError: handleError$1, hasInjectionContext, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, inject, isMemoSame, isRuntimeOnly, isVNode: isVNode$1, mergeDefaults, mergeModels, mergeProps, nextTick, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, pushScopeId, queuePostFlushCb, registerRuntimeCompiler, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, ssrContextKey, ssrUtils, toHandlers, transformVNodeArgs, useAttrs, useId, useModel, useSSRContext, useSlots, useTemplateRef, useTransitionState, version: version$1, warn: warn$2, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withMemo, withScopeId, Transition, TransitionGroup, VueElement, createApp, createSSRApp, defineCustomElement, defineSSRCustomElement, hydrate, initDirectivesForSSR, render, useCssModule, useCssVars, useHost, useShadowRoot, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, withKeys, withModifiers }, Symbol.toStringTag, { value: "Module" })); function getDevtoolsGlobalHook() { return getTarget().__VUE_DEVTOOLS_GLOBAL_HOOK__; } function getTarget() { return typeof navigator !== "undefined" && typeof window !== "undefined" ? window : typeof globalThis !== "undefined" ? globalThis : {}; } const isProxyAvailable = typeof Proxy === "function"; const HOOK_SETUP = "devtools-plugin:setup"; const HOOK_PLUGIN_SETTINGS_SET = "plugin:settings:set"; let supported; let perf; function isPerformanceSupported() { var _a2; if (supported !== void 0) { return supported; } if (typeof window !== "undefined" && window.performance) { supported = true; perf = window.performance; } else if (typeof globalThis !== "undefined" && ((_a2 = globalThis.perf_hooks) === null || _a2 === void 0 ? void 0 : _a2.performance)) { supported = true; perf = globalThis.perf_hooks.performance; } else { supported = false; } return supported; } function now$2() { return isPerformanceSupported() ? perf.now() : Date.now(); } class ApiProxy { constructor(plugin, hook) { this.target = null; this.targetQueue = []; this.onQueue = []; this.plugin = plugin; this.hook = hook; const defaultSettings = {}; if (plugin.settings) { for (const id in plugin.settings) { const item = plugin.settings[id]; defaultSettings[id] = item.defaultValue; } } const localSettingsSaveId = `__vue-devtools-plugin-settings__${plugin.id}`; let currentSettings = Object.assign({}, defaultSettings); try { const raw = localStorage.getItem(localSettingsSaveId); const data2 = JSON.parse(raw); Object.assign(currentSettings, data2); } catch (e2) { } this.fallbacks = { getSettings() { return currentSettings; }, setSettings(value) { try { localStorage.setItem(localSettingsSaveId, JSON.stringify(value)); } catch (e2) { } currentSettings = value; }, now() { return now$2(); } }; if (hook) { hook.on(HOOK_PLUGIN_SETTINGS_SET, (pluginId, value) => { if (pluginId === this.plugin.id) { this.fallbacks.setSettings(value); } }); } this.proxiedOn = new Proxy({}, { get: (_target, prop) => { if (this.target) { return this.target.on[prop]; } else { return (...args) => { this.onQueue.push({ method: prop, args }); }; } } }); this.proxiedTarget = new Proxy({}, { get: (_target, prop) => { if (this.target) { return this.target[prop]; } else if (prop === "on") { return this.proxiedOn; } else if (Object.keys(this.fallbacks).includes(prop)) { return (...args) => { this.targetQueue.push({ method: prop, args, resolve: () => { } }); return this.fallbacks[prop](...args); }; } else { return (...args) => { return new Promise((resolve2) => { this.targetQueue.push({ method: prop, args, resolve: resolve2 }); }); }; } } }); } async setRealTarget(target) { this.target = target; for (const item of this.onQueue) { this.target.on[item.method](...item.args); } for (const item of this.targetQueue) { item.resolve(await this.target[item.method](...item.args)); } } } function setupDevtoolsPlugin(pluginDescriptor, setupFn) { const descriptor = pluginDescriptor; const target = getTarget(); const hook = getDevtoolsGlobalHook(); const enableProxy = isProxyAvailable && descriptor.enableEarlyProxy; if (hook && (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !enableProxy)) { hook.emit(HOOK_SETUP, pluginDescriptor, setupFn); } else { const proxy = enableProxy ? new ApiProxy(descriptor, hook) : null; const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || []; list.push({ pluginDescriptor: descriptor, setupFn, proxy }); if (proxy) { setupFn(proxy.proxiedTarget); } } } /*! * vuex v4.1.0 * (c) 2022 Evan You * @license MIT */ var storeKey = "store"; function useStore(key) { if (key === void 0) key = null; return inject(key !== null ? key : storeKey); } function forEachValue(obj, fn) { Object.keys(obj).forEach(function(key) { return fn(obj[key], key); }); } function isObject$7(obj) { return obj !== null && typeof obj === "object"; } function isPromise$1(val) { return val && typeof val.then === "function"; } function partial(fn, arg) { return function() { return fn(arg); }; } function genericSubscribe(fn, subs, options) { if (subs.indexOf(fn) < 0) { options && options.prepend ? subs.unshift(fn) : subs.push(fn); } return function() { var i2 = subs.indexOf(fn); if (i2 > -1) { subs.splice(i2, 1); } }; } function resetStore(store2, hot) { store2._actions = /* @__PURE__ */ Object.create(null); store2._mutations = /* @__PURE__ */ Object.create(null); store2._wrappedGetters = /* @__PURE__ */ Object.create(null); store2._modulesNamespaceMap = /* @__PURE__ */ Object.create(null); var state2 = store2.state; installModule(store2, state2, [], store2._modules.root, true); resetStoreState(store2, state2, hot); } function resetStoreState(store2, state2, hot) { var oldState = store2._state; var oldScope = store2._scope; store2.getters = {}; store2._makeLocalGettersCache = /* @__PURE__ */ Object.create(null); var wrappedGetters = store2._wrappedGetters; var computedObj = {}; var computedCache = {}; var scope = effectScope(true); scope.run(function() { forEachValue(wrappedGetters, function(fn, key) { computedObj[key] = partial(fn, store2); computedCache[key] = computed(function() { return computedObj[key](); }); Object.defineProperty(store2.getters, key, { get: function() { return computedCache[key].value; }, enumerable: true }); }); }); store2._state = reactive({ data: state2 }); store2._scope = scope; if (store2.strict) { enableStrictMode(store2); } if (oldState) { if (hot) { store2._withCommit(function() { oldState.data = null; }); } } if (oldScope) { oldScope.stop(); } } function installModule(store2, rootState, path, module2, hot) { var isRoot = !path.length; var namespace = store2._modules.getNamespace(path); if (module2.namespaced) { if (store2._modulesNamespaceMap[namespace] && false) { console.error("[vuex] duplicate namespace " + namespace + " for the namespaced module " + path.join("/")); } store2._modulesNamespaceMap[namespace] = module2; } if (!isRoot && !hot) { var parentState = getNestedState(rootState, path.slice(0, -1)); var moduleName = path[path.length - 1]; store2._withCommit(function() { parentState[moduleName] = module2.state; }); } var local = module2.context = makeLocalContext(store2, namespace, path); module2.forEachMutation(function(mutation, key) { var namespacedType = namespace + key; registerMutation(store2, namespacedType, mutation, local); }); module2.forEachAction(function(action, key) { var type = action.root ? key : namespace + key; var handler = action.handler || action; registerAction(store2, type, handler, local); }); module2.forEachGetter(function(getter, key) { var namespacedType = namespace + key; registerGetter(store2, namespacedType, getter, local); }); module2.forEachChild(function(child, key) { installModule(store2, rootState, path.concat(key), child, hot); }); } function makeLocalContext(store2, namespace, path) { var noNamespace = namespace === ""; var local = { dispatch: noNamespace ? store2.dispatch : function(_type, _payload, _options) { var args = unifyObjectStyle(_type, _payload, _options); var payload = args.payload; var options = args.options; var type = args.type; if (!options || !options.root) { type = namespace + type; } return store2.dispatch(type, payload); }, commit: noNamespace ? store2.commit : function(_type, _payload, _options) { var args = unifyObjectStyle(_type, _payload, _options); var payload = args.payload; var options = args.options; var type = args.type; if (!options || !options.root) { type = namespace + type; } store2.commit(type, payload, options); } }; Object.defineProperties(local, { getters: { get: noNamespace ? function() { return store2.getters; } : function() { return makeLocalGetters(store2, namespace); } }, state: { get: function() { return getNestedState(store2.state, path); } } }); return local; } function makeLocalGetters(store2, namespace) { if (!store2._makeLocalGettersCache[namespace]) { var gettersProxy = {}; var splitPos = namespace.length; Object.keys(store2.getters).forEach(function(type) { if (type.slice(0, splitPos) !== namespace) { return; } var localType = type.slice(splitPos); Object.defineProperty(gettersProxy, localType, { get: function() { return store2.getters[type]; }, enumerable: true }); }); store2._makeLocalGettersCache[namespace] = gettersProxy; } return store2._makeLocalGettersCache[namespace]; } function registerMutation(store2, type, handler, local) { var entry = store2._mutations[type] || (store2._mutations[type] = []); entry.push(function wrappedMutationHandler(payload) { handler.call(store2, local.state, payload); }); } function registerAction(store2, type, handler, local) { var entry = store2._actions[type] || (store2._actions[type] = []); entry.push(function wrappedActionHandler(payload) { var res = handler.call(store2, { dispatch: local.dispatch, commit: local.commit, getters: local.getters, state: local.state, rootGetters: store2.getters, rootState: store2.state }, payload); if (!isPromise$1(res)) { res = Promise.resolve(res); } if (store2._devtoolHook) { return res.catch(function(err) { store2._devtoolHook.emit("vuex:error", err); throw err; }); } else { return res; } }); } function registerGetter(store2, type, rawGetter, local) { if (store2._wrappedGetters[type]) { return; } store2._wrappedGetters[type] = function wrappedGetter(store3) { return rawGetter( local.state, local.getters, store3.state, store3.getters ); }; } function enableStrictMode(store2) { watch(function() { return store2._state.data; }, function() { }, { deep: true, flush: "sync" }); } function getNestedState(state2, path) { return path.reduce(function(state3, key) { return state3[key]; }, state2); } function unifyObjectStyle(type, payload, options) { if (isObject$7(type) && type.type) { options = payload; payload = type; type = type.type; } return { type, payload, options }; } var LABEL_VUEX_BINDINGS = "vuex bindings"; var MUTATIONS_LAYER_ID = "vuex:mutations"; var ACTIONS_LAYER_ID = "vuex:actions"; var INSPECTOR_ID = "vuex"; var actionId = 0; function addDevtools(app2, store2) { setupDevtoolsPlugin( { id: "org.vuejs.vuex", app: app2, label: "Vuex", homepage: "https://next.vuex.vuejs.org/", logo: "https://vuejs.org/images/icons/favicon-96x96.png", packageName: "vuex", componentStateTypes: [LABEL_VUEX_BINDINGS] }, function(api) { api.addTimelineLayer({ id: MUTATIONS_LAYER_ID, label: "Vuex Mutations", color: COLOR_LIME_500 }); api.addTimelineLayer({ id: ACTIONS_LAYER_ID, label: "Vuex Actions", color: COLOR_LIME_500 }); api.addInspector({ id: INSPECTOR_ID, label: "Vuex", icon: "storage", treeFilterPlaceholder: "Filter stores..." }); api.on.getInspectorTree(function(payload) { if (payload.app === app2 && payload.inspectorId === INSPECTOR_ID) { if (payload.filter) { var nodes = []; flattenStoreForInspectorTree(nodes, store2._modules.root, payload.filter, ""); payload.rootNodes = nodes; } else { payload.rootNodes = [ formatStoreForInspectorTree(store2._modules.root, "") ]; } } }); api.on.getInspectorState(function(payload) { if (payload.app === app2 && payload.inspectorId === INSPECTOR_ID) { var modulePath = payload.nodeId; makeLocalGetters(store2, modulePath); payload.state = formatStoreForInspectorState( getStoreModule(store2._modules, modulePath), modulePath === "root" ? store2.getters : store2._makeLocalGettersCache, modulePath ); } }); api.on.editInspectorState(function(payload) { if (payload.app === app2 && payload.inspectorId === INSPECTOR_ID) { var modulePath = payload.nodeId; var path = payload.path; if (modulePath !== "root") { path = modulePath.split("/").filter(Boolean).concat(path); } store2._withCommit(function() { payload.set(store2._state.data, path, payload.state.value); }); } }); store2.subscribe(function(mutation, state2) { var data2 = {}; if (mutation.payload) { data2.payload = mutation.payload; } data2.state = state2; api.notifyComponentUpdate(); api.sendInspectorTree(INSPECTOR_ID); api.sendInspectorState(INSPECTOR_ID); api.addTimelineEvent({ layerId: MUTATIONS_LAYER_ID, event: { time: Date.now(), title: mutation.type, data: data2 } }); }); store2.subscribeAction({ before: function(action, state2) { var data2 = {}; if (action.payload) { data2.payload = action.payload; } action._id = actionId++; action._time = Date.now(); data2.state = state2; api.addTimelineEvent({ layerId: ACTIONS_LAYER_ID, event: { time: action._time, title: action.type, groupId: action._id, subtitle: "start", data: data2 } }); }, after: function(action, state2) { var data2 = {}; var duration = Date.now() - action._time; data2.duration = { _custom: { type: "duration", display: duration + "ms", tooltip: "Action duration", value: duration } }; if (action.payload) { data2.payload = action.payload; } data2.state = state2; api.addTimelineEvent({ layerId: ACTIONS_LAYER_ID, event: { time: Date.now(), title: action.type, groupId: action._id, subtitle: "end", data: data2 } }); } }); } ); } var COLOR_LIME_500 = 8702998; var COLOR_DARK = 6710886; var COLOR_WHITE = 16777215; var TAG_NAMESPACED = { label: "namespaced", textColor: COLOR_WHITE, backgroundColor: COLOR_DARK }; function extractNameFromPath(path) { return path && path !== "root" ? path.split("/").slice(-2, -1)[0] : "Root"; } function formatStoreForInspectorTree(module2, path) { return { id: path || "root", label: extractNameFromPath(path), tags: module2.namespaced ? [TAG_NAMESPACED] : [], children: Object.keys(module2._children).map( function(moduleName) { return formatStoreForInspectorTree( module2._children[moduleName], path + moduleName + "/" ); } ) }; } function flattenStoreForInspectorTree(result2, module2, filter, path) { if (path.includes(filter)) { result2.push({ id: path || "root", label: path.endsWith("/") ? path.slice(0, path.length - 1) : path || "Root", tags: module2.namespaced ? [TAG_NAMESPACED] : [] }); } Object.keys(module2._children).forEach(function(moduleName) { flattenStoreForInspectorTree(result2, module2._children[moduleName], filter, path + moduleName + "/"); }); } function formatStoreForInspectorState(module2, getters2, path) { getters2 = path === "root" ? getters2 : getters2[path]; var gettersKeys = Object.keys(getters2); var storeState = { state: Object.keys(module2.state).map(function(key) { return { key, editable: true, value: module2.state[key] }; }) }; if (gettersKeys.length) { var tree = transformPathsToObjectTree(getters2); storeState.getters = Object.keys(tree).map(function(key) { return { key: key.endsWith("/") ? extractNameFromPath(key) : key, editable: false, value: canThrow(function() { return tree[key]; }) }; }); } return storeState; } function transformPathsToObjectTree(getters2) { var result2 = {}; Object.keys(getters2).forEach(function(key) { var path = key.split("/"); if (path.length > 1) { var target = result2; var leafKey = path.pop(); path.forEach(function(p2) { if (!target[p2]) { target[p2] = { _custom: { value: {}, display: p2, tooltip: "Module", abstract: true } }; } target = target[p2]._custom.value; }); target[leafKey] = canThrow(function() { return getters2[key]; }); } else { result2[key] = canThrow(function() { return getters2[key]; }); } }); return result2; } function getStoreModule(moduleMap, path) { var names = path.split("/").filter(function(n2) { return n2; }); return names.reduce( function(module2, moduleName, i2) { var child = module2[moduleName]; if (!child) { throw new Error('Missing module "' + moduleName + '" for path "' + path + '".'); } return i2 === names.length - 1 ? child : child._children; }, path === "root" ? moduleMap : moduleMap.root._children ); } function canThrow(cb) { try { return cb(); } catch (e2) { return e2; } } var Module = function Module2(rawModule, runtime) { this.runtime = runtime; this._children = /* @__PURE__ */ Object.create(null); this._rawModule = rawModule; var rawState = rawModule.state; this.state = (typeof rawState === "function" ? rawState() : rawState) || {}; }; var prototypeAccessors$1 = { namespaced: { configurable: true } }; prototypeAccessors$1.namespaced.get = function() { return !!this._rawModule.namespaced; }; Module.prototype.addChild = function addChild(key, module2) { this._children[key] = module2; }; Module.prototype.removeChild = function removeChild(key) { delete this._children[key]; }; Module.prototype.getChild = function getChild(key) { return this._children[key]; }; Module.prototype.hasChild = function hasChild(key) { return key in this._children; }; Module.prototype.update = function update2(rawModule) { this._rawModule.namespaced = rawModule.namespaced; if (rawModule.actions) { this._rawModule.actions = rawModule.actions; } if (rawModule.mutations) { this._rawModule.mutations = rawModule.mutations; } if (rawModule.getters) { this._rawModule.getters = rawModule.getters; } }; Module.prototype.forEachChild = function forEachChild(fn) { forEachValue(this._children, fn); }; Module.prototype.forEachGetter = function forEachGetter(fn) { if (this._rawModule.getters) { forEachValue(this._rawModule.getters, fn); } }; Module.prototype.forEachAction = function forEachAction(fn) { if (this._rawModule.actions) { forEachValue(this._rawModule.actions, fn); } }; Module.prototype.forEachMutation = function forEachMutation(fn) { if (this._rawModule.mutations) { forEachValue(this._rawModule.mutations, fn); } }; Object.defineProperties(Module.prototype, prototypeAccessors$1); var ModuleCollection = function ModuleCollection2(rawRootModule) { this.register([], rawRootModule, false); }; ModuleCollection.prototype.get = function get2(path) { return path.reduce(function(module2, key) { return module2.getChild(key); }, this.root); }; ModuleCollection.prototype.getNamespace = function getNamespace(path) { var module2 = this.root; return path.reduce(function(namespace, key) { module2 = module2.getChild(key); return namespace + (module2.namespaced ? key + "/" : ""); }, ""); }; ModuleCollection.prototype.update = function update$1(rawRootModule) { update([], this.root, rawRootModule); }; ModuleCollection.prototype.register = function register(path, rawModule, runtime) { var this$1$1 = this; if (runtime === void 0) runtime = true; var newModule = new Module(rawModule, runtime); if (path.length === 0) { this.root = newModule; } else { var parent = this.get(path.slice(0, -1)); parent.addChild(path[path.length - 1], newModule); } if (rawModule.modules) { forEachValue(rawModule.modules, function(rawChildModule, key) { this$1$1.register(path.concat(key), rawChildModule, runtime); }); } }; ModuleCollection.prototype.unregister = function unregister(path) { var parent = this.get(path.slice(0, -1)); var key = path[path.length - 1]; var child = parent.getChild(key); if (!child) { return; } if (!child.runtime) { return; } parent.removeChild(key); }; ModuleCollection.prototype.isRegistered = function isRegistered(path) { var parent = this.get(path.slice(0, -1)); var key = path[path.length - 1]; if (parent) { return parent.hasChild(key); } return false; }; function update(path, targetModule, newModule) { targetModule.update(newModule); if (newModule.modules) { for (var key in newModule.modules) { if (!targetModule.getChild(key)) { return; } update( path.concat(key), targetModule.getChild(key), newModule.modules[key] ); } } } function createStore(options) { return new Store(options); } var Store = function Store2(options) { var this$1$1 = this; if (options === void 0) options = {}; var plugins = options.plugins; if (plugins === void 0) plugins = []; var strict = options.strict; if (strict === void 0) strict = false; var devtools2 = options.devtools; this._committing = false; this._actions = /* @__PURE__ */ Object.create(null); this._actionSubscribers = []; this._mutations = /* @__PURE__ */ Object.create(null); this._wrappedGetters = /* @__PURE__ */ Object.create(null); this._modules = new ModuleCollection(options); this._modulesNamespaceMap = /* @__PURE__ */ Object.create(null); this._subscribers = []; this._makeLocalGettersCache = /* @__PURE__ */ Object.create(null); this._scope = null; this._devtools = devtools2; var store2 = this; var ref2 = this; var dispatch = ref2.dispatch; var commit = ref2.commit; this.dispatch = function boundDispatch(type, payload) { return dispatch.call(store2, type, payload); }; this.commit = function boundCommit(type, payload, options2) { return commit.call(store2, type, payload, options2); }; this.strict = strict; var state2 = this._modules.root.state; installModule(this, state2, [], this._modules.root); resetStoreState(this, state2); plugins.forEach(function(plugin) { return plugin(this$1$1); }); }; var prototypeAccessors = { state: { configurable: true } }; Store.prototype.install = function install(app2, injectKey) { app2.provide(injectKey || storeKey, this); app2.config.globalProperties.$store = this; var useDevtools = this._devtools !== void 0 ? this._devtools : false; if (useDevtools) { addDevtools(app2, this); } }; prototypeAccessors.state.get = function() { return this._state.data; }; prototypeAccessors.state.set = function(v) { }; Store.prototype.commit = function commit(_type, _payload, _options) { var this$1$1 = this; var ref2 = unifyObjectStyle(_type, _payload, _options); var type = ref2.type; var payload = ref2.payload; var mutation = { type, payload }; var entry = this._mutations[type]; if (!entry) { return; } this._withCommit(function() { entry.forEach(function commitIterator(handler) { handler(payload); }); }); this._subscribers.slice().forEach(function(sub) { return sub(mutation, this$1$1.state); }); }; Store.prototype.dispatch = function dispatch(_type, _payload) { var this$1$1 = this; var ref2 = unifyObjectStyle(_type, _payload); var type = ref2.type; var payload = ref2.payload; var action = { type, payload }; var entry = this._actions[type]; if (!entry) { return; } try { this._actionSubscribers.slice().filter(function(sub) { return sub.before; }).forEach(function(sub) { return sub.before(action, this$1$1.state); }); } catch (e2) { } var result2 = entry.length > 1 ? Promise.all(entry.map(function(handler) { return handler(payload); })) : entry[0](payload); return new Promise(function(resolve2, reject) { result2.then(function(res) { try { this$1$1._actionSubscribers.filter(function(sub) { return sub.after; }).forEach(function(sub) { return sub.after(action, this$1$1.state); }); } catch (e2) { } resolve2(res); }, function(error) { try { this$1$1._actionSubscribers.filter(function(sub) { return sub.error; }).forEach(function(sub) { return sub.error(action, this$1$1.state, error); }); } catch (e2) { } reject(error); }); }); }; Store.prototype.subscribe = function subscribe(fn, options) { return genericSubscribe(fn, this._subscribers, options); }; Store.prototype.subscribeAction = function subscribeAction(fn, options) { var subs = typeof fn === "function" ? { before: fn } : fn; return genericSubscribe(subs, this._actionSubscribers, options); }; Store.prototype.watch = function watch$12(getter, cb, options) { var this$1$1 = this; return watch(function() { return getter(this$1$1.state, this$1$1.getters); }, cb, Object.assign({}, options)); }; Store.prototype.replaceState = function replaceState(state2) { var this$1$1 = this; this._withCommit(function() { this$1$1._state.data = state2; }); }; Store.prototype.registerModule = function registerModule(path, rawModule, options) { if (options === void 0) options = {}; if (typeof path === "string") { path = [path]; } this._modules.register(path, rawModule); installModule(this, this.state, path, this._modules.get(path), options.preserveState); resetStoreState(this, this.state); }; Store.prototype.unregisterModule = function unregisterModule(path) { var this$1$1 = this; if (typeof path === "string") { path = [path]; } this._modules.unregister(path); this._withCommit(function() { var parentState = getNestedState(this$1$1.state, path.slice(0, -1)); delete parentState[path[path.length - 1]]; }); resetStore(this); }; Store.prototype.hasModule = function hasModule(path) { if (typeof path === "string") { path = [path]; } return this._modules.isRegistered(path); }; Store.prototype.hotUpdate = function hotUpdate(newOptions) { this._modules.update(newOptions); resetStore(this, true); }; Store.prototype._withCommit = function _withCommit(fn) { var committing = this._committing; this._committing = true; fn(); this._committing = committing; }; Object.defineProperties(Store.prototype, prototypeAccessors); var mapState = normalizeNamespace(function(namespace, states) { var res = {}; normalizeMap(states).forEach(function(ref2) { var key = ref2.key; var val = ref2.val; res[key] = function mappedState() { var state2 = this.$store.state; var getters2 = this.$store.getters; if (namespace) { var module2 = getModuleByNamespace(this.$store, "mapState", namespace); if (!module2) { return; } state2 = module2.context.state; getters2 = module2.context.getters; } return typeof val === "function" ? val.call(this, state2, getters2) : state2[val]; }; res[key].vuex = true; }); return res; }); var mapGetters = normalizeNamespace(function(namespace, getters2) { var res = {}; normalizeMap(getters2).forEach(function(ref2) { var key = ref2.key; var val = ref2.val; val = namespace + val; res[key] = function mappedGetter() { if (namespace && !getModuleByNamespace(this.$store, "mapGetters", namespace)) { return; } return this.$store.getters[val]; }; res[key].vuex = true; }); return res; }); function normalizeMap(map2) { if (!isValidMap(map2)) { return []; } return Array.isArray(map2) ? map2.map(function(key) { return { key, val: key }; }) : Object.keys(map2).map(function(key) { return { key, val: map2[key] }; }); } function isValidMap(map2) { return Array.isArray(map2) || isObject$7(map2); } function normalizeNamespace(fn) { return function(namespace, map2) { if (typeof namespace !== "string") { map2 = namespace; namespace = ""; } else if (namespace.charAt(namespace.length - 1) !== "/") { namespace += "/"; } return fn(namespace, map2); }; } function getModuleByNamespace(store2, helper, namespace) { var module2 = store2._modulesNamespaceMap[namespace]; return module2; } const exceptionApps = [ { uuid: "3if8lnn1l5bf1tae", name: "Dislicores", terms: "https://www.dislicores.com/politica-de-privacidad-de-datos" } ]; const getTermsException = (appUUID) => { return exceptionApps.find((app2) => app2.uuid === appUUID); }; const _sfc_main$j = defineComponent({ props: { closable: { default: false, type: Boolean }, value: { default: false, type: Boolean }, welcome: { default: false, type: Boolean } } }); const KSBottomMenu_vue_vue_type_style_index_0_lang = ""; const _export_sfc$1 = (sfc, props) => { const target = sfc.__vccOpts || sfc; for (const [key, val] of props) { target[key] = val; } return target; }; const _hoisted_1$i = { style: { "z-index": "10000000000", "box-shadow": "0px -15px 27px -5px rgb(0 0 0 / 44%)" } }; const _hoisted_2$h = { class: "kb-bottom-menu__header kb-fade-up-animation-head" }; const _hoisted_3$8 = { class: "kb-bottom-menu__title" }; const _hoisted_4$7 = { class: "kb-bottom-menu__body" }; function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) { return openBlock(), createBlock(Transition, { name: "slide-fade" }, { default: withCtx(() => [ _ctx.value ? (openBlock(), createElementBlock("div", { key: 0, class: "kb-bottom-menu", style: normalizeStyle({ height: _ctx.welcome ? "90%" : void 0 }) }, [ renderSlot(_ctx.$slots, "welcome"), createBaseVNode("div", _hoisted_1$i, [ createBaseVNode("div", _hoisted_2$h, [ createBaseVNode("div", _hoisted_3$8, [ renderSlot(_ctx.$slots, "title") ]), _cache[1] || (_cache[1] = createBaseVNode("div", { class: "kb-spacer" }, null, -1)), _ctx.closable ? (openBlock(), createElementBlock("span", { key: 0, class: "mdi mdi-close mdi-12px black kb-bottom-menu__close-button", onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("input", false)) })) : createCommentVNode("", true) ]), _cache[2] || (_cache[2] = createBaseVNode("div", { class: "kb-divider" }, null, -1)), createBaseVNode("div", _hoisted_4$7, [ renderSlot(_ctx.$slots, "body") ]), renderSlot(_ctx.$slots, "footer") ]) ], 4)) : createCommentVNode("", true) ]), _: 3 }); } const KSBottomMenu = /* @__PURE__ */ _export_sfc$1(_sfc_main$j, [["render", _sfc_render$d]]); const _hoisted_1$h = { class: "vb-checkbox__checker" }; const _hoisted_2$g = { class: "material-icons", style: { "color": "#000", "font-size": "16px" } }; const _sfc_main$i = /* @__PURE__ */ defineComponent({ __name: "VBCheckbox", props: ["label", "value"], emits: ["input"], setup(__props, { emit: __emit }) { const props = __props; const emits = __emit; const valueCheck = ref(props.value); function toggleValue() { valueCheck.value = !valueCheck.value; emits("input", valueCheck.value); } return (_ctx, _cache) => { return openBlock(), createElementBlock("div", { class: "vb-checkbox", onClick: _cache[0] || (_cache[0] = ($event) => toggleValue()) }, [ createBaseVNode("div", _hoisted_1$h, [ withDirectives(createBaseVNode("i", _hoisted_2$g, " check ", 512), [ [vShow, valueCheck.value] ]) ]), renderSlot(_ctx.$slots, "label") ]); }; } }); const VBCheckbox_vue_vue_type_style_index_0_lang = ""; const KBAuthForm_vue_vue_type_style_index_0_lang = ""; const _sfc_main$h = defineComponent({ components: { KSBottomMenu, VBCheckbox: _sfc_main$i }, computed: { ...mapGetters(["config", "localConfig", "showWorkingHoursAlert"]), ...mapState({ country: (state2) => state2.auth.country, appInfo: (state2) => state2.auth.appInfo }), showCustomFormTitle() { return this.showWorkingHoursAlert && this.config.schedule && this.config.schedule.customFormTitle; }, identificationTypes() { return [ { id: "passport", name: `${this.$t("passport")}` }, { id: "citizen_card", name: `${this.$t("citizen_card")}` }, { id: "identification_card", name: `${this.$t("identification_card")}` }, { id: "ssn", name: `${this.$t("ssn")}` }, { id: "nit", name: `${this.$t("nit")}` }, { id: "ein", name: `${this.$t("ein")}` } ]; } }, data: () => ({ city: "", email: "", loading: false, name: "", lastName: "", idDocument: "", phone: "", landlinePhone: "", termsAndConditions: false, autoDefaultCountry: true, identificationType: "", phonePicker: null, getTermsException }), methods: { login() { const emailPattern = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; const onlyNumbersPattern = /^[0-9]+$/; const regexOnlyLettersAndSpecialCharacters = /^[a-zA-ZÀ-ÿ\u00f1\u00d1 ]+(\s*[a-zA-ZÀ-ÿ\u00f1\u00d1 ]*)*[a-zA-ZÀ-ÿ\u00f1\u00d1 ]+$/g; const regex = /^[a-zA-ZÀ-ÿ\u00f1\u00d1]+(\s*[a-zA-ZÀ-ÿ\u00f1\u00d1]*)*[a-zA-ZÀ-ÿ\u00f1\u00d1]+$/g; const user = { email: this.email.trim(), name: this.name.trim(), lastName: this.lastName.trim(), phone: this.phone.trim(), city: this.city.trim(), identificationNumber: this.idDocument, identificationType: this.identificationType }; const extradata = [ { field: "Documento de Identidad", value: this.idDocument }, { field: "Tel\xE9fono Fijo", value: this.landlinePhone } ]; if (this.config.widgetWebSetup.formFields.includes("name")) { if (!this.name.trim()) return this.showError(this.$t("emptyName")); if (!regexOnlyLettersAndSpecialCharacters.test(this.name.trim())) return this.showError(this.$t("errorName")); } if (this.config.widgetWebSetup.formFields.includes("lastName")) { if (!this.lastName) return this.showError(this.$t("emptyLastName")); if (!regex.test(this.lastName.trim())) return this.showError(this.$t("errorLastName")); } if (this.config.widgetWebSetup.formFields.includes("email")) { if (!this.email) return this.showError(this.$t("emptyEmail")); if (!emailPattern.test(this.email.trim())) return this.showError(this.$t("errorEmail")); } if (this.config.widgetWebSetup.formFields.includes("phone")) { if (!this.phone) return this.showError(this.$t("emptyPhone")); this.phone = this.phone.trim().replaceAll(" ", ""); const phoneValidation = /^(\+\d{1,2}\s?)?1?-?\.?\s?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/; const validPhone = phoneValidation.test(this.phone); if (!validPhone) return this.showError(this.$t("emptyPhone")); } if (this.config.widgetWebSetup.formFields.includes("landlinePhone")) { if (!this.landlinePhone) return this.showError(this.$t("emptyLandlinePhone")); if (!onlyNumbersPattern.test(this.landlinePhone.trim())) return this.showError(this.$t("errorLandlinePhone")); } if (this.config.widgetWebSetup.formFields.includes("city")) { if (!this.city.trim()) return this.showError(this.$t("emptyCity")); } if (this.config.widgetWebSetup.formFields.includes("idDocument")) { if (!this.idDocument.trim()) return this.showError(this.$t("emptyIdDocument")); } if (this.config.widgetWebSetup.formFields.includes("identificationType")) { if (!this.identificationType) return this.showError(this.$t("emptyIdentificationType")); } if (!this.termsAndConditions) return this.showError(this.$t("emptyPolicy")); console.log("passed"); this.$store.commit("SET_USER", user); this.$store.commit("SET_EXTRADATA", extradata); this.$store.commit("SET_IS_LOGGED_IN", true); this.$store.commit("SET_SHOW_AUTH_FORM", false); }, showError(message) { this.$store.commit("SET_ERROR", { icon: "", message, show: true }); }, onPhoneChange(number2, phoneObject) { if (phoneObject == null ? void 0 : phoneObject.valid) { this.phone = phoneObject.number; } }, updateTermsAndConditions(terms) { this.termsAndConditions = terms; } }, props: ["value", "language"], watch: { termsAndConditions(value) { let aux; if (value) { aux = "accepted"; } else { aux = "rejected"; } this.$store.commit("SET_HABEASDATA", aux); } } }); const _hoisted_1$g = { class: "kb-fade-up-animation" }; const _hoisted_2$f = { class: "kb-auth-container kb-fade-up-animation" }; const _hoisted_3$7 = { disabled: "", selected: "", value: "" }; const _hoisted_4$6 = ["value"]; const _hoisted_5$5 = ["placeholder"]; const _hoisted_6$4 = ["placeholder"]; const _hoisted_7$4 = ["placeholder"]; const _hoisted_8$3 = ["placeholder"]; const _hoisted_9$3 = ["placeholder"]; const _hoisted_10$3 = ["placeholder"]; const _hoisted_11$3 = { style: { "z-index": "1" }, class: "terms-and-conditions-settings" }; const _hoisted_12$2 = { key: 0 }; const _hoisted_13$1 = ["href"]; const _hoisted_14$1 = { key: 0, style: { "line-height": "24px" } }; const _hoisted_15$1 = { key: 1, class: "mdi mdi-24px mdi-loading mdi-spin" }; const _hoisted_16$1 = ["href"]; const _hoisted_17$1 = { style: { "margin-left": "4px" } }; function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) { const _component_vue_tel_input = resolveComponent("vue-tel-input"); const _component_VBCheckbox = resolveComponent("VBCheckbox"); const _component_KSBottomMenu = resolveComponent("KSBottomMenu"); return _ctx.config.widgetWebSetup.formFields ? (openBlock(), createBlock(_component_KSBottomMenu, { key: 0, onInput: _cache[9] || (_cache[9] = ($event) => _ctx.$emit("input", false)), value: _ctx.value, welcome: _ctx.config.widgetWebSetup.welcomeForm && _ctx.config.widgetWebSetup.welcomeForm.hasOwnProperty("text") && _ctx.config.widgetWebSetup.welcomeForm.text !== "" }, { welcome: withCtx(() => { var _a2, _b; return [ _ctx.config.widgetWebSetup.welcomeForm && _ctx.config.widgetWebSetup.welcomeForm.hasOwnProperty("text") && _ctx.config.widgetWebSetup.welcomeForm.text !== "" ? (openBlock(), createElementBlock("div", { key: 0, class: "kb-welcome-container", style: normalizeStyle({ backgroundColor: (_b = (_a2 = _ctx.config) == null ? void 0 : _a2.widgetWebSetup) == null ? void 0 : _b.mainColor, justifyContent: _ctx.config.widgetWebSetup.welcomeForm.textAlign === "right" ? "flex-end" : _ctx.config.widgetWebSetup.welcomeForm.textAlign }) }, [ createBaseVNode("span", { class: "kb-welcome-text kb-fade-in-animation", style: normalizeStyle({ fontSize: _ctx.config.widgetWebSetup.welcomeForm.fontSize + "px" || "20px", color: _ctx.config.widgetWebSetup.welcomeForm.color || "black" }) }, [ createBaseVNode("p", null, toDisplayString$1(_ctx.config.widgetWebSetup.welcomeForm.text), 1) ], 4) ], 4)) : createCommentVNode("", true) ]; }), title: withCtx(() => [ createBaseVNode("span", _hoisted_1$g, toDisplayString$1(_ctx.showCustomFormTitle ? _ctx.config.schedule.customFormTitle : _ctx.$t("whoAreYou")), 1) ]), body: withCtx(() => { var _a2, _b; return [ createBaseVNode("div", _hoisted_2$f, [ createBaseVNode("div", null, [ _ctx.config.widgetWebSetup.formFields.includes("identificationType") ? withDirectives((openBlock(), createElementBlock("select", { key: 0, class: "kb-selector", "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.identificationType = $event) }, [ createBaseVNode("option", _hoisted_3$7, toDisplayString$1(_ctx.$t("identificationType")), 1), (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.identificationTypes, (type, index2) => { return openBlock(), createElementBlock("option", { value: type.id, key: `ID-Type-${index2}` }, toDisplayString$1(type.name), 9, _hoisted_4$6); }), 128)) ], 512)), [ [vModelSelect, _ctx.identificationType] ]) : createCommentVNode("", true), _ctx.config.widgetWebSetup.formFields.includes("idDocument") ? withDirectives((openBlock(), createElementBlock("input", { key: 1, class: "kb-input", placeholder: _ctx.$t("idDocument"), "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.idDocument = $event) }, null, 8, _hoisted_5$5)), [ [vModelText, _ctx.idDocument] ]) : createCommentVNode("", true), _ctx.config.widgetWebSetup.formFields.includes("name") ? withDirectives((openBlock(), createElementBlock("input", { key: 2, class: "kb-input", placeholder: _ctx.$t("name"), "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => _ctx.name = $event) }, null, 8, _hoisted_6$4)), [ [vModelText, _ctx.name] ]) : createCommentVNode("", true), _ctx.config.widgetWebSetup.formFields.includes("name") ? withDirectives((openBlock(), createElementBlock("input", { key: 3, class: "kb-input", placeholder: _ctx.$t("lastNames"), "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => _ctx.lastName = $event) }, null, 8, _hoisted_7$4)), [ [vModelText, _ctx.lastName] ]) : createCommentVNode("", true), _ctx.config.widgetWebSetup.formFields.includes("email") ? withDirectives((openBlock(), createElementBlock("input", { key: 4, class: "kb-input kb-mt2", placeholder: _ctx.$t("email"), "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => _ctx.email = $event) }, null, 8, _hoisted_8$3)), [ [vModelText, _ctx.email] ]) : createCommentVNode("", true), _ctx.config.widgetWebSetup.formFields.includes("phone") ? (openBlock(), createBlock(_component_vue_tel_input, { key: 5, modelValue: _ctx.phone, "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => _ctx.phone = $event), class: "kb-input kb-mt2 below", inputOptions: { placeholder: _ctx.$t("phone") }, onInput: _ctx.onPhoneChange, "default-country": _ctx.country }, null, 8, ["modelValue", "inputOptions", "onInput", "default-country"])) : createCommentVNode("", true), _ctx.config.widgetWebSetup.formFields.includes("landlinePhone") ? withDirectives((openBlock(), createElementBlock("input", { key: 6, class: "kb-input kb-mt2", placeholder: _ctx.$t("landlinePhone"), "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => _ctx.landlinePhone = $event) }, null, 8, _hoisted_9$3)), [ [vModelText, _ctx.landlinePhone] ]) : createCommentVNode("", true), _ctx.config.widgetWebSetup.formFields.includes("city") ? withDirectives((openBlock(), createElementBlock("input", { key: 7, class: "kb-input kb-mt2", placeholder: _ctx.$t("city"), "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => _ctx.city = $event) }, null, 8, _hoisted_10$3)), [ [vModelText, _ctx.city] ]) : createCommentVNode("", true), createVNode(_component_VBCheckbox, { class: "kb-mt2", style: { "z-index": "1 !important" }, value: _ctx.termsAndConditions, onInput: _ctx.updateTermsAndConditions }, { label: withCtx(() => { var _a3, _b2, _c, _d; return [ createBaseVNode("div", _hoisted_11$3, [ createTextVNode(toDisplayString$1(_ctx.$t("acceptTerms")) + " ", 1), createBaseVNode("a", { href: "https://keybe.ai/legales/", target: "_blank", style: normalizeStyle(`font-weight: bold; color: ${(_b2 = (_a3 = _ctx.config) == null ? void 0 : _a3.widgetWebSetup) == null ? void 0 : _b2.mainColor}`) }, "Keybe AI", 4), _cache[10] || (_cache[10] = createTextVNode()), _ctx.getTermsException(_ctx.appInfo.UUID) ? (openBlock(), createElementBlock("span", _hoisted_12$2, [ createTextVNode(toDisplayString$1(_ctx.$t("and")) + " ", 1), createBaseVNode("a", { href: _ctx.getTermsException(_ctx.appInfo.UUID).terms, target: "_blank", style: normalizeStyle(`font-weight: bold; color: ${(_d = (_c = _ctx.config) == null ? void 0 : _c.widgetWebSetup) == null ? void 0 : _d.mainColor}`) }, toDisplayString$1(_ctx.getTermsException(_ctx.appInfo.UUID).name), 13, _hoisted_13$1) ])) : createCommentVNode("", true) ]) ]; }), _: 1 }, 8, ["value", "onInput"]), createBaseVNode("button", { onClick: _cache[8] || (_cache[8] = ($event) => _ctx.login()), class: "kb-button kb-mt2 kb-font-weight-bold", style: normalizeStyle({ backgroundColor: ((_b = (_a2 = _ctx.config) == null ? void 0 : _a2.widgetWebSetup) == null ? void 0 : _b.mainColor) || "#3b3b3b", color: _ctx.config.widgetWebSetup.theme === "light" ? "black" : "white" }) }, [ !_ctx.loading ? (openBlock(), createElementBlock("span", _hoisted_14$1, toDisplayString$1(_ctx.$t("letsTalk")), 1)) : (openBlock(), createElementBlock("div", _hoisted_15$1)) ], 4), !_ctx.config.hidePoweredByKeybe ? (openBlock(), createElementBlock("a", { key: 8, class: "kb-powered-container-auth-form", href: _ctx.config.isCloudTask || _ctx.localConfig.isCloudTask ? "https://www.cloudtask.com/" : "https://keybe.ai/", target: "_blank" }, [ _cache[11] || (_cache[11] = createTextVNode(" Powered by ")), createBaseVNode("b", _hoisted_17$1, toDisplayString$1(_ctx.config.isCloudTask || _ctx.localConfig.isCloudTask ? "CL" : "KB"), 1) ], 8, _hoisted_16$1)) : createCommentVNode("", true) ]) ]) ]; }), _: 1 }, 8, ["value", "welcome"])) : createCommentVNode("", true); } const KBAuthForm = /* @__PURE__ */ _export_sfc$1(_sfc_main$h, [["render", _sfc_render$c]]); const KBCustomizedQuestions_vue_vue_type_style_index_0_lang = ""; const _sfc_main$g = defineComponent({ computed: { ...mapGetters(["appUUID", "companyUUID", "customizedQuestions"]) }, methods: { sendQuestion(question) { this.$store.dispatch("sendMessage", { text: question }); this.$store.commit("SET_SHOW_CUSTOMIZED_QUESTIONS", false); } } }); const _hoisted_1$f = { class: "kb-customized-question-container kb-my2" }; const _hoisted_2$e = { class: "kb-customized-question-title" }; const _hoisted_3$6 = ["onClick"]; function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) { return openBlock(), createElementBlock("div", _hoisted_1$f, [ createBaseVNode("div", _hoisted_2$e, toDisplayString$1(_ctx.$t("canIHelpYouWithSomething")), 1), (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.customizedQuestions, (question) => { return openBlock(), createElementBlock("span", { class: "kb-chip", onClick: ($event) => _ctx.sendQuestion(question), key: question }, toDisplayString$1(question), 9, _hoisted_3$6); }), 128)) ]); } const KBCustomizedQuestions = /* @__PURE__ */ _export_sfc$1(_sfc_main$g, [["render", _sfc_render$b]]); var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {}; function getDefaultExportFromCjs(x) { return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x; } function getAugmentedNamespace(n2) { var f = n2.default; if (typeof f == "function") { var a2 = function() { return f.apply(this, arguments); }; a2.prototype = f.prototype; } else a2 = {}; Object.defineProperty(a2, "__esModule", { value: true }); Object.keys(n2).forEach(function(k) { var d = Object.getOwnPropertyDescriptor(n2, k); Object.defineProperty(a2, k, d.get ? d : { enumerable: true, get: function() { return n2[k]; } }); }); return a2; } var emoji = { exports: {} }; (function(module2, exports2) { (function() { var root2 = this; var previous_emoji = root2.EmojiConvertor; var emoji2 = function() { var self2 = this; self2.img_set = "apple"; self2.img_sets = { "apple": { "path": "/emoji-data/img-apple-64/", "sheet": "/emoji-data/sheet_apple_64.png", "sheet_size": 64, "mask": 1 }, "google": { "path": "/emoji-data/img-google-64/", "sheet": "/emoji-data/sheet_google_64.png", "sheet_size": 64, "mask": 2 }, "twitter": { "path": "/emoji-data/img-twitter-64/", "sheet": "/emoji-data/sheet_twitter_64.png", "sheet_size": 64, "mask": 4 }, "facebook": { "path": "/emoji-data/img-facebook-64/", "sheet": "/emoji-data/sheet_facebook_64.png", "sheet_size": 64, "mask": 8 } }; self2.use_css_imgs = false; self2.colons_mode = false; self2.text_mode = false; self2.include_title = false; self2.include_text = false; self2.allow_native = true; self2.wrap_native = false; self2.use_sheet = false; self2.avoid_ms_emoji = true; self2.allow_caps = false; self2.img_suffix = ""; self2.inits = {}; self2.map = {}; self2.init_env(); return self2; }; emoji2.prototype.noConflict = function() { root2.EmojiConvertor = previous_emoji; return emoji2; }; emoji2.prototype.replace_emoticons = function(str) { var self2 = this; var colonized = self2.replace_emoticons_with_colons(str); return self2.replace_colons(colonized); }; emoji2.prototype.replace_emoticons_with_colons = function(str) { var self2 = this; self2.init_emoticons(); var _prev_offset = 0; var emoticons_with_parens = []; var str_replaced = str.replace(self2.rx_emoticons, function(m, $1, emoticon, offset2) { var prev_offset = _prev_offset; _prev_offset = offset2 + m.length; var has_open_paren = emoticon.indexOf("(") !== -1; var has_close_paren = emoticon.indexOf(")") !== -1; if ((has_open_paren || has_close_paren) && emoticons_with_parens.indexOf(emoticon) == -1) { emoticons_with_parens.push(emoticon); } if (has_close_paren && !has_open_paren) { var piece = str.substring(prev_offset, offset2); if (piece.indexOf("(") !== -1 && piece.indexOf(")") === -1) return m; } if (m === "\n8)") { var before_match = str.substring(0, offset2); if (/\n?(6\)|7\))/.test(before_match)) return m; } var val = self2.data[self2.map.emoticons[emoticon]][3][0]; return val ? $1 + ":" + val + ":" : m; }); if (emoticons_with_parens.length) { var escaped_emoticons = emoticons_with_parens.map(self2.escape_rx); var parenthetical_rx = new RegExp("(\\(.+)(" + escaped_emoticons.join("|") + ")(.+\\))", "g"); str_replaced = str_replaced.replace(parenthetical_rx, function(m, $1, emoticon, $2) { var val = self2.data[self2.map.emoticons[emoticon]][3][0]; return val ? $1 + ":" + val + ":" + $2 : m; }); } return str_replaced; }; emoji2.prototype.replace_colons = function(str) { var self2 = this; self2.init_colons(); return str.replace(self2.rx_colons, function(m) { var idx = m.substr(1, m.length - 2); if (self2.allow_caps) idx = idx.toLowerCase(); if (idx.indexOf("::skin-tone-") > -1) { var skin_tone = idx.substr(-1, 1); var skin_idx = "skin-tone-" + skin_tone; var skin_val = self2.map.colons[skin_idx]; idx = idx.substr(0, idx.length - 13); var val = self2.map.colons[idx]; if (val) { return self2.replacement(val, idx, ":", { "idx": skin_val, "actual": skin_idx, "wrapper": ":" }); } else { return ":" + idx + ":" + self2.replacement(skin_val, skin_idx, ":"); } } else { var val = self2.map.colons[idx]; return val ? self2.replacement(val, idx, ":") : m; } }); }; emoji2.prototype.replace_unified = function(str) { var self2 = this; self2.init_unified(); return str.replace(self2.rx_unified, function(m, p1, p2) { var val = self2.map.unified[p1]; if (val) { var idx = null; if (p2 == "\u{1F3FB}") idx = "1f3fb"; if (p2 == "\u{1F3FC}") idx = "1f3fc"; if (p2 == "\u{1F3FD}") idx = "1f3fd"; if (p2 == "\u{1F3FE}") idx = "1f3fe"; if (p2 == "\u{1F3FF}") idx = "1f3ff"; if (idx) { return self2.replacement(val, null, null, { idx, actual: p2, wrapper: "" }); } return self2.replacement(val); } val = self2.map.unified_vars[p1]; if (val) { return self2.replacement(val[0], null, null, { "idx": val[1], "actual": "", "wrapper": "" }); } return m; }); }; emoji2.prototype.addAliases = function(map2) { var self2 = this; self2.init_colons(); for (var i2 in map2) { self2.map.colons[i2] = map2[i2]; } }; emoji2.prototype.removeAliases = function(list) { var self2 = this; for (var i2 = 0; i2 < list.length; i2++) { var alias = list[i2]; delete self2.map.colons[alias]; finder_block: { for (var j in self2.data) { for (var k = 0; k < self2.data[j][3].length; k++) { if (alias == self2.data[j][3][k]) { self2.map.colons[alias] = j; break finder_block; } } } } } }; emoji2.prototype.replacement = function(idx, actual, wrapper, variation, is_extra) { var self2 = this; var extra = ""; var var_idx = null; if (typeof variation === "object") { extra = self2.replacement(variation.idx, variation.actual, variation.wrapper, void 0, true); var_idx = variation.idx; } wrapper = wrapper || ""; if (self2.colons_mode) return ":" + self2.data[idx][3][0] + ":" + extra; var text_name = actual ? wrapper + actual + wrapper : self2.data[idx][8] || wrapper + self2.data[idx][3][0] + wrapper; if (self2.text_mode) return text_name + extra; var img = self2.find_image(idx, var_idx); self2.init_env(); if (self2.replace_mode == "softbank" && self2.allow_native && self2.data[idx][1]) return self2.format_native(self2.data[idx][1] + extra, !is_extra); if (self2.replace_mode == "google" && self2.allow_native && self2.data[idx][2]) return self2.format_native(self2.data[idx][2] + extra, !is_extra); if (img.is_var) { extra = ""; } if (self2.replace_mode == "unified" && self2.allow_native) return self2.format_native(img.unified + extra, !is_extra); var title = self2.include_title ? ' title="' + (actual || self2.data[idx][3][0]) + '"' : ""; var text = self2.include_text ? wrapper + (actual || self2.data[idx][3][0]) + wrapper : ""; if (self2.data[idx][7]) { img.path = self2.data[idx][7]; img.px = null; img.py = null; img.is_var = false; } if (img.is_var && self2.include_text && variation && variation.actual && variation.wrapper) { text += variation.wrapper + variation.actual + variation.wrapper; } if (self2.replace_mode == "css") { if (self2.use_sheet && img.px != null && img.py != null) { var sheet_x = 100 * img.px / (self2.sheet_size - 1); var sheet_y = 100 * img.py / (self2.sheet_size - 1); var sheet_sz = 100 * self2.sheet_size; var style = "background: url(" + img.sheet + ");background-position:" + sheet_x + "% " + sheet_y + "%;background-size:" + sheet_sz + "% " + sheet_sz + "%"; return '' + text + "" + extra; } else if (self2.use_css_imgs) { return '' + text + "" + extra; } else { return '' + text + "" + extra; } } return '" + extra; }; emoji2.prototype.format_native = function(native2, allow_wrap) { var self2 = this; if (self2.wrap_native && allow_wrap) { return '' + native2 + ""; } return native2; }; emoji2.prototype.find_image = function(idx, var_idx) { var self2 = this; var out = { "path": "", "sheet": "", "sheet_size": 0, "px": self2.data[idx][4], "py": self2.data[idx][5], "full_idx": idx, "is_var": false, "unified": self2.data[idx][0][0] }; var use_mask = self2.data[idx][6]; if (var_idx && self2.variations_data[idx] && self2.variations_data[idx][var_idx]) { var var_data = self2.variations_data[idx][var_idx]; out.px = var_data[1]; out.py = var_data[2]; out.full_idx = var_data[0]; out.is_var = true; out.unified = var_data[4][0]; use_mask = var_data[3]; } var try_order = [self2.img_set, "apple", "google", "twitter", "facebook", "messenger"]; for (var j = 0; j < try_order.length; j++) { if (!self2.img_sets[try_order[j]]) { throw Error("Invalid value for img_set"); } if (use_mask & self2.img_sets[try_order[j]].mask) { out.path = self2.img_sets[try_order[j]].path + out.full_idx + ".png" + self2.img_suffix; out.sheet = self2.img_sets[self2.img_set].sheet; out.sheet_size = self2.img_sets[self2.img_set].sheet_size; return out; } if (self2.obsoletes_data[out.full_idx]) { var ob_data = self2.obsoletes_data[out.full_idx]; if (ob_data[3] & self2.img_sets[try_order[j]].mask) { out.path = self2.img_sets[try_order[j]].path + ob_data[0] + ".png" + self2.img_suffix; out.sheet = self2.img_sets[try_order[j]].sheet; out.sheet_size = self2.img_sets[try_order[j]].sheet_size; out.px = ob_data[1]; out.py = ob_data[2]; return out; } } } return out; }; emoji2.prototype.init_emoticons = function() { var self2 = this; if (self2.inits.emoticons) return; self2.init_colons(); self2.inits.emoticons = 1; var a2 = []; self2.map.emoticons = {}; for (var i2 in self2.emoticons_data) { var emoticon = i2.replace(/\&/g, "&").replace(/\/g, ">"); if (!self2.map.colons[self2.emoticons_data[i2]]) continue; self2.map.emoticons[emoticon] = self2.map.colons[self2.emoticons_data[i2]]; a2.push(self2.escape_rx(emoticon)); } self2.rx_emoticons = new RegExp("(^|\\s)(" + a2.join("|") + ")(?=$|[\\s|\\?\\.,!])", "g"); }; emoji2.prototype.init_colons = function() { var self2 = this; if (self2.inits.colons) return; self2.inits.colons = 1; self2.rx_colons = new RegExp(":[a-zA-Z0-9-_+]+:(:skin-tone-[2-6]:)?", "g"); self2.map.colons = {}; for (var i2 in self2.data) { for (var j = 0; j < self2.data[i2][3].length; j++) { self2.map.colons[self2.data[i2][3][j]] = i2; } } }; emoji2.prototype.init_unified = function() { var self2 = this; if (self2.inits.unified) return; self2.inits.unified = 1; var a2 = []; self2.map.unified = {}; self2.map.unified_vars = {}; for (var i2 in self2.data) { for (var j = 0; j < self2.data[i2][0].length; j++) { a2.push(self2.data[i2][0][j].replace("*", "\\*")); self2.map.unified[self2.data[i2][0][j]] = i2; } } for (var i2 in self2.variations_data) { if (self2.variations_data[i2]["1f3fb"]) { if (self2.variations_data[i2]["1f3fb"][0] == i2 + "-1f3fb") continue; } for (var k in self2.variations_data[i2]) { for (var j = 0; j < self2.variations_data[i2][k][4].length; j++) { a2.push(self2.variations_data[i2][k][4][j].replace("*", "\\*")); self2.map.unified_vars[self2.variations_data[i2][k][4][j]] = [i2, k]; } } } a2 = a2.sort(function(a3, b) { return b.length - a3.length; }); self2.rx_unified = new RegExp("(" + a2.join("|") + ")(\uD83C[\uDFFB-\uDFFF])?", "g"); }; emoji2.prototype.init_env = function() { var self2 = this; if (self2.inits.env) return; self2.inits.env = 1; self2.replace_mode = "img"; var supports_css = false; if (typeof navigator !== "undefined") { var ua = navigator.userAgent; if (typeof window !== "undefined" && window.getComputedStyle) { try { var st = window.getComputedStyle(document.body); if (st["background-size"] || st["backgroundSize"]) { supports_css = true; } } catch (e2) { if (ua.match(/Firefox/i)) { supports_css = true; } } } if (navigator.product.match(/ReactNative/i)) { self2.replace_mode = "unified"; return; } if (ua.match(/(iPhone|iPod|iPad|iPhone\s+Simulator)/i)) { if (ua.match(/OS\s+[12345]/i)) { self2.replace_mode = "softbank"; return; } if (ua.match(/OS\s+[6789]/i)) { self2.replace_mode = "unified"; return; } } if (ua.match(/Mac OS X (10[._ ](?:[789]|1)|11[._ ]\d)/i)) { self2.replace_mode = "unified"; return; } if (!self2.avoid_ms_emoji) { if (ua.match(/Windows NT 6.[1-9]/i) || ua.match(/Windows NT 10.[0-9]/i)) { if (!ua.match(/Chrome/i) && !ua.match(/MSIE 8/i)) { self2.replace_mode = "unified"; return; } } } } if (supports_css) { self2.replace_mode = "css"; return; } }; emoji2.prototype.escape_rx = function(text) { return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); }; emoji2.prototype.sheet_size = 61; emoji2.prototype.data = { "0023-fe0f-20e3": [["#\uFE0F\u20E3", "#\u20E3"], "\uE210", "\u{FE82C}", ["hash"], 0, 0, 7, 0], "002a-fe0f-20e3": [["*\uFE0F\u20E3", "*\u20E3"], "", "", ["keycap_star"], 0, 1, 7, 0], "0030-fe0f-20e3": [["0\uFE0F\u20E3", "0\u20E3"], "\uE225", "\u{FE837}", ["zero"], 0, 2, 7, 0], "0031-fe0f-20e3": [["1\uFE0F\u20E3", "1\u20E3"], "\uE21C", "\u{FE82E}", ["one"], 0, 3, 7, 0], "0032-fe0f-20e3": [["2\uFE0F\u20E3", "2\u20E3"], "\uE21D", "\u{FE82F}", ["two"], 0, 4, 7, 0], "0033-fe0f-20e3": [["3\uFE0F\u20E3", "3\u20E3"], "\uE21E", "\u{FE830}", ["three"], 0, 5, 7, 0], "0034-fe0f-20e3": [["4\uFE0F\u20E3", "4\u20E3"], "\uE21F", "\u{FE831}", ["four"], 0, 6, 7, 0], "0035-fe0f-20e3": [["5\uFE0F\u20E3", "5\u20E3"], "\uE220", "\u{FE832}", ["five"], 0, 7, 7, 0], "0036-fe0f-20e3": [["6\uFE0F\u20E3", "6\u20E3"], "\uE221", "\u{FE833}", ["six"], 0, 8, 7, 0], "0037-fe0f-20e3": [["7\uFE0F\u20E3", "7\u20E3"], "\uE222", "\u{FE834}", ["seven"], 0, 9, 7, 0], "0038-fe0f-20e3": [["8\uFE0F\u20E3", "8\u20E3"], "\uE223", "\u{FE835}", ["eight"], 0, 10, 7, 0], "0039-fe0f-20e3": [["9\uFE0F\u20E3", "9\u20E3"], "\uE224", "\u{FE836}", ["nine"], 0, 11, 7, 0], "00a9-fe0f": [["\xA9\uFE0F", "\xA9"], "\uE24E", "\u{FEB29}", ["copyright"], 0, 12, 7, 0], "00ae-fe0f": [["\xAE\uFE0F", "\xAE"], "\uE24F", "\u{FEB2D}", ["registered"], 0, 13, 7, 0], "1f004": [["\u{1F004}"], "\uE12D", "\u{FE80B}", ["mahjong"], 0, 14, 15, 0], "1f0cf": [["\u{1F0CF}"], "", "\u{FE812}", ["black_joker"], 0, 15, 15, 0], "1f170-fe0f": [["\u{1F170}\uFE0F", "\u{1F170}"], "\uE532", "\u{FE50B}", ["a"], 0, 16, 15, 0], "1f171-fe0f": [["\u{1F171}\uFE0F", "\u{1F171}"], "\uE533", "\u{FE50C}", ["b"], 0, 17, 15, 0], "1f17e-fe0f": [["\u{1F17E}\uFE0F", "\u{1F17E}"], "\uE535", "\u{FE50E}", ["o2"], 0, 18, 15, 0], "1f17f-fe0f": [["\u{1F17F}\uFE0F", "\u{1F17F}"], "\uE14F", "\u{FE7F6}", ["parking"], 0, 19, 15, 0], "1f18e": [["\u{1F18E}"], "\uE534", "\u{FE50D}", ["ab"], 0, 20, 15, 0], "1f191": [["\u{1F191}"], "", "\u{FEB84}", ["cl"], 0, 21, 15, 0], "1f192": [["\u{1F192}"], "\uE214", "\u{FEB38}", ["cool"], 0, 22, 15, 0], "1f193": [["\u{1F193}"], "", "\u{FEB21}", ["free"], 0, 23, 15, 0], "1f194": [["\u{1F194}"], "\uE229", "\u{FEB81}", ["id"], 0, 24, 15, 0], "1f195": [["\u{1F195}"], "\uE212", "\u{FEB36}", ["new"], 0, 25, 15, 0], "1f196": [["\u{1F196}"], "", "\u{FEB28}", ["ng"], 0, 26, 15, 0], "1f197": [["\u{1F197}"], "\uE24D", "\u{FEB27}", ["ok"], 0, 27, 15, 0], "1f198": [["\u{1F198}"], "", "\u{FEB4F}", ["sos"], 0, 28, 15, 0], "1f199": [["\u{1F199}"], "\uE213", "\u{FEB37}", ["up"], 0, 29, 15, 0], "1f19a": [["\u{1F19A}"], "\uE12E", "\u{FEB32}", ["vs"], 0, 30, 15, 0], "1f1e6-1f1e8": [["\u{1F1E6}\u{1F1E8}"], "", "", ["flag-ac"], 0, 31, 15, 0], "1f1e6-1f1e9": [["\u{1F1E6}\u{1F1E9}"], "", "", ["flag-ad"], 0, 32, 15, 0], "1f1e6-1f1ea": [["\u{1F1E6}\u{1F1EA}"], "", "", ["flag-ae"], 0, 33, 15, 0], "1f1e6-1f1eb": [["\u{1F1E6}\u{1F1EB}"], "", "", ["flag-af"], 0, 34, 15, 0], "1f1e6-1f1ec": [["\u{1F1E6}\u{1F1EC}"], "", "", ["flag-ag"], 0, 35, 15, 0], "1f1e6-1f1ee": [["\u{1F1E6}\u{1F1EE}"], "", "", ["flag-ai"], 0, 36, 15, 0], "1f1e6-1f1f1": [["\u{1F1E6}\u{1F1F1}"], "", "", ["flag-al"], 0, 37, 15, 0], "1f1e6-1f1f2": [["\u{1F1E6}\u{1F1F2}"], "", "", ["flag-am"], 0, 38, 15, 0], "1f1e6-1f1f4": [["\u{1F1E6}\u{1F1F4}"], "", "", ["flag-ao"], 0, 39, 15, 0], "1f1e6-1f1f6": [["\u{1F1E6}\u{1F1F6}"], "", "", ["flag-aq"], 0, 40, 15, 0], "1f1e6-1f1f7": [["\u{1F1E6}\u{1F1F7}"], "", "", ["flag-ar"], 0, 41, 15, 0], "1f1e6-1f1f8": [["\u{1F1E6}\u{1F1F8}"], "", "", ["flag-as"], 0, 42, 15, 0], "1f1e6-1f1f9": [["\u{1F1E6}\u{1F1F9}"], "", "", ["flag-at"], 0, 43, 15, 0], "1f1e6-1f1fa": [["\u{1F1E6}\u{1F1FA}"], "", "", ["flag-au"], 0, 44, 15, 0], "1f1e6-1f1fc": [["\u{1F1E6}\u{1F1FC}"], "", "", ["flag-aw"], 0, 45, 15, 0], "1f1e6-1f1fd": [["\u{1F1E6}\u{1F1FD}"], "", "", ["flag-ax"], 0, 46, 15, 0], "1f1e6-1f1ff": [["\u{1F1E6}\u{1F1FF}"], "", "", ["flag-az"], 0, 47, 15, 0], "1f1e7-1f1e6": [["\u{1F1E7}\u{1F1E6}"], "", "", ["flag-ba"], 0, 48, 15, 0], "1f1e7-1f1e7": [["\u{1F1E7}\u{1F1E7}"], "", "", ["flag-bb"], 0, 49, 15, 0], "1f1e7-1f1e9": [["\u{1F1E7}\u{1F1E9}"], "", "", ["flag-bd"], 0, 50, 15, 0], "1f1e7-1f1ea": [["\u{1F1E7}\u{1F1EA}"], "", "", ["flag-be"], 0, 51, 15, 0], "1f1e7-1f1eb": [["\u{1F1E7}\u{1F1EB}"], "", "", ["flag-bf"], 0, 52, 15, 0], "1f1e7-1f1ec": [["\u{1F1E7}\u{1F1EC}"], "", "", ["flag-bg"], 0, 53, 15, 0], "1f1e7-1f1ed": [["\u{1F1E7}\u{1F1ED}"], "", "", ["flag-bh"], 0, 54, 15, 0], "1f1e7-1f1ee": [["\u{1F1E7}\u{1F1EE}"], "", "", ["flag-bi"], 0, 55, 15, 0], "1f1e7-1f1ef": [["\u{1F1E7}\u{1F1EF}"], "", "", ["flag-bj"], 0, 56, 15, 0], "1f1e7-1f1f1": [["\u{1F1E7}\u{1F1F1}"], "", "", ["flag-bl"], 0, 57, 15, 0], "1f1e7-1f1f2": [["\u{1F1E7}\u{1F1F2}"], "", "", ["flag-bm"], 0, 58, 15, 0], "1f1e7-1f1f3": [["\u{1F1E7}\u{1F1F3}"], "", "", ["flag-bn"], 0, 59, 15, 0], "1f1e7-1f1f4": [["\u{1F1E7}\u{1F1F4}"], "", "", ["flag-bo"], 0, 60, 15, 0], "1f1e7-1f1f6": [["\u{1F1E7}\u{1F1F6}"], "", "", ["flag-bq"], 1, 0, 15, 0], "1f1e7-1f1f7": [["\u{1F1E7}\u{1F1F7}"], "", "", ["flag-br"], 1, 1, 15, 0], "1f1e7-1f1f8": [["\u{1F1E7}\u{1F1F8}"], "", "", ["flag-bs"], 1, 2, 15, 0], "1f1e7-1f1f9": [["\u{1F1E7}\u{1F1F9}"], "", "", ["flag-bt"], 1, 3, 15, 0], "1f1e7-1f1fb": [["\u{1F1E7}\u{1F1FB}"], "", "", ["flag-bv"], 1, 4, 15, 0], "1f1e7-1f1fc": [["\u{1F1E7}\u{1F1FC}"], "", "", ["flag-bw"], 1, 5, 15, 0], "1f1e7-1f1fe": [["\u{1F1E7}\u{1F1FE}"], "", "", ["flag-by"], 1, 6, 15, 0], "1f1e7-1f1ff": [["\u{1F1E7}\u{1F1FF}"], "", "", ["flag-bz"], 1, 7, 15, 0], "1f1e8-1f1e6": [["\u{1F1E8}\u{1F1E6}"], "", "", ["flag-ca"], 1, 8, 15, 0], "1f1e8-1f1e8": [["\u{1F1E8}\u{1F1E8}"], "", "", ["flag-cc"], 1, 9, 15, 0], "1f1e8-1f1e9": [["\u{1F1E8}\u{1F1E9}"], "", "", ["flag-cd"], 1, 10, 15, 0], "1f1e8-1f1eb": [["\u{1F1E8}\u{1F1EB}"], "", "", ["flag-cf"], 1, 11, 15, 0], "1f1e8-1f1ec": [["\u{1F1E8}\u{1F1EC}"], "", "", ["flag-cg"], 1, 12, 15, 0], "1f1e8-1f1ed": [["\u{1F1E8}\u{1F1ED}"], "", "", ["flag-ch"], 1, 13, 15, 0], "1f1e8-1f1ee": [["\u{1F1E8}\u{1F1EE}"], "", "", ["flag-ci"], 1, 14, 15, 0], "1f1e8-1f1f0": [["\u{1F1E8}\u{1F1F0}"], "", "", ["flag-ck"], 1, 15, 15, 0], "1f1e8-1f1f1": [["\u{1F1E8}\u{1F1F1}"], "", "", ["flag-cl"], 1, 16, 15, 0], "1f1e8-1f1f2": [["\u{1F1E8}\u{1F1F2}"], "", "", ["flag-cm"], 1, 17, 15, 0], "1f1e8-1f1f3": [["\u{1F1E8}\u{1F1F3}"], "\uE513", "\u{FE4ED}", ["cn", "flag-cn"], 1, 18, 15, 0], "1f1e8-1f1f4": [["\u{1F1E8}\u{1F1F4}"], "", "", ["flag-co"], 1, 19, 15, 0], "1f1e8-1f1f5": [["\u{1F1E8}\u{1F1F5}"], "", "", ["flag-cp"], 1, 20, 15, 0], "1f1e8-1f1f7": [["\u{1F1E8}\u{1F1F7}"], "", "", ["flag-cr"], 1, 21, 15, 0], "1f1e8-1f1fa": [["\u{1F1E8}\u{1F1FA}"], "", "", ["flag-cu"], 1, 22, 15, 0], "1f1e8-1f1fb": [["\u{1F1E8}\u{1F1FB}"], "", "", ["flag-cv"], 1, 23, 15, 0], "1f1e8-1f1fc": [["\u{1F1E8}\u{1F1FC}"], "", "", ["flag-cw"], 1, 24, 15, 0], "1f1e8-1f1fd": [["\u{1F1E8}\u{1F1FD}"], "", "", ["flag-cx"], 1, 25, 15, 0], "1f1e8-1f1fe": [["\u{1F1E8}\u{1F1FE}"], "", "", ["flag-cy"], 1, 26, 15, 0], "1f1e8-1f1ff": [["\u{1F1E8}\u{1F1FF}"], "", "", ["flag-cz"], 1, 27, 15, 0], "1f1e9-1f1ea": [["\u{1F1E9}\u{1F1EA}"], "\uE50E", "\u{FE4E8}", ["de", "flag-de"], 1, 28, 15, 0], "1f1e9-1f1ec": [["\u{1F1E9}\u{1F1EC}"], "", "", ["flag-dg"], 1, 29, 15, 0], "1f1e9-1f1ef": [["\u{1F1E9}\u{1F1EF}"], "", "", ["flag-dj"], 1, 30, 15, 0], "1f1e9-1f1f0": [["\u{1F1E9}\u{1F1F0}"], "", "", ["flag-dk"], 1, 31, 15, 0], "1f1e9-1f1f2": [["\u{1F1E9}\u{1F1F2}"], "", "", ["flag-dm"], 1, 32, 15, 0], "1f1e9-1f1f4": [["\u{1F1E9}\u{1F1F4}"], "", "", ["flag-do"], 1, 33, 15, 0], "1f1e9-1f1ff": [["\u{1F1E9}\u{1F1FF}"], "", "", ["flag-dz"], 1, 34, 15, 0], "1f1ea-1f1e6": [["\u{1F1EA}\u{1F1E6}"], "", "", ["flag-ea"], 1, 35, 15, 0], "1f1ea-1f1e8": [["\u{1F1EA}\u{1F1E8}"], "", "", ["flag-ec"], 1, 36, 15, 0], "1f1ea-1f1ea": [["\u{1F1EA}\u{1F1EA}"], "", "", ["flag-ee"], 1, 37, 15, 0], "1f1ea-1f1ec": [["\u{1F1EA}\u{1F1EC}"], "", "", ["flag-eg"], 1, 38, 15, 0], "1f1ea-1f1ed": [["\u{1F1EA}\u{1F1ED}"], "", "", ["flag-eh"], 1, 39, 15, 0], "1f1ea-1f1f7": [["\u{1F1EA}\u{1F1F7}"], "", "", ["flag-er"], 1, 40, 15, 0], "1f1ea-1f1f8": [["\u{1F1EA}\u{1F1F8}"], "\uE511", "\u{FE4EB}", ["es", "flag-es"], 1, 41, 15, 0], "1f1ea-1f1f9": [["\u{1F1EA}\u{1F1F9}"], "", "", ["flag-et"], 1, 42, 15, 0], "1f1ea-1f1fa": [["\u{1F1EA}\u{1F1FA}"], "", "", ["flag-eu"], 1, 43, 15, 0], "1f1eb-1f1ee": [["\u{1F1EB}\u{1F1EE}"], "", "", ["flag-fi"], 1, 44, 15, 0], "1f1eb-1f1ef": [["\u{1F1EB}\u{1F1EF}"], "", "", ["flag-fj"], 1, 45, 15, 0], "1f1eb-1f1f0": [["\u{1F1EB}\u{1F1F0}"], "", "", ["flag-fk"], 1, 46, 15, 0], "1f1eb-1f1f2": [["\u{1F1EB}\u{1F1F2}"], "", "", ["flag-fm"], 1, 47, 15, 0], "1f1eb-1f1f4": [["\u{1F1EB}\u{1F1F4}"], "", "", ["flag-fo"], 1, 48, 15, 0], "1f1eb-1f1f7": [["\u{1F1EB}\u{1F1F7}"], "\uE50D", "\u{FE4E7}", ["fr", "flag-fr"], 1, 49, 15, 0], "1f1ec-1f1e6": [["\u{1F1EC}\u{1F1E6}"], "", "", ["flag-ga"], 1, 50, 15, 0], "1f1ec-1f1e7": [["\u{1F1EC}\u{1F1E7}"], "\uE510", "\u{FE4EA}", ["gb", "uk", "flag-gb"], 1, 51, 15, 0], "1f1ec-1f1e9": [["\u{1F1EC}\u{1F1E9}"], "", "", ["flag-gd"], 1, 52, 15, 0], "1f1ec-1f1ea": [["\u{1F1EC}\u{1F1EA}"], "", "", ["flag-ge"], 1, 53, 15, 0], "1f1ec-1f1eb": [["\u{1F1EC}\u{1F1EB}"], "", "", ["flag-gf"], 1, 54, 15, 0], "1f1ec-1f1ec": [["\u{1F1EC}\u{1F1EC}"], "", "", ["flag-gg"], 1, 55, 15, 0], "1f1ec-1f1ed": [["\u{1F1EC}\u{1F1ED}"], "", "", ["flag-gh"], 1, 56, 15, 0], "1f1ec-1f1ee": [["\u{1F1EC}\u{1F1EE}"], "", "", ["flag-gi"], 1, 57, 15, 0], "1f1ec-1f1f1": [["\u{1F1EC}\u{1F1F1}"], "", "", ["flag-gl"], 1, 58, 15, 0], "1f1ec-1f1f2": [["\u{1F1EC}\u{1F1F2}"], "", "", ["flag-gm"], 1, 59, 15, 0], "1f1ec-1f1f3": [["\u{1F1EC}\u{1F1F3}"], "", "", ["flag-gn"], 1, 60, 15, 0], "1f1ec-1f1f5": [["\u{1F1EC}\u{1F1F5}"], "", "", ["flag-gp"], 2, 0, 15, 0], "1f1ec-1f1f6": [["\u{1F1EC}\u{1F1F6}"], "", "", ["flag-gq"], 2, 1, 15, 0], "1f1ec-1f1f7": [["\u{1F1EC}\u{1F1F7}"], "", "", ["flag-gr"], 2, 2, 15, 0], "1f1ec-1f1f8": [["\u{1F1EC}\u{1F1F8}"], "", "", ["flag-gs"], 2, 3, 15, 0], "1f1ec-1f1f9": [["\u{1F1EC}\u{1F1F9}"], "", "", ["flag-gt"], 2, 4, 15, 0], "1f1ec-1f1fa": [["\u{1F1EC}\u{1F1FA}"], "", "", ["flag-gu"], 2, 5, 15, 0], "1f1ec-1f1fc": [["\u{1F1EC}\u{1F1FC}"], "", "", ["flag-gw"], 2, 6, 15, 0], "1f1ec-1f1fe": [["\u{1F1EC}\u{1F1FE}"], "", "", ["flag-gy"], 2, 7, 15, 0], "1f1ed-1f1f0": [["\u{1F1ED}\u{1F1F0}"], "", "", ["flag-hk"], 2, 8, 15, 0], "1f1ed-1f1f2": [["\u{1F1ED}\u{1F1F2}"], "", "", ["flag-hm"], 2, 9, 15, 0], "1f1ed-1f1f3": [["\u{1F1ED}\u{1F1F3}"], "", "", ["flag-hn"], 2, 10, 15, 0], "1f1ed-1f1f7": [["\u{1F1ED}\u{1F1F7}"], "", "", ["flag-hr"], 2, 11, 15, 0], "1f1ed-1f1f9": [["\u{1F1ED}\u{1F1F9}"], "", "", ["flag-ht"], 2, 12, 15, 0], "1f1ed-1f1fa": [["\u{1F1ED}\u{1F1FA}"], "", "", ["flag-hu"], 2, 13, 15, 0], "1f1ee-1f1e8": [["\u{1F1EE}\u{1F1E8}"], "", "", ["flag-ic"], 2, 14, 15, 0], "1f1ee-1f1e9": [["\u{1F1EE}\u{1F1E9}"], "", "", ["flag-id"], 2, 15, 15, 0], "1f1ee-1f1ea": [["\u{1F1EE}\u{1F1EA}"], "", "", ["flag-ie"], 2, 16, 15, 0], "1f1ee-1f1f1": [["\u{1F1EE}\u{1F1F1}"], "", "", ["flag-il"], 2, 17, 15, 0], "1f1ee-1f1f2": [["\u{1F1EE}\u{1F1F2}"], "", "", ["flag-im"], 2, 18, 15, 0], "1f1ee-1f1f3": [["\u{1F1EE}\u{1F1F3}"], "", "", ["flag-in"], 2, 19, 15, 0], "1f1ee-1f1f4": [["\u{1F1EE}\u{1F1F4}"], "", "", ["flag-io"], 2, 20, 15, 0], "1f1ee-1f1f6": [["\u{1F1EE}\u{1F1F6}"], "", "", ["flag-iq"], 2, 21, 15, 0], "1f1ee-1f1f7": [["\u{1F1EE}\u{1F1F7}"], "", "", ["flag-ir"], 2, 22, 15, 0], "1f1ee-1f1f8": [["\u{1F1EE}\u{1F1F8}"], "", "", ["flag-is"], 2, 23, 15, 0], "1f1ee-1f1f9": [["\u{1F1EE}\u{1F1F9}"], "\uE50F", "\u{FE4E9}", ["it", "flag-it"], 2, 24, 15, 0], "1f1ef-1f1ea": [["\u{1F1EF}\u{1F1EA}"], "", "", ["flag-je"], 2, 25, 15, 0], "1f1ef-1f1f2": [["\u{1F1EF}\u{1F1F2}"], "", "", ["flag-jm"], 2, 26, 15, 0], "1f1ef-1f1f4": [["\u{1F1EF}\u{1F1F4}"], "", "", ["flag-jo"], 2, 27, 15, 0], "1f1ef-1f1f5": [["\u{1F1EF}\u{1F1F5}"], "\uE50B", "\u{FE4E5}", ["jp", "flag-jp"], 2, 28, 15, 0], "1f1f0-1f1ea": [["\u{1F1F0}\u{1F1EA}"], "", "", ["flag-ke"], 2, 29, 15, 0], "1f1f0-1f1ec": [["\u{1F1F0}\u{1F1EC}"], "", "", ["flag-kg"], 2, 30, 15, 0], "1f1f0-1f1ed": [["\u{1F1F0}\u{1F1ED}"], "", "", ["flag-kh"], 2, 31, 15, 0], "1f1f0-1f1ee": [["\u{1F1F0}\u{1F1EE}"], "", "", ["flag-ki"], 2, 32, 15, 0], "1f1f0-1f1f2": [["\u{1F1F0}\u{1F1F2}"], "", "", ["flag-km"], 2, 33, 15, 0], "1f1f0-1f1f3": [["\u{1F1F0}\u{1F1F3}"], "", "", ["flag-kn"], 2, 34, 15, 0], "1f1f0-1f1f5": [["\u{1F1F0}\u{1F1F5}"], "", "", ["flag-kp"], 2, 35, 15, 0], "1f1f0-1f1f7": [["\u{1F1F0}\u{1F1F7}"], "\uE514", "\u{FE4EE}", ["kr", "flag-kr"], 2, 36, 15, 0], "1f1f0-1f1fc": [["\u{1F1F0}\u{1F1FC}"], "", "", ["flag-kw"], 2, 37, 15, 0], "1f1f0-1f1fe": [["\u{1F1F0}\u{1F1FE}"], "", "", ["flag-ky"], 2, 38, 15, 0], "1f1f0-1f1ff": [["\u{1F1F0}\u{1F1FF}"], "", "", ["flag-kz"], 2, 39, 15, 0], "1f1f1-1f1e6": [["\u{1F1F1}\u{1F1E6}"], "", "", ["flag-la"], 2, 40, 15, 0], "1f1f1-1f1e7": [["\u{1F1F1}\u{1F1E7}"], "", "", ["flag-lb"], 2, 41, 15, 0], "1f1f1-1f1e8": [["\u{1F1F1}\u{1F1E8}"], "", "", ["flag-lc"], 2, 42, 15, 0], "1f1f1-1f1ee": [["\u{1F1F1}\u{1F1EE}"], "", "", ["flag-li"], 2, 43, 15, 0], "1f1f1-1f1f0": [["\u{1F1F1}\u{1F1F0}"], "", "", ["flag-lk"], 2, 44, 15, 0], "1f1f1-1f1f7": [["\u{1F1F1}\u{1F1F7}"], "", "", ["flag-lr"], 2, 45, 15, 0], "1f1f1-1f1f8": [["\u{1F1F1}\u{1F1F8}"], "", "", ["flag-ls"], 2, 46, 15, 0], "1f1f1-1f1f9": [["\u{1F1F1}\u{1F1F9}"], "", "", ["flag-lt"], 2, 47, 15, 0], "1f1f1-1f1fa": [["\u{1F1F1}\u{1F1FA}"], "", "", ["flag-lu"], 2, 48, 15, 0], "1f1f1-1f1fb": [["\u{1F1F1}\u{1F1FB}"], "", "", ["flag-lv"], 2, 49, 15, 0], "1f1f1-1f1fe": [["\u{1F1F1}\u{1F1FE}"], "", "", ["flag-ly"], 2, 50, 15, 0], "1f1f2-1f1e6": [["\u{1F1F2}\u{1F1E6}"], "", "", ["flag-ma"], 2, 51, 15, 0], "1f1f2-1f1e8": [["\u{1F1F2}\u{1F1E8}"], "", "", ["flag-mc"], 2, 52, 15, 0], "1f1f2-1f1e9": [["\u{1F1F2}\u{1F1E9}"], "", "", ["flag-md"], 2, 53, 15, 0], "1f1f2-1f1ea": [["\u{1F1F2}\u{1F1EA}"], "", "", ["flag-me"], 2, 54, 15, 0], "1f1f2-1f1eb": [["\u{1F1F2}\u{1F1EB}"], "", "", ["flag-mf"], 2, 55, 15, 0], "1f1f2-1f1ec": [["\u{1F1F2}\u{1F1EC}"], "", "", ["flag-mg"], 2, 56, 15, 0], "1f1f2-1f1ed": [["\u{1F1F2}\u{1F1ED}"], "", "", ["flag-mh"], 2, 57, 15, 0], "1f1f2-1f1f0": [["\u{1F1F2}\u{1F1F0}"], "", "", ["flag-mk"], 2, 58, 15, 0], "1f1f2-1f1f1": [["\u{1F1F2}\u{1F1F1}"], "", "", ["flag-ml"], 2, 59, 15, 0], "1f1f2-1f1f2": [["\u{1F1F2}\u{1F1F2}"], "", "", ["flag-mm"], 2, 60, 15, 0], "1f1f2-1f1f3": [["\u{1F1F2}\u{1F1F3}"], "", "", ["flag-mn"], 3, 0, 15, 0], "1f1f2-1f1f4": [["\u{1F1F2}\u{1F1F4}"], "", "", ["flag-mo"], 3, 1, 15, 0], "1f1f2-1f1f5": [["\u{1F1F2}\u{1F1F5}"], "", "", ["flag-mp"], 3, 2, 15, 0], "1f1f2-1f1f6": [["\u{1F1F2}\u{1F1F6}"], "", "", ["flag-mq"], 3, 3, 15, 0], "1f1f2-1f1f7": [["\u{1F1F2}\u{1F1F7}"], "", "", ["flag-mr"], 3, 4, 15, 0], "1f1f2-1f1f8": [["\u{1F1F2}\u{1F1F8}"], "", "", ["flag-ms"], 3, 5, 15, 0], "1f1f2-1f1f9": [["\u{1F1F2}\u{1F1F9}"], "", "", ["flag-mt"], 3, 6, 15, 0], "1f1f2-1f1fa": [["\u{1F1F2}\u{1F1FA}"], "", "", ["flag-mu"], 3, 7, 15, 0], "1f1f2-1f1fb": [["\u{1F1F2}\u{1F1FB}"], "", "", ["flag-mv"], 3, 8, 15, 0], "1f1f2-1f1fc": [["\u{1F1F2}\u{1F1FC}"], "", "", ["flag-mw"], 3, 9, 15, 0], "1f1f2-1f1fd": [["\u{1F1F2}\u{1F1FD}"], "", "", ["flag-mx"], 3, 10, 15, 0], "1f1f2-1f1fe": [["\u{1F1F2}\u{1F1FE}"], "", "", ["flag-my"], 3, 11, 15, 0], "1f1f2-1f1ff": [["\u{1F1F2}\u{1F1FF}"], "", "", ["flag-mz"], 3, 12, 15, 0], "1f1f3-1f1e6": [["\u{1F1F3}\u{1F1E6}"], "", "", ["flag-na"], 3, 13, 15, 0], "1f1f3-1f1e8": [["\u{1F1F3}\u{1F1E8}"], "", "", ["flag-nc"], 3, 14, 15, 0], "1f1f3-1f1ea": [["\u{1F1F3}\u{1F1EA}"], "", "", ["flag-ne"], 3, 15, 15, 0], "1f1f3-1f1eb": [["\u{1F1F3}\u{1F1EB}"], "", "", ["flag-nf"], 3, 16, 15, 0], "1f1f3-1f1ec": [["\u{1F1F3}\u{1F1EC}"], "", "", ["flag-ng"], 3, 17, 15, 0], "1f1f3-1f1ee": [["\u{1F1F3}\u{1F1EE}"], "", "", ["flag-ni"], 3, 18, 15, 0], "1f1f3-1f1f1": [["\u{1F1F3}\u{1F1F1}"], "", "", ["flag-nl"], 3, 19, 15, 0], "1f1f3-1f1f4": [["\u{1F1F3}\u{1F1F4}"], "", "", ["flag-no"], 3, 20, 15, 0], "1f1f3-1f1f5": [["\u{1F1F3}\u{1F1F5}"], "", "", ["flag-np"], 3, 21, 15, 0], "1f1f3-1f1f7": [["\u{1F1F3}\u{1F1F7}"], "", "", ["flag-nr"], 3, 22, 15, 0], "1f1f3-1f1fa": [["\u{1F1F3}\u{1F1FA}"], "", "", ["flag-nu"], 3, 23, 15, 0], "1f1f3-1f1ff": [["\u{1F1F3}\u{1F1FF}"], "", "", ["flag-nz"], 3, 24, 15, 0], "1f1f4-1f1f2": [["\u{1F1F4}\u{1F1F2}"], "", "", ["flag-om"], 3, 25, 15, 0], "1f1f5-1f1e6": [["\u{1F1F5}\u{1F1E6}"], "", "", ["flag-pa"], 3, 26, 15, 0], "1f1f5-1f1ea": [["\u{1F1F5}\u{1F1EA}"], "", "", ["flag-pe"], 3, 27, 15, 0], "1f1f5-1f1eb": [["\u{1F1F5}\u{1F1EB}"], "", "", ["flag-pf"], 3, 28, 15, 0], "1f1f5-1f1ec": [["\u{1F1F5}\u{1F1EC}"], "", "", ["flag-pg"], 3, 29, 15, 0], "1f1f5-1f1ed": [["\u{1F1F5}\u{1F1ED}"], "", "", ["flag-ph"], 3, 30, 15, 0], "1f1f5-1f1f0": [["\u{1F1F5}\u{1F1F0}"], "", "", ["flag-pk"], 3, 31, 15, 0], "1f1f5-1f1f1": [["\u{1F1F5}\u{1F1F1}"], "", "", ["flag-pl"], 3, 32, 15, 0], "1f1f5-1f1f2": [["\u{1F1F5}\u{1F1F2}"], "", "", ["flag-pm"], 3, 33, 15, 0], "1f1f5-1f1f3": [["\u{1F1F5}\u{1F1F3}"], "", "", ["flag-pn"], 3, 34, 15, 0], "1f1f5-1f1f7": [["\u{1F1F5}\u{1F1F7}"], "", "", ["flag-pr"], 3, 35, 15, 0], "1f1f5-1f1f8": [["\u{1F1F5}\u{1F1F8}"], "", "", ["flag-ps"], 3, 36, 15, 0], "1f1f5-1f1f9": [["\u{1F1F5}\u{1F1F9}"], "", "", ["flag-pt"], 3, 37, 15, 0], "1f1f5-1f1fc": [["\u{1F1F5}\u{1F1FC}"], "", "", ["flag-pw"], 3, 38, 15, 0], "1f1f5-1f1fe": [["\u{1F1F5}\u{1F1FE}"], "", "", ["flag-py"], 3, 39, 15, 0], "1f1f6-1f1e6": [["\u{1F1F6}\u{1F1E6}"], "", "", ["flag-qa"], 3, 40, 15, 0], "1f1f7-1f1ea": [["\u{1F1F7}\u{1F1EA}"], "", "", ["flag-re"], 3, 41, 15, 0], "1f1f7-1f1f4": [["\u{1F1F7}\u{1F1F4}"], "", "", ["flag-ro"], 3, 42, 15, 0], "1f1f7-1f1f8": [["\u{1F1F7}\u{1F1F8}"], "", "", ["flag-rs"], 3, 43, 15, 0], "1f1f7-1f1fa": [["\u{1F1F7}\u{1F1FA}"], "\uE512", "\u{FE4EC}", ["ru", "flag-ru"], 3, 44, 15, 0], "1f1f7-1f1fc": [["\u{1F1F7}\u{1F1FC}"], "", "", ["flag-rw"], 3, 45, 15, 0], "1f1f8-1f1e6": [["\u{1F1F8}\u{1F1E6}"], "", "", ["flag-sa"], 3, 46, 15, 0], "1f1f8-1f1e7": [["\u{1F1F8}\u{1F1E7}"], "", "", ["flag-sb"], 3, 47, 15, 0], "1f1f8-1f1e8": [["\u{1F1F8}\u{1F1E8}"], "", "", ["flag-sc"], 3, 48, 15, 0], "1f1f8-1f1e9": [["\u{1F1F8}\u{1F1E9}"], "", "", ["flag-sd"], 3, 49, 15, 0], "1f1f8-1f1ea": [["\u{1F1F8}\u{1F1EA}"], "", "", ["flag-se"], 3, 50, 15, 0], "1f1f8-1f1ec": [["\u{1F1F8}\u{1F1EC}"], "", "", ["flag-sg"], 3, 51, 15, 0], "1f1f8-1f1ed": [["\u{1F1F8}\u{1F1ED}"], "", "", ["flag-sh"], 3, 52, 15, 0], "1f1f8-1f1ee": [["\u{1F1F8}\u{1F1EE}"], "", "", ["flag-si"], 3, 53, 15, 0], "1f1f8-1f1ef": [["\u{1F1F8}\u{1F1EF}"], "", "", ["flag-sj"], 3, 54, 15, 0], "1f1f8-1f1f0": [["\u{1F1F8}\u{1F1F0}"], "", "", ["flag-sk"], 3, 55, 15, 0], "1f1f8-1f1f1": [["\u{1F1F8}\u{1F1F1}"], "", "", ["flag-sl"], 3, 56, 15, 0], "1f1f8-1f1f2": [["\u{1F1F8}\u{1F1F2}"], "", "", ["flag-sm"], 3, 57, 15, 0], "1f1f8-1f1f3": [["\u{1F1F8}\u{1F1F3}"], "", "", ["flag-sn"], 3, 58, 15, 0], "1f1f8-1f1f4": [["\u{1F1F8}\u{1F1F4}"], "", "", ["flag-so"], 3, 59, 15, 0], "1f1f8-1f1f7": [["\u{1F1F8}\u{1F1F7}"], "", "", ["flag-sr"], 3, 60, 15, 0], "1f1f8-1f1f8": [["\u{1F1F8}\u{1F1F8}"], "", "", ["flag-ss"], 4, 0, 15, 0], "1f1f8-1f1f9": [["\u{1F1F8}\u{1F1F9}"], "", "", ["flag-st"], 4, 1, 15, 0], "1f1f8-1f1fb": [["\u{1F1F8}\u{1F1FB}"], "", "", ["flag-sv"], 4, 2, 15, 0], "1f1f8-1f1fd": [["\u{1F1F8}\u{1F1FD}"], "", "", ["flag-sx"], 4, 3, 15, 0], "1f1f8-1f1fe": [["\u{1F1F8}\u{1F1FE}"], "", "", ["flag-sy"], 4, 4, 15, 0], "1f1f8-1f1ff": [["\u{1F1F8}\u{1F1FF}"], "", "", ["flag-sz"], 4, 5, 15, 0], "1f1f9-1f1e6": [["\u{1F1F9}\u{1F1E6}"], "", "", ["flag-ta"], 4, 6, 15, 0], "1f1f9-1f1e8": [["\u{1F1F9}\u{1F1E8}"], "", "", ["flag-tc"], 4, 7, 15, 0], "1f1f9-1f1e9": [["\u{1F1F9}\u{1F1E9}"], "", "", ["flag-td"], 4, 8, 15, 0], "1f1f9-1f1eb": [["\u{1F1F9}\u{1F1EB}"], "", "", ["flag-tf"], 4, 9, 15, 0], "1f1f9-1f1ec": [["\u{1F1F9}\u{1F1EC}"], "", "", ["flag-tg"], 4, 10, 15, 0], "1f1f9-1f1ed": [["\u{1F1F9}\u{1F1ED}"], "", "", ["flag-th"], 4, 11, 15, 0], "1f1f9-1f1ef": [["\u{1F1F9}\u{1F1EF}"], "", "", ["flag-tj"], 4, 12, 15, 0], "1f1f9-1f1f0": [["\u{1F1F9}\u{1F1F0}"], "", "", ["flag-tk"], 4, 13, 15, 0], "1f1f9-1f1f1": [["\u{1F1F9}\u{1F1F1}"], "", "", ["flag-tl"], 4, 14, 15, 0], "1f1f9-1f1f2": [["\u{1F1F9}\u{1F1F2}"], "", "", ["flag-tm"], 4, 15, 15, 0], "1f1f9-1f1f3": [["\u{1F1F9}\u{1F1F3}"], "", "", ["flag-tn"], 4, 16, 15, 0], "1f1f9-1f1f4": [["\u{1F1F9}\u{1F1F4}"], "", "", ["flag-to"], 4, 17, 15, 0], "1f1f9-1f1f7": [["\u{1F1F9}\u{1F1F7}"], "", "", ["flag-tr"], 4, 18, 15, 0], "1f1f9-1f1f9": [["\u{1F1F9}\u{1F1F9}"], "", "", ["flag-tt"], 4, 19, 15, 0], "1f1f9-1f1fb": [["\u{1F1F9}\u{1F1FB}"], "", "", ["flag-tv"], 4, 20, 15, 0], "1f1f9-1f1fc": [["\u{1F1F9}\u{1F1FC}"], "", "", ["flag-tw"], 4, 21, 15, 0], "1f1f9-1f1ff": [["\u{1F1F9}\u{1F1FF}"], "", "", ["flag-tz"], 4, 22, 15, 0], "1f1fa-1f1e6": [["\u{1F1FA}\u{1F1E6}"], "", "", ["flag-ua"], 4, 23, 15, 0], "1f1fa-1f1ec": [["\u{1F1FA}\u{1F1EC}"], "", "", ["flag-ug"], 4, 24, 15, 0], "1f1fa-1f1f2": [["\u{1F1FA}\u{1F1F2}"], "", "", ["flag-um"], 4, 25, 15, 0], "1f1fa-1f1f3": [["\u{1F1FA}\u{1F1F3}"], "", "", ["flag-un"], 4, 26, 15, 0], "1f1fa-1f1f8": [["\u{1F1FA}\u{1F1F8}"], "\uE50C", "\u{FE4E6}", ["us", "flag-us"], 4, 27, 15, 0], "1f1fa-1f1fe": [["\u{1F1FA}\u{1F1FE}"], "", "", ["flag-uy"], 4, 28, 15, 0], "1f1fa-1f1ff": [["\u{1F1FA}\u{1F1FF}"], "", "", ["flag-uz"], 4, 29, 15, 0], "1f1fb-1f1e6": [["\u{1F1FB}\u{1F1E6}"], "", "", ["flag-va"], 4, 30, 15, 0], "1f1fb-1f1e8": [["\u{1F1FB}\u{1F1E8}"], "", "", ["flag-vc"], 4, 31, 15, 0], "1f1fb-1f1ea": [["\u{1F1FB}\u{1F1EA}"], "", "", ["flag-ve"], 4, 32, 15, 0], "1f1fb-1f1ec": [["\u{1F1FB}\u{1F1EC}"], "", "", ["flag-vg"], 4, 33, 15, 0], "1f1fb-1f1ee": [["\u{1F1FB}\u{1F1EE}"], "", "", ["flag-vi"], 4, 34, 15, 0], "1f1fb-1f1f3": [["\u{1F1FB}\u{1F1F3}"], "", "", ["flag-vn"], 4, 35, 15, 0], "1f1fb-1f1fa": [["\u{1F1FB}\u{1F1FA}"], "", "", ["flag-vu"], 4, 36, 15, 0], "1f1fc-1f1eb": [["\u{1F1FC}\u{1F1EB}"], "", "", ["flag-wf"], 4, 37, 15, 0], "1f1fc-1f1f8": [["\u{1F1FC}\u{1F1F8}"], "", "", ["flag-ws"], 4, 38, 15, 0], "1f1fd-1f1f0": [["\u{1F1FD}\u{1F1F0}"], "", "", ["flag-xk"], 4, 39, 15, 0], "1f1fe-1f1ea": [["\u{1F1FE}\u{1F1EA}"], "", "", ["flag-ye"], 4, 40, 15, 0], "1f1fe-1f1f9": [["\u{1F1FE}\u{1F1F9}"], "", "", ["flag-yt"], 4, 41, 15, 0], "1f1ff-1f1e6": [["\u{1F1FF}\u{1F1E6}"], "", "", ["flag-za"], 4, 42, 15, 0], "1f1ff-1f1f2": [["\u{1F1FF}\u{1F1F2}"], "", "", ["flag-zm"], 4, 43, 15, 0], "1f1ff-1f1fc": [["\u{1F1FF}\u{1F1FC}"], "", "", ["flag-zw"], 4, 44, 15, 0], "1f201": [["\u{1F201}"], "\uE203", "\u{FEB24}", ["koko"], 4, 45, 15, 0], "1f202-fe0f": [["\u{1F202}\uFE0F", "\u{1F202}"], "\uE228", "\u{FEB3F}", ["sa"], 4, 46, 15, 0], "1f21a": [["\u{1F21A}"], "\uE216", "\u{FEB3A}", ["u7121"], 4, 47, 15, 0], "1f22f": [["\u{1F22F}"], "\uE22C", "\u{FEB40}", ["u6307"], 4, 48, 15, 0], "1f232": [["\u{1F232}"], "", "\u{FEB2E}", ["u7981"], 4, 49, 15, 0], "1f233": [["\u{1F233}"], "\uE22B", "\u{FEB2F}", ["u7a7a"], 4, 50, 15, 0], "1f234": [["\u{1F234}"], "", "\u{FEB30}", ["u5408"], 4, 51, 15, 0], "1f235": [["\u{1F235}"], "\uE22A", "\u{FEB31}", ["u6e80"], 4, 52, 15, 0], "1f236": [["\u{1F236}"], "\uE215", "\u{FEB39}", ["u6709"], 4, 53, 15, 0], "1f237-fe0f": [["\u{1F237}\uFE0F", "\u{1F237}"], "\uE217", "\u{FEB3B}", ["u6708"], 4, 54, 15, 0], "1f238": [["\u{1F238}"], "\uE218", "\u{FEB3C}", ["u7533"], 4, 55, 15, 0], "1f239": [["\u{1F239}"], "\uE227", "\u{FEB3E}", ["u5272"], 4, 56, 15, 0], "1f23a": [["\u{1F23A}"], "\uE22D", "\u{FEB41}", ["u55b6"], 4, 57, 15, 0], "1f250": [["\u{1F250}"], "\uE226", "\u{FEB3D}", ["ideograph_advantage"], 4, 58, 15, 0], "1f251": [["\u{1F251}"], "", "\u{FEB50}", ["accept"], 4, 59, 15, 0], "1f300": [["\u{1F300}"], "\uE443", "\u{FE005}", ["cyclone"], 4, 60, 15, 0], "1f301": [["\u{1F301}"], "", "\u{FE006}", ["foggy"], 5, 0, 15, 0], "1f302": [["\u{1F302}"], "\uE43C", "\u{FE007}", ["closed_umbrella"], 5, 1, 15, 0], "1f303": [["\u{1F303}"], "\uE44B", "\u{FE008}", ["night_with_stars"], 5, 2, 15, 0], "1f304": [["\u{1F304}"], "\uE04D", "\u{FE009}", ["sunrise_over_mountains"], 5, 3, 15, 0], "1f305": [["\u{1F305}"], "\uE449", "\u{FE00A}", ["sunrise"], 5, 4, 15, 0], "1f306": [["\u{1F306}"], "\uE146", "\u{FE00B}", ["city_sunset"], 5, 5, 15, 0], "1f307": [["\u{1F307}"], "\uE44A", "\u{FE00C}", ["city_sunrise"], 5, 6, 15, 0], "1f308": [["\u{1F308}"], "\uE44C", "\u{FE00D}", ["rainbow"], 5, 7, 15, 0], "1f309": [["\u{1F309}"], "", "\u{FE010}", ["bridge_at_night"], 5, 8, 15, 0], "1f30a": [["\u{1F30A}"], "\uE43E", "\u{FE038}", ["ocean"], 5, 9, 15, 0], "1f30b": [["\u{1F30B}"], "", "\u{FE03A}", ["volcano"], 5, 10, 15, 0], "1f30c": [["\u{1F30C}"], "", "\u{FE03B}", ["milky_way"], 5, 11, 15, 0], "1f30d": [["\u{1F30D}"], "", "", ["earth_africa"], 5, 12, 15, 0], "1f30e": [["\u{1F30E}"], "", "", ["earth_americas"], 5, 13, 15, 0], "1f30f": [["\u{1F30F}"], "", "\u{FE039}", ["earth_asia"], 5, 14, 15, 0], "1f310": [["\u{1F310}"], "", "", ["globe_with_meridians"], 5, 15, 15, 0], "1f311": [["\u{1F311}"], "", "\u{FE011}", ["new_moon"], 5, 16, 15, 0], "1f312": [["\u{1F312}"], "", "", ["waxing_crescent_moon"], 5, 17, 15, 0], "1f313": [["\u{1F313}"], "", "\u{FE013}", ["first_quarter_moon"], 5, 18, 15, 0], "1f314": [["\u{1F314}"], "", "\u{FE012}", ["moon", "waxing_gibbous_moon"], 5, 19, 15, 0], "1f315": [["\u{1F315}"], "", "\u{FE015}", ["full_moon"], 5, 20, 15, 0], "1f316": [["\u{1F316}"], "", "", ["waning_gibbous_moon"], 5, 21, 15, 0], "1f317": [["\u{1F317}"], "", "", ["last_quarter_moon"], 5, 22, 15, 0], "1f318": [["\u{1F318}"], "", "", ["waning_crescent_moon"], 5, 23, 15, 0], "1f319": [["\u{1F319}"], "\uE04C", "\u{FE014}", ["crescent_moon"], 5, 24, 15, 0], "1f31a": [["\u{1F31A}"], "", "", ["new_moon_with_face"], 5, 25, 15, 0], "1f31b": [["\u{1F31B}"], "", "\u{FE016}", ["first_quarter_moon_with_face"], 5, 26, 15, 0], "1f31c": [["\u{1F31C}"], "", "", ["last_quarter_moon_with_face"], 5, 27, 15, 0], "1f31d": [["\u{1F31D}"], "", "", ["full_moon_with_face"], 5, 28, 15, 0], "1f31e": [["\u{1F31E}"], "", "", ["sun_with_face"], 5, 29, 15, 0], "1f31f": [["\u{1F31F}"], "\uE335", "\u{FEB69}", ["star2"], 5, 30, 15, 0], "1f320": [["\u{1F320}"], "", "\u{FEB6A}", ["stars"], 5, 31, 15, 0], "1f321-fe0f": [["\u{1F321}\uFE0F", "\u{1F321}"], "", "", ["thermometer"], 5, 32, 15, 0], "1f324-fe0f": [["\u{1F324}\uFE0F", "\u{1F324}"], "", "", ["mostly_sunny", "sun_small_cloud"], 5, 33, 15, 0], "1f325-fe0f": [["\u{1F325}\uFE0F", "\u{1F325}"], "", "", ["barely_sunny", "sun_behind_cloud"], 5, 34, 15, 0], "1f326-fe0f": [["\u{1F326}\uFE0F", "\u{1F326}"], "", "", ["partly_sunny_rain", "sun_behind_rain_cloud"], 5, 35, 15, 0], "1f327-fe0f": [["\u{1F327}\uFE0F", "\u{1F327}"], "", "", ["rain_cloud"], 5, 36, 15, 0], "1f328-fe0f": [["\u{1F328}\uFE0F", "\u{1F328}"], "", "", ["snow_cloud"], 5, 37, 15, 0], "1f329-fe0f": [["\u{1F329}\uFE0F", "\u{1F329}"], "", "", ["lightning", "lightning_cloud"], 5, 38, 15, 0], "1f32a-fe0f": [["\u{1F32A}\uFE0F", "\u{1F32A}"], "", "", ["tornado", "tornado_cloud"], 5, 39, 15, 0], "1f32b-fe0f": [["\u{1F32B}\uFE0F", "\u{1F32B}"], "", "", ["fog"], 5, 40, 15, 0], "1f32c-fe0f": [["\u{1F32C}\uFE0F", "\u{1F32C}"], "", "", ["wind_blowing_face"], 5, 41, 15, 0], "1f32d": [["\u{1F32D}"], "", "", ["hotdog"], 5, 42, 15, 0], "1f32e": [["\u{1F32E}"], "", "", ["taco"], 5, 43, 15, 0], "1f32f": [["\u{1F32F}"], "", "", ["burrito"], 5, 44, 15, 0], "1f330": [["\u{1F330}"], "", "\u{FE04C}", ["chestnut"], 5, 45, 15, 0], "1f331": [["\u{1F331}"], "", "\u{FE03E}", ["seedling"], 5, 46, 15, 0], "1f332": [["\u{1F332}"], "", "", ["evergreen_tree"], 5, 47, 15, 0], "1f333": [["\u{1F333}"], "", "", ["deciduous_tree"], 5, 48, 15, 0], "1f334": [["\u{1F334}"], "\uE307", "\u{FE047}", ["palm_tree"], 5, 49, 15, 0], "1f335": [["\u{1F335}"], "\uE308", "\u{FE048}", ["cactus"], 5, 50, 15, 0], "1f336-fe0f": [["\u{1F336}\uFE0F", "\u{1F336}"], "", "", ["hot_pepper"], 5, 51, 15, 0], "1f337": [["\u{1F337}"], "\uE304", "\u{FE03D}", ["tulip"], 5, 52, 15, 0], "1f338": [["\u{1F338}"], "\uE030", "\u{FE040}", ["cherry_blossom"], 5, 53, 15, 0], "1f339": [["\u{1F339}"], "\uE032", "\u{FE041}", ["rose"], 5, 54, 15, 0], "1f33a": [["\u{1F33A}"], "\uE303", "\u{FE045}", ["hibiscus"], 5, 55, 15, 0], "1f33b": [["\u{1F33B}"], "\uE305", "\u{FE046}", ["sunflower"], 5, 56, 15, 0], "1f33c": [["\u{1F33C}"], "", "\u{FE04D}", ["blossom"], 5, 57, 15, 0], "1f33d": [["\u{1F33D}"], "", "\u{FE04A}", ["corn"], 5, 58, 15, 0], "1f33e": [["\u{1F33E}"], "\uE444", "\u{FE049}", ["ear_of_rice"], 5, 59, 15, 0], "1f33f": [["\u{1F33F}"], "", "\u{FE04E}", ["herb"], 5, 60, 15, 0], "1f340": [["\u{1F340}"], "\uE110", "\u{FE03C}", ["four_leaf_clover"], 6, 0, 15, 0], "1f341": [["\u{1F341}"], "\uE118", "\u{FE03F}", ["maple_leaf"], 6, 1, 15, 0], "1f342": [["\u{1F342}"], "\uE119", "\u{FE042}", ["fallen_leaf"], 6, 2, 15, 0], "1f343": [["\u{1F343}"], "\uE447", "\u{FE043}", ["leaves"], 6, 3, 15, 0], "1f344": [["\u{1F344}"], "", "\u{FE04B}", ["mushroom"], 6, 4, 15, 0], "1f345": [["\u{1F345}"], "\uE349", "\u{FE055}", ["tomato"], 6, 5, 15, 0], "1f346": [["\u{1F346}"], "\uE34A", "\u{FE056}", ["eggplant"], 6, 6, 15, 0], "1f347": [["\u{1F347}"], "", "\u{FE059}", ["grapes"], 6, 7, 15, 0], "1f348": [["\u{1F348}"], "", "\u{FE057}", ["melon"], 6, 8, 15, 0], "1f349": [["\u{1F349}"], "\uE348", "\u{FE054}", ["watermelon"], 6, 9, 15, 0], "1f34a": [["\u{1F34A}"], "\uE346", "\u{FE052}", ["tangerine"], 6, 10, 15, 0], "1f34b": [["\u{1F34B}"], "", "", ["lemon"], 6, 11, 15, 0], "1f34c": [["\u{1F34C}"], "", "\u{FE050}", ["banana"], 6, 12, 15, 0], "1f34d": [["\u{1F34D}"], "", "\u{FE058}", ["pineapple"], 6, 13, 15, 0], "1f34e": [["\u{1F34E}"], "\uE345", "\u{FE051}", ["apple"], 6, 14, 15, 0], "1f34f": [["\u{1F34F}"], "", "\u{FE05B}", ["green_apple"], 6, 15, 15, 0], "1f350": [["\u{1F350}"], "", "", ["pear"], 6, 16, 15, 0], "1f351": [["\u{1F351}"], "", "\u{FE05A}", ["peach"], 6, 17, 15, 0], "1f352": [["\u{1F352}"], "", "\u{FE04F}", ["cherries"], 6, 18, 15, 0], "1f353": [["\u{1F353}"], "\uE347", "\u{FE053}", ["strawberry"], 6, 19, 15, 0], "1f354": [["\u{1F354}"], "\uE120", "\u{FE960}", ["hamburger"], 6, 20, 15, 0], "1f355": [["\u{1F355}"], "", "\u{FE975}", ["pizza"], 6, 21, 15, 0], "1f356": [["\u{1F356}"], "", "\u{FE972}", ["meat_on_bone"], 6, 22, 15, 0], "1f357": [["\u{1F357}"], "", "\u{FE976}", ["poultry_leg"], 6, 23, 15, 0], "1f358": [["\u{1F358}"], "\uE33D", "\u{FE969}", ["rice_cracker"], 6, 24, 15, 0], "1f359": [["\u{1F359}"], "\uE342", "\u{FE961}", ["rice_ball"], 6, 25, 15, 0], "1f35a": [["\u{1F35A}"], "\uE33E", "\u{FE96A}", ["rice"], 6, 26, 15, 0], "1f35b": [["\u{1F35B}"], "\uE341", "\u{FE96C}", ["curry"], 6, 27, 15, 0], "1f35c": [["\u{1F35C}"], "\uE340", "\u{FE963}", ["ramen"], 6, 28, 15, 0], "1f35d": [["\u{1F35D}"], "\uE33F", "\u{FE96B}", ["spaghetti"], 6, 29, 15, 0], "1f35e": [["\u{1F35E}"], "\uE339", "\u{FE964}", ["bread"], 6, 30, 15, 0], "1f35f": [["\u{1F35F}"], "\uE33B", "\u{FE967}", ["fries"], 6, 31, 15, 0], "1f360": [["\u{1F360}"], "", "\u{FE974}", ["sweet_potato"], 6, 32, 15, 0], "1f361": [["\u{1F361}"], "\uE33C", "\u{FE968}", ["dango"], 6, 33, 15, 0], "1f362": [["\u{1F362}"], "\uE343", "\u{FE96D}", ["oden"], 6, 34, 15, 0], "1f363": [["\u{1F363}"], "\uE344", "\u{FE96E}", ["sushi"], 6, 35, 15, 0], "1f364": [["\u{1F364}"], "", "\u{FE97F}", ["fried_shrimp"], 6, 36, 15, 0], "1f365": [["\u{1F365}"], "", "\u{FE973}", ["fish_cake"], 6, 37, 15, 0], "1f366": [["\u{1F366}"], "\uE33A", "\u{FE966}", ["icecream"], 6, 38, 15, 0], "1f367": [["\u{1F367}"], "\uE43F", "\u{FE971}", ["shaved_ice"], 6, 39, 15, 0], "1f368": [["\u{1F368}"], "", "\u{FE977}", ["ice_cream"], 6, 40, 15, 0], "1f369": [["\u{1F369}"], "", "\u{FE978}", ["doughnut"], 6, 41, 15, 0], "1f36a": [["\u{1F36A}"], "", "\u{FE979}", ["cookie"], 6, 42, 15, 0], "1f36b": [["\u{1F36B}"], "", "\u{FE97A}", ["chocolate_bar"], 6, 43, 15, 0], "1f36c": [["\u{1F36C}"], "", "\u{FE97B}", ["candy"], 6, 44, 15, 0], "1f36d": [["\u{1F36D}"], "", "\u{FE97C}", ["lollipop"], 6, 45, 15, 0], "1f36e": [["\u{1F36E}"], "", "\u{FE97D}", ["custard"], 6, 46, 15, 0], "1f36f": [["\u{1F36F}"], "", "\u{FE97E}", ["honey_pot"], 6, 47, 15, 0], "1f370": [["\u{1F370}"], "\uE046", "\u{FE962}", ["cake"], 6, 48, 15, 0], "1f371": [["\u{1F371}"], "\uE34C", "\u{FE96F}", ["bento"], 6, 49, 15, 0], "1f372": [["\u{1F372}"], "\uE34D", "\u{FE970}", ["stew"], 6, 50, 15, 0], "1f373": [["\u{1F373}"], "\uE147", "\u{FE965}", ["fried_egg", "cooking"], 6, 51, 15, 0], "1f374": [["\u{1F374}"], "\uE043", "\u{FE980}", ["fork_and_knife"], 6, 52, 15, 0], "1f375": [["\u{1F375}"], "\uE338", "\u{FE984}", ["tea"], 6, 53, 15, 0], "1f376": [["\u{1F376}"], "\uE30B", "\u{FE985}", ["sake"], 6, 54, 15, 0], "1f377": [["\u{1F377}"], "", "\u{FE986}", ["wine_glass"], 6, 55, 15, 0], "1f378": [["\u{1F378}"], "\uE044", "\u{FE982}", ["cocktail"], 6, 56, 15, 0], "1f379": [["\u{1F379}"], "", "\u{FE988}", ["tropical_drink"], 6, 57, 15, 0], "1f37a": [["\u{1F37A}"], "\uE047", "\u{FE983}", ["beer"], 6, 58, 15, 0], "1f37b": [["\u{1F37B}"], "\uE30C", "\u{FE987}", ["beers"], 6, 59, 15, 0], "1f37c": [["\u{1F37C}"], "", "", ["baby_bottle"], 6, 60, 15, 0], "1f37d-fe0f": [["\u{1F37D}\uFE0F", "\u{1F37D}"], "", "", ["knife_fork_plate"], 7, 0, 15, 0], "1f37e": [["\u{1F37E}"], "", "", ["champagne"], 7, 1, 15, 0], "1f37f": [["\u{1F37F}"], "", "", ["popcorn"], 7, 2, 15, 0], "1f380": [["\u{1F380}"], "\uE314", "\u{FE50F}", ["ribbon"], 7, 3, 15, 0], "1f381": [["\u{1F381}"], "\uE112", "\u{FE510}", ["gift"], 7, 4, 15, 0], "1f382": [["\u{1F382}"], "\uE34B", "\u{FE511}", ["birthday"], 7, 5, 15, 0], "1f383": [["\u{1F383}"], "\uE445", "\u{FE51F}", ["jack_o_lantern"], 7, 6, 15, 0], "1f384": [["\u{1F384}"], "\uE033", "\u{FE512}", ["christmas_tree"], 7, 7, 15, 0], "1f385": [["\u{1F385}"], "\uE448", "\u{FE513}", ["santa"], 7, 8, 15, 0], "1f386": [["\u{1F386}"], "\uE117", "\u{FE515}", ["fireworks"], 7, 14, 15, 0], "1f387": [["\u{1F387}"], "\uE440", "\u{FE51D}", ["sparkler"], 7, 15, 15, 0], "1f388": [["\u{1F388}"], "\uE310", "\u{FE516}", ["balloon"], 7, 16, 15, 0], "1f389": [["\u{1F389}"], "\uE312", "\u{FE517}", ["tada"], 7, 17, 15, 0], "1f38a": [["\u{1F38A}"], "", "\u{FE520}", ["confetti_ball"], 7, 18, 15, 0], "1f38b": [["\u{1F38B}"], "", "\u{FE521}", ["tanabata_tree"], 7, 19, 15, 0], "1f38c": [["\u{1F38C}"], "\uE143", "\u{FE514}", ["crossed_flags"], 7, 20, 15, 0], "1f38d": [["\u{1F38D}"], "\uE436", "\u{FE518}", ["bamboo"], 7, 21, 15, 0], "1f38e": [["\u{1F38E}"], "\uE438", "\u{FE519}", ["dolls"], 7, 22, 15, 0], "1f38f": [["\u{1F38F}"], "\uE43B", "\u{FE51C}", ["flags"], 7, 23, 15, 0], "1f390": [["\u{1F390}"], "\uE442", "\u{FE51E}", ["wind_chime"], 7, 24, 15, 0], "1f391": [["\u{1F391}"], "\uE446", "\u{FE017}", ["rice_scene"], 7, 25, 15, 0], "1f392": [["\u{1F392}"], "\uE43A", "\u{FE51B}", ["school_satchel"], 7, 26, 15, 0], "1f393": [["\u{1F393}"], "\uE439", "\u{FE51A}", ["mortar_board"], 7, 27, 15, 0], "1f396-fe0f": [["\u{1F396}\uFE0F", "\u{1F396}"], "", "", ["medal"], 7, 28, 15, 0], "1f397-fe0f": [["\u{1F397}\uFE0F", "\u{1F397}"], "", "", ["reminder_ribbon"], 7, 29, 15, 0], "1f399-fe0f": [["\u{1F399}\uFE0F", "\u{1F399}"], "", "", ["studio_microphone"], 7, 30, 15, 0], "1f39a-fe0f": [["\u{1F39A}\uFE0F", "\u{1F39A}"], "", "", ["level_slider"], 7, 31, 15, 0], "1f39b-fe0f": [["\u{1F39B}\uFE0F", "\u{1F39B}"], "", "", ["control_knobs"], 7, 32, 15, 0], "1f39e-fe0f": [["\u{1F39E}\uFE0F", "\u{1F39E}"], "", "", ["film_frames"], 7, 33, 15, 0], "1f39f-fe0f": [["\u{1F39F}\uFE0F", "\u{1F39F}"], "", "", ["admission_tickets"], 7, 34, 15, 0], "1f3a0": [["\u{1F3A0}"], "", "\u{FE7FC}", ["carousel_horse"], 7, 35, 15, 0], "1f3a1": [["\u{1F3A1}"], "\uE124", "\u{FE7FD}", ["ferris_wheel"], 7, 36, 15, 0], "1f3a2": [["\u{1F3A2}"], "\uE433", "\u{FE7FE}", ["roller_coaster"], 7, 37, 15, 0], "1f3a3": [["\u{1F3A3}"], "", "\u{FE7FF}", ["fishing_pole_and_fish"], 7, 38, 15, 0], "1f3a4": [["\u{1F3A4}"], "\uE03C", "\u{FE800}", ["microphone"], 7, 39, 15, 0], "1f3a5": [["\u{1F3A5}"], "\uE03D", "\u{FE801}", ["movie_camera"], 7, 40, 15, 0], "1f3a6": [["\u{1F3A6}"], "\uE507", "\u{FE802}", ["cinema"], 7, 41, 15, 0], "1f3a7": [["\u{1F3A7}"], "\uE30A", "\u{FE803}", ["headphones"], 7, 42, 15, 0], "1f3a8": [["\u{1F3A8}"], "\uE502", "\u{FE804}", ["art"], 7, 43, 15, 0], "1f3a9": [["\u{1F3A9}"], "\uE503", "\u{FE805}", ["tophat"], 7, 44, 15, 0], "1f3aa": [["\u{1F3AA}"], "", "\u{FE806}", ["circus_tent"], 7, 45, 15, 0], "1f3ab": [["\u{1F3AB}"], "\uE125", "\u{FE807}", ["ticket"], 7, 46, 15, 0], "1f3ac": [["\u{1F3AC}"], "\uE324", "\u{FE808}", ["clapper"], 7, 47, 15, 0], "1f3ad": [["\u{1F3AD}"], "", "\u{FE809}", ["performing_arts"], 7, 48, 15, 0], "1f3ae": [["\u{1F3AE}"], "", "\u{FE80A}", ["video_game"], 7, 49, 15, 0], "1f3af": [["\u{1F3AF}"], "\uE130", "\u{FE80C}", ["dart"], 7, 50, 15, 0], "1f3b0": [["\u{1F3B0}"], "\uE133", "\u{FE80D}", ["slot_machine"], 7, 51, 15, 0], "1f3b1": [["\u{1F3B1}"], "\uE42C", "\u{FE80E}", ["8ball"], 7, 52, 15, 0], "1f3b2": [["\u{1F3B2}"], "", "\u{FE80F}", ["game_die"], 7, 53, 15, 0], "1f3b3": [["\u{1F3B3}"], "", "\u{FE810}", ["bowling"], 7, 54, 15, 0], "1f3b4": [["\u{1F3B4}"], "", "\u{FE811}", ["flower_playing_cards"], 7, 55, 15, 0], "1f3b5": [["\u{1F3B5}"], "\uE03E", "\u{FE813}", ["musical_note"], 7, 56, 15, 0], "1f3b6": [["\u{1F3B6}"], "\uE326", "\u{FE814}", ["notes"], 7, 57, 15, 0], "1f3b7": [["\u{1F3B7}"], "\uE040", "\u{FE815}", ["saxophone"], 7, 58, 15, 0], "1f3b8": [["\u{1F3B8}"], "\uE041", "\u{FE816}", ["guitar"], 7, 59, 15, 0], "1f3b9": [["\u{1F3B9}"], "", "\u{FE817}", ["musical_keyboard"], 7, 60, 15, 0], "1f3ba": [["\u{1F3BA}"], "\uE042", "\u{FE818}", ["trumpet"], 8, 0, 15, 0], "1f3bb": [["\u{1F3BB}"], "", "\u{FE819}", ["violin"], 8, 1, 15, 0], "1f3bc": [["\u{1F3BC}"], "", "\u{FE81A}", ["musical_score"], 8, 2, 15, 0], "1f3bd": [["\u{1F3BD}"], "", "\u{FE7D0}", ["running_shirt_with_sash"], 8, 3, 15, 0], "1f3be": [["\u{1F3BE}"], "\uE015", "\u{FE7D3}", ["tennis"], 8, 4, 15, 0], "1f3bf": [["\u{1F3BF}"], "\uE013", "\u{FE7D5}", ["ski"], 8, 5, 15, 0], "1f3c0": [["\u{1F3C0}"], "\uE42A", "\u{FE7D6}", ["basketball"], 8, 6, 15, 0], "1f3c1": [["\u{1F3C1}"], "\uE132", "\u{FE7D7}", ["checkered_flag"], 8, 7, 15, 0], "1f3c2": [["\u{1F3C2}"], "", "\u{FE7D8}", ["snowboarder"], 8, 8, 15, 0], "1f3c3-200d-2640-fe0f": [["\u{1F3C3}\u200D\u2640\uFE0F", "\u{1F3C3}\u200D\u2640"], "", "", ["woman-running"], 8, 14, 15, 0], "1f3c3-200d-2642-fe0f": [["\u{1F3C3}\u200D\u2642\uFE0F", "\u{1F3C3}\u200D\u2642", "\u{1F3C3}"], "", "", ["man-running", "runner", "running"], 8, 20, 15, 0], "1f3c4-200d-2640-fe0f": [["\u{1F3C4}\u200D\u2640\uFE0F", "\u{1F3C4}\u200D\u2640"], "", "", ["woman-surfing"], 8, 32, 15, 0], "1f3c4-200d-2642-fe0f": [["\u{1F3C4}\u200D\u2642\uFE0F", "\u{1F3C4}\u200D\u2642", "\u{1F3C4}"], "", "", ["man-surfing", "surfer"], 8, 38, 15, 0], "1f3c5": [["\u{1F3C5}"], "", "", ["sports_medal"], 8, 50, 15, 0], "1f3c6": [["\u{1F3C6}"], "\uE131", "\u{FE7DB}", ["trophy"], 8, 51, 15, 0], "1f3c7": [["\u{1F3C7}"], "", "", ["horse_racing"], 8, 52, 15, 0], "1f3c8": [["\u{1F3C8}"], "\uE42B", "\u{FE7DD}", ["football"], 8, 58, 15, 0], "1f3c9": [["\u{1F3C9}"], "", "", ["rugby_football"], 8, 59, 15, 0], "1f3ca-200d-2640-fe0f": [["\u{1F3CA}\u200D\u2640\uFE0F", "\u{1F3CA}\u200D\u2640"], "", "", ["woman-swimming"], 8, 60, 15, 0], "1f3ca-200d-2642-fe0f": [["\u{1F3CA}\u200D\u2642\uFE0F", "\u{1F3CA}\u200D\u2642", "\u{1F3CA}"], "", "", ["man-swimming", "swimmer"], 9, 5, 15, 0], "1f3cb-fe0f-200d-2640-fe0f": [["\u{1F3CB}\uFE0F\u200D\u2640\uFE0F"], "", "", ["woman-lifting-weights"], 9, 17, 7, 0], "1f3cb-fe0f-200d-2642-fe0f": [["\u{1F3CB}\uFE0F\u200D\u2642\uFE0F", "\u{1F3CB}\uFE0F", "\u{1F3CB}"], "", "", ["man-lifting-weights", "weight_lifter"], 9, 23, 7, 0], "1f3cc-fe0f-200d-2640-fe0f": [["\u{1F3CC}\uFE0F\u200D\u2640\uFE0F"], "", "", ["woman-golfing"], 9, 35, 7, 0], "1f3cc-fe0f-200d-2642-fe0f": [["\u{1F3CC}\uFE0F\u200D\u2642\uFE0F", "\u{1F3CC}\uFE0F", "\u{1F3CC}"], "", "", ["man-golfing", "golfer"], 9, 41, 7, 0], "1f3cd-fe0f": [["\u{1F3CD}\uFE0F", "\u{1F3CD}"], "", "", ["racing_motorcycle"], 9, 53, 15, 0], "1f3ce-fe0f": [["\u{1F3CE}\uFE0F", "\u{1F3CE}"], "", "", ["racing_car"], 9, 54, 15, 0], "1f3cf": [["\u{1F3CF}"], "", "", ["cricket_bat_and_ball"], 9, 55, 15, 0], "1f3d0": [["\u{1F3D0}"], "", "", ["volleyball"], 9, 56, 15, 0], "1f3d1": [["\u{1F3D1}"], "", "", ["field_hockey_stick_and_ball"], 9, 57, 15, 0], "1f3d2": [["\u{1F3D2}"], "", "", ["ice_hockey_stick_and_puck"], 9, 58, 15, 0], "1f3d3": [["\u{1F3D3}"], "", "", ["table_tennis_paddle_and_ball"], 9, 59, 15, 0], "1f3d4-fe0f": [["\u{1F3D4}\uFE0F", "\u{1F3D4}"], "", "", ["snow_capped_mountain"], 9, 60, 15, 0], "1f3d5-fe0f": [["\u{1F3D5}\uFE0F", "\u{1F3D5}"], "", "", ["camping"], 10, 0, 15, 0], "1f3d6-fe0f": [["\u{1F3D6}\uFE0F", "\u{1F3D6}"], "", "", ["beach_with_umbrella"], 10, 1, 15, 0], "1f3d7-fe0f": [["\u{1F3D7}\uFE0F", "\u{1F3D7}"], "", "", ["building_construction"], 10, 2, 15, 0], "1f3d8-fe0f": [["\u{1F3D8}\uFE0F", "\u{1F3D8}"], "", "", ["house_buildings"], 10, 3, 15, 0], "1f3d9-fe0f": [["\u{1F3D9}\uFE0F", "\u{1F3D9}"], "", "", ["cityscape"], 10, 4, 15, 0], "1f3da-fe0f": [["\u{1F3DA}\uFE0F", "\u{1F3DA}"], "", "", ["derelict_house_building"], 10, 5, 15, 0], "1f3db-fe0f": [["\u{1F3DB}\uFE0F", "\u{1F3DB}"], "", "", ["classical_building"], 10, 6, 15, 0], "1f3dc-fe0f": [["\u{1F3DC}\uFE0F", "\u{1F3DC}"], "", "", ["desert"], 10, 7, 15, 0], "1f3dd-fe0f": [["\u{1F3DD}\uFE0F", "\u{1F3DD}"], "", "", ["desert_island"], 10, 8, 15, 0], "1f3de-fe0f": [["\u{1F3DE}\uFE0F", "\u{1F3DE}"], "", "", ["national_park"], 10, 9, 15, 0], "1f3df-fe0f": [["\u{1F3DF}\uFE0F", "\u{1F3DF}"], "", "", ["stadium"], 10, 10, 15, 0], "1f3e0": [["\u{1F3E0}"], "\uE036", "\u{FE4B0}", ["house"], 10, 11, 15, 0], "1f3e1": [["\u{1F3E1}"], "", "\u{FE4B1}", ["house_with_garden"], 10, 12, 15, 0], "1f3e2": [["\u{1F3E2}"], "\uE038", "\u{FE4B2}", ["office"], 10, 13, 15, 0], "1f3e3": [["\u{1F3E3}"], "\uE153", "\u{FE4B3}", ["post_office"], 10, 14, 15, 0], "1f3e4": [["\u{1F3E4}"], "", "", ["european_post_office"], 10, 15, 15, 0], "1f3e5": [["\u{1F3E5}"], "\uE155", "\u{FE4B4}", ["hospital"], 10, 16, 15, 0], "1f3e6": [["\u{1F3E6}"], "\uE14D", "\u{FE4B5}", ["bank"], 10, 17, 15, 0], "1f3e7": [["\u{1F3E7}"], "\uE154", "\u{FE4B6}", ["atm"], 10, 18, 15, 0], "1f3e8": [["\u{1F3E8}"], "\uE158", "\u{FE4B7}", ["hotel"], 10, 19, 15, 0], "1f3e9": [["\u{1F3E9}"], "\uE501", "\u{FE4B8}", ["love_hotel"], 10, 20, 15, 0], "1f3ea": [["\u{1F3EA}"], "\uE156", "\u{FE4B9}", ["convenience_store"], 10, 21, 15, 0], "1f3eb": [["\u{1F3EB}"], "\uE157", "\u{FE4BA}", ["school"], 10, 22, 15, 0], "1f3ec": [["\u{1F3EC}"], "\uE504", "\u{FE4BD}", ["department_store"], 10, 23, 15, 0], "1f3ed": [["\u{1F3ED}"], "\uE508", "\u{FE4C0}", ["factory"], 10, 24, 15, 0], "1f3ee": [["\u{1F3EE}"], "", "\u{FE4C2}", ["izakaya_lantern", "lantern"], 10, 25, 15, 0], "1f3ef": [["\u{1F3EF}"], "\uE505", "\u{FE4BE}", ["japanese_castle"], 10, 26, 15, 0], "1f3f0": [["\u{1F3F0}"], "\uE506", "\u{FE4BF}", ["european_castle"], 10, 27, 15, 0], "1f3f3-fe0f-200d-1f308": [["\u{1F3F3}\uFE0F\u200D\u{1F308}", "\u{1F3F3}\u200D\u{1F308}"], "", "", ["rainbow-flag"], 10, 28, 15, 0], "1f3f3-fe0f-200d-26a7-fe0f": [["\u{1F3F3}\uFE0F\u200D\u26A7\uFE0F"], "", "", ["transgender_flag"], 10, 29, 7, 0], "1f3f3-fe0f": [["\u{1F3F3}\uFE0F", "\u{1F3F3}"], "", "", ["waving_white_flag"], 10, 30, 15, 0], "1f3f4-200d-2620-fe0f": [["\u{1F3F4}\u200D\u2620\uFE0F", "\u{1F3F4}\u200D\u2620"], "", "", ["pirate_flag"], 10, 31, 15, 0], "1f3f4-e0067-e0062-e0065-e006e-e0067-e007f": [["\u{1F3F4}\u{E0067}\u{E0062}\u{E0065}\u{E006E}\u{E0067}\u{E007F}"], "", "", ["flag-england"], 10, 32, 15, 0], "1f3f4-e0067-e0062-e0073-e0063-e0074-e007f": [["\u{1F3F4}\u{E0067}\u{E0062}\u{E0073}\u{E0063}\u{E0074}\u{E007F}"], "", "", ["flag-scotland"], 10, 33, 15, 0], "1f3f4-e0067-e0062-e0077-e006c-e0073-e007f": [["\u{1F3F4}\u{E0067}\u{E0062}\u{E0077}\u{E006C}\u{E0073}\u{E007F}"], "", "", ["flag-wales"], 10, 34, 15, 0], "1f3f4": [["\u{1F3F4}"], "", "", ["waving_black_flag"], 10, 35, 15, 0], "1f3f5-fe0f": [["\u{1F3F5}\uFE0F", "\u{1F3F5}"], "", "", ["rosette"], 10, 36, 15, 0], "1f3f7-fe0f": [["\u{1F3F7}\uFE0F", "\u{1F3F7}"], "", "", ["label"], 10, 37, 15, 0], "1f3f8": [["\u{1F3F8}"], "", "", ["badminton_racquet_and_shuttlecock"], 10, 38, 15, 0], "1f3f9": [["\u{1F3F9}"], "", "", ["bow_and_arrow"], 10, 39, 15, 0], "1f3fa": [["\u{1F3FA}"], "", "", ["amphora"], 10, 40, 15, 0], "1f3fb": [["\u{1F3FB}"], "", "", ["skin-tone-2"], 10, 41, 15, 0], "1f3fc": [["\u{1F3FC}"], "", "", ["skin-tone-3"], 10, 42, 15, 0], "1f3fd": [["\u{1F3FD}"], "", "", ["skin-tone-4"], 10, 43, 15, 0], "1f3fe": [["\u{1F3FE}"], "", "", ["skin-tone-5"], 10, 44, 15, 0], "1f3ff": [["\u{1F3FF}"], "", "", ["skin-tone-6"], 10, 45, 15, 0], "1f400": [["\u{1F400}"], "", "", ["rat"], 10, 46, 15, 0], "1f401": [["\u{1F401}"], "", "", ["mouse2"], 10, 47, 15, 0], "1f402": [["\u{1F402}"], "", "", ["ox"], 10, 48, 15, 0], "1f403": [["\u{1F403}"], "", "", ["water_buffalo"], 10, 49, 15, 0], "1f404": [["\u{1F404}"], "", "", ["cow2"], 10, 50, 15, 0], "1f405": [["\u{1F405}"], "", "", ["tiger2"], 10, 51, 15, 0], "1f406": [["\u{1F406}"], "", "", ["leopard"], 10, 52, 15, 0], "1f407": [["\u{1F407}"], "", "", ["rabbit2"], 10, 53, 15, 0], "1f408-200d-2b1b": [["\u{1F408}\u200D\u2B1B"], "", "", ["black_cat"], 10, 54, 15, 0], "1f408": [["\u{1F408}"], "", "", ["cat2"], 10, 55, 15, 0], "1f409": [["\u{1F409}"], "", "", ["dragon"], 10, 56, 15, 0], "1f40a": [["\u{1F40A}"], "", "", ["crocodile"], 10, 57, 15, 0], "1f40b": [["\u{1F40B}"], "", "", ["whale2"], 10, 58, 15, 0], "1f40c": [["\u{1F40C}"], "", "\u{FE1B9}", ["snail"], 10, 59, 15, 0], "1f40d": [["\u{1F40D}"], "\uE52D", "\u{FE1D3}", ["snake"], 10, 60, 15, 0], "1f40e": [["\u{1F40E}"], "\uE134", "\u{FE7DC}", ["racehorse"], 11, 0, 15, 0], "1f40f": [["\u{1F40F}"], "", "", ["ram"], 11, 1, 15, 0], "1f410": [["\u{1F410}"], "", "", ["goat"], 11, 2, 15, 0], "1f411": [["\u{1F411}"], "\uE529", "\u{FE1CF}", ["sheep"], 11, 3, 15, 0], "1f412": [["\u{1F412}"], "\uE528", "\u{FE1CE}", ["monkey"], 11, 4, 15, 0], "1f413": [["\u{1F413}"], "", "", ["rooster"], 11, 5, 15, 0], "1f414": [["\u{1F414}"], "\uE52E", "\u{FE1D4}", ["chicken"], 11, 6, 15, 0], "1f415-200d-1f9ba": [["\u{1F415}\u200D\u{1F9BA}"], "", "", ["service_dog"], 11, 7, 15, 0], "1f415": [["\u{1F415}"], "", "", ["dog2"], 11, 8, 15, 0], "1f416": [["\u{1F416}"], "", "", ["pig2"], 11, 9, 15, 0], "1f417": [["\u{1F417}"], "\uE52F", "\u{FE1D5}", ["boar"], 11, 10, 15, 0], "1f418": [["\u{1F418}"], "\uE526", "\u{FE1CC}", ["elephant"], 11, 11, 15, 0], "1f419": [["\u{1F419}"], "\uE10A", "\u{FE1C5}", ["octopus"], 11, 12, 15, 0], "1f41a": [["\u{1F41A}"], "\uE441", "\u{FE1C6}", ["shell"], 11, 13, 15, 0], "1f41b": [["\u{1F41B}"], "\uE525", "\u{FE1CB}", ["bug"], 11, 14, 15, 0], "1f41c": [["\u{1F41C}"], "", "\u{FE1DA}", ["ant"], 11, 15, 15, 0], "1f41d": [["\u{1F41D}"], "", "\u{FE1E1}", ["bee", "honeybee"], 11, 16, 15, 0], "1f41e": [["\u{1F41E}"], "", "\u{FE1E2}", ["ladybug", "lady_beetle"], 11, 17, 15, 0], "1f41f": [["\u{1F41F}"], "\uE019", "\u{FE1BD}", ["fish"], 11, 18, 15, 0], "1f420": [["\u{1F420}"], "\uE522", "\u{FE1C9}", ["tropical_fish"], 11, 19, 15, 0], "1f421": [["\u{1F421}"], "", "\u{FE1D9}", ["blowfish"], 11, 20, 15, 0], "1f422": [["\u{1F422}"], "", "\u{FE1DC}", ["turtle"], 11, 21, 15, 0], "1f423": [["\u{1F423}"], "", "\u{FE1DD}", ["hatching_chick"], 11, 22, 15, 0], "1f424": [["\u{1F424}"], "\uE523", "\u{FE1BA}", ["baby_chick"], 11, 23, 15, 0], "1f425": [["\u{1F425}"], "", "\u{FE1BB}", ["hatched_chick"], 11, 24, 15, 0], "1f426-200d-2b1b": [["\u{1F426}\u200D\u2B1B"], "", "", ["black_bird"], 11, 25, 3, 0], "1f426": [["\u{1F426}"], "\uE521", "\u{FE1C8}", ["bird"], 11, 26, 15, 0], "1f427": [["\u{1F427}"], "\uE055", "\u{FE1BC}", ["penguin"], 11, 27, 15, 0], "1f428": [["\u{1F428}"], "\uE527", "\u{FE1CD}", ["koala"], 11, 28, 15, 0], "1f429": [["\u{1F429}"], "", "\u{FE1D8}", ["poodle"], 11, 29, 15, 0], "1f42a": [["\u{1F42A}"], "", "", ["dromedary_camel"], 11, 30, 15, 0], "1f42b": [["\u{1F42B}"], "\uE530", "\u{FE1D6}", ["camel"], 11, 31, 15, 0], "1f42c": [["\u{1F42C}"], "\uE520", "\u{FE1C7}", ["dolphin", "flipper"], 11, 32, 15, 0], "1f42d": [["\u{1F42D}"], "\uE053", "\u{FE1C2}", ["mouse"], 11, 33, 15, 0], "1f42e": [["\u{1F42E}"], "\uE52B", "\u{FE1D1}", ["cow"], 11, 34, 15, 0], "1f42f": [["\u{1F42F}"], "\uE050", "\u{FE1C0}", ["tiger"], 11, 35, 15, 0], "1f430": [["\u{1F430}"], "\uE52C", "\u{FE1D2}", ["rabbit"], 11, 36, 15, 0], "1f431": [["\u{1F431}"], "\uE04F", "\u{FE1B8}", ["cat"], 11, 37, 15, 0], "1f432": [["\u{1F432}"], "", "\u{FE1DE}", ["dragon_face"], 11, 38, 15, 0], "1f433": [["\u{1F433}"], "\uE054", "\u{FE1C3}", ["whale"], 11, 39, 15, 0], "1f434": [["\u{1F434}"], "\uE01A", "\u{FE1BE}", ["horse"], 11, 40, 15, 0], "1f435": [["\u{1F435}"], "\uE109", "\u{FE1C4}", ["monkey_face"], 11, 41, 15, 0], "1f436": [["\u{1F436}"], "\uE052", "\u{FE1B7}", ["dog"], 11, 42, 15, 0], "1f437": [["\u{1F437}"], "\uE10B", "\u{FE1BF}", ["pig"], 11, 43, 15, 0], "1f438": [["\u{1F438}"], "\uE531", "\u{FE1D7}", ["frog"], 11, 44, 15, 0], "1f439": [["\u{1F439}"], "\uE524", "\u{FE1CA}", ["hamster"], 11, 45, 15, 0], "1f43a": [["\u{1F43A}"], "\uE52A", "\u{FE1D0}", ["wolf"], 11, 46, 15, 0], "1f43b-200d-2744-fe0f": [["\u{1F43B}\u200D\u2744\uFE0F", "\u{1F43B}\u200D\u2744"], "", "", ["polar_bear"], 11, 47, 15, 0], "1f43b": [["\u{1F43B}"], "\uE051", "\u{FE1C1}", ["bear"], 11, 48, 15, 0], "1f43c": [["\u{1F43C}"], "", "\u{FE1DF}", ["panda_face"], 11, 49, 15, 0], "1f43d": [["\u{1F43D}"], "", "\u{FE1E0}", ["pig_nose"], 11, 50, 15, 0], "1f43e": [["\u{1F43E}"], "", "\u{FE1DB}", ["feet", "paw_prints"], 11, 51, 15, 0], "1f43f-fe0f": [["\u{1F43F}\uFE0F", "\u{1F43F}"], "", "", ["chipmunk"], 11, 52, 15, 0], "1f440": [["\u{1F440}"], "\uE419", "\u{FE190}", ["eyes"], 11, 53, 15, 0], "1f441-fe0f-200d-1f5e8-fe0f": [["\u{1F441}\uFE0F\u200D\u{1F5E8}\uFE0F"], "", "", ["eye-in-speech-bubble"], 11, 54, 7, 0], "1f441-fe0f": [["\u{1F441}\uFE0F", "\u{1F441}"], "", "", ["eye"], 11, 55, 15, 0], "1f442": [["\u{1F442}"], "\uE41B", "\u{FE191}", ["ear"], 11, 56, 15, 0], "1f443": [["\u{1F443}"], "\uE41A", "\u{FE192}", ["nose"], 12, 1, 15, 0], "1f444": [["\u{1F444}"], "\uE41C", "\u{FE193}", ["lips"], 12, 7, 15, 0], "1f445": [["\u{1F445}"], "", "\u{FE194}", ["tongue"], 12, 8, 15, 0], "1f446": [["\u{1F446}"], "\uE22E", "\u{FEB99}", ["point_up_2"], 12, 9, 15, 0], "1f447": [["\u{1F447}"], "\uE22F", "\u{FEB9A}", ["point_down"], 12, 15, 15, 0], "1f448": [["\u{1F448}"], "\uE230", "\u{FEB9B}", ["point_left"], 12, 21, 15, 0], "1f449": [["\u{1F449}"], "\uE231", "\u{FEB9C}", ["point_right"], 12, 27, 15, 0], "1f44a": [["\u{1F44A}"], "\uE00D", "\u{FEB96}", ["facepunch", "punch"], 12, 33, 15, 0], "1f44b": [["\u{1F44B}"], "\uE41E", "\u{FEB9D}", ["wave"], 12, 39, 15, 0], "1f44c": [["\u{1F44C}"], "\uE420", "\u{FEB9F}", ["ok_hand"], 12, 45, 15, 0], "1f44d": [["\u{1F44D}"], "\uE00E", "\u{FEB97}", ["+1", "thumbsup"], 12, 51, 15, 0], "1f44e": [["\u{1F44E}"], "\uE421", "\u{FEBA0}", ["-1", "thumbsdown"], 12, 57, 15, 0], "1f44f": [["\u{1F44F}"], "\uE41F", "\u{FEB9E}", ["clap"], 13, 2, 15, 0], "1f450": [["\u{1F450}"], "\uE422", "\u{FEBA1}", ["open_hands"], 13, 8, 15, 0], "1f451": [["\u{1F451}"], "\uE10E", "\u{FE4D1}", ["crown"], 13, 14, 15, 0], "1f452": [["\u{1F452}"], "\uE318", "\u{FE4D4}", ["womans_hat"], 13, 15, 15, 0], "1f453": [["\u{1F453}"], "", "\u{FE4CE}", ["eyeglasses"], 13, 16, 15, 0], "1f454": [["\u{1F454}"], "\uE302", "\u{FE4D3}", ["necktie"], 13, 17, 15, 0], "1f455": [["\u{1F455}"], "\uE006", "\u{FE4CF}", ["shirt", "tshirt"], 13, 18, 15, 0], "1f456": [["\u{1F456}"], "", "\u{FE4D0}", ["jeans"], 13, 19, 15, 0], "1f457": [["\u{1F457}"], "\uE319", "\u{FE4D5}", ["dress"], 13, 20, 15, 0], "1f458": [["\u{1F458}"], "\uE321", "\u{FE4D9}", ["kimono"], 13, 21, 15, 0], "1f459": [["\u{1F459}"], "\uE322", "\u{FE4DA}", ["bikini"], 13, 22, 15, 0], "1f45a": [["\u{1F45A}"], "", "\u{FE4DB}", ["womans_clothes"], 13, 23, 15, 0], "1f45b": [["\u{1F45B}"], "", "\u{FE4DC}", ["purse"], 13, 24, 15, 0], "1f45c": [["\u{1F45C}"], "\uE323", "\u{FE4F0}", ["handbag"], 13, 25, 15, 0], "1f45d": [["\u{1F45D}"], "", "\u{FE4F1}", ["pouch"], 13, 26, 15, 0], "1f45e": [["\u{1F45E}"], "", "\u{FE4CC}", ["mans_shoe", "shoe"], 13, 27, 15, 0], "1f45f": [["\u{1F45F}"], "\uE007", "\u{FE4CD}", ["athletic_shoe"], 13, 28, 15, 0], "1f460": [["\u{1F460}"], "\uE13E", "\u{FE4D6}", ["high_heel"], 13, 29, 15, 0], "1f461": [["\u{1F461}"], "\uE31A", "\u{FE4D7}", ["sandal"], 13, 30, 15, 0], "1f462": [["\u{1F462}"], "\uE31B", "\u{FE4D8}", ["boot"], 13, 31, 15, 0], "1f463": [["\u{1F463}"], "\uE536", "\u{FE553}", ["footprints"], 13, 32, 15, 0], "1f464": [["\u{1F464}"], "", "\u{FE19A}", ["bust_in_silhouette"], 13, 33, 15, 0], "1f465": [["\u{1F465}"], "", "", ["busts_in_silhouette"], 13, 34, 15, 0], "1f466": [["\u{1F466}"], "\uE001", "\u{FE19B}", ["boy"], 13, 35, 15, 0], "1f467": [["\u{1F467}"], "\uE002", "\u{FE19C}", ["girl"], 13, 41, 15, 0], "1f468-200d-1f33e": [["\u{1F468}\u200D\u{1F33E}"], "", "", ["male-farmer"], 13, 47, 15, 0], "1f468-200d-1f373": [["\u{1F468}\u200D\u{1F373}"], "", "", ["male-cook"], 13, 53, 15, 0], "1f468-200d-1f37c": [["\u{1F468}\u200D\u{1F37C}"], "", "", ["man_feeding_baby"], 13, 59, 15, 0], "1f468-200d-1f393": [["\u{1F468}\u200D\u{1F393}"], "", "", ["male-student"], 14, 4, 15, 0], "1f468-200d-1f3a4": [["\u{1F468}\u200D\u{1F3A4}"], "", "", ["male-singer"], 14, 10, 15, 0], "1f468-200d-1f3a8": [["\u{1F468}\u200D\u{1F3A8}"], "", "", ["male-artist"], 14, 16, 15, 0], "1f468-200d-1f3eb": [["\u{1F468}\u200D\u{1F3EB}"], "", "", ["male-teacher"], 14, 22, 15, 0], "1f468-200d-1f3ed": [["\u{1F468}\u200D\u{1F3ED}"], "", "", ["male-factory-worker"], 14, 28, 15, 0], "1f468-200d-1f466-200d-1f466": [["\u{1F468}\u200D\u{1F466}\u200D\u{1F466}"], "", "", ["man-boy-boy"], 14, 34, 15, 0], "1f468-200d-1f466": [["\u{1F468}\u200D\u{1F466}"], "", "", ["man-boy"], 14, 35, 15, 0], "1f468-200d-1f467-200d-1f466": [["\u{1F468}\u200D\u{1F467}\u200D\u{1F466}"], "", "", ["man-girl-boy"], 14, 36, 15, 0], "1f468-200d-1f467-200d-1f467": [["\u{1F468}\u200D\u{1F467}\u200D\u{1F467}"], "", "", ["man-girl-girl"], 14, 37, 15, 0], "1f468-200d-1f467": [["\u{1F468}\u200D\u{1F467}"], "", "", ["man-girl"], 14, 38, 15, 0], "1f468-200d-1f468-200d-1f466": [["\u{1F468}\u200D\u{1F468}\u200D\u{1F466}"], "", "", ["man-man-boy"], 14, 39, 15, 0], "1f468-200d-1f468-200d-1f466-200d-1f466": [["\u{1F468}\u200D\u{1F468}\u200D\u{1F466}\u200D\u{1F466}"], "", "", ["man-man-boy-boy"], 14, 40, 15, 0], "1f468-200d-1f468-200d-1f467": [["\u{1F468}\u200D\u{1F468}\u200D\u{1F467}"], "", "", ["man-man-girl"], 14, 41, 15, 0], "1f468-200d-1f468-200d-1f467-200d-1f466": [["\u{1F468}\u200D\u{1F468}\u200D\u{1F467}\u200D\u{1F466}"], "", "", ["man-man-girl-boy"], 14, 42, 15, 0], "1f468-200d-1f468-200d-1f467-200d-1f467": [["\u{1F468}\u200D\u{1F468}\u200D\u{1F467}\u200D\u{1F467}"], "", "", ["man-man-girl-girl"], 14, 43, 15, 0], "1f468-200d-1f469-200d-1f466": [["\u{1F468}\u200D\u{1F469}\u200D\u{1F466}", "\u{1F46A}"], "", "", ["man-woman-boy", "family"], 14, 44, 15, 0], "1f468-200d-1f469-200d-1f466-200d-1f466": [["\u{1F468}\u200D\u{1F469}\u200D\u{1F466}\u200D\u{1F466}"], "", "", ["man-woman-boy-boy"], 14, 45, 15, 0], "1f468-200d-1f469-200d-1f467": [["\u{1F468}\u200D\u{1F469}\u200D\u{1F467}"], "", "", ["man-woman-girl"], 14, 46, 15, 0], "1f468-200d-1f469-200d-1f467-200d-1f466": [["\u{1F468}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F466}"], "", "", ["man-woman-girl-boy"], 14, 47, 15, 0], "1f468-200d-1f469-200d-1f467-200d-1f467": [["\u{1F468}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F467}"], "", "", ["man-woman-girl-girl"], 14, 48, 15, 0], "1f468-200d-1f4bb": [["\u{1F468}\u200D\u{1F4BB}"], "", "", ["male-technologist"], 14, 49, 15, 0], "1f468-200d-1f4bc": [["\u{1F468}\u200D\u{1F4BC}"], "", "", ["male-office-worker"], 14, 55, 15, 0], "1f468-200d-1f527": [["\u{1F468}\u200D\u{1F527}"], "", "", ["male-mechanic"], 15, 0, 15, 0], "1f468-200d-1f52c": [["\u{1F468}\u200D\u{1F52C}"], "", "", ["male-scientist"], 15, 6, 15, 0], "1f468-200d-1f680": [["\u{1F468}\u200D\u{1F680}"], "", "", ["male-astronaut"], 15, 12, 15, 0], "1f468-200d-1f692": [["\u{1F468}\u200D\u{1F692}"], "", "", ["male-firefighter"], 15, 18, 15, 0], "1f468-200d-1f9af": [["\u{1F468}\u200D\u{1F9AF}"], "", "", ["man_with_probing_cane"], 15, 24, 15, 0], "1f468-200d-1f9b0": [["\u{1F468}\u200D\u{1F9B0}"], "", "", ["red_haired_man"], 15, 30, 15, 0], "1f468-200d-1f9b1": [["\u{1F468}\u200D\u{1F9B1}"], "", "", ["curly_haired_man"], 15, 36, 15, 0], "1f468-200d-1f9b2": [["\u{1F468}\u200D\u{1F9B2}"], "", "", ["bald_man"], 15, 42, 15, 0], "1f468-200d-1f9b3": [["\u{1F468}\u200D\u{1F9B3}"], "", "", ["white_haired_man"], 15, 48, 15, 0], "1f468-200d-1f9bc": [["\u{1F468}\u200D\u{1F9BC}"], "", "", ["man_in_motorized_wheelchair"], 15, 54, 15, 0], "1f468-200d-1f9bd": [["\u{1F468}\u200D\u{1F9BD}"], "", "", ["man_in_manual_wheelchair"], 15, 60, 15, 0], "1f468-200d-2695-fe0f": [["\u{1F468}\u200D\u2695\uFE0F", "\u{1F468}\u200D\u2695"], "", "", ["male-doctor"], 16, 5, 15, 0], "1f468-200d-2696-fe0f": [["\u{1F468}\u200D\u2696\uFE0F", "\u{1F468}\u200D\u2696"], "", "", ["male-judge"], 16, 11, 15, 0], "1f468-200d-2708-fe0f": [["\u{1F468}\u200D\u2708\uFE0F", "\u{1F468}\u200D\u2708"], "", "", ["male-pilot"], 16, 17, 15, 0], "1f468-200d-2764-fe0f-200d-1f468": [["\u{1F468}\u200D\u2764\uFE0F\u200D\u{1F468}", "\u{1F468}\u200D\u2764\u200D\u{1F468}"], "", "", ["man-heart-man"], 16, 23, 15, 0], "1f468-200d-2764-fe0f-200d-1f48b-200d-1f468": [["\u{1F468}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}", "\u{1F468}\u200D\u2764\u200D\u{1F48B}\u200D\u{1F468}"], "", "", ["man-kiss-man"], 16, 49, 15, 0], "1f468": [["\u{1F468}"], "\uE004", "\u{FE19D}", ["man"], 17, 14, 15, 0], "1f469-200d-1f33e": [["\u{1F469}\u200D\u{1F33E}"], "", "", ["female-farmer"], 17, 20, 15, 0], "1f469-200d-1f373": [["\u{1F469}\u200D\u{1F373}"], "", "", ["female-cook"], 17, 26, 15, 0], "1f469-200d-1f37c": [["\u{1F469}\u200D\u{1F37C}"], "", "", ["woman_feeding_baby"], 17, 32, 15, 0], "1f469-200d-1f393": [["\u{1F469}\u200D\u{1F393}"], "", "", ["female-student"], 17, 38, 15, 0], "1f469-200d-1f3a4": [["\u{1F469}\u200D\u{1F3A4}"], "", "", ["female-singer"], 17, 44, 15, 0], "1f469-200d-1f3a8": [["\u{1F469}\u200D\u{1F3A8}"], "", "", ["female-artist"], 17, 50, 15, 0], "1f469-200d-1f3eb": [["\u{1F469}\u200D\u{1F3EB}"], "", "", ["female-teacher"], 17, 56, 15, 0], "1f469-200d-1f3ed": [["\u{1F469}\u200D\u{1F3ED}"], "", "", ["female-factory-worker"], 18, 1, 15, 0], "1f469-200d-1f466-200d-1f466": [["\u{1F469}\u200D\u{1F466}\u200D\u{1F466}"], "", "", ["woman-boy-boy"], 18, 7, 15, 0], "1f469-200d-1f466": [["\u{1F469}\u200D\u{1F466}"], "", "", ["woman-boy"], 18, 8, 15, 0], "1f469-200d-1f467-200d-1f466": [["\u{1F469}\u200D\u{1F467}\u200D\u{1F466}"], "", "", ["woman-girl-boy"], 18, 9, 15, 0], "1f469-200d-1f467-200d-1f467": [["\u{1F469}\u200D\u{1F467}\u200D\u{1F467}"], "", "", ["woman-girl-girl"], 18, 10, 15, 0], "1f469-200d-1f467": [["\u{1F469}\u200D\u{1F467}"], "", "", ["woman-girl"], 18, 11, 15, 0], "1f469-200d-1f469-200d-1f466": [["\u{1F469}\u200D\u{1F469}\u200D\u{1F466}"], "", "", ["woman-woman-boy"], 18, 12, 15, 0], "1f469-200d-1f469-200d-1f466-200d-1f466": [["\u{1F469}\u200D\u{1F469}\u200D\u{1F466}\u200D\u{1F466}"], "", "", ["woman-woman-boy-boy"], 18, 13, 15, 0], "1f469-200d-1f469-200d-1f467": [["\u{1F469}\u200D\u{1F469}\u200D\u{1F467}"], "", "", ["woman-woman-girl"], 18, 14, 15, 0], "1f469-200d-1f469-200d-1f467-200d-1f466": [["\u{1F469}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F466}"], "", "", ["woman-woman-girl-boy"], 18, 15, 15, 0], "1f469-200d-1f469-200d-1f467-200d-1f467": [["\u{1F469}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F467}"], "", "", ["woman-woman-girl-girl"], 18, 16, 15, 0], "1f469-200d-1f4bb": [["\u{1F469}\u200D\u{1F4BB}"], "", "", ["female-technologist"], 18, 17, 15, 0], "1f469-200d-1f4bc": [["\u{1F469}\u200D\u{1F4BC}"], "", "", ["female-office-worker"], 18, 23, 15, 0], "1f469-200d-1f527": [["\u{1F469}\u200D\u{1F527}"], "", "", ["female-mechanic"], 18, 29, 15, 0], "1f469-200d-1f52c": [["\u{1F469}\u200D\u{1F52C}"], "", "", ["female-scientist"], 18, 35, 15, 0], "1f469-200d-1f680": [["\u{1F469}\u200D\u{1F680}"], "", "", ["female-astronaut"], 18, 41, 15, 0], "1f469-200d-1f692": [["\u{1F469}\u200D\u{1F692}"], "", "", ["female-firefighter"], 18, 47, 15, 0], "1f469-200d-1f9af": [["\u{1F469}\u200D\u{1F9AF}"], "", "", ["woman_with_probing_cane"], 18, 53, 15, 0], "1f469-200d-1f9b0": [["\u{1F469}\u200D\u{1F9B0}"], "", "", ["red_haired_woman"], 18, 59, 15, 0], "1f469-200d-1f9b1": [["\u{1F469}\u200D\u{1F9B1}"], "", "", ["curly_haired_woman"], 19, 4, 15, 0], "1f469-200d-1f9b2": [["\u{1F469}\u200D\u{1F9B2}"], "", "", ["bald_woman"], 19, 10, 15, 0], "1f469-200d-1f9b3": [["\u{1F469}\u200D\u{1F9B3}"], "", "", ["white_haired_woman"], 19, 16, 15, 0], "1f469-200d-1f9bc": [["\u{1F469}\u200D\u{1F9BC}"], "", "", ["woman_in_motorized_wheelchair"], 19, 22, 15, 0], "1f469-200d-1f9bd": [["\u{1F469}\u200D\u{1F9BD}"], "", "", ["woman_in_manual_wheelchair"], 19, 28, 15, 0], "1f469-200d-2695-fe0f": [["\u{1F469}\u200D\u2695\uFE0F", "\u{1F469}\u200D\u2695"], "", "", ["female-doctor"], 19, 34, 15, 0], "1f469-200d-2696-fe0f": [["\u{1F469}\u200D\u2696\uFE0F", "\u{1F469}\u200D\u2696"], "", "", ["female-judge"], 19, 40, 15, 0], "1f469-200d-2708-fe0f": [["\u{1F469}\u200D\u2708\uFE0F", "\u{1F469}\u200D\u2708"], "", "", ["female-pilot"], 19, 46, 15, 0], "1f469-200d-2764-fe0f-200d-1f468": [["\u{1F469}\u200D\u2764\uFE0F\u200D\u{1F468}", "\u{1F469}\u200D\u2764\u200D\u{1F468}"], "", "", ["woman-heart-man"], 19, 52, 15, 0], "1f469-200d-2764-fe0f-200d-1f469": [["\u{1F469}\u200D\u2764\uFE0F\u200D\u{1F469}", "\u{1F469}\u200D\u2764\u200D\u{1F469}"], "", "", ["woman-heart-woman"], 20, 17, 15, 0], "1f469-200d-2764-fe0f-200d-1f48b-200d-1f468": [["\u{1F469}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}", "\u{1F469}\u200D\u2764\u200D\u{1F48B}\u200D\u{1F468}"], "", "", ["woman-kiss-man"], 20, 43, 15, 0], "1f469-200d-2764-fe0f-200d-1f48b-200d-1f469": [["\u{1F469}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}", "\u{1F469}\u200D\u2764\u200D\u{1F48B}\u200D\u{1F469}"], "", "", ["woman-kiss-woman"], 21, 8, 15, 0], "1f469": [["\u{1F469}"], "\uE005", "\u{FE19E}", ["woman"], 21, 34, 15, 0], "1f46b": [["\u{1F46B}"], "\uE428", "\u{FE1A0}", ["man_and_woman_holding_hands", "woman_and_man_holding_hands", "couple"], 21, 41, 15, 0], "1f46c": [["\u{1F46C}"], "", "", ["two_men_holding_hands", "men_holding_hands"], 22, 6, 15, 0], "1f46d": [["\u{1F46D}"], "", "", ["two_women_holding_hands", "women_holding_hands"], 22, 32, 15, 0], "1f46e-200d-2640-fe0f": [["\u{1F46E}\u200D\u2640\uFE0F", "\u{1F46E}\u200D\u2640"], "", "", ["female-police-officer"], 22, 58, 15, 0], "1f46e-200d-2642-fe0f": [["\u{1F46E}\u200D\u2642\uFE0F", "\u{1F46E}\u200D\u2642", "\u{1F46E}"], "", "", ["male-police-officer", "cop"], 23, 3, 15, 0], "1f46f-200d-2640-fe0f": [["\u{1F46F}\u200D\u2640\uFE0F", "\u{1F46F}\u200D\u2640", "\u{1F46F}"], "", "", ["women-with-bunny-ears-partying", "woman-with-bunny-ears-partying", "dancers"], 23, 15, 15, 0], "1f46f-200d-2642-fe0f": [["\u{1F46F}\u200D\u2642\uFE0F", "\u{1F46F}\u200D\u2642"], "", "", ["men-with-bunny-ears-partying", "man-with-bunny-ears-partying"], 23, 16, 15, 0], "1f470-200d-2640-fe0f": [["\u{1F470}\u200D\u2640\uFE0F", "\u{1F470}\u200D\u2640"], "", "", ["woman_with_veil"], 23, 18, 15, 0], "1f470-200d-2642-fe0f": [["\u{1F470}\u200D\u2642\uFE0F", "\u{1F470}\u200D\u2642"], "", "", ["man_with_veil"], 23, 24, 15, 0], "1f470": [["\u{1F470}"], "", "\u{FE1A3}", ["bride_with_veil"], 23, 30, 15, 0], "1f471-200d-2640-fe0f": [["\u{1F471}\u200D\u2640\uFE0F", "\u{1F471}\u200D\u2640"], "", "", ["blond-haired-woman"], 23, 36, 15, 0], "1f471-200d-2642-fe0f": [["\u{1F471}\u200D\u2642\uFE0F", "\u{1F471}\u200D\u2642", "\u{1F471}"], "", "", ["blond-haired-man", "person_with_blond_hair"], 23, 42, 15, 0], "1f472": [["\u{1F472}"], "\uE516", "\u{FE1A5}", ["man_with_gua_pi_mao"], 23, 54, 15, 0], "1f473-200d-2640-fe0f": [["\u{1F473}\u200D\u2640\uFE0F", "\u{1F473}\u200D\u2640"], "", "", ["woman-wearing-turban"], 23, 60, 15, 0], "1f473-200d-2642-fe0f": [["\u{1F473}\u200D\u2642\uFE0F", "\u{1F473}\u200D\u2642", "\u{1F473}"], "", "", ["man-wearing-turban", "man_with_turban"], 24, 5, 15, 0], "1f474": [["\u{1F474}"], "\uE518", "\u{FE1A7}", ["older_man"], 24, 17, 15, 0], "1f475": [["\u{1F475}"], "\uE519", "\u{FE1A8}", ["older_woman"], 24, 23, 15, 0], "1f476": [["\u{1F476}"], "\uE51A", "\u{FE1A9}", ["baby"], 24, 29, 15, 0], "1f477-200d-2640-fe0f": [["\u{1F477}\u200D\u2640\uFE0F", "\u{1F477}\u200D\u2640"], "", "", ["female-construction-worker"], 24, 35, 15, 0], "1f477-200d-2642-fe0f": [["\u{1F477}\u200D\u2642\uFE0F", "\u{1F477}\u200D\u2642", "\u{1F477}"], "", "", ["male-construction-worker", "construction_worker"], 24, 41, 15, 0], "1f478": [["\u{1F478}"], "\uE51C", "\u{FE1AB}", ["princess"], 24, 53, 15, 0], "1f479": [["\u{1F479}"], "", "\u{FE1AC}", ["japanese_ogre"], 24, 59, 15, 0], "1f47a": [["\u{1F47A}"], "", "\u{FE1AD}", ["japanese_goblin"], 24, 60, 15, 0], "1f47b": [["\u{1F47B}"], "\uE11B", "\u{FE1AE}", ["ghost"], 25, 0, 15, 0], "1f47c": [["\u{1F47C}"], "\uE04E", "\u{FE1AF}", ["angel"], 25, 1, 15, 0], "1f47d": [["\u{1F47D}"], "\uE10C", "\u{FE1B0}", ["alien"], 25, 7, 15, 0], "1f47e": [["\u{1F47E}"], "\uE12B", "\u{FE1B1}", ["space_invader"], 25, 8, 15, 0], "1f47f": [["\u{1F47F}"], "\uE11A", "\u{FE1B2}", ["imp"], 25, 9, 15, 0], "1f480": [["\u{1F480}"], "\uE11C", "\u{FE1B3}", ["skull"], 25, 10, 15, 0], "1f481-200d-2640-fe0f": [["\u{1F481}\u200D\u2640\uFE0F", "\u{1F481}\u200D\u2640", "\u{1F481}"], "", "", ["woman-tipping-hand", "information_desk_person"], 25, 11, 15, 0], "1f481-200d-2642-fe0f": [["\u{1F481}\u200D\u2642\uFE0F", "\u{1F481}\u200D\u2642"], "", "", ["man-tipping-hand"], 25, 17, 15, 0], "1f482-200d-2640-fe0f": [["\u{1F482}\u200D\u2640\uFE0F", "\u{1F482}\u200D\u2640"], "", "", ["female-guard"], 25, 29, 15, 0], "1f482-200d-2642-fe0f": [["\u{1F482}\u200D\u2642\uFE0F", "\u{1F482}\u200D\u2642", "\u{1F482}"], "", "", ["male-guard", "guardsman"], 25, 35, 15, 0], "1f483": [["\u{1F483}"], "\uE51F", "\u{FE1B6}", ["dancer"], 25, 47, 15, 0], "1f484": [["\u{1F484}"], "\uE31C", "\u{FE195}", ["lipstick"], 25, 53, 15, 0], "1f485": [["\u{1F485}"], "\uE31D", "\u{FE196}", ["nail_care"], 25, 54, 15, 0], "1f486-200d-2640-fe0f": [["\u{1F486}\u200D\u2640\uFE0F", "\u{1F486}\u200D\u2640", "\u{1F486}"], "", "", ["woman-getting-massage", "massage"], 25, 60, 15, 0], "1f486-200d-2642-fe0f": [["\u{1F486}\u200D\u2642\uFE0F", "\u{1F486}\u200D\u2642"], "", "", ["man-getting-massage"], 26, 5, 15, 0], "1f487-200d-2640-fe0f": [["\u{1F487}\u200D\u2640\uFE0F", "\u{1F487}\u200D\u2640", "\u{1F487}"], "", "", ["woman-getting-haircut", "haircut"], 26, 17, 15, 0], "1f487-200d-2642-fe0f": [["\u{1F487}\u200D\u2642\uFE0F", "\u{1F487}\u200D\u2642"], "", "", ["man-getting-haircut"], 26, 23, 15, 0], "1f488": [["\u{1F488}"], "\uE320", "\u{FE199}", ["barber"], 26, 35, 15, 0], "1f489": [["\u{1F489}"], "\uE13B", "\u{FE509}", ["syringe"], 26, 36, 15, 0], "1f48a": [["\u{1F48A}"], "\uE30F", "\u{FE50A}", ["pill"], 26, 37, 15, 0], "1f48b": [["\u{1F48B}"], "\uE003", "\u{FE823}", ["kiss"], 26, 38, 15, 0], "1f48c": [["\u{1F48C}"], "", "\u{FE824}", ["love_letter"], 26, 39, 15, 0], "1f48d": [["\u{1F48D}"], "\uE034", "\u{FE825}", ["ring"], 26, 40, 15, 0], "1f48e": [["\u{1F48E}"], "\uE035", "\u{FE826}", ["gem"], 26, 41, 15, 0], "1f48f": [["\u{1F48F}"], "\uE111", "\u{FE827}", ["couplekiss"], 26, 42, 15, 0], "1f490": [["\u{1F490}"], "\uE306", "\u{FE828}", ["bouquet"], 27, 7, 15, 0], "1f491": [["\u{1F491}"], "\uE425", "\u{FE829}", ["couple_with_heart"], 27, 8, 15, 0], "1f492": [["\u{1F492}"], "\uE43D", "\u{FE82A}", ["wedding"], 27, 34, 15, 0], "1f493": [["\u{1F493}"], "\uE327", "\u{FEB0D}", ["heartbeat"], 27, 35, 15, 0], "1f494": [["\u{1F494}"], "\uE023", "\u{FEB0E}", ["broken_heart"], 27, 36, 15, 0, "": "laughing", ":->": "laughing", ";)": "wink", ";-)": "wink", "8)": "sunglasses", ":|": "neutral_face", ":-|": "neutral_face", ":\\": "confused", ":-\\": "confused", ":/": "confused", ":-/": "confused", ":*": "kissing_heart", ":-*": "kissing_heart", ":p": "stuck_out_tongue", ":-p": "stuck_out_tongue", ":P": "stuck_out_tongue", ":-P": "stuck_out_tongue", ":b": "stuck_out_tongue", ":-b": "stuck_out_tongue", ";p": "stuck_out_tongue_winking_eye", ";-p": "stuck_out_tongue_winking_eye", ";b": "stuck_out_tongue_winking_eye", ";-b": "stuck_out_tongue_winking_eye", ";P": "stuck_out_tongue_winking_eye", ";-P": "stuck_out_tongue_winking_eye", "):": "disappointed", ":(": "disappointed", ":-(": "disappointed", ">:(": "angry", ">:-(": "angry", ":'(": "cry", "D:": "anguished", ":o": "open_mouth", ":-o": "open_mouth", ":O": "open_mouth", ":-O": "open_mouth", ":)": "slightly_smiling_face", "(:": "slightly_smiling_face", ":-)": "slightly_smiling_face", "<3": "heart" }; emoji2.prototype.variations_data = { "1f385": { "1f3fb": ["1f385-1f3fb", 7, 9, 15, ["\u{1F385}\u{1F3FB}"]], "1f3fc": ["1f385-1f3fc", 7, 10, 15, ["\u{1F385}\u{1F3FC}"]], "1f3fd": ["1f385-1f3fd", 7, 11, 15, ["\u{1F385}\u{1F3FD}"]], "1f3fe": ["1f385-1f3fe", 7, 12, 15, ["\u{1F385}\u{1F3FE}"]], "1f3ff": ["1f385-1f3ff", 7, 13, 15, ["\u{1F385}\u{1F3FF}"]] }, "1f3c2": { "1f3fb": ["1f3c2-1f3fb", 8, 9, 15, ["\u{1F3C2}\u{1F3FB}"]], "1f3fc": ["1f3c2-1f3fc", 8, 10, 15, ["\u{1F3C2}\u{1F3FC}"]], "1f3fd": ["1f3c2-1f3fd", 8, 11, 15, ["\u{1F3C2}\u{1F3FD}"]], "1f3fe": ["1f3c2-1f3fe", 8, 12, 15, ["\u{1F3C2}\u{1F3FE}"]], "1f3ff": ["1f3c2-1f3ff", 8, 13, 15, ["\u{1F3C2}\u{1F3FF}"]] }, "1f3c3-200d-2640-fe0f": { "1f3fb": ["1f3c3-1f3fb-200d-2640-fe0f", 8, 15, 15, ["\u{1F3C3}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f3c3-1f3fc-200d-2640-fe0f", 8, 16, 15, ["\u{1F3C3}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f3c3-1f3fd-200d-2640-fe0f", 8, 17, 15, ["\u{1F3C3}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f3c3-1f3fe-200d-2640-fe0f", 8, 18, 15, ["\u{1F3C3}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f3c3-1f3ff-200d-2640-fe0f", 8, 19, 15, ["\u{1F3C3}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f3c3-200d-2642-fe0f": { "1f3fb": ["1f3c3-1f3fb-200d-2642-fe0f", 8, 21, 15, ["\u{1F3C3}\u{1F3FB}\u200D\u2642\uFE0F", "\u{1F3C3}\u{1F3FB}"]], "1f3fc": ["1f3c3-1f3fc-200d-2642-fe0f", 8, 22, 15, ["\u{1F3C3}\u{1F3FC}\u200D\u2642\uFE0F", "\u{1F3C3}\u{1F3FC}"]], "1f3fd": ["1f3c3-1f3fd-200d-2642-fe0f", 8, 23, 15, ["\u{1F3C3}\u{1F3FD}\u200D\u2642\uFE0F", "\u{1F3C3}\u{1F3FD}"]], "1f3fe": ["1f3c3-1f3fe-200d-2642-fe0f", 8, 24, 15, ["\u{1F3C3}\u{1F3FE}\u200D\u2642\uFE0F", "\u{1F3C3}\u{1F3FE}"]], "1f3ff": ["1f3c3-1f3ff-200d-2642-fe0f", 8, 25, 15, ["\u{1F3C3}\u{1F3FF}\u200D\u2642\uFE0F", "\u{1F3C3}\u{1F3FF}"]] }, "1f3c4-200d-2640-fe0f": { "1f3fb": ["1f3c4-1f3fb-200d-2640-fe0f", 8, 33, 15, ["\u{1F3C4}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f3c4-1f3fc-200d-2640-fe0f", 8, 34, 15, ["\u{1F3C4}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f3c4-1f3fd-200d-2640-fe0f", 8, 35, 15, ["\u{1F3C4}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f3c4-1f3fe-200d-2640-fe0f", 8, 36, 15, ["\u{1F3C4}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f3c4-1f3ff-200d-2640-fe0f", 8, 37, 15, ["\u{1F3C4}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f3c4-200d-2642-fe0f": { "1f3fb": ["1f3c4-1f3fb-200d-2642-fe0f", 8, 39, 15, ["\u{1F3C4}\u{1F3FB}\u200D\u2642\uFE0F", "\u{1F3C4}\u{1F3FB}"]], "1f3fc": ["1f3c4-1f3fc-200d-2642-fe0f", 8, 40, 15, ["\u{1F3C4}\u{1F3FC}\u200D\u2642\uFE0F", "\u{1F3C4}\u{1F3FC}"]], "1f3fd": ["1f3c4-1f3fd-200d-2642-fe0f", 8, 41, 15, ["\u{1F3C4}\u{1F3FD}\u200D\u2642\uFE0F", "\u{1F3C4}\u{1F3FD}"]], "1f3fe": ["1f3c4-1f3fe-200d-2642-fe0f", 8, 42, 15, ["\u{1F3C4}\u{1F3FE}\u200D\u2642\uFE0F", "\u{1F3C4}\u{1F3FE}"]], "1f3ff": ["1f3c4-1f3ff-200d-2642-fe0f", 8, 43, 15, ["\u{1F3C4}\u{1F3FF}\u200D\u2642\uFE0F", "\u{1F3C4}\u{1F3FF}"]] }, "1f3c7": { "1f3fb": ["1f3c7-1f3fb", 8, 53, 15, ["\u{1F3C7}\u{1F3FB}"]], "1f3fc": ["1f3c7-1f3fc", 8, 54, 15, ["\u{1F3C7}\u{1F3FC}"]], "1f3fd": ["1f3c7-1f3fd", 8, 55, 15, ["\u{1F3C7}\u{1F3FD}"]], "1f3fe": ["1f3c7-1f3fe", 8, 56, 15, ["\u{1F3C7}\u{1F3FE}"]], "1f3ff": ["1f3c7-1f3ff", 8, 57, 15, ["\u{1F3C7}\u{1F3FF}"]] }, "1f3ca-200d-2640-fe0f": { "1f3fb": ["1f3ca-1f3fb-200d-2640-fe0f", 9, 0, 15, ["\u{1F3CA}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f3ca-1f3fc-200d-2640-fe0f", 9, 1, 15, ["\u{1F3CA}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f3ca-1f3fd-200d-2640-fe0f", 9, 2, 15, ["\u{1F3CA}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f3ca-1f3fe-200d-2640-fe0f", 9, 3, 15, ["\u{1F3CA}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f3ca-1f3ff-200d-2640-fe0f", 9, 4, 15, ["\u{1F3CA}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f3ca-200d-2642-fe0f": { "1f3fb": ["1f3ca-1f3fb-200d-2642-fe0f", 9, 6, 15, ["\u{1F3CA}\u{1F3FB}\u200D\u2642\uFE0F", "\u{1F3CA}\u{1F3FB}"]], "1f3fc": ["1f3ca-1f3fc-200d-2642-fe0f", 9, 7, 15, ["\u{1F3CA}\u{1F3FC}\u200D\u2642\uFE0F", "\u{1F3CA}\u{1F3FC}"]], "1f3fd": ["1f3ca-1f3fd-200d-2642-fe0f", 9, 8, 15, ["\u{1F3CA}\u{1F3FD}\u200D\u2642\uFE0F", "\u{1F3CA}\u{1F3FD}"]], "1f3fe": ["1f3ca-1f3fe-200d-2642-fe0f", 9, 9, 15, ["\u{1F3CA}\u{1F3FE}\u200D\u2642\uFE0F", "\u{1F3CA}\u{1F3FE}"]], "1f3ff": ["1f3ca-1f3ff-200d-2642-fe0f", 9, 10, 15, ["\u{1F3CA}\u{1F3FF}\u200D\u2642\uFE0F", "\u{1F3CA}\u{1F3FF}"]] }, "1f3cb-fe0f-200d-2640-fe0f": { "1f3fb": ["1f3cb-1f3fb-200d-2640-fe0f", 9, 18, 15, ["\u{1F3CB}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f3cb-1f3fc-200d-2640-fe0f", 9, 19, 15, ["\u{1F3CB}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f3cb-1f3fd-200d-2640-fe0f", 9, 20, 15, ["\u{1F3CB}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f3cb-1f3fe-200d-2640-fe0f", 9, 21, 15, ["\u{1F3CB}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f3cb-1f3ff-200d-2640-fe0f", 9, 22, 15, ["\u{1F3CB}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f3cb-fe0f-200d-2642-fe0f": { "1f3fb": ["1f3cb-1f3fb-200d-2642-fe0f", 9, 24, 15, ["\u{1F3CB}\u{1F3FB}\u200D\u2642\uFE0F", "\u{1F3CB}\u{1F3FB}"]], "1f3fc": ["1f3cb-1f3fc-200d-2642-fe0f", 9, 25, 15, ["\u{1F3CB}\u{1F3FC}\u200D\u2642\uFE0F", "\u{1F3CB}\u{1F3FC}"]], "1f3fd": ["1f3cb-1f3fd-200d-2642-fe0f", 9, 26, 15, ["\u{1F3CB}\u{1F3FD}\u200D\u2642\uFE0F", "\u{1F3CB}\u{1F3FD}"]], "1f3fe": ["1f3cb-1f3fe-200d-2642-fe0f", 9, 27, 15, ["\u{1F3CB}\u{1F3FE}\u200D\u2642\uFE0F", "\u{1F3CB}\u{1F3FE}"]], "1f3ff": ["1f3cb-1f3ff-200d-2642-fe0f", 9, 28, 15, ["\u{1F3CB}\u{1F3FF}\u200D\u2642\uFE0F", "\u{1F3CB}\u{1F3FF}"]] }, "1f3cc-fe0f-200d-2640-fe0f": { "1f3fb": ["1f3cc-1f3fb-200d-2640-fe0f", 9, 36, 15, ["\u{1F3CC}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f3cc-1f3fc-200d-2640-fe0f", 9, 37, 15, ["\u{1F3CC}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f3cc-1f3fd-200d-2640-fe0f", 9, 38, 15, ["\u{1F3CC}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f3cc-1f3fe-200d-2640-fe0f", 9, 39, 15, ["\u{1F3CC}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f3cc-1f3ff-200d-2640-fe0f", 9, 40, 15, ["\u{1F3CC}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f3cc-fe0f-200d-2642-fe0f": { "1f3fb": ["1f3cc-1f3fb-200d-2642-fe0f", 9, 42, 15, ["\u{1F3CC}\u{1F3FB}\u200D\u2642\uFE0F", "\u{1F3CC}\u{1F3FB}"]], "1f3fc": ["1f3cc-1f3fc-200d-2642-fe0f", 9, 43, 15, ["\u{1F3CC}\u{1F3FC}\u200D\u2642\uFE0F", "\u{1F3CC}\u{1F3FC}"]], "1f3fd": ["1f3cc-1f3fd-200d-2642-fe0f", 9, 44, 15, ["\u{1F3CC}\u{1F3FD}\u200D\u2642\uFE0F", "\u{1F3CC}\u{1F3FD}"]], "1f3fe": ["1f3cc-1f3fe-200d-2642-fe0f", 9, 45, 15, ["\u{1F3CC}\u{1F3FE}\u200D\u2642\uFE0F", "\u{1F3CC}\u{1F3FE}"]], "1f3ff": ["1f3cc-1f3ff-200d-2642-fe0f", 9, 46, 15, ["\u{1F3CC}\u{1F3FF}\u200D\u2642\uFE0F", "\u{1F3CC}\u{1F3FF}"]] }, "1f442": { "1f3fb": ["1f442-1f3fb", 11, 57, 15, ["\u{1F442}\u{1F3FB}"]], "1f3fc": ["1f442-1f3fc", 11, 58, 15, ["\u{1F442}\u{1F3FC}"]], "1f3fd": ["1f442-1f3fd", 11, 59, 15, ["\u{1F442}\u{1F3FD}"]], "1f3fe": ["1f442-1f3fe", 11, 60, 15, ["\u{1F442}\u{1F3FE}"]], "1f3ff": ["1f442-1f3ff", 12, 0, 15, ["\u{1F442}\u{1F3FF}"]] }, "1f443": { "1f3fb": ["1f443-1f3fb", 12, 2, 15, ["\u{1F443}\u{1F3FB}"]], "1f3fc": ["1f443-1f3fc", 12, 3, 15, ["\u{1F443}\u{1F3FC}"]], "1f3fd": ["1f443-1f3fd", 12, 4, 15, ["\u{1F443}\u{1F3FD}"]], "1f3fe": ["1f443-1f3fe", 12, 5, 15, ["\u{1F443}\u{1F3FE}"]], "1f3ff": ["1f443-1f3ff", 12, 6, 15, ["\u{1F443}\u{1F3FF}"]] }, "1f446": { "1f3fb": ["1f446-1f3fb", 12, 10, 15, ["\u{1F446}\u{1F3FB}"]], "1f3fc": ["1f446-1f3fc", 12, 11, 15, ["\u{1F446}\u{1F3FC}"]], "1f3fd": ["1f446-1f3fd", 12, 12, 15, ["\u{1F446}\u{1F3FD}"]], "1f3fe": ["1f446-1f3fe", 12, 13, 15, ["\u{1F446}\u{1F3FE}"]], "1f3ff": ["1f446-1f3ff", 12, 14, 15, ["\u{1F446}\u{1F3FF}"]] }, "1f447": { "1f3fb": ["1f447-1f3fb", 12, 16, 15, ["\u{1F447}\u{1F3FB}"]], "1f3fc": ["1f447-1f3fc", 12, 17, 15, ["\u{1F447}\u{1F3FC}"]], "1f3fd": ["1f447-1f3fd", 12, 18, 15, ["\u{1F447}\u{1F3FD}"]], "1f3fe": ["1f447-1f3fe", 12, 19, 15, ["\u{1F447}\u{1F3FE}"]], "1f3ff": ["1f447-1f3ff", 12, 20, 15, ["\u{1F447}\u{1F3FF}"]] }, "1f448": { "1f3fb": ["1f448-1f3fb", 12, 22, 15, ["\u{1F448}\u{1F3FB}"]], "1f3fc": ["1f448-1f3fc", 12, 23, 15, ["\u{1F448}\u{1F3FC}"]], "1f3fd": ["1f448-1f3fd", 12, 24, 15, ["\u{1F448}\u{1F3FD}"]], "1f3fe": ["1f448-1f3fe", 12, 25, 15, ["\u{1F448}\u{1F3FE}"]], "1f3ff": ["1f448-1f3ff", 12, 26, 15, ["\u{1F448}\u{1F3FF}"]] }, "1f449": { "1f3fb": ["1f449-1f3fb", 12, 28, 15, ["\u{1F449}\u{1F3FB}"]], "1f3fc": ["1f449-1f3fc", 12, 29, 15, ["\u{1F449}\u{1F3FC}"]], "1f3fd": ["1f449-1f3fd", 12, 30, 15, ["\u{1F449}\u{1F3FD}"]], "1f3fe": ["1f449-1f3fe", 12, 31, 15, ["\u{1F449}\u{1F3FE}"]], "1f3ff": ["1f449-1f3ff", 12, 32, 15, ["\u{1F449}\u{1F3FF}"]] }, "1f44a": { "1f3fb": ["1f44a-1f3fb", 12, 34, 15, ["\u{1F44A}\u{1F3FB}"]], "1f3fc": ["1f44a-1f3fc", 12, 35, 15, ["\u{1F44A}\u{1F3FC}"]], "1f3fd": ["1f44a-1f3fd", 12, 36, 15, ["\u{1F44A}\u{1F3FD}"]], "1f3fe": ["1f44a-1f3fe", 12, 37, 15, ["\u{1F44A}\u{1F3FE}"]], "1f3ff": ["1f44a-1f3ff", 12, 38, 15, ["\u{1F44A}\u{1F3FF}"]] }, "1f44b": { "1f3fb": ["1f44b-1f3fb", 12, 40, 15, ["\u{1F44B}\u{1F3FB}"]], "1f3fc": ["1f44b-1f3fc", 12, 41, 15, ["\u{1F44B}\u{1F3FC}"]], "1f3fd": ["1f44b-1f3fd", 12, 42, 15, ["\u{1F44B}\u{1F3FD}"]], "1f3fe": ["1f44b-1f3fe", 12, 43, 15, ["\u{1F44B}\u{1F3FE}"]], "1f3ff": ["1f44b-1f3ff", 12, 44, 15, ["\u{1F44B}\u{1F3FF}"]] }, "1f44c": { "1f3fb": ["1f44c-1f3fb", 12, 46, 15, ["\u{1F44C}\u{1F3FB}"]], "1f3fc": ["1f44c-1f3fc", 12, 47, 15, ["\u{1F44C}\u{1F3FC}"]], "1f3fd": ["1f44c-1f3fd", 12, 48, 15, ["\u{1F44C}\u{1F3FD}"]], "1f3fe": ["1f44c-1f3fe", 12, 49, 15, ["\u{1F44C}\u{1F3FE}"]], "1f3ff": ["1f44c-1f3ff", 12, 50, 15, ["\u{1F44C}\u{1F3FF}"]] }, "1f44d": { "1f3fb": ["1f44d-1f3fb", 12, 52, 15, ["\u{1F44D}\u{1F3FB}"]], "1f3fc": ["1f44d-1f3fc", 12, 53, 15, ["\u{1F44D}\u{1F3FC}"]], "1f3fd": ["1f44d-1f3fd", 12, 54, 15, ["\u{1F44D}\u{1F3FD}"]], "1f3fe": ["1f44d-1f3fe", 12, 55, 15, ["\u{1F44D}\u{1F3FE}"]], "1f3ff": ["1f44d-1f3ff", 12, 56, 15, ["\u{1F44D}\u{1F3FF}"]] }, "1f44e": { "1f3fb": ["1f44e-1f3fb", 12, 58, 15, ["\u{1F44E}\u{1F3FB}"]], "1f3fc": ["1f44e-1f3fc", 12, 59, 15, ["\u{1F44E}\u{1F3FC}"]], "1f3fd": ["1f44e-1f3fd", 12, 60, 15, ["\u{1F44E}\u{1F3FD}"]], "1f3fe": ["1f44e-1f3fe", 13, 0, 15, ["\u{1F44E}\u{1F3FE}"]], "1f3ff": ["1f44e-1f3ff", 13, 1, 15, ["\u{1F44E}\u{1F3FF}"]] }, "1f44f": { "1f3fb": ["1f44f-1f3fb", 13, 3, 15, ["\u{1F44F}\u{1F3FB}"]], "1f3fc": ["1f44f-1f3fc", 13, 4, 15, ["\u{1F44F}\u{1F3FC}"]], "1f3fd": ["1f44f-1f3fd", 13, 5, 15, ["\u{1F44F}\u{1F3FD}"]], "1f3fe": ["1f44f-1f3fe", 13, 6, 15, ["\u{1F44F}\u{1F3FE}"]], "1f3ff": ["1f44f-1f3ff", 13, 7, 15, ["\u{1F44F}\u{1F3FF}"]] }, "1f450": { "1f3fb": ["1f450-1f3fb", 13, 9, 15, ["\u{1F450}\u{1F3FB}"]], "1f3fc": ["1f450-1f3fc", 13, 10, 15, ["\u{1F450}\u{1F3FC}"]], "1f3fd": ["1f450-1f3fd", 13, 11, 15, ["\u{1F450}\u{1F3FD}"]], "1f3fe": ["1f450-1f3fe", 13, 12, 15, ["\u{1F450}\u{1F3FE}"]], "1f3ff": ["1f450-1f3ff", 13, 13, 15, ["\u{1F450}\u{1F3FF}"]] }, "1f466": { "1f3fb": ["1f466-1f3fb", 13, 36, 15, ["\u{1F466}\u{1F3FB}"]], "1f3fc": ["1f466-1f3fc", 13, 37, 15, ["\u{1F466}\u{1F3FC}"]], "1f3fd": ["1f466-1f3fd", 13, 38, 15, ["\u{1F466}\u{1F3FD}"]], "1f3fe": ["1f466-1f3fe", 13, 39, 15, ["\u{1F466}\u{1F3FE}"]], "1f3ff": ["1f466-1f3ff", 13, 40, 15, ["\u{1F466}\u{1F3FF}"]] }, "1f467": { "1f3fb": ["1f467-1f3fb", 13, 42, 15, ["\u{1F467}\u{1F3FB}"]], "1f3fc": ["1f467-1f3fc", 13, 43, 15, ["\u{1F467}\u{1F3FC}"]], "1f3fd": ["1f467-1f3fd", 13, 44, 15, ["\u{1F467}\u{1F3FD}"]], "1f3fe": ["1f467-1f3fe", 13, 45, 15, ["\u{1F467}\u{1F3FE}"]], "1f3ff": ["1f467-1f3ff", 13, 46, 15, ["\u{1F467}\u{1F3FF}"]] }, "1f468-200d-1f33e": { "1f3fb": ["1f468-1f3fb-200d-1f33e", 13, 48, 15, ["\u{1F468}\u{1F3FB}\u200D\u{1F33E}"]], "1f3fc": ["1f468-1f3fc-200d-1f33e", 13, 49, 15, ["\u{1F468}\u{1F3FC}\u200D\u{1F33E}"]], "1f3fd": ["1f468-1f3fd-200d-1f33e", 13, 50, 15, ["\u{1F468}\u{1F3FD}\u200D\u{1F33E}"]], "1f3fe": ["1f468-1f3fe-200d-1f33e", 13, 51, 15, ["\u{1F468}\u{1F3FE}\u200D\u{1F33E}"]], "1f3ff": ["1f468-1f3ff-200d-1f33e", 13, 52, 15, ["\u{1F468}\u{1F3FF}\u200D\u{1F33E}"]] }, "1f468-200d-1f373": { "1f3fb": ["1f468-1f3fb-200d-1f373", 13, 54, 15, ["\u{1F468}\u{1F3FB}\u200D\u{1F373}"]], "1f3fc": ["1f468-1f3fc-200d-1f373", 13, 55, 15, ["\u{1F468}\u{1F3FC}\u200D\u{1F373}"]], "1f3fd": ["1f468-1f3fd-200d-1f373", 13, 56, 15, ["\u{1F468}\u{1F3FD}\u200D\u{1F373}"]], "1f3fe": ["1f468-1f3fe-200d-1f373", 13, 57, 15, ["\u{1F468}\u{1F3FE}\u200D\u{1F373}"]], "1f3ff": ["1f468-1f3ff-200d-1f373", 13, 58, 15, ["\u{1F468}\u{1F3FF}\u200D\u{1F373}"]] }, "1f468-200d-1f37c": { "1f3fb": ["1f468-1f3fb-200d-1f37c", 13, 60, 15, ["\u{1F468}\u{1F3FB}\u200D\u{1F37C}"]], "1f3fc": ["1f468-1f3fc-200d-1f37c", 14, 0, 15, ["\u{1F468}\u{1F3FC}\u200D\u{1F37C}"]], "1f3fd": ["1f468-1f3fd-200d-1f37c", 14, 1, 15, ["\u{1F468}\u{1F3FD}\u200D\u{1F37C}"]], "1f3fe": ["1f468-1f3fe-200d-1f37c", 14, 2, 15, ["\u{1F468}\u{1F3FE}\u200D\u{1F37C}"]], "1f3ff": ["1f468-1f3ff-200d-1f37c", 14, 3, 15, ["\u{1F468}\u{1F3FF}\u200D\u{1F37C}"]] }, "1f468-200d-1f393": { "1f3fb": ["1f468-1f3fb-200d-1f393", 14, 5, 15, ["\u{1F468}\u{1F3FB}\u200D\u{1F393}"]], "1f3fc": ["1f468-1f3fc-200d-1f393", 14, 6, 15, ["\u{1F468}\u{1F3FC}\u200D\u{1F393}"]], "1f3fd": ["1f468-1f3fd-200d-1f393", 14, 7, 15, ["\u{1F468}\u{1F3FD}\u200D\u{1F393}"]], "1f3fe": ["1f468-1f3fe-200d-1f393", 14, 8, 15, ["\u{1F468}\u{1F3FE}\u200D\u{1F393}"]], "1f3ff": ["1f468-1f3ff-200d-1f393", 14, 9, 15, ["\u{1F468}\u{1F3FF}\u200D\u{1F393}"]] }, "1f468-200d-1f3a4": { "1f3fb": ["1f468-1f3fb-200d-1f3a4", 14, 11, 15, ["\u{1F468}\u{1F3FB}\u200D\u{1F3A4}"]], "1f3fc": ["1f468-1f3fc-200d-1f3a4", 14, 12, 15, ["\u{1F468}\u{1F3FC}\u200D\u{1F3A4}"]], "1f3fd": ["1f468-1f3fd-200d-1f3a4", 14, 13, 15, ["\u{1F468}\u{1F3FD}\u200D\u{1F3A4}"]], "1f3fe": ["1f468-1f3fe-200d-1f3a4", 14, 14, 15, ["\u{1F468}\u{1F3FE}\u200D\u{1F3A4}"]], "1f3ff": ["1f468-1f3ff-200d-1f3a4", 14, 15, 15, ["\u{1F468}\u{1F3FF}\u200D\u{1F3A4}"]] }, "1f468-200d-1f3a8": { "1f3fb": ["1f468-1f3fb-200d-1f3a8", 14, 17, 15, ["\u{1F468}\u{1F3FB}\u200D\u{1F3A8}"]], "1f3fc": ["1f468-1f3fc-200d-1f3a8", 14, 18, 15, ["\u{1F468}\u{1F3FC}\u200D\u{1F3A8}"]], "1f3fd": ["1f468-1f3fd-200d-1f3a8", 14, 19, 15, ["\u{1F468}\u{1F3FD}\u200D\u{1F3A8}"]], "1f3fe": ["1f468-1f3fe-200d-1f3a8", 14, 20, 15, ["\u{1F468}\u{1F3FE}\u200D\u{1F3A8}"]], "1f3ff": ["1f468-1f3ff-200d-1f3a8", 14, 21, 15, ["\u{1F468}\u{1F3FF}\u200D\u{1F3A8}"]] }, "1f468-200d-1f3eb": { "1f3fb": ["1f468-1f3fb-200d-1f3eb", 14, 23, 15, ["\u{1F468}\u{1F3FB}\u200D\u{1F3EB}"]], "1f3fc": ["1f468-1f3fc-200d-1f3eb", 14, 24, 15, ["\u{1F468}\u{1F3FC}\u200D\u{1F3EB}"]], "1f3fd": ["1f468-1f3fd-200d-1f3eb", 14, 25, 15, ["\u{1F468}\u{1F3FD}\u200D\u{1F3EB}"]], "1f3fe": ["1f468-1f3fe-200d-1f3eb", 14, 26, 15, ["\u{1F468}\u{1F3FE}\u200D\u{1F3EB}"]], "1f3ff": ["1f468-1f3ff-200d-1f3eb", 14, 27, 15, ["\u{1F468}\u{1F3FF}\u200D\u{1F3EB}"]] }, "1f468-200d-1f3ed": { "1f3fb": ["1f468-1f3fb-200d-1f3ed", 14, 29, 15, ["\u{1F468}\u{1F3FB}\u200D\u{1F3ED}"]], "1f3fc": ["1f468-1f3fc-200d-1f3ed", 14, 30, 15, ["\u{1F468}\u{1F3FC}\u200D\u{1F3ED}"]], "1f3fd": ["1f468-1f3fd-200d-1f3ed", 14, 31, 15, ["\u{1F468}\u{1F3FD}\u200D\u{1F3ED}"]], "1f3fe": ["1f468-1f3fe-200d-1f3ed", 14, 32, 15, ["\u{1F468}\u{1F3FE}\u200D\u{1F3ED}"]], "1f3ff": ["1f468-1f3ff-200d-1f3ed", 14, 33, 15, ["\u{1F468}\u{1F3FF}\u200D\u{1F3ED}"]] }, "1f468-200d-1f4bb": { "1f3fb": ["1f468-1f3fb-200d-1f4bb", 14, 50, 15, ["\u{1F468}\u{1F3FB}\u200D\u{1F4BB}"]], "1f3fc": ["1f468-1f3fc-200d-1f4bb", 14, 51, 15, ["\u{1F468}\u{1F3FC}\u200D\u{1F4BB}"]], "1f3fd": ["1f468-1f3fd-200d-1f4bb", 14, 52, 15, ["\u{1F468}\u{1F3FD}\u200D\u{1F4BB}"]], "1f3fe": ["1f468-1f3fe-200d-1f4bb", 14, 53, 15, ["\u{1F468}\u{1F3FE}\u200D\u{1F4BB}"]], "1f3ff": ["1f468-1f3ff-200d-1f4bb", 14, 54, 15, ["\u{1F468}\u{1F3FF}\u200D\u{1F4BB}"]] }, "1f468-200d-1f4bc": { "1f3fb": ["1f468-1f3fb-200d-1f4bc", 14, 56, 15, ["\u{1F468}\u{1F3FB}\u200D\u{1F4BC}"]], "1f3fc": ["1f468-1f3fc-200d-1f4bc", 14, 57, 15, ["\u{1F468}\u{1F3FC}\u200D\u{1F4BC}"]], "1f3fd": ["1f468-1f3fd-200d-1f4bc", 14, 58, 15, ["\u{1F468}\u{1F3FD}\u200D\u{1F4BC}"]], "1f3fe": ["1f468-1f3fe-200d-1f4bc", 14, 59, 15, ["\u{1F468}\u{1F3FE}\u200D\u{1F4BC}"]], "1f3ff": ["1f468-1f3ff-200d-1f4bc", 14, 60, 15, ["\u{1F468}\u{1F3FF}\u200D\u{1F4BC}"]] }, "1f468-200d-1f527": { "1f3fb": ["1f468-1f3fb-200d-1f527", 15, 1, 15, ["\u{1F468}\u{1F3FB}\u200D\u{1F527}"]], "1f3fc": ["1f468-1f3fc-200d-1f527", 15, 2, 15, ["\u{1F468}\u{1F3FC}\u200D\u{1F527}"]], "1f3fd": ["1f468-1f3fd-200d-1f527", 15, 3, 15, ["\u{1F468}\u{1F3FD}\u200D\u{1F527}"]], "1f3fe": ["1f468-1f3fe-200d-1f527", 15, 4, 15, ["\u{1F468}\u{1F3FE}\u200D\u{1F527}"]], "1f3ff": ["1f468-1f3ff-200d-1f527", 15, 5, 15, ["\u{1F468}\u{1F3FF}\u200D\u{1F527}"]] }, "1f468-200d-1f52c": { "1f3fb": ["1f468-1f3fb-200d-1f52c", 15, 7, 15, ["\u{1F468}\u{1F3FB}\u200D\u{1F52C}"]], "1f3fc": ["1f468-1f3fc-200d-1f52c", 15, 8, 15, ["\u{1F468}\u{1F3FC}\u200D\u{1F52C}"]], "1f3fd": ["1f468-1f3fd-200d-1f52c", 15, 9, 15, ["\u{1F468}\u{1F3FD}\u200D\u{1F52C}"]], "1f3fe": ["1f468-1f3fe-200d-1f52c", 15, 10, 15, ["\u{1F468}\u{1F3FE}\u200D\u{1F52C}"]], "1f3ff": ["1f468-1f3ff-200d-1f52c", 15, 11, 15, ["\u{1F468}\u{1F3FF}\u200D\u{1F52C}"]] }, "1f468-200d-1f680": { "1f3fb": ["1f468-1f3fb-200d-1f680", 15, 13, 15, ["\u{1F468}\u{1F3FB}\u200D\u{1F680}"]], "1f3fc": ["1f468-1f3fc-200d-1f680", 15, 14, 15, ["\u{1F468}\u{1F3FC}\u200D\u{1F680}"]], "1f3fd": ["1f468-1f3fd-200d-1f680", 15, 15, 15, ["\u{1F468}\u{1F3FD}\u200D\u{1F680}"]], "1f3fe": ["1f468-1f3fe-200d-1f680", 15, 16, 15, ["\u{1F468}\u{1F3FE}\u200D\u{1F680}"]], "1f3ff": ["1f468-1f3ff-200d-1f680", 15, 17, 15, ["\u{1F468}\u{1F3FF}\u200D\u{1F680}"]] }, "1f468-200d-1f692": { "1f3fb": ["1f468-1f3fb-200d-1f692", 15, 19, 15, ["\u{1F468}\u{1F3FB}\u200D\u{1F692}"]], "1f3fc": ["1f468-1f3fc-200d-1f692", 15, 20, 15, ["\u{1F468}\u{1F3FC}\u200D\u{1F692}"]], "1f3fd": ["1f468-1f3fd-200d-1f692", 15, 21, 15, ["\u{1F468}\u{1F3FD}\u200D\u{1F692}"]], "1f3fe": ["1f468-1f3fe-200d-1f692", 15, 22, 15, ["\u{1F468}\u{1F3FE}\u200D\u{1F692}"]], "1f3ff": ["1f468-1f3ff-200d-1f692", 15, 23, 15, ["\u{1F468}\u{1F3FF}\u200D\u{1F692}"]] }, "1f468-200d-1f9af": { "1f3fb": ["1f468-1f3fb-200d-1f9af", 15, 25, 15, ["\u{1F468}\u{1F3FB}\u200D\u{1F9AF}"]], "1f3fc": ["1f468-1f3fc-200d-1f9af", 15, 26, 15, ["\u{1F468}\u{1F3FC}\u200D\u{1F9AF}"]], "1f3fd": ["1f468-1f3fd-200d-1f9af", 15, 27, 15, ["\u{1F468}\u{1F3FD}\u200D\u{1F9AF}"]], "1f3fe": ["1f468-1f3fe-200d-1f9af", 15, 28, 15, ["\u{1F468}\u{1F3FE}\u200D\u{1F9AF}"]], "1f3ff": ["1f468-1f3ff-200d-1f9af", 15, 29, 15, ["\u{1F468}\u{1F3FF}\u200D\u{1F9AF}"]] }, "1f468-200d-1f9b0": { "1f3fb": ["1f468-1f3fb-200d-1f9b0", 15, 31, 15, ["\u{1F468}\u{1F3FB}\u200D\u{1F9B0}"]], "1f3fc": ["1f468-1f3fc-200d-1f9b0", 15, 32, 15, ["\u{1F468}\u{1F3FC}\u200D\u{1F9B0}"]], "1f3fd": ["1f468-1f3fd-200d-1f9b0", 15, 33, 15, ["\u{1F468}\u{1F3FD}\u200D\u{1F9B0}"]], "1f3fe": ["1f468-1f3fe-200d-1f9b0", 15, 34, 15, ["\u{1F468}\u{1F3FE}\u200D\u{1F9B0}"]], "1f3ff": ["1f468-1f3ff-200d-1f9b0", 15, 35, 15, ["\u{1F468}\u{1F3FF}\u200D\u{1F9B0}"]] }, "1f468-200d-1f9b1": { "1f3fb": ["1f468-1f3fb-200d-1f9b1", 15, 37, 15, ["\u{1F468}\u{1F3FB}\u200D\u{1F9B1}"]], "1f3fc": ["1f468-1f3fc-200d-1f9b1", 15, 38, 15, ["\u{1F468}\u{1F3FC}\u200D\u{1F9B1}"]], "1f3fd": ["1f468-1f3fd-200d-1f9b1", 15, 39, 15, ["\u{1F468}\u{1F3FD}\u200D\u{1F9B1}"]], "1f3fe": ["1f468-1f3fe-200d-1f9b1", 15, 40, 15, ["\u{1F468}\u{1F3FE}\u200D\u{1F9B1}"]], "1f3ff": ["1f468-1f3ff-200d-1f9b1", 15, 41, 15, ["\u{1F468}\u{1F3FF}\u200D\u{1F9B1}"]] }, "1f468-200d-1f9b2": { "1f3fb": ["1f468-1f3fb-200d-1f9b2", 15, 43, 15, ["\u{1F468}\u{1F3FB}\u200D\u{1F9B2}"]], "1f3fc": ["1f468-1f3fc-200d-1f9b2", 15, 44, 15, ["\u{1F468}\u{1F3FC}\u200D\u{1F9B2}"]], "1f3fd": ["1f468-1f3fd-200d-1f9b2", 15, 45, 15, ["\u{1F468}\u{1F3FD}\u200D\u{1F9B2}"]], "1f3fe": ["1f468-1f3fe-200d-1f9b2", 15, 46, 15, ["\u{1F468}\u{1F3FE}\u200D\u{1F9B2}"]], "1f3ff": ["1f468-1f3ff-200d-1f9b2", 15, 47, 15, ["\u{1F468}\u{1F3FF}\u200D\u{1F9B2}"]] }, "1f468-200d-1f9b3": { "1f3fb": ["1f468-1f3fb-200d-1f9b3", 15, 49, 15, ["\u{1F468}\u{1F3FB}\u200D\u{1F9B3}"]], "1f3fc": ["1f468-1f3fc-200d-1f9b3", 15, 50, 15, ["\u{1F468}\u{1F3FC}\u200D\u{1F9B3}"]], "1f3fd": ["1f468-1f3fd-200d-1f9b3", 15, 51, 15, ["\u{1F468}\u{1F3FD}\u200D\u{1F9B3}"]], "1f3fe": ["1f468-1f3fe-200d-1f9b3", 15, 52, 15, ["\u{1F468}\u{1F3FE}\u200D\u{1F9B3}"]], "1f3ff": ["1f468-1f3ff-200d-1f9b3", 15, 53, 15, ["\u{1F468}\u{1F3FF}\u200D\u{1F9B3}"]] }, "1f468-200d-1f9bc": { "1f3fb": ["1f468-1f3fb-200d-1f9bc", 15, 55, 15, ["\u{1F468}\u{1F3FB}\u200D\u{1F9BC}"]], "1f3fc": ["1f468-1f3fc-200d-1f9bc", 15, 56, 15, ["\u{1F468}\u{1F3FC}\u200D\u{1F9BC}"]], "1f3fd": ["1f468-1f3fd-200d-1f9bc", 15, 57, 15, ["\u{1F468}\u{1F3FD}\u200D\u{1F9BC}"]], "1f3fe": ["1f468-1f3fe-200d-1f9bc", 15, 58, 15, ["\u{1F468}\u{1F3FE}\u200D\u{1F9BC}"]], "1f3ff": ["1f468-1f3ff-200d-1f9bc", 15, 59, 15, ["\u{1F468}\u{1F3FF}\u200D\u{1F9BC}"]] }, "1f468-200d-1f9bd": { "1f3fb": ["1f468-1f3fb-200d-1f9bd", 16, 0, 15, ["\u{1F468}\u{1F3FB}\u200D\u{1F9BD}"]], "1f3fc": ["1f468-1f3fc-200d-1f9bd", 16, 1, 15, ["\u{1F468}\u{1F3FC}\u200D\u{1F9BD}"]], "1f3fd": ["1f468-1f3fd-200d-1f9bd", 16, 2, 15, ["\u{1F468}\u{1F3FD}\u200D\u{1F9BD}"]], "1f3fe": ["1f468-1f3fe-200d-1f9bd", 16, 3, 15, ["\u{1F468}\u{1F3FE}\u200D\u{1F9BD}"]], "1f3ff": ["1f468-1f3ff-200d-1f9bd", 16, 4, 15, ["\u{1F468}\u{1F3FF}\u200D\u{1F9BD}"]] }, "1f468-200d-2695-fe0f": { "1f3fb": ["1f468-1f3fb-200d-2695-fe0f", 16, 6, 15, ["\u{1F468}\u{1F3FB}\u200D\u2695\uFE0F"]], "1f3fc": ["1f468-1f3fc-200d-2695-fe0f", 16, 7, 15, ["\u{1F468}\u{1F3FC}\u200D\u2695\uFE0F"]], "1f3fd": ["1f468-1f3fd-200d-2695-fe0f", 16, 8, 15, ["\u{1F468}\u{1F3FD}\u200D\u2695\uFE0F"]], "1f3fe": ["1f468-1f3fe-200d-2695-fe0f", 16, 9, 15, ["\u{1F468}\u{1F3FE}\u200D\u2695\uFE0F"]], "1f3ff": ["1f468-1f3ff-200d-2695-fe0f", 16, 10, 15, ["\u{1F468}\u{1F3FF}\u200D\u2695\uFE0F"]] }, "1f468-200d-2696-fe0f": { "1f3fb": ["1f468-1f3fb-200d-2696-fe0f", 16, 12, 15, ["\u{1F468}\u{1F3FB}\u200D\u2696\uFE0F"]], "1f3fc": ["1f468-1f3fc-200d-2696-fe0f", 16, 13, 15, ["\u{1F468}\u{1F3FC}\u200D\u2696\uFE0F"]], "1f3fd": ["1f468-1f3fd-200d-2696-fe0f", 16, 14, 15, ["\u{1F468}\u{1F3FD}\u200D\u2696\uFE0F"]], "1f3fe": ["1f468-1f3fe-200d-2696-fe0f", 16, 15, 15, ["\u{1F468}\u{1F3FE}\u200D\u2696\uFE0F"]], "1f3ff": ["1f468-1f3ff-200d-2696-fe0f", 16, 16, 15, ["\u{1F468}\u{1F3FF}\u200D\u2696\uFE0F"]] }, "1f468-200d-2708-fe0f": { "1f3fb": ["1f468-1f3fb-200d-2708-fe0f", 16, 18, 15, ["\u{1F468}\u{1F3FB}\u200D\u2708\uFE0F"]], "1f3fc": ["1f468-1f3fc-200d-2708-fe0f", 16, 19, 15, ["\u{1F468}\u{1F3FC}\u200D\u2708\uFE0F"]], "1f3fd": ["1f468-1f3fd-200d-2708-fe0f", 16, 20, 15, ["\u{1F468}\u{1F3FD}\u200D\u2708\uFE0F"]], "1f3fe": ["1f468-1f3fe-200d-2708-fe0f", 16, 21, 15, ["\u{1F468}\u{1F3FE}\u200D\u2708\uFE0F"]], "1f3ff": ["1f468-1f3ff-200d-2708-fe0f", 16, 22, 15, ["\u{1F468}\u{1F3FF}\u200D\u2708\uFE0F"]] }, "1f468-200d-2764-fe0f-200d-1f468": { "1f3fb-1f3fb": ["1f468-1f3fb-200d-2764-fe0f-200d-1f468-1f3fb", 16, 24, 15, ["\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}"]], "1f3fb-1f3fc": ["1f468-1f3fb-200d-2764-fe0f-200d-1f468-1f3fc", 16, 25, 15, ["\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}"]], "1f3fb-1f3fd": ["1f468-1f3fb-200d-2764-fe0f-200d-1f468-1f3fd", 16, 26, 15, ["\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}"]], "1f3fb-1f3fe": ["1f468-1f3fb-200d-2764-fe0f-200d-1f468-1f3fe", 16, 27, 15, ["\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}"]], "1f3fb-1f3ff": ["1f468-1f3fb-200d-2764-fe0f-200d-1f468-1f3ff", 16, 28, 15, ["\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}"]], "1f3fc-1f3fb": ["1f468-1f3fc-200d-2764-fe0f-200d-1f468-1f3fb", 16, 29, 15, ["\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}"]], "1f3fc-1f3fc": ["1f468-1f3fc-200d-2764-fe0f-200d-1f468-1f3fc", 16, 30, 15, ["\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}"]], "1f3fc-1f3fd": ["1f468-1f3fc-200d-2764-fe0f-200d-1f468-1f3fd", 16, 31, 15, ["\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}"]], "1f3fc-1f3fe": ["1f468-1f3fc-200d-2764-fe0f-200d-1f468-1f3fe", 16, 32, 15, ["\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}"]], "1f3fc-1f3ff": ["1f468-1f3fc-200d-2764-fe0f-200d-1f468-1f3ff", 16, 33, 15, ["\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}"]], "1f3fd-1f3fb": ["1f468-1f3fd-200d-2764-fe0f-200d-1f468-1f3fb", 16, 34, 15, ["\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}"]], "1f3fd-1f3fc": ["1f468-1f3fd-200d-2764-fe0f-200d-1f468-1f3fc", 16, 35, 15, ["\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}"]], "1f3fd-1f3fd": ["1f468-1f3fd-200d-2764-fe0f-200d-1f468-1f3fd", 16, 36, 15, ["\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}"]], "1f3fd-1f3fe": ["1f468-1f3fd-200d-2764-fe0f-200d-1f468-1f3fe", 16, 37, 15, ["\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}"]], "1f3fd-1f3ff": ["1f468-1f3fd-200d-2764-fe0f-200d-1f468-1f3ff", 16, 38, 15, ["\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}"]], "1f3fe-1f3fb": ["1f468-1f3fe-200d-2764-fe0f-200d-1f468-1f3fb", 16, 39, 15, ["\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}"]], "1f3fe-1f3fc": ["1f468-1f3fe-200d-2764-fe0f-200d-1f468-1f3fc", 16, 40, 15, ["\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}"]], "1f3fe-1f3fd": ["1f468-1f3fe-200d-2764-fe0f-200d-1f468-1f3fd", 16, 41, 15, ["\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}"]], "1f3fe-1f3fe": ["1f468-1f3fe-200d-2764-fe0f-200d-1f468-1f3fe", 16, 42, 15, ["\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}"]], "1f3fe-1f3ff": ["1f468-1f3fe-200d-2764-fe0f-200d-1f468-1f3ff", 16, 43, 15, ["\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}"]], "1f3ff-1f3fb": ["1f468-1f3ff-200d-2764-fe0f-200d-1f468-1f3fb", 16, 44, 15, ["\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}"]], "1f3ff-1f3fc": ["1f468-1f3ff-200d-2764-fe0f-200d-1f468-1f3fc", 16, 45, 15, ["\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}"]], "1f3ff-1f3fd": ["1f468-1f3ff-200d-2764-fe0f-200d-1f468-1f3fd", 16, 46, 15, ["\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}"]], "1f3ff-1f3fe": ["1f468-1f3ff-200d-2764-fe0f-200d-1f468-1f3fe", 16, 47, 15, ["\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}"]], "1f3ff-1f3ff": ["1f468-1f3ff-200d-2764-fe0f-200d-1f468-1f3ff", 16, 48, 15, ["\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}"]] }, "1f468-200d-2764-fe0f-200d-1f48b-200d-1f468": { "1f3fb-1f3fb": ["1f468-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb", 16, 50, 15, ["\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}"]], "1f3fb-1f3fc": ["1f468-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc", 16, 51, 15, ["\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}"]], "1f3fb-1f3fd": ["1f468-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd", 16, 52, 15, ["\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}"]], "1f3fb-1f3fe": ["1f468-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe", 16, 53, 15, ["\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}"]], "1f3fb-1f3ff": ["1f468-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff", 16, 54, 15, ["\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}"]], "1f3fc-1f3fb": ["1f468-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb", 16, 55, 15, ["\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}"]], "1f3fc-1f3fc": ["1f468-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc", 16, 56, 15, ["\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}"]], "1f3fc-1f3fd": ["1f468-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd", 16, 57, 15, ["\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}"]], "1f3fc-1f3fe": ["1f468-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe", 16, 58, 15, ["\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}"]], "1f3fc-1f3ff": ["1f468-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff", 16, 59, 15, ["\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}"]], "1f3fd-1f3fb": ["1f468-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb", 16, 60, 15, ["\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}"]], "1f3fd-1f3fc": ["1f468-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc", 17, 0, 15, ["\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}"]], "1f3fd-1f3fd": ["1f468-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd", 17, 1, 15, ["\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}"]], "1f3fd-1f3fe": ["1f468-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe", 17, 2, 15, ["\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}"]], "1f3fd-1f3ff": ["1f468-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff", 17, 3, 15, ["\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}"]], "1f3fe-1f3fb": ["1f468-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb", 17, 4, 15, ["\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}"]], "1f3fe-1f3fc": ["1f468-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc", 17, 5, 15, ["\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}"]], "1f3fe-1f3fd": ["1f468-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd", 17, 6, 15, ["\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}"]], "1f3fe-1f3fe": ["1f468-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe", 17, 7, 15, ["\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}"]], "1f3fe-1f3ff": ["1f468-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff", 17, 8, 15, ["\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}"]], "1f3ff-1f3fb": ["1f468-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb", 17, 9, 15, ["\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}"]], "1f3ff-1f3fc": ["1f468-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc", 17, 10, 15, ["\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}"]], "1f3ff-1f3fd": ["1f468-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd", 17, 11, 15, ["\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}"]], "1f3ff-1f3fe": ["1f468-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe", 17, 12, 15, ["\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}"]], "1f3ff-1f3ff": ["1f468-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff", 17, 13, 15, ["\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}"]] }, "1f468": { "1f3fb": ["1f468-1f3fb", 17, 15, 15, ["\u{1F468}\u{1F3FB}"]], "1f3fc": ["1f468-1f3fc", 17, 16, 15, ["\u{1F468}\u{1F3FC}"]], "1f3fd": ["1f468-1f3fd", 17, 17, 15, ["\u{1F468}\u{1F3FD}"]], "1f3fe": ["1f468-1f3fe", 17, 18, 15, ["\u{1F468}\u{1F3FE}"]], "1f3ff": ["1f468-1f3ff", 17, 19, 15, ["\u{1F468}\u{1F3FF}"]] }, "1f469-200d-1f33e": { "1f3fb": ["1f469-1f3fb-200d-1f33e", 17, 21, 15, ["\u{1F469}\u{1F3FB}\u200D\u{1F33E}"]], "1f3fc": ["1f469-1f3fc-200d-1f33e", 17, 22, 15, ["\u{1F469}\u{1F3FC}\u200D\u{1F33E}"]], "1f3fd": ["1f469-1f3fd-200d-1f33e", 17, 23, 15, ["\u{1F469}\u{1F3FD}\u200D\u{1F33E}"]], "1f3fe": ["1f469-1f3fe-200d-1f33e", 17, 24, 15, ["\u{1F469}\u{1F3FE}\u200D\u{1F33E}"]], "1f3ff": ["1f469-1f3ff-200d-1f33e", 17, 25, 15, ["\u{1F469}\u{1F3FF}\u200D\u{1F33E}"]] }, "1f469-200d-1f373": { "1f3fb": ["1f469-1f3fb-200d-1f373", 17, 27, 15, ["\u{1F469}\u{1F3FB}\u200D\u{1F373}"]], "1f3fc": ["1f469-1f3fc-200d-1f373", 17, 28, 15, ["\u{1F469}\u{1F3FC}\u200D\u{1F373}"]], "1f3fd": ["1f469-1f3fd-200d-1f373", 17, 29, 15, ["\u{1F469}\u{1F3FD}\u200D\u{1F373}"]], "1f3fe": ["1f469-1f3fe-200d-1f373", 17, 30, 15, ["\u{1F469}\u{1F3FE}\u200D\u{1F373}"]], "1f3ff": ["1f469-1f3ff-200d-1f373", 17, 31, 15, ["\u{1F469}\u{1F3FF}\u200D\u{1F373}"]] }, "1f469-200d-1f37c": { "1f3fb": ["1f469-1f3fb-200d-1f37c", 17, 33, 15, ["\u{1F469}\u{1F3FB}\u200D\u{1F37C}"]], "1f3fc": ["1f469-1f3fc-200d-1f37c", 17, 34, 15, ["\u{1F469}\u{1F3FC}\u200D\u{1F37C}"]], "1f3fd": ["1f469-1f3fd-200d-1f37c", 17, 35, 15, ["\u{1F469}\u{1F3FD}\u200D\u{1F37C}"]], "1f3fe": ["1f469-1f3fe-200d-1f37c", 17, 36, 15, ["\u{1F469}\u{1F3FE}\u200D\u{1F37C}"]], "1f3ff": ["1f469-1f3ff-200d-1f37c", 17, 37, 15, ["\u{1F469}\u{1F3FF}\u200D\u{1F37C}"]] }, "1f469-200d-1f393": { "1f3fb": ["1f469-1f3fb-200d-1f393", 17, 39, 15, ["\u{1F469}\u{1F3FB}\u200D\u{1F393}"]], "1f3fc": ["1f469-1f3fc-200d-1f393", 17, 40, 15, ["\u{1F469}\u{1F3FC}\u200D\u{1F393}"]], "1f3fd": ["1f469-1f3fd-200d-1f393", 17, 41, 15, ["\u{1F469}\u{1F3FD}\u200D\u{1F393}"]], "1f3fe": ["1f469-1f3fe-200d-1f393", 17, 42, 15, ["\u{1F469}\u{1F3FE}\u200D\u{1F393}"]], "1f3ff": ["1f469-1f3ff-200d-1f393", 17, 43, 15, ["\u{1F469}\u{1F3FF}\u200D\u{1F393}"]] }, "1f469-200d-1f3a4": { "1f3fb": ["1f469-1f3fb-200d-1f3a4", 17, 45, 15, ["\u{1F469}\u{1F3FB}\u200D\u{1F3A4}"]], "1f3fc": ["1f469-1f3fc-200d-1f3a4", 17, 46, 15, ["\u{1F469}\u{1F3FC}\u200D\u{1F3A4}"]], "1f3fd": ["1f469-1f3fd-200d-1f3a4", 17, 47, 15, ["\u{1F469}\u{1F3FD}\u200D\u{1F3A4}"]], "1f3fe": ["1f469-1f3fe-200d-1f3a4", 17, 48, 15, ["\u{1F469}\u{1F3FE}\u200D\u{1F3A4}"]], "1f3ff": ["1f469-1f3ff-200d-1f3a4", 17, 49, 15, ["\u{1F469}\u{1F3FF}\u200D\u{1F3A4}"]] }, "1f469-200d-1f3a8": { "1f3fb": ["1f469-1f3fb-200d-1f3a8", 17, 51, 15, ["\u{1F469}\u{1F3FB}\u200D\u{1F3A8}"]], "1f3fc": ["1f469-1f3fc-200d-1f3a8", 17, 52, 15, ["\u{1F469}\u{1F3FC}\u200D\u{1F3A8}"]], "1f3fd": ["1f469-1f3fd-200d-1f3a8", 17, 53, 15, ["\u{1F469}\u{1F3FD}\u200D\u{1F3A8}"]], "1f3fe": ["1f469-1f3fe-200d-1f3a8", 17, 54, 15, ["\u{1F469}\u{1F3FE}\u200D\u{1F3A8}"]], "1f3ff": ["1f469-1f3ff-200d-1f3a8", 17, 55, 15, ["\u{1F469}\u{1F3FF}\u200D\u{1F3A8}"]] }, "1f469-200d-1f3eb": { "1f3fb": ["1f469-1f3fb-200d-1f3eb", 17, 57, 15, ["\u{1F469}\u{1F3FB}\u200D\u{1F3EB}"]], "1f3fc": ["1f469-1f3fc-200d-1f3eb", 17, 58, 15, ["\u{1F469}\u{1F3FC}\u200D\u{1F3EB}"]], "1f3fd": ["1f469-1f3fd-200d-1f3eb", 17, 59, 15, ["\u{1F469}\u{1F3FD}\u200D\u{1F3EB}"]], "1f3fe": ["1f469-1f3fe-200d-1f3eb", 17, 60, 15, ["\u{1F469}\u{1F3FE}\u200D\u{1F3EB}"]], "1f3ff": ["1f469-1f3ff-200d-1f3eb", 18, 0, 15, ["\u{1F469}\u{1F3FF}\u200D\u{1F3EB}"]] }, "1f469-200d-1f3ed": { "1f3fb": ["1f469-1f3fb-200d-1f3ed", 18, 2, 15, ["\u{1F469}\u{1F3FB}\u200D\u{1F3ED}"]], "1f3fc": ["1f469-1f3fc-200d-1f3ed", 18, 3, 15, ["\u{1F469}\u{1F3FC}\u200D\u{1F3ED}"]], "1f3fd": ["1f469-1f3fd-200d-1f3ed", 18, 4, 15, ["\u{1F469}\u{1F3FD}\u200D\u{1F3ED}"]], "1f3fe": ["1f469-1f3fe-200d-1f3ed", 18, 5, 15, ["\u{1F469}\u{1F3FE}\u200D\u{1F3ED}"]], "1f3ff": ["1f469-1f3ff-200d-1f3ed", 18, 6, 15, ["\u{1F469}\u{1F3FF}\u200D\u{1F3ED}"]] }, "1f469-200d-1f4bb": { "1f3fb": ["1f469-1f3fb-200d-1f4bb", 18, 18, 15, ["\u{1F469}\u{1F3FB}\u200D\u{1F4BB}"]], "1f3fc": ["1f469-1f3fc-200d-1f4bb", 18, 19, 15, ["\u{1F469}\u{1F3FC}\u200D\u{1F4BB}"]], "1f3fd": ["1f469-1f3fd-200d-1f4bb", 18, 20, 15, ["\u{1F469}\u{1F3FD}\u200D\u{1F4BB}"]], "1f3fe": ["1f469-1f3fe-200d-1f4bb", 18, 21, 15, ["\u{1F469}\u{1F3FE}\u200D\u{1F4BB}"]], "1f3ff": ["1f469-1f3ff-200d-1f4bb", 18, 22, 15, ["\u{1F469}\u{1F3FF}\u200D\u{1F4BB}"]] }, "1f469-200d-1f4bc": { "1f3fb": ["1f469-1f3fb-200d-1f4bc", 18, 24, 15, ["\u{1F469}\u{1F3FB}\u200D\u{1F4BC}"]], "1f3fc": ["1f469-1f3fc-200d-1f4bc", 18, 25, 15, ["\u{1F469}\u{1F3FC}\u200D\u{1F4BC}"]], "1f3fd": ["1f469-1f3fd-200d-1f4bc", 18, 26, 15, ["\u{1F469}\u{1F3FD}\u200D\u{1F4BC}"]], "1f3fe": ["1f469-1f3fe-200d-1f4bc", 18, 27, 15, ["\u{1F469}\u{1F3FE}\u200D\u{1F4BC}"]], "1f3ff": ["1f469-1f3ff-200d-1f4bc", 18, 28, 15, ["\u{1F469}\u{1F3FF}\u200D\u{1F4BC}"]] }, "1f469-200d-1f527": { "1f3fb": ["1f469-1f3fb-200d-1f527", 18, 30, 15, ["\u{1F469}\u{1F3FB}\u200D\u{1F527}"]], "1f3fc": ["1f469-1f3fc-200d-1f527", 18, 31, 15, ["\u{1F469}\u{1F3FC}\u200D\u{1F527}"]], "1f3fd": ["1f469-1f3fd-200d-1f527", 18, 32, 15, ["\u{1F469}\u{1F3FD}\u200D\u{1F527}"]], "1f3fe": ["1f469-1f3fe-200d-1f527", 18, 33, 15, ["\u{1F469}\u{1F3FE}\u200D\u{1F527}"]], "1f3ff": ["1f469-1f3ff-200d-1f527", 18, 34, 15, ["\u{1F469}\u{1F3FF}\u200D\u{1F527}"]] }, "1f469-200d-1f52c": { "1f3fb": ["1f469-1f3fb-200d-1f52c", 18, 36, 15, ["\u{1F469}\u{1F3FB}\u200D\u{1F52C}"]], "1f3fc": ["1f469-1f3fc-200d-1f52c", 18, 37, 15, ["\u{1F469}\u{1F3FC}\u200D\u{1F52C}"]], "1f3fd": ["1f469-1f3fd-200d-1f52c", 18, 38, 15, ["\u{1F469}\u{1F3FD}\u200D\u{1F52C}"]], "1f3fe": ["1f469-1f3fe-200d-1f52c", 18, 39, 15, ["\u{1F469}\u{1F3FE}\u200D\u{1F52C}"]], "1f3ff": ["1f469-1f3ff-200d-1f52c", 18, 40, 15, ["\u{1F469}\u{1F3FF}\u200D\u{1F52C}"]] }, "1f469-200d-1f680": { "1f3fb": ["1f469-1f3fb-200d-1f680", 18, 42, 15, ["\u{1F469}\u{1F3FB}\u200D\u{1F680}"]], "1f3fc": ["1f469-1f3fc-200d-1f680", 18, 43, 15, ["\u{1F469}\u{1F3FC}\u200D\u{1F680}"]], "1f3fd": ["1f469-1f3fd-200d-1f680", 18, 44, 15, ["\u{1F469}\u{1F3FD}\u200D\u{1F680}"]], "1f3fe": ["1f469-1f3fe-200d-1f680", 18, 45, 15, ["\u{1F469}\u{1F3FE}\u200D\u{1F680}"]], "1f3ff": ["1f469-1f3ff-200d-1f680", 18, 46, 15, ["\u{1F469}\u{1F3FF}\u200D\u{1F680}"]] }, "1f469-200d-1f692": { "1f3fb": ["1f469-1f3fb-200d-1f692", 18, 48, 15, ["\u{1F469}\u{1F3FB}\u200D\u{1F692}"]], "1f3fc": ["1f469-1f3fc-200d-1f692", 18, 49, 15, ["\u{1F469}\u{1F3FC}\u200D\u{1F692}"]], "1f3fd": ["1f469-1f3fd-200d-1f692", 18, 50, 15, ["\u{1F469}\u{1F3FD}\u200D\u{1F692}"]], "1f3fe": ["1f469-1f3fe-200d-1f692", 18, 51, 15, ["\u{1F469}\u{1F3FE}\u200D\u{1F692}"]], "1f3ff": ["1f469-1f3ff-200d-1f692", 18, 52, 15, ["\u{1F469}\u{1F3FF}\u200D\u{1F692}"]] }, "1f469-200d-1f9af": { "1f3fb": ["1f469-1f3fb-200d-1f9af", 18, 54, 15, ["\u{1F469}\u{1F3FB}\u200D\u{1F9AF}"]], "1f3fc": ["1f469-1f3fc-200d-1f9af", 18, 55, 15, ["\u{1F469}\u{1F3FC}\u200D\u{1F9AF}"]], "1f3fd": ["1f469-1f3fd-200d-1f9af", 18, 56, 15, ["\u{1F469}\u{1F3FD}\u200D\u{1F9AF}"]], "1f3fe": ["1f469-1f3fe-200d-1f9af", 18, 57, 15, ["\u{1F469}\u{1F3FE}\u200D\u{1F9AF}"]], "1f3ff": ["1f469-1f3ff-200d-1f9af", 18, 58, 15, ["\u{1F469}\u{1F3FF}\u200D\u{1F9AF}"]] }, "1f469-200d-1f9b0": { "1f3fb": ["1f469-1f3fb-200d-1f9b0", 18, 60, 15, ["\u{1F469}\u{1F3FB}\u200D\u{1F9B0}"]], "1f3fc": ["1f469-1f3fc-200d-1f9b0", 19, 0, 15, ["\u{1F469}\u{1F3FC}\u200D\u{1F9B0}"]], "1f3fd": ["1f469-1f3fd-200d-1f9b0", 19, 1, 15, ["\u{1F469}\u{1F3FD}\u200D\u{1F9B0}"]], "1f3fe": ["1f469-1f3fe-200d-1f9b0", 19, 2, 15, ["\u{1F469}\u{1F3FE}\u200D\u{1F9B0}"]], "1f3ff": ["1f469-1f3ff-200d-1f9b0", 19, 3, 15, ["\u{1F469}\u{1F3FF}\u200D\u{1F9B0}"]] }, "1f469-200d-1f9b1": { "1f3fb": ["1f469-1f3fb-200d-1f9b1", 19, 5, 15, ["\u{1F469}\u{1F3FB}\u200D\u{1F9B1}"]], "1f3fc": ["1f469-1f3fc-200d-1f9b1", 19, 6, 15, ["\u{1F469}\u{1F3FC}\u200D\u{1F9B1}"]], "1f3fd": ["1f469-1f3fd-200d-1f9b1", 19, 7, 15, ["\u{1F469}\u{1F3FD}\u200D\u{1F9B1}"]], "1f3fe": ["1f469-1f3fe-200d-1f9b1", 19, 8, 15, ["\u{1F469}\u{1F3FE}\u200D\u{1F9B1}"]], "1f3ff": ["1f469-1f3ff-200d-1f9b1", 19, 9, 15, ["\u{1F469}\u{1F3FF}\u200D\u{1F9B1}"]] }, "1f469-200d-1f9b2": { "1f3fb": ["1f469-1f3fb-200d-1f9b2", 19, 11, 15, ["\u{1F469}\u{1F3FB}\u200D\u{1F9B2}"]], "1f3fc": ["1f469-1f3fc-200d-1f9b2", 19, 12, 15, ["\u{1F469}\u{1F3FC}\u200D\u{1F9B2}"]], "1f3fd": ["1f469-1f3fd-200d-1f9b2", 19, 13, 15, ["\u{1F469}\u{1F3FD}\u200D\u{1F9B2}"]], "1f3fe": ["1f469-1f3fe-200d-1f9b2", 19, 14, 15, ["\u{1F469}\u{1F3FE}\u200D\u{1F9B2}"]], "1f3ff": ["1f469-1f3ff-200d-1f9b2", 19, 15, 15, ["\u{1F469}\u{1F3FF}\u200D\u{1F9B2}"]] }, "1f469-200d-1f9b3": { "1f3fb": ["1f469-1f3fb-200d-1f9b3", 19, 17, 15, ["\u{1F469}\u{1F3FB}\u200D\u{1F9B3}"]], "1f3fc": ["1f469-1f3fc-200d-1f9b3", 19, 18, 15, ["\u{1F469}\u{1F3FC}\u200D\u{1F9B3}"]], "1f3fd": ["1f469-1f3fd-200d-1f9b3", 19, 19, 15, ["\u{1F469}\u{1F3FD}\u200D\u{1F9B3}"]], "1f3fe": ["1f469-1f3fe-200d-1f9b3", 19, 20, 15, ["\u{1F469}\u{1F3FE}\u200D\u{1F9B3}"]], "1f3ff": ["1f469-1f3ff-200d-1f9b3", 19, 21, 15, ["\u{1F469}\u{1F3FF}\u200D\u{1F9B3}"]] }, "1f469-200d-1f9bc": { "1f3fb": ["1f469-1f3fb-200d-1f9bc", 19, 23, 15, ["\u{1F469}\u{1F3FB}\u200D\u{1F9BC}"]], "1f3fc": ["1f469-1f3fc-200d-1f9bc", 19, 24, 15, ["\u{1F469}\u{1F3FC}\u200D\u{1F9BC}"]], "1f3fd": ["1f469-1f3fd-200d-1f9bc", 19, 25, 15, ["\u{1F469}\u{1F3FD}\u200D\u{1F9BC}"]], "1f3fe": ["1f469-1f3fe-200d-1f9bc", 19, 26, 15, ["\u{1F469}\u{1F3FE}\u200D\u{1F9BC}"]], "1f3ff": ["1f469-1f3ff-200d-1f9bc", 19, 27, 15, ["\u{1F469}\u{1F3FF}\u200D\u{1F9BC}"]] }, "1f469-200d-1f9bd": { "1f3fb": ["1f469-1f3fb-200d-1f9bd", 19, 29, 15, ["\u{1F469}\u{1F3FB}\u200D\u{1F9BD}"]], "1f3fc": ["1f469-1f3fc-200d-1f9bd", 19, 30, 15, ["\u{1F469}\u{1F3FC}\u200D\u{1F9BD}"]], "1f3fd": ["1f469-1f3fd-200d-1f9bd", 19, 31, 15, ["\u{1F469}\u{1F3FD}\u200D\u{1F9BD}"]], "1f3fe": ["1f469-1f3fe-200d-1f9bd", 19, 32, 15, ["\u{1F469}\u{1F3FE}\u200D\u{1F9BD}"]], "1f3ff": ["1f469-1f3ff-200d-1f9bd", 19, 33, 15, ["\u{1F469}\u{1F3FF}\u200D\u{1F9BD}"]] }, "1f469-200d-2695-fe0f": { "1f3fb": ["1f469-1f3fb-200d-2695-fe0f", 19, 35, 15, ["\u{1F469}\u{1F3FB}\u200D\u2695\uFE0F"]], "1f3fc": ["1f469-1f3fc-200d-2695-fe0f", 19, 36, 15, ["\u{1F469}\u{1F3FC}\u200D\u2695\uFE0F"]], "1f3fd": ["1f469-1f3fd-200d-2695-fe0f", 19, 37, 15, ["\u{1F469}\u{1F3FD}\u200D\u2695\uFE0F"]], "1f3fe": ["1f469-1f3fe-200d-2695-fe0f", 19, 38, 15, ["\u{1F469}\u{1F3FE}\u200D\u2695\uFE0F"]], "1f3ff": ["1f469-1f3ff-200d-2695-fe0f", 19, 39, 15, ["\u{1F469}\u{1F3FF}\u200D\u2695\uFE0F"]] }, "1f469-200d-2696-fe0f": { "1f3fb": ["1f469-1f3fb-200d-2696-fe0f", 19, 41, 15, ["\u{1F469}\u{1F3FB}\u200D\u2696\uFE0F"]], "1f3fc": ["1f469-1f3fc-200d-2696-fe0f", 19, 42, 15, ["\u{1F469}\u{1F3FC}\u200D\u2696\uFE0F"]], "1f3fd": ["1f469-1f3fd-200d-2696-fe0f", 19, 43, 15, ["\u{1F469}\u{1F3FD}\u200D\u2696\uFE0F"]], "1f3fe": ["1f469-1f3fe-200d-2696-fe0f", 19, 44, 15, ["\u{1F469}\u{1F3FE}\u200D\u2696\uFE0F"]], "1f3ff": ["1f469-1f3ff-200d-2696-fe0f", 19, 45, 15, ["\u{1F469}\u{1F3FF}\u200D\u2696\uFE0F"]] }, "1f469-200d-2708-fe0f": { "1f3fb": ["1f469-1f3fb-200d-2708-fe0f", 19, 47, 15, ["\u{1F469}\u{1F3FB}\u200D\u2708\uFE0F"]], "1f3fc": ["1f469-1f3fc-200d-2708-fe0f", 19, 48, 15, ["\u{1F469}\u{1F3FC}\u200D\u2708\uFE0F"]], "1f3fd": ["1f469-1f3fd-200d-2708-fe0f", 19, 49, 15, ["\u{1F469}\u{1F3FD}\u200D\u2708\uFE0F"]], "1f3fe": ["1f469-1f3fe-200d-2708-fe0f", 19, 50, 15, ["\u{1F469}\u{1F3FE}\u200D\u2708\uFE0F"]], "1f3ff": ["1f469-1f3ff-200d-2708-fe0f", 19, 51, 15, ["\u{1F469}\u{1F3FF}\u200D\u2708\uFE0F"]] }, "1f469-200d-2764-fe0f-200d-1f468": { "1f3fb-1f3fb": ["1f469-1f3fb-200d-2764-fe0f-200d-1f468-1f3fb", 19, 53, 15, ["\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}"]], "1f3fb-1f3fc": ["1f469-1f3fb-200d-2764-fe0f-200d-1f468-1f3fc", 19, 54, 15, ["\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}"]], "1f3fb-1f3fd": ["1f469-1f3fb-200d-2764-fe0f-200d-1f468-1f3fd", 19, 55, 15, ["\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}"]], "1f3fb-1f3fe": ["1f469-1f3fb-200d-2764-fe0f-200d-1f468-1f3fe", 19, 56, 15, ["\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}"]], "1f3fb-1f3ff": ["1f469-1f3fb-200d-2764-fe0f-200d-1f468-1f3ff", 19, 57, 15, ["\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}"]], "1f3fc-1f3fb": ["1f469-1f3fc-200d-2764-fe0f-200d-1f468-1f3fb", 19, 58, 15, ["\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}"]], "1f3fc-1f3fc": ["1f469-1f3fc-200d-2764-fe0f-200d-1f468-1f3fc", 19, 59, 15, ["\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}"]], "1f3fc-1f3fd": ["1f469-1f3fc-200d-2764-fe0f-200d-1f468-1f3fd", 19, 60, 15, ["\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}"]], "1f3fc-1f3fe": ["1f469-1f3fc-200d-2764-fe0f-200d-1f468-1f3fe", 20, 0, 15, ["\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}"]], "1f3fc-1f3ff": ["1f469-1f3fc-200d-2764-fe0f-200d-1f468-1f3ff", 20, 1, 15, ["\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}"]], "1f3fd-1f3fb": ["1f469-1f3fd-200d-2764-fe0f-200d-1f468-1f3fb", 20, 2, 15, ["\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}"]], "1f3fd-1f3fc": ["1f469-1f3fd-200d-2764-fe0f-200d-1f468-1f3fc", 20, 3, 15, ["\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}"]], "1f3fd-1f3fd": ["1f469-1f3fd-200d-2764-fe0f-200d-1f468-1f3fd", 20, 4, 15, ["\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}"]], "1f3fd-1f3fe": ["1f469-1f3fd-200d-2764-fe0f-200d-1f468-1f3fe", 20, 5, 15, ["\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}"]], "1f3fd-1f3ff": ["1f469-1f3fd-200d-2764-fe0f-200d-1f468-1f3ff", 20, 6, 15, ["\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}"]], "1f3fe-1f3fb": ["1f469-1f3fe-200d-2764-fe0f-200d-1f468-1f3fb", 20, 7, 15, ["\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}"]], "1f3fe-1f3fc": ["1f469-1f3fe-200d-2764-fe0f-200d-1f468-1f3fc", 20, 8, 15, ["\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}"]], "1f3fe-1f3fd": ["1f469-1f3fe-200d-2764-fe0f-200d-1f468-1f3fd", 20, 9, 15, ["\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}"]], "1f3fe-1f3fe": ["1f469-1f3fe-200d-2764-fe0f-200d-1f468-1f3fe", 20, 10, 15, ["\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}"]], "1f3fe-1f3ff": ["1f469-1f3fe-200d-2764-fe0f-200d-1f468-1f3ff", 20, 11, 15, ["\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}"]], "1f3ff-1f3fb": ["1f469-1f3ff-200d-2764-fe0f-200d-1f468-1f3fb", 20, 12, 15, ["\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}"]], "1f3ff-1f3fc": ["1f469-1f3ff-200d-2764-fe0f-200d-1f468-1f3fc", 20, 13, 15, ["\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}"]], "1f3ff-1f3fd": ["1f469-1f3ff-200d-2764-fe0f-200d-1f468-1f3fd", 20, 14, 15, ["\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}"]], "1f3ff-1f3fe": ["1f469-1f3ff-200d-2764-fe0f-200d-1f468-1f3fe", 20, 15, 15, ["\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}"]], "1f3ff-1f3ff": ["1f469-1f3ff-200d-2764-fe0f-200d-1f468-1f3ff", 20, 16, 15, ["\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}"]] }, "1f469-200d-2764-fe0f-200d-1f469": { "1f3fb-1f3fb": ["1f469-1f3fb-200d-2764-fe0f-200d-1f469-1f3fb", 20, 18, 15, ["\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FB}"]], "1f3fb-1f3fc": ["1f469-1f3fb-200d-2764-fe0f-200d-1f469-1f3fc", 20, 19, 15, ["\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FC}"]], "1f3fb-1f3fd": ["1f469-1f3fb-200d-2764-fe0f-200d-1f469-1f3fd", 20, 20, 15, ["\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FD}"]], "1f3fb-1f3fe": ["1f469-1f3fb-200d-2764-fe0f-200d-1f469-1f3fe", 20, 21, 15, ["\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FE}"]], "1f3fb-1f3ff": ["1f469-1f3fb-200d-2764-fe0f-200d-1f469-1f3ff", 20, 22, 15, ["\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FF}"]], "1f3fc-1f3fb": ["1f469-1f3fc-200d-2764-fe0f-200d-1f469-1f3fb", 20, 23, 15, ["\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FB}"]], "1f3fc-1f3fc": ["1f469-1f3fc-200d-2764-fe0f-200d-1f469-1f3fc", 20, 24, 15, ["\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FC}"]], "1f3fc-1f3fd": ["1f469-1f3fc-200d-2764-fe0f-200d-1f469-1f3fd", 20, 25, 15, ["\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FD}"]], "1f3fc-1f3fe": ["1f469-1f3fc-200d-2764-fe0f-200d-1f469-1f3fe", 20, 26, 15, ["\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FE}"]], "1f3fc-1f3ff": ["1f469-1f3fc-200d-2764-fe0f-200d-1f469-1f3ff", 20, 27, 15, ["\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FF}"]], "1f3fd-1f3fb": ["1f469-1f3fd-200d-2764-fe0f-200d-1f469-1f3fb", 20, 28, 15, ["\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FB}"]], "1f3fd-1f3fc": ["1f469-1f3fd-200d-2764-fe0f-200d-1f469-1f3fc", 20, 29, 15, ["\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FC}"]], "1f3fd-1f3fd": ["1f469-1f3fd-200d-2764-fe0f-200d-1f469-1f3fd", 20, 30, 15, ["\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FD}"]], "1f3fd-1f3fe": ["1f469-1f3fd-200d-2764-fe0f-200d-1f469-1f3fe", 20, 31, 15, ["\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FE}"]], "1f3fd-1f3ff": ["1f469-1f3fd-200d-2764-fe0f-200d-1f469-1f3ff", 20, 32, 15, ["\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FF}"]], "1f3fe-1f3fb": ["1f469-1f3fe-200d-2764-fe0f-200d-1f469-1f3fb", 20, 33, 15, ["\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FB}"]], "1f3fe-1f3fc": ["1f469-1f3fe-200d-2764-fe0f-200d-1f469-1f3fc", 20, 34, 15, ["\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FC}"]], "1f3fe-1f3fd": ["1f469-1f3fe-200d-2764-fe0f-200d-1f469-1f3fd", 20, 35, 15, ["\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FD}"]], "1f3fe-1f3fe": ["1f469-1f3fe-200d-2764-fe0f-200d-1f469-1f3fe", 20, 36, 15, ["\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FE}"]], "1f3fe-1f3ff": ["1f469-1f3fe-200d-2764-fe0f-200d-1f469-1f3ff", 20, 37, 15, ["\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FF}"]], "1f3ff-1f3fb": ["1f469-1f3ff-200d-2764-fe0f-200d-1f469-1f3fb", 20, 38, 15, ["\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FB}"]], "1f3ff-1f3fc": ["1f469-1f3ff-200d-2764-fe0f-200d-1f469-1f3fc", 20, 39, 15, ["\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FC}"]], "1f3ff-1f3fd": ["1f469-1f3ff-200d-2764-fe0f-200d-1f469-1f3fd", 20, 40, 15, ["\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FD}"]], "1f3ff-1f3fe": ["1f469-1f3ff-200d-2764-fe0f-200d-1f469-1f3fe", 20, 41, 15, ["\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FE}"]], "1f3ff-1f3ff": ["1f469-1f3ff-200d-2764-fe0f-200d-1f469-1f3ff", 20, 42, 15, ["\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FF}"]] }, "1f469-200d-2764-fe0f-200d-1f48b-200d-1f468": { "1f3fb-1f3fb": ["1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb", 20, 44, 15, ["\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}"]], "1f3fb-1f3fc": ["1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc", 20, 45, 15, ["\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}"]], "1f3fb-1f3fd": ["1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd", 20, 46, 15, ["\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}"]], "1f3fb-1f3fe": ["1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe", 20, 47, 15, ["\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}"]], "1f3fb-1f3ff": ["1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff", 20, 48, 15, ["\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}"]], "1f3fc-1f3fb": ["1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb", 20, 49, 15, ["\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}"]], "1f3fc-1f3fc": ["1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc", 20, 50, 15, ["\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}"]], "1f3fc-1f3fd": ["1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd", 20, 51, 15, ["\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}"]], "1f3fc-1f3fe": ["1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe", 20, 52, 15, ["\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}"]], "1f3fc-1f3ff": ["1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff", 20, 53, 15, ["\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}"]], "1f3fd-1f3fb": ["1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb", 20, 54, 15, ["\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}"]], "1f3fd-1f3fc": ["1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc", 20, 55, 15, ["\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}"]], "1f3fd-1f3fd": ["1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd", 20, 56, 15, ["\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}"]], "1f3fd-1f3fe": ["1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe", 20, 57, 15, ["\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}"]], "1f3fd-1f3ff": ["1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff", 20, 58, 15, ["\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}"]], "1f3fe-1f3fb": ["1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb", 20, 59, 15, ["\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}"]], "1f3fe-1f3fc": ["1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc", 20, 60, 15, ["\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}"]], "1f3fe-1f3fd": ["1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd", 21, 0, 15, ["\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}"]], "1f3fe-1f3fe": ["1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe", 21, 1, 15, ["\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}"]], "1f3fe-1f3ff": ["1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff", 21, 2, 15, ["\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}"]], "1f3ff-1f3fb": ["1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fb", 21, 3, 15, ["\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}"]], "1f3ff-1f3fc": ["1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fc", 21, 4, 15, ["\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}"]], "1f3ff-1f3fd": ["1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fd", 21, 5, 15, ["\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}"]], "1f3ff-1f3fe": ["1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3fe", 21, 6, 15, ["\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}"]], "1f3ff-1f3ff": ["1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f468-1f3ff", 21, 7, 15, ["\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}"]] }, "1f469-200d-2764-fe0f-200d-1f48b-200d-1f469": { "1f3fb-1f3fb": ["1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fb", 21, 9, 15, ["\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FB}"]], "1f3fb-1f3fc": ["1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fc", 21, 10, 15, ["\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FC}"]], "1f3fb-1f3fd": ["1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fd", 21, 11, 15, ["\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FD}"]], "1f3fb-1f3fe": ["1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fe", 21, 12, 15, ["\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FE}"]], "1f3fb-1f3ff": ["1f469-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3ff", 21, 13, 15, ["\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FF}"]], "1f3fc-1f3fb": ["1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fb", 21, 14, 15, ["\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FB}"]], "1f3fc-1f3fc": ["1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fc", 21, 15, 15, ["\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FC}"]], "1f3fc-1f3fd": ["1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fd", 21, 16, 15, ["\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FD}"]], "1f3fc-1f3fe": ["1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fe", 21, 17, 15, ["\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FE}"]], "1f3fc-1f3ff": ["1f469-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3ff", 21, 18, 15, ["\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FF}"]], "1f3fd-1f3fb": ["1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fb", 21, 19, 15, ["\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FB}"]], "1f3fd-1f3fc": ["1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fc", 21, 20, 15, ["\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FC}"]], "1f3fd-1f3fd": ["1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fd", 21, 21, 15, ["\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FD}"]], "1f3fd-1f3fe": ["1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fe", 21, 22, 15, ["\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FE}"]], "1f3fd-1f3ff": ["1f469-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3ff", 21, 23, 15, ["\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FF}"]], "1f3fe-1f3fb": ["1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fb", 21, 24, 15, ["\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FB}"]], "1f3fe-1f3fc": ["1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fc", 21, 25, 15, ["\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FC}"]], "1f3fe-1f3fd": ["1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fd", 21, 26, 15, ["\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FD}"]], "1f3fe-1f3fe": ["1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fe", 21, 27, 15, ["\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FE}"]], "1f3fe-1f3ff": ["1f469-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3ff", 21, 28, 15, ["\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FF}"]], "1f3ff-1f3fb": ["1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fb", 21, 29, 15, ["\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FB}"]], "1f3ff-1f3fc": ["1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fc", 21, 30, 15, ["\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FC}"]], "1f3ff-1f3fd": ["1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fd", 21, 31, 15, ["\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FD}"]], "1f3ff-1f3fe": ["1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3fe", 21, 32, 15, ["\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FE}"]], "1f3ff-1f3ff": ["1f469-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f469-1f3ff", 21, 33, 15, ["\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FF}"]] }, "1f469": { "1f3fb": ["1f469-1f3fb", 21, 35, 15, ["\u{1F469}\u{1F3FB}"]], "1f3fc": ["1f469-1f3fc", 21, 36, 15, ["\u{1F469}\u{1F3FC}"]], "1f3fd": ["1f469-1f3fd", 21, 37, 15, ["\u{1F469}\u{1F3FD}"]], "1f3fe": ["1f469-1f3fe", 21, 38, 15, ["\u{1F469}\u{1F3FE}"]], "1f3ff": ["1f469-1f3ff", 21, 39, 15, ["\u{1F469}\u{1F3FF}"]] }, "1f46b": { "1f3fb": ["1f46b-1f3fb", 21, 42, 15, ["\u{1F46B}\u{1F3FB}"]], "1f3fc": ["1f46b-1f3fc", 21, 43, 15, ["\u{1F46B}\u{1F3FC}"]], "1f3fd": ["1f46b-1f3fd", 21, 44, 15, ["\u{1F46B}\u{1F3FD}"]], "1f3fe": ["1f46b-1f3fe", 21, 45, 15, ["\u{1F46B}\u{1F3FE}"]], "1f3ff": ["1f46b-1f3ff", 21, 46, 15, ["\u{1F46B}\u{1F3FF}"]], "1f3fb-1f3fc": ["1f469-1f3fb-200d-1f91d-200d-1f468-1f3fc", 21, 47, 15, ["\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}"]], "1f3fb-1f3fd": ["1f469-1f3fb-200d-1f91d-200d-1f468-1f3fd", 21, 48, 15, ["\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}"]], "1f3fb-1f3fe": ["1f469-1f3fb-200d-1f91d-200d-1f468-1f3fe", 21, 49, 15, ["\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}"]], "1f3fb-1f3ff": ["1f469-1f3fb-200d-1f91d-200d-1f468-1f3ff", 21, 50, 15, ["\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FF}"]], "1f3fc-1f3fb": ["1f469-1f3fc-200d-1f91d-200d-1f468-1f3fb", 21, 51, 15, ["\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}"]], "1f3fc-1f3fd": ["1f469-1f3fc-200d-1f91d-200d-1f468-1f3fd", 21, 52, 15, ["\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}"]], "1f3fc-1f3fe": ["1f469-1f3fc-200d-1f91d-200d-1f468-1f3fe", 21, 53, 15, ["\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}"]], "1f3fc-1f3ff": ["1f469-1f3fc-200d-1f91d-200d-1f468-1f3ff", 21, 54, 15, ["\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FF}"]], "1f3fd-1f3fb": ["1f469-1f3fd-200d-1f91d-200d-1f468-1f3fb", 21, 55, 15, ["\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}"]], "1f3fd-1f3fc": ["1f469-1f3fd-200d-1f91d-200d-1f468-1f3fc", 21, 56, 15, ["\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}"]], "1f3fd-1f3fe": ["1f469-1f3fd-200d-1f91d-200d-1f468-1f3fe", 21, 57, 15, ["\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}"]], "1f3fd-1f3ff": ["1f469-1f3fd-200d-1f91d-200d-1f468-1f3ff", 21, 58, 15, ["\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FF}"]], "1f3fe-1f3fb": ["1f469-1f3fe-200d-1f91d-200d-1f468-1f3fb", 21, 59, 15, ["\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}"]], "1f3fe-1f3fc": ["1f469-1f3fe-200d-1f91d-200d-1f468-1f3fc", 21, 60, 15, ["\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}"]], "1f3fe-1f3fd": ["1f469-1f3fe-200d-1f91d-200d-1f468-1f3fd", 22, 0, 15, ["\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}"]], "1f3fe-1f3ff": ["1f469-1f3fe-200d-1f91d-200d-1f468-1f3ff", 22, 1, 15, ["\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FF}"]], "1f3ff-1f3fb": ["1f469-1f3ff-200d-1f91d-200d-1f468-1f3fb", 22, 2, 15, ["\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}"]], "1f3ff-1f3fc": ["1f469-1f3ff-200d-1f91d-200d-1f468-1f3fc", 22, 3, 15, ["\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}"]], "1f3ff-1f3fd": ["1f469-1f3ff-200d-1f91d-200d-1f468-1f3fd", 22, 4, 15, ["\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}"]], "1f3ff-1f3fe": ["1f469-1f3ff-200d-1f91d-200d-1f468-1f3fe", 22, 5, 15, ["\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}"]] }, "1f46c": { "1f3fb": ["1f46c-1f3fb", 22, 7, 15, ["\u{1F46C}\u{1F3FB}"]], "1f3fc": ["1f46c-1f3fc", 22, 8, 15, ["\u{1F46C}\u{1F3FC}"]], "1f3fd": ["1f46c-1f3fd", 22, 9, 15, ["\u{1F46C}\u{1F3FD}"]], "1f3fe": ["1f46c-1f3fe", 22, 10, 15, ["\u{1F46C}\u{1F3FE}"]], "1f3ff": ["1f46c-1f3ff", 22, 11, 15, ["\u{1F46C}\u{1F3FF}"]], "1f3fb-1f3fc": ["1f468-1f3fb-200d-1f91d-200d-1f468-1f3fc", 22, 12, 15, ["\u{1F468}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}"]], "1f3fb-1f3fd": ["1f468-1f3fb-200d-1f91d-200d-1f468-1f3fd", 22, 13, 15, ["\u{1F468}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}"]], "1f3fb-1f3fe": ["1f468-1f3fb-200d-1f91d-200d-1f468-1f3fe", 22, 14, 15, ["\u{1F468}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}"]], "1f3fb-1f3ff": ["1f468-1f3fb-200d-1f91d-200d-1f468-1f3ff", 22, 15, 15, ["\u{1F468}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FF}"]], "1f3fc-1f3fb": ["1f468-1f3fc-200d-1f91d-200d-1f468-1f3fb", 22, 16, 15, ["\u{1F468}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}"]], "1f3fc-1f3fd": ["1f468-1f3fc-200d-1f91d-200d-1f468-1f3fd", 22, 17, 15, ["\u{1F468}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}"]], "1f3fc-1f3fe": ["1f468-1f3fc-200d-1f91d-200d-1f468-1f3fe", 22, 18, 15, ["\u{1F468}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}"]], "1f3fc-1f3ff": ["1f468-1f3fc-200d-1f91d-200d-1f468-1f3ff", 22, 19, 15, ["\u{1F468}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FF}"]], "1f3fd-1f3fb": ["1f468-1f3fd-200d-1f91d-200d-1f468-1f3fb", 22, 20, 15, ["\u{1F468}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}"]], "1f3fd-1f3fc": ["1f468-1f3fd-200d-1f91d-200d-1f468-1f3fc", 22, 21, 15, ["\u{1F468}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}"]], "1f3fd-1f3fe": ["1f468-1f3fd-200d-1f91d-200d-1f468-1f3fe", 22, 22, 15, ["\u{1F468}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}"]], "1f3fd-1f3ff": ["1f468-1f3fd-200d-1f91d-200d-1f468-1f3ff", 22, 23, 15, ["\u{1F468}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FF}"]], "1f3fe-1f3fb": ["1f468-1f3fe-200d-1f91d-200d-1f468-1f3fb", 22, 24, 15, ["\u{1F468}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}"]], "1f3fe-1f3fc": ["1f468-1f3fe-200d-1f91d-200d-1f468-1f3fc", 22, 25, 15, ["\u{1F468}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}"]], "1f3fe-1f3fd": ["1f468-1f3fe-200d-1f91d-200d-1f468-1f3fd", 22, 26, 15, ["\u{1F468}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}"]], "1f3fe-1f3ff": ["1f468-1f3fe-200d-1f91d-200d-1f468-1f3ff", 22, 27, 15, ["\u{1F468}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FF}"]], "1f3ff-1f3fb": ["1f468-1f3ff-200d-1f91d-200d-1f468-1f3fb", 22, 28, 15, ["\u{1F468}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}"]], "1f3ff-1f3fc": ["1f468-1f3ff-200d-1f91d-200d-1f468-1f3fc", 22, 29, 15, ["\u{1F468}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}"]], "1f3ff-1f3fd": ["1f468-1f3ff-200d-1f91d-200d-1f468-1f3fd", 22, 30, 15, ["\u{1F468}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}"]], "1f3ff-1f3fe": ["1f468-1f3ff-200d-1f91d-200d-1f468-1f3fe", 22, 31, 15, ["\u{1F468}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}"]] }, "1f46d": { "1f3fb": ["1f46d-1f3fb", 22, 33, 15, ["\u{1F46D}\u{1F3FB}"]], "1f3fc": ["1f46d-1f3fc", 22, 34, 15, ["\u{1F46D}\u{1F3FC}"]], "1f3fd": ["1f46d-1f3fd", 22, 35, 15, ["\u{1F46D}\u{1F3FD}"]], "1f3fe": ["1f46d-1f3fe", 22, 36, 15, ["\u{1F46D}\u{1F3FE}"]], "1f3ff": ["1f46d-1f3ff", 22, 37, 15, ["\u{1F46D}\u{1F3FF}"]], "1f3fb-1f3fc": ["1f469-1f3fb-200d-1f91d-200d-1f469-1f3fc", 22, 38, 15, ["\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FC}"]], "1f3fb-1f3fd": ["1f469-1f3fb-200d-1f91d-200d-1f469-1f3fd", 22, 39, 15, ["\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FD}"]], "1f3fb-1f3fe": ["1f469-1f3fb-200d-1f91d-200d-1f469-1f3fe", 22, 40, 15, ["\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FE}"]], "1f3fb-1f3ff": ["1f469-1f3fb-200d-1f91d-200d-1f469-1f3ff", 22, 41, 15, ["\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FF}"]], "1f3fc-1f3fb": ["1f469-1f3fc-200d-1f91d-200d-1f469-1f3fb", 22, 42, 15, ["\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FB}"]], "1f3fc-1f3fd": ["1f469-1f3fc-200d-1f91d-200d-1f469-1f3fd", 22, 43, 15, ["\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FD}"]], "1f3fc-1f3fe": ["1f469-1f3fc-200d-1f91d-200d-1f469-1f3fe", 22, 44, 15, ["\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FE}"]], "1f3fc-1f3ff": ["1f469-1f3fc-200d-1f91d-200d-1f469-1f3ff", 22, 45, 15, ["\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FF}"]], "1f3fd-1f3fb": ["1f469-1f3fd-200d-1f91d-200d-1f469-1f3fb", 22, 46, 15, ["\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FB}"]], "1f3fd-1f3fc": ["1f469-1f3fd-200d-1f91d-200d-1f469-1f3fc", 22, 47, 15, ["\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FC}"]], "1f3fd-1f3fe": ["1f469-1f3fd-200d-1f91d-200d-1f469-1f3fe", 22, 48, 15, ["\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FE}"]], "1f3fd-1f3ff": ["1f469-1f3fd-200d-1f91d-200d-1f469-1f3ff", 22, 49, 15, ["\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FF}"]], "1f3fe-1f3fb": ["1f469-1f3fe-200d-1f91d-200d-1f469-1f3fb", 22, 50, 15, ["\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FB}"]], "1f3fe-1f3fc": ["1f469-1f3fe-200d-1f91d-200d-1f469-1f3fc", 22, 51, 15, ["\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FC}"]], "1f3fe-1f3fd": ["1f469-1f3fe-200d-1f91d-200d-1f469-1f3fd", 22, 52, 15, ["\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FD}"]], "1f3fe-1f3ff": ["1f469-1f3fe-200d-1f91d-200d-1f469-1f3ff", 22, 53, 15, ["\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FF}"]], "1f3ff-1f3fb": ["1f469-1f3ff-200d-1f91d-200d-1f469-1f3fb", 22, 54, 15, ["\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FB}"]], "1f3ff-1f3fc": ["1f469-1f3ff-200d-1f91d-200d-1f469-1f3fc", 22, 55, 15, ["\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FC}"]], "1f3ff-1f3fd": ["1f469-1f3ff-200d-1f91d-200d-1f469-1f3fd", 22, 56, 15, ["\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FD}"]], "1f3ff-1f3fe": ["1f469-1f3ff-200d-1f91d-200d-1f469-1f3fe", 22, 57, 15, ["\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FE}"]] }, "1f46e-200d-2640-fe0f": { "1f3fb": ["1f46e-1f3fb-200d-2640-fe0f", 22, 59, 15, ["\u{1F46E}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f46e-1f3fc-200d-2640-fe0f", 22, 60, 15, ["\u{1F46E}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f46e-1f3fd-200d-2640-fe0f", 23, 0, 15, ["\u{1F46E}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f46e-1f3fe-200d-2640-fe0f", 23, 1, 15, ["\u{1F46E}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f46e-1f3ff-200d-2640-fe0f", 23, 2, 15, ["\u{1F46E}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f46e-200d-2642-fe0f": { "1f3fb": ["1f46e-1f3fb-200d-2642-fe0f", 23, 4, 15, ["\u{1F46E}\u{1F3FB}\u200D\u2642\uFE0F", "\u{1F46E}\u{1F3FB}"]], "1f3fc": ["1f46e-1f3fc-200d-2642-fe0f", 23, 5, 15, ["\u{1F46E}\u{1F3FC}\u200D\u2642\uFE0F", "\u{1F46E}\u{1F3FC}"]], "1f3fd": ["1f46e-1f3fd-200d-2642-fe0f", 23, 6, 15, ["\u{1F46E}\u{1F3FD}\u200D\u2642\uFE0F", "\u{1F46E}\u{1F3FD}"]], "1f3fe": ["1f46e-1f3fe-200d-2642-fe0f", 23, 7, 15, ["\u{1F46E}\u{1F3FE}\u200D\u2642\uFE0F", "\u{1F46E}\u{1F3FE}"]], "1f3ff": ["1f46e-1f3ff-200d-2642-fe0f", 23, 8, 15, ["\u{1F46E}\u{1F3FF}\u200D\u2642\uFE0F", "\u{1F46E}\u{1F3FF}"]] }, "1f470-200d-2640-fe0f": { "1f3fb": ["1f470-1f3fb-200d-2640-fe0f", 23, 19, 15, ["\u{1F470}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f470-1f3fc-200d-2640-fe0f", 23, 20, 15, ["\u{1F470}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f470-1f3fd-200d-2640-fe0f", 23, 21, 15, ["\u{1F470}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f470-1f3fe-200d-2640-fe0f", 23, 22, 15, ["\u{1F470}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f470-1f3ff-200d-2640-fe0f", 23, 23, 15, ["\u{1F470}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f470-200d-2642-fe0f": { "1f3fb": ["1f470-1f3fb-200d-2642-fe0f", 23, 25, 15, ["\u{1F470}\u{1F3FB}\u200D\u2642\uFE0F"]], "1f3fc": ["1f470-1f3fc-200d-2642-fe0f", 23, 26, 15, ["\u{1F470}\u{1F3FC}\u200D\u2642\uFE0F"]], "1f3fd": ["1f470-1f3fd-200d-2642-fe0f", 23, 27, 15, ["\u{1F470}\u{1F3FD}\u200D\u2642\uFE0F"]], "1f3fe": ["1f470-1f3fe-200d-2642-fe0f", 23, 28, 15, ["\u{1F470}\u{1F3FE}\u200D\u2642\uFE0F"]], "1f3ff": ["1f470-1f3ff-200d-2642-fe0f", 23, 29, 15, ["\u{1F470}\u{1F3FF}\u200D\u2642\uFE0F"]] }, "1f470": { "1f3fb": ["1f470-1f3fb", 23, 31, 15, ["\u{1F470}\u{1F3FB}"]], "1f3fc": ["1f470-1f3fc", 23, 32, 15, ["\u{1F470}\u{1F3FC}"]], "1f3fd": ["1f470-1f3fd", 23, 33, 15, ["\u{1F470}\u{1F3FD}"]], "1f3fe": ["1f470-1f3fe", 23, 34, 15, ["\u{1F470}\u{1F3FE}"]], "1f3ff": ["1f470-1f3ff", 23, 35, 15, ["\u{1F470}\u{1F3FF}"]] }, "1f471-200d-2640-fe0f": { "1f3fb": ["1f471-1f3fb-200d-2640-fe0f", 23, 37, 15, ["\u{1F471}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f471-1f3fc-200d-2640-fe0f", 23, 38, 15, ["\u{1F471}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f471-1f3fd-200d-2640-fe0f", 23, 39, 15, ["\u{1F471}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f471-1f3fe-200d-2640-fe0f", 23, 40, 15, ["\u{1F471}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f471-1f3ff-200d-2640-fe0f", 23, 41, 15, ["\u{1F471}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f471-200d-2642-fe0f": { "1f3fb": ["1f471-1f3fb-200d-2642-fe0f", 23, 43, 15, ["\u{1F471}\u{1F3FB}\u200D\u2642\uFE0F", "\u{1F471}\u{1F3FB}"]], "1f3fc": ["1f471-1f3fc-200d-2642-fe0f", 23, 44, 15, ["\u{1F471}\u{1F3FC}\u200D\u2642\uFE0F", "\u{1F471}\u{1F3FC}"]], "1f3fd": ["1f471-1f3fd-200d-2642-fe0f", 23, 45, 15, ["\u{1F471}\u{1F3FD}\u200D\u2642\uFE0F", "\u{1F471}\u{1F3FD}"]], "1f3fe": ["1f471-1f3fe-200d-2642-fe0f", 23, 46, 15, ["\u{1F471}\u{1F3FE}\u200D\u2642\uFE0F", "\u{1F471}\u{1F3FE}"]], "1f3ff": ["1f471-1f3ff-200d-2642-fe0f", 23, 47, 15, ["\u{1F471}\u{1F3FF}\u200D\u2642\uFE0F", "\u{1F471}\u{1F3FF}"]] }, "1f472": { "1f3fb": ["1f472-1f3fb", 23, 55, 15, ["\u{1F472}\u{1F3FB}"]], "1f3fc": ["1f472-1f3fc", 23, 56, 15, ["\u{1F472}\u{1F3FC}"]], "1f3fd": ["1f472-1f3fd", 23, 57, 15, ["\u{1F472}\u{1F3FD}"]], "1f3fe": ["1f472-1f3fe", 23, 58, 15, ["\u{1F472}\u{1F3FE}"]], "1f3ff": ["1f472-1f3ff", 23, 59, 15, ["\u{1F472}\u{1F3FF}"]] }, "1f473-200d-2640-fe0f": { "1f3fb": ["1f473-1f3fb-200d-2640-fe0f", 24, 0, 15, ["\u{1F473}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f473-1f3fc-200d-2640-fe0f", 24, 1, 15, ["\u{1F473}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f473-1f3fd-200d-2640-fe0f", 24, 2, 15, ["\u{1F473}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f473-1f3fe-200d-2640-fe0f", 24, 3, 15, ["\u{1F473}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f473-1f3ff-200d-2640-fe0f", 24, 4, 15, ["\u{1F473}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f473-200d-2642-fe0f": { "1f3fb": ["1f473-1f3fb-200d-2642-fe0f", 24, 6, 15, ["\u{1F473}\u{1F3FB}\u200D\u2642\uFE0F", "\u{1F473}\u{1F3FB}"]], "1f3fc": ["1f473-1f3fc-200d-2642-fe0f", 24, 7, 15, ["\u{1F473}\u{1F3FC}\u200D\u2642\uFE0F", "\u{1F473}\u{1F3FC}"]], "1f3fd": ["1f473-1f3fd-200d-2642-fe0f", 24, 8, 15, ["\u{1F473}\u{1F3FD}\u200D\u2642\uFE0F", "\u{1F473}\u{1F3FD}"]], "1f3fe": ["1f473-1f3fe-200d-2642-fe0f", 24, 9, 15, ["\u{1F473}\u{1F3FE}\u200D\u2642\uFE0F", "\u{1F473}\u{1F3FE}"]], "1f3ff": ["1f473-1f3ff-200d-2642-fe0f", 24, 10, 15, ["\u{1F473}\u{1F3FF}\u200D\u2642\uFE0F", "\u{1F473}\u{1F3FF}"]] }, "1f474": { "1f3fb": ["1f474-1f3fb", 24, 18, 15, ["\u{1F474}\u{1F3FB}"]], "1f3fc": ["1f474-1f3fc", 24, 19, 15, ["\u{1F474}\u{1F3FC}"]], "1f3fd": ["1f474-1f3fd", 24, 20, 15, ["\u{1F474}\u{1F3FD}"]], "1f3fe": ["1f474-1f3fe", 24, 21, 15, ["\u{1F474}\u{1F3FE}"]], "1f3ff": ["1f474-1f3ff", 24, 22, 15, ["\u{1F474}\u{1F3FF}"]] }, "1f475": { "1f3fb": ["1f475-1f3fb", 24, 24, 15, ["\u{1F475}\u{1F3FB}"]], "1f3fc": ["1f475-1f3fc", 24, 25, 15, ["\u{1F475}\u{1F3FC}"]], "1f3fd": ["1f475-1f3fd", 24, 26, 15, ["\u{1F475}\u{1F3FD}"]], "1f3fe": ["1f475-1f3fe", 24, 27, 15, ["\u{1F475}\u{1F3FE}"]], "1f3ff": ["1f475-1f3ff", 24, 28, 15, ["\u{1F475}\u{1F3FF}"]] }, "1f476": { "1f3fb": ["1f476-1f3fb", 24, 30, 15, ["\u{1F476}\u{1F3FB}"]], "1f3fc": ["1f476-1f3fc", 24, 31, 15, ["\u{1F476}\u{1F3FC}"]], "1f3fd": ["1f476-1f3fd", 24, 32, 15, ["\u{1F476}\u{1F3FD}"]], "1f3fe": ["1f476-1f3fe", 24, 33, 15, ["\u{1F476}\u{1F3FE}"]], "1f3ff": ["1f476-1f3ff", 24, 34, 15, ["\u{1F476}\u{1F3FF}"]] }, "1f477-200d-2640-fe0f": { "1f3fb": ["1f477-1f3fb-200d-2640-fe0f", 24, 36, 15, ["\u{1F477}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f477-1f3fc-200d-2640-fe0f", 24, 37, 15, ["\u{1F477}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f477-1f3fd-200d-2640-fe0f", 24, 38, 15, ["\u{1F477}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f477-1f3fe-200d-2640-fe0f", 24, 39, 15, ["\u{1F477}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f477-1f3ff-200d-2640-fe0f", 24, 40, 15, ["\u{1F477}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f477-200d-2642-fe0f": { "1f3fb": ["1f477-1f3fb-200d-2642-fe0f", 24, 42, 15, ["\u{1F477}\u{1F3FB}\u200D\u2642\uFE0F", "\u{1F477}\u{1F3FB}"]], "1f3fc": ["1f477-1f3fc-200d-2642-fe0f", 24, 43, 15, ["\u{1F477}\u{1F3FC}\u200D\u2642\uFE0F", "\u{1F477}\u{1F3FC}"]], "1f3fd": ["1f477-1f3fd-200d-2642-fe0f", 24, 44, 15, ["\u{1F477}\u{1F3FD}\u200D\u2642\uFE0F", "\u{1F477}\u{1F3FD}"]], "1f3fe": ["1f477-1f3fe-200d-2642-fe0f", 24, 45, 15, ["\u{1F477}\u{1F3FE}\u200D\u2642\uFE0F", "\u{1F477}\u{1F3FE}"]], "1f3ff": ["1f477-1f3ff-200d-2642-fe0f", 24, 46, 15, ["\u{1F477}\u{1F3FF}\u200D\u2642\uFE0F", "\u{1F477}\u{1F3FF}"]] }, "1f478": { "1f3fb": ["1f478-1f3fb", 24, 54, 15, ["\u{1F478}\u{1F3FB}"]], "1f3fc": ["1f478-1f3fc", 24, 55, 15, ["\u{1F478}\u{1F3FC}"]], "1f3fd": ["1f478-1f3fd", 24, 56, 15, ["\u{1F478}\u{1F3FD}"]], "1f3fe": ["1f478-1f3fe", 24, 57, 15, ["\u{1F478}\u{1F3FE}"]], "1f3ff": ["1f478-1f3ff", 24, 58, 15, ["\u{1F478}\u{1F3FF}"]] }, "1f47c": { "1f3fb": ["1f47c-1f3fb", 25, 2, 15, ["\u{1F47C}\u{1F3FB}"]], "1f3fc": ["1f47c-1f3fc", 25, 3, 15, ["\u{1F47C}\u{1F3FC}"]], "1f3fd": ["1f47c-1f3fd", 25, 4, 15, ["\u{1F47C}\u{1F3FD}"]], "1f3fe": ["1f47c-1f3fe", 25, 5, 15, ["\u{1F47C}\u{1F3FE}"]], "1f3ff": ["1f47c-1f3ff", 25, 6, 15, ["\u{1F47C}\u{1F3FF}"]] }, "1f481-200d-2640-fe0f": { "1f3fb": ["1f481-1f3fb-200d-2640-fe0f", 25, 12, 15, ["\u{1F481}\u{1F3FB}\u200D\u2640\uFE0F", "\u{1F481}\u{1F3FB}"]], "1f3fc": ["1f481-1f3fc-200d-2640-fe0f", 25, 13, 15, ["\u{1F481}\u{1F3FC}\u200D\u2640\uFE0F", "\u{1F481}\u{1F3FC}"]], "1f3fd": ["1f481-1f3fd-200d-2640-fe0f", 25, 14, 15, ["\u{1F481}\u{1F3FD}\u200D\u2640\uFE0F", "\u{1F481}\u{1F3FD}"]], "1f3fe": ["1f481-1f3fe-200d-2640-fe0f", 25, 15, 15, ["\u{1F481}\u{1F3FE}\u200D\u2640\uFE0F", "\u{1F481}\u{1F3FE}"]], "1f3ff": ["1f481-1f3ff-200d-2640-fe0f", 25, 16, 15, ["\u{1F481}\u{1F3FF}\u200D\u2640\uFE0F", "\u{1F481}\u{1F3FF}"]] }, "1f481-200d-2642-fe0f": { "1f3fb": ["1f481-1f3fb-200d-2642-fe0f", 25, 18, 15, ["\u{1F481}\u{1F3FB}\u200D\u2642\uFE0F"]], "1f3fc": ["1f481-1f3fc-200d-2642-fe0f", 25, 19, 15, ["\u{1F481}\u{1F3FC}\u200D\u2642\uFE0F"]], "1f3fd": ["1f481-1f3fd-200d-2642-fe0f", 25, 20, 15, ["\u{1F481}\u{1F3FD}\u200D\u2642\uFE0F"]], "1f3fe": ["1f481-1f3fe-200d-2642-fe0f", 25, 21, 15, ["\u{1F481}\u{1F3FE}\u200D\u2642\uFE0F"]], "1f3ff": ["1f481-1f3ff-200d-2642-fe0f", 25, 22, 15, ["\u{1F481}\u{1F3FF}\u200D\u2642\uFE0F"]] }, "1f482-200d-2640-fe0f": { "1f3fb": ["1f482-1f3fb-200d-2640-fe0f", 25, 30, 15, ["\u{1F482}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f482-1f3fc-200d-2640-fe0f", 25, 31, 15, ["\u{1F482}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f482-1f3fd-200d-2640-fe0f", 25, 32, 15, ["\u{1F482}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f482-1f3fe-200d-2640-fe0f", 25, 33, 15, ["\u{1F482}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f482-1f3ff-200d-2640-fe0f", 25, 34, 15, ["\u{1F482}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f482-200d-2642-fe0f": { "1f3fb": ["1f482-1f3fb-200d-2642-fe0f", 25, 36, 15, ["\u{1F482}\u{1F3FB}\u200D\u2642\uFE0F", "\u{1F482}\u{1F3FB}"]], "1f3fc": ["1f482-1f3fc-200d-2642-fe0f", 25, 37, 15, ["\u{1F482}\u{1F3FC}\u200D\u2642\uFE0F", "\u{1F482}\u{1F3FC}"]], "1f3fd": ["1f482-1f3fd-200d-2642-fe0f", 25, 38, 15, ["\u{1F482}\u{1F3FD}\u200D\u2642\uFE0F", "\u{1F482}\u{1F3FD}"]], "1f3fe": ["1f482-1f3fe-200d-2642-fe0f", 25, 39, 15, ["\u{1F482}\u{1F3FE}\u200D\u2642\uFE0F", "\u{1F482}\u{1F3FE}"]], "1f3ff": ["1f482-1f3ff-200d-2642-fe0f", 25, 40, 15, ["\u{1F482}\u{1F3FF}\u200D\u2642\uFE0F", "\u{1F482}\u{1F3FF}"]] }, "1f483": { "1f3fb": ["1f483-1f3fb", 25, 48, 15, ["\u{1F483}\u{1F3FB}"]], "1f3fc": ["1f483-1f3fc", 25, 49, 15, ["\u{1F483}\u{1F3FC}"]], "1f3fd": ["1f483-1f3fd", 25, 50, 15, ["\u{1F483}\u{1F3FD}"]], "1f3fe": ["1f483-1f3fe", 25, 51, 15, ["\u{1F483}\u{1F3FE}"]], "1f3ff": ["1f483-1f3ff", 25, 52, 15, ["\u{1F483}\u{1F3FF}"]] }, "1f485": { "1f3fb": ["1f485-1f3fb", 25, 55, 15, ["\u{1F485}\u{1F3FB}"]], "1f3fc": ["1f485-1f3fc", 25, 56, 15, ["\u{1F485}\u{1F3FC}"]], "1f3fd": ["1f485-1f3fd", 25, 57, 15, ["\u{1F485}\u{1F3FD}"]], "1f3fe": ["1f485-1f3fe", 25, 58, 15, ["\u{1F485}\u{1F3FE}"]], "1f3ff": ["1f485-1f3ff", 25, 59, 15, ["\u{1F485}\u{1F3FF}"]] }, "1f486-200d-2640-fe0f": { "1f3fb": ["1f486-1f3fb-200d-2640-fe0f", 26, 0, 15, ["\u{1F486}\u{1F3FB}\u200D\u2640\uFE0F", "\u{1F486}\u{1F3FB}"]], "1f3fc": ["1f486-1f3fc-200d-2640-fe0f", 26, 1, 15, ["\u{1F486}\u{1F3FC}\u200D\u2640\uFE0F", "\u{1F486}\u{1F3FC}"]], "1f3fd": ["1f486-1f3fd-200d-2640-fe0f", 26, 2, 15, ["\u{1F486}\u{1F3FD}\u200D\u2640\uFE0F", "\u{1F486}\u{1F3FD}"]], "1f3fe": ["1f486-1f3fe-200d-2640-fe0f", 26, 3, 15, ["\u{1F486}\u{1F3FE}\u200D\u2640\uFE0F", "\u{1F486}\u{1F3FE}"]], "1f3ff": ["1f486-1f3ff-200d-2640-fe0f", 26, 4, 15, ["\u{1F486}\u{1F3FF}\u200D\u2640\uFE0F", "\u{1F486}\u{1F3FF}"]] }, "1f486-200d-2642-fe0f": { "1f3fb": ["1f486-1f3fb-200d-2642-fe0f", 26, 6, 15, ["\u{1F486}\u{1F3FB}\u200D\u2642\uFE0F"]], "1f3fc": ["1f486-1f3fc-200d-2642-fe0f", 26, 7, 15, ["\u{1F486}\u{1F3FC}\u200D\u2642\uFE0F"]], "1f3fd": ["1f486-1f3fd-200d-2642-fe0f", 26, 8, 15, ["\u{1F486}\u{1F3FD}\u200D\u2642\uFE0F"]], "1f3fe": ["1f486-1f3fe-200d-2642-fe0f", 26, 9, 15, ["\u{1F486}\u{1F3FE}\u200D\u2642\uFE0F"]], "1f3ff": ["1f486-1f3ff-200d-2642-fe0f", 26, 10, 15, ["\u{1F486}\u{1F3FF}\u200D\u2642\uFE0F"]] }, "1f487-200d-2640-fe0f": { "1f3fb": ["1f487-1f3fb-200d-2640-fe0f", 26, 18, 15, ["\u{1F487}\u{1F3FB}\u200D\u2640\uFE0F", "\u{1F487}\u{1F3FB}"]], "1f3fc": ["1f487-1f3fc-200d-2640-fe0f", 26, 19, 15, ["\u{1F487}\u{1F3FC}\u200D\u2640\uFE0F", "\u{1F487}\u{1F3FC}"]], "1f3fd": ["1f487-1f3fd-200d-2640-fe0f", 26, 20, 15, ["\u{1F487}\u{1F3FD}\u200D\u2640\uFE0F", "\u{1F487}\u{1F3FD}"]], "1f3fe": ["1f487-1f3fe-200d-2640-fe0f", 26, 21, 15, ["\u{1F487}\u{1F3FE}\u200D\u2640\uFE0F", "\u{1F487}\u{1F3FE}"]], "1f3ff": ["1f487-1f3ff-200d-2640-fe0f", 26, 22, 15, ["\u{1F487}\u{1F3FF}\u200D\u2640\uFE0F", "\u{1F487}\u{1F3FF}"]] }, "1f487-200d-2642-fe0f": { "1f3fb": ["1f487-1f3fb-200d-2642-fe0f", 26, 24, 15, ["\u{1F487}\u{1F3FB}\u200D\u2642\uFE0F"]], "1f3fc": ["1f487-1f3fc-200d-2642-fe0f", 26, 25, 15, ["\u{1F487}\u{1F3FC}\u200D\u2642\uFE0F"]], "1f3fd": ["1f487-1f3fd-200d-2642-fe0f", 26, 26, 15, ["\u{1F487}\u{1F3FD}\u200D\u2642\uFE0F"]], "1f3fe": ["1f487-1f3fe-200d-2642-fe0f", 26, 27, 15, ["\u{1F487}\u{1F3FE}\u200D\u2642\uFE0F"]], "1f3ff": ["1f487-1f3ff-200d-2642-fe0f", 26, 28, 15, ["\u{1F487}\u{1F3FF}\u200D\u2642\uFE0F"]] }, "1f48f": { "1f3fb": ["1f48f-1f3fb", 26, 43, 15, ["\u{1F48F}\u{1F3FB}"]], "1f3fc": ["1f48f-1f3fc", 26, 44, 15, ["\u{1F48F}\u{1F3FC}"]], "1f3fd": ["1f48f-1f3fd", 26, 45, 15, ["\u{1F48F}\u{1F3FD}"]], "1f3fe": ["1f48f-1f3fe", 26, 46, 15, ["\u{1F48F}\u{1F3FE}"]], "1f3ff": ["1f48f-1f3ff", 26, 47, 15, ["\u{1F48F}\u{1F3FF}"]], "1f3fb-1f3fc": ["1f9d1-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fc", 26, 48, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FC}"]], "1f3fb-1f3fd": ["1f9d1-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fd", 26, 49, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FD}"]], "1f3fb-1f3fe": ["1f9d1-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fe", 26, 50, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FE}"]], "1f3fb-1f3ff": ["1f9d1-1f3fb-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3ff", 26, 51, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FF}"]], "1f3fc-1f3fb": ["1f9d1-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fb", 26, 52, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FB}"]], "1f3fc-1f3fd": ["1f9d1-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fd", 26, 53, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FD}"]], "1f3fc-1f3fe": ["1f9d1-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fe", 26, 54, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FE}"]], "1f3fc-1f3ff": ["1f9d1-1f3fc-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3ff", 26, 55, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FF}"]], "1f3fd-1f3fb": ["1f9d1-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fb", 26, 56, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FB}"]], "1f3fd-1f3fc": ["1f9d1-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fc", 26, 57, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FC}"]], "1f3fd-1f3fe": ["1f9d1-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fe", 26, 58, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FE}"]], "1f3fd-1f3ff": ["1f9d1-1f3fd-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3ff", 26, 59, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FF}"]], "1f3fe-1f3fb": ["1f9d1-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fb", 26, 60, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FB}"]], "1f3fe-1f3fc": ["1f9d1-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fc", 27, 0, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FC}"]], "1f3fe-1f3fd": ["1f9d1-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fd", 27, 1, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FD}"]], "1f3fe-1f3ff": ["1f9d1-1f3fe-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3ff", 27, 2, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FF}"]], "1f3ff-1f3fb": ["1f9d1-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fb", 27, 3, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FB}"]], "1f3ff-1f3fc": ["1f9d1-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fc", 27, 4, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FC}"]], "1f3ff-1f3fd": ["1f9d1-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fd", 27, 5, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FD}"]], "1f3ff-1f3fe": ["1f9d1-1f3ff-200d-2764-fe0f-200d-1f48b-200d-1f9d1-1f3fe", 27, 6, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FE}"]] }, "1f491": { "1f3fb": ["1f491-1f3fb", 27, 9, 15, ["\u{1F491}\u{1F3FB}"]], "1f3fc": ["1f491-1f3fc", 27, 10, 15, ["\u{1F491}\u{1F3FC}"]], "1f3fd": ["1f491-1f3fd", 27, 11, 15, ["\u{1F491}\u{1F3FD}"]], "1f3fe": ["1f491-1f3fe", 27, 12, 15, ["\u{1F491}\u{1F3FE}"]], "1f3ff": ["1f491-1f3ff", 27, 13, 15, ["\u{1F491}\u{1F3FF}"]], "1f3fb-1f3fc": ["1f9d1-1f3fb-200d-2764-fe0f-200d-1f9d1-1f3fc", 27, 14, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FC}"]], "1f3fb-1f3fd": ["1f9d1-1f3fb-200d-2764-fe0f-200d-1f9d1-1f3fd", 27, 15, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FD}"]], "1f3fb-1f3fe": ["1f9d1-1f3fb-200d-2764-fe0f-200d-1f9d1-1f3fe", 27, 16, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FE}"]], "1f3fb-1f3ff": ["1f9d1-1f3fb-200d-2764-fe0f-200d-1f9d1-1f3ff", 27, 17, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FF}"]], "1f3fc-1f3fb": ["1f9d1-1f3fc-200d-2764-fe0f-200d-1f9d1-1f3fb", 27, 18, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FB}"]], "1f3fc-1f3fd": ["1f9d1-1f3fc-200d-2764-fe0f-200d-1f9d1-1f3fd", 27, 19, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FD}"]], "1f3fc-1f3fe": ["1f9d1-1f3fc-200d-2764-fe0f-200d-1f9d1-1f3fe", 27, 20, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FE}"]], "1f3fc-1f3ff": ["1f9d1-1f3fc-200d-2764-fe0f-200d-1f9d1-1f3ff", 27, 21, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FF}"]], "1f3fd-1f3fb": ["1f9d1-1f3fd-200d-2764-fe0f-200d-1f9d1-1f3fb", 27, 22, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FB}"]], "1f3fd-1f3fc": ["1f9d1-1f3fd-200d-2764-fe0f-200d-1f9d1-1f3fc", 27, 23, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FC}"]], "1f3fd-1f3fe": ["1f9d1-1f3fd-200d-2764-fe0f-200d-1f9d1-1f3fe", 27, 24, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FE}"]], "1f3fd-1f3ff": ["1f9d1-1f3fd-200d-2764-fe0f-200d-1f9d1-1f3ff", 27, 25, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FF}"]], "1f3fe-1f3fb": ["1f9d1-1f3fe-200d-2764-fe0f-200d-1f9d1-1f3fb", 27, 26, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FB}"]], "1f3fe-1f3fc": ["1f9d1-1f3fe-200d-2764-fe0f-200d-1f9d1-1f3fc", 27, 27, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FC}"]], "1f3fe-1f3fd": ["1f9d1-1f3fe-200d-2764-fe0f-200d-1f9d1-1f3fd", 27, 28, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FD}"]], "1f3fe-1f3ff": ["1f9d1-1f3fe-200d-2764-fe0f-200d-1f9d1-1f3ff", 27, 29, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FF}"]], "1f3ff-1f3fb": ["1f9d1-1f3ff-200d-2764-fe0f-200d-1f9d1-1f3fb", 27, 30, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FB}"]], "1f3ff-1f3fc": ["1f9d1-1f3ff-200d-2764-fe0f-200d-1f9d1-1f3fc", 27, 31, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FC}"]], "1f3ff-1f3fd": ["1f9d1-1f3ff-200d-2764-fe0f-200d-1f9d1-1f3fd", 27, 32, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FD}"]], "1f3ff-1f3fe": ["1f9d1-1f3ff-200d-2764-fe0f-200d-1f9d1-1f3fe", 27, 33, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FE}"]] }, "1f4aa": { "1f3fb": ["1f4aa-1f3fb", 27, 59, 15, ["\u{1F4AA}\u{1F3FB}"]], "1f3fc": ["1f4aa-1f3fc", 27, 60, 15, ["\u{1F4AA}\u{1F3FC}"]], "1f3fd": ["1f4aa-1f3fd", 28, 0, 15, ["\u{1F4AA}\u{1F3FD}"]], "1f3fe": ["1f4aa-1f3fe", 28, 1, 15, ["\u{1F4AA}\u{1F3FE}"]], "1f3ff": ["1f4aa-1f3ff", 28, 2, 15, ["\u{1F4AA}\u{1F3FF}"]] }, "1f574-fe0f": { "1f3fb": ["1f574-1f3fb", 31, 0, 15, ["\u{1F574}\u{1F3FB}"]], "1f3fc": ["1f574-1f3fc", 31, 1, 15, ["\u{1F574}\u{1F3FC}"]], "1f3fd": ["1f574-1f3fd", 31, 2, 15, ["\u{1F574}\u{1F3FD}"]], "1f3fe": ["1f574-1f3fe", 31, 3, 15, ["\u{1F574}\u{1F3FE}"]], "1f3ff": ["1f574-1f3ff", 31, 4, 15, ["\u{1F574}\u{1F3FF}"]] }, "1f575-fe0f-200d-2640-fe0f": { "1f3fb": ["1f575-1f3fb-200d-2640-fe0f", 31, 6, 15, ["\u{1F575}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f575-1f3fc-200d-2640-fe0f", 31, 7, 15, ["\u{1F575}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f575-1f3fd-200d-2640-fe0f", 31, 8, 15, ["\u{1F575}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f575-1f3fe-200d-2640-fe0f", 31, 9, 15, ["\u{1F575}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f575-1f3ff-200d-2640-fe0f", 31, 10, 15, ["\u{1F575}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f575-fe0f-200d-2642-fe0f": { "1f3fb": ["1f575-1f3fb-200d-2642-fe0f", 31, 12, 15, ["\u{1F575}\u{1F3FB}\u200D\u2642\uFE0F", "\u{1F575}\u{1F3FB}"]], "1f3fc": ["1f575-1f3fc-200d-2642-fe0f", 31, 13, 15, ["\u{1F575}\u{1F3FC}\u200D\u2642\uFE0F", "\u{1F575}\u{1F3FC}"]], "1f3fd": ["1f575-1f3fd-200d-2642-fe0f", 31, 14, 15, ["\u{1F575}\u{1F3FD}\u200D\u2642\uFE0F", "\u{1F575}\u{1F3FD}"]], "1f3fe": ["1f575-1f3fe-200d-2642-fe0f", 31, 15, 15, ["\u{1F575}\u{1F3FE}\u200D\u2642\uFE0F", "\u{1F575}\u{1F3FE}"]], "1f3ff": ["1f575-1f3ff-200d-2642-fe0f", 31, 16, 15, ["\u{1F575}\u{1F3FF}\u200D\u2642\uFE0F", "\u{1F575}\u{1F3FF}"]] }, "1f57a": { "1f3fb": ["1f57a-1f3fb", 31, 28, 15, ["\u{1F57A}\u{1F3FB}"]], "1f3fc": ["1f57a-1f3fc", 31, 29, 15, ["\u{1F57A}\u{1F3FC}"]], "1f3fd": ["1f57a-1f3fd", 31, 30, 15, ["\u{1F57A}\u{1F3FD}"]], "1f3fe": ["1f57a-1f3fe", 31, 31, 15, ["\u{1F57A}\u{1F3FE}"]], "1f3ff": ["1f57a-1f3ff", 31, 32, 15, ["\u{1F57A}\u{1F3FF}"]] }, "1f590-fe0f": { "1f3fb": ["1f590-1f3fb", 31, 39, 15, ["\u{1F590}\u{1F3FB}"]], "1f3fc": ["1f590-1f3fc", 31, 40, 15, ["\u{1F590}\u{1F3FC}"]], "1f3fd": ["1f590-1f3fd", 31, 41, 15, ["\u{1F590}\u{1F3FD}"]], "1f3fe": ["1f590-1f3fe", 31, 42, 15, ["\u{1F590}\u{1F3FE}"]], "1f3ff": ["1f590-1f3ff", 31, 43, 15, ["\u{1F590}\u{1F3FF}"]] }, "1f595": { "1f3fb": ["1f595-1f3fb", 31, 45, 15, ["\u{1F595}\u{1F3FB}"]], "1f3fc": ["1f595-1f3fc", 31, 46, 15, ["\u{1F595}\u{1F3FC}"]], "1f3fd": ["1f595-1f3fd", 31, 47, 15, ["\u{1F595}\u{1F3FD}"]], "1f3fe": ["1f595-1f3fe", 31, 48, 15, ["\u{1F595}\u{1F3FE}"]], "1f3ff": ["1f595-1f3ff", 31, 49, 15, ["\u{1F595}\u{1F3FF}"]] }, "1f596": { "1f3fb": ["1f596-1f3fb", 31, 51, 15, ["\u{1F596}\u{1F3FB}"]], "1f3fc": ["1f596-1f3fc", 31, 52, 15, ["\u{1F596}\u{1F3FC}"]], "1f3fd": ["1f596-1f3fd", 31, 53, 15, ["\u{1F596}\u{1F3FD}"]], "1f3fe": ["1f596-1f3fe", 31, 54, 15, ["\u{1F596}\u{1F3FE}"]], "1f3ff": ["1f596-1f3ff", 31, 55, 15, ["\u{1F596}\u{1F3FF}"]] }, "1f645-200d-2640-fe0f": { "1f3fb": ["1f645-1f3fb-200d-2640-fe0f", 33, 33, 15, ["\u{1F645}\u{1F3FB}\u200D\u2640\uFE0F", "\u{1F645}\u{1F3FB}"]], "1f3fc": ["1f645-1f3fc-200d-2640-fe0f", 33, 34, 15, ["\u{1F645}\u{1F3FC}\u200D\u2640\uFE0F", "\u{1F645}\u{1F3FC}"]], "1f3fd": ["1f645-1f3fd-200d-2640-fe0f", 33, 35, 15, ["\u{1F645}\u{1F3FD}\u200D\u2640\uFE0F", "\u{1F645}\u{1F3FD}"]], "1f3fe": ["1f645-1f3fe-200d-2640-fe0f", 33, 36, 15, ["\u{1F645}\u{1F3FE}\u200D\u2640\uFE0F", "\u{1F645}\u{1F3FE}"]], "1f3ff": ["1f645-1f3ff-200d-2640-fe0f", 33, 37, 15, ["\u{1F645}\u{1F3FF}\u200D\u2640\uFE0F", "\u{1F645}\u{1F3FF}"]] }, "1f645-200d-2642-fe0f": { "1f3fb": ["1f645-1f3fb-200d-2642-fe0f", 33, 39, 15, ["\u{1F645}\u{1F3FB}\u200D\u2642\uFE0F"]], "1f3fc": ["1f645-1f3fc-200d-2642-fe0f", 33, 40, 15, ["\u{1F645}\u{1F3FC}\u200D\u2642\uFE0F"]], "1f3fd": ["1f645-1f3fd-200d-2642-fe0f", 33, 41, 15, ["\u{1F645}\u{1F3FD}\u200D\u2642\uFE0F"]], "1f3fe": ["1f645-1f3fe-200d-2642-fe0f", 33, 42, 15, ["\u{1F645}\u{1F3FE}\u200D\u2642\uFE0F"]], "1f3ff": ["1f645-1f3ff-200d-2642-fe0f", 33, 43, 15, ["\u{1F645}\u{1F3FF}\u200D\u2642\uFE0F"]] }, "1f646-200d-2640-fe0f": { "1f3fb": ["1f646-1f3fb-200d-2640-fe0f", 33, 51, 15, ["\u{1F646}\u{1F3FB}\u200D\u2640\uFE0F", "\u{1F646}\u{1F3FB}"]], "1f3fc": ["1f646-1f3fc-200d-2640-fe0f", 33, 52, 15, ["\u{1F646}\u{1F3FC}\u200D\u2640\uFE0F", "\u{1F646}\u{1F3FC}"]], "1f3fd": ["1f646-1f3fd-200d-2640-fe0f", 33, 53, 15, ["\u{1F646}\u{1F3FD}\u200D\u2640\uFE0F", "\u{1F646}\u{1F3FD}"]], "1f3fe": ["1f646-1f3fe-200d-2640-fe0f", 33, 54, 15, ["\u{1F646}\u{1F3FE}\u200D\u2640\uFE0F", "\u{1F646}\u{1F3FE}"]], "1f3ff": ["1f646-1f3ff-200d-2640-fe0f", 33, 55, 15, ["\u{1F646}\u{1F3FF}\u200D\u2640\uFE0F", "\u{1F646}\u{1F3FF}"]] }, "1f646-200d-2642-fe0f": { "1f3fb": ["1f646-1f3fb-200d-2642-fe0f", 33, 57, 15, ["\u{1F646}\u{1F3FB}\u200D\u2642\uFE0F"]], "1f3fc": ["1f646-1f3fc-200d-2642-fe0f", 33, 58, 15, ["\u{1F646}\u{1F3FC}\u200D\u2642\uFE0F"]], "1f3fd": ["1f646-1f3fd-200d-2642-fe0f", 33, 59, 15, ["\u{1F646}\u{1F3FD}\u200D\u2642\uFE0F"]], "1f3fe": ["1f646-1f3fe-200d-2642-fe0f", 33, 60, 15, ["\u{1F646}\u{1F3FE}\u200D\u2642\uFE0F"]], "1f3ff": ["1f646-1f3ff-200d-2642-fe0f", 34, 0, 15, ["\u{1F646}\u{1F3FF}\u200D\u2642\uFE0F"]] }, "1f647-200d-2640-fe0f": { "1f3fb": ["1f647-1f3fb-200d-2640-fe0f", 34, 8, 15, ["\u{1F647}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f647-1f3fc-200d-2640-fe0f", 34, 9, 15, ["\u{1F647}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f647-1f3fd-200d-2640-fe0f", 34, 10, 15, ["\u{1F647}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f647-1f3fe-200d-2640-fe0f", 34, 11, 15, ["\u{1F647}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f647-1f3ff-200d-2640-fe0f", 34, 12, 15, ["\u{1F647}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f647-200d-2642-fe0f": { "1f3fb": ["1f647-1f3fb-200d-2642-fe0f", 34, 14, 15, ["\u{1F647}\u{1F3FB}\u200D\u2642\uFE0F"]], "1f3fc": ["1f647-1f3fc-200d-2642-fe0f", 34, 15, 15, ["\u{1F647}\u{1F3FC}\u200D\u2642\uFE0F"]], "1f3fd": ["1f647-1f3fd-200d-2642-fe0f", 34, 16, 15, ["\u{1F647}\u{1F3FD}\u200D\u2642\uFE0F"]], "1f3fe": ["1f647-1f3fe-200d-2642-fe0f", 34, 17, 15, ["\u{1F647}\u{1F3FE}\u200D\u2642\uFE0F"]], "1f3ff": ["1f647-1f3ff-200d-2642-fe0f", 34, 18, 15, ["\u{1F647}\u{1F3FF}\u200D\u2642\uFE0F"]] }, "1f647": { "1f3fb": ["1f647-1f3fb", 34, 20, 15, ["\u{1F647}\u{1F3FB}"]], "1f3fc": ["1f647-1f3fc", 34, 21, 15, ["\u{1F647}\u{1F3FC}"]], "1f3fd": ["1f647-1f3fd", 34, 22, 15, ["\u{1F647}\u{1F3FD}"]], "1f3fe": ["1f647-1f3fe", 34, 23, 15, ["\u{1F647}\u{1F3FE}"]], "1f3ff": ["1f647-1f3ff", 34, 24, 15, ["\u{1F647}\u{1F3FF}"]] }, "1f64b-200d-2640-fe0f": { "1f3fb": ["1f64b-1f3fb-200d-2640-fe0f", 34, 29, 15, ["\u{1F64B}\u{1F3FB}\u200D\u2640\uFE0F", "\u{1F64B}\u{1F3FB}"]], "1f3fc": ["1f64b-1f3fc-200d-2640-fe0f", 34, 30, 15, ["\u{1F64B}\u{1F3FC}\u200D\u2640\uFE0F", "\u{1F64B}\u{1F3FC}"]], "1f3fd": ["1f64b-1f3fd-200d-2640-fe0f", 34, 31, 15, ["\u{1F64B}\u{1F3FD}\u200D\u2640\uFE0F", "\u{1F64B}\u{1F3FD}"]], "1f3fe": ["1f64b-1f3fe-200d-2640-fe0f", 34, 32, 15, ["\u{1F64B}\u{1F3FE}\u200D\u2640\uFE0F", "\u{1F64B}\u{1F3FE}"]], "1f3ff": ["1f64b-1f3ff-200d-2640-fe0f", 34, 33, 15, ["\u{1F64B}\u{1F3FF}\u200D\u2640\uFE0F", "\u{1F64B}\u{1F3FF}"]] }, "1f64b-200d-2642-fe0f": { "1f3fb": ["1f64b-1f3fb-200d-2642-fe0f", 34, 35, 15, ["\u{1F64B}\u{1F3FB}\u200D\u2642\uFE0F"]], "1f3fc": ["1f64b-1f3fc-200d-2642-fe0f", 34, 36, 15, ["\u{1F64B}\u{1F3FC}\u200D\u2642\uFE0F"]], "1f3fd": ["1f64b-1f3fd-200d-2642-fe0f", 34, 37, 15, ["\u{1F64B}\u{1F3FD}\u200D\u2642\uFE0F"]], "1f3fe": ["1f64b-1f3fe-200d-2642-fe0f", 34, 38, 15, ["\u{1F64B}\u{1F3FE}\u200D\u2642\uFE0F"]], "1f3ff": ["1f64b-1f3ff-200d-2642-fe0f", 34, 39, 15, ["\u{1F64B}\u{1F3FF}\u200D\u2642\uFE0F"]] }, "1f64c": { "1f3fb": ["1f64c-1f3fb", 34, 47, 15, ["\u{1F64C}\u{1F3FB}"]], "1f3fc": ["1f64c-1f3fc", 34, 48, 15, ["\u{1F64C}\u{1F3FC}"]], "1f3fd": ["1f64c-1f3fd", 34, 49, 15, ["\u{1F64C}\u{1F3FD}"]], "1f3fe": ["1f64c-1f3fe", 34, 50, 15, ["\u{1F64C}\u{1F3FE}"]], "1f3ff": ["1f64c-1f3ff", 34, 51, 15, ["\u{1F64C}\u{1F3FF}"]] }, "1f64d-200d-2640-fe0f": { "1f3fb": ["1f64d-1f3fb-200d-2640-fe0f", 34, 53, 15, ["\u{1F64D}\u{1F3FB}\u200D\u2640\uFE0F", "\u{1F64D}\u{1F3FB}"]], "1f3fc": ["1f64d-1f3fc-200d-2640-fe0f", 34, 54, 15, ["\u{1F64D}\u{1F3FC}\u200D\u2640\uFE0F", "\u{1F64D}\u{1F3FC}"]], "1f3fd": ["1f64d-1f3fd-200d-2640-fe0f", 34, 55, 15, ["\u{1F64D}\u{1F3FD}\u200D\u2640\uFE0F", "\u{1F64D}\u{1F3FD}"]], "1f3fe": ["1f64d-1f3fe-200d-2640-fe0f", 34, 56, 15, ["\u{1F64D}\u{1F3FE}\u200D\u2640\uFE0F", "\u{1F64D}\u{1F3FE}"]], "1f3ff": ["1f64d-1f3ff-200d-2640-fe0f", 34, 57, 15, ["\u{1F64D}\u{1F3FF}\u200D\u2640\uFE0F", "\u{1F64D}\u{1F3FF}"]] }, "1f64d-200d-2642-fe0f": { "1f3fb": ["1f64d-1f3fb-200d-2642-fe0f", 34, 59, 15, ["\u{1F64D}\u{1F3FB}\u200D\u2642\uFE0F"]], "1f3fc": ["1f64d-1f3fc-200d-2642-fe0f", 34, 60, 15, ["\u{1F64D}\u{1F3FC}\u200D\u2642\uFE0F"]], "1f3fd": ["1f64d-1f3fd-200d-2642-fe0f", 35, 0, 15, ["\u{1F64D}\u{1F3FD}\u200D\u2642\uFE0F"]], "1f3fe": ["1f64d-1f3fe-200d-2642-fe0f", 35, 1, 15, ["\u{1F64D}\u{1F3FE}\u200D\u2642\uFE0F"]], "1f3ff": ["1f64d-1f3ff-200d-2642-fe0f", 35, 2, 15, ["\u{1F64D}\u{1F3FF}\u200D\u2642\uFE0F"]] }, "1f64e-200d-2640-fe0f": { "1f3fb": ["1f64e-1f3fb-200d-2640-fe0f", 35, 10, 15, ["\u{1F64E}\u{1F3FB}\u200D\u2640\uFE0F", "\u{1F64E}\u{1F3FB}"]], "1f3fc": ["1f64e-1f3fc-200d-2640-fe0f", 35, 11, 15, ["\u{1F64E}\u{1F3FC}\u200D\u2640\uFE0F", "\u{1F64E}\u{1F3FC}"]], "1f3fd": ["1f64e-1f3fd-200d-2640-fe0f", 35, 12, 15, ["\u{1F64E}\u{1F3FD}\u200D\u2640\uFE0F", "\u{1F64E}\u{1F3FD}"]], "1f3fe": ["1f64e-1f3fe-200d-2640-fe0f", 35, 13, 15, ["\u{1F64E}\u{1F3FE}\u200D\u2640\uFE0F", "\u{1F64E}\u{1F3FE}"]], "1f3ff": ["1f64e-1f3ff-200d-2640-fe0f", 35, 14, 15, ["\u{1F64E}\u{1F3FF}\u200D\u2640\uFE0F", "\u{1F64E}\u{1F3FF}"]] }, "1f64e-200d-2642-fe0f": { "1f3fb": ["1f64e-1f3fb-200d-2642-fe0f", 35, 16, 15, ["\u{1F64E}\u{1F3FB}\u200D\u2642\uFE0F"]], "1f3fc": ["1f64e-1f3fc-200d-2642-fe0f", 35, 17, 15, ["\u{1F64E}\u{1F3FC}\u200D\u2642\uFE0F"]], "1f3fd": ["1f64e-1f3fd-200d-2642-fe0f", 35, 18, 15, ["\u{1F64E}\u{1F3FD}\u200D\u2642\uFE0F"]], "1f3fe": ["1f64e-1f3fe-200d-2642-fe0f", 35, 19, 15, ["\u{1F64E}\u{1F3FE}\u200D\u2642\uFE0F"]], "1f3ff": ["1f64e-1f3ff-200d-2642-fe0f", 35, 20, 15, ["\u{1F64E}\u{1F3FF}\u200D\u2642\uFE0F"]] }, "1f64f": { "1f3fb": ["1f64f-1f3fb", 35, 28, 15, ["\u{1F64F}\u{1F3FB}"]], "1f3fc": ["1f64f-1f3fc", 35, 29, 15, ["\u{1F64F}\u{1F3FC}"]], "1f3fd": ["1f64f-1f3fd", 35, 30, 15, ["\u{1F64F}\u{1F3FD}"]], "1f3fe": ["1f64f-1f3fe", 35, 31, 15, ["\u{1F64F}\u{1F3FE}"]], "1f3ff": ["1f64f-1f3ff", 35, 32, 15, ["\u{1F64F}\u{1F3FF}"]] }, "1f6a3-200d-2640-fe0f": { "1f3fb": ["1f6a3-1f3fb-200d-2640-fe0f", 36, 8, 15, ["\u{1F6A3}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f6a3-1f3fc-200d-2640-fe0f", 36, 9, 15, ["\u{1F6A3}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f6a3-1f3fd-200d-2640-fe0f", 36, 10, 15, ["\u{1F6A3}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f6a3-1f3fe-200d-2640-fe0f", 36, 11, 15, ["\u{1F6A3}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f6a3-1f3ff-200d-2640-fe0f", 36, 12, 15, ["\u{1F6A3}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f6a3-200d-2642-fe0f": { "1f3fb": ["1f6a3-1f3fb-200d-2642-fe0f", 36, 14, 15, ["\u{1F6A3}\u{1F3FB}\u200D\u2642\uFE0F", "\u{1F6A3}\u{1F3FB}"]], "1f3fc": ["1f6a3-1f3fc-200d-2642-fe0f", 36, 15, 15, ["\u{1F6A3}\u{1F3FC}\u200D\u2642\uFE0F", "\u{1F6A3}\u{1F3FC}"]], "1f3fd": ["1f6a3-1f3fd-200d-2642-fe0f", 36, 16, 15, ["\u{1F6A3}\u{1F3FD}\u200D\u2642\uFE0F", "\u{1F6A3}\u{1F3FD}"]], "1f3fe": ["1f6a3-1f3fe-200d-2642-fe0f", 36, 17, 15, ["\u{1F6A3}\u{1F3FE}\u200D\u2642\uFE0F", "\u{1F6A3}\u{1F3FE}"]], "1f3ff": ["1f6a3-1f3ff-200d-2642-fe0f", 36, 18, 15, ["\u{1F6A3}\u{1F3FF}\u200D\u2642\uFE0F", "\u{1F6A3}\u{1F3FF}"]] }, "1f6b4-200d-2640-fe0f": { "1f3fb": ["1f6b4-1f3fb-200d-2640-fe0f", 36, 42, 15, ["\u{1F6B4}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f6b4-1f3fc-200d-2640-fe0f", 36, 43, 15, ["\u{1F6B4}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f6b4-1f3fd-200d-2640-fe0f", 36, 44, 15, ["\u{1F6B4}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f6b4-1f3fe-200d-2640-fe0f", 36, 45, 15, ["\u{1F6B4}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f6b4-1f3ff-200d-2640-fe0f", 36, 46, 15, ["\u{1F6B4}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f6b4-200d-2642-fe0f": { "1f3fb": ["1f6b4-1f3fb-200d-2642-fe0f", 36, 48, 15, ["\u{1F6B4}\u{1F3FB}\u200D\u2642\uFE0F", "\u{1F6B4}\u{1F3FB}"]], "1f3fc": ["1f6b4-1f3fc-200d-2642-fe0f", 36, 49, 15, ["\u{1F6B4}\u{1F3FC}\u200D\u2642\uFE0F", "\u{1F6B4}\u{1F3FC}"]], "1f3fd": ["1f6b4-1f3fd-200d-2642-fe0f", 36, 50, 15, ["\u{1F6B4}\u{1F3FD}\u200D\u2642\uFE0F", "\u{1F6B4}\u{1F3FD}"]], "1f3fe": ["1f6b4-1f3fe-200d-2642-fe0f", 36, 51, 15, ["\u{1F6B4}\u{1F3FE}\u200D\u2642\uFE0F", "\u{1F6B4}\u{1F3FE}"]], "1f3ff": ["1f6b4-1f3ff-200d-2642-fe0f", 36, 52, 15, ["\u{1F6B4}\u{1F3FF}\u200D\u2642\uFE0F", "\u{1F6B4}\u{1F3FF}"]] }, "1f6b5-200d-2640-fe0f": { "1f3fb": ["1f6b5-1f3fb-200d-2640-fe0f", 36, 60, 15, ["\u{1F6B5}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f6b5-1f3fc-200d-2640-fe0f", 37, 0, 15, ["\u{1F6B5}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f6b5-1f3fd-200d-2640-fe0f", 37, 1, 15, ["\u{1F6B5}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f6b5-1f3fe-200d-2640-fe0f", 37, 2, 15, ["\u{1F6B5}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f6b5-1f3ff-200d-2640-fe0f", 37, 3, 15, ["\u{1F6B5}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f6b5-200d-2642-fe0f": { "1f3fb": ["1f6b5-1f3fb-200d-2642-fe0f", 37, 5, 15, ["\u{1F6B5}\u{1F3FB}\u200D\u2642\uFE0F", "\u{1F6B5}\u{1F3FB}"]], "1f3fc": ["1f6b5-1f3fc-200d-2642-fe0f", 37, 6, 15, ["\u{1F6B5}\u{1F3FC}\u200D\u2642\uFE0F", "\u{1F6B5}\u{1F3FC}"]], "1f3fd": ["1f6b5-1f3fd-200d-2642-fe0f", 37, 7, 15, ["\u{1F6B5}\u{1F3FD}\u200D\u2642\uFE0F", "\u{1F6B5}\u{1F3FD}"]], "1f3fe": ["1f6b5-1f3fe-200d-2642-fe0f", 37, 8, 15, ["\u{1F6B5}\u{1F3FE}\u200D\u2642\uFE0F", "\u{1F6B5}\u{1F3FE}"]], "1f3ff": ["1f6b5-1f3ff-200d-2642-fe0f", 37, 9, 15, ["\u{1F6B5}\u{1F3FF}\u200D\u2642\uFE0F", "\u{1F6B5}\u{1F3FF}"]] }, "1f6b6-200d-2640-fe0f": { "1f3fb": ["1f6b6-1f3fb-200d-2640-fe0f", 37, 17, 15, ["\u{1F6B6}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f6b6-1f3fc-200d-2640-fe0f", 37, 18, 15, ["\u{1F6B6}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f6b6-1f3fd-200d-2640-fe0f", 37, 19, 15, ["\u{1F6B6}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f6b6-1f3fe-200d-2640-fe0f", 37, 20, 15, ["\u{1F6B6}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f6b6-1f3ff-200d-2640-fe0f", 37, 21, 15, ["\u{1F6B6}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f6b6-200d-2642-fe0f": { "1f3fb": ["1f6b6-1f3fb-200d-2642-fe0f", 37, 23, 15, ["\u{1F6B6}\u{1F3FB}\u200D\u2642\uFE0F", "\u{1F6B6}\u{1F3FB}"]], "1f3fc": ["1f6b6-1f3fc-200d-2642-fe0f", 37, 24, 15, ["\u{1F6B6}\u{1F3FC}\u200D\u2642\uFE0F", "\u{1F6B6}\u{1F3FC}"]], "1f3fd": ["1f6b6-1f3fd-200d-2642-fe0f", 37, 25, 15, ["\u{1F6B6}\u{1F3FD}\u200D\u2642\uFE0F", "\u{1F6B6}\u{1F3FD}"]], "1f3fe": ["1f6b6-1f3fe-200d-2642-fe0f", 37, 26, 15, ["\u{1F6B6}\u{1F3FE}\u200D\u2642\uFE0F", "\u{1F6B6}\u{1F3FE}"]], "1f3ff": ["1f6b6-1f3ff-200d-2642-fe0f", 37, 27, 15, ["\u{1F6B6}\u{1F3FF}\u200D\u2642\uFE0F", "\u{1F6B6}\u{1F3FF}"]] }, "1f6c0": { "1f3fb": ["1f6c0-1f3fb", 37, 44, 15, ["\u{1F6C0}\u{1F3FB}"]], "1f3fc": ["1f6c0-1f3fc", 37, 45, 15, ["\u{1F6C0}\u{1F3FC}"]], "1f3fd": ["1f6c0-1f3fd", 37, 46, 15, ["\u{1F6C0}\u{1F3FD}"]], "1f3fe": ["1f6c0-1f3fe", 37, 47, 15, ["\u{1F6C0}\u{1F3FE}"]], "1f3ff": ["1f6c0-1f3ff", 37, 48, 15, ["\u{1F6C0}\u{1F3FF}"]] }, "1f6cc": { "1f3fb": ["1f6cc-1f3fb", 37, 56, 15, ["\u{1F6CC}\u{1F3FB}"]], "1f3fc": ["1f6cc-1f3fc", 37, 57, 15, ["\u{1F6CC}\u{1F3FC}"]], "1f3fd": ["1f6cc-1f3fd", 37, 58, 15, ["\u{1F6CC}\u{1F3FD}"]], "1f3fe": ["1f6cc-1f3fe", 37, 59, 15, ["\u{1F6CC}\u{1F3FE}"]], "1f3ff": ["1f6cc-1f3ff", 37, 60, 15, ["\u{1F6CC}\u{1F3FF}"]] }, "1f90c": { "1f3fb": ["1f90c-1f3fb", 38, 47, 15, ["\u{1F90C}\u{1F3FB}"]], "1f3fc": ["1f90c-1f3fc", 38, 48, 15, ["\u{1F90C}\u{1F3FC}"]], "1f3fd": ["1f90c-1f3fd", 38, 49, 15, ["\u{1F90C}\u{1F3FD}"]], "1f3fe": ["1f90c-1f3fe", 38, 50, 15, ["\u{1F90C}\u{1F3FE}"]], "1f3ff": ["1f90c-1f3ff", 38, 51, 15, ["\u{1F90C}\u{1F3FF}"]] }, "1f90f": { "1f3fb": ["1f90f-1f3fb", 38, 55, 15, ["\u{1F90F}\u{1F3FB}"]], "1f3fc": ["1f90f-1f3fc", 38, 56, 15, ["\u{1F90F}\u{1F3FC}"]], "1f3fd": ["1f90f-1f3fd", 38, 57, 15, ["\u{1F90F}\u{1F3FD}"]], "1f3fe": ["1f90f-1f3fe", 38, 58, 15, ["\u{1F90F}\u{1F3FE}"]], "1f3ff": ["1f90f-1f3ff", 38, 59, 15, ["\u{1F90F}\u{1F3FF}"]] }, "1f918": { "1f3fb": ["1f918-1f3fb", 39, 8, 15, ["\u{1F918}\u{1F3FB}"]], "1f3fc": ["1f918-1f3fc", 39, 9, 15, ["\u{1F918}\u{1F3FC}"]], "1f3fd": ["1f918-1f3fd", 39, 10, 15, ["\u{1F918}\u{1F3FD}"]], "1f3fe": ["1f918-1f3fe", 39, 11, 15, ["\u{1F918}\u{1F3FE}"]], "1f3ff": ["1f918-1f3ff", 39, 12, 15, ["\u{1F918}\u{1F3FF}"]] }, "1f919": { "1f3fb": ["1f919-1f3fb", 39, 14, 15, ["\u{1F919}\u{1F3FB}"]], "1f3fc": ["1f919-1f3fc", 39, 15, 15, ["\u{1F919}\u{1F3FC}"]], "1f3fd": ["1f919-1f3fd", 39, 16, 15, ["\u{1F919}\u{1F3FD}"]], "1f3fe": ["1f919-1f3fe", 39, 17, 15, ["\u{1F919}\u{1F3FE}"]], "1f3ff": ["1f919-1f3ff", 39, 18, 15, ["\u{1F919}\u{1F3FF}"]] }, "1f91a": { "1f3fb": ["1f91a-1f3fb", 39, 20, 15, ["\u{1F91A}\u{1F3FB}"]], "1f3fc": ["1f91a-1f3fc", 39, 21, 15, ["\u{1F91A}\u{1F3FC}"]], "1f3fd": ["1f91a-1f3fd", 39, 22, 15, ["\u{1F91A}\u{1F3FD}"]], "1f3fe": ["1f91a-1f3fe", 39, 23, 15, ["\u{1F91A}\u{1F3FE}"]], "1f3ff": ["1f91a-1f3ff", 39, 24, 15, ["\u{1F91A}\u{1F3FF}"]] }, "1f91b": { "1f3fb": ["1f91b-1f3fb", 39, 26, 15, ["\u{1F91B}\u{1F3FB}"]], "1f3fc": ["1f91b-1f3fc", 39, 27, 15, ["\u{1F91B}\u{1F3FC}"]], "1f3fd": ["1f91b-1f3fd", 39, 28, 15, ["\u{1F91B}\u{1F3FD}"]], "1f3fe": ["1f91b-1f3fe", 39, 29, 15, ["\u{1F91B}\u{1F3FE}"]], "1f3ff": ["1f91b-1f3ff", 39, 30, 15, ["\u{1F91B}\u{1F3FF}"]] }, "1f91c": { "1f3fb": ["1f91c-1f3fb", 39, 32, 15, ["\u{1F91C}\u{1F3FB}"]], "1f3fc": ["1f91c-1f3fc", 39, 33, 15, ["\u{1F91C}\u{1F3FC}"]], "1f3fd": ["1f91c-1f3fd", 39, 34, 15, ["\u{1F91C}\u{1F3FD}"]], "1f3fe": ["1f91c-1f3fe", 39, 35, 15, ["\u{1F91C}\u{1F3FE}"]], "1f3ff": ["1f91c-1f3ff", 39, 36, 15, ["\u{1F91C}\u{1F3FF}"]] }, "1f91d": { "1f3fb": ["1f91d-1f3fb", 39, 38, 15, ["\u{1F91D}\u{1F3FB}"]], "1f3fc": ["1f91d-1f3fc", 39, 39, 15, ["\u{1F91D}\u{1F3FC}"]], "1f3fd": ["1f91d-1f3fd", 39, 40, 15, ["\u{1F91D}\u{1F3FD}"]], "1f3fe": ["1f91d-1f3fe", 39, 41, 15, ["\u{1F91D}\u{1F3FE}"]], "1f3ff": ["1f91d-1f3ff", 39, 42, 15, ["\u{1F91D}\u{1F3FF}"]], "1f3fb-1f3fc": ["1faf1-1f3fb-200d-1faf2-1f3fc", 39, 43, 15, ["\u{1FAF1}\u{1F3FB}\u200D\u{1FAF2}\u{1F3FC}"]], "1f3fb-1f3fd": ["1faf1-1f3fb-200d-1faf2-1f3fd", 39, 44, 15, ["\u{1FAF1}\u{1F3FB}\u200D\u{1FAF2}\u{1F3FD}"]], "1f3fb-1f3fe": ["1faf1-1f3fb-200d-1faf2-1f3fe", 39, 45, 15, ["\u{1FAF1}\u{1F3FB}\u200D\u{1FAF2}\u{1F3FE}"]], "1f3fb-1f3ff": ["1faf1-1f3fb-200d-1faf2-1f3ff", 39, 46, 15, ["\u{1FAF1}\u{1F3FB}\u200D\u{1FAF2}\u{1F3FF}"]], "1f3fc-1f3fb": ["1faf1-1f3fc-200d-1faf2-1f3fb", 39, 47, 15, ["\u{1FAF1}\u{1F3FC}\u200D\u{1FAF2}\u{1F3FB}"]], "1f3fc-1f3fd": ["1faf1-1f3fc-200d-1faf2-1f3fd", 39, 48, 15, ["\u{1FAF1}\u{1F3FC}\u200D\u{1FAF2}\u{1F3FD}"]], "1f3fc-1f3fe": ["1faf1-1f3fc-200d-1faf2-1f3fe", 39, 49, 15, ["\u{1FAF1}\u{1F3FC}\u200D\u{1FAF2}\u{1F3FE}"]], "1f3fc-1f3ff": ["1faf1-1f3fc-200d-1faf2-1f3ff", 39, 50, 15, ["\u{1FAF1}\u{1F3FC}\u200D\u{1FAF2}\u{1F3FF}"]], "1f3fd-1f3fb": ["1faf1-1f3fd-200d-1faf2-1f3fb", 39, 51, 15, ["\u{1FAF1}\u{1F3FD}\u200D\u{1FAF2}\u{1F3FB}"]], "1f3fd-1f3fc": ["1faf1-1f3fd-200d-1faf2-1f3fc", 39, 52, 15, ["\u{1FAF1}\u{1F3FD}\u200D\u{1FAF2}\u{1F3FC}"]], "1f3fd-1f3fe": ["1faf1-1f3fd-200d-1faf2-1f3fe", 39, 53, 15, ["\u{1FAF1}\u{1F3FD}\u200D\u{1FAF2}\u{1F3FE}"]], "1f3fd-1f3ff": ["1faf1-1f3fd-200d-1faf2-1f3ff", 39, 54, 15, ["\u{1FAF1}\u{1F3FD}\u200D\u{1FAF2}\u{1F3FF}"]], "1f3fe-1f3fb": ["1faf1-1f3fe-200d-1faf2-1f3fb", 39, 55, 15, ["\u{1FAF1}\u{1F3FE}\u200D\u{1FAF2}\u{1F3FB}"]], "1f3fe-1f3fc": ["1faf1-1f3fe-200d-1faf2-1f3fc", 39, 56, 15, ["\u{1FAF1}\u{1F3FE}\u200D\u{1FAF2}\u{1F3FC}"]], "1f3fe-1f3fd": ["1faf1-1f3fe-200d-1faf2-1f3fd", 39, 57, 15, ["\u{1FAF1}\u{1F3FE}\u200D\u{1FAF2}\u{1F3FD}"]], "1f3fe-1f3ff": ["1faf1-1f3fe-200d-1faf2-1f3ff", 39, 58, 15, ["\u{1FAF1}\u{1F3FE}\u200D\u{1FAF2}\u{1F3FF}"]], "1f3ff-1f3fb": ["1faf1-1f3ff-200d-1faf2-1f3fb", 39, 59, 15, ["\u{1FAF1}\u{1F3FF}\u200D\u{1FAF2}\u{1F3FB}"]], "1f3ff-1f3fc": ["1faf1-1f3ff-200d-1faf2-1f3fc", 39, 60, 15, ["\u{1FAF1}\u{1F3FF}\u200D\u{1FAF2}\u{1F3FC}"]], "1f3ff-1f3fd": ["1faf1-1f3ff-200d-1faf2-1f3fd", 40, 0, 15, ["\u{1FAF1}\u{1F3FF}\u200D\u{1FAF2}\u{1F3FD}"]], "1f3ff-1f3fe": ["1faf1-1f3ff-200d-1faf2-1f3fe", 40, 1, 15, ["\u{1FAF1}\u{1F3FF}\u200D\u{1FAF2}\u{1F3FE}"]] }, "1f91e": { "1f3fb": ["1f91e-1f3fb", 40, 3, 15, ["\u{1F91E}\u{1F3FB}"]], "1f3fc": ["1f91e-1f3fc", 40, 4, 15, ["\u{1F91E}\u{1F3FC}"]], "1f3fd": ["1f91e-1f3fd", 40, 5, 15, ["\u{1F91E}\u{1F3FD}"]], "1f3fe": ["1f91e-1f3fe", 40, 6, 15, ["\u{1F91E}\u{1F3FE}"]], "1f3ff": ["1f91e-1f3ff", 40, 7, 15, ["\u{1F91E}\u{1F3FF}"]] }, "1f91f": { "1f3fb": ["1f91f-1f3fb", 40, 9, 15, ["\u{1F91F}\u{1F3FB}"]], "1f3fc": ["1f91f-1f3fc", 40, 10, 15, ["\u{1F91F}\u{1F3FC}"]], "1f3fd": ["1f91f-1f3fd", 40, 11, 15, ["\u{1F91F}\u{1F3FD}"]], "1f3fe": ["1f91f-1f3fe", 40, 12, 15, ["\u{1F91F}\u{1F3FE}"]], "1f3ff": ["1f91f-1f3ff", 40, 13, 15, ["\u{1F91F}\u{1F3FF}"]] }, "1f926-200d-2640-fe0f": { "1f3fb": ["1f926-1f3fb-200d-2640-fe0f", 40, 21, 15, ["\u{1F926}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f926-1f3fc-200d-2640-fe0f", 40, 22, 15, ["\u{1F926}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f926-1f3fd-200d-2640-fe0f", 40, 23, 15, ["\u{1F926}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f926-1f3fe-200d-2640-fe0f", 40, 24, 15, ["\u{1F926}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f926-1f3ff-200d-2640-fe0f", 40, 25, 15, ["\u{1F926}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f926-200d-2642-fe0f": { "1f3fb": ["1f926-1f3fb-200d-2642-fe0f", 40, 27, 15, ["\u{1F926}\u{1F3FB}\u200D\u2642\uFE0F"]], "1f3fc": ["1f926-1f3fc-200d-2642-fe0f", 40, 28, 15, ["\u{1F926}\u{1F3FC}\u200D\u2642\uFE0F"]], "1f3fd": ["1f926-1f3fd-200d-2642-fe0f", 40, 29, 15, ["\u{1F926}\u{1F3FD}\u200D\u2642\uFE0F"]], "1f3fe": ["1f926-1f3fe-200d-2642-fe0f", 40, 30, 15, ["\u{1F926}\u{1F3FE}\u200D\u2642\uFE0F"]], "1f3ff": ["1f926-1f3ff-200d-2642-fe0f", 40, 31, 15, ["\u{1F926}\u{1F3FF}\u200D\u2642\uFE0F"]] }, "1f926": { "1f3fb": ["1f926-1f3fb", 40, 33, 15, ["\u{1F926}\u{1F3FB}"]], "1f3fc": ["1f926-1f3fc", 40, 34, 15, ["\u{1F926}\u{1F3FC}"]], "1f3fd": ["1f926-1f3fd", 40, 35, 15, ["\u{1F926}\u{1F3FD}"]], "1f3fe": ["1f926-1f3fe", 40, 36, 15, ["\u{1F926}\u{1F3FE}"]], "1f3ff": ["1f926-1f3ff", 40, 37, 15, ["\u{1F926}\u{1F3FF}"]] }, "1f930": { "1f3fb": ["1f930-1f3fb", 40, 48, 15, ["\u{1F930}\u{1F3FB}"]], "1f3fc": ["1f930-1f3fc", 40, 49, 15, ["\u{1F930}\u{1F3FC}"]], "1f3fd": ["1f930-1f3fd", 40, 50, 15, ["\u{1F930}\u{1F3FD}"]], "1f3fe": ["1f930-1f3fe", 40, 51, 15, ["\u{1F930}\u{1F3FE}"]], "1f3ff": ["1f930-1f3ff", 40, 52, 15, ["\u{1F930}\u{1F3FF}"]] }, "1f931": { "1f3fb": ["1f931-1f3fb", 40, 54, 15, ["\u{1F931}\u{1F3FB}"]], "1f3fc": ["1f931-1f3fc", 40, 55, 15, ["\u{1F931}\u{1F3FC}"]], "1f3fd": ["1f931-1f3fd", 40, 56, 15, ["\u{1F931}\u{1F3FD}"]], "1f3fe": ["1f931-1f3fe", 40, 57, 15, ["\u{1F931}\u{1F3FE}"]], "1f3ff": ["1f931-1f3ff", 40, 58, 15, ["\u{1F931}\u{1F3FF}"]] }, "1f932": { "1f3fb": ["1f932-1f3fb", 40, 60, 15, ["\u{1F932}\u{1F3FB}"]], "1f3fc": ["1f932-1f3fc", 41, 0, 15, ["\u{1F932}\u{1F3FC}"]], "1f3fd": ["1f932-1f3fd", 41, 1, 15, ["\u{1F932}\u{1F3FD}"]], "1f3fe": ["1f932-1f3fe", 41, 2, 15, ["\u{1F932}\u{1F3FE}"]], "1f3ff": ["1f932-1f3ff", 41, 3, 15, ["\u{1F932}\u{1F3FF}"]] }, "1f933": { "1f3fb": ["1f933-1f3fb", 41, 5, 15, ["\u{1F933}\u{1F3FB}"]], "1f3fc": ["1f933-1f3fc", 41, 6, 15, ["\u{1F933}\u{1F3FC}"]], "1f3fd": ["1f933-1f3fd", 41, 7, 15, ["\u{1F933}\u{1F3FD}"]], "1f3fe": ["1f933-1f3fe", 41, 8, 15, ["\u{1F933}\u{1F3FE}"]], "1f3ff": ["1f933-1f3ff", 41, 9, 15, ["\u{1F933}\u{1F3FF}"]] }, "1f934": { "1f3fb": ["1f934-1f3fb", 41, 11, 15, ["\u{1F934}\u{1F3FB}"]], "1f3fc": ["1f934-1f3fc", 41, 12, 15, ["\u{1F934}\u{1F3FC}"]], "1f3fd": ["1f934-1f3fd", 41, 13, 15, ["\u{1F934}\u{1F3FD}"]], "1f3fe": ["1f934-1f3fe", 41, 14, 15, ["\u{1F934}\u{1F3FE}"]], "1f3ff": ["1f934-1f3ff", 41, 15, 15, ["\u{1F934}\u{1F3FF}"]] }, "1f935-200d-2640-fe0f": { "1f3fb": ["1f935-1f3fb-200d-2640-fe0f", 41, 17, 15, ["\u{1F935}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f935-1f3fc-200d-2640-fe0f", 41, 18, 15, ["\u{1F935}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f935-1f3fd-200d-2640-fe0f", 41, 19, 15, ["\u{1F935}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f935-1f3fe-200d-2640-fe0f", 41, 20, 15, ["\u{1F935}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f935-1f3ff-200d-2640-fe0f", 41, 21, 15, ["\u{1F935}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f935-200d-2642-fe0f": { "1f3fb": ["1f935-1f3fb-200d-2642-fe0f", 41, 23, 15, ["\u{1F935}\u{1F3FB}\u200D\u2642\uFE0F"]], "1f3fc": ["1f935-1f3fc-200d-2642-fe0f", 41, 24, 15, ["\u{1F935}\u{1F3FC}\u200D\u2642\uFE0F"]], "1f3fd": ["1f935-1f3fd-200d-2642-fe0f", 41, 25, 15, ["\u{1F935}\u{1F3FD}\u200D\u2642\uFE0F"]], "1f3fe": ["1f935-1f3fe-200d-2642-fe0f", 41, 26, 15, ["\u{1F935}\u{1F3FE}\u200D\u2642\uFE0F"]], "1f3ff": ["1f935-1f3ff-200d-2642-fe0f", 41, 27, 15, ["\u{1F935}\u{1F3FF}\u200D\u2642\uFE0F"]] }, "1f935": { "1f3fb": ["1f935-1f3fb", 41, 29, 15, ["\u{1F935}\u{1F3FB}"]], "1f3fc": ["1f935-1f3fc", 41, 30, 15, ["\u{1F935}\u{1F3FC}"]], "1f3fd": ["1f935-1f3fd", 41, 31, 15, ["\u{1F935}\u{1F3FD}"]], "1f3fe": ["1f935-1f3fe", 41, 32, 15, ["\u{1F935}\u{1F3FE}"]], "1f3ff": ["1f935-1f3ff", 41, 33, 15, ["\u{1F935}\u{1F3FF}"]] }, "1f936": { "1f3fb": ["1f936-1f3fb", 41, 35, 15, ["\u{1F936}\u{1F3FB}"]], "1f3fc": ["1f936-1f3fc", 41, 36, 15, ["\u{1F936}\u{1F3FC}"]], "1f3fd": ["1f936-1f3fd", 41, 37, 15, ["\u{1F936}\u{1F3FD}"]], "1f3fe": ["1f936-1f3fe", 41, 38, 15, ["\u{1F936}\u{1F3FE}"]], "1f3ff": ["1f936-1f3ff", 41, 39, 15, ["\u{1F936}\u{1F3FF}"]] }, "1f937-200d-2640-fe0f": { "1f3fb": ["1f937-1f3fb-200d-2640-fe0f", 41, 41, 15, ["\u{1F937}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f937-1f3fc-200d-2640-fe0f", 41, 42, 15, ["\u{1F937}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f937-1f3fd-200d-2640-fe0f", 41, 43, 15, ["\u{1F937}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f937-1f3fe-200d-2640-fe0f", 41, 44, 15, ["\u{1F937}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f937-1f3ff-200d-2640-fe0f", 41, 45, 15, ["\u{1F937}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f937-200d-2642-fe0f": { "1f3fb": ["1f937-1f3fb-200d-2642-fe0f", 41, 47, 15, ["\u{1F937}\u{1F3FB}\u200D\u2642\uFE0F"]], "1f3fc": ["1f937-1f3fc-200d-2642-fe0f", 41, 48, 15, ["\u{1F937}\u{1F3FC}\u200D\u2642\uFE0F"]], "1f3fd": ["1f937-1f3fd-200d-2642-fe0f", 41, 49, 15, ["\u{1F937}\u{1F3FD}\u200D\u2642\uFE0F"]], "1f3fe": ["1f937-1f3fe-200d-2642-fe0f", 41, 50, 15, ["\u{1F937}\u{1F3FE}\u200D\u2642\uFE0F"]], "1f3ff": ["1f937-1f3ff-200d-2642-fe0f", 41, 51, 15, ["\u{1F937}\u{1F3FF}\u200D\u2642\uFE0F"]] }, "1f937": { "1f3fb": ["1f937-1f3fb", 41, 53, 15, ["\u{1F937}\u{1F3FB}"]], "1f3fc": ["1f937-1f3fc", 41, 54, 15, ["\u{1F937}\u{1F3FC}"]], "1f3fd": ["1f937-1f3fd", 41, 55, 15, ["\u{1F937}\u{1F3FD}"]], "1f3fe": ["1f937-1f3fe", 41, 56, 15, ["\u{1F937}\u{1F3FE}"]], "1f3ff": ["1f937-1f3ff", 41, 57, 15, ["\u{1F937}\u{1F3FF}"]] }, "1f938-200d-2640-fe0f": { "1f3fb": ["1f938-1f3fb-200d-2640-fe0f", 41, 59, 15, ["\u{1F938}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f938-1f3fc-200d-2640-fe0f", 41, 60, 15, ["\u{1F938}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f938-1f3fd-200d-2640-fe0f", 42, 0, 15, ["\u{1F938}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f938-1f3fe-200d-2640-fe0f", 42, 1, 15, ["\u{1F938}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f938-1f3ff-200d-2640-fe0f", 42, 2, 15, ["\u{1F938}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f938-200d-2642-fe0f": { "1f3fb": ["1f938-1f3fb-200d-2642-fe0f", 42, 4, 15, ["\u{1F938}\u{1F3FB}\u200D\u2642\uFE0F"]], "1f3fc": ["1f938-1f3fc-200d-2642-fe0f", 42, 5, 15, ["\u{1F938}\u{1F3FC}\u200D\u2642\uFE0F"]], "1f3fd": ["1f938-1f3fd-200d-2642-fe0f", 42, 6, 15, ["\u{1F938}\u{1F3FD}\u200D\u2642\uFE0F"]], "1f3fe": ["1f938-1f3fe-200d-2642-fe0f", 42, 7, 15, ["\u{1F938}\u{1F3FE}\u200D\u2642\uFE0F"]], "1f3ff": ["1f938-1f3ff-200d-2642-fe0f", 42, 8, 15, ["\u{1F938}\u{1F3FF}\u200D\u2642\uFE0F"]] }, "1f938": { "1f3fb": ["1f938-1f3fb", 42, 10, 15, ["\u{1F938}\u{1F3FB}"]], "1f3fc": ["1f938-1f3fc", 42, 11, 15, ["\u{1F938}\u{1F3FC}"]], "1f3fd": ["1f938-1f3fd", 42, 12, 15, ["\u{1F938}\u{1F3FD}"]], "1f3fe": ["1f938-1f3fe", 42, 13, 15, ["\u{1F938}\u{1F3FE}"]], "1f3ff": ["1f938-1f3ff", 42, 14, 15, ["\u{1F938}\u{1F3FF}"]] }, "1f939-200d-2640-fe0f": { "1f3fb": ["1f939-1f3fb-200d-2640-fe0f", 42, 16, 15, ["\u{1F939}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f939-1f3fc-200d-2640-fe0f", 42, 17, 15, ["\u{1F939}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f939-1f3fd-200d-2640-fe0f", 42, 18, 15, ["\u{1F939}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f939-1f3fe-200d-2640-fe0f", 42, 19, 15, ["\u{1F939}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f939-1f3ff-200d-2640-fe0f", 42, 20, 15, ["\u{1F939}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f939-200d-2642-fe0f": { "1f3fb": ["1f939-1f3fb-200d-2642-fe0f", 42, 22, 15, ["\u{1F939}\u{1F3FB}\u200D\u2642\uFE0F"]], "1f3fc": ["1f939-1f3fc-200d-2642-fe0f", 42, 23, 15, ["\u{1F939}\u{1F3FC}\u200D\u2642\uFE0F"]], "1f3fd": ["1f939-1f3fd-200d-2642-fe0f", 42, 24, 15, ["\u{1F939}\u{1F3FD}\u200D\u2642\uFE0F"]], "1f3fe": ["1f939-1f3fe-200d-2642-fe0f", 42, 25, 15, ["\u{1F939}\u{1F3FE}\u200D\u2642\uFE0F"]], "1f3ff": ["1f939-1f3ff-200d-2642-fe0f", 42, 26, 15, ["\u{1F939}\u{1F3FF}\u200D\u2642\uFE0F"]] }, "1f939": { "1f3fb": ["1f939-1f3fb", 42, 28, 15, ["\u{1F939}\u{1F3FB}"]], "1f3fc": ["1f939-1f3fc", 42, 29, 15, ["\u{1F939}\u{1F3FC}"]], "1f3fd": ["1f939-1f3fd", 42, 30, 15, ["\u{1F939}\u{1F3FD}"]], "1f3fe": ["1f939-1f3fe", 42, 31, 15, ["\u{1F939}\u{1F3FE}"]], "1f3ff": ["1f939-1f3ff", 42, 32, 15, ["\u{1F939}\u{1F3FF}"]] }, "1f93d-200d-2640-fe0f": { "1f3fb": ["1f93d-1f3fb-200d-2640-fe0f", 42, 38, 15, ["\u{1F93D}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f93d-1f3fc-200d-2640-fe0f", 42, 39, 15, ["\u{1F93D}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f93d-1f3fd-200d-2640-fe0f", 42, 40, 15, ["\u{1F93D}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f93d-1f3fe-200d-2640-fe0f", 42, 41, 15, ["\u{1F93D}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f93d-1f3ff-200d-2640-fe0f", 42, 42, 15, ["\u{1F93D}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f93d-200d-2642-fe0f": { "1f3fb": ["1f93d-1f3fb-200d-2642-fe0f", 42, 44, 15, ["\u{1F93D}\u{1F3FB}\u200D\u2642\uFE0F"]], "1f3fc": ["1f93d-1f3fc-200d-2642-fe0f", 42, 45, 15, ["\u{1F93D}\u{1F3FC}\u200D\u2642\uFE0F"]], "1f3fd": ["1f93d-1f3fd-200d-2642-fe0f", 42, 46, 15, ["\u{1F93D}\u{1F3FD}\u200D\u2642\uFE0F"]], "1f3fe": ["1f93d-1f3fe-200d-2642-fe0f", 42, 47, 15, ["\u{1F93D}\u{1F3FE}\u200D\u2642\uFE0F"]], "1f3ff": ["1f93d-1f3ff-200d-2642-fe0f", 42, 48, 15, ["\u{1F93D}\u{1F3FF}\u200D\u2642\uFE0F"]] }, "1f93d": { "1f3fb": ["1f93d-1f3fb", 42, 50, 15, ["\u{1F93D}\u{1F3FB}"]], "1f3fc": ["1f93d-1f3fc", 42, 51, 15, ["\u{1F93D}\u{1F3FC}"]], "1f3fd": ["1f93d-1f3fd", 42, 52, 15, ["\u{1F93D}\u{1F3FD}"]], "1f3fe": ["1f93d-1f3fe", 42, 53, 15, ["\u{1F93D}\u{1F3FE}"]], "1f3ff": ["1f93d-1f3ff", 42, 54, 15, ["\u{1F93D}\u{1F3FF}"]] }, "1f93e-200d-2640-fe0f": { "1f3fb": ["1f93e-1f3fb-200d-2640-fe0f", 42, 56, 15, ["\u{1F93E}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f93e-1f3fc-200d-2640-fe0f", 42, 57, 15, ["\u{1F93E}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f93e-1f3fd-200d-2640-fe0f", 42, 58, 15, ["\u{1F93E}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f93e-1f3fe-200d-2640-fe0f", 42, 59, 15, ["\u{1F93E}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f93e-1f3ff-200d-2640-fe0f", 42, 60, 15, ["\u{1F93E}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f93e-200d-2642-fe0f": { "1f3fb": ["1f93e-1f3fb-200d-2642-fe0f", 43, 1, 15, ["\u{1F93E}\u{1F3FB}\u200D\u2642\uFE0F"]], "1f3fc": ["1f93e-1f3fc-200d-2642-fe0f", 43, 2, 15, ["\u{1F93E}\u{1F3FC}\u200D\u2642\uFE0F"]], "1f3fd": ["1f93e-1f3fd-200d-2642-fe0f", 43, 3, 15, ["\u{1F93E}\u{1F3FD}\u200D\u2642\uFE0F"]], "1f3fe": ["1f93e-1f3fe-200d-2642-fe0f", 43, 4, 15, ["\u{1F93E}\u{1F3FE}\u200D\u2642\uFE0F"]], "1f3ff": ["1f93e-1f3ff-200d-2642-fe0f", 43, 5, 15, ["\u{1F93E}\u{1F3FF}\u200D\u2642\uFE0F"]] }, "1f93e": { "1f3fb": ["1f93e-1f3fb", 43, 7, 15, ["\u{1F93E}\u{1F3FB}"]], "1f3fc": ["1f93e-1f3fc", 43, 8, 15, ["\u{1F93E}\u{1F3FC}"]], "1f3fd": ["1f93e-1f3fd", 43, 9, 15, ["\u{1F93E}\u{1F3FD}"]], "1f3fe": ["1f93e-1f3fe", 43, 10, 15, ["\u{1F93E}\u{1F3FE}"]], "1f3ff": ["1f93e-1f3ff", 43, 11, 15, ["\u{1F93E}\u{1F3FF}"]] }, "1f977": { "1f3fb": ["1f977-1f3fb", 44, 7, 15, ["\u{1F977}\u{1F3FB}"]], "1f3fc": ["1f977-1f3fc", 44, 8, 15, ["\u{1F977}\u{1F3FC}"]], "1f3fd": ["1f977-1f3fd", 44, 9, 15, ["\u{1F977}\u{1F3FD}"]], "1f3fe": ["1f977-1f3fe", 44, 10, 15, ["\u{1F977}\u{1F3FE}"]], "1f3ff": ["1f977-1f3ff", 44, 11, 15, ["\u{1F977}\u{1F3FF}"]] }, "1f9b5": { "1f3fb": ["1f9b5-1f3fb", 45, 9, 15, ["\u{1F9B5}\u{1F3FB}"]], "1f3fc": ["1f9b5-1f3fc", 45, 10, 15, ["\u{1F9B5}\u{1F3FC}"]], "1f3fd": ["1f9b5-1f3fd", 45, 11, 15, ["\u{1F9B5}\u{1F3FD}"]], "1f3fe": ["1f9b5-1f3fe", 45, 12, 15, ["\u{1F9B5}\u{1F3FE}"]], "1f3ff": ["1f9b5-1f3ff", 45, 13, 15, ["\u{1F9B5}\u{1F3FF}"]] }, "1f9b6": { "1f3fb": ["1f9b6-1f3fb", 45, 15, 15, ["\u{1F9B6}\u{1F3FB}"]], "1f3fc": ["1f9b6-1f3fc", 45, 16, 15, ["\u{1F9B6}\u{1F3FC}"]], "1f3fd": ["1f9b6-1f3fd", 45, 17, 15, ["\u{1F9B6}\u{1F3FD}"]], "1f3fe": ["1f9b6-1f3fe", 45, 18, 15, ["\u{1F9B6}\u{1F3FE}"]], "1f3ff": ["1f9b6-1f3ff", 45, 19, 15, ["\u{1F9B6}\u{1F3FF}"]] }, "1f9b8-200d-2640-fe0f": { "1f3fb": ["1f9b8-1f3fb-200d-2640-fe0f", 45, 22, 15, ["\u{1F9B8}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f9b8-1f3fc-200d-2640-fe0f", 45, 23, 15, ["\u{1F9B8}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f9b8-1f3fd-200d-2640-fe0f", 45, 24, 15, ["\u{1F9B8}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f9b8-1f3fe-200d-2640-fe0f", 45, 25, 15, ["\u{1F9B8}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f9b8-1f3ff-200d-2640-fe0f", 45, 26, 15, ["\u{1F9B8}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f9b8-200d-2642-fe0f": { "1f3fb": ["1f9b8-1f3fb-200d-2642-fe0f", 45, 28, 15, ["\u{1F9B8}\u{1F3FB}\u200D\u2642\uFE0F"]], "1f3fc": ["1f9b8-1f3fc-200d-2642-fe0f", 45, 29, 15, ["\u{1F9B8}\u{1F3FC}\u200D\u2642\uFE0F"]], "1f3fd": ["1f9b8-1f3fd-200d-2642-fe0f", 45, 30, 15, ["\u{1F9B8}\u{1F3FD}\u200D\u2642\uFE0F"]], "1f3fe": ["1f9b8-1f3fe-200d-2642-fe0f", 45, 31, 15, ["\u{1F9B8}\u{1F3FE}\u200D\u2642\uFE0F"]], "1f3ff": ["1f9b8-1f3ff-200d-2642-fe0f", 45, 32, 15, ["\u{1F9B8}\u{1F3FF}\u200D\u2642\uFE0F"]] }, "1f9b8": { "1f3fb": ["1f9b8-1f3fb", 45, 34, 15, ["\u{1F9B8}\u{1F3FB}"]], "1f3fc": ["1f9b8-1f3fc", 45, 35, 15, ["\u{1F9B8}\u{1F3FC}"]], "1f3fd": ["1f9b8-1f3fd", 45, 36, 15, ["\u{1F9B8}\u{1F3FD}"]], "1f3fe": ["1f9b8-1f3fe", 45, 37, 15, ["\u{1F9B8}\u{1F3FE}"]], "1f3ff": ["1f9b8-1f3ff", 45, 38, 15, ["\u{1F9B8}\u{1F3FF}"]] }, "1f9b9-200d-2640-fe0f": { "1f3fb": ["1f9b9-1f3fb-200d-2640-fe0f", 45, 40, 15, ["\u{1F9B9}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f9b9-1f3fc-200d-2640-fe0f", 45, 41, 15, ["\u{1F9B9}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f9b9-1f3fd-200d-2640-fe0f", 45, 42, 15, ["\u{1F9B9}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f9b9-1f3fe-200d-2640-fe0f", 45, 43, 15, ["\u{1F9B9}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f9b9-1f3ff-200d-2640-fe0f", 45, 44, 15, ["\u{1F9B9}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f9b9-200d-2642-fe0f": { "1f3fb": ["1f9b9-1f3fb-200d-2642-fe0f", 45, 46, 15, ["\u{1F9B9}\u{1F3FB}\u200D\u2642\uFE0F"]], "1f3fc": ["1f9b9-1f3fc-200d-2642-fe0f", 45, 47, 15, ["\u{1F9B9}\u{1F3FC}\u200D\u2642\uFE0F"]], "1f3fd": ["1f9b9-1f3fd-200d-2642-fe0f", 45, 48, 15, ["\u{1F9B9}\u{1F3FD}\u200D\u2642\uFE0F"]], "1f3fe": ["1f9b9-1f3fe-200d-2642-fe0f", 45, 49, 15, ["\u{1F9B9}\u{1F3FE}\u200D\u2642\uFE0F"]], "1f3ff": ["1f9b9-1f3ff-200d-2642-fe0f", 45, 50, 15, ["\u{1F9B9}\u{1F3FF}\u200D\u2642\uFE0F"]] }, "1f9b9": { "1f3fb": ["1f9b9-1f3fb", 45, 52, 15, ["\u{1F9B9}\u{1F3FB}"]], "1f3fc": ["1f9b9-1f3fc", 45, 53, 15, ["\u{1F9B9}\u{1F3FC}"]], "1f3fd": ["1f9b9-1f3fd", 45, 54, 15, ["\u{1F9B9}\u{1F3FD}"]], "1f3fe": ["1f9b9-1f3fe", 45, 55, 15, ["\u{1F9B9}\u{1F3FE}"]], "1f3ff": ["1f9b9-1f3ff", 45, 56, 15, ["\u{1F9B9}\u{1F3FF}"]] }, "1f9bb": { "1f3fb": ["1f9bb-1f3fb", 45, 59, 15, ["\u{1F9BB}\u{1F3FB}"]], "1f3fc": ["1f9bb-1f3fc", 45, 60, 15, ["\u{1F9BB}\u{1F3FC}"]], "1f3fd": ["1f9bb-1f3fd", 46, 0, 15, ["\u{1F9BB}\u{1F3FD}"]], "1f3fe": ["1f9bb-1f3fe", 46, 1, 15, ["\u{1F9BB}\u{1F3FE}"]], "1f3ff": ["1f9bb-1f3ff", 46, 2, 15, ["\u{1F9BB}\u{1F3FF}"]] }, "1f9cd-200d-2640-fe0f": { "1f3fb": ["1f9cd-1f3fb-200d-2640-fe0f", 46, 21, 15, ["\u{1F9CD}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f9cd-1f3fc-200d-2640-fe0f", 46, 22, 15, ["\u{1F9CD}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f9cd-1f3fd-200d-2640-fe0f", 46, 23, 15, ["\u{1F9CD}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f9cd-1f3fe-200d-2640-fe0f", 46, 24, 15, ["\u{1F9CD}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f9cd-1f3ff-200d-2640-fe0f", 46, 25, 15, ["\u{1F9CD}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f9cd-200d-2642-fe0f": { "1f3fb": ["1f9cd-1f3fb-200d-2642-fe0f", 46, 27, 15, ["\u{1F9CD}\u{1F3FB}\u200D\u2642\uFE0F"]], "1f3fc": ["1f9cd-1f3fc-200d-2642-fe0f", 46, 28, 15, ["\u{1F9CD}\u{1F3FC}\u200D\u2642\uFE0F"]], "1f3fd": ["1f9cd-1f3fd-200d-2642-fe0f", 46, 29, 15, ["\u{1F9CD}\u{1F3FD}\u200D\u2642\uFE0F"]], "1f3fe": ["1f9cd-1f3fe-200d-2642-fe0f", 46, 30, 15, ["\u{1F9CD}\u{1F3FE}\u200D\u2642\uFE0F"]], "1f3ff": ["1f9cd-1f3ff-200d-2642-fe0f", 46, 31, 15, ["\u{1F9CD}\u{1F3FF}\u200D\u2642\uFE0F"]] }, "1f9cd": { "1f3fb": ["1f9cd-1f3fb", 46, 33, 15, ["\u{1F9CD}\u{1F3FB}"]], "1f3fc": ["1f9cd-1f3fc", 46, 34, 15, ["\u{1F9CD}\u{1F3FC}"]], "1f3fd": ["1f9cd-1f3fd", 46, 35, 15, ["\u{1F9CD}\u{1F3FD}"]], "1f3fe": ["1f9cd-1f3fe", 46, 36, 15, ["\u{1F9CD}\u{1F3FE}"]], "1f3ff": ["1f9cd-1f3ff", 46, 37, 15, ["\u{1F9CD}\u{1F3FF}"]] }, "1f9ce-200d-2640-fe0f": { "1f3fb": ["1f9ce-1f3fb-200d-2640-fe0f", 46, 39, 15, ["\u{1F9CE}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f9ce-1f3fc-200d-2640-fe0f", 46, 40, 15, ["\u{1F9CE}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f9ce-1f3fd-200d-2640-fe0f", 46, 41, 15, ["\u{1F9CE}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f9ce-1f3fe-200d-2640-fe0f", 46, 42, 15, ["\u{1F9CE}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f9ce-1f3ff-200d-2640-fe0f", 46, 43, 15, ["\u{1F9CE}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f9ce-200d-2642-fe0f": { "1f3fb": ["1f9ce-1f3fb-200d-2642-fe0f", 46, 45, 15, ["\u{1F9CE}\u{1F3FB}\u200D\u2642\uFE0F"]], "1f3fc": ["1f9ce-1f3fc-200d-2642-fe0f", 46, 46, 15, ["\u{1F9CE}\u{1F3FC}\u200D\u2642\uFE0F"]], "1f3fd": ["1f9ce-1f3fd-200d-2642-fe0f", 46, 47, 15, ["\u{1F9CE}\u{1F3FD}\u200D\u2642\uFE0F"]], "1f3fe": ["1f9ce-1f3fe-200d-2642-fe0f", 46, 48, 15, ["\u{1F9CE}\u{1F3FE}\u200D\u2642\uFE0F"]], "1f3ff": ["1f9ce-1f3ff-200d-2642-fe0f", 46, 49, 15, ["\u{1F9CE}\u{1F3FF}\u200D\u2642\uFE0F"]] }, "1f9ce": { "1f3fb": ["1f9ce-1f3fb", 46, 51, 15, ["\u{1F9CE}\u{1F3FB}"]], "1f3fc": ["1f9ce-1f3fc", 46, 52, 15, ["\u{1F9CE}\u{1F3FC}"]], "1f3fd": ["1f9ce-1f3fd", 46, 53, 15, ["\u{1F9CE}\u{1F3FD}"]], "1f3fe": ["1f9ce-1f3fe", 46, 54, 15, ["\u{1F9CE}\u{1F3FE}"]], "1f3ff": ["1f9ce-1f3ff", 46, 55, 15, ["\u{1F9CE}\u{1F3FF}"]] }, "1f9cf-200d-2640-fe0f": { "1f3fb": ["1f9cf-1f3fb-200d-2640-fe0f", 46, 57, 15, ["\u{1F9CF}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f9cf-1f3fc-200d-2640-fe0f", 46, 58, 15, ["\u{1F9CF}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f9cf-1f3fd-200d-2640-fe0f", 46, 59, 15, ["\u{1F9CF}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f9cf-1f3fe-200d-2640-fe0f", 46, 60, 15, ["\u{1F9CF}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f9cf-1f3ff-200d-2640-fe0f", 47, 0, 15, ["\u{1F9CF}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f9cf-200d-2642-fe0f": { "1f3fb": ["1f9cf-1f3fb-200d-2642-fe0f", 47, 2, 15, ["\u{1F9CF}\u{1F3FB}\u200D\u2642\uFE0F"]], "1f3fc": ["1f9cf-1f3fc-200d-2642-fe0f", 47, 3, 15, ["\u{1F9CF}\u{1F3FC}\u200D\u2642\uFE0F"]], "1f3fd": ["1f9cf-1f3fd-200d-2642-fe0f", 47, 4, 15, ["\u{1F9CF}\u{1F3FD}\u200D\u2642\uFE0F"]], "1f3fe": ["1f9cf-1f3fe-200d-2642-fe0f", 47, 5, 15, ["\u{1F9CF}\u{1F3FE}\u200D\u2642\uFE0F"]], "1f3ff": ["1f9cf-1f3ff-200d-2642-fe0f", 47, 6, 15, ["\u{1F9CF}\u{1F3FF}\u200D\u2642\uFE0F"]] }, "1f9cf": { "1f3fb": ["1f9cf-1f3fb", 47, 8, 15, ["\u{1F9CF}\u{1F3FB}"]], "1f3fc": ["1f9cf-1f3fc", 47, 9, 15, ["\u{1F9CF}\u{1F3FC}"]], "1f3fd": ["1f9cf-1f3fd", 47, 10, 15, ["\u{1F9CF}\u{1F3FD}"]], "1f3fe": ["1f9cf-1f3fe", 47, 11, 15, ["\u{1F9CF}\u{1F3FE}"]], "1f3ff": ["1f9cf-1f3ff", 47, 12, 15, ["\u{1F9CF}\u{1F3FF}"]] }, "1f9d1-200d-1f33e": { "1f3fb": ["1f9d1-1f3fb-200d-1f33e", 47, 15, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u{1F33E}"]], "1f3fc": ["1f9d1-1f3fc-200d-1f33e", 47, 16, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u{1F33E}"]], "1f3fd": ["1f9d1-1f3fd-200d-1f33e", 47, 17, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u{1F33E}"]], "1f3fe": ["1f9d1-1f3fe-200d-1f33e", 47, 18, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u{1F33E}"]], "1f3ff": ["1f9d1-1f3ff-200d-1f33e", 47, 19, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u{1F33E}"]] }, "1f9d1-200d-1f373": { "1f3fb": ["1f9d1-1f3fb-200d-1f373", 47, 21, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u{1F373}"]], "1f3fc": ["1f9d1-1f3fc-200d-1f373", 47, 22, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u{1F373}"]], "1f3fd": ["1f9d1-1f3fd-200d-1f373", 47, 23, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u{1F373}"]], "1f3fe": ["1f9d1-1f3fe-200d-1f373", 47, 24, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u{1F373}"]], "1f3ff": ["1f9d1-1f3ff-200d-1f373", 47, 25, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u{1F373}"]] }, "1f9d1-200d-1f37c": { "1f3fb": ["1f9d1-1f3fb-200d-1f37c", 47, 27, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u{1F37C}"]], "1f3fc": ["1f9d1-1f3fc-200d-1f37c", 47, 28, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u{1F37C}"]], "1f3fd": ["1f9d1-1f3fd-200d-1f37c", 47, 29, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u{1F37C}"]], "1f3fe": ["1f9d1-1f3fe-200d-1f37c", 47, 30, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u{1F37C}"]], "1f3ff": ["1f9d1-1f3ff-200d-1f37c", 47, 31, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u{1F37C}"]] }, "1f9d1-200d-1f384": { "1f3fb": ["1f9d1-1f3fb-200d-1f384", 47, 33, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u{1F384}"]], "1f3fc": ["1f9d1-1f3fc-200d-1f384", 47, 34, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u{1F384}"]], "1f3fd": ["1f9d1-1f3fd-200d-1f384", 47, 35, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u{1F384}"]], "1f3fe": ["1f9d1-1f3fe-200d-1f384", 47, 36, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u{1F384}"]], "1f3ff": ["1f9d1-1f3ff-200d-1f384", 47, 37, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u{1F384}"]] }, "1f9d1-200d-1f393": { "1f3fb": ["1f9d1-1f3fb-200d-1f393", 47, 39, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u{1F393}"]], "1f3fc": ["1f9d1-1f3fc-200d-1f393", 47, 40, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u{1F393}"]], "1f3fd": ["1f9d1-1f3fd-200d-1f393", 47, 41, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u{1F393}"]], "1f3fe": ["1f9d1-1f3fe-200d-1f393", 47, 42, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u{1F393}"]], "1f3ff": ["1f9d1-1f3ff-200d-1f393", 47, 43, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u{1F393}"]] }, "1f9d1-200d-1f3a4": { "1f3fb": ["1f9d1-1f3fb-200d-1f3a4", 47, 45, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u{1F3A4}"]], "1f3fc": ["1f9d1-1f3fc-200d-1f3a4", 47, 46, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u{1F3A4}"]], "1f3fd": ["1f9d1-1f3fd-200d-1f3a4", 47, 47, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u{1F3A4}"]], "1f3fe": ["1f9d1-1f3fe-200d-1f3a4", 47, 48, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u{1F3A4}"]], "1f3ff": ["1f9d1-1f3ff-200d-1f3a4", 47, 49, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u{1F3A4}"]] }, "1f9d1-200d-1f3a8": { "1f3fb": ["1f9d1-1f3fb-200d-1f3a8", 47, 51, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u{1F3A8}"]], "1f3fc": ["1f9d1-1f3fc-200d-1f3a8", 47, 52, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u{1F3A8}"]], "1f3fd": ["1f9d1-1f3fd-200d-1f3a8", 47, 53, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u{1F3A8}"]], "1f3fe": ["1f9d1-1f3fe-200d-1f3a8", 47, 54, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u{1F3A8}"]], "1f3ff": ["1f9d1-1f3ff-200d-1f3a8", 47, 55, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u{1F3A8}"]] }, "1f9d1-200d-1f3eb": { "1f3fb": ["1f9d1-1f3fb-200d-1f3eb", 47, 57, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u{1F3EB}"]], "1f3fc": ["1f9d1-1f3fc-200d-1f3eb", 47, 58, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u{1F3EB}"]], "1f3fd": ["1f9d1-1f3fd-200d-1f3eb", 47, 59, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u{1F3EB}"]], "1f3fe": ["1f9d1-1f3fe-200d-1f3eb", 47, 60, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u{1F3EB}"]], "1f3ff": ["1f9d1-1f3ff-200d-1f3eb", 48, 0, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u{1F3EB}"]] }, "1f9d1-200d-1f3ed": { "1f3fb": ["1f9d1-1f3fb-200d-1f3ed", 48, 2, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u{1F3ED}"]], "1f3fc": ["1f9d1-1f3fc-200d-1f3ed", 48, 3, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u{1F3ED}"]], "1f3fd": ["1f9d1-1f3fd-200d-1f3ed", 48, 4, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u{1F3ED}"]], "1f3fe": ["1f9d1-1f3fe-200d-1f3ed", 48, 5, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u{1F3ED}"]], "1f3ff": ["1f9d1-1f3ff-200d-1f3ed", 48, 6, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u{1F3ED}"]] }, "1f9d1-200d-1f4bb": { "1f3fb": ["1f9d1-1f3fb-200d-1f4bb", 48, 8, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u{1F4BB}"]], "1f3fc": ["1f9d1-1f3fc-200d-1f4bb", 48, 9, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u{1F4BB}"]], "1f3fd": ["1f9d1-1f3fd-200d-1f4bb", 48, 10, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u{1F4BB}"]], "1f3fe": ["1f9d1-1f3fe-200d-1f4bb", 48, 11, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u{1F4BB}"]], "1f3ff": ["1f9d1-1f3ff-200d-1f4bb", 48, 12, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u{1F4BB}"]] }, "1f9d1-200d-1f4bc": { "1f3fb": ["1f9d1-1f3fb-200d-1f4bc", 48, 14, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u{1F4BC}"]], "1f3fc": ["1f9d1-1f3fc-200d-1f4bc", 48, 15, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u{1F4BC}"]], "1f3fd": ["1f9d1-1f3fd-200d-1f4bc", 48, 16, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u{1F4BC}"]], "1f3fe": ["1f9d1-1f3fe-200d-1f4bc", 48, 17, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u{1F4BC}"]], "1f3ff": ["1f9d1-1f3ff-200d-1f4bc", 48, 18, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u{1F4BC}"]] }, "1f9d1-200d-1f527": { "1f3fb": ["1f9d1-1f3fb-200d-1f527", 48, 20, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u{1F527}"]], "1f3fc": ["1f9d1-1f3fc-200d-1f527", 48, 21, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u{1F527}"]], "1f3fd": ["1f9d1-1f3fd-200d-1f527", 48, 22, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u{1F527}"]], "1f3fe": ["1f9d1-1f3fe-200d-1f527", 48, 23, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u{1F527}"]], "1f3ff": ["1f9d1-1f3ff-200d-1f527", 48, 24, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u{1F527}"]] }, "1f9d1-200d-1f52c": { "1f3fb": ["1f9d1-1f3fb-200d-1f52c", 48, 26, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u{1F52C}"]], "1f3fc": ["1f9d1-1f3fc-200d-1f52c", 48, 27, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u{1F52C}"]], "1f3fd": ["1f9d1-1f3fd-200d-1f52c", 48, 28, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u{1F52C}"]], "1f3fe": ["1f9d1-1f3fe-200d-1f52c", 48, 29, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u{1F52C}"]], "1f3ff": ["1f9d1-1f3ff-200d-1f52c", 48, 30, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u{1F52C}"]] }, "1f9d1-200d-1f680": { "1f3fb": ["1f9d1-1f3fb-200d-1f680", 48, 32, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u{1F680}"]], "1f3fc": ["1f9d1-1f3fc-200d-1f680", 48, 33, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u{1F680}"]], "1f3fd": ["1f9d1-1f3fd-200d-1f680", 48, 34, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u{1F680}"]], "1f3fe": ["1f9d1-1f3fe-200d-1f680", 48, 35, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u{1F680}"]], "1f3ff": ["1f9d1-1f3ff-200d-1f680", 48, 36, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u{1F680}"]] }, "1f9d1-200d-1f692": { "1f3fb": ["1f9d1-1f3fb-200d-1f692", 48, 38, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u{1F692}"]], "1f3fc": ["1f9d1-1f3fc-200d-1f692", 48, 39, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u{1F692}"]], "1f3fd": ["1f9d1-1f3fd-200d-1f692", 48, 40, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u{1F692}"]], "1f3fe": ["1f9d1-1f3fe-200d-1f692", 48, 41, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u{1F692}"]], "1f3ff": ["1f9d1-1f3ff-200d-1f692", 48, 42, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u{1F692}"]] }, "1f9d1-200d-1f91d-200d-1f9d1": { "1f3fb-1f3fb": ["1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fb", 48, 44, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FB}"]], "1f3fb-1f3fc": ["1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fc", 48, 45, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FC}"]], "1f3fb-1f3fd": ["1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fd", 48, 46, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FD}"]], "1f3fb-1f3fe": ["1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fe", 48, 47, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FE}"]], "1f3fb-1f3ff": ["1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3ff", 48, 48, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FF}"]], "1f3fc-1f3fb": ["1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fb", 48, 49, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FB}"]], "1f3fc-1f3fc": ["1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fc", 48, 50, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FC}"]], "1f3fc-1f3fd": ["1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fd", 48, 51, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FD}"]], "1f3fc-1f3fe": ["1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fe", 48, 52, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FE}"]], "1f3fc-1f3ff": ["1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3ff", 48, 53, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FF}"]], "1f3fd-1f3fb": ["1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fb", 48, 54, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FB}"]], "1f3fd-1f3fc": ["1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fc", 48, 55, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FC}"]], "1f3fd-1f3fd": ["1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fd", 48, 56, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FD}"]], "1f3fd-1f3fe": ["1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fe", 48, 57, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FE}"]], "1f3fd-1f3ff": ["1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3ff", 48, 58, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FF}"]], "1f3fe-1f3fb": ["1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fb", 48, 59, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FB}"]], "1f3fe-1f3fc": ["1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fc", 48, 60, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FC}"]], "1f3fe-1f3fd": ["1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fd", 49, 0, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FD}"]], "1f3fe-1f3fe": ["1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fe", 49, 1, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FE}"]], "1f3fe-1f3ff": ["1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3ff", 49, 2, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FF}"]], "1f3ff-1f3fb": ["1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fb", 49, 3, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FB}"]], "1f3ff-1f3fc": ["1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fc", 49, 4, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FC}"]], "1f3ff-1f3fd": ["1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fd", 49, 5, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FD}"]], "1f3ff-1f3fe": ["1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fe", 49, 6, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FE}"]], "1f3ff-1f3ff": ["1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3ff", 49, 7, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FF}"]] }, "1f9d1-200d-1f9af": { "1f3fb": ["1f9d1-1f3fb-200d-1f9af", 49, 9, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u{1F9AF}"]], "1f3fc": ["1f9d1-1f3fc-200d-1f9af", 49, 10, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u{1F9AF}"]], "1f3fd": ["1f9d1-1f3fd-200d-1f9af", 49, 11, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u{1F9AF}"]], "1f3fe": ["1f9d1-1f3fe-200d-1f9af", 49, 12, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u{1F9AF}"]], "1f3ff": ["1f9d1-1f3ff-200d-1f9af", 49, 13, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u{1F9AF}"]] }, "1f9d1-200d-1f9b0": { "1f3fb": ["1f9d1-1f3fb-200d-1f9b0", 49, 15, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u{1F9B0}"]], "1f3fc": ["1f9d1-1f3fc-200d-1f9b0", 49, 16, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u{1F9B0}"]], "1f3fd": ["1f9d1-1f3fd-200d-1f9b0", 49, 17, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u{1F9B0}"]], "1f3fe": ["1f9d1-1f3fe-200d-1f9b0", 49, 18, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u{1F9B0}"]], "1f3ff": ["1f9d1-1f3ff-200d-1f9b0", 49, 19, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u{1F9B0}"]] }, "1f9d1-200d-1f9b1": { "1f3fb": ["1f9d1-1f3fb-200d-1f9b1", 49, 21, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u{1F9B1}"]], "1f3fc": ["1f9d1-1f3fc-200d-1f9b1", 49, 22, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u{1F9B1}"]], "1f3fd": ["1f9d1-1f3fd-200d-1f9b1", 49, 23, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u{1F9B1}"]], "1f3fe": ["1f9d1-1f3fe-200d-1f9b1", 49, 24, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u{1F9B1}"]], "1f3ff": ["1f9d1-1f3ff-200d-1f9b1", 49, 25, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u{1F9B1}"]] }, "1f9d1-200d-1f9b2": { "1f3fb": ["1f9d1-1f3fb-200d-1f9b2", 49, 27, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u{1F9B2}"]], "1f3fc": ["1f9d1-1f3fc-200d-1f9b2", 49, 28, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u{1F9B2}"]], "1f3fd": ["1f9d1-1f3fd-200d-1f9b2", 49, 29, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u{1F9B2}"]], "1f3fe": ["1f9d1-1f3fe-200d-1f9b2", 49, 30, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u{1F9B2}"]], "1f3ff": ["1f9d1-1f3ff-200d-1f9b2", 49, 31, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u{1F9B2}"]] }, "1f9d1-200d-1f9b3": { "1f3fb": ["1f9d1-1f3fb-200d-1f9b3", 49, 33, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u{1F9B3}"]], "1f3fc": ["1f9d1-1f3fc-200d-1f9b3", 49, 34, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u{1F9B3}"]], "1f3fd": ["1f9d1-1f3fd-200d-1f9b3", 49, 35, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u{1F9B3}"]], "1f3fe": ["1f9d1-1f3fe-200d-1f9b3", 49, 36, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u{1F9B3}"]], "1f3ff": ["1f9d1-1f3ff-200d-1f9b3", 49, 37, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u{1F9B3}"]] }, "1f9d1-200d-1f9bc": { "1f3fb": ["1f9d1-1f3fb-200d-1f9bc", 49, 39, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u{1F9BC}"]], "1f3fc": ["1f9d1-1f3fc-200d-1f9bc", 49, 40, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u{1F9BC}"]], "1f3fd": ["1f9d1-1f3fd-200d-1f9bc", 49, 41, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u{1F9BC}"]], "1f3fe": ["1f9d1-1f3fe-200d-1f9bc", 49, 42, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u{1F9BC}"]], "1f3ff": ["1f9d1-1f3ff-200d-1f9bc", 49, 43, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u{1F9BC}"]] }, "1f9d1-200d-1f9bd": { "1f3fb": ["1f9d1-1f3fb-200d-1f9bd", 49, 45, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u{1F9BD}"]], "1f3fc": ["1f9d1-1f3fc-200d-1f9bd", 49, 46, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u{1F9BD}"]], "1f3fd": ["1f9d1-1f3fd-200d-1f9bd", 49, 47, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u{1F9BD}"]], "1f3fe": ["1f9d1-1f3fe-200d-1f9bd", 49, 48, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u{1F9BD}"]], "1f3ff": ["1f9d1-1f3ff-200d-1f9bd", 49, 49, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u{1F9BD}"]] }, "1f9d1-200d-2695-fe0f": { "1f3fb": ["1f9d1-1f3fb-200d-2695-fe0f", 49, 51, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u2695\uFE0F"]], "1f3fc": ["1f9d1-1f3fc-200d-2695-fe0f", 49, 52, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u2695\uFE0F"]], "1f3fd": ["1f9d1-1f3fd-200d-2695-fe0f", 49, 53, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u2695\uFE0F"]], "1f3fe": ["1f9d1-1f3fe-200d-2695-fe0f", 49, 54, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u2695\uFE0F"]], "1f3ff": ["1f9d1-1f3ff-200d-2695-fe0f", 49, 55, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u2695\uFE0F"]] }, "1f9d1-200d-2696-fe0f": { "1f3fb": ["1f9d1-1f3fb-200d-2696-fe0f", 49, 57, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u2696\uFE0F"]], "1f3fc": ["1f9d1-1f3fc-200d-2696-fe0f", 49, 58, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u2696\uFE0F"]], "1f3fd": ["1f9d1-1f3fd-200d-2696-fe0f", 49, 59, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u2696\uFE0F"]], "1f3fe": ["1f9d1-1f3fe-200d-2696-fe0f", 49, 60, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u2696\uFE0F"]], "1f3ff": ["1f9d1-1f3ff-200d-2696-fe0f", 50, 0, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u2696\uFE0F"]] }, "1f9d1-200d-2708-fe0f": { "1f3fb": ["1f9d1-1f3fb-200d-2708-fe0f", 50, 2, 15, ["\u{1F9D1}\u{1F3FB}\u200D\u2708\uFE0F"]], "1f3fc": ["1f9d1-1f3fc-200d-2708-fe0f", 50, 3, 15, ["\u{1F9D1}\u{1F3FC}\u200D\u2708\uFE0F"]], "1f3fd": ["1f9d1-1f3fd-200d-2708-fe0f", 50, 4, 15, ["\u{1F9D1}\u{1F3FD}\u200D\u2708\uFE0F"]], "1f3fe": ["1f9d1-1f3fe-200d-2708-fe0f", 50, 5, 15, ["\u{1F9D1}\u{1F3FE}\u200D\u2708\uFE0F"]], "1f3ff": ["1f9d1-1f3ff-200d-2708-fe0f", 50, 6, 15, ["\u{1F9D1}\u{1F3FF}\u200D\u2708\uFE0F"]] }, "1f9d1": { "1f3fb": ["1f9d1-1f3fb", 50, 8, 15, ["\u{1F9D1}\u{1F3FB}"]], "1f3fc": ["1f9d1-1f3fc", 50, 9, 15, ["\u{1F9D1}\u{1F3FC}"]], "1f3fd": ["1f9d1-1f3fd", 50, 10, 15, ["\u{1F9D1}\u{1F3FD}"]], "1f3fe": ["1f9d1-1f3fe", 50, 11, 15, ["\u{1F9D1}\u{1F3FE}"]], "1f3ff": ["1f9d1-1f3ff", 50, 12, 15, ["\u{1F9D1}\u{1F3FF}"]] }, "1f9d2": { "1f3fb": ["1f9d2-1f3fb", 50, 14, 15, ["\u{1F9D2}\u{1F3FB}"]], "1f3fc": ["1f9d2-1f3fc", 50, 15, 15, ["\u{1F9D2}\u{1F3FC}"]], "1f3fd": ["1f9d2-1f3fd", 50, 16, 15, ["\u{1F9D2}\u{1F3FD}"]], "1f3fe": ["1f9d2-1f3fe", 50, 17, 15, ["\u{1F9D2}\u{1F3FE}"]], "1f3ff": ["1f9d2-1f3ff", 50, 18, 15, ["\u{1F9D2}\u{1F3FF}"]] }, "1f9d3": { "1f3fb": ["1f9d3-1f3fb", 50, 20, 15, ["\u{1F9D3}\u{1F3FB}"]], "1f3fc": ["1f9d3-1f3fc", 50, 21, 15, ["\u{1F9D3}\u{1F3FC}"]], "1f3fd": ["1f9d3-1f3fd", 50, 22, 15, ["\u{1F9D3}\u{1F3FD}"]], "1f3fe": ["1f9d3-1f3fe", 50, 23, 15, ["\u{1F9D3}\u{1F3FE}"]], "1f3ff": ["1f9d3-1f3ff", 50, 24, 15, ["\u{1F9D3}\u{1F3FF}"]] }, "1f9d4-200d-2640-fe0f": { "1f3fb": ["1f9d4-1f3fb-200d-2640-fe0f", 50, 26, 15, ["\u{1F9D4}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f9d4-1f3fc-200d-2640-fe0f", 50, 27, 15, ["\u{1F9D4}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f9d4-1f3fd-200d-2640-fe0f", 50, 28, 15, ["\u{1F9D4}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f9d4-1f3fe-200d-2640-fe0f", 50, 29, 15, ["\u{1F9D4}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f9d4-1f3ff-200d-2640-fe0f", 50, 30, 15, ["\u{1F9D4}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f9d4-200d-2642-fe0f": { "1f3fb": ["1f9d4-1f3fb-200d-2642-fe0f", 50, 32, 15, ["\u{1F9D4}\u{1F3FB}\u200D\u2642\uFE0F"]], "1f3fc": ["1f9d4-1f3fc-200d-2642-fe0f", 50, 33, 15, ["\u{1F9D4}\u{1F3FC}\u200D\u2642\uFE0F"]], "1f3fd": ["1f9d4-1f3fd-200d-2642-fe0f", 50, 34, 15, ["\u{1F9D4}\u{1F3FD}\u200D\u2642\uFE0F"]], "1f3fe": ["1f9d4-1f3fe-200d-2642-fe0f", 50, 35, 15, ["\u{1F9D4}\u{1F3FE}\u200D\u2642\uFE0F"]], "1f3ff": ["1f9d4-1f3ff-200d-2642-fe0f", 50, 36, 15, ["\u{1F9D4}\u{1F3FF}\u200D\u2642\uFE0F"]] }, "1f9d4": { "1f3fb": ["1f9d4-1f3fb", 50, 38, 15, ["\u{1F9D4}\u{1F3FB}"]], "1f3fc": ["1f9d4-1f3fc", 50, 39, 15, ["\u{1F9D4}\u{1F3FC}"]], "1f3fd": ["1f9d4-1f3fd", 50, 40, 15, ["\u{1F9D4}\u{1F3FD}"]], "1f3fe": ["1f9d4-1f3fe", 50, 41, 15, ["\u{1F9D4}\u{1F3FE}"]], "1f3ff": ["1f9d4-1f3ff", 50, 42, 15, ["\u{1F9D4}\u{1F3FF}"]] }, "1f9d5": { "1f3fb": ["1f9d5-1f3fb", 50, 44, 15, ["\u{1F9D5}\u{1F3FB}"]], "1f3fc": ["1f9d5-1f3fc", 50, 45, 15, ["\u{1F9D5}\u{1F3FC}"]], "1f3fd": ["1f9d5-1f3fd", 50, 46, 15, ["\u{1F9D5}\u{1F3FD}"]], "1f3fe": ["1f9d5-1f3fe", 50, 47, 15, ["\u{1F9D5}\u{1F3FE}"]], "1f3ff": ["1f9d5-1f3ff", 50, 48, 15, ["\u{1F9D5}\u{1F3FF}"]] }, "1f9d6-200d-2640-fe0f": { "1f3fb": ["1f9d6-1f3fb-200d-2640-fe0f", 50, 50, 15, ["\u{1F9D6}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f9d6-1f3fc-200d-2640-fe0f", 50, 51, 15, ["\u{1F9D6}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f9d6-1f3fd-200d-2640-fe0f", 50, 52, 15, ["\u{1F9D6}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f9d6-1f3fe-200d-2640-fe0f", 50, 53, 15, ["\u{1F9D6}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f9d6-1f3ff-200d-2640-fe0f", 50, 54, 15, ["\u{1F9D6}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f9d6-200d-2642-fe0f": { "1f3fb": ["1f9d6-1f3fb-200d-2642-fe0f", 50, 56, 15, ["\u{1F9D6}\u{1F3FB}\u200D\u2642\uFE0F", "\u{1F9D6}\u{1F3FB}"]], "1f3fc": ["1f9d6-1f3fc-200d-2642-fe0f", 50, 57, 15, ["\u{1F9D6}\u{1F3FC}\u200D\u2642\uFE0F", "\u{1F9D6}\u{1F3FC}"]], "1f3fd": ["1f9d6-1f3fd-200d-2642-fe0f", 50, 58, 15, ["\u{1F9D6}\u{1F3FD}\u200D\u2642\uFE0F", "\u{1F9D6}\u{1F3FD}"]], "1f3fe": ["1f9d6-1f3fe-200d-2642-fe0f", 50, 59, 15, ["\u{1F9D6}\u{1F3FE}\u200D\u2642\uFE0F", "\u{1F9D6}\u{1F3FE}"]], "1f3ff": ["1f9d6-1f3ff-200d-2642-fe0f", 50, 60, 15, ["\u{1F9D6}\u{1F3FF}\u200D\u2642\uFE0F", "\u{1F9D6}\u{1F3FF}"]] }, "1f9d7-200d-2640-fe0f": { "1f3fb": ["1f9d7-1f3fb-200d-2640-fe0f", 51, 7, 15, ["\u{1F9D7}\u{1F3FB}\u200D\u2640\uFE0F", "\u{1F9D7}\u{1F3FB}"]], "1f3fc": ["1f9d7-1f3fc-200d-2640-fe0f", 51, 8, 15, ["\u{1F9D7}\u{1F3FC}\u200D\u2640\uFE0F", "\u{1F9D7}\u{1F3FC}"]], "1f3fd": ["1f9d7-1f3fd-200d-2640-fe0f", 51, 9, 15, ["\u{1F9D7}\u{1F3FD}\u200D\u2640\uFE0F", "\u{1F9D7}\u{1F3FD}"]], "1f3fe": ["1f9d7-1f3fe-200d-2640-fe0f", 51, 10, 15, ["\u{1F9D7}\u{1F3FE}\u200D\u2640\uFE0F", "\u{1F9D7}\u{1F3FE}"]], "1f3ff": ["1f9d7-1f3ff-200d-2640-fe0f", 51, 11, 15, ["\u{1F9D7}\u{1F3FF}\u200D\u2640\uFE0F", "\u{1F9D7}\u{1F3FF}"]] }, "1f9d7-200d-2642-fe0f": { "1f3fb": ["1f9d7-1f3fb-200d-2642-fe0f", 51, 13, 15, ["\u{1F9D7}\u{1F3FB}\u200D\u2642\uFE0F"]], "1f3fc": ["1f9d7-1f3fc-200d-2642-fe0f", 51, 14, 15, ["\u{1F9D7}\u{1F3FC}\u200D\u2642\uFE0F"]], "1f3fd": ["1f9d7-1f3fd-200d-2642-fe0f", 51, 15, 15, ["\u{1F9D7}\u{1F3FD}\u200D\u2642\uFE0F"]], "1f3fe": ["1f9d7-1f3fe-200d-2642-fe0f", 51, 16, 15, ["\u{1F9D7}\u{1F3FE}\u200D\u2642\uFE0F"]], "1f3ff": ["1f9d7-1f3ff-200d-2642-fe0f", 51, 17, 15, ["\u{1F9D7}\u{1F3FF}\u200D\u2642\uFE0F"]] }, "1f9d8-200d-2640-fe0f": { "1f3fb": ["1f9d8-1f3fb-200d-2640-fe0f", 51, 25, 15, ["\u{1F9D8}\u{1F3FB}\u200D\u2640\uFE0F", "\u{1F9D8}\u{1F3FB}"]], "1f3fc": ["1f9d8-1f3fc-200d-2640-fe0f", 51, 26, 15, ["\u{1F9D8}\u{1F3FC}\u200D\u2640\uFE0F", "\u{1F9D8}\u{1F3FC}"]], "1f3fd": ["1f9d8-1f3fd-200d-2640-fe0f", 51, 27, 15, ["\u{1F9D8}\u{1F3FD}\u200D\u2640\uFE0F", "\u{1F9D8}\u{1F3FD}"]], "1f3fe": ["1f9d8-1f3fe-200d-2640-fe0f", 51, 28, 15, ["\u{1F9D8}\u{1F3FE}\u200D\u2640\uFE0F", "\u{1F9D8}\u{1F3FE}"]], "1f3ff": ["1f9d8-1f3ff-200d-2640-fe0f", 51, 29, 15, ["\u{1F9D8}\u{1F3FF}\u200D\u2640\uFE0F", "\u{1F9D8}\u{1F3FF}"]] }, "1f9d8-200d-2642-fe0f": { "1f3fb": ["1f9d8-1f3fb-200d-2642-fe0f", 51, 31, 15, ["\u{1F9D8}\u{1F3FB}\u200D\u2642\uFE0F"]], "1f3fc": ["1f9d8-1f3fc-200d-2642-fe0f", 51, 32, 15, ["\u{1F9D8}\u{1F3FC}\u200D\u2642\uFE0F"]], "1f3fd": ["1f9d8-1f3fd-200d-2642-fe0f", 51, 33, 15, ["\u{1F9D8}\u{1F3FD}\u200D\u2642\uFE0F"]], "1f3fe": ["1f9d8-1f3fe-200d-2642-fe0f", 51, 34, 15, ["\u{1F9D8}\u{1F3FE}\u200D\u2642\uFE0F"]], "1f3ff": ["1f9d8-1f3ff-200d-2642-fe0f", 51, 35, 15, ["\u{1F9D8}\u{1F3FF}\u200D\u2642\uFE0F"]] }, "1f9d9-200d-2640-fe0f": { "1f3fb": ["1f9d9-1f3fb-200d-2640-fe0f", 51, 43, 15, ["\u{1F9D9}\u{1F3FB}\u200D\u2640\uFE0F", "\u{1F9D9}\u{1F3FB}"]], "1f3fc": ["1f9d9-1f3fc-200d-2640-fe0f", 51, 44, 15, ["\u{1F9D9}\u{1F3FC}\u200D\u2640\uFE0F", "\u{1F9D9}\u{1F3FC}"]], "1f3fd": ["1f9d9-1f3fd-200d-2640-fe0f", 51, 45, 15, ["\u{1F9D9}\u{1F3FD}\u200D\u2640\uFE0F", "\u{1F9D9}\u{1F3FD}"]], "1f3fe": ["1f9d9-1f3fe-200d-2640-fe0f", 51, 46, 15, ["\u{1F9D9}\u{1F3FE}\u200D\u2640\uFE0F", "\u{1F9D9}\u{1F3FE}"]], "1f3ff": ["1f9d9-1f3ff-200d-2640-fe0f", 51, 47, 15, ["\u{1F9D9}\u{1F3FF}\u200D\u2640\uFE0F", "\u{1F9D9}\u{1F3FF}"]] }, "1f9d9-200d-2642-fe0f": { "1f3fb": ["1f9d9-1f3fb-200d-2642-fe0f", 51, 49, 15, ["\u{1F9D9}\u{1F3FB}\u200D\u2642\uFE0F"]], "1f3fc": ["1f9d9-1f3fc-200d-2642-fe0f", 51, 50, 15, ["\u{1F9D9}\u{1F3FC}\u200D\u2642\uFE0F"]], "1f3fd": ["1f9d9-1f3fd-200d-2642-fe0f", 51, 51, 15, ["\u{1F9D9}\u{1F3FD}\u200D\u2642\uFE0F"]], "1f3fe": ["1f9d9-1f3fe-200d-2642-fe0f", 51, 52, 15, ["\u{1F9D9}\u{1F3FE}\u200D\u2642\uFE0F"]], "1f3ff": ["1f9d9-1f3ff-200d-2642-fe0f", 51, 53, 15, ["\u{1F9D9}\u{1F3FF}\u200D\u2642\uFE0F"]] }, "1f9da-200d-2640-fe0f": { "1f3fb": ["1f9da-1f3fb-200d-2640-fe0f", 52, 0, 15, ["\u{1F9DA}\u{1F3FB}\u200D\u2640\uFE0F", "\u{1F9DA}\u{1F3FB}"]], "1f3fc": ["1f9da-1f3fc-200d-2640-fe0f", 52, 1, 15, ["\u{1F9DA}\u{1F3FC}\u200D\u2640\uFE0F", "\u{1F9DA}\u{1F3FC}"]], "1f3fd": ["1f9da-1f3fd-200d-2640-fe0f", 52, 2, 15, ["\u{1F9DA}\u{1F3FD}\u200D\u2640\uFE0F", "\u{1F9DA}\u{1F3FD}"]], "1f3fe": ["1f9da-1f3fe-200d-2640-fe0f", 52, 3, 15, ["\u{1F9DA}\u{1F3FE}\u200D\u2640\uFE0F", "\u{1F9DA}\u{1F3FE}"]], "1f3ff": ["1f9da-1f3ff-200d-2640-fe0f", 52, 4, 15, ["\u{1F9DA}\u{1F3FF}\u200D\u2640\uFE0F", "\u{1F9DA}\u{1F3FF}"]] }, "1f9da-200d-2642-fe0f": { "1f3fb": ["1f9da-1f3fb-200d-2642-fe0f", 52, 6, 15, ["\u{1F9DA}\u{1F3FB}\u200D\u2642\uFE0F"]], "1f3fc": ["1f9da-1f3fc-200d-2642-fe0f", 52, 7, 15, ["\u{1F9DA}\u{1F3FC}\u200D\u2642\uFE0F"]], "1f3fd": ["1f9da-1f3fd-200d-2642-fe0f", 52, 8, 15, ["\u{1F9DA}\u{1F3FD}\u200D\u2642\uFE0F"]], "1f3fe": ["1f9da-1f3fe-200d-2642-fe0f", 52, 9, 15, ["\u{1F9DA}\u{1F3FE}\u200D\u2642\uFE0F"]], "1f3ff": ["1f9da-1f3ff-200d-2642-fe0f", 52, 10, 15, ["\u{1F9DA}\u{1F3FF}\u200D\u2642\uFE0F"]] }, "1f9db-200d-2640-fe0f": { "1f3fb": ["1f9db-1f3fb-200d-2640-fe0f", 52, 18, 15, ["\u{1F9DB}\u{1F3FB}\u200D\u2640\uFE0F", "\u{1F9DB}\u{1F3FB}"]], "1f3fc": ["1f9db-1f3fc-200d-2640-fe0f", 52, 19, 15, ["\u{1F9DB}\u{1F3FC}\u200D\u2640\uFE0F", "\u{1F9DB}\u{1F3FC}"]], "1f3fd": ["1f9db-1f3fd-200d-2640-fe0f", 52, 20, 15, ["\u{1F9DB}\u{1F3FD}\u200D\u2640\uFE0F", "\u{1F9DB}\u{1F3FD}"]], "1f3fe": ["1f9db-1f3fe-200d-2640-fe0f", 52, 21, 15, ["\u{1F9DB}\u{1F3FE}\u200D\u2640\uFE0F", "\u{1F9DB}\u{1F3FE}"]], "1f3ff": ["1f9db-1f3ff-200d-2640-fe0f", 52, 22, 15, ["\u{1F9DB}\u{1F3FF}\u200D\u2640\uFE0F", "\u{1F9DB}\u{1F3FF}"]] }, "1f9db-200d-2642-fe0f": { "1f3fb": ["1f9db-1f3fb-200d-2642-fe0f", 52, 24, 15, ["\u{1F9DB}\u{1F3FB}\u200D\u2642\uFE0F"]], "1f3fc": ["1f9db-1f3fc-200d-2642-fe0f", 52, 25, 15, ["\u{1F9DB}\u{1F3FC}\u200D\u2642\uFE0F"]], "1f3fd": ["1f9db-1f3fd-200d-2642-fe0f", 52, 26, 15, ["\u{1F9DB}\u{1F3FD}\u200D\u2642\uFE0F"]], "1f3fe": ["1f9db-1f3fe-200d-2642-fe0f", 52, 27, 15, ["\u{1F9DB}\u{1F3FE}\u200D\u2642\uFE0F"]], "1f3ff": ["1f9db-1f3ff-200d-2642-fe0f", 52, 28, 15, ["\u{1F9DB}\u{1F3FF}\u200D\u2642\uFE0F"]] }, "1f9dc-200d-2640-fe0f": { "1f3fb": ["1f9dc-1f3fb-200d-2640-fe0f", 52, 36, 15, ["\u{1F9DC}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f9dc-1f3fc-200d-2640-fe0f", 52, 37, 15, ["\u{1F9DC}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f9dc-1f3fd-200d-2640-fe0f", 52, 38, 15, ["\u{1F9DC}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f9dc-1f3fe-200d-2640-fe0f", 52, 39, 15, ["\u{1F9DC}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f9dc-1f3ff-200d-2640-fe0f", 52, 40, 15, ["\u{1F9DC}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f9dc-200d-2642-fe0f": { "1f3fb": ["1f9dc-1f3fb-200d-2642-fe0f", 52, 42, 15, ["\u{1F9DC}\u{1F3FB}\u200D\u2642\uFE0F", "\u{1F9DC}\u{1F3FB}"]], "1f3fc": ["1f9dc-1f3fc-200d-2642-fe0f", 52, 43, 15, ["\u{1F9DC}\u{1F3FC}\u200D\u2642\uFE0F", "\u{1F9DC}\u{1F3FC}"]], "1f3fd": ["1f9dc-1f3fd-200d-2642-fe0f", 52, 44, 15, ["\u{1F9DC}\u{1F3FD}\u200D\u2642\uFE0F", "\u{1F9DC}\u{1F3FD}"]], "1f3fe": ["1f9dc-1f3fe-200d-2642-fe0f", 52, 45, 15, ["\u{1F9DC}\u{1F3FE}\u200D\u2642\uFE0F", "\u{1F9DC}\u{1F3FE}"]], "1f3ff": ["1f9dc-1f3ff-200d-2642-fe0f", 52, 46, 15, ["\u{1F9DC}\u{1F3FF}\u200D\u2642\uFE0F", "\u{1F9DC}\u{1F3FF}"]] }, "1f9dd-200d-2640-fe0f": { "1f3fb": ["1f9dd-1f3fb-200d-2640-fe0f", 52, 54, 15, ["\u{1F9DD}\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["1f9dd-1f3fc-200d-2640-fe0f", 52, 55, 15, ["\u{1F9DD}\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["1f9dd-1f3fd-200d-2640-fe0f", 52, 56, 15, ["\u{1F9DD}\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["1f9dd-1f3fe-200d-2640-fe0f", 52, 57, 15, ["\u{1F9DD}\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["1f9dd-1f3ff-200d-2640-fe0f", 52, 58, 15, ["\u{1F9DD}\u{1F3FF}\u200D\u2640\uFE0F"]] }, "1f9dd-200d-2642-fe0f": { "1f3fb": ["1f9dd-1f3fb-200d-2642-fe0f", 52, 60, 15, ["\u{1F9DD}\u{1F3FB}\u200D\u2642\uFE0F", "\u{1F9DD}\u{1F3FB}"]], "1f3fc": ["1f9dd-1f3fc-200d-2642-fe0f", 53, 0, 15, ["\u{1F9DD}\u{1F3FC}\u200D\u2642\uFE0F", "\u{1F9DD}\u{1F3FC}"]], "1f3fd": ["1f9dd-1f3fd-200d-2642-fe0f", 53, 1, 15, ["\u{1F9DD}\u{1F3FD}\u200D\u2642\uFE0F", "\u{1F9DD}\u{1F3FD}"]], "1f3fe": ["1f9dd-1f3fe-200d-2642-fe0f", 53, 2, 15, ["\u{1F9DD}\u{1F3FE}\u200D\u2642\uFE0F", "\u{1F9DD}\u{1F3FE}"]], "1f3ff": ["1f9dd-1f3ff-200d-2642-fe0f", 53, 3, 15, ["\u{1F9DD}\u{1F3FF}\u200D\u2642\uFE0F", "\u{1F9DD}\u{1F3FF}"]] }, "1fac3": { "1f3fb": ["1fac3-1f3fb", 54, 60, 15, ["\u{1FAC3}\u{1F3FB}"]], "1f3fc": ["1fac3-1f3fc", 55, 0, 15, ["\u{1FAC3}\u{1F3FC}"]], "1f3fd": ["1fac3-1f3fd", 55, 1, 15, ["\u{1FAC3}\u{1F3FD}"]], "1f3fe": ["1fac3-1f3fe", 55, 2, 15, ["\u{1FAC3}\u{1F3FE}"]], "1f3ff": ["1fac3-1f3ff", 55, 3, 15, ["\u{1FAC3}\u{1F3FF}"]] }, "1fac4": { "1f3fb": ["1fac4-1f3fb", 55, 5, 15, ["\u{1FAC4}\u{1F3FB}"]], "1f3fc": ["1fac4-1f3fc", 55, 6, 15, ["\u{1FAC4}\u{1F3FC}"]], "1f3fd": ["1fac4-1f3fd", 55, 7, 15, ["\u{1FAC4}\u{1F3FD}"]], "1f3fe": ["1fac4-1f3fe", 55, 8, 15, ["\u{1FAC4}\u{1F3FE}"]], "1f3ff": ["1fac4-1f3ff", 55, 9, 15, ["\u{1FAC4}\u{1F3FF}"]] }, "1fac5": { "1f3fb": ["1fac5-1f3fb", 55, 11, 15, ["\u{1FAC5}\u{1F3FB}"]], "1f3fc": ["1fac5-1f3fc", 55, 12, 15, ["\u{1FAC5}\u{1F3FC}"]], "1f3fd": ["1fac5-1f3fd", 55, 13, 15, ["\u{1FAC5}\u{1F3FD}"]], "1f3fe": ["1fac5-1f3fe", 55, 14, 15, ["\u{1FAC5}\u{1F3FE}"]], "1f3ff": ["1fac5-1f3ff", 55, 15, 15, ["\u{1FAC5}\u{1F3FF}"]] }, "1faf0": { "1f3fb": ["1faf0-1f3fb", 55, 40, 15, ["\u{1FAF0}\u{1F3FB}"]], "1f3fc": ["1faf0-1f3fc", 55, 41, 15, ["\u{1FAF0}\u{1F3FC}"]], "1f3fd": ["1faf0-1f3fd", 55, 42, 15, ["\u{1FAF0}\u{1F3FD}"]], "1f3fe": ["1faf0-1f3fe", 55, 43, 15, ["\u{1FAF0}\u{1F3FE}"]], "1f3ff": ["1faf0-1f3ff", 55, 44, 15, ["\u{1FAF0}\u{1F3FF}"]] }, "1faf1": { "1f3fb": ["1faf1-1f3fb", 55, 46, 15, ["\u{1FAF1}\u{1F3FB}"]], "1f3fc": ["1faf1-1f3fc", 55, 47, 15, ["\u{1FAF1}\u{1F3FC}"]], "1f3fd": ["1faf1-1f3fd", 55, 48, 15, ["\u{1FAF1}\u{1F3FD}"]], "1f3fe": ["1faf1-1f3fe", 55, 49, 15, ["\u{1FAF1}\u{1F3FE}"]], "1f3ff": ["1faf1-1f3ff", 55, 50, 15, ["\u{1FAF1}\u{1F3FF}"]] }, "1faf2": { "1f3fb": ["1faf2-1f3fb", 55, 52, 15, ["\u{1FAF2}\u{1F3FB}"]], "1f3fc": ["1faf2-1f3fc", 55, 53, 15, ["\u{1FAF2}\u{1F3FC}"]], "1f3fd": ["1faf2-1f3fd", 55, 54, 15, ["\u{1FAF2}\u{1F3FD}"]], "1f3fe": ["1faf2-1f3fe", 55, 55, 15, ["\u{1FAF2}\u{1F3FE}"]], "1f3ff": ["1faf2-1f3ff", 55, 56, 15, ["\u{1FAF2}\u{1F3FF}"]] }, "1faf3": { "1f3fb": ["1faf3-1f3fb", 55, 58, 15, ["\u{1FAF3}\u{1F3FB}"]], "1f3fc": ["1faf3-1f3fc", 55, 59, 15, ["\u{1FAF3}\u{1F3FC}"]], "1f3fd": ["1faf3-1f3fd", 55, 60, 15, ["\u{1FAF3}\u{1F3FD}"]], "1f3fe": ["1faf3-1f3fe", 56, 0, 15, ["\u{1FAF3}\u{1F3FE}"]], "1f3ff": ["1faf3-1f3ff", 56, 1, 15, ["\u{1FAF3}\u{1F3FF}"]] }, "1faf4": { "1f3fb": ["1faf4-1f3fb", 56, 3, 15, ["\u{1FAF4}\u{1F3FB}"]], "1f3fc": ["1faf4-1f3fc", 56, 4, 15, ["\u{1FAF4}\u{1F3FC}"]], "1f3fd": ["1faf4-1f3fd", 56, 5, 15, ["\u{1FAF4}\u{1F3FD}"]], "1f3fe": ["1faf4-1f3fe", 56, 6, 15, ["\u{1FAF4}\u{1F3FE}"]], "1f3ff": ["1faf4-1f3ff", 56, 7, 15, ["\u{1FAF4}\u{1F3FF}"]] }, "1faf5": { "1f3fb": ["1faf5-1f3fb", 56, 9, 15, ["\u{1FAF5}\u{1F3FB}"]], "1f3fc": ["1faf5-1f3fc", 56, 10, 15, ["\u{1FAF5}\u{1F3FC}"]], "1f3fd": ["1faf5-1f3fd", 56, 11, 15, ["\u{1FAF5}\u{1F3FD}"]], "1f3fe": ["1faf5-1f3fe", 56, 12, 15, ["\u{1FAF5}\u{1F3FE}"]], "1f3ff": ["1faf5-1f3ff", 56, 13, 15, ["\u{1FAF5}\u{1F3FF}"]] }, "1faf6": { "1f3fb": ["1faf6-1f3fb", 56, 15, 15, ["\u{1FAF6}\u{1F3FB}"]], "1f3fc": ["1faf6-1f3fc", 56, 16, 15, ["\u{1FAF6}\u{1F3FC}"]], "1f3fd": ["1faf6-1f3fd", 56, 17, 15, ["\u{1FAF6}\u{1F3FD}"]], "1f3fe": ["1faf6-1f3fe", 56, 18, 15, ["\u{1FAF6}\u{1F3FE}"]], "1f3ff": ["1faf6-1f3ff", 56, 19, 15, ["\u{1FAF6}\u{1F3FF}"]] }, "1faf7": { "1f3fb": ["1faf7-1f3fb", 56, 21, 3, ["\u{1FAF7}\u{1F3FB}"]], "1f3fc": ["1faf7-1f3fc", 56, 22, 3, ["\u{1FAF7}\u{1F3FC}"]], "1f3fd": ["1faf7-1f3fd", 56, 23, 3, ["\u{1FAF7}\u{1F3FD}"]], "1f3fe": ["1faf7-1f3fe", 56, 24, 3, ["\u{1FAF7}\u{1F3FE}"]], "1f3ff": ["1faf7-1f3ff", 56, 25, 3, ["\u{1FAF7}\u{1F3FF}"]] }, "1faf8": { "1f3fb": ["1faf8-1f3fb", 56, 27, 3, ["\u{1FAF8}\u{1F3FB}"]], "1f3fc": ["1faf8-1f3fc", 56, 28, 3, ["\u{1FAF8}\u{1F3FC}"]], "1f3fd": ["1faf8-1f3fd", 56, 29, 3, ["\u{1FAF8}\u{1F3FD}"]], "1f3fe": ["1faf8-1f3fe", 56, 30, 3, ["\u{1FAF8}\u{1F3FE}"]], "1f3ff": ["1faf8-1f3ff", 56, 31, 3, ["\u{1FAF8}\u{1F3FF}"]] }, "261d-fe0f": { "1f3fb": ["261d-1f3fb", 57, 21, 15, ["\u261D\u{1F3FB}"]], "1f3fc": ["261d-1f3fc", 57, 22, 15, ["\u261D\u{1F3FC}"]], "1f3fd": ["261d-1f3fd", 57, 23, 15, ["\u261D\u{1F3FD}"]], "1f3fe": ["261d-1f3fe", 57, 24, 15, ["\u261D\u{1F3FE}"]], "1f3ff": ["261d-1f3ff", 57, 25, 15, ["\u261D\u{1F3FF}"]] }, "26f9-fe0f-200d-2640-fe0f": { "1f3fb": ["26f9-1f3fb-200d-2640-fe0f", 58, 35, 15, ["\u26F9\u{1F3FB}\u200D\u2640\uFE0F"]], "1f3fc": ["26f9-1f3fc-200d-2640-fe0f", 58, 36, 15, ["\u26F9\u{1F3FC}\u200D\u2640\uFE0F"]], "1f3fd": ["26f9-1f3fd-200d-2640-fe0f", 58, 37, 15, ["\u26F9\u{1F3FD}\u200D\u2640\uFE0F"]], "1f3fe": ["26f9-1f3fe-200d-2640-fe0f", 58, 38, 15, ["\u26F9\u{1F3FE}\u200D\u2640\uFE0F"]], "1f3ff": ["26f9-1f3ff-200d-2640-fe0f", 58, 39, 15, ["\u26F9\u{1F3FF}\u200D\u2640\uFE0F"]] }, "26f9-fe0f-200d-2642-fe0f": { "1f3fb": ["26f9-1f3fb-200d-2642-fe0f", 58, 41, 15, ["\u26F9\u{1F3FB}\u200D\u2642\uFE0F", "\u26F9\u{1F3FB}"]], "1f3fc": ["26f9-1f3fc-200d-2642-fe0f", 58, 42, 15, ["\u26F9\u{1F3FC}\u200D\u2642\uFE0F", "\u26F9\u{1F3FC}"]], "1f3fd": ["26f9-1f3fd-200d-2642-fe0f", 58, 43, 15, ["\u26F9\u{1F3FD}\u200D\u2642\uFE0F", "\u26F9\u{1F3FD}"]], "1f3fe": ["26f9-1f3fe-200d-2642-fe0f", 58, 44, 15, ["\u26F9\u{1F3FE}\u200D\u2642\uFE0F", "\u26F9\u{1F3FE}"]], "1f3ff": ["26f9-1f3ff-200d-2642-fe0f", 58, 45, 15, ["\u26F9\u{1F3FF}\u200D\u2642\uFE0F", "\u26F9\u{1F3FF}"]] }, "270a": { "1f3fb": ["270a-1f3fb", 58, 59, 15, ["\u270A\u{1F3FB}"]], "1f3fc": ["270a-1f3fc", 58, 60, 15, ["\u270A\u{1F3FC}"]], "1f3fd": ["270a-1f3fd", 59, 0, 15, ["\u270A\u{1F3FD}"]], "1f3fe": ["270a-1f3fe", 59, 1, 15, ["\u270A\u{1F3FE}"]], "1f3ff": ["270a-1f3ff", 59, 2, 15, ["\u270A\u{1F3FF}"]] }, "270b": { "1f3fb": ["270b-1f3fb", 59, 4, 15, ["\u270B\u{1F3FB}"]], "1f3fc": ["270b-1f3fc", 59, 5, 15, ["\u270B\u{1F3FC}"]], "1f3fd": ["270b-1f3fd", 59, 6, 15, ["\u270B\u{1F3FD}"]], "1f3fe": ["270b-1f3fe", 59, 7, 15, ["\u270B\u{1F3FE}"]], "1f3ff": ["270b-1f3ff", 59, 8, 15, ["\u270B\u{1F3FF}"]] }, "270c-fe0f": { "1f3fb": ["270c-1f3fb", 59, 10, 15, ["\u270C\u{1F3FB}"]], "1f3fc": ["270c-1f3fc", 59, 11, 15, ["\u270C\u{1F3FC}"]], "1f3fd": ["270c-1f3fd", 59, 12, 15, ["\u270C\u{1F3FD}"]], "1f3fe": ["270c-1f3fe", 59, 13, 15, ["\u270C\u{1F3FE}"]], "1f3ff": ["270c-1f3ff", 59, 14, 15, ["\u270C\u{1F3FF}"]] }, "270d-fe0f": { "1f3fb": ["270d-1f3fb", 59, 16, 15, ["\u270D\u{1F3FB}"]], "1f3fc": ["270d-1f3fc", 59, 17, 15, ["\u270D\u{1F3FC}"]], "1f3fd": ["270d-1f3fd", 59, 18, 15, ["\u270D\u{1F3FD}"]], "1f3fe": ["270d-1f3fe", 59, 19, 15, ["\u270D\u{1F3FE}"]], "1f3ff": ["270d-1f3ff", 59, 20, 15, ["\u270D\u{1F3FF}"]] } }; emoji2.prototype.obsoletes_data = { "1f3c3-200d-2642-fe0f": ["1f3c3", 8, 26, 15], "1f3c3-1f3fb-200d-2642-fe0f": ["1f3c3-1f3fb", 8, 27, 15], "1f3c3-1f3fc-200d-2642-fe0f": ["1f3c3-1f3fc", 8, 28, 15], "1f3c3-1f3fd-200d-2642-fe0f": ["1f3c3-1f3fd", 8, 29, 15], "1f3c3-1f3fe-200d-2642-fe0f": ["1f3c3-1f3fe", 8, 30, 15], "1f3c3-1f3ff-200d-2642-fe0f": ["1f3c3-1f3ff", 8, 31, 15], "1f3c4-200d-2642-fe0f": ["1f3c4", 8, 44, 15], "1f3c4-1f3fb-200d-2642-fe0f": ["1f3c4-1f3fb", 8, 45, 15], "1f3c4-1f3fc-200d-2642-fe0f": ["1f3c4-1f3fc", 8, 46, 15], "1f3c4-1f3fd-200d-2642-fe0f": ["1f3c4-1f3fd", 8, 47, 15], "1f3c4-1f3fe-200d-2642-fe0f": ["1f3c4-1f3fe", 8, 48, 15], "1f3c4-1f3ff-200d-2642-fe0f": ["1f3c4-1f3ff", 8, 49, 15], "1f3ca-200d-2642-fe0f": ["1f3ca", 9, 11, 15], "1f3ca-1f3fb-200d-2642-fe0f": ["1f3ca-1f3fb", 9, 12, 15], "1f3ca-1f3fc-200d-2642-fe0f": ["1f3ca-1f3fc", 9, 13, 15], "1f3ca-1f3fd-200d-2642-fe0f": ["1f3ca-1f3fd", 9, 14, 15], "1f3ca-1f3fe-200d-2642-fe0f": ["1f3ca-1f3fe", 9, 15, 15], "1f3ca-1f3ff-200d-2642-fe0f": ["1f3ca-1f3ff", 9, 16, 15], "1f3cb-fe0f-200d-2642-fe0f": ["1f3cb-fe0f", 9, 29, 15], "1f3cb-1f3fb-200d-2642-fe0f": ["1f3cb-1f3fb", 9, 30, 15], "1f3cb-1f3fc-200d-2642-fe0f": ["1f3cb-1f3fc", 9, 31, 15], "1f3cb-1f3fd-200d-2642-fe0f": ["1f3cb-1f3fd", 9, 32, 15], "1f3cb-1f3fe-200d-2642-fe0f": ["1f3cb-1f3fe", 9, 33, 15], "1f3cb-1f3ff-200d-2642-fe0f": ["1f3cb-1f3ff", 9, 34, 15], "1f3cc-fe0f-200d-2642-fe0f": ["1f3cc-fe0f", 9, 47, 15], "1f3cc-1f3fb-200d-2642-fe0f": ["1f3cc-1f3fb", 9, 48, 15], "1f3cc-1f3fc-200d-2642-fe0f": ["1f3cc-1f3fc", 9, 49, 15], "1f3cc-1f3fd-200d-2642-fe0f": ["1f3cc-1f3fd", 9, 50, 15], "1f3cc-1f3fe-200d-2642-fe0f": ["1f3cc-1f3fe", 9, 51, 15], "1f3cc-1f3ff-200d-2642-fe0f": ["1f3cc-1f3ff", 9, 52, 15], "1f468-200d-1f469-200d-1f466": ["1f46a", 21, 40, 15], "1f46e-200d-2642-fe0f": ["1f46e", 23, 9, 15], "1f46e-1f3fb-200d-2642-fe0f": ["1f46e-1f3fb", 23, 10, 15], "1f46e-1f3fc-200d-2642-fe0f": ["1f46e-1f3fc", 23, 11, 15], "1f46e-1f3fd-200d-2642-fe0f": ["1f46e-1f3fd", 23, 12, 15], "1f46e-1f3fe-200d-2642-fe0f": ["1f46e-1f3fe", 23, 13, 15], "1f46e-1f3ff-200d-2642-fe0f": ["1f46e-1f3ff", 23, 14, 15], "1f46f-200d-2640-fe0f": ["1f46f", 23, 17, 15], "1f471-200d-2642-fe0f": ["1f471", 23, 48, 15], "1f471-1f3fb-200d-2642-fe0f": ["1f471-1f3fb", 23, 49, 15], "1f471-1f3fc-200d-2642-fe0f": ["1f471-1f3fc", 23, 50, 15], "1f471-1f3fd-200d-2642-fe0f": ["1f471-1f3fd", 23, 51, 15], "1f471-1f3fe-200d-2642-fe0f": ["1f471-1f3fe", 23, 52, 15], "1f471-1f3ff-200d-2642-fe0f": ["1f471-1f3ff", 23, 53, 15], "1f473-200d-2642-fe0f": ["1f473", 24, 11, 15], "1f473-1f3fb-200d-2642-fe0f": ["1f473-1f3fb", 24, 12, 15], "1f473-1f3fc-200d-2642-fe0f": ["1f473-1f3fc", 24, 13, 15], "1f473-1f3fd-200d-2642-fe0f": ["1f473-1f3fd", 24, 14, 15], "1f473-1f3fe-200d-2642-fe0f": ["1f473-1f3fe", 24, 15, 15], "1f473-1f3ff-200d-2642-fe0f": ["1f473-1f3ff", 24, 16, 15], "1f477-200d-2642-fe0f": ["1f477", 24, 47, 15], "1f477-1f3fb-200d-2642-fe0f": ["1f477-1f3fb", 24, 48, 15], "1f477-1f3fc-200d-2642-fe0f": ["1f477-1f3fc", 24, 49, 15], "1f477-1f3fd-200d-2642-fe0f": ["1f477-1f3fd", 24, 50, 15], "1f477-1f3fe-200d-2642-fe0f": ["1f477-1f3fe", 24, 51, 15], "1f477-1f3ff-200d-2642-fe0f": ["1f477-1f3ff", 24, 52, 15], "1f481-200d-2640-fe0f": ["1f481", 25, 23, 15], "1f481-1f3fb-200d-2640-fe0f": ["1f481-1f3fb", 25, 24, 15], "1f481-1f3fc-200d-2640-fe0f": ["1f481-1f3fc", 25, 25, 15], "1f481-1f3fd-200d-2640-fe0f": ["1f481-1f3fd", 25, 26, 15], "1f481-1f3fe-200d-2640-fe0f": ["1f481-1f3fe", 25, 27, 15], "1f481-1f3ff-200d-2640-fe0f": ["1f481-1f3ff", 25, 28, 15], "1f482-200d-2642-fe0f": ["1f482", 25, 41, 15], "1f482-1f3fb-200d-2642-fe0f": ["1f482-1f3fb", 25, 42, 15], "1f482-1f3fc-200d-2642-fe0f": ["1f482-1f3fc", 25, 43, 15], "1f482-1f3fd-200d-2642-fe0f": ["1f482-1f3fd", 25, 44, 15], "1f482-1f3fe-200d-2642-fe0f": ["1f482-1f3fe", 25, 45, 15], "1f482-1f3ff-200d-2642-fe0f": ["1f482-1f3ff", 25, 46, 15], "1f486-200d-2640-fe0f": ["1f486", 26, 11, 15], "1f486-1f3fb-200d-2640-fe0f": ["1f486-1f3fb", 26, 12, 15], "1f486-1f3fc-200d-2640-fe0f": ["1f486-1f3fc", 26, 13, 15], "1f486-1f3fd-200d-2640-fe0f": ["1f486-1f3fd", 26, 14, 15], "1f486-1f3fe-200d-2640-fe0f": ["1f486-1f3fe", 26, 15, 15], "1f486-1f3ff-200d-2640-fe0f": ["1f486-1f3ff", 26, 16, 15], "1f487-200d-2640-fe0f": ["1f487", 26, 29, 15], "1f487-1f3fb-200d-2640-fe0f": ["1f487-1f3fb", 26, 30, 15], "1f487-1f3fc-200d-2640-fe0f": ["1f487-1f3fc", 26, 31, 15], "1f487-1f3fd-200d-2640-fe0f": ["1f487-1f3fd", 26, 32, 15], "1f487-1f3fe-200d-2640-fe0f": ["1f487-1f3fe", 26, 33, 15], "1f487-1f3ff-200d-2640-fe0f": ["1f487-1f3ff", 26, 34, 15], "1f575-fe0f-200d-2642-fe0f": ["1f575-fe0f", 31, 17, 15], "1f575-1f3fb-200d-2642-fe0f": ["1f575-1f3fb", 31, 18, 15], "1f575-1f3fc-200d-2642-fe0f": ["1f575-1f3fc", 31, 19, 15], "1f575-1f3fd-200d-2642-fe0f": ["1f575-1f3fd", 31, 20, 15], "1f575-1f3fe-200d-2642-fe0f": ["1f575-1f3fe", 31, 21, 15], "1f575-1f3ff-200d-2642-fe0f": ["1f575-1f3ff", 31, 22, 15], "1f645-200d-2640-fe0f": ["1f645", 33, 44, 15], "1f645-1f3fb-200d-2640-fe0f": ["1f645-1f3fb", 33, 45, 15], "1f645-1f3fc-200d-2640-fe0f": ["1f645-1f3fc", 33, 46, 15], "1f645-1f3fd-200d-2640-fe0f": ["1f645-1f3fd", 33, 47, 15], "1f645-1f3fe-200d-2640-fe0f": ["1f645-1f3fe", 33, 48, 15], "1f645-1f3ff-200d-2640-fe0f": ["1f645-1f3ff", 33, 49, 15], "1f646-200d-2640-fe0f": ["1f646", 34, 1, 15], "1f646-1f3fb-200d-2640-fe0f": ["1f646-1f3fb", 34, 2, 15], "1f646-1f3fc-200d-2640-fe0f": ["1f646-1f3fc", 34, 3, 15], "1f646-1f3fd-200d-2640-fe0f": ["1f646-1f3fd", 34, 4, 15], "1f646-1f3fe-200d-2640-fe0f": ["1f646-1f3fe", 34, 5, 15], "1f646-1f3ff-200d-2640-fe0f": ["1f646-1f3ff", 34, 6, 15], "1f64b-200d-2640-fe0f": ["1f64b", 34, 40, 15], "1f64b-1f3fb-200d-2640-fe0f": ["1f64b-1f3fb", 34, 41, 15], "1f64b-1f3fc-200d-2640-fe0f": ["1f64b-1f3fc", 34, 42, 15], "1f64b-1f3fd-200d-2640-fe0f": ["1f64b-1f3fd", 34, 43, 15], "1f64b-1f3fe-200d-2640-fe0f": ["1f64b-1f3fe", 34, 44, 15], "1f64b-1f3ff-200d-2640-fe0f": ["1f64b-1f3ff", 34, 45, 15], "1f64d-200d-2640-fe0f": ["1f64d", 35, 3, 15], "1f64d-1f3fb-200d-2640-fe0f": ["1f64d-1f3fb", 35, 4, 15], "1f64d-1f3fc-200d-2640-fe0f": ["1f64d-1f3fc", 35, 5, 15], "1f64d-1f3fd-200d-2640-fe0f": ["1f64d-1f3fd", 35, 6, 15], "1f64d-1f3fe-200d-2640-fe0f": ["1f64d-1f3fe", 35, 7, 15], "1f64d-1f3ff-200d-2640-fe0f": ["1f64d-1f3ff", 35, 8, 15], "1f64e-200d-2640-fe0f": ["1f64e", 35, 21, 15], "1f64e-1f3fb-200d-2640-fe0f": ["1f64e-1f3fb", 35, 22, 15], "1f64e-1f3fc-200d-2640-fe0f": ["1f64e-1f3fc", 35, 23, 15], "1f64e-1f3fd-200d-2640-fe0f": ["1f64e-1f3fd", 35, 24, 15], "1f64e-1f3fe-200d-2640-fe0f": ["1f64e-1f3fe", 35, 25, 15], "1f64e-1f3ff-200d-2640-fe0f": ["1f64e-1f3ff", 35, 26, 15], "1f6a3-200d-2642-fe0f": ["1f6a3", 36, 19, 15], "1f6a3-1f3fb-200d-2642-fe0f": ["1f6a3-1f3fb", 36, 20, 15], "1f6a3-1f3fc-200d-2642-fe0f": ["1f6a3-1f3fc", 36, 21, 15], "1f6a3-1f3fd-200d-2642-fe0f": ["1f6a3-1f3fd", 36, 22, 15], "1f6a3-1f3fe-200d-2642-fe0f": ["1f6a3-1f3fe", 36, 23, 15], "1f6a3-1f3ff-200d-2642-fe0f": ["1f6a3-1f3ff", 36, 24, 15], "1f6b4-200d-2642-fe0f": ["1f6b4", 36, 53, 15], "1f6b4-1f3fb-200d-2642-fe0f": ["1f6b4-1f3fb", 36, 54, 15], "1f6b4-1f3fc-200d-2642-fe0f": ["1f6b4-1f3fc", 36, 55, 15], "1f6b4-1f3fd-200d-2642-fe0f": ["1f6b4-1f3fd", 36, 56, 15], "1f6b4-1f3fe-200d-2642-fe0f": ["1f6b4-1f3fe", 36, 57, 15], "1f6b4-1f3ff-200d-2642-fe0f": ["1f6b4-1f3ff", 36, 58, 15], "1f6b5-200d-2642-fe0f": ["1f6b5", 37, 10, 15], "1f6b5-1f3fb-200d-2642-fe0f": ["1f6b5-1f3fb", 37, 11, 15], "1f6b5-1f3fc-200d-2642-fe0f": ["1f6b5-1f3fc", 37, 12, 15], "1f6b5-1f3fd-200d-2642-fe0f": ["1f6b5-1f3fd", 37, 13, 15], "1f6b5-1f3fe-200d-2642-fe0f": ["1f6b5-1f3fe", 37, 14, 15], "1f6b5-1f3ff-200d-2642-fe0f": ["1f6b5-1f3ff", 37, 15, 15], "1f6b6-200d-2642-fe0f": ["1f6b6", 37, 28, 15], "1f6b6-1f3fb-200d-2642-fe0f": ["1f6b6-1f3fb", 37, 29, 15], "1f6b6-1f3fc-200d-2642-fe0f": ["1f6b6-1f3fc", 37, 30, 15], "1f6b6-1f3fd-200d-2642-fe0f": ["1f6b6-1f3fd", 37, 31, 15], "1f6b6-1f3fe-200d-2642-fe0f": ["1f6b6-1f3fe", 37, 32, 15], "1f6b6-1f3ff-200d-2642-fe0f": ["1f6b6-1f3ff", 37, 33, 15], "1f9d6-200d-2642-fe0f": ["1f9d6", 51, 0, 15], "1f9d6-1f3fb-200d-2642-fe0f": ["1f9d6-1f3fb", 51, 1, 15], "1f9d6-1f3fc-200d-2642-fe0f": ["1f9d6-1f3fc", 51, 2, 15], "1f9d6-1f3fd-200d-2642-fe0f": ["1f9d6-1f3fd", 51, 3, 15], "1f9d6-1f3fe-200d-2642-fe0f": ["1f9d6-1f3fe", 51, 4, 15], "1f9d6-1f3ff-200d-2642-fe0f": ["1f9d6-1f3ff", 51, 5, 15], "1f9d7-200d-2640-fe0f": ["1f9d7", 51, 18, 15], "1f9d7-1f3fb-200d-2640-fe0f": ["1f9d7-1f3fb", 51, 19, 15], "1f9d7-1f3fc-200d-2640-fe0f": ["1f9d7-1f3fc", 51, 20, 15], "1f9d7-1f3fd-200d-2640-fe0f": ["1f9d7-1f3fd", 51, 21, 15], "1f9d7-1f3fe-200d-2640-fe0f": ["1f9d7-1f3fe", 51, 22, 15], "1f9d7-1f3ff-200d-2640-fe0f": ["1f9d7-1f3ff", 51, 23, 15], "1f9d8-200d-2640-fe0f": ["1f9d8", 51, 36, 15], "1f9d8-1f3fb-200d-2640-fe0f": ["1f9d8-1f3fb", 51, 37, 15], "1f9d8-1f3fc-200d-2640-fe0f": ["1f9d8-1f3fc", 51, 38, 15], "1f9d8-1f3fd-200d-2640-fe0f": ["1f9d8-1f3fd", 51, 39, 15], "1f9d8-1f3fe-200d-2640-fe0f": ["1f9d8-1f3fe", 51, 40, 15], "1f9d8-1f3ff-200d-2640-fe0f": ["1f9d8-1f3ff", 51, 41, 15], "1f9d9-200d-2640-fe0f": ["1f9d9", 51, 54, 15], "1f9d9-1f3fb-200d-2640-fe0f": ["1f9d9-1f3fb", 51, 55, 15], "1f9d9-1f3fc-200d-2640-fe0f": ["1f9d9-1f3fc", 51, 56, 15], "1f9d9-1f3fd-200d-2640-fe0f": ["1f9d9-1f3fd", 51, 57, 15], "1f9d9-1f3fe-200d-2640-fe0f": ["1f9d9-1f3fe", 51, 58, 15], "1f9d9-1f3ff-200d-2640-fe0f": ["1f9d9-1f3ff", 51, 59, 15], "1f9da-200d-2640-fe0f": ["1f9da", 52, 11, 15], "1f9da-1f3fb-200d-2640-fe0f": ["1f9da-1f3fb", 52, 12, 15], "1f9da-1f3fc-200d-2640-fe0f": ["1f9da-1f3fc", 52, 13, 15], "1f9da-1f3fd-200d-2640-fe0f": ["1f9da-1f3fd", 52, 14, 15], "1f9da-1f3fe-200d-2640-fe0f": ["1f9da-1f3fe", 52, 15, 15], "1f9da-1f3ff-200d-2640-fe0f": ["1f9da-1f3ff", 52, 16, 15], "1f9db-200d-2640-fe0f": ["1f9db", 52, 29, 15], "1f9db-1f3fb-200d-2640-fe0f": ["1f9db-1f3fb", 52, 30, 15], "1f9db-1f3fc-200d-2640-fe0f": ["1f9db-1f3fc", 52, 31, 15], "1f9db-1f3fd-200d-2640-fe0f": ["1f9db-1f3fd", 52, 32, 15], "1f9db-1f3fe-200d-2640-fe0f": ["1f9db-1f3fe", 52, 33, 15], "1f9db-1f3ff-200d-2640-fe0f": ["1f9db-1f3ff", 52, 34, 15], "1f9dc-200d-2642-fe0f": ["1f9dc", 52, 47, 15], "1f9dc-1f3fb-200d-2642-fe0f": ["1f9dc-1f3fb", 52, 48, 15], "1f9dc-1f3fc-200d-2642-fe0f": ["1f9dc-1f3fc", 52, 49, 15], "1f9dc-1f3fd-200d-2642-fe0f": ["1f9dc-1f3fd", 52, 50, 15], "1f9dc-1f3fe-200d-2642-fe0f": ["1f9dc-1f3fe", 52, 51, 15], "1f9dc-1f3ff-200d-2642-fe0f": ["1f9dc-1f3ff", 52, 52, 15], "1f9dd-200d-2642-fe0f": ["1f9dd", 53, 4, 15], "1f9dd-1f3fb-200d-2642-fe0f": ["1f9dd-1f3fb", 53, 5, 15], "1f9dd-1f3fc-200d-2642-fe0f": ["1f9dd-1f3fc", 53, 6, 15], "1f9dd-1f3fd-200d-2642-fe0f": ["1f9dd-1f3fd", 53, 7, 15], "1f9dd-1f3fe-200d-2642-fe0f": ["1f9dd-1f3fe", 53, 8, 15], "1f9dd-1f3ff-200d-2642-fe0f": ["1f9dd-1f3ff", 53, 9, 15], "1f9de-200d-2642-fe0f": ["1f9de", 53, 12, 15], "1f9df-200d-2642-fe0f": ["1f9df", 53, 15, 15], "26f9-fe0f-200d-2642-fe0f": ["26f9-fe0f", 58, 46, 15], "26f9-1f3fb-200d-2642-fe0f": ["26f9-1f3fb", 58, 47, 15], "26f9-1f3fc-200d-2642-fe0f": ["26f9-1f3fc", 58, 48, 15], "26f9-1f3fd-200d-2642-fe0f": ["26f9-1f3fd", 58, 49, 15], "26f9-1f3fe-200d-2642-fe0f": ["26f9-1f3fe", 58, 50, 15], "26f9-1f3ff-200d-2642-fe0f": ["26f9-1f3ff", 58, 51, 15] }; { if (module2.exports) { exports2 = module2.exports = emoji2; } exports2.EmojiConvertor = emoji2; } }).call(function() { return this || (typeof window !== "undefined" ? window : commonjsGlobal); }()); })(emoji, emoji.exports); const utils$d = {}; utils$d.parseText = (message) => { const emoji$1 = new emoji.exports.EmojiConvertor(); emoji$1.replace_mode = "unified"; emoji$1.supports_css = false; let originalText = message; originalText = originalText.replace(//igm, ">"); originalText = originalText.replace(/"/, """).replace(/'/, "'"); originalText = originalText.replace(/\\n/g, "
"); originalText = utils$d.replaceUrlByHtml(originalText); originalText = emoji$1.replace_unified(originalText); return originalText; }; utils$d.replaceUrlByHtml = (text) => { let regExpr = /(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+/igm; const matchingArray = text.match(regExpr); if (Array.isArray(matchingArray) && matchingArray.length > 0) { const newArray = []; for (let i2 = 0; i2 < matchingArray.length; i2++) if (!newArray.includes(matchingArray[i2])) newArray.push(matchingArray[i2]); newArray.forEach((url) => { let httpsRegex = /(?:http(s)?:\/\/)/i; const httpsArray = url.match(httpsRegex); let newUrl = url.replace(httpsRegex, ""); if (!(httpsArray && httpsArray.length > 0 || url.includes("www."))) return; newUrl = `${url.split("&").join("&")}`; url = url.split("?").join("\\?"); const regExpr2 = new RegExp(`${url}`, "igm"); text = text.replace(regExpr2, newUrl); }); } return text; }; const KBPermanentMessages_vue_vue_type_style_index_0_lang = ""; const _sfc_main$f = defineComponent({ computed: { ...mapGetters(["appUUID", "companyUUID", "permanentMessages"]) }, methods: { parseText(message) { return utils$d.parseText(message); } } }); const _hoisted_1$e = { class: "kb-permanent-messages-container kb-my2" }; const _hoisted_2$d = ["innerHTML"]; function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) { return openBlock(), createElementBlock("div", _hoisted_1$e, [ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.permanentMessages, (message) => { return openBlock(), createElementBlock("div", { class: "kb-permanent-message", key: message, innerHTML: _ctx.parseText(message) }, null, 8, _hoisted_2$d); }), 128)) ]); } const KBPermanentMessages = /* @__PURE__ */ _export_sfc$1(_sfc_main$f, [["render", _sfc_render$a]]); //! moment.js //! version : 2.30.1 //! authors : Tim Wood, Iskren Chernev, Moment.js contributors //! license : MIT //! momentjs.com var hookCallback; function hooks() { return hookCallback.apply(null, arguments); } function setHookCallback(callback) { hookCallback = callback; } function isArray$3(input) { return input instanceof Array || Object.prototype.toString.call(input) === "[object Array]"; } function isObject$6(input) { return input != null && Object.prototype.toString.call(input) === "[object Object]"; } function hasOwnProp(a2, b) { return Object.prototype.hasOwnProperty.call(a2, b); } function isObjectEmpty(obj) { if (Object.getOwnPropertyNames) { return Object.getOwnPropertyNames(obj).length === 0; } else { var k; for (k in obj) { if (hasOwnProp(obj, k)) { return false; } } return true; } } function isUndefined$1(input) { return input === void 0; } function isNumber$2(input) { return typeof input === "number" || Object.prototype.toString.call(input) === "[object Number]"; } function isDate$2(input) { return input instanceof Date || Object.prototype.toString.call(input) === "[object Date]"; } function map(arr, fn) { var res = [], i2, arrLen = arr.length; for (i2 = 0; i2 < arrLen; ++i2) { res.push(fn(arr[i2], i2)); } return res; } function extend$1(a2, b) { for (var i2 in b) { if (hasOwnProp(b, i2)) { a2[i2] = b[i2]; } } if (hasOwnProp(b, "toString")) { a2.toString = b.toString; } if (hasOwnProp(b, "valueOf")) { a2.valueOf = b.valueOf; } return a2; } function createUTC(input, format2, locale2, strict) { return createLocalOrUTC(input, format2, locale2, strict, true).utc(); } function defaultParsingFlags() { return { empty: false, unusedTokens: [], unusedInput: [], overflow: -2, charsLeftOver: 0, nullInput: false, invalidEra: null, invalidMonth: null, invalidFormat: false, userInvalidated: false, iso: false, parsedDateParts: [], era: null, meridiem: null, rfc2822: false, weekdayMismatch: false }; } function getParsingFlags(m) { if (m._pf == null) { m._pf = defaultParsingFlags(); } return m._pf; } var some; if (Array.prototype.some) { some = Array.prototype.some; } else { some = function(fun) { var t2 = Object(this), len = t2.length >>> 0, i2; for (i2 = 0; i2 < len; i2++) { if (i2 in t2 && fun.call(this, t2[i2], i2, t2)) { return true; } } return false; }; } function isValid(m) { var flags = null, parsedParts = false, isNowValid = m._d && !isNaN(m._d.getTime()); if (isNowValid) { flags = getParsingFlags(m); parsedParts = some.call(flags.parsedDateParts, function(i2) { return i2 != null; }); isNowValid = flags.overflow < 0 && !flags.empty && !flags.invalidEra && !flags.invalidMonth && !flags.invalidWeekday && !flags.weekdayMismatch && !flags.nullInput && !flags.invalidFormat && !flags.userInvalidated && (!flags.meridiem || flags.meridiem && parsedParts); if (m._strict) { isNowValid = isNowValid && flags.charsLeftOver === 0 && flags.unusedTokens.length === 0 && flags.bigHour === void 0; } } if (Object.isFrozen == null || !Object.isFrozen(m)) { m._isValid = isNowValid; } else { return isNowValid; } return m._isValid; } function createInvalid(flags) { var m = createUTC(NaN); if (flags != null) { extend$1(getParsingFlags(m), flags); } else { getParsingFlags(m).userInvalidated = true; } return m; } var momentProperties = hooks.momentProperties = [], updateInProgress = false; function copyConfig(to2, from2) { var i2, prop, val, momentPropertiesLen = momentProperties.length; if (!isUndefined$1(from2._isAMomentObject)) { to2._isAMomentObject = from2._isAMomentObject; } if (!isUndefined$1(from2._i)) { to2._i = from2._i; } if (!isUndefined$1(from2._f)) { to2._f = from2._f; } if (!isUndefined$1(from2._l)) { to2._l = from2._l; } if (!isUndefined$1(from2._strict)) { to2._strict = from2._strict; } if (!isUndefined$1(from2._tzm)) { to2._tzm = from2._tzm; } if (!isUndefined$1(from2._isUTC)) { to2._isUTC = from2._isUTC; } if (!isUndefined$1(from2._offset)) { to2._offset = from2._offset; } if (!isUndefined$1(from2._pf)) { to2._pf = getParsingFlags(from2); } if (!isUndefined$1(from2._locale)) { to2._locale = from2._locale; } if (momentPropertiesLen > 0) { for (i2 = 0; i2 < momentPropertiesLen; i2++) { prop = momentProperties[i2]; val = from2[prop]; if (!isUndefined$1(val)) { to2[prop] = val; } } } return to2; } function Moment(config) { copyConfig(this, config); this._d = new Date(config._d != null ? config._d.getTime() : NaN); if (!this.isValid()) { this._d = new Date(NaN); } if (updateInProgress === false) { updateInProgress = true; hooks.updateOffset(this); updateInProgress = false; } } function isMoment(obj) { return obj instanceof Moment || obj != null && obj._isAMomentObject != null; } function warn$1(msg) { if (hooks.suppressDeprecationWarnings === false && typeof console !== "undefined" && console.warn) { console.warn("Deprecation warning: " + msg); } } function deprecate(msg, fn) { var firstTime = true; return extend$1(function() { if (hooks.deprecationHandler != null) { hooks.deprecationHandler(null, msg); } if (firstTime) { var args = [], arg, i2, key, argLen = arguments.length; for (i2 = 0; i2 < argLen; i2++) { arg = ""; if (typeof arguments[i2] === "object") { arg += "\n[" + i2 + "] "; for (key in arguments[0]) { if (hasOwnProp(arguments[0], key)) { arg += key + ": " + arguments[0][key] + ", "; } } arg = arg.slice(0, -2); } else { arg = arguments[i2]; } args.push(arg); } warn$1( msg + "\nArguments: " + Array.prototype.slice.call(args).join("") + "\n" + new Error().stack ); firstTime = false; } return fn.apply(this, arguments); }, fn); } var deprecations = {}; function deprecateSimple(name, msg) { if (hooks.deprecationHandler != null) { hooks.deprecationHandler(name, msg); } if (!deprecations[name]) { warn$1(msg); deprecations[name] = true; } } hooks.suppressDeprecationWarnings = false; hooks.deprecationHandler = null; function isFunction$2(input) { return typeof Function !== "undefined" && input instanceof Function || Object.prototype.toString.call(input) === "[object Function]"; } function set(config) { var prop, i2; for (i2 in config) { if (hasOwnProp(config, i2)) { prop = config[i2]; if (isFunction$2(prop)) { this[i2] = prop; } else { this["_" + i2] = prop; } } } this._config = config; this._dayOfMonthOrdinalParseLenient = new RegExp( (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + "|" + /\d{1,2}/.source ); } function mergeConfigs(parentConfig, childConfig) { var res = extend$1({}, parentConfig), prop; for (prop in childConfig) { if (hasOwnProp(childConfig, prop)) { if (isObject$6(parentConfig[prop]) && isObject$6(childConfig[prop])) { res[prop] = {}; extend$1(res[prop], parentConfig[prop]); extend$1(res[prop], childConfig[prop]); } else if (childConfig[prop] != null) { res[prop] = childConfig[prop]; } else { delete res[prop]; } } } for (prop in parentConfig) { if (hasOwnProp(parentConfig, prop) && !hasOwnProp(childConfig, prop) && isObject$6(parentConfig[prop])) { res[prop] = extend$1({}, res[prop]); } } return res; } function Locale(config) { if (config != null) { this.set(config); } } var keys; if (Object.keys) { keys = Object.keys; } else { keys = function(obj) { var i2, res = []; for (i2 in obj) { if (hasOwnProp(obj, i2)) { res.push(i2); } } return res; }; } var defaultCalendar = { sameDay: "[Today at] LT", nextDay: "[Tomorrow at] LT", nextWeek: "dddd [at] LT", lastDay: "[Yesterday at] LT", lastWeek: "[Last] dddd [at] LT", sameElse: "L" }; function calendar(key, mom, now2) { var output = this._calendar[key] || this._calendar["sameElse"]; return isFunction$2(output) ? output.call(mom, now2) : output; } function zeroFill(number2, targetLength, forceSign) { var absNumber = "" + Math.abs(number2), zerosToFill = targetLength - absNumber.length, sign2 = number2 >= 0; return (sign2 ? forceSign ? "+" : "" : "-") + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; } var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, formatFunctions = {}, formatTokenFunctions = {}; function addFormatToken(token2, padded, ordinal2, callback) { var func = callback; if (typeof callback === "string") { func = function() { return this[callback](); }; } if (token2) { formatTokenFunctions[token2] = func; } if (padded) { formatTokenFunctions[padded[0]] = function() { return zeroFill(func.apply(this, arguments), padded[1], padded[2]); }; } if (ordinal2) { formatTokenFunctions[ordinal2] = function() { return this.localeData().ordinal( func.apply(this, arguments), token2 ); }; } } function removeFormattingTokens(input) { if (input.match(/\[[\s\S]/)) { return input.replace(/^\[|\]$/g, ""); } return input.replace(/\\/g, ""); } function makeFormatFunction(format2) { var array = format2.match(formattingTokens), i2, length; for (i2 = 0, length = array.length; i2 < length; i2++) { if (formatTokenFunctions[array[i2]]) { array[i2] = formatTokenFunctions[array[i2]]; } else { array[i2] = removeFormattingTokens(array[i2]); } } return function(mom) { var output = "", i3; for (i3 = 0; i3 < length; i3++) { output += isFunction$2(array[i3]) ? array[i3].call(mom, format2) : array[i3]; } return output; }; } function formatMoment(m, format2) { if (!m.isValid()) { return m.localeData().invalidDate(); } format2 = expandFormat(format2, m.localeData()); formatFunctions[format2] = formatFunctions[format2] || makeFormatFunction(format2); return formatFunctions[format2](m); } function expandFormat(format2, locale2) { var i2 = 5; function replaceLongDateFormatTokens(input) { return locale2.longDateFormat(input) || input; } localFormattingTokens.lastIndex = 0; while (i2 >= 0 && localFormattingTokens.test(format2)) { format2 = format2.replace( localFormattingTokens, replaceLongDateFormatTokens ); localFormattingTokens.lastIndex = 0; i2 -= 1; } return format2; } var defaultLongDateFormat = { LTS: "h:mm:ss A", LT: "h:mm A", L: "MM/DD/YYYY", LL: "MMMM D, YYYY", LLL: "MMMM D, YYYY h:mm A", LLLL: "dddd, MMMM D, YYYY h:mm A" }; function longDateFormat(key) { var format2 = this._longDateFormat[key], formatUpper = this._longDateFormat[key.toUpperCase()]; if (format2 || !formatUpper) { return format2; } this._longDateFormat[key] = formatUpper.match(formattingTokens).map(function(tok) { if (tok === "MMMM" || tok === "MM" || tok === "DD" || tok === "dddd") { return tok.slice(1); } return tok; }).join(""); return this._longDateFormat[key]; } var defaultInvalidDate = "Invalid date"; function invalidDate() { return this._invalidDate; } var defaultOrdinal = "%d", defaultDayOfMonthOrdinalParse = /\d{1,2}/; function ordinal(number2) { return this._ordinal.replace("%d", number2); } var defaultRelativeTime = { future: "in %s", past: "%s ago", s: "a few seconds", ss: "%d seconds", m: "a minute", mm: "%d minutes", h: "an hour", hh: "%d hours", d: "a day", dd: "%d days", w: "a week", ww: "%d weeks", M: "a month", MM: "%d months", y: "a year", yy: "%d years" }; function relativeTime(number2, withoutSuffix, string, isFuture) { var output = this._relativeTime[string]; return isFunction$2(output) ? output(number2, withoutSuffix, string, isFuture) : output.replace(/%d/i, number2); } function pastFuture(diff2, output) { var format2 = this._relativeTime[diff2 > 0 ? "future" : "past"]; return isFunction$2(format2) ? format2(output) : format2.replace(/%s/i, output); } var aliases = { D: "date", dates: "date", date: "date", d: "day", days: "day", day: "day", e: "weekday", weekdays: "weekday", weekday: "weekday", E: "isoWeekday", isoweekdays: "isoWeekday", isoweekday: "isoWeekday", DDD: "dayOfYear", dayofyears: "dayOfYear", dayofyear: "dayOfYear", h: "hour", hours: "hour", hour: "hour", ms: "millisecond", milliseconds: "millisecond", millisecond: "millisecond", m: "minute", minutes: "minute", minute: "minute", M: "month", months: "month", month: "month", Q: "quarter", quarters: "quarter", quarter: "quarter", s: "second", seconds: "second", second: "second", gg: "weekYear", weekyears: "weekYear", weekyear: "weekYear", GG: "isoWeekYear", isoweekyears: "isoWeekYear", isoweekyear: "isoWeekYear", w: "week", weeks: "week", week: "week", W: "isoWeek", isoweeks: "isoWeek", isoweek: "isoWeek", y: "year", years: "year", year: "year" }; function normalizeUnits(units) { return typeof units === "string" ? aliases[units] || aliases[units.toLowerCase()] : void 0; } function normalizeObjectUnits(inputObject) { var normalizedInput = {}, normalizedProp, prop; for (prop in inputObject) { if (hasOwnProp(inputObject, prop)) { normalizedProp = normalizeUnits(prop); if (normalizedProp) { normalizedInput[normalizedProp] = inputObject[prop]; } } } return normalizedInput; } var priorities = { date: 9, day: 11, weekday: 11, isoWeekday: 11, dayOfYear: 4, hour: 13, millisecond: 16, minute: 14, month: 8, quarter: 7, second: 15, weekYear: 1, isoWeekYear: 1, week: 5, isoWeek: 5, year: 1 }; function getPrioritizedUnits(unitsObj) { var units = [], u2; for (u2 in unitsObj) { if (hasOwnProp(unitsObj, u2)) { units.push({ unit: u2, priority: priorities[u2] }); } } units.sort(function(a2, b) { return a2.priority - b.priority; }); return units; } var match1 = /\d/, match2 = /\d\d/, match3 = /\d{3}/, match4 = /\d{4}/, match6 = /[+-]?\d{6}/, match1to2 = /\d\d?/, match3to4 = /\d\d\d\d?/, match5to6 = /\d\d\d\d\d\d?/, match1to3 = /\d{1,3}/, match1to4 = /\d{1,4}/, match1to6 = /[+-]?\d{1,6}/, matchUnsigned = /\d+/, matchSigned = /[+-]?\d+/, matchOffset = /Z|[+-]\d\d:?\d\d/gi, matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i, match1to2NoLeadingZero = /^[1-9]\d?/, match1to2HasZero = /^([1-9]\d|\d)/, regexes; regexes = {}; function addRegexToken(token2, regex, strictRegex) { regexes[token2] = isFunction$2(regex) ? regex : function(isStrict, localeData2) { return isStrict && strictRegex ? strictRegex : regex; }; } function getParseRegexForToken(token2, config) { if (!hasOwnProp(regexes, token2)) { return new RegExp(unescapeFormat(token2)); } return regexes[token2](config._strict, config._locale); } function unescapeFormat(s) { return regexEscape( s.replace("\\", "").replace( /\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function(matched, p1, p2, p3, p4) { return p1 || p2 || p3 || p4; } ) ); } function regexEscape(s) { return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"); } function absFloor(number2) { if (number2 < 0) { return Math.ceil(number2) || 0; } else { return Math.floor(number2); } } function toInt(argumentForCoercion) { var coercedNumber = +argumentForCoercion, value = 0; if (coercedNumber !== 0 && isFinite(coercedNumber)) { value = absFloor(coercedNumber); } return value; } var tokens = {}; function addParseToken(token2, callback) { var i2, func = callback, tokenLen; if (typeof token2 === "string") { token2 = [token2]; } if (isNumber$2(callback)) { func = function(input, array) { array[callback] = toInt(input); }; } tokenLen = token2.length; for (i2 = 0; i2 < tokenLen; i2++) { tokens[token2[i2]] = func; } } function addWeekParseToken(token2, callback) { addParseToken(token2, function(input, array, config, token3) { config._w = config._w || {}; callback(input, config._w, config, token3); }); } function addTimeToArrayFromToken(token2, input, config) { if (input != null && hasOwnProp(tokens, token2)) { tokens[token2](input, config._a, config, token2); } } function isLeapYear(year) { return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0; } var YEAR = 0, MONTH = 1, DATE = 2, HOUR = 3, MINUTE = 4, SECOND = 5, MILLISECOND = 6, WEEK = 7, WEEKDAY = 8; addFormatToken("Y", 0, 0, function() { var y = this.year(); return y <= 9999 ? zeroFill(y, 4) : "+" + y; }); addFormatToken(0, ["YY", 2], 0, function() { return this.year() % 100; }); addFormatToken(0, ["YYYY", 4], 0, "year"); addFormatToken(0, ["YYYYY", 5], 0, "year"); addFormatToken(0, ["YYYYYY", 6, true], 0, "year"); addRegexToken("Y", matchSigned); addRegexToken("YY", match1to2, match2); addRegexToken("YYYY", match1to4, match4); addRegexToken("YYYYY", match1to6, match6); addRegexToken("YYYYYY", match1to6, match6); addParseToken(["YYYYY", "YYYYYY"], YEAR); addParseToken("YYYY", function(input, array) { array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); }); addParseToken("YY", function(input, array) { array[YEAR] = hooks.parseTwoDigitYear(input); }); addParseToken("Y", function(input, array) { array[YEAR] = parseInt(input, 10); }); function daysInYear(year) { return isLeapYear(year) ? 366 : 365; } hooks.parseTwoDigitYear = function(input) { return toInt(input) + (toInt(input) > 68 ? 1900 : 2e3); }; var getSetYear = makeGetSet("FullYear", true); function getIsLeapYear() { return isLeapYear(this.year()); } function makeGetSet(unit, keepTime) { return function(value) { if (value != null) { set$1(this, unit, value); hooks.updateOffset(this, keepTime); return this; } else { return get(this, unit); } }; } function get(mom, unit) { if (!mom.isValid()) { return NaN; } var d = mom._d, isUTC = mom._isUTC; switch (unit) { case "Milliseconds": return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds(); case "Seconds": return isUTC ? d.getUTCSeconds() : d.getSeconds(); case "Minutes": return isUTC ? d.getUTCMinutes() : d.getMinutes(); case "Hours": return isUTC ? d.getUTCHours() : d.getHours(); case "Date": return isUTC ? d.getUTCDate() : d.getDate(); case "Day": return isUTC ? d.getUTCDay() : d.getDay(); case "Month": return isUTC ? d.getUTCMonth() : d.getMonth(); case "FullYear": return isUTC ? d.getUTCFullYear() : d.getFullYear(); default: return NaN; } } function set$1(mom, unit, value) { var d, isUTC, year, month, date; if (!mom.isValid() || isNaN(value)) { return; } d = mom._d; isUTC = mom._isUTC; switch (unit) { case "Milliseconds": return void (isUTC ? d.setUTCMilliseconds(value) : d.setMilliseconds(value)); case "Seconds": return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value)); case "Minutes": return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value)); case "Hours": return void (isUTC ? d.setUTCHours(value) : d.setHours(value)); case "Date": return void (isUTC ? d.setUTCDate(value) : d.setDate(value)); case "FullYear": break; default: return; } year = value; month = mom.month(); date = mom.date(); date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date; void (isUTC ? d.setUTCFullYear(year, month, date) : d.setFullYear(year, month, date)); } function stringGet(units) { units = normalizeUnits(units); if (isFunction$2(this[units])) { return this[units](); } return this; } function stringSet(units, value) { if (typeof units === "object") { units = normalizeObjectUnits(units); var prioritized = getPrioritizedUnits(units), i2, prioritizedLen = prioritized.length; for (i2 = 0; i2 < prioritizedLen; i2++) { this[prioritized[i2].unit](units[prioritized[i2].unit]); } } else { units = normalizeUnits(units); if (isFunction$2(this[units])) { return this[units](value); } } return this; } function mod(n2, x) { return (n2 % x + x) % x; } var indexOf; if (Array.prototype.indexOf) { indexOf = Array.prototype.indexOf; } else { indexOf = function(o2) { var i2; for (i2 = 0; i2 < this.length; ++i2) { if (this[i2] === o2) { return i2; } } return -1; }; } function daysInMonth(year, month) { if (isNaN(year) || isNaN(month)) { return NaN; } var modMonth = mod(month, 12); year += (month - modMonth) / 12; return modMonth === 1 ? isLeapYear(year) ? 29 : 28 : 31 - modMonth % 7 % 2; } addFormatToken("M", ["MM", 2], "Mo", function() { return this.month() + 1; }); addFormatToken("MMM", 0, 0, function(format2) { return this.localeData().monthsShort(this, format2); }); addFormatToken("MMMM", 0, 0, function(format2) { return this.localeData().months(this, format2); }); addRegexToken("M", match1to2, match1to2NoLeadingZero); addRegexToken("MM", match1to2, match2); addRegexToken("MMM", function(isStrict, locale2) { return locale2.monthsShortRegex(isStrict); }); addRegexToken("MMMM", function(isStrict, locale2) { return locale2.monthsRegex(isStrict); }); addParseToken(["M", "MM"], function(input, array) { array[MONTH] = toInt(input) - 1; }); addParseToken(["MMM", "MMMM"], function(input, array, config, token2) { var month = config._locale.monthsParse(input, token2, config._strict); if (month != null) { array[MONTH] = month; } else { getParsingFlags(config).invalidMonth = input; } }); var defaultLocaleMonths = "January_February_March_April_May_June_July_August_September_October_November_December".split( "_" ), defaultLocaleMonthsShort = "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"), MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, defaultMonthsShortRegex = matchWord, defaultMonthsRegex = matchWord; function localeMonths(m, format2) { if (!m) { return isArray$3(this._months) ? this._months : this._months["standalone"]; } return isArray$3(this._months) ? this._months[m.month()] : this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format2) ? "format" : "standalone"][m.month()]; } function localeMonthsShort(m, format2) { if (!m) { return isArray$3(this._monthsShort) ? this._monthsShort : this._monthsShort["standalone"]; } return isArray$3(this._monthsShort) ? this._monthsShort[m.month()] : this._monthsShort[MONTHS_IN_FORMAT.test(format2) ? "format" : "standalone"][m.month()]; } function handleStrictParse(monthName, format2, strict) { var i2, ii, mom, llc = monthName.toLocaleLowerCase(); if (!this._monthsParse) { this._monthsParse = []; this._longMonthsParse = []; this._shortMonthsParse = []; for (i2 = 0; i2 < 12; ++i2) { mom = createUTC([2e3, i2]); this._shortMonthsParse[i2] = this.monthsShort( mom, "" ).toLocaleLowerCase(); this._longMonthsParse[i2] = this.months(mom, "").toLocaleLowerCase(); } } if (strict) { if (format2 === "MMM") { ii = indexOf.call(this._shortMonthsParse, llc); return ii !== -1 ? ii : null; } else { ii = indexOf.call(this._longMonthsParse, llc); return ii !== -1 ? ii : null; } } else { if (format2 === "MMM") { ii = indexOf.call(this._shortMonthsParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._longMonthsParse, llc); return ii !== -1 ? ii : null; } else { ii = indexOf.call(this._longMonthsParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._shortMonthsParse, llc); return ii !== -1 ? ii : null; } } } function localeMonthsParse(monthName, format2, strict) { var i2, mom, regex; if (this._monthsParseExact) { return handleStrictParse.call(this, monthName, format2, strict); } if (!this._monthsParse) { this._monthsParse = []; this._longMonthsParse = []; this._shortMonthsParse = []; } for (i2 = 0; i2 < 12; i2++) { mom = createUTC([2e3, i2]); if (strict && !this._longMonthsParse[i2]) { this._longMonthsParse[i2] = new RegExp( "^" + this.months(mom, "").replace(".", "") + "$", "i" ); this._shortMonthsParse[i2] = new RegExp( "^" + this.monthsShort(mom, "").replace(".", "") + "$", "i" ); } if (!strict && !this._monthsParse[i2]) { regex = "^" + this.months(mom, "") + "|^" + this.monthsShort(mom, ""); this._monthsParse[i2] = new RegExp(regex.replace(".", ""), "i"); } if (strict && format2 === "MMMM" && this._longMonthsParse[i2].test(monthName)) { return i2; } else if (strict && format2 === "MMM" && this._shortMonthsParse[i2].test(monthName)) { return i2; } else if (!strict && this._monthsParse[i2].test(monthName)) { return i2; } } } function setMonth(mom, value) { if (!mom.isValid()) { return mom; } if (typeof value === "string") { if (/^\d+$/.test(value)) { value = toInt(value); } else { value = mom.localeData().monthsParse(value); if (!isNumber$2(value)) { return mom; } } } var month = value, date = mom.date(); date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month)); void (mom._isUTC ? mom._d.setUTCMonth(month, date) : mom._d.setMonth(month, date)); return mom; } function getSetMonth(value) { if (value != null) { setMonth(this, value); hooks.updateOffset(this, true); return this; } else { return get(this, "Month"); } } function getDaysInMonth() { return daysInMonth(this.year(), this.month()); } function monthsShortRegex(isStrict) { if (this._monthsParseExact) { if (!hasOwnProp(this, "_monthsRegex")) { computeMonthsParse.call(this); } if (isStrict) { return this._monthsShortStrictRegex; } else { return this._monthsShortRegex; } } else { if (!hasOwnProp(this, "_monthsShortRegex")) { this._monthsShortRegex = defaultMonthsShortRegex; } return this._monthsShortStrictRegex && isStrict ? this._monthsShortStrictRegex : this._monthsShortRegex; } } function monthsRegex(isStrict) { if (this._monthsParseExact) { if (!hasOwnProp(this, "_monthsRegex")) { computeMonthsParse.call(this); } if (isStrict) { return this._monthsStrictRegex; } else { return this._monthsRegex; } } else { if (!hasOwnProp(this, "_monthsRegex")) { this._monthsRegex = defaultMonthsRegex; } return this._monthsStrictRegex && isStrict ? this._monthsStrictRegex : this._monthsRegex; } } function computeMonthsParse() { function cmpLenRev(a2, b) { return b.length - a2.length; } var shortPieces = [], longPieces = [], mixedPieces = [], i2, mom, shortP, longP; for (i2 = 0; i2 < 12; i2++) { mom = createUTC([2e3, i2]); shortP = regexEscape(this.monthsShort(mom, "")); longP = regexEscape(this.months(mom, "")); shortPieces.push(shortP); longPieces.push(longP); mixedPieces.push(longP); mixedPieces.push(shortP); } shortPieces.sort(cmpLenRev); longPieces.sort(cmpLenRev); mixedPieces.sort(cmpLenRev); this._monthsRegex = new RegExp("^(" + mixedPieces.join("|") + ")", "i"); this._monthsShortRegex = this._monthsRegex; this._monthsStrictRegex = new RegExp( "^(" + longPieces.join("|") + ")", "i" ); this._monthsShortStrictRegex = new RegExp( "^(" + shortPieces.join("|") + ")", "i" ); } function createDate(y, m, d, h2, M, s, ms) { var date; if (y < 100 && y >= 0) { date = new Date(y + 400, m, d, h2, M, s, ms); if (isFinite(date.getFullYear())) { date.setFullYear(y); } } else { date = new Date(y, m, d, h2, M, s, ms); } return date; } function createUTCDate(y) { var date, args; if (y < 100 && y >= 0) { args = Array.prototype.slice.call(arguments); args[0] = y + 400; date = new Date(Date.UTC.apply(null, args)); if (isFinite(date.getUTCFullYear())) { date.setUTCFullYear(y); } } else { date = new Date(Date.UTC.apply(null, arguments)); } return date; } function firstWeekOffset(year, dow, doy) { var fwd = 7 + dow - doy, fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; return -fwdlw + fwd - 1; } function dayOfYearFromWeeks(year, week, weekday, dow, doy) { var localWeekday = (7 + weekday - dow) % 7, weekOffset = firstWeekOffset(year, dow, doy), dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, resYear, resDayOfYear; if (dayOfYear <= 0) { resYear = year - 1; resDayOfYear = daysInYear(resYear) + dayOfYear; } else if (dayOfYear > daysInYear(year)) { resYear = year + 1; resDayOfYear = dayOfYear - daysInYear(year); } else { resYear = year; resDayOfYear = dayOfYear; } return { year: resYear, dayOfYear: resDayOfYear }; } function weekOfYear(mom, dow, doy) { var weekOffset = firstWeekOffset(mom.year(), dow, doy), week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, resWeek, resYear; if (week < 1) { resYear = mom.year() - 1; resWeek = week + weeksInYear(resYear, dow, doy); } else if (week > weeksInYear(mom.year(), dow, doy)) { resWeek = week - weeksInYear(mom.year(), dow, doy); resYear = mom.year() + 1; } else { resYear = mom.year(); resWeek = week; } return { week: resWeek, year: resYear }; } function weeksInYear(year, dow, doy) { var weekOffset = firstWeekOffset(year, dow, doy), weekOffsetNext = firstWeekOffset(year + 1, dow, doy); return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; } addFormatToken("w", ["ww", 2], "wo", "week"); addFormatToken("W", ["WW", 2], "Wo", "isoWeek"); addRegexToken("w", match1to2, match1to2NoLeadingZero); addRegexToken("ww", match1to2, match2); addRegexToken("W", match1to2, match1to2NoLeadingZero); addRegexToken("WW", match1to2, match2); addWeekParseToken( ["w", "ww", "W", "WW"], function(input, week, config, token2) { week[token2.substr(0, 1)] = toInt(input); } ); function localeWeek(mom) { return weekOfYear(mom, this._week.dow, this._week.doy).week; } var defaultLocaleWeek = { dow: 0, doy: 6 }; function localeFirstDayOfWeek() { return this._week.dow; } function localeFirstDayOfYear() { return this._week.doy; } function getSetWeek(input) { var week = this.localeData().week(this); return input == null ? week : this.add((input - week) * 7, "d"); } function getSetISOWeek(input) { var week = weekOfYear(this, 1, 4).week; return input == null ? week : this.add((input - week) * 7, "d"); } addFormatToken("d", 0, "do", "day"); addFormatToken("dd", 0, 0, function(format2) { return this.localeData().weekdaysMin(this, format2); }); addFormatToken("ddd", 0, 0, function(format2) { return this.localeData().weekdaysShort(this, format2); }); addFormatToken("dddd", 0, 0, function(format2) { return this.localeData().weekdays(this, format2); }); addFormatToken("e", 0, 0, "weekday"); addFormatToken("E", 0, 0, "isoWeekday"); addRegexToken("d", match1to2); addRegexToken("e", match1to2); addRegexToken("E", match1to2); addRegexToken("dd", function(isStrict, locale2) { return locale2.weekdaysMinRegex(isStrict); }); addRegexToken("ddd", function(isStrict, locale2) { return locale2.weekdaysShortRegex(isStrict); }); addRegexToken("dddd", function(isStrict, locale2) { return locale2.weekdaysRegex(isStrict); }); addWeekParseToken(["dd", "ddd", "dddd"], function(input, week, config, token2) { var weekday = config._locale.weekdaysParse(input, token2, config._strict); if (weekday != null) { week.d = weekday; } else { getParsingFlags(config).invalidWeekday = input; } }); addWeekParseToken(["d", "e", "E"], function(input, week, config, token2) { week[token2] = toInt(input); }); function parseWeekday(input, locale2) { if (typeof input !== "string") { return input; } if (!isNaN(input)) { return parseInt(input, 10); } input = locale2.weekdaysParse(input); if (typeof input === "number") { return input; } return null; } function parseIsoWeekday(input, locale2) { if (typeof input === "string") { return locale2.weekdaysParse(input) % 7 || 7; } return isNaN(input) ? null : input; } function shiftWeekdays(ws, n2) { return ws.slice(n2, 7).concat(ws.slice(0, n2)); } var defaultLocaleWeekdays = "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), defaultLocaleWeekdaysShort = "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"), defaultLocaleWeekdaysMin = "Su_Mo_Tu_We_Th_Fr_Sa".split("_"), defaultWeekdaysRegex = matchWord, defaultWeekdaysShortRegex = matchWord, defaultWeekdaysMinRegex = matchWord; function localeWeekdays(m, format2) { var weekdays = isArray$3(this._weekdays) ? this._weekdays : this._weekdays[m && m !== true && this._weekdays.isFormat.test(format2) ? "format" : "standalone"]; return m === true ? shiftWeekdays(weekdays, this._week.dow) : m ? weekdays[m.day()] : weekdays; } function localeWeekdaysShort(m) { return m === true ? shiftWeekdays(this._weekdaysShort, this._week.dow) : m ? this._weekdaysShort[m.day()] : this._weekdaysShort; } function localeWeekdaysMin(m) { return m === true ? shiftWeekdays(this._weekdaysMin, this._week.dow) : m ? this._weekdaysMin[m.day()] : this._weekdaysMin; } function handleStrictParse$1(weekdayName, format2, strict) { var i2, ii, mom, llc = weekdayName.toLocaleLowerCase(); if (!this._weekdaysParse) { this._weekdaysParse = []; this._shortWeekdaysParse = []; this._minWeekdaysParse = []; for (i2 = 0; i2 < 7; ++i2) { mom = createUTC([2e3, 1]).day(i2); this._minWeekdaysParse[i2] = this.weekdaysMin( mom, "" ).toLocaleLowerCase(); this._shortWeekdaysParse[i2] = this.weekdaysShort( mom, "" ).toLocaleLowerCase(); this._weekdaysParse[i2] = this.weekdays(mom, "").toLocaleLowerCase(); } } if (strict) { if (format2 === "dddd") { ii = indexOf.call(this._weekdaysParse, llc); return ii !== -1 ? ii : null; } else if (format2 === "ddd") { ii = indexOf.call(this._shortWeekdaysParse, llc); return ii !== -1 ? ii : null; } else { ii = indexOf.call(this._minWeekdaysParse, llc); return ii !== -1 ? ii : null; } } else { if (format2 === "dddd") { ii = indexOf.call(this._weekdaysParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._shortWeekdaysParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._minWeekdaysParse, llc); return ii !== -1 ? ii : null; } else if (format2 === "ddd") { ii = indexOf.call(this._shortWeekdaysParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._weekdaysParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._minWeekdaysParse, llc); return ii !== -1 ? ii : null; } else { ii = indexOf.call(this._minWeekdaysParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._weekdaysParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._shortWeekdaysParse, llc); return ii !== -1 ? ii : null; } } } function localeWeekdaysParse(weekdayName, format2, strict) { var i2, mom, regex; if (this._weekdaysParseExact) { return handleStrictParse$1.call(this, weekdayName, format2, strict); } if (!this._weekdaysParse) { this._weekdaysParse = []; this._minWeekdaysParse = []; this._shortWeekdaysParse = []; this._fullWeekdaysParse = []; } for (i2 = 0; i2 < 7; i2++) { mom = createUTC([2e3, 1]).day(i2); if (strict && !this._fullWeekdaysParse[i2]) { this._fullWeekdaysParse[i2] = new RegExp( "^" + this.weekdays(mom, "").replace(".", "\\.?") + "$", "i" ); this._shortWeekdaysParse[i2] = new RegExp( "^" + this.weekdaysShort(mom, "").replace(".", "\\.?") + "$", "i" ); this._minWeekdaysParse[i2] = new RegExp( "^" + this.weekdaysMin(mom, "").replace(".", "\\.?") + "$", "i" ); } if (!this._weekdaysParse[i2]) { regex = "^" + this.weekdays(mom, "") + "|^" + this.weekdaysShort(mom, "") + "|^" + this.weekdaysMin(mom, ""); this._weekdaysParse[i2] = new RegExp(regex.replace(".", ""), "i"); } if (strict && format2 === "dddd" && this._fullWeekdaysParse[i2].test(weekdayName)) { return i2; } else if (strict && format2 === "ddd" && this._shortWeekdaysParse[i2].test(weekdayName)) { return i2; } else if (strict && format2 === "dd" && this._minWeekdaysParse[i2].test(weekdayName)) { return i2; } else if (!strict && this._weekdaysParse[i2].test(weekdayName)) { return i2; } } } function getSetDayOfWeek(input) { if (!this.isValid()) { return input != null ? this : NaN; } var day = get(this, "Day"); if (input != null) { input = parseWeekday(input, this.localeData()); return this.add(input - day, "d"); } else { return day; } } function getSetLocaleDayOfWeek(input) { if (!this.isValid()) { return input != null ? this : NaN; } var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; return input == null ? weekday : this.add(input - weekday, "d"); } function getSetISODayOfWeek(input) { if (!this.isValid()) { return input != null ? this : NaN; } if (input != null) { var weekday = parseIsoWeekday(input, this.localeData()); return this.day(this.day() % 7 ? weekday : weekday - 7); } else { return this.day() || 7; } } function weekdaysRegex(isStrict) { if (this._weekdaysParseExact) { if (!hasOwnProp(this, "_weekdaysRegex")) { computeWeekdaysParse.call(this); } if (isStrict) { return this._weekdaysStrictRegex; } else { return this._weekdaysRegex; } } else { if (!hasOwnProp(this, "_weekdaysRegex")) { this._weekdaysRegex = defaultWeekdaysRegex; } return this._weekdaysStrictRegex && isStrict ? this._weekdaysStrictRegex : this._weekdaysRegex; } } function weekdaysShortRegex(isStrict) { if (this._weekdaysParseExact) { if (!hasOwnProp(this, "_weekdaysRegex")) { computeWeekdaysParse.call(this); } if (isStrict) { return this._weekdaysShortStrictRegex; } else { return this._weekdaysShortRegex; } } else { if (!hasOwnProp(this, "_weekdaysShortRegex")) { this._weekdaysShortRegex = defaultWeekdaysShortRegex; } return this._weekdaysShortStrictRegex && isStrict ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex; } } function weekdaysMinRegex(isStrict) { if (this._weekdaysParseExact) { if (!hasOwnProp(this, "_weekdaysRegex")) { computeWeekdaysParse.call(this); } if (isStrict) { return this._weekdaysMinStrictRegex; } else { return this._weekdaysMinRegex; } } else { if (!hasOwnProp(this, "_weekdaysMinRegex")) { this._weekdaysMinRegex = defaultWeekdaysMinRegex; } return this._weekdaysMinStrictRegex && isStrict ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex; } } function computeWeekdaysParse() { function cmpLenRev(a2, b) { return b.length - a2.length; } var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [], i2, mom, minp, shortp, longp; for (i2 = 0; i2 < 7; i2++) { mom = createUTC([2e3, 1]).day(i2); minp = regexEscape(this.weekdaysMin(mom, "")); shortp = regexEscape(this.weekdaysShort(mom, "")); longp = regexEscape(this.weekdays(mom, "")); minPieces.push(minp); shortPieces.push(shortp); longPieces.push(longp); mixedPieces.push(minp); mixedPieces.push(shortp); mixedPieces.push(longp); } minPieces.sort(cmpLenRev); shortPieces.sort(cmpLenRev); longPieces.sort(cmpLenRev); mixedPieces.sort(cmpLenRev); this._weekdaysRegex = new RegExp("^(" + mixedPieces.join("|") + ")", "i"); this._weekdaysShortRegex = this._weekdaysRegex; this._weekdaysMinRegex = this._weekdaysRegex; this._weekdaysStrictRegex = new RegExp( "^(" + longPieces.join("|") + ")", "i" ); this._weekdaysShortStrictRegex = new RegExp( "^(" + shortPieces.join("|") + ")", "i" ); this._weekdaysMinStrictRegex = new RegExp( "^(" + minPieces.join("|") + ")", "i" ); } function hFormat() { return this.hours() % 12 || 12; } function kFormat() { return this.hours() || 24; } addFormatToken("H", ["HH", 2], 0, "hour"); addFormatToken("h", ["hh", 2], 0, hFormat); addFormatToken("k", ["kk", 2], 0, kFormat); addFormatToken("hmm", 0, 0, function() { return "" + hFormat.apply(this) + zeroFill(this.minutes(), 2); }); addFormatToken("hmmss", 0, 0, function() { return "" + hFormat.apply(this) + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2); }); addFormatToken("Hmm", 0, 0, function() { return "" + this.hours() + zeroFill(this.minutes(), 2); }); addFormatToken("Hmmss", 0, 0, function() { return "" + this.hours() + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2); }); function meridiem(token2, lowercase) { addFormatToken(token2, 0, 0, function() { return this.localeData().meridiem( this.hours(), this.minutes(), lowercase ); }); } meridiem("a", true); meridiem("A", false); function matchMeridiem(isStrict, locale2) { return locale2._meridiemParse; } addRegexToken("a", matchMeridiem); addRegexToken("A", matchMeridiem); addRegexToken("H", match1to2, match1to2HasZero); addRegexToken("h", match1to2, match1to2NoLeadingZero); addRegexToken("k", match1to2, match1to2NoLeadingZero); addRegexToken("HH", match1to2, match2); addRegexToken("hh", match1to2, match2); addRegexToken("kk", match1to2, match2); addRegexToken("hmm", match3to4); addRegexToken("hmmss", match5to6); addRegexToken("Hmm", match3to4); addRegexToken("Hmmss", match5to6); addParseToken(["H", "HH"], HOUR); addParseToken(["k", "kk"], function(input, array, config) { var kInput = toInt(input); array[HOUR] = kInput === 24 ? 0 : kInput; }); addParseToken(["a", "A"], function(input, array, config) { config._isPm = config._locale.isPM(input); config._meridiem = input; }); addParseToken(["h", "hh"], function(input, array, config) { array[HOUR] = toInt(input); getParsingFlags(config).bigHour = true; }); addParseToken("hmm", function(input, array, config) { var pos = input.length - 2; array[HOUR] = toInt(input.substr(0, pos)); array[MINUTE] = toInt(input.substr(pos)); getParsingFlags(config).bigHour = true; }); addParseToken("hmmss", function(input, array, config) { var pos1 = input.length - 4, pos2 = input.length - 2; array[HOUR] = toInt(input.substr(0, pos1)); array[MINUTE] = toInt(input.substr(pos1, 2)); array[SECOND] = toInt(input.substr(pos2)); getParsingFlags(config).bigHour = true; }); addParseToken("Hmm", function(input, array, config) { var pos = input.length - 2; array[HOUR] = toInt(input.substr(0, pos)); array[MINUTE] = toInt(input.substr(pos)); }); addParseToken("Hmmss", function(input, array, config) { var pos1 = input.length - 4, pos2 = input.length - 2; array[HOUR] = toInt(input.substr(0, pos1)); array[MINUTE] = toInt(input.substr(pos1, 2)); array[SECOND] = toInt(input.substr(pos2)); }); function localeIsPM(input) { return (input + "").toLowerCase().charAt(0) === "p"; } var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i, getSetHour = makeGetSet("Hours", true); function localeMeridiem(hours2, minutes2, isLower) { if (hours2 > 11) { return isLower ? "pm" : "PM"; } else { return isLower ? "am" : "AM"; } } var baseConfig = { calendar: defaultCalendar, longDateFormat: defaultLongDateFormat, invalidDate: defaultInvalidDate, ordinal: defaultOrdinal, dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, relativeTime: defaultRelativeTime, months: defaultLocaleMonths, monthsShort: defaultLocaleMonthsShort, week: defaultLocaleWeek, weekdays: defaultLocaleWeekdays, weekdaysMin: defaultLocaleWeekdaysMin, weekdaysShort: defaultLocaleWeekdaysShort, meridiemParse: defaultLocaleMeridiemParse }; var locales = {}, localeFamilies = {}, globalLocale; function commonPrefix(arr1, arr2) { var i2, minl = Math.min(arr1.length, arr2.length); for (i2 = 0; i2 < minl; i2 += 1) { if (arr1[i2] !== arr2[i2]) { return i2; } } return minl; } function normalizeLocale(key) { return key ? key.toLowerCase().replace("_", "-") : key; } function chooseLocale(names) { var i2 = 0, j, next, locale2, split2; while (i2 < names.length) { split2 = normalizeLocale(names[i2]).split("-"); j = split2.length; next = normalizeLocale(names[i2 + 1]); next = next ? next.split("-") : null; while (j > 0) { locale2 = loadLocale(split2.slice(0, j).join("-")); if (locale2) { return locale2; } if (next && next.length >= j && commonPrefix(split2, next) >= j - 1) { break; } j--; } i2++; } return globalLocale; } function isLocaleNameSane(name) { return !!(name && name.match("^[^/\\\\]*$")); } function loadLocale(name) { var oldLocale = null, aliasedRequire; if (locales[name] === void 0 && typeof module !== "undefined" && module && module.exports && isLocaleNameSane(name)) { try { oldLocale = globalLocale._abbr; aliasedRequire = require; aliasedRequire("./locale/" + name); getSetGlobalLocale(oldLocale); } catch (e2) { locales[name] = null; } } return locales[name]; } function getSetGlobalLocale(key, values) { var data2; if (key) { if (isUndefined$1(values)) { data2 = getLocale$1(key); } else { data2 = defineLocale(key, values); } if (data2) { globalLocale = data2; } else { if (typeof console !== "undefined" && console.warn) { console.warn( "Locale " + key + " not found. Did you forget to load it?" ); } } } return globalLocale._abbr; } function defineLocale(name, config) { if (config !== null) { var locale2, parentConfig = baseConfig; config.abbr = name; if (locales[name] != null) { deprecateSimple( "defineLocaleOverride", "use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info." ); parentConfig = locales[name]._config; } else if (config.parentLocale != null) { if (locales[config.parentLocale] != null) { parentConfig = locales[config.parentLocale]._config; } else { locale2 = loadLocale(config.parentLocale); if (locale2 != null) { parentConfig = locale2._config; } else { if (!localeFamilies[config.parentLocale]) { localeFamilies[config.parentLocale] = []; } localeFamilies[config.parentLocale].push({ name, config }); return null; } } } locales[name] = new Locale(mergeConfigs(parentConfig, config)); if (localeFamilies[name]) { localeFamilies[name].forEach(function(x) { defineLocale(x.name, x.config); }); } getSetGlobalLocale(name); return locales[name]; } else { delete locales[name]; return null; } } function updateLocale(name, config) { if (config != null) { var locale2, tmpLocale, parentConfig = baseConfig; if (locales[name] != null && locales[name].parentLocale != null) { locales[name].set(mergeConfigs(locales[name]._config, config)); } else { tmpLocale = loadLocale(name); if (tmpLocale != null) { parentConfig = tmpLocale._config; } config = mergeConfigs(parentConfig, config); if (tmpLocale == null) { config.abbr = name; } locale2 = new Locale(config); locale2.parentLocale = locales[name]; locales[name] = locale2; } getSetGlobalLocale(name); } else { if (locales[name] != null) { if (locales[name].parentLocale != null) { locales[name] = locales[name].parentLocale; if (name === getSetGlobalLocale()) { getSetGlobalLocale(name); } } else if (locales[name] != null) { delete locales[name]; } } } return locales[name]; } function getLocale$1(key) { var locale2; if (key && key._locale && key._locale._abbr) { key = key._locale._abbr; } if (!key) { return globalLocale; } if (!isArray$3(key)) { locale2 = loadLocale(key); if (locale2) { return locale2; } key = [key]; } return chooseLocale(key); } function listLocales() { return keys(locales); } function checkOverflow(m) { var overflow, a2 = m._a; if (a2 && getParsingFlags(m).overflow === -2) { overflow = a2[MONTH] < 0 || a2[MONTH] > 11 ? MONTH : a2[DATE] < 1 || a2[DATE] > daysInMonth(a2[YEAR], a2[MONTH]) ? DATE : a2[HOUR] < 0 || a2[HOUR] > 24 || a2[HOUR] === 24 && (a2[MINUTE] !== 0 || a2[SECOND] !== 0 || a2[MILLISECOND] !== 0) ? HOUR : a2[MINUTE] < 0 || a2[MINUTE] > 59 ? MINUTE : a2[SECOND] < 0 || a2[SECOND] > 59 ? SECOND : a2[MILLISECOND] < 0 || a2[MILLISECOND] > 999 ? MILLISECOND : -1; if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { overflow = DATE; } if (getParsingFlags(m)._overflowWeeks && overflow === -1) { overflow = WEEK; } if (getParsingFlags(m)._overflowWeekday && overflow === -1) { overflow = WEEKDAY; } getParsingFlags(m).overflow = overflow; } return m; } var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, tzRegex = /Z|[+-]\d\d(?::?\d\d)?/, isoDates = [ ["YYYYYY-MM-DD", /[+-]\d{6}-\d\d-\d\d/], ["YYYY-MM-DD", /\d{4}-\d\d-\d\d/], ["GGGG-[W]WW-E", /\d{4}-W\d\d-\d/], ["GGGG-[W]WW", /\d{4}-W\d\d/, false], ["YYYY-DDD", /\d{4}-\d{3}/], ["YYYY-MM", /\d{4}-\d\d/, false], ["YYYYYYMMDD", /[+-]\d{10}/], ["YYYYMMDD", /\d{8}/], ["GGGG[W]WWE", /\d{4}W\d{3}/], ["GGGG[W]WW", /\d{4}W\d{2}/, false], ["YYYYDDD", /\d{7}/], ["YYYYMM", /\d{6}/, false], ["YYYY", /\d{4}/, false] ], isoTimes = [ ["HH:mm:ss.SSSS", /\d\d:\d\d:\d\d\.\d+/], ["HH:mm:ss,SSSS", /\d\d:\d\d:\d\d,\d+/], ["HH:mm:ss", /\d\d:\d\d:\d\d/], ["HH:mm", /\d\d:\d\d/], ["HHmmss.SSSS", /\d\d\d\d\d\d\.\d+/], ["HHmmss,SSSS", /\d\d\d\d\d\d,\d+/], ["HHmmss", /\d\d\d\d\d\d/], ["HHmm", /\d\d\d\d/], ["HH", /\d\d/] ], aspNetJsonRegex = /^\/?Date\((-?\d+)/i, rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/, obsOffsets = { UT: 0, GMT: 0, EDT: -4 * 60, EST: -5 * 60, CDT: -5 * 60, CST: -6 * 60, MDT: -6 * 60, MST: -7 * 60, PDT: -7 * 60, PST: -8 * 60 }; function configFromISO(config) { var i2, l, string = config._i, match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), allowTime, dateFormat, timeFormat, tzFormat, isoDatesLen = isoDates.length, isoTimesLen = isoTimes.length; if (match) { getParsingFlags(config).iso = true; for (i2 = 0, l = isoDatesLen; i2 < l; i2++) { if (isoDates[i2][1].exec(match[1])) { dateFormat = isoDates[i2][0]; allowTime = isoDates[i2][2] !== false; break; } } if (dateFormat == null) { config._isValid = false; return; } if (match[3]) { for (i2 = 0, l = isoTimesLen; i2 < l; i2++) { if (isoTimes[i2][1].exec(match[3])) { timeFormat = (match[2] || " ") + isoTimes[i2][0]; break; } } if (timeFormat == null) { config._isValid = false; return; } } if (!allowTime && timeFormat != null) { config._isValid = false; return; } if (match[4]) { if (tzRegex.exec(match[4])) { tzFormat = "Z"; } else { config._isValid = false; return; } } config._f = dateFormat + (timeFormat || "") + (tzFormat || ""); configFromStringAndFormat(config); } else { config._isValid = false; } } function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) { var result2 = [ untruncateYear(yearStr), defaultLocaleMonthsShort.indexOf(monthStr), parseInt(dayStr, 10), parseInt(hourStr, 10), parseInt(minuteStr, 10) ]; if (secondStr) { result2.push(parseInt(secondStr, 10)); } return result2; } function untruncateYear(yearStr) { var year = parseInt(yearStr, 10); if (year <= 49) { return 2e3 + year; } else if (year <= 999) { return 1900 + year; } return year; } function preprocessRFC2822(s) { return s.replace(/\([^()]*\)|[\n\t]/g, " ").replace(/(\s\s+)/g, " ").replace(/^\s\s*/, "").replace(/\s\s*$/, ""); } function checkWeekday(weekdayStr, parsedInput, config) { if (weekdayStr) { var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), weekdayActual = new Date( parsedInput[0], parsedInput[1], parsedInput[2] ).getDay(); if (weekdayProvided !== weekdayActual) { getParsingFlags(config).weekdayMismatch = true; config._isValid = false; return false; } } return true; } function calculateOffset(obsOffset, militaryOffset, numOffset) { if (obsOffset) { return obsOffsets[obsOffset]; } else if (militaryOffset) { return 0; } else { var hm = parseInt(numOffset, 10), m = hm % 100, h2 = (hm - m) / 100; return h2 * 60 + m; } } function configFromRFC2822(config) { var match = rfc2822.exec(preprocessRFC2822(config._i)), parsedArray; if (match) { parsedArray = extractFromRFC2822Strings( match[4], match[3], match[2], match[5], match[6], match[7] ); if (!checkWeekday(match[1], parsedArray, config)) { return; } config._a = parsedArray; config._tzm = calculateOffset(match[8], match[9], match[10]); config._d = createUTCDate.apply(null, config._a); config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); getParsingFlags(config).rfc2822 = true; } else { config._isValid = false; } } function configFromString(config) { var matched = aspNetJsonRegex.exec(config._i); if (matched !== null) { config._d = new Date(+matched[1]); return; } configFromISO(config); if (config._isValid === false) { delete config._isValid; } else { return; } configFromRFC2822(config); if (config._isValid === false) { delete config._isValid; } else { return; } if (config._strict) { config._isValid = false; } else { hooks.createFromInputFallback(config); } } hooks.createFromInputFallback = deprecate( "value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.", function(config) { config._d = new Date(config._i + (config._useUTC ? " UTC" : "")); } ); function defaults$5(a2, b, c2) { if (a2 != null) { return a2; } if (b != null) { return b; } return c2; } function currentDateArray(config) { var nowValue = new Date(hooks.now()); if (config._useUTC) { return [ nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate() ]; } return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; } function configFromArray(config) { var i2, date, input = [], currentDate, expectedWeekday, yearToUse; if (config._d) { return; } currentDate = currentDateArray(config); if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { dayOfYearFromWeekInfo(config); } if (config._dayOfYear != null) { yearToUse = defaults$5(config._a[YEAR], currentDate[YEAR]); if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) { getParsingFlags(config)._overflowDayOfYear = true; } date = createUTCDate(yearToUse, 0, config._dayOfYear); config._a[MONTH] = date.getUTCMonth(); config._a[DATE] = date.getUTCDate(); } for (i2 = 0; i2 < 3 && config._a[i2] == null; ++i2) { config._a[i2] = input[i2] = currentDate[i2]; } for (; i2 < 7; i2++) { config._a[i2] = input[i2] = config._a[i2] == null ? i2 === 2 ? 1 : 0 : config._a[i2]; } if (config._a[HOUR] === 24 && config._a[MINUTE] === 0 && config._a[SECOND] === 0 && config._a[MILLISECOND] === 0) { config._nextDay = true; config._a[HOUR] = 0; } config._d = (config._useUTC ? createUTCDate : createDate).apply( null, input ); expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay(); if (config._tzm != null) { config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); } if (config._nextDay) { config._a[HOUR] = 24; } if (config._w && typeof config._w.d !== "undefined" && config._w.d !== expectedWeekday) { getParsingFlags(config).weekdayMismatch = true; } } function dayOfYearFromWeekInfo(config) { var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek; w = config._w; if (w.GG != null || w.W != null || w.E != null) { dow = 1; doy = 4; weekYear = defaults$5( w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year ); week = defaults$5(w.W, 1); weekday = defaults$5(w.E, 1); if (weekday < 1 || weekday > 7) { weekdayOverflow = true; } } else { dow = config._locale._week.dow; doy = config._locale._week.doy; curWeek = weekOfYear(createLocal(), dow, doy); weekYear = defaults$5(w.gg, config._a[YEAR], curWeek.year); week = defaults$5(w.w, curWeek.week); if (w.d != null) { weekday = w.d; if (weekday < 0 || weekday > 6) { weekdayOverflow = true; } } else if (w.e != null) { weekday = w.e + dow; if (w.e < 0 || w.e > 6) { weekdayOverflow = true; } } else { weekday = dow; } } if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { getParsingFlags(config)._overflowWeeks = true; } else if (weekdayOverflow != null) { getParsingFlags(config)._overflowWeekday = true; } else { temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); config._a[YEAR] = temp.year; config._dayOfYear = temp.dayOfYear; } } hooks.ISO_8601 = function() { }; hooks.RFC_2822 = function() { }; function configFromStringAndFormat(config) { if (config._f === hooks.ISO_8601) { configFromISO(config); return; } if (config._f === hooks.RFC_2822) { configFromRFC2822(config); return; } config._a = []; getParsingFlags(config).empty = true; var string = "" + config._i, i2, parsedInput, tokens2, token2, skipped, stringLength = string.length, totalParsedInputLength = 0, era, tokenLen; tokens2 = expandFormat(config._f, config._locale).match(formattingTokens) || []; tokenLen = tokens2.length; for (i2 = 0; i2 < tokenLen; i2++) { token2 = tokens2[i2]; parsedInput = (string.match(getParseRegexForToken(token2, config)) || [])[0]; if (parsedInput) { skipped = string.substr(0, string.indexOf(parsedInput)); if (skipped.length > 0) { getParsingFlags(config).unusedInput.push(skipped); } string = string.slice( string.indexOf(parsedInput) + parsedInput.length ); totalParsedInputLength += parsedInput.length; } if (formatTokenFunctions[token2]) { if (parsedInput) { getParsingFlags(config).empty = false; } else { getParsingFlags(config).unusedTokens.push(token2); } addTimeToArrayFromToken(token2, parsedInput, config); } else if (config._strict && !parsedInput) { getParsingFlags(config).unusedTokens.push(token2); } } getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength; if (string.length > 0) { getParsingFlags(config).unusedInput.push(string); } if (config._a[HOUR] <= 12 && getParsingFlags(config).bigHour === true && config._a[HOUR] > 0) { getParsingFlags(config).bigHour = void 0; } getParsingFlags(config).parsedDateParts = config._a.slice(0); getParsingFlags(config).meridiem = config._meridiem; config._a[HOUR] = meridiemFixWrap( config._locale, config._a[HOUR], config._meridiem ); era = getParsingFlags(config).era; if (era !== null) { config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]); } configFromArray(config); checkOverflow(config); } function meridiemFixWrap(locale2, hour, meridiem2) { var isPm; if (meridiem2 == null) { return hour; } if (locale2.meridiemHour != null) { return locale2.meridiemHour(hour, meridiem2); } else if (locale2.isPM != null) { isPm = locale2.isPM(meridiem2); if (isPm && hour < 12) { hour += 12; } if (!isPm && hour === 12) { hour = 0; } return hour; } else { return hour; } } function configFromStringAndArray(config) { var tempConfig, bestMoment, scoreToBeat, i2, currentScore, validFormatFound, bestFormatIsValid = false, configfLen = config._f.length; if (configfLen === 0) { getParsingFlags(config).invalidFormat = true; config._d = new Date(NaN); return; } for (i2 = 0; i2 < configfLen; i2++) { currentScore = 0; validFormatFound = false; tempConfig = copyConfig({}, config); if (config._useUTC != null) { tempConfig._useUTC = config._useUTC; } tempConfig._f = config._f[i2]; configFromStringAndFormat(tempConfig); if (isValid(tempConfig)) { validFormatFound = true; } currentScore += getParsingFlags(tempConfig).charsLeftOver; currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; getParsingFlags(tempConfig).score = currentScore; if (!bestFormatIsValid) { if (scoreToBeat == null || currentScore < scoreToBeat || validFormatFound) { scoreToBeat = currentScore; bestMoment = tempConfig; if (validFormatFound) { bestFormatIsValid = true; } } } else { if (currentScore < scoreToBeat) { scoreToBeat = currentScore; bestMoment = tempConfig; } } } extend$1(config, bestMoment || tempConfig); } function configFromObject(config) { if (config._d) { return; } var i2 = normalizeObjectUnits(config._i), dayOrDate = i2.day === void 0 ? i2.date : i2.day; config._a = map( [i2.year, i2.month, dayOrDate, i2.hour, i2.minute, i2.second, i2.millisecond], function(obj) { return obj && parseInt(obj, 10); } ); configFromArray(config); } function createFromConfig(config) { var res = new Moment(checkOverflow(prepareConfig(config))); if (res._nextDay) { res.add(1, "d"); res._nextDay = void 0; } return res; } function prepareConfig(config) { var input = config._i, format2 = config._f; config._locale = config._locale || getLocale$1(config._l); if (input === null || format2 === void 0 && input === "") { return createInvalid({ nullInput: true }); } if (typeof input === "string") { config._i = input = config._locale.preparse(input); } if (isMoment(input)) { return new Moment(checkOverflow(input)); } else if (isDate$2(input)) { config._d = input; } else if (isArray$3(format2)) { configFromStringAndArray(config); } else if (format2) { configFromStringAndFormat(config); } else { configFromInput(config); } if (!isValid(config)) { config._d = null; } return config; } function configFromInput(config) { var input = config._i; if (isUndefined$1(input)) { config._d = new Date(hooks.now()); } else if (isDate$2(input)) { config._d = new Date(input.valueOf()); } else if (typeof input === "string") { configFromString(config); } else if (isArray$3(input)) { config._a = map(input.slice(0), function(obj) { return parseInt(obj, 10); }); configFromArray(config); } else if (isObject$6(input)) { configFromObject(config); } else if (isNumber$2(input)) { config._d = new Date(input); } else { hooks.createFromInputFallback(config); } } function createLocalOrUTC(input, format2, locale2, strict, isUTC) { var c2 = {}; if (format2 === true || format2 === false) { strict = format2; format2 = void 0; } if (locale2 === true || locale2 === false) { strict = locale2; locale2 = void 0; } if (isObject$6(input) && isObjectEmpty(input) || isArray$3(input) && input.length === 0) { input = void 0; } c2._isAMomentObject = true; c2._useUTC = c2._isUTC = isUTC; c2._l = locale2; c2._i = input; c2._f = format2; c2._strict = strict; return createFromConfig(c2); } function createLocal(input, format2, locale2, strict) { return createLocalOrUTC(input, format2, locale2, strict, false); } var prototypeMin = deprecate( "moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/", function() { var other = createLocal.apply(null, arguments); if (this.isValid() && other.isValid()) { return other < this ? this : other; } else { return createInvalid(); } } ), prototypeMax = deprecate( "moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/", function() { var other = createLocal.apply(null, arguments); if (this.isValid() && other.isValid()) { return other > this ? this : other; } else { return createInvalid(); } } ); function pickBy(fn, moments) { var res, i2; if (moments.length === 1 && isArray$3(moments[0])) { moments = moments[0]; } if (!moments.length) { return createLocal(); } res = moments[0]; for (i2 = 1; i2 < moments.length; ++i2) { if (!moments[i2].isValid() || moments[i2][fn](res)) { res = moments[i2]; } } return res; } function min() { var args = [].slice.call(arguments, 0); return pickBy("isBefore", args); } function max() { var args = [].slice.call(arguments, 0); return pickBy("isAfter", args); } var now$1 = function() { return Date.now ? Date.now() : +new Date(); }; var ordering = [ "year", "quarter", "month", "week", "day", "hour", "minute", "second", "millisecond" ]; function isDurationValid(m) { var key, unitHasDecimal = false, i2, orderLen = ordering.length; for (key in m) { if (hasOwnProp(m, key) && !(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) { return false; } } for (i2 = 0; i2 < orderLen; ++i2) { if (m[ordering[i2]]) { if (unitHasDecimal) { return false; } if (parseFloat(m[ordering[i2]]) !== toInt(m[ordering[i2]])) { unitHasDecimal = true; } } } return true; } function isValid$1() { return this._isValid; } function createInvalid$1() { return createDuration(NaN); } function Duration(duration) { var normalizedInput = normalizeObjectUnits(duration), years2 = normalizedInput.year || 0, quarters = normalizedInput.quarter || 0, months2 = normalizedInput.month || 0, weeks2 = normalizedInput.week || normalizedInput.isoWeek || 0, days2 = normalizedInput.day || 0, hours2 = normalizedInput.hour || 0, minutes2 = normalizedInput.minute || 0, seconds2 = normalizedInput.second || 0, milliseconds2 = normalizedInput.millisecond || 0; this._isValid = isDurationValid(normalizedInput); this._milliseconds = +milliseconds2 + seconds2 * 1e3 + minutes2 * 6e4 + hours2 * 1e3 * 60 * 60; this._days = +days2 + weeks2 * 7; this._months = +months2 + quarters * 3 + years2 * 12; this._data = {}; this._locale = getLocale$1(); this._bubble(); } function isDuration(obj) { return obj instanceof Duration; } function absRound(number2) { if (number2 < 0) { return Math.round(-1 * number2) * -1; } else { return Math.round(number2); } } function compareArrays(array1, array2, dontConvert) { var len = Math.min(array1.length, array2.length), lengthDiff = Math.abs(array1.length - array2.length), diffs = 0, i2; for (i2 = 0; i2 < len; i2++) { if (dontConvert && array1[i2] !== array2[i2] || !dontConvert && toInt(array1[i2]) !== toInt(array2[i2])) { diffs++; } } return diffs + lengthDiff; } function offset(token2, separator) { addFormatToken(token2, 0, 0, function() { var offset2 = this.utcOffset(), sign2 = "+"; if (offset2 < 0) { offset2 = -offset2; sign2 = "-"; } return sign2 + zeroFill(~~(offset2 / 60), 2) + separator + zeroFill(~~offset2 % 60, 2); }); } offset("Z", ":"); offset("ZZ", ""); addRegexToken("Z", matchShortOffset); addRegexToken("ZZ", matchShortOffset); addParseToken(["Z", "ZZ"], function(input, array, config) { config._useUTC = true; config._tzm = offsetFromString(matchShortOffset, input); }); var chunkOffset = /([\+\-]|\d\d)/gi; function offsetFromString(matcher, string) { var matches2 = (string || "").match(matcher), chunk, parts, minutes2; if (matches2 === null) { return null; } chunk = matches2[matches2.length - 1] || []; parts = (chunk + "").match(chunkOffset) || ["-", 0, 0]; minutes2 = +(parts[1] * 60) + toInt(parts[2]); return minutes2 === 0 ? 0 : parts[0] === "+" ? minutes2 : -minutes2; } function cloneWithOffset(input, model) { var res, diff2; if (model._isUTC) { res = model.clone(); diff2 = (isMoment(input) || isDate$2(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf(); res._d.setTime(res._d.valueOf() + diff2); hooks.updateOffset(res, false); return res; } else { return createLocal(input).local(); } } function getDateOffset(m) { return -Math.round(m._d.getTimezoneOffset()); } hooks.updateOffset = function() { }; function getSetOffset(input, keepLocalTime, keepMinutes) { var offset2 = this._offset || 0, localAdjust; if (!this.isValid()) { return input != null ? this : NaN; } if (input != null) { if (typeof input === "string") { input = offsetFromString(matchShortOffset, input); if (input === null) { return this; } } else if (Math.abs(input) < 16 && !keepMinutes) { input = input * 60; } if (!this._isUTC && keepLocalTime) { localAdjust = getDateOffset(this); } this._offset = input; this._isUTC = true; if (localAdjust != null) { this.add(localAdjust, "m"); } if (offset2 !== input) { if (!keepLocalTime || this._changeInProgress) { addSubtract( this, createDuration(input - offset2, "m"), 1, false ); } else if (!this._changeInProgress) { this._changeInProgress = true; hooks.updateOffset(this, true); this._changeInProgress = null; } } return this; } else { return this._isUTC ? offset2 : getDateOffset(this); } } function getSetZone(input, keepLocalTime) { if (input != null) { if (typeof input !== "string") { input = -input; } this.utcOffset(input, keepLocalTime); return this; } else { return -this.utcOffset(); } } function setOffsetToUTC(keepLocalTime) { return this.utcOffset(0, keepLocalTime); } function setOffsetToLocal(keepLocalTime) { if (this._isUTC) { this.utcOffset(0, keepLocalTime); this._isUTC = false; if (keepLocalTime) { this.subtract(getDateOffset(this), "m"); } } return this; } function setOffsetToParsedOffset() { if (this._tzm != null) { this.utcOffset(this._tzm, false, true); } else if (typeof this._i === "string") { var tZone = offsetFromString(matchOffset, this._i); if (tZone != null) { this.utcOffset(tZone); } else { this.utcOffset(0, true); } } return this; } function hasAlignedHourOffset(input) { if (!this.isValid()) { return false; } input = input ? createLocal(input).utcOffset() : 0; return (this.utcOffset() - input) % 60 === 0; } function isDaylightSavingTime() { return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset(); } function isDaylightSavingTimeShifted() { if (!isUndefined$1(this._isDSTShifted)) { return this._isDSTShifted; } var c2 = {}, other; copyConfig(c2, this); c2 = prepareConfig(c2); if (c2._a) { other = c2._isUTC ? createUTC(c2._a) : createLocal(c2._a); this._isDSTShifted = this.isValid() && compareArrays(c2._a, other.toArray()) > 0; } else { this._isDSTShifted = false; } return this._isDSTShifted; } function isLocal() { return this.isValid() ? !this._isUTC : false; } function isUtcOffset() { return this.isValid() ? this._isUTC : false; } function isUtc() { return this.isValid() ? this._isUTC && this._offset === 0 : false; } var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; function createDuration(input, key) { var duration = input, match = null, sign2, ret, diffRes; if (isDuration(input)) { duration = { ms: input._milliseconds, d: input._days, M: input._months }; } else if (isNumber$2(input) || !isNaN(+input)) { duration = {}; if (key) { duration[key] = +input; } else { duration.milliseconds = +input; } } else if (match = aspNetRegex.exec(input)) { sign2 = match[1] === "-" ? -1 : 1; duration = { y: 0, d: toInt(match[DATE]) * sign2, h: toInt(match[HOUR]) * sign2, m: toInt(match[MINUTE]) * sign2, s: toInt(match[SECOND]) * sign2, ms: toInt(absRound(match[MILLISECOND] * 1e3)) * sign2 }; } else if (match = isoRegex.exec(input)) { sign2 = match[1] === "-" ? -1 : 1; duration = { y: parseIso(match[2], sign2), M: parseIso(match[3], sign2), w: parseIso(match[4], sign2), d: parseIso(match[5], sign2), h: parseIso(match[6], sign2), m: parseIso(match[7], sign2), s: parseIso(match[8], sign2) }; } else if (duration == null) { duration = {}; } else if (typeof duration === "object" && ("from" in duration || "to" in duration)) { diffRes = momentsDifference( createLocal(duration.from), createLocal(duration.to) ); duration = {}; duration.ms = diffRes.milliseconds; duration.M = diffRes.months; } ret = new Duration(duration); if (isDuration(input) && hasOwnProp(input, "_locale")) { ret._locale = input._locale; } if (isDuration(input) && hasOwnProp(input, "_isValid")) { ret._isValid = input._isValid; } return ret; } createDuration.fn = Duration.prototype; createDuration.invalid = createInvalid$1; function parseIso(inp, sign2) { var res = inp && parseFloat(inp.replace(",", ".")); return (isNaN(res) ? 0 : res) * sign2; } function positiveMomentsDifference(base, other) { var res = {}; res.months = other.month() - base.month() + (other.year() - base.year()) * 12; if (base.clone().add(res.months, "M").isAfter(other)) { --res.months; } res.milliseconds = +other - +base.clone().add(res.months, "M"); return res; } function momentsDifference(base, other) { var res; if (!(base.isValid() && other.isValid())) { return { milliseconds: 0, months: 0 }; } other = cloneWithOffset(other, base); if (base.isBefore(other)) { res = positiveMomentsDifference(base, other); } else { res = positiveMomentsDifference(other, base); res.milliseconds = -res.milliseconds; res.months = -res.months; } return res; } function createAdder(direction, name) { return function(val, period) { var dur, tmp; if (period !== null && !isNaN(+period)) { deprecateSimple( name, "moment()." + name + "(period, number) is deprecated. Please use moment()." + name + "(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info." ); tmp = val; val = period; period = tmp; } dur = createDuration(val, period); addSubtract(this, dur, direction); return this; }; } function addSubtract(mom, duration, isAdding, updateOffset) { var milliseconds2 = duration._milliseconds, days2 = absRound(duration._days), months2 = absRound(duration._months); if (!mom.isValid()) { return; } updateOffset = updateOffset == null ? true : updateOffset; if (months2) { setMonth(mom, get(mom, "Month") + months2 * isAdding); } if (days2) { set$1(mom, "Date", get(mom, "Date") + days2 * isAdding); } if (milliseconds2) { mom._d.setTime(mom._d.valueOf() + milliseconds2 * isAdding); } if (updateOffset) { hooks.updateOffset(mom, days2 || months2); } } var add = createAdder(1, "add"), subtract = createAdder(-1, "subtract"); function isString$5(input) { return typeof input === "string" || input instanceof String; } function isMomentInput(input) { return isMoment(input) || isDate$2(input) || isString$5(input) || isNumber$2(input) || isNumberOrStringArray(input) || isMomentInputObject(input) || input === null || input === void 0; } function isMomentInputObject(input) { var objectTest = isObject$6(input) && !isObjectEmpty(input), propertyTest = false, properties = [ "years", "year", "y", "months", "month", "M", "days", "day", "d", "dates", "date", "D", "hours", "hour", "h", "minutes", "minute", "m", "seconds", "second", "s", "milliseconds", "millisecond", "ms" ], i2, property, propertyLen = properties.length; for (i2 = 0; i2 < propertyLen; i2 += 1) { property = properties[i2]; propertyTest = propertyTest || hasOwnProp(input, property); } return objectTest && propertyTest; } function isNumberOrStringArray(input) { var arrayTest = isArray$3(input), dataTypeTest = false; if (arrayTest) { dataTypeTest = input.filter(function(item) { return !isNumber$2(item) && isString$5(input); }).length === 0; } return arrayTest && dataTypeTest; } function isCalendarSpec(input) { var objectTest = isObject$6(input) && !isObjectEmpty(input), propertyTest = false, properties = [ "sameDay", "nextDay", "lastDay", "nextWeek", "lastWeek", "sameElse" ], i2, property; for (i2 = 0; i2 < properties.length; i2 += 1) { property = properties[i2]; propertyTest = propertyTest || hasOwnProp(input, property); } return objectTest && propertyTest; } function getCalendarFormat(myMoment, now2) { var diff2 = myMoment.diff(now2, "days", true); return diff2 < -6 ? "sameElse" : diff2 < -1 ? "lastWeek" : diff2 < 0 ? "lastDay" : diff2 < 1 ? "sameDay" : diff2 < 2 ? "nextDay" : diff2 < 7 ? "nextWeek" : "sameElse"; } function calendar$1(time, formats) { if (arguments.length === 1) { if (!arguments[0]) { time = void 0; formats = void 0; } else if (isMomentInput(arguments[0])) { time = arguments[0]; formats = void 0; } else if (isCalendarSpec(arguments[0])) { formats = arguments[0]; time = void 0; } } var now2 = time || createLocal(), sod = cloneWithOffset(now2, this).startOf("day"), format2 = hooks.calendarFormat(this, sod) || "sameElse", output = formats && (isFunction$2(formats[format2]) ? formats[format2].call(this, now2) : formats[format2]); return this.format( output || this.localeData().calendar(format2, this, createLocal(now2)) ); } function clone() { return new Moment(this); } function isAfter(input, units) { var localInput = isMoment(input) ? input : createLocal(input); if (!(this.isValid() && localInput.isValid())) { return false; } units = normalizeUnits(units) || "millisecond"; if (units === "millisecond") { return this.valueOf() > localInput.valueOf(); } else { return localInput.valueOf() < this.clone().startOf(units).valueOf(); } } function isBefore(input, units) { var localInput = isMoment(input) ? input : createLocal(input); if (!(this.isValid() && localInput.isValid())) { return false; } units = normalizeUnits(units) || "millisecond"; if (units === "millisecond") { return this.valueOf() < localInput.valueOf(); } else { return this.clone().endOf(units).valueOf() < localInput.valueOf(); } } function isBetween(from2, to2, units, inclusivity) { var localFrom = isMoment(from2) ? from2 : createLocal(from2), localTo = isMoment(to2) ? to2 : createLocal(to2); if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) { return false; } inclusivity = inclusivity || "()"; return (inclusivity[0] === "(" ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) && (inclusivity[1] === ")" ? this.isBefore(localTo, units) : !this.isAfter(localTo, units)); } function isSame(input, units) { var localInput = isMoment(input) ? input : createLocal(input), inputMs; if (!(this.isValid() && localInput.isValid())) { return false; } units = normalizeUnits(units) || "millisecond"; if (units === "millisecond") { return this.valueOf() === localInput.valueOf(); } else { inputMs = localInput.valueOf(); return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf(); } } function isSameOrAfter(input, units) { return this.isSame(input, units) || this.isAfter(input, units); } function isSameOrBefore(input, units) { return this.isSame(input, units) || this.isBefore(input, units); } function diff(input, units, asFloat) { var that, zoneDelta, output; if (!this.isValid()) { return NaN; } that = cloneWithOffset(input, this); if (!that.isValid()) { return NaN; } zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; units = normalizeUnits(units); switch (units) { case "year": output = monthDiff(this, that) / 12; break; case "month": output = monthDiff(this, that); break; case "quarter": output = monthDiff(this, that) / 3; break; case "second": output = (this - that) / 1e3; break; case "minute": output = (this - that) / 6e4; break; case "hour": output = (this - that) / 36e5; break; case "day": output = (this - that - zoneDelta) / 864e5; break; case "week": output = (this - that - zoneDelta) / 6048e5; break; default: output = this - that; } return asFloat ? output : absFloor(output); } function monthDiff(a2, b) { if (a2.date() < b.date()) { return -monthDiff(b, a2); } var wholeMonthDiff = (b.year() - a2.year()) * 12 + (b.month() - a2.month()), anchor = a2.clone().add(wholeMonthDiff, "months"), anchor2, adjust; if (b - anchor < 0) { anchor2 = a2.clone().add(wholeMonthDiff - 1, "months"); adjust = (b - anchor) / (anchor - anchor2); } else { anchor2 = a2.clone().add(wholeMonthDiff + 1, "months"); adjust = (b - anchor) / (anchor2 - anchor); } return -(wholeMonthDiff + adjust) || 0; } hooks.defaultFormat = "YYYY-MM-DDTHH:mm:ssZ"; hooks.defaultFormatUtc = "YYYY-MM-DDTHH:mm:ss[Z]"; function toString$3() { return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ"); } function toISOString(keepOffset) { if (!this.isValid()) { return null; } var utc = keepOffset !== true, m = utc ? this.clone().utc() : this; if (m.year() < 0 || m.year() > 9999) { return formatMoment( m, utc ? "YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]" : "YYYYYY-MM-DD[T]HH:mm:ss.SSSZ" ); } if (isFunction$2(Date.prototype.toISOString)) { if (utc) { return this.toDate().toISOString(); } else { return new Date(this.valueOf() + this.utcOffset() * 60 * 1e3).toISOString().replace("Z", formatMoment(m, "Z")); } } return formatMoment( m, utc ? "YYYY-MM-DD[T]HH:mm:ss.SSS[Z]" : "YYYY-MM-DD[T]HH:mm:ss.SSSZ" ); } function inspect$1() { if (!this.isValid()) { return "moment.invalid(/* " + this._i + " */)"; } var func = "moment", zone = "", prefix, year, datetime2, suffix; if (!this.isLocal()) { func = this.utcOffset() === 0 ? "moment.utc" : "moment.parseZone"; zone = "Z"; } prefix = "[" + func + '("]'; year = 0 <= this.year() && this.year() <= 9999 ? "YYYY" : "YYYYYY"; datetime2 = "-MM-DD[T]HH:mm:ss.SSS"; suffix = zone + '[")]'; return this.format(prefix + year + datetime2 + suffix); } function format$2(inputString) { if (!inputString) { inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat; } var output = formatMoment(this, inputString); return this.localeData().postformat(output); } function from(time, withoutSuffix) { if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) { return createDuration({ to: this, from: time }).locale(this.locale()).humanize(!withoutSuffix); } else { return this.localeData().invalidDate(); } } function fromNow(withoutSuffix) { return this.from(createLocal(), withoutSuffix); } function to(time, withoutSuffix) { if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) { return createDuration({ from: this, to: time }).locale(this.locale()).humanize(!withoutSuffix); } else { return this.localeData().invalidDate(); } } function toNow(withoutSuffix) { return this.to(createLocal(), withoutSuffix); } function locale(key) { var newLocaleData; if (key === void 0) { return this._locale._abbr; } else { newLocaleData = getLocale$1(key); if (newLocaleData != null) { this._locale = newLocaleData; } return this; } } var lang = deprecate( "moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.", function(key) { if (key === void 0) { return this.localeData(); } else { return this.locale(key); } } ); function localeData() { return this._locale; } var MS_PER_SECOND = 1e3, MS_PER_MINUTE = 60 * MS_PER_SECOND, MS_PER_HOUR = 60 * MS_PER_MINUTE, MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; function mod$1(dividend, divisor) { return (dividend % divisor + divisor) % divisor; } function localStartOfDate(y, m, d) { if (y < 100 && y >= 0) { return new Date(y + 400, m, d) - MS_PER_400_YEARS; } else { return new Date(y, m, d).valueOf(); } } function utcStartOfDate(y, m, d) { if (y < 100 && y >= 0) { return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS; } else { return Date.UTC(y, m, d); } } function startOf(units) { var time, startOfDate; units = normalizeUnits(units); if (units === void 0 || units === "millisecond" || !this.isValid()) { return this; } startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; switch (units) { case "year": time = startOfDate(this.year(), 0, 1); break; case "quarter": time = startOfDate( this.year(), this.month() - this.month() % 3, 1 ); break; case "month": time = startOfDate(this.year(), this.month(), 1); break; case "week": time = startOfDate( this.year(), this.month(), this.date() - this.weekday() ); break; case "isoWeek": time = startOfDate( this.year(), this.month(), this.date() - (this.isoWeekday() - 1) ); break; case "day": case "date": time = startOfDate(this.year(), this.month(), this.date()); break; case "hour": time = this._d.valueOf(); time -= mod$1( time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR ); break; case "minute": time = this._d.valueOf(); time -= mod$1(time, MS_PER_MINUTE); break; case "second": time = this._d.valueOf(); time -= mod$1(time, MS_PER_SECOND); break; } this._d.setTime(time); hooks.updateOffset(this, true); return this; } function endOf(units) { var time, startOfDate; units = normalizeUnits(units); if (units === void 0 || units === "millisecond" || !this.isValid()) { return this; } startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; switch (units) { case "year": time = startOfDate(this.year() + 1, 0, 1) - 1; break; case "quarter": time = startOfDate( this.year(), this.month() - this.month() % 3 + 3, 1 ) - 1; break; case "month": time = startOfDate(this.year(), this.month() + 1, 1) - 1; break; case "week": time = startOfDate( this.year(), this.month(), this.date() - this.weekday() + 7 ) - 1; break; case "isoWeek": time = startOfDate( this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7 ) - 1; break; case "day": case "date": time = startOfDate(this.year(), this.month(), this.date() + 1) - 1; break; case "hour": time = this._d.valueOf(); time += MS_PER_HOUR - mod$1( time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR ) - 1; break; case "minute": time = this._d.valueOf(); time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1; break; case "second": time = this._d.valueOf(); time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1; break; } this._d.setTime(time); hooks.updateOffset(this, true); return this; } function valueOf() { return this._d.valueOf() - (this._offset || 0) * 6e4; } function unix() { return Math.floor(this.valueOf() / 1e3); } function toDate() { return new Date(this.valueOf()); } function toArray$1() { var m = this; return [ m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond() ]; } function toObject() { var m = this; return { years: m.year(), months: m.month(), date: m.date(), hours: m.hours(), minutes: m.minutes(), seconds: m.seconds(), milliseconds: m.milliseconds() }; } function toJSON() { return this.isValid() ? this.toISOString() : null; } function isValid$2() { return isValid(this); } function parsingFlags() { return extend$1({}, getParsingFlags(this)); } function invalidAt() { return getParsingFlags(this).overflow; } function creationData() { return { input: this._i, format: this._f, locale: this._locale, isUTC: this._isUTC, strict: this._strict }; } addFormatToken("N", 0, 0, "eraAbbr"); addFormatToken("NN", 0, 0, "eraAbbr"); addFormatToken("NNN", 0, 0, "eraAbbr"); addFormatToken("NNNN", 0, 0, "eraName"); addFormatToken("NNNNN", 0, 0, "eraNarrow"); addFormatToken("y", ["y", 1], "yo", "eraYear"); addFormatToken("y", ["yy", 2], 0, "eraYear"); addFormatToken("y", ["yyy", 3], 0, "eraYear"); addFormatToken("y", ["yyyy", 4], 0, "eraYear"); addRegexToken("N", matchEraAbbr); addRegexToken("NN", matchEraAbbr); addRegexToken("NNN", matchEraAbbr); addRegexToken("NNNN", matchEraName); addRegexToken("NNNNN", matchEraNarrow); addParseToken( ["N", "NN", "NNN", "NNNN", "NNNNN"], function(input, array, config, token2) { var era = config._locale.erasParse(input, token2, config._strict); if (era) { getParsingFlags(config).era = era; } else { getParsingFlags(config).invalidEra = input; } } ); addRegexToken("y", matchUnsigned); addRegexToken("yy", matchUnsigned); addRegexToken("yyy", matchUnsigned); addRegexToken("yyyy", matchUnsigned); addRegexToken("yo", matchEraYearOrdinal); addParseToken(["y", "yy", "yyy", "yyyy"], YEAR); addParseToken(["yo"], function(input, array, config, token2) { var match; if (config._locale._eraYearOrdinalRegex) { match = input.match(config._locale._eraYearOrdinalRegex); } if (config._locale.eraYearOrdinalParse) { array[YEAR] = config._locale.eraYearOrdinalParse(input, match); } else { array[YEAR] = parseInt(input, 10); } }); function localeEras(m, format2) { var i2, l, date, eras = this._eras || getLocale$1("en")._eras; for (i2 = 0, l = eras.length; i2 < l; ++i2) { switch (typeof eras[i2].since) { case "string": date = hooks(eras[i2].since).startOf("day"); eras[i2].since = date.valueOf(); break; } switch (typeof eras[i2].until) { case "undefined": eras[i2].until = Infinity; break; case "string": date = hooks(eras[i2].until).startOf("day").valueOf(); eras[i2].until = date.valueOf(); break; } } return eras; } function localeErasParse(eraName, format2, strict) { var i2, l, eras = this.eras(), name, abbr, narrow; eraName = eraName.toUpperCase(); for (i2 = 0, l = eras.length; i2 < l; ++i2) { name = eras[i2].name.toUpperCase(); abbr = eras[i2].abbr.toUpperCase(); narrow = eras[i2].narrow.toUpperCase(); if (strict) { switch (format2) { case "N": case "NN": case "NNN": if (abbr === eraName) { return eras[i2]; } break; case "NNNN": if (name === eraName) { return eras[i2]; } break; case "NNNNN": if (narrow === eraName) { return eras[i2]; } break; } } else if ([name, abbr, narrow].indexOf(eraName) >= 0) { return eras[i2]; } } } function localeErasConvertYear(era, year) { var dir = era.since <= era.until ? 1 : -1; if (year === void 0) { return hooks(era.since).year(); } else { return hooks(era.since).year() + (year - era.offset) * dir; } } function getEraName() { var i2, l, val, eras = this.localeData().eras(); for (i2 = 0, l = eras.length; i2 < l; ++i2) { val = this.clone().startOf("day").valueOf(); if (eras[i2].since <= val && val <= eras[i2].until) { return eras[i2].name; } if (eras[i2].until <= val && val <= eras[i2].since) { return eras[i2].name; } } return ""; } function getEraNarrow() { var i2, l, val, eras = this.localeData().eras(); for (i2 = 0, l = eras.length; i2 < l; ++i2) { val = this.clone().startOf("day").valueOf(); if (eras[i2].since <= val && val <= eras[i2].until) { return eras[i2].narrow; } if (eras[i2].until <= val && val <= eras[i2].since) { return eras[i2].narrow; } } return ""; } function getEraAbbr() { var i2, l, val, eras = this.localeData().eras(); for (i2 = 0, l = eras.length; i2 < l; ++i2) { val = this.clone().startOf("day").valueOf(); if (eras[i2].since <= val && val <= eras[i2].until) { return eras[i2].abbr; } if (eras[i2].until <= val && val <= eras[i2].since) { return eras[i2].abbr; } } return ""; } function getEraYear() { var i2, l, dir, val, eras = this.localeData().eras(); for (i2 = 0, l = eras.length; i2 < l; ++i2) { dir = eras[i2].since <= eras[i2].until ? 1 : -1; val = this.clone().startOf("day").valueOf(); if (eras[i2].since <= val && val <= eras[i2].until || eras[i2].until <= val && val <= eras[i2].since) { return (this.year() - hooks(eras[i2].since).year()) * dir + eras[i2].offset; } } return this.year(); } function erasNameRegex(isStrict) { if (!hasOwnProp(this, "_erasNameRegex")) { computeErasParse.call(this); } return isStrict ? this._erasNameRegex : this._erasRegex; } function erasAbbrRegex(isStrict) { if (!hasOwnProp(this, "_erasAbbrRegex")) { computeErasParse.call(this); } return isStrict ? this._erasAbbrRegex : this._erasRegex; } function erasNarrowRegex(isStrict) { if (!hasOwnProp(this, "_erasNarrowRegex")) { computeErasParse.call(this); } return isStrict ? this._erasNarrowRegex : this._erasRegex; } function matchEraAbbr(isStrict, locale2) { return locale2.erasAbbrRegex(isStrict); } function matchEraName(isStrict, locale2) { return locale2.erasNameRegex(isStrict); } function matchEraNarrow(isStrict, locale2) { return locale2.erasNarrowRegex(isStrict); } function matchEraYearOrdinal(isStrict, locale2) { return locale2._eraYearOrdinalRegex || matchUnsigned; } function computeErasParse() { var abbrPieces = [], namePieces = [], narrowPieces = [], mixedPieces = [], i2, l, erasName, erasAbbr, erasNarrow, eras = this.eras(); for (i2 = 0, l = eras.length; i2 < l; ++i2) { erasName = regexEscape(eras[i2].name); erasAbbr = regexEscape(eras[i2].abbr); erasNarrow = regexEscape(eras[i2].narrow); namePieces.push(erasName); abbrPieces.push(erasAbbr); narrowPieces.push(erasNarrow); mixedPieces.push(erasName); mixedPieces.push(erasAbbr); mixedPieces.push(erasNarrow); } this._erasRegex = new RegExp("^(" + mixedPieces.join("|") + ")", "i"); this._erasNameRegex = new RegExp("^(" + namePieces.join("|") + ")", "i"); this._erasAbbrRegex = new RegExp("^(" + abbrPieces.join("|") + ")", "i"); this._erasNarrowRegex = new RegExp( "^(" + narrowPieces.join("|") + ")", "i" ); } addFormatToken(0, ["gg", 2], 0, function() { return this.weekYear() % 100; }); addFormatToken(0, ["GG", 2], 0, function() { return this.isoWeekYear() % 100; }); function addWeekYearFormatToken(token2, getter) { addFormatToken(0, [token2, token2.length], 0, getter); } addWeekYearFormatToken("gggg", "weekYear"); addWeekYearFormatToken("ggggg", "weekYear"); addWeekYearFormatToken("GGGG", "isoWeekYear"); addWeekYearFormatToken("GGGGG", "isoWeekYear"); addRegexToken("G", matchSigned); addRegexToken("g", matchSigned); addRegexToken("GG", match1to2, match2); addRegexToken("gg", match1to2, match2); addRegexToken("GGGG", match1to4, match4); addRegexToken("gggg", match1to4, match4); addRegexToken("GGGGG", match1to6, match6); addRegexToken("ggggg", match1to6, match6); addWeekParseToken( ["gggg", "ggggg", "GGGG", "GGGGG"], function(input, week, config, token2) { week[token2.substr(0, 2)] = toInt(input); } ); addWeekParseToken(["gg", "GG"], function(input, week, config, token2) { week[token2] = hooks.parseTwoDigitYear(input); }); function getSetWeekYear(input) { return getSetWeekYearHelper.call( this, input, this.week(), this.weekday() + this.localeData()._week.dow, this.localeData()._week.dow, this.localeData()._week.doy ); } function getSetISOWeekYear(input) { return getSetWeekYearHelper.call( this, input, this.isoWeek(), this.isoWeekday(), 1, 4 ); } function getISOWeeksInYear() { return weeksInYear(this.year(), 1, 4); } function getISOWeeksInISOWeekYear() { return weeksInYear(this.isoWeekYear(), 1, 4); } function getWeeksInYear() { var weekInfo = this.localeData()._week; return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); } function getWeeksInWeekYear() { var weekInfo = this.localeData()._week; return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy); } function getSetWeekYearHelper(input, week, weekday, dow, doy) { var weeksTarget; if (input == null) { return weekOfYear(this, dow, doy).year; } else { weeksTarget = weeksInYear(input, dow, doy); if (week > weeksTarget) { week = weeksTarget; } return setWeekAll.call(this, input, week, weekday, dow, doy); } } function setWeekAll(weekYear, week, weekday, dow, doy) { var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); this.year(date.getUTCFullYear()); this.month(date.getUTCMonth()); this.date(date.getUTCDate()); return this; } addFormatToken("Q", 0, "Qo", "quarter"); addRegexToken("Q", match1); addParseToken("Q", function(input, array) { array[MONTH] = (toInt(input) - 1) * 3; }); function getSetQuarter(input) { return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); } addFormatToken("D", ["DD", 2], "Do", "date"); addRegexToken("D", match1to2, match1to2NoLeadingZero); addRegexToken("DD", match1to2, match2); addRegexToken("Do", function(isStrict, locale2) { return isStrict ? locale2._dayOfMonthOrdinalParse || locale2._ordinalParse : locale2._dayOfMonthOrdinalParseLenient; }); addParseToken(["D", "DD"], DATE); addParseToken("Do", function(input, array) { array[DATE] = toInt(input.match(match1to2)[0]); }); var getSetDayOfMonth = makeGetSet("Date", true); addFormatToken("DDD", ["DDDD", 3], "DDDo", "dayOfYear"); addRegexToken("DDD", match1to3); addRegexToken("DDDD", match3); addParseToken(["DDD", "DDDD"], function(input, array, config) { config._dayOfYear = toInt(input); }); function getSetDayOfYear(input) { var dayOfYear = Math.round( (this.clone().startOf("day") - this.clone().startOf("year")) / 864e5 ) + 1; return input == null ? dayOfYear : this.add(input - dayOfYear, "d"); } addFormatToken("m", ["mm", 2], 0, "minute"); addRegexToken("m", match1to2, match1to2HasZero); addRegexToken("mm", match1to2, match2); addParseToken(["m", "mm"], MINUTE); var getSetMinute = makeGetSet("Minutes", false); addFormatToken("s", ["ss", 2], 0, "second"); addRegexToken("s", match1to2, match1to2HasZero); addRegexToken("ss", match1to2, match2); addParseToken(["s", "ss"], SECOND); var getSetSecond = makeGetSet("Seconds", false); addFormatToken("S", 0, 0, function() { return ~~(this.millisecond() / 100); }); addFormatToken(0, ["SS", 2], 0, function() { return ~~(this.millisecond() / 10); }); addFormatToken(0, ["SSS", 3], 0, "millisecond"); addFormatToken(0, ["SSSS", 4], 0, function() { return this.millisecond() * 10; }); addFormatToken(0, ["SSSSS", 5], 0, function() { return this.millisecond() * 100; }); addFormatToken(0, ["SSSSSS", 6], 0, function() { return this.millisecond() * 1e3; }); addFormatToken(0, ["SSSSSSS", 7], 0, function() { return this.millisecond() * 1e4; }); addFormatToken(0, ["SSSSSSSS", 8], 0, function() { return this.millisecond() * 1e5; }); addFormatToken(0, ["SSSSSSSSS", 9], 0, function() { return this.millisecond() * 1e6; }); addRegexToken("S", match1to3, match1); addRegexToken("SS", match1to3, match2); addRegexToken("SSS", match1to3, match3); var token, getSetMillisecond; for (token = "SSSS"; token.length <= 9; token += "S") { addRegexToken(token, matchUnsigned); } function parseMs(input, array) { array[MILLISECOND] = toInt(("0." + input) * 1e3); } for (token = "S"; token.length <= 9; token += "S") { addParseToken(token, parseMs); } getSetMillisecond = makeGetSet("Milliseconds", false); addFormatToken("z", 0, 0, "zoneAbbr"); addFormatToken("zz", 0, 0, "zoneName"); function getZoneAbbr() { return this._isUTC ? "UTC" : ""; } function getZoneName() { return this._isUTC ? "Coordinated Universal Time" : ""; } var proto = Moment.prototype; proto.add = add; proto.calendar = calendar$1; proto.clone = clone; proto.diff = diff; proto.endOf = endOf; proto.format = format$2; proto.from = from; proto.fromNow = fromNow; proto.to = to; proto.toNow = toNow; proto.get = stringGet; proto.invalidAt = invalidAt; proto.isAfter = isAfter; proto.isBefore = isBefore; proto.isBetween = isBetween; proto.isSame = isSame; proto.isSameOrAfter = isSameOrAfter; proto.isSameOrBefore = isSameOrBefore; proto.isValid = isValid$2; proto.lang = lang; proto.locale = locale; proto.localeData = localeData; proto.max = prototypeMax; proto.min = prototypeMin; proto.parsingFlags = parsingFlags; proto.set = stringSet; proto.startOf = startOf; proto.subtract = subtract; proto.toArray = toArray$1; proto.toObject = toObject; proto.toDate = toDate; proto.toISOString = toISOString; proto.inspect = inspect$1; if (typeof Symbol !== "undefined" && Symbol.for != null) { proto[Symbol.for("nodejs.util.inspect.custom")] = function() { return "Moment<" + this.format() + ">"; }; } proto.toJSON = toJSON; proto.toString = toString$3; proto.unix = unix; proto.valueOf = valueOf; proto.creationData = creationData; proto.eraName = getEraName; proto.eraNarrow = getEraNarrow; proto.eraAbbr = getEraAbbr; proto.eraYear = getEraYear; proto.year = getSetYear; proto.isLeapYear = getIsLeapYear; proto.weekYear = getSetWeekYear; proto.isoWeekYear = getSetISOWeekYear; proto.quarter = proto.quarters = getSetQuarter; proto.month = getSetMonth; proto.daysInMonth = getDaysInMonth; proto.week = proto.weeks = getSetWeek; proto.isoWeek = proto.isoWeeks = getSetISOWeek; proto.weeksInYear = getWeeksInYear; proto.weeksInWeekYear = getWeeksInWeekYear; proto.isoWeeksInYear = getISOWeeksInYear; proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear; proto.date = getSetDayOfMonth; proto.day = proto.days = getSetDayOfWeek; proto.weekday = getSetLocaleDayOfWeek; proto.isoWeekday = getSetISODayOfWeek; proto.dayOfYear = getSetDayOfYear; proto.hour = proto.hours = getSetHour; proto.minute = proto.minutes = getSetMinute; proto.second = proto.seconds = getSetSecond; proto.millisecond = proto.milliseconds = getSetMillisecond; proto.utcOffset = getSetOffset; proto.utc = setOffsetToUTC; proto.local = setOffsetToLocal; proto.parseZone = setOffsetToParsedOffset; proto.hasAlignedHourOffset = hasAlignedHourOffset; proto.isDST = isDaylightSavingTime; proto.isLocal = isLocal; proto.isUtcOffset = isUtcOffset; proto.isUtc = isUtc; proto.isUTC = isUtc; proto.zoneAbbr = getZoneAbbr; proto.zoneName = getZoneName; proto.dates = deprecate( "dates accessor is deprecated. Use date instead.", getSetDayOfMonth ); proto.months = deprecate( "months accessor is deprecated. Use month instead", getSetMonth ); proto.years = deprecate( "years accessor is deprecated. Use year instead", getSetYear ); proto.zone = deprecate( "moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/", getSetZone ); proto.isDSTShifted = deprecate( "isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information", isDaylightSavingTimeShifted ); function createUnix(input) { return createLocal(input * 1e3); } function createInZone() { return createLocal.apply(null, arguments).parseZone(); } function preParsePostFormat(string) { return string; } var proto$1 = Locale.prototype; proto$1.calendar = calendar; proto$1.longDateFormat = longDateFormat; proto$1.invalidDate = invalidDate; proto$1.ordinal = ordinal; proto$1.preparse = preParsePostFormat; proto$1.postformat = preParsePostFormat; proto$1.relativeTime = relativeTime; proto$1.pastFuture = pastFuture; proto$1.set = set; proto$1.eras = localeEras; proto$1.erasParse = localeErasParse; proto$1.erasConvertYear = localeErasConvertYear; proto$1.erasAbbrRegex = erasAbbrRegex; proto$1.erasNameRegex = erasNameRegex; proto$1.erasNarrowRegex = erasNarrowRegex; proto$1.months = localeMonths; proto$1.monthsShort = localeMonthsShort; proto$1.monthsParse = localeMonthsParse; proto$1.monthsRegex = monthsRegex; proto$1.monthsShortRegex = monthsShortRegex; proto$1.week = localeWeek; proto$1.firstDayOfYear = localeFirstDayOfYear; proto$1.firstDayOfWeek = localeFirstDayOfWeek; proto$1.weekdays = localeWeekdays; proto$1.weekdaysMin = localeWeekdaysMin; proto$1.weekdaysShort = localeWeekdaysShort; proto$1.weekdaysParse = localeWeekdaysParse; proto$1.weekdaysRegex = weekdaysRegex; proto$1.weekdaysShortRegex = weekdaysShortRegex; proto$1.weekdaysMinRegex = weekdaysMinRegex; proto$1.isPM = localeIsPM; proto$1.meridiem = localeMeridiem; function get$1(format2, index2, field, setter) { var locale2 = getLocale$1(), utc = createUTC().set(setter, index2); return locale2[field](utc, format2); } function listMonthsImpl(format2, index2, field) { if (isNumber$2(format2)) { index2 = format2; format2 = void 0; } format2 = format2 || ""; if (index2 != null) { return get$1(format2, index2, field, "month"); } var i2, out = []; for (i2 = 0; i2 < 12; i2++) { out[i2] = get$1(format2, i2, field, "month"); } return out; } function listWeekdaysImpl(localeSorted, format2, index2, field) { if (typeof localeSorted === "boolean") { if (isNumber$2(format2)) { index2 = format2; format2 = void 0; } format2 = format2 || ""; } else { format2 = localeSorted; index2 = format2; localeSorted = false; if (isNumber$2(format2)) { index2 = format2; format2 = void 0; } format2 = format2 || ""; } var locale2 = getLocale$1(), shift = localeSorted ? locale2._week.dow : 0, i2, out = []; if (index2 != null) { return get$1(format2, (index2 + shift) % 7, field, "day"); } for (i2 = 0; i2 < 7; i2++) { out[i2] = get$1(format2, (i2 + shift) % 7, field, "day"); } return out; } function listMonths(format2, index2) { return listMonthsImpl(format2, index2, "months"); } function listMonthsShort(format2, index2) { return listMonthsImpl(format2, index2, "monthsShort"); } function listWeekdays(localeSorted, format2, index2) { return listWeekdaysImpl(localeSorted, format2, index2, "weekdays"); } function listWeekdaysShort(localeSorted, format2, index2) { return listWeekdaysImpl(localeSorted, format2, index2, "weekdaysShort"); } function listWeekdaysMin(localeSorted, format2, index2) { return listWeekdaysImpl(localeSorted, format2, index2, "weekdaysMin"); } getSetGlobalLocale("en", { eras: [ { since: "0001-01-01", until: Infinity, offset: 1, name: "Anno Domini", narrow: "AD", abbr: "AD" }, { since: "0000-12-31", until: -Infinity, offset: 1, name: "Before Christ", narrow: "BC", abbr: "BC" } ], dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, ordinal: function(number2) { var b = number2 % 10, output = toInt(number2 % 100 / 10) === 1 ? "th" : b === 1 ? "st" : b === 2 ? "nd" : b === 3 ? "rd" : "th"; return number2 + output; } }); hooks.lang = deprecate( "moment.lang is deprecated. Use moment.locale instead.", getSetGlobalLocale ); hooks.langData = deprecate( "moment.langData is deprecated. Use moment.localeData instead.", getLocale$1 ); var mathAbs = Math.abs; function abs() { var data2 = this._data; this._milliseconds = mathAbs(this._milliseconds); this._days = mathAbs(this._days); this._months = mathAbs(this._months); data2.milliseconds = mathAbs(data2.milliseconds); data2.seconds = mathAbs(data2.seconds); data2.minutes = mathAbs(data2.minutes); data2.hours = mathAbs(data2.hours); data2.months = mathAbs(data2.months); data2.years = mathAbs(data2.years); return this; } function addSubtract$1(duration, input, value, direction) { var other = createDuration(input, value); duration._milliseconds += direction * other._milliseconds; duration._days += direction * other._days; duration._months += direction * other._months; return duration._bubble(); } function add$1(input, value) { return addSubtract$1(this, input, value, 1); } function subtract$1(input, value) { return addSubtract$1(this, input, value, -1); } function absCeil(number2) { if (number2 < 0) { return Math.floor(number2); } else { return Math.ceil(number2); } } function bubble() { var milliseconds2 = this._milliseconds, days2 = this._days, months2 = this._months, data2 = this._data, seconds2, minutes2, hours2, years2, monthsFromDays; if (!(milliseconds2 >= 0 && days2 >= 0 && months2 >= 0 || milliseconds2 <= 0 && days2 <= 0 && months2 <= 0)) { milliseconds2 += absCeil(monthsToDays(months2) + days2) * 864e5; days2 = 0; months2 = 0; } data2.milliseconds = milliseconds2 % 1e3; seconds2 = absFloor(milliseconds2 / 1e3); data2.seconds = seconds2 % 60; minutes2 = absFloor(seconds2 / 60); data2.minutes = minutes2 % 60; hours2 = absFloor(minutes2 / 60); data2.hours = hours2 % 24; days2 += absFloor(hours2 / 24); monthsFromDays = absFloor(daysToMonths(days2)); months2 += monthsFromDays; days2 -= absCeil(monthsToDays(monthsFromDays)); years2 = absFloor(months2 / 12); months2 %= 12; data2.days = days2; data2.months = months2; data2.years = years2; return this; } function daysToMonths(days2) { return days2 * 4800 / 146097; } function monthsToDays(months2) { return months2 * 146097 / 4800; } function as(units) { if (!this.isValid()) { return NaN; } var days2, months2, milliseconds2 = this._milliseconds; units = normalizeUnits(units); if (units === "month" || units === "quarter" || units === "year") { days2 = this._days + milliseconds2 / 864e5; months2 = this._months + daysToMonths(days2); switch (units) { case "month": return months2; case "quarter": return months2 / 3; case "year": return months2 / 12; } } else { days2 = this._days + Math.round(monthsToDays(this._months)); switch (units) { case "week": return days2 / 7 + milliseconds2 / 6048e5; case "day": return days2 + milliseconds2 / 864e5; case "hour": return days2 * 24 + milliseconds2 / 36e5; case "minute": return days2 * 1440 + milliseconds2 / 6e4; case "second": return days2 * 86400 + milliseconds2 / 1e3; case "millisecond": return Math.floor(days2 * 864e5) + milliseconds2; default: throw new Error("Unknown unit " + units); } } } function makeAs(alias) { return function() { return this.as(alias); }; } var asMilliseconds = makeAs("ms"), asSeconds = makeAs("s"), asMinutes = makeAs("m"), asHours = makeAs("h"), asDays = makeAs("d"), asWeeks = makeAs("w"), asMonths = makeAs("M"), asQuarters = makeAs("Q"), asYears = makeAs("y"), valueOf$1 = asMilliseconds; function clone$1() { return createDuration(this); } function get$2(units) { units = normalizeUnits(units); return this.isValid() ? this[units + "s"]() : NaN; } function makeGetter(name) { return function() { return this.isValid() ? this._data[name] : NaN; }; } var milliseconds = makeGetter("milliseconds"), seconds = makeGetter("seconds"), minutes = makeGetter("minutes"), hours = makeGetter("hours"), days = makeGetter("days"), months = makeGetter("months"), years = makeGetter("years"); function weeks() { return absFloor(this.days() / 7); } var round = Math.round, thresholds = { ss: 44, s: 45, m: 45, h: 22, d: 26, w: null, M: 11 }; function substituteTimeAgo(string, number2, withoutSuffix, isFuture, locale2) { return locale2.relativeTime(number2 || 1, !!withoutSuffix, string, isFuture); } function relativeTime$1(posNegDuration, withoutSuffix, thresholds2, locale2) { var duration = createDuration(posNegDuration).abs(), seconds2 = round(duration.as("s")), minutes2 = round(duration.as("m")), hours2 = round(duration.as("h")), days2 = round(duration.as("d")), months2 = round(duration.as("M")), weeks2 = round(duration.as("w")), years2 = round(duration.as("y")), a2 = seconds2 <= thresholds2.ss && ["s", seconds2] || seconds2 < thresholds2.s && ["ss", seconds2] || minutes2 <= 1 && ["m"] || minutes2 < thresholds2.m && ["mm", minutes2] || hours2 <= 1 && ["h"] || hours2 < thresholds2.h && ["hh", hours2] || days2 <= 1 && ["d"] || days2 < thresholds2.d && ["dd", days2]; if (thresholds2.w != null) { a2 = a2 || weeks2 <= 1 && ["w"] || weeks2 < thresholds2.w && ["ww", weeks2]; } a2 = a2 || months2 <= 1 && ["M"] || months2 < thresholds2.M && ["MM", months2] || years2 <= 1 && ["y"] || ["yy", years2]; a2[2] = withoutSuffix; a2[3] = +posNegDuration > 0; a2[4] = locale2; return substituteTimeAgo.apply(null, a2); } function getSetRelativeTimeRounding(roundingFunction) { if (roundingFunction === void 0) { return round; } if (typeof roundingFunction === "function") { round = roundingFunction; return true; } return false; } function getSetRelativeTimeThreshold(threshold, limit) { if (thresholds[threshold] === void 0) { return false; } if (limit === void 0) { return thresholds[threshold]; } thresholds[threshold] = limit; if (threshold === "s") { thresholds.ss = limit - 1; } return true; } function humanize(argWithSuffix, argThresholds) { if (!this.isValid()) { return this.localeData().invalidDate(); } var withSuffix = false, th = thresholds, locale2, output; if (typeof argWithSuffix === "object") { argThresholds = argWithSuffix; argWithSuffix = false; } if (typeof argWithSuffix === "boolean") { withSuffix = argWithSuffix; } if (typeof argThresholds === "object") { th = Object.assign({}, thresholds, argThresholds); if (argThresholds.s != null && argThresholds.ss == null) { th.ss = argThresholds.s - 1; } } locale2 = this.localeData(); output = relativeTime$1(this, !withSuffix, th, locale2); if (withSuffix) { output = locale2.pastFuture(+this, output); } return locale2.postformat(output); } var abs$1 = Math.abs; function sign(x) { return (x > 0) - (x < 0) || +x; } function toISOString$1() { if (!this.isValid()) { return this.localeData().invalidDate(); } var seconds2 = abs$1(this._milliseconds) / 1e3, days2 = abs$1(this._days), months2 = abs$1(this._months), minutes2, hours2, years2, s, total = this.asSeconds(), totalSign, ymSign, daysSign, hmsSign; if (!total) { return "P0D"; } minutes2 = absFloor(seconds2 / 60); hours2 = absFloor(minutes2 / 60); seconds2 %= 60; minutes2 %= 60; years2 = absFloor(months2 / 12); months2 %= 12; s = seconds2 ? seconds2.toFixed(3).replace(/\.?0+$/, "") : ""; totalSign = total < 0 ? "-" : ""; ymSign = sign(this._months) !== sign(total) ? "-" : ""; daysSign = sign(this._days) !== sign(total) ? "-" : ""; hmsSign = sign(this._milliseconds) !== sign(total) ? "-" : ""; return totalSign + "P" + (years2 ? ymSign + years2 + "Y" : "") + (months2 ? ymSign + months2 + "M" : "") + (days2 ? daysSign + days2 + "D" : "") + (hours2 || minutes2 || seconds2 ? "T" : "") + (hours2 ? hmsSign + hours2 + "H" : "") + (minutes2 ? hmsSign + minutes2 + "M" : "") + (seconds2 ? hmsSign + s + "S" : ""); } var proto$2 = Duration.prototype; proto$2.isValid = isValid$1; proto$2.abs = abs; proto$2.add = add$1; proto$2.subtract = subtract$1; proto$2.as = as; proto$2.asMilliseconds = asMilliseconds; proto$2.asSeconds = asSeconds; proto$2.asMinutes = asMinutes; proto$2.asHours = asHours; proto$2.asDays = asDays; proto$2.asWeeks = asWeeks; proto$2.asMonths = asMonths; proto$2.asQuarters = asQuarters; proto$2.asYears = asYears; proto$2.valueOf = valueOf$1; proto$2._bubble = bubble; proto$2.clone = clone$1; proto$2.get = get$2; proto$2.milliseconds = milliseconds; proto$2.seconds = seconds; proto$2.minutes = minutes; proto$2.hours = hours; proto$2.days = days; proto$2.weeks = weeks; proto$2.months = months; proto$2.years = years; proto$2.humanize = humanize; proto$2.toISOString = toISOString$1; proto$2.toString = toISOString$1; proto$2.toJSON = toISOString$1; proto$2.locale = locale; proto$2.localeData = localeData; proto$2.toIsoString = deprecate( "toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)", toISOString$1 ); proto$2.lang = lang; addFormatToken("X", 0, 0, "unix"); addFormatToken("x", 0, 0, "valueOf"); addRegexToken("x", matchSigned); addRegexToken("X", matchTimestamp); addParseToken("X", function(input, array, config) { config._d = new Date(parseFloat(input) * 1e3); }); addParseToken("x", function(input, array, config) { config._d = new Date(toInt(input)); }); //! moment.js hooks.version = "2.30.1"; setHookCallback(createLocal); hooks.fn = proto; hooks.min = min; hooks.max = max; hooks.now = now$1; hooks.utc = createUTC; hooks.unix = createUnix; hooks.months = listMonths; hooks.isDate = isDate$2; hooks.locale = getSetGlobalLocale; hooks.invalid = createInvalid; hooks.duration = createDuration; hooks.isMoment = isMoment; hooks.weekdays = listWeekdays; hooks.parseZone = createInZone; hooks.localeData = getLocale$1; hooks.isDuration = isDuration; hooks.monthsShort = listMonthsShort; hooks.weekdaysMin = listWeekdaysMin; hooks.defineLocale = defineLocale; hooks.updateLocale = updateLocale; hooks.locales = listLocales; hooks.weekdaysShort = listWeekdaysShort; hooks.normalizeUnits = normalizeUnits; hooks.relativeTimeRounding = getSetRelativeTimeRounding; hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; hooks.calendarFormat = getCalendarFormat; hooks.prototype = proto; hooks.HTML5_FMT = { DATETIME_LOCAL: "YYYY-MM-DDTHH:mm", DATETIME_LOCAL_SECONDS: "YYYY-MM-DDTHH:mm:ss", DATETIME_LOCAL_MS: "YYYY-MM-DDTHH:mm:ss.SSS", DATE: "YYYY-MM-DD", TIME: "HH:mm", TIME_SECONDS: "HH:mm:ss", TIME_MS: "HH:mm:ss.SSS", WEEK: "GGGG-[W]WW", MONTH: "YYYY-MM" }; const _sfc_main$e = defineComponent({ name: "AudioPlayer", props: ["src"] }); const AudioPlayer_vue_vue_type_style_index_0_lang = ""; const _hoisted_1$d = { class: "audio", controls: "true", controlsList: "nodownload", style: { "padding": "10px" } }; const _hoisted_2$c = ["src"]; function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) { return openBlock(), createElementBlock("audio", _hoisted_1$d, [ createBaseVNode("source", { src: _ctx.src, type: "audio/ogg" }, null, 8, _hoisted_2$c) ]); } const AudioPlayer = /* @__PURE__ */ _export_sfc$1(_sfc_main$e, [["render", _sfc_render$9]]); const _sfc_main$d = defineComponent({ name: "VideoPlayer", props: ["src"] }); const VideoPlayer_vue_vue_type_style_index_0_lang = ""; const _hoisted_1$c = { width: "100%", height: "240", controls: "", controlsList: "nodownload" }; const _hoisted_2$b = ["src"]; function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) { return openBlock(), createElementBlock("video", _hoisted_1$c, [ createBaseVNode("source", { src: _ctx.src, type: "video/mp4" }, null, 8, _hoisted_2$b), _cache[0] || (_cache[0] = createTextVNode(" Your browser does not support the video tag. ")) ]); } const VideoPlayer = /* @__PURE__ */ _export_sfc$1(_sfc_main$d, [["render", _sfc_render$8]]); const KBHelper_vue_vue_type_style_index_0_lang = ""; const _sfc_main$c = defineComponent({ computed: { linkOutSuggestion() { if (!this.payload) return ""; return { uri: this.payload.uri, destinationName: this.payload.destinationName }; }, showLinkOutSuggestion() { var _a2, _b; return this.linkOutSuggestion && ((_a2 = this.linkOutSuggestion) == null ? void 0 : _a2.uri) && ((_b = this.linkOutSuggestion) == null ? void 0 : _b.destinationName); }, suggestion() { return this.payload.suggestion; } }, methods: { parseText(text) { const emoji$1 = new emoji.exports.EmojiConvertor(); emoji$1.replace_mode = "unified"; let originalText = text; originalText = originalText.replace(//igm, ">"); originalText = emoji$1.replace_unified(originalText); return originalText; }, sendSuggestion(suggestion) { this.$store.dispatch("sendMessage", { text: suggestion }); } }, props: ["payload", "text"] }); const _hoisted_1$b = { class: "kb-text-center" }; const _hoisted_2$a = { key: 0, class: "kb-helper-link-out-suggestion" }; const _hoisted_3$5 = ["onClick", "innerHTML"]; const _hoisted_4$5 = { key: 1, class: "kb-helper-link-out-suggestion" }; const _hoisted_5$4 = ["href"]; function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) { return openBlock(), createElementBlock("div", _hoisted_1$b, [ _ctx.text ? (openBlock(), createElementBlock("div", _hoisted_2$a, [ createBaseVNode("small", null, toDisplayString$1(_ctx.text), 1) ])) : createCommentVNode("", true), (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.suggestion, (item, i2) => { return openBlock(), createElementBlock("div", { class: "kb-chip", onClick: ($event) => _ctx.sendSuggestion(item), key: i2, innerHTML: _ctx.parseText(item) }, null, 8, _hoisted_3$5); }), 128)), _ctx.showLinkOutSuggestion ? (openBlock(), createElementBlock("div", _hoisted_4$5, [ createBaseVNode("a", { href: _ctx.linkOutSuggestion.uri, target: "_blank" }, toDisplayString$1(_ctx.linkOutSuggestion.destinationName), 9, _hoisted_5$4) ])) : createCommentVNode("", true) ]); } const KBHelper = /* @__PURE__ */ _export_sfc$1(_sfc_main$c, [["render", _sfc_render$7]]); const _sfc_main$b = defineComponent({ data() { return { videoId: "" }; }, methods: { playVideo() { this.player.playVideo(); } }, computed: { player() { return this.$refs.youtube.player; } }, props: ["src"] }); const YoutubePlayer_vue_vue_type_style_index_0_lang = ""; function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) { const _component_youtube = resolveComponent("youtube"); return openBlock(), createBlock(_component_youtube, { "video-id": _ctx.src, ref: "youtube", onClick: _ctx.playVideo, width: "100%", height: "240", style: { "padding-top": "3px" } }, null, 8, ["video-id", "onClick"]); } const YoutubePlayer = /* @__PURE__ */ _export_sfc$1(_sfc_main$b, [["render", _sfc_render$6]]); const _hoisted_1$a = ["src"]; const _hoisted_2$9 = { key: 0 }; const _hoisted_3$4 = { key: 1 }; const _hoisted_4$4 = { key: 2 }; const _hoisted_5$3 = { key: 3, style: { "text-align": "center" } }; const _hoisted_6$3 = ["href"]; const _hoisted_7$3 = { style: { "margin-bottom": "6px" } }; const _hoisted_8$2 = ["href"]; const _hoisted_9$2 = ["innerHTML"]; const _hoisted_10$2 = { class: "kb-message-date-container kb-caption kb-reverse" }; const _hoisted_11$2 = ["title"]; const _hoisted_12$1 = { key: 2, class: "kb-helpers-container" }; const _sfc_main$a = /* @__PURE__ */ defineComponent({ __name: "KSMessage", props: ["message"], emits: ["setImageToShow", "resend"], setup(__props, { emit: __emit }) { const imageToShow = ref({ src: "", w: 0, h: 0, title: "" }); const props = __props; const emits = __emit; const youtubeLink = computed(() => { const regex = /youtu(?:.*\/v\/|.*v=|\.be\/)([A-Za-z0-9_-]{11})/; const urlVideo = props.message.text.match(regex); if (urlVideo && urlVideo.length > 0) { return urlVideo; } return false; }); function getDate(date) { return hooks(date).calendar(null, { sameElse: "DD/MM/YYYY HH:mm" }); } function getMedia() { if (props.message.type === "pdf") { return { color: "#c31630", icon: "mdi-file-pdf-outline", url: props.message.media }; } if (props.message.type === "location") { return { icon: "mdi-map-marker", url: `https://www.google.com/maps/search/?api=1&query=${latitude()},${longitude()}` }; } return { icon: "mdi-link", url: props.message.media }; } function latitude() { return props.message.media.split(";")[0]; } function longitude() { return props.message.media.split(";")[1]; } function parseText() { if (!props.message.text) return ""; return utils$d.parseText(props.message.text); } function showMediaMessage() { return props.message.type === "pdf" || props.message.type === "location" || props.message.type === "others"; } function openPicture(picture) { const p2 = { src: picture, w: 0, h: 0, title: "" }; const img = document.createElement("img"); img.style.display = "none"; img.onload = (event) => { if (event.path) { p2.w = event.path[0].naturalWidth; p2.h = event.path[0].naturalHeight; } else if (event.explicitOriginalTarget) { p2.w = event.explicitOriginalTarget.naturalWidth; p2.h = event.explicitOriginalTarget.naturalHeight; } else if (event.target) { p2.w = event.target.naturalWidth; p2.h = event.target.naturalHeight; } imageToShow.value = p2; emits("setImageToShow", p2); document.getElementsByTagName("body")[0].removeChild(img); return true; }; img.src = picture; document.getElementsByTagName("body")[0].appendChild(img); } return (_ctx, _cache) => { return openBlock(), createElementBlock("div", null, [ __props.message.type === "image" ? (openBlock(), createElementBlock("div", { key: 0, class: normalizeClass(["kb-message", [__props.message.sender === "user" ? "kb-reverse" : ""]]) }, [ createBaseVNode("img", { onClick: _cache[0] || (_cache[0] = ($event) => openPicture(__props.message.media)), alt: "Image", src: __props.message.media, style: { "border-radius": "4px", "max-width": "50%" } }, null, 8, _hoisted_1$a) ], 2)) : createCommentVNode("", true), !__props.message.payload && __props.message.status !== "sending" ? (openBlock(), createElementBlock("div", { key: 1, class: normalizeClass(["kb-message", [__props.message.sender === "user" ? "kb-reverse" : ""]]) }, [ createBaseVNode("div", { class: normalizeClass([__props.message.sender === "user" ? "kb-message-out" : "kb-message-in"]) }, [ youtubeLink.value ? (openBlock(), createElementBlock("span", _hoisted_2$9, [ createVNode(YoutubePlayer, { src: youtubeLink.value[1] }, null, 8, ["src"]) ])) : createCommentVNode("", true), __props.message.type === "ptt" || __props.message.type === "ogg" || __props.message.type === "audio" ? (openBlock(), createElementBlock("span", _hoisted_3$4, [ createVNode(AudioPlayer, { src: __props.message.media }, null, 8, ["src"]) ])) : __props.message.type === "video" ? (openBlock(), createElementBlock("span", _hoisted_4$4, [ createVNode(VideoPlayer, { src: __props.message.media }, null, 8, ["src"]) ])) : createCommentVNode("", true), showMediaMessage() ? (openBlock(), createElementBlock("div", _hoisted_5$3, [ createBaseVNode("a", { href: getMedia().url, target: "_blank", style: { "color": "grey", "text-decoration": "none" } }, [ createBaseVNode("div", { class: normalizeClass(["mdi", [getMedia().icon]]), style: normalizeStyle([{ "font-size": "60px" }, { color: getMedia().color }]) }, null, 6), createBaseVNode("div", _hoisted_7$3, [ createBaseVNode("a", { href: getMedia().url, target: "_blank" }, null, 8, _hoisted_8$2) ]) ], 8, _hoisted_6$3), _cache[2] || (_cache[2] = createBaseVNode("div", { class: "kb-divider" }, null, -1)) ])) : createCommentVNode("", true), createBaseVNode("div", { class: "kb-message-text", innerHTML: parseText() }, null, 8, _hoisted_9$2), createBaseVNode("div", _hoisted_10$2, [ createTextVNode(toDisplayString$1(getDate(__props.message.createdAt)) + " ", 1), __props.message.sender === "user" ? (openBlock(), createElementBlock("span", { key: 0, class: normalizeClass(["mdi", __props.message.status === "sending" ? "mdi-clock red" : "mdi-check-all"]), onClick: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("resend")), style: { "margin-right": "4px" }, title: __props.message.status === "sending" ? _ctx.$t("loseMessage") : _ctx.$t("sendedMessage") }, null, 10, _hoisted_11$2)) : createCommentVNode("", true) ]) ], 2) ], 2)) : createCommentVNode("", true), __props.message.payload && __props.message.type !== "status" || __props.message.type === "suggestion" ? (openBlock(), createElementBlock("div", _hoisted_12$1, [ createVNode(KBHelper, { payload: __props.message.payload, text: __props.message.text }, null, 8, ["payload", "text"]) ])) : createCommentVNode("", true) ]); }; } }); const KSMessage_vue_vue_type_style_index_0_lang = ""; const _sfc_main$9 = defineComponent({ name: "KSEmoji", props: ["src"] }); const KSEmoji_vue_vue_type_style_index_0_lang = ""; const _hoisted_1$9 = ["src"]; function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) { return openBlock(), createElementBlock("img", { alt: "Emoji", class: "kb-emoji", onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("click")), src: _ctx.src }, null, 8, _hoisted_1$9); } const KSEmoji = /* @__PURE__ */ _export_sfc$1(_sfc_main$9, [["render", _sfc_render$5]]); const emojis = { compressed: true, categories: [ { id: "people", name: "Smileys & People", emojis: [ { label: "grinning", code: "1F600" }, { label: "grin", code: "1F601" }, { code: "1F522", label: "1234" }, { code: "1F30D", label: "earth_africa" }, { code: "1F3C1", label: "checkered_flag" }, { code: "1F507", label: "mute" }, { code: "1F383", label: "jack_o_lantern" }, { code: "1F3E7", label: "atm" }, { code: "1F347", label: "grapes" }, { code: "1F30E", label: "earth_americas" }, { code: "1F348", label: "melon" }, { code: "1F6A9", label: "triangular_flag_on_post" }, { code: "1F30F", label: "earth_asia" }, { code: "1F38C", label: "crossed_flags" }, { code: "1F602", label: "joy" }, { code: "1F509", label: "sound" }, { code: "1F349", label: "watermelon" }, { code: "1F98D", label: "gorilla" }, { code: "1F386", label: "fireworks" }, { code: "1F6B0", label: "potable_water" }, { code: "267F", label: "wheelchair" }, { code: "1F923", label: "rolling_on_the_floor_laughing" }, { code: "1F50A", label: "loud_sound" }, { code: "1F3F4", label: "waving_black_flag" }, { code: "1F34A", label: "tangerine" }, { code: "1F436", label: "dog" }, { code: "1F387", label: "sparkler" }, { code: "1F310", label: "globe_with_meridians" }, { code: "1F603", label: "smiley" }, { code: "1F4E2", label: "loudspeaker" }, { code: "2728", label: "sparkles" }, { code: "1F415", label: "dog2" }, { label: "lemon", code: "1F34B" }, { label: "mens", code: "1F6B9" }, { label: "womens", code: "1F6BA" }, { label: "smile", code: "1F604" }, { label: "banana", code: "1F34C" }, { label: "mega", code: "1F4E3" }, { label: "japan", code: "1F5FE" }, { label: "poodle", code: "1F429" }, { label: "balloon", code: "1F388" }, { label: "sweat_smile", code: "1F605" }, { label: "pineapple", code: "1F34D" }, { label: "restroom", code: "1F6BB" }, { label: "postal_horn", code: "1F4EF" }, { label: "wolf", code: "1F43A" }, { label: "tada", code: "1F389" }, { label: "laughing", code: "1F606" }, { label: "apple", code: "1F34E" }, { label: "fox_face", code: "1F98A" }, { label: "confetti_ball", code: "1F38A" }, { label: "bell", code: "1F514" }, { label: "baby_symbol", code: "1F6BC" }, { label: "wc", code: "1F6BE" }, { label: "wink", code: "1F609" }, { label: "no_bell", code: "1F515" }, { label: "green_apple", code: "1F34F" }, { label: "tanabata_tree", code: "1F38B" }, { label: "volcano", code: "1F30B" }, { label: "cat", code: "1F431" } ], emojiUrl: "https://projects.iamcal.com/emoji-data/img-apple-64/1f600.png" }, { id: "nature", name: "Animals & Nature", emojis: [ { label: "monkey_face", code: "1F435" }, { label: "monkey", code: "1F412" } ], emojiUrl: "https://projects.iamcal.com/emoji-data/img-apple-64/1f436.png" }, { id: "foods", name: "Food & Drink", emojis: [], emojiUrl: "https://projects.iamcal.com/emoji-data/img-apple-64/1f34e.png" }, { id: "activity", name: "Activities", emojis: [], emojiUrl: "https://projects.iamcal.com/emoji-data/img-apple-64/1f3c0.png" }, { id: "places", name: "Travel & Places", emojis: [], emojiUrl: "https://projects.iamcal.com/emoji-data/img-apple-64/1f698.png" }, { id: "objects", name: "Objects", emojis: [], emojiUrl: "https://projects.iamcal.com/emoji-data/img-apple-64/1f4a1.png" }, { id: "symbols", name: "Symbols", emojis: [], emojiUrl: "https://projects.iamcal.com/emoji-data/img-apple-64/1f4af.png" }, { id: "flags", name: "Flags", emojis: [], emojiUrl: "https://projects.iamcal.com/emoji-data/img-apple-64/1f3f4.png" } ], control_knobs: { a: "Control Knobs", b: "1F39B-FE0F", c: "1F39B", j: [ "dial" ], k: [ 8, 43 ], o: 7 }, kissing: { a: "Kissing Face", b: "1F617", j: [ "love", "like", "face", "3", "valentines", "infatuation", "kiss" ], k: [ 30, 47 ] } }; const _hoisted_1$8 = { class: "emojis-container" }; const _hoisted_2$8 = { key: 0, class: "emojis-category" }; const _sfc_main$8 = /* @__PURE__ */ defineComponent({ __name: "KSEmojis", props: ["value"], emits: ["select", "input"], setup(__props, { emit: __emit }) { const Emojis = ref(emojis.categories); const selectedCategory = ref("people"); const emits = __emit; function addEmoji(emoji2) { emits("select", String.fromCodePoint(parseInt(emoji2.code, 16))); } return (_ctx, _cache) => { return openBlock(), createBlock(KSBottomMenu, { closable: true, onInput: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("input", false)), value: __props.value }, { title: withCtx(() => _cache[1] || (_cache[1] = [ createBaseVNode("span", null, [ createBaseVNode("div", null, " Seleccione un emoji ") ], -1) ])), body: withCtx(() => [ createBaseVNode("div", null, [ createBaseVNode("div", _hoisted_1$8, [ (openBlock(true), createElementBlock(Fragment, null, renderList(Emojis.value, (category) => { return openBlock(), createElementBlock("div", { key: `container-${category.id}` }, [ selectedCategory.value === category.id ? (openBlock(), createElementBlock("div", _hoisted_2$8, [ (openBlock(true), createElementBlock(Fragment, null, renderList(category.emojis, (emoji2) => { return openBlock(), createBlock(KSEmoji, { key: emoji2.code, onClick: ($event) => addEmoji(emoji2), src: `https://projects.iamcal.com/emoji-data/img-apple-64/${emoji2.code.toLowerCase()}.png` }, null, 8, ["onClick", "src"]); }), 128)) ])) : createCommentVNode("", true) ]); }), 128)) ]) ]) ]), _: 1 }, 8, ["value"]); }; } }); const KSEmojis_vue_vue_type_style_index_0_lang = ""; var axios$3 = { exports: {} }; var axios$2 = { exports: {} }; var bind$2 = function bind2(fn, thisArg) { return function wrap2() { var args = new Array(arguments.length); for (var i2 = 0; i2 < args.length; i2++) { args[i2] = arguments[i2]; } return fn.apply(thisArg, args); }; }; var bind$1 = bind$2; var toString$2 = Object.prototype.toString; var kindOf = function(cache2) { return function(thing) { var str = toString$2.call(thing); return cache2[str] || (cache2[str] = str.slice(8, -1).toLowerCase()); }; }(/* @__PURE__ */ Object.create(null)); function kindOfTest(type) { type = type.toLowerCase(); return function isKindOf(thing) { return kindOf(thing) === type; }; } function isArray$2(val) { return Array.isArray(val); } function isUndefined(val) { return typeof val === "undefined"; } function isBuffer(val) { return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && typeof val.constructor.isBuffer === "function" && val.constructor.isBuffer(val); } var isArrayBuffer = kindOfTest("ArrayBuffer"); function isArrayBufferView(val) { var result2; if (typeof ArrayBuffer !== "undefined" && ArrayBuffer.isView) { result2 = ArrayBuffer.isView(val); } else { result2 = val && val.buffer && isArrayBuffer(val.buffer); } return result2; } function isString$4(val) { return typeof val === "string"; } function isNumber$1(val) { return typeof val === "number"; } function isObject$5(val) { return val !== null && typeof val === "object"; } function isPlainObject$1(val) { if (kindOf(val) !== "object") { return false; } var prototype2 = Object.getPrototypeOf(val); return prototype2 === null || prototype2 === Object.prototype; } var isDate$1 = kindOfTest("Date"); var isFile = kindOfTest("File"); var isBlob$1 = kindOfTest("Blob"); var isFileList = kindOfTest("FileList"); function isFunction$1(val) { return toString$2.call(val) === "[object Function]"; } function isStream(val) { return isObject$5(val) && isFunction$1(val.pipe); } function isFormData(thing) { var pattern = "[object FormData]"; return thing && (typeof FormData === "function" && thing instanceof FormData || toString$2.call(thing) === pattern || isFunction$1(thing.toString) && thing.toString() === pattern); } var isURLSearchParams = kindOfTest("URLSearchParams"); function trim(str) { return str.trim ? str.trim() : str.replace(/^\s+|\s+$/g, ""); } function isStandardBrowserEnv() { if (typeof navigator !== "undefined" && (navigator.product === "ReactNative" || navigator.product === "NativeScript" || navigator.product === "NS")) { return false; } return typeof window !== "undefined" && typeof document !== "undefined"; } function forEach$1(obj, fn) { if (obj === null || typeof obj === "undefined") { return; } if (typeof obj !== "object") { obj = [obj]; } if (isArray$2(obj)) { for (var i2 = 0, l = obj.length; i2 < l; i2++) { fn.call(null, obj[i2], i2, obj); } } else { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { fn.call(null, obj[key], key, obj); } } } } function merge() { var result2 = {}; function assignValue(val, key) { if (isPlainObject$1(result2[key]) && isPlainObject$1(val)) { result2[key] = merge(result2[key], val); } else if (isPlainObject$1(val)) { result2[key] = merge({}, val); } else if (isArray$2(val)) { result2[key] = val.slice(); } else { result2[key] = val; } } for (var i2 = 0, l = arguments.length; i2 < l; i2++) { forEach$1(arguments[i2], assignValue); } return result2; } function extend(a2, b, thisArg) { forEach$1(b, function assignValue(val, key) { if (thisArg && typeof val === "function") { a2[key] = bind$1(val, thisArg); } else { a2[key] = val; } }); return a2; } function stripBOM(content) { if (content.charCodeAt(0) === 65279) { content = content.slice(1); } return content; } function inherits(constructor, superConstructor, props, descriptors2) { constructor.prototype = Object.create(superConstructor.prototype, descriptors2); constructor.prototype.constructor = constructor; props && Object.assign(constructor.prototype, props); } function toFlatObject(sourceObj, destObj, filter) { var props; var i2; var prop; var merged = {}; destObj = destObj || {}; do { props = Object.getOwnPropertyNames(sourceObj); i2 = props.length; while (i2-- > 0) { prop = props[i2]; if (!merged[prop]) { destObj[prop] = sourceObj[prop]; merged[prop] = true; } } sourceObj = Object.getPrototypeOf(sourceObj); } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype); return destObj; } function endsWith$1(str, searchString, position) { str = String(str); if (position === void 0 || position > str.length) { position = str.length; } position -= searchString.length; var lastIndex = str.indexOf(searchString, position); return lastIndex !== -1 && lastIndex === position; } function toArray(thing) { if (!thing) return null; var i2 = thing.length; if (isUndefined(i2)) return null; var arr = new Array(i2); while (i2-- > 0) { arr[i2] = thing[i2]; } return arr; } var isTypedArray = function(TypedArray) { return function(thing) { return TypedArray && thing instanceof TypedArray; }; }(typeof Uint8Array !== "undefined" && Object.getPrototypeOf(Uint8Array)); var utils$c = { isArray: isArray$2, isArrayBuffer, isBuffer, isFormData, isArrayBufferView, isString: isString$4, isNumber: isNumber$1, isObject: isObject$5, isPlainObject: isPlainObject$1, isUndefined, isDate: isDate$1, isFile, isBlob: isBlob$1, isFunction: isFunction$1, isStream, isURLSearchParams, isStandardBrowserEnv, forEach: forEach$1, merge, extend, trim, stripBOM, inherits, toFlatObject, kindOf, kindOfTest, endsWith: endsWith$1, toArray, isTypedArray, isFileList }; var utils$b = utils$c; function encode(val) { return encodeURIComponent(val).replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, "+").replace(/%5B/gi, "[").replace(/%5D/gi, "]"); } var buildURL$1 = function buildURL2(url, params, paramsSerializer) { if (!params) { return url; } var serializedParams; if (paramsSerializer) { serializedParams = paramsSerializer(params); } else if (utils$b.isURLSearchParams(params)) { serializedParams = params.toString(); } else { var parts = []; utils$b.forEach(params, function serialize(val, key) { if (val === null || typeof val === "undefined") { return; } if (utils$b.isArray(val)) { key = key + "[]"; } else { val = [val]; } utils$b.forEach(val, function parseValue2(v) { if (utils$b.isDate(v)) { v = v.toISOString(); } else if (utils$b.isObject(v)) { v = JSON.stringify(v); } parts.push(encode(key) + "=" + encode(v)); }); }); serializedParams = parts.join("&"); } if (serializedParams) { var hashmarkIndex = url.indexOf("#"); if (hashmarkIndex !== -1) { url = url.slice(0, hashmarkIndex); } url += (url.indexOf("?") === -1 ? "?" : "&") + serializedParams; } return url; }; var utils$a = utils$c; function InterceptorManager$1() { this.handlers = []; } InterceptorManager$1.prototype.use = function use(fulfilled, rejected, options) { this.handlers.push({ fulfilled, rejected, synchronous: options ? options.synchronous : false, runWhen: options ? options.runWhen : null }); return this.handlers.length - 1; }; InterceptorManager$1.prototype.eject = function eject(id) { if (this.handlers[id]) { this.handlers[id] = null; } }; InterceptorManager$1.prototype.forEach = function forEach2(fn) { utils$a.forEach(this.handlers, function forEachHandler(h2) { if (h2 !== null) { fn(h2); } }); }; var InterceptorManager_1 = InterceptorManager$1; var utils$9 = utils$c; var normalizeHeaderName$1 = function normalizeHeaderName2(headers, normalizedName) { utils$9.forEach(headers, function processHeader(value, name) { if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) { headers[normalizedName] = value; delete headers[name]; } }); }; var utils$8 = utils$c; function AxiosError$2(message, code2, config, request, response) { Error.call(this); this.message = message; this.name = "AxiosError"; code2 && (this.code = code2); config && (this.config = config); request && (this.request = request); response && (this.response = response); } utils$8.inherits(AxiosError$2, Error, { toJSON: function toJSON2() { return { message: this.message, name: this.name, description: this.description, number: this.number, fileName: this.fileName, lineNumber: this.lineNumber, columnNumber: this.columnNumber, stack: this.stack, config: this.config, code: this.code, status: this.response && this.response.status ? this.response.status : null }; } }); var prototype$1 = AxiosError$2.prototype; var descriptors = {}; [ "ERR_BAD_OPTION_VALUE", "ERR_BAD_OPTION", "ECONNABORTED", "ETIMEDOUT", "ERR_NETWORK", "ERR_FR_TOO_MANY_REDIRECTS", "ERR_DEPRECATED", "ERR_BAD_RESPONSE", "ERR_BAD_REQUEST", "ERR_CANCELED" ].forEach(function(code2) { descriptors[code2] = { value: code2 }; }); Object.defineProperties(AxiosError$2, descriptors); Object.defineProperty(prototype$1, "isAxiosError", { value: true }); AxiosError$2.from = function(error, code2, config, request, response, customProps) { var axiosError = Object.create(prototype$1); utils$8.toFlatObject(error, axiosError, function filter(obj) { return obj !== Error.prototype; }); AxiosError$2.call(axiosError, error.message, code2, config, request, response); axiosError.name = error.name; customProps && Object.assign(axiosError, customProps); return axiosError; }; var AxiosError_1 = AxiosError$2; var transitional = { silentJSONParsing: true, forcedJSONParsing: true, clarifyTimeoutError: false }; var utils$7 = utils$c; function toFormData$1(obj, formData) { formData = formData || new FormData(); var stack2 = []; function convertValue(value) { if (value === null) return ""; if (utils$7.isDate(value)) { return value.toISOString(); } if (utils$7.isArrayBuffer(value) || utils$7.isTypedArray(value)) { return typeof Blob === "function" ? new Blob([value]) : Buffer.from(value); } return value; } function build(data2, parentKey) { if (utils$7.isPlainObject(data2) || utils$7.isArray(data2)) { if (stack2.indexOf(data2) !== -1) { throw Error("Circular reference detected in " + parentKey); } stack2.push(data2); utils$7.forEach(data2, function each(value, key) { if (utils$7.isUndefined(value)) return; var fullKey = parentKey ? parentKey + "." + key : key; var arr; if (value && !parentKey && typeof value === "object") { if (utils$7.endsWith(key, "{}")) { value = JSON.stringify(value); } else if (utils$7.endsWith(key, "[]") && (arr = utils$7.toArray(value))) { arr.forEach(function(el) { !utils$7.isUndefined(el) && formData.append(fullKey, convertValue(el)); }); return; } } build(value, fullKey); }); stack2.pop(); } else { formData.append(parentKey, convertValue(data2)); } } build(obj); return formData; } var toFormData_1 = toFormData$1; var settle; var hasRequiredSettle; function requireSettle() { if (hasRequiredSettle) return settle; hasRequiredSettle = 1; var AxiosError2 = AxiosError_1; settle = function settle2(resolve2, reject, response) { var validateStatus = response.config.validateStatus; if (!response.status || !validateStatus || validateStatus(response.status)) { resolve2(response); } else { reject(new AxiosError2( "Request failed with status code " + response.status, [AxiosError2.ERR_BAD_REQUEST, AxiosError2.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4], response.config, response.request, response )); } }; return settle; } var cookies; var hasRequiredCookies; function requireCookies() { if (hasRequiredCookies) return cookies; hasRequiredCookies = 1; var utils2 = utils$c; cookies = utils2.isStandardBrowserEnv() ? function standardBrowserEnv() { return { write: function write(name, value, expires, path, domain, secure) { var cookie = []; cookie.push(name + "=" + encodeURIComponent(value)); if (utils2.isNumber(expires)) { cookie.push("expires=" + new Date(expires).toGMTString()); } if (utils2.isString(path)) { cookie.push("path=" + path); } if (utils2.isString(domain)) { cookie.push("domain=" + domain); } if (secure === true) { cookie.push("secure"); } document.cookie = cookie.join("; "); }, read: function read(name) { var match = document.cookie.match(new RegExp("(^|;\\s*)(" + name + ")=([^;]*)")); return match ? decodeURIComponent(match[3]) : null; }, remove: function remove2(name) { this.write(name, "", Date.now() - 864e5); } }; }() : function nonStandardBrowserEnv() { return { write: function write() { }, read: function read() { return null; }, remove: function remove2() { } }; }(); return cookies; } var isAbsoluteURL$1 = function isAbsoluteURL2(url) { return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url); }; var combineURLs$1 = function combineURLs2(baseURL, relativeURL) { return relativeURL ? baseURL.replace(/\/+$/, "") + "/" + relativeURL.replace(/^\/+/, "") : baseURL; }; var isAbsoluteURL = isAbsoluteURL$1; var combineURLs = combineURLs$1; var buildFullPath$1 = function buildFullPath2(baseURL, requestedURL) { if (baseURL && !isAbsoluteURL(requestedURL)) { return combineURLs(baseURL, requestedURL); } return requestedURL; }; var parseHeaders$1; var hasRequiredParseHeaders; function requireParseHeaders() { if (hasRequiredParseHeaders) return parseHeaders$1; hasRequiredParseHeaders = 1; var utils2 = utils$c; var ignoreDuplicateOf = [ "age", "authorization", "content-length", "content-type", "etag", "expires", "from", "host", "if-modified-since", "if-unmodified-since", "last-modified", "location", "max-forwards", "proxy-authorization", "referer", "retry-after", "user-agent" ]; parseHeaders$1 = function parseHeaders2(headers) { var parsed = {}; var key; var val; var i2; if (!headers) { return parsed; } utils2.forEach(headers.split("\n"), function parser(line) { i2 = line.indexOf(":"); key = utils2.trim(line.substr(0, i2)).toLowerCase(); val = utils2.trim(line.substr(i2 + 1)); if (key) { if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) { return; } if (key === "set-cookie") { parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]); } else { parsed[key] = parsed[key] ? parsed[key] + ", " + val : val; } } }); return parsed; }; return parseHeaders$1; } var isURLSameOrigin; var hasRequiredIsURLSameOrigin; function requireIsURLSameOrigin() { if (hasRequiredIsURLSameOrigin) return isURLSameOrigin; hasRequiredIsURLSameOrigin = 1; var utils2 = utils$c; isURLSameOrigin = utils2.isStandardBrowserEnv() ? function standardBrowserEnv() { var msie = /(msie|trident)/i.test(navigator.userAgent); var urlParsingNode = document.createElement("a"); var originURL; function resolveURL(url) { var href = url; if (msie) { urlParsingNode.setAttribute("href", href); href = urlParsingNode.href; } urlParsingNode.setAttribute("href", href); return { href: urlParsingNode.href, protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, "") : "", host: urlParsingNode.host, search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, "") : "", hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, "") : "", hostname: urlParsingNode.hostname, port: urlParsingNode.port, pathname: urlParsingNode.pathname.charAt(0) === "/" ? urlParsingNode.pathname : "/" + urlParsingNode.pathname }; } originURL = resolveURL(window.location.href); return function isURLSameOrigin2(requestURL) { var parsed = utils2.isString(requestURL) ? resolveURL(requestURL) : requestURL; return parsed.protocol === originURL.protocol && parsed.host === originURL.host; }; }() : function nonStandardBrowserEnv() { return function isURLSameOrigin2() { return true; }; }(); return isURLSameOrigin; } var CanceledError_1; var hasRequiredCanceledError; function requireCanceledError() { if (hasRequiredCanceledError) return CanceledError_1; hasRequiredCanceledError = 1; var AxiosError2 = AxiosError_1; var utils2 = utils$c; function CanceledError2(message) { AxiosError2.call(this, message == null ? "canceled" : message, AxiosError2.ERR_CANCELED); this.name = "CanceledError"; } utils2.inherits(CanceledError2, AxiosError2, { __CANCEL__: true }); CanceledError_1 = CanceledError2; return CanceledError_1; } var parseProtocol; var hasRequiredParseProtocol; function requireParseProtocol() { if (hasRequiredParseProtocol) return parseProtocol; hasRequiredParseProtocol = 1; parseProtocol = function parseProtocol2(url) { var match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url); return match && match[1] || ""; }; return parseProtocol; } var xhr; var hasRequiredXhr; function requireXhr() { if (hasRequiredXhr) return xhr; hasRequiredXhr = 1; var utils2 = utils$c; var settle2 = requireSettle(); var cookies2 = requireCookies(); var buildURL2 = buildURL$1; var buildFullPath2 = buildFullPath$1; var parseHeaders2 = requireParseHeaders(); var isURLSameOrigin2 = requireIsURLSameOrigin(); var transitionalDefaults2 = transitional; var AxiosError2 = AxiosError_1; var CanceledError2 = requireCanceledError(); var parseProtocol2 = requireParseProtocol(); xhr = function xhrAdapter(config) { return new Promise(function dispatchXhrRequest(resolve2, reject) { var requestData = config.data; var requestHeaders = config.headers; var responseType = config.responseType; var onCanceled; function done() { if (config.cancelToken) { config.cancelToken.unsubscribe(onCanceled); } if (config.signal) { config.signal.removeEventListener("abort", onCanceled); } } if (utils2.isFormData(requestData) && utils2.isStandardBrowserEnv()) { delete requestHeaders["Content-Type"]; } var request = new XMLHttpRequest(); if (config.auth) { var username = config.auth.username || ""; var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : ""; requestHeaders.Authorization = "Basic " + btoa(username + ":" + password); } var fullPath = buildFullPath2(config.baseURL, config.url); request.open(config.method.toUpperCase(), buildURL2(fullPath, config.params, config.paramsSerializer), true); request.timeout = config.timeout; function onloadend() { if (!request) { return; } var responseHeaders = "getAllResponseHeaders" in request ? parseHeaders2(request.getAllResponseHeaders()) : null; var responseData = !responseType || responseType === "text" || responseType === "json" ? request.responseText : request.response; var response = { data: responseData, status: request.status, statusText: request.statusText, headers: responseHeaders, config, request }; settle2(function _resolve(value) { resolve2(value); done(); }, function _reject(err) { reject(err); done(); }, response); request = null; } if ("onloadend" in request) { request.onloadend = onloadend; } else { request.onreadystatechange = function handleLoad() { if (!request || request.readyState !== 4) { return; } if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf("file:") === 0)) { return; } setTimeout(onloadend); }; } request.onabort = function handleAbort() { if (!request) { return; } reject(new AxiosError2("Request aborted", AxiosError2.ECONNABORTED, config, request)); request = null; }; request.onerror = function handleError2() { reject(new AxiosError2("Network Error", AxiosError2.ERR_NETWORK, config, request, request)); request = null; }; request.ontimeout = function handleTimeout() { var timeoutErrorMessage = config.timeout ? "timeout of " + config.timeout + "ms exceeded" : "timeout exceeded"; var transitional2 = config.transitional || transitionalDefaults2; if (config.timeoutErrorMessage) { timeoutErrorMessage = config.timeoutErrorMessage; } reject(new AxiosError2( timeoutErrorMessage, transitional2.clarifyTimeoutError ? AxiosError2.ETIMEDOUT : AxiosError2.ECONNABORTED, config, request )); request = null; }; if (utils2.isStandardBrowserEnv()) { var xsrfValue = (config.withCredentials || isURLSameOrigin2(fullPath)) && config.xsrfCookieName ? cookies2.read(config.xsrfCookieName) : void 0; if (xsrfValue) { requestHeaders[config.xsrfHeaderName] = xsrfValue; } } if ("setRequestHeader" in request) { utils2.forEach(requestHeaders, function setRequestHeader(val, key) { if (typeof requestData === "undefined" && key.toLowerCase() === "content-type") { delete requestHeaders[key]; } else { request.setRequestHeader(key, val); } }); } if (!utils2.isUndefined(config.withCredentials)) { request.withCredentials = !!config.withCredentials; } if (responseType && responseType !== "json") { request.responseType = config.responseType; } if (typeof config.onDownloadProgress === "function") { request.addEventListener("progress", config.onDownloadProgress); } if (typeof config.onUploadProgress === "function" && request.upload) { request.upload.addEventListener("progress", config.onUploadProgress); } if (config.cancelToken || config.signal) { onCanceled = function(cancel) { if (!request) { return; } reject(!cancel || cancel && cancel.type ? new CanceledError2() : cancel); request.abort(); request = null; }; config.cancelToken && config.cancelToken.subscribe(onCanceled); if (config.signal) { config.signal.aborted ? onCanceled() : config.signal.addEventListener("abort", onCanceled); } } if (!requestData) { requestData = null; } var protocol2 = parseProtocol2(fullPath); if (protocol2 && ["http", "https", "file"].indexOf(protocol2) === -1) { reject(new AxiosError2("Unsupported protocol " + protocol2 + ":", AxiosError2.ERR_BAD_REQUEST, config)); return; } request.send(requestData); }); }; return xhr; } var _null; var hasRequired_null; function require_null() { if (hasRequired_null) return _null; hasRequired_null = 1; _null = null; return _null; } var utils$6 = utils$c; var normalizeHeaderName = normalizeHeaderName$1; var AxiosError$1 = AxiosError_1; var transitionalDefaults = transitional; var toFormData = toFormData_1; var DEFAULT_CONTENT_TYPE = { "Content-Type": "application/x-www-form-urlencoded" }; function setContentTypeIfUnset(headers, value) { if (!utils$6.isUndefined(headers) && utils$6.isUndefined(headers["Content-Type"])) { headers["Content-Type"] = value; } } function getDefaultAdapter() { var adapter; if (typeof XMLHttpRequest !== "undefined") { adapter = requireXhr(); } else if (typeof process !== "undefined" && Object.prototype.toString.call(process) === "[object process]") { adapter = requireXhr(); } return adapter; } function stringifySafely(rawValue, parser, encoder) { if (utils$6.isString(rawValue)) { try { (parser || JSON.parse)(rawValue); return utils$6.trim(rawValue); } catch (e2) { if (e2.name !== "SyntaxError") { throw e2; } } } return (encoder || JSON.stringify)(rawValue); } var defaults$4 = { transitional: transitionalDefaults, adapter: getDefaultAdapter(), transformRequest: [function transformRequest(data2, headers) { normalizeHeaderName(headers, "Accept"); normalizeHeaderName(headers, "Content-Type"); if (utils$6.isFormData(data2) || utils$6.isArrayBuffer(data2) || utils$6.isBuffer(data2) || utils$6.isStream(data2) || utils$6.isFile(data2) || utils$6.isBlob(data2)) { return data2; } if (utils$6.isArrayBufferView(data2)) { return data2.buffer; } if (utils$6.isURLSearchParams(data2)) { setContentTypeIfUnset(headers, "application/x-www-form-urlencoded;charset=utf-8"); return data2.toString(); } var isObjectPayload = utils$6.isObject(data2); var contentType = headers && headers["Content-Type"]; var isFileList2; if ((isFileList2 = utils$6.isFileList(data2)) || isObjectPayload && contentType === "multipart/form-data") { var _FormData = this.env && this.env.FormData; return toFormData(isFileList2 ? { "files[]": data2 } : data2, _FormData && new _FormData()); } else if (isObjectPayload || contentType === "application/json") { setContentTypeIfUnset(headers, "application/json"); return stringifySafely(data2); } return data2; }], transformResponse: [function transformResponse(data2) { var transitional2 = this.transitional || defaults$4.transitional; var silentJSONParsing = transitional2 && transitional2.silentJSONParsing; var forcedJSONParsing = transitional2 && transitional2.forcedJSONParsing; var strictJSONParsing = !silentJSONParsing && this.responseType === "json"; if (strictJSONParsing || forcedJSONParsing && utils$6.isString(data2) && data2.length) { try { return JSON.parse(data2); } catch (e2) { if (strictJSONParsing) { if (e2.name === "SyntaxError") { throw AxiosError$1.from(e2, AxiosError$1.ERR_BAD_RESPONSE, this, null, this.response); } throw e2; } } } return data2; }], timeout: 0, xsrfCookieName: "XSRF-TOKEN", xsrfHeaderName: "X-XSRF-TOKEN", maxContentLength: -1, maxBodyLength: -1, env: { FormData: require_null() }, validateStatus: function validateStatus(status) { return status >= 200 && status < 300; }, headers: { common: { "Accept": "application/json, text/plain, */*" } } }; utils$6.forEach(["delete", "get", "head"], function forEachMethodNoData(method) { defaults$4.headers[method] = {}; }); utils$6.forEach(["post", "put", "patch"], function forEachMethodWithData(method) { defaults$4.headers[method] = utils$6.merge(DEFAULT_CONTENT_TYPE); }); var defaults_1$1 = defaults$4; var utils$5 = utils$c; var defaults$3 = defaults_1$1; var transformData$1 = function transformData2(data2, headers, fns) { var context = this || defaults$3; utils$5.forEach(fns, function transform2(fn) { data2 = fn.call(context, data2, headers); }); return data2; }; var isCancel$1; var hasRequiredIsCancel; function requireIsCancel() { if (hasRequiredIsCancel) return isCancel$1; hasRequiredIsCancel = 1; isCancel$1 = function isCancel2(value) { return !!(value && value.__CANCEL__); }; return isCancel$1; } var utils$4 = utils$c; var transformData = transformData$1; var isCancel = requireIsCancel(); var defaults$2 = defaults_1$1; var CanceledError = requireCanceledError(); function throwIfCancellationRequested(config) { if (config.cancelToken) { config.cancelToken.throwIfRequested(); } if (config.signal && config.signal.aborted) { throw new CanceledError(); } } var dispatchRequest$1 = function dispatchRequest2(config) { throwIfCancellationRequested(config); config.headers = config.headers || {}; config.data = transformData.call( config, config.data, config.headers, config.transformRequest ); config.headers = utils$4.merge( config.headers.common || {}, config.headers[config.method] || {}, config.headers ); utils$4.forEach( ["delete", "get", "head", "post", "put", "patch", "common"], function cleanHeaderConfig(method) { delete config.headers[method]; } ); var adapter = config.adapter || defaults$2.adapter; return adapter(config).then(function onAdapterResolution(response) { throwIfCancellationRequested(config); response.data = transformData.call( config, response.data, response.headers, config.transformResponse ); return response; }, function onAdapterRejection(reason) { if (!isCancel(reason)) { throwIfCancellationRequested(config); if (reason && reason.response) { reason.response.data = transformData.call( config, reason.response.data, reason.response.headers, config.transformResponse ); } } return Promise.reject(reason); }); }; var utils$3 = utils$c; var mergeConfig$2 = function mergeConfig2(config1, config2) { config2 = config2 || {}; var config = {}; function getMergedValue(target, source) { if (utils$3.isPlainObject(target) && utils$3.isPlainObject(source)) { return utils$3.merge(target, source); } else if (utils$3.isPlainObject(source)) { return utils$3.merge({}, source); } else if (utils$3.isArray(source)) { return source.slice(); } return source; } function mergeDeepProperties(prop) { if (!utils$3.isUndefined(config2[prop])) { return getMergedValue(config1[prop], config2[prop]); } else if (!utils$3.isUndefined(config1[prop])) { return getMergedValue(void 0, config1[prop]); } } function valueFromConfig2(prop) { if (!utils$3.isUndefined(config2[prop])) { return getMergedValue(void 0, config2[prop]); } } function defaultToConfig2(prop) { if (!utils$3.isUndefined(config2[prop])) { return getMergedValue(void 0, config2[prop]); } else if (!utils$3.isUndefined(config1[prop])) { return getMergedValue(void 0, config1[prop]); } } function mergeDirectKeys(prop) { if (prop in config2) { return getMergedValue(config1[prop], config2[prop]); } else if (prop in config1) { return getMergedValue(void 0, config1[prop]); } } var mergeMap = { "url": valueFromConfig2, "method": valueFromConfig2, "data": valueFromConfig2, "baseURL": defaultToConfig2, "transformRequest": defaultToConfig2, "transformResponse": defaultToConfig2, "paramsSerializer": defaultToConfig2, "timeout": defaultToConfig2, "timeoutMessage": defaultToConfig2, "withCredentials": defaultToConfig2, "adapter": defaultToConfig2, "responseType": defaultToConfig2, "xsrfCookieName": defaultToConfig2, "xsrfHeaderName": defaultToConfig2, "onUploadProgress": defaultToConfig2, "onDownloadProgress": defaultToConfig2, "decompress": defaultToConfig2, "maxContentLength": defaultToConfig2, "maxBodyLength": defaultToConfig2, "beforeRedirect": defaultToConfig2, "transport": defaultToConfig2, "httpAgent": defaultToConfig2, "httpsAgent": defaultToConfig2, "cancelToken": defaultToConfig2, "socketPath": defaultToConfig2, "responseEncoding": defaultToConfig2, "validateStatus": mergeDirectKeys }; utils$3.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) { var merge2 = mergeMap[prop] || mergeDeepProperties; var configValue = merge2(prop); utils$3.isUndefined(configValue) && merge2 !== mergeDirectKeys || (config[prop] = configValue); }); return config; }; var data; var hasRequiredData; function requireData() { if (hasRequiredData) return data; hasRequiredData = 1; data = { "version": "0.27.2" }; return data; } var VERSION$2 = requireData().version; var AxiosError = AxiosError_1; var validators$1 = {}; ["object", "boolean", "number", "function", "string", "symbol"].forEach(function(type, i2) { validators$1[type] = function validator2(thing) { return typeof thing === type || "a" + (i2 < 1 ? "n " : " ") + type; }; }); var deprecatedWarnings = {}; validators$1.transitional = function transitional2(validator2, version2, message) { function formatMessage(opt, desc) { return "[Axios v" + VERSION$2 + "] Transitional option '" + opt + "'" + desc + (message ? ". " + message : ""); } return function(value, opt, opts) { if (validator2 === false) { throw new AxiosError( formatMessage(opt, " has been removed" + (version2 ? " in " + version2 : "")), AxiosError.ERR_DEPRECATED ); } if (version2 && !deprecatedWarnings[opt]) { deprecatedWarnings[opt] = true; console.warn( formatMessage( opt, " has been deprecated since v" + version2 + " and will be removed in the near future" ) ); } return validator2 ? validator2(value, opt, opts) : true; }; }; function assertOptions(options, schema, allowUnknown) { if (typeof options !== "object") { throw new AxiosError("options must be an object", AxiosError.ERR_BAD_OPTION_VALUE); } var keys2 = Object.keys(options); var i2 = keys2.length; while (i2-- > 0) { var opt = keys2[i2]; var validator2 = schema[opt]; if (validator2) { var value = options[opt]; var result2 = value === void 0 || validator2(value, opt, options); if (result2 !== true) { throw new AxiosError("option " + opt + " must be " + result2, AxiosError.ERR_BAD_OPTION_VALUE); } continue; } if (allowUnknown !== true) { throw new AxiosError("Unknown option " + opt, AxiosError.ERR_BAD_OPTION); } } } var validator$1 = { assertOptions, validators: validators$1 }; var utils$2 = utils$c; var buildURL = buildURL$1; var InterceptorManager = InterceptorManager_1; var dispatchRequest = dispatchRequest$1; var mergeConfig$1 = mergeConfig$2; var buildFullPath = buildFullPath$1; var validator = validator$1; var validators = validator.validators; function Axios$1(instanceConfig) { this.defaults = instanceConfig; this.interceptors = { request: new InterceptorManager(), response: new InterceptorManager() }; } Axios$1.prototype.request = function request(configOrUrl, config) { if (typeof configOrUrl === "string") { config = config || {}; config.url = configOrUrl; } else { config = configOrUrl || {}; } config = mergeConfig$1(this.defaults, config); if (config.method) { config.method = config.method.toLowerCase(); } else if (this.defaults.method) { config.method = this.defaults.method.toLowerCase(); } else { config.method = "get"; } var transitional2 = config.transitional; if (transitional2 !== void 0) { validator.assertOptions(transitional2, { silentJSONParsing: validators.transitional(validators.boolean), forcedJSONParsing: validators.transitional(validators.boolean), clarifyTimeoutError: validators.transitional(validators.boolean) }, false); } var requestInterceptorChain = []; var synchronousRequestInterceptors = true; this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { if (typeof interceptor.runWhen === "function" && interceptor.runWhen(config) === false) { return; } synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous; requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected); }); var responseInterceptorChain = []; this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); }); var promise; if (!synchronousRequestInterceptors) { var chain = [dispatchRequest, void 0]; Array.prototype.unshift.apply(chain, requestInterceptorChain); chain = chain.concat(responseInterceptorChain); promise = Promise.resolve(config); while (chain.length) { promise = promise.then(chain.shift(), chain.shift()); } return promise; } var newConfig = config; while (requestInterceptorChain.length) { var onFulfilled = requestInterceptorChain.shift(); var onRejected = requestInterceptorChain.shift(); try { newConfig = onFulfilled(newConfig); } catch (error) { onRejected(error); break; } } try { promise = dispatchRequest(newConfig); } catch (error) { return Promise.reject(error); } while (responseInterceptorChain.length) { promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift()); } return promise; }; Axios$1.prototype.getUri = function getUri(config) { config = mergeConfig$1(this.defaults, config); var fullPath = buildFullPath(config.baseURL, config.url); return buildURL(fullPath, config.params, config.paramsSerializer); }; utils$2.forEach(["delete", "get", "head", "options"], function forEachMethodNoData(method) { Axios$1.prototype[method] = function(url, config) { return this.request(mergeConfig$1(config || {}, { method, url, data: (config || {}).data })); }; }); utils$2.forEach(["post", "put", "patch"], function forEachMethodWithData(method) { function generateHTTPMethod(isForm) { return function httpMethod(url, data2, config) { return this.request(mergeConfig$1(config || {}, { method, headers: isForm ? { "Content-Type": "multipart/form-data" } : {}, url, data: data2 })); }; } Axios$1.prototype[method] = generateHTTPMethod(); Axios$1.prototype[method + "Form"] = generateHTTPMethod(true); }); var Axios_1 = Axios$1; var CancelToken_1; var hasRequiredCancelToken; function requireCancelToken() { if (hasRequiredCancelToken) return CancelToken_1; hasRequiredCancelToken = 1; var CanceledError2 = requireCanceledError(); function CancelToken(executor) { if (typeof executor !== "function") { throw new TypeError("executor must be a function."); } var resolvePromise; this.promise = new Promise(function promiseExecutor(resolve2) { resolvePromise = resolve2; }); var token2 = this; this.promise.then(function(cancel) { if (!token2._listeners) return; var i2; var l = token2._listeners.length; for (i2 = 0; i2 < l; i2++) { token2._listeners[i2](cancel); } token2._listeners = null; }); this.promise.then = function(onfulfilled) { var _resolve; var promise = new Promise(function(resolve2) { token2.subscribe(resolve2); _resolve = resolve2; }).then(onfulfilled); promise.cancel = function reject() { token2.unsubscribe(_resolve); }; return promise; }; executor(function cancel(message) { if (token2.reason) { return; } token2.reason = new CanceledError2(message); resolvePromise(token2.reason); }); } CancelToken.prototype.throwIfRequested = function throwIfRequested() { if (this.reason) { throw this.reason; } }; CancelToken.prototype.subscribe = function subscribe(listener) { if (this.reason) { listener(this.reason); return; } if (this._listeners) { this._listeners.push(listener); } else { this._listeners = [listener]; } }; CancelToken.prototype.unsubscribe = function unsubscribe(listener) { if (!this._listeners) { return; } var index2 = this._listeners.indexOf(listener); if (index2 !== -1) { this._listeners.splice(index2, 1); } }; CancelToken.source = function source() { var cancel; var token2 = new CancelToken(function executor(c2) { cancel = c2; }); return { token: token2, cancel }; }; CancelToken_1 = CancelToken; return CancelToken_1; } var spread; var hasRequiredSpread; function requireSpread() { if (hasRequiredSpread) return spread; hasRequiredSpread = 1; spread = function spread2(callback) { return function wrap2(arr) { return callback.apply(null, arr); }; }; return spread; } var isAxiosError; var hasRequiredIsAxiosError; function requireIsAxiosError() { if (hasRequiredIsAxiosError) return isAxiosError; hasRequiredIsAxiosError = 1; var utils2 = utils$c; isAxiosError = function isAxiosError2(payload) { return utils2.isObject(payload) && payload.isAxiosError === true; }; return isAxiosError; } var utils$1 = utils$c; var bind = bind$2; var Axios = Axios_1; var mergeConfig = mergeConfig$2; var defaults$1 = defaults_1$1; function createInstance(defaultConfig2) { var context = new Axios(defaultConfig2); var instance = bind(Axios.prototype.request, context); utils$1.extend(instance, Axios.prototype, context); utils$1.extend(instance, context); instance.create = function create2(instanceConfig) { return createInstance(mergeConfig(defaultConfig2, instanceConfig)); }; return instance; } var axios$1 = createInstance(defaults$1); axios$1.Axios = Axios; axios$1.CanceledError = requireCanceledError(); axios$1.CancelToken = requireCancelToken(); axios$1.isCancel = requireIsCancel(); axios$1.VERSION = requireData().version; axios$1.toFormData = toFormData_1; axios$1.AxiosError = AxiosError_1; axios$1.Cancel = axios$1.CanceledError; axios$1.all = function all(promises) { return Promise.all(promises); }; axios$1.spread = requireSpread(); axios$1.isAxiosError = requireIsAxiosError(); axios$2.exports = axios$1; axios$2.exports.default = axios$1; (function(module2) { module2.exports = axios$2.exports; })(axios$3); const axios = /* @__PURE__ */ getDefaultExportFromCjs(axios$3.exports); var r = function(r2) { return function(r3) { return !!r3 && "object" == typeof r3; }(r2) && !function(r3) { var t2 = Object.prototype.toString.call(r3); return "[object RegExp]" === t2 || "[object Date]" === t2 || function(r4) { return r4.$$typeof === e; }(r3); }(r2); }, e = "function" == typeof Symbol && Symbol.for ? Symbol.for("react.element") : 60103; function t(r2, e2) { return false !== e2.clone && e2.isMergeableObject(r2) ? u(Array.isArray(r2) ? [] : {}, r2, e2) : r2; } function n(r2, e2, n2) { return r2.concat(e2).map(function(r3) { return t(r3, n2); }); } function o(r2) { return Object.keys(r2).concat(function(r3) { return Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(r3).filter(function(e2) { return r3.propertyIsEnumerable(e2); }) : []; }(r2)); } function c(r2, e2) { try { return e2 in r2; } catch (r3) { return false; } } function u(e2, i2, a2) { (a2 = a2 || {}).arrayMerge = a2.arrayMerge || n, a2.isMergeableObject = a2.isMergeableObject || r, a2.cloneUnlessOtherwiseSpecified = t; var f = Array.isArray(i2); return f === Array.isArray(e2) ? f ? a2.arrayMerge(e2, i2, a2) : function(r2, e3, n2) { var i3 = {}; return n2.isMergeableObject(r2) && o(r2).forEach(function(e4) { i3[e4] = t(r2[e4], n2); }), o(e3).forEach(function(o2) { (function(r3, e4) { return c(r3, e4) && !(Object.hasOwnProperty.call(r3, e4) && Object.propertyIsEnumerable.call(r3, e4)); })(r2, o2) || (i3[o2] = c(r2, o2) && n2.isMergeableObject(e3[o2]) ? function(r3, e4) { if (!e4.customMerge) return u; var t2 = e4.customMerge(r3); return "function" == typeof t2 ? t2 : u; }(o2, n2)(r2[o2], e3[o2], n2) : t(e3[o2], n2)); }), i3; }(e2, i2, a2) : t(i2, a2); } u.all = function(r2, e2) { if (!Array.isArray(r2)) throw new Error("first argument should be an array"); return r2.reduce(function(r3, t2) { return u(r3, t2, e2); }, {}); }; var i$1 = u; function a(r2) { var e2 = (r2 = r2 || {}).storage || window && window.localStorage, t2 = r2.key || "vuex"; function n2(r3, e3) { var t3 = e3.getItem(r3); try { return "string" == typeof t3 ? JSON.parse(t3) : "object" == typeof t3 ? t3 : void 0; } catch (r4) { } } function o2() { return true; } function c2(r3, e3, t3) { return t3.setItem(r3, JSON.stringify(e3)); } function u2(r3, e3) { return Array.isArray(e3) ? e3.reduce(function(e4, t3) { return function(r4, e5, t4, n4) { return !/^(__proto__|constructor|prototype)$/.test(e5) && ((e5 = e5.split ? e5.split(".") : e5.slice(0)).slice(0, -1).reduce(function(r5, e6) { return r5[e6] = r5[e6] || {}; }, r4)[e5.pop()] = t4), r4; }(e4, t3, (n3 = r3, void 0 === (n3 = ((o3 = t3).split ? o3.split(".") : o3).reduce(function(r4, e5) { return r4 && r4[e5]; }, n3)) ? void 0 : n3)); var n3, o3; }, {}) : r3; } function a2(r3) { return function(e3) { return r3.subscribe(e3); }; } (r2.assertStorage || function() { e2.setItem("@@", 1), e2.removeItem("@@"); })(e2); var f, s = function() { return (r2.getState || n2)(t2, e2); }; return r2.fetchBeforeUse && (f = s()), function(n3) { r2.fetchBeforeUse || (f = s()), "object" == typeof f && null !== f && (n3.replaceState(r2.overwrite ? f : i$1(n3.state, f, { arrayMerge: r2.arrayMerger || function(r3, e3) { return e3; }, clone: false })), (r2.rehydrated || function() { })(n3)), (r2.subscriber || a2)(n3)(function(n4, i2) { (r2.filter || o2)(n4) && (r2.setState || c2)(t2, (r2.reducer || u2)(i2, r2.paths), e2); }); }; } const ConfigurationService = {}; ConfigurationService.getConfig = async () => { var _a2, _b; try { const appUUID = (_a2 = store == null ? void 0 : store.getters) == null ? void 0 : _a2.appUUID; const token2 = (_b = store == null ? void 0 : store.getters) == null ? void 0 : _b.token; const url = `${"https://chat.keybeapi.com"}/config?appUUID=${appUUID}`; const response = await axios.get(url, { headers: { Authorization: "Bearer " + token2 } }); return response.data.data; } catch (e2) { return {}; } }; const LocationService = { getCountries: () => { } }; LocationService.getCountries = async () => { try { const url = "https://s3.us-east-2.amazonaws.com/storage.keybeapi.com/files/locations/countries.json"; const response = await axios.get(url, { method: "GET" }); const data2 = response.data; if (data2.length > 0) { return { status: true, countries: data2 }; } } catch (error) { console.error(error); return { status: false, countries: [] }; } }; const state$1 = { apiKey: "", appInfo: null, isLoggedIn: false, guestId: "", localConfig: null, loggedWith: "", user: {}, extradata: [], showAuthForm: false, timeOfConnection: "", token: "", habeasData: false, config: null, country: "co" }; const actions$1 = { async initApp(vuexContext) { if (!Object.keys(window).includes("keybe")) return; vuexContext.dispatch("getAppInfo"); if (vuexContext.getters.config.widgetWebSetup.authMethod !== vuexContext.state.loggedWith) { vuexContext.commit("SET_IS_LOGGED_IN", false); vuexContext.commit("SET_USER", {}); vuexContext.commit("SET_LOGGED_WITH", ""); vuexContext.commit("SET_MESSAGES", []); vuexContext.commit("SET_SHOW_CUSTOMIZED_QUESTIONS", false); vuexContext.commit("SET_TOKEN", ""); if (window.keybe.isLoggedIn()) ; } if (window.keybe.isLoggedIn()) vuexContext.dispatch("getUserInfo"); return true; }, async getAppInfo(vuexContext) { try { const appInfo = await window.keybe.getAppInfo(); vuexContext.commit("SET_APP_INFO", appInfo); const chatConfig = await ConfigurationService.getConfig(); vuexContext.commit("SET_CONFIG", chatConfig); return appInfo; } catch { vuexContext.dispatch("getAppInfoNew"); } }, async getAppInfoNew(vuexContext) { try { const config = { headers: { Authorization: `Bearer ${window.keybe.apiKey}`, "Content-Type": "application/json", accept: "application/json" } }; const response = await axios.get( `${"https://apps.keybeapi.com"}/widgets`, config ); vuexContext.commit("SET_APP_INFO", response.data); const chatConfig = await ConfigurationService.getConfig(); vuexContext.commit("SET_CONFIG", chatConfig); return response.data; } catch (err) { console.log(err); } }, async getUserInfo({ commit }) { if (!window.keybe.isLoggedIn()) { commit("SET_IS_LOGGED_IN", false); return; } commit("SET_TOKEN", window.keybe.getKeybeToken()); const user = await window.keybe.getUserInfo(); commit("SET_USER", user); commit("SET_IS_LOGGED_IN", true); return true; }, async checkUserExist({ dispatch }, data2) { const { name, phone, password } = data2; const userExist = await window.keybe.user_exist(phone); return userExist ? await dispatch("loginPhone", { phone, password }) : await dispatch("registerPhone", { name, phone, password }); }, async getTime(vuexContext) { try { vuexContext.commit("SET_TIME_OF_CONNECTION", hooks()); return true; } catch (e2) { console.log(e2); } }, async loginPhone({ dispatch }, { password, phone }) { const response = await window.keybe.loginPhone(phone, password, "co"); await dispatch("getUserInfo"); return response; }, async registerPhone({ dispatch }, { name, password, phone }) { const response = await window.keybe.registerPhone(phone, password, name, "co"); await dispatch("getUserInfo"); return response; }, async resetPasswordPhone(vuexContext, phone) { return await window.keybe.resetPasswordPhone(phone, "co"); }, async resetPasswordValidation(vuexContext, { code: code2, password }) { return await window.keybe.resetPasswordValidation(code2, password); }, async getCountry({ commit }) { const currentTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone; const getZone = await LocationService.getCountries(); if (currentTimezone) { const matchingCountry = getZone.countries.find((country) => { return country.timezones && country.timezones.some((zone) => zone.zoneName === currentTimezone); }); const matchingTimezone = matchingCountry.timezones.find((zone) => zone.zoneName === currentTimezone); if (matchingCountry && matchingTimezone) { const phoneCode = matchingCountry.iso2; if (phoneCode) { this.country = phoneCode.toLowerCase(); commit("SET_COUNTRY", this.country); } } else { console.error("No se encontr\xF3 una coincidencia para el timezone actual."); } } else { this.phoneNumber = { code: "CO", number: "57", phone: "", countryName: "Colombia" }; } } }; const mutations$1 = { "SET_API_KEY"(state2, value) { state2.apiKey = value; }, SET_APP_INFO(state2, appInfo) { state2.appInfo = appInfo; }, SET_GUEST_ID(state2, value) { state2.guestId = value; }, "SET_IS_LOGGED_IN"(state2, value) { state2.isLoggedIn = value; }, SET_LOCAL_CONFIG(state2, value) { state2.localConfig = value; }, SET_LOGGED_WITH(state2, value) { state2.loggedWith = value; }, "SET_SHOW_AUTH_FORM"(state2, value) { state2.showAuthForm = value; }, "SET_TIME_OF_CONNECTION"(state2, time) { state2.timeOfConnection = time; }, "SET_TOKEN"(state2, value) { state2.token = value; }, "SET_USER"(state2, user) { state2.user = user; }, "SET_EXTRADATA"(state2, extradata) { state2.extradata = extradata; }, "SET_HABEASDATA"(state2, terms) { state2.habeasData = terms; }, "SET_CONFIG"(state2, config) { state2.config = config; }, "SET_COUNTRY"(state2, country) { state2.country = country; } }; const getters$1 = { appUUID(state2) { var _a2, _b; return ((_a2 = state2.appInfo) == null ? void 0 : _a2.UUID) || ((_b = state2.appInfo) == null ? void 0 : _b.uuid) || ""; }, companyUUID(state2) { var _a2, _b; return state2.appInfo.companyUUID || ((_b = (_a2 = state2.appInfo) == null ? void 0 : _a2.company) == null ? void 0 : _b.uuid) || ""; }, config(state2) { if (!state2.appInfo) return {}; return state2.config || {}; }, language(state2, getters2) { return getters2.config.language; }, localConfig(state2) { return state2.localConfig || {}; }, showWorkingHoursAlert(state2, getters2) { if (!state2.timeOfConnection) return false; if (!getters2.config || !getters2.config.workingHours) return false; const momentDay = hooks().day(); const day = getters2.config.workingHours.days.find((day2) => { return day2.code === momentDay; }); if (!day) return false; if (day.isClosed) return true; if (day.schedules.length === 0) return false; let isOpen = false; const time = state2.timeOfConnection; day.schedules.forEach((schedule2) => { const from2 = hooks(schedule2.from, "HH:mm"); const until = hooks(schedule2.until, "HH:mm"); if (time.isAfter(from2) && time.isBefore(until)) isOpen = true; }); return !isOpen; }, urlBase() { return "https://conversationsapigke.kbe.ai/"; }, urlBaseNew() { return "https://chat.keybeapi.com"; }, assetsBase() { return "https://storage.googleapis.com/keybe-bluebird/img/web-agent"; }, token(state2) { return state2.token; } }; const auth = { actions: actions$1, getters: getters$1, mutations: mutations$1, state: state$1 }; const MessageService = {}; MessageService.sendUserMessage = async (data2) => { try { const url = `${"https://chat.keybeapi.com"}/message/web`; const response = await axios.post(url, data2); return response.data; } catch (e2) { console.log(e2); } }; let getRandomValues; const rnds8 = new Uint8Array(16); function rng() { if (!getRandomValues) { getRandomValues = typeof crypto !== "undefined" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto); if (!getRandomValues) { throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported"); } } return getRandomValues(rnds8); } const byteToHex = []; for (let i2 = 0; i2 < 256; ++i2) { byteToHex.push((i2 + 256).toString(16).slice(1)); } function unsafeStringify(arr, offset2 = 0) { return byteToHex[arr[offset2 + 0]] + byteToHex[arr[offset2 + 1]] + byteToHex[arr[offset2 + 2]] + byteToHex[arr[offset2 + 3]] + "-" + byteToHex[arr[offset2 + 4]] + byteToHex[arr[offset2 + 5]] + "-" + byteToHex[arr[offset2 + 6]] + byteToHex[arr[offset2 + 7]] + "-" + byteToHex[arr[offset2 + 8]] + byteToHex[arr[offset2 + 9]] + "-" + byteToHex[arr[offset2 + 10]] + byteToHex[arr[offset2 + 11]] + byteToHex[arr[offset2 + 12]] + byteToHex[arr[offset2 + 13]] + byteToHex[arr[offset2 + 14]] + byteToHex[arr[offset2 + 15]]; } const randomUUID = typeof crypto !== "undefined" && crypto.randomUUID && crypto.randomUUID.bind(crypto); const native = { randomUUID }; function v4(options, buf, offset2) { if (native.randomUUID && !buf && !options) { return native.randomUUID(); } options = options || {}; const rnds = options.random || (options.rng || rng)(); rnds[6] = rnds[6] & 15 | 64; rnds[8] = rnds[8] & 63 | 128; if (buf) { offset2 = offset2 || 0; for (let i2 = 0; i2 < 16; ++i2) { buf[offset2 + i2] = rnds[i2]; } return buf; } return unsafeStringify(rnds); } const state = { room: {}, messages: [], authorizationInterval: null, authorizationTimer: 0, error: { icon: "", message: "", show: false }, pictures: [ { src: "", w: 1200, h: 900, title: "" } ], endpointUrl: "", showCustomizedQuestions: false, verifyingIdentity: false, dataToGetChat: {} }; const mutations = { "SET_MESSAGES"(state2, messages) { state2.messages = messages; }, "ADD_MESSAGE"(state2, message) { state2.messages.push(message); }, "CLEAR_ERROR"(state2) { state2.error = { icon: "", message: "", show: false }; }, "SET_ERROR"(state2, value) { state2.error = value; }, "SET_AUTHORIZATION_INTERVAL"(state2, clearValue) { if (clearValue) { clearInterval(state2.authorizationInterval); state2.authorizationInterval = null; return; } state2.authorizationInterval = setInterval(() => { state2.authorizationTimer--; if (state2.authorizationTimer <= 0) { const customEvent = new CustomEvent("keybeAuthorizationTimeout"); window.dispatchEvent(customEvent); window.keybe.openChat({ value: true }); clearInterval(state2.authorizationInterval); state2.authorizationInterval = null; } }, 1e3); }, "SET_AUTHORIZATION_TIMER"(state2, value) { if (!value) { state2.authorizationTimer -= 1; return; } state2.authorizationTimer = value; }, "SET_ROOM"(state2, room) { state2.room = room; }, "SET_SHOW_CUSTOMIZED_QUESTIONS"(state2, value) { state2.showCustomizedQuestions = value; }, "SET_URL"(state2, url) { state2.endpointUrl = url; }, "SET_VERIFYING_IDENTITY"(state2, value) { state2.verifyingIdentity = value; }, "SET_DATA_TO_GET_CHAT"(state2, value) { state2.dataToGetChat = value; } }; const actions = { async sendMessage(vuexContext, data2) { const { media, mimetype, text } = data2; let type = "chat"; if (media) { switch (mimetype) { case "image/jpg": case "image/jpeg": case "image/png": type = "image"; break; case "application/pdf": type = "pdf"; break; case "audio/ogg": type = "audio"; break; default: type = "others"; } } const message = { media: media || "", sender: "user", text, status: "sending", companyUUID: vuexContext.getters.companyUUID, appUUID: vuexContext.getters.appUUID, type, userGuest: vuexContext.state.room.userGuest, channel: vuexContext.state.room.channel, roomId: vuexContext.state.room._id, userHost: vuexContext.state.room.userHost, origin: { event: "user-message-frontend", eventId: v4() } }; vuexContext.commit("ADD_MESSAGE", message); MessageService.sendUserMessage(message).then((data3) => { var _a2; const message2 = data3; if (((_a2 = message2 == null ? void 0 : message2.origin) == null ? void 0 : _a2.event) === "user-message-frontend") { const messageIndex = vuexContext.state.messages.findIndex( (m) => { var _a3, _b; return ((_a3 = m == null ? void 0 : m.origin) == null ? void 0 : _a3.eventId) === ((_b = message2 == null ? void 0 : message2.origin) == null ? void 0 : _b.eventId); } ); if (messageIndex >= 0) { const actualMessages = [...vuexContext.state.messages]; actualMessages[messageIndex] = { ...actualMessages[messageIndex], ...message2 }; vuexContext.commit("SET_MESSAGES", actualMessages); } } }).catch((e2) => { console.log(e2); }); }, resendMessages(vuexContext) { }, setPictureInPhotoSwipe(vuexContext, picture) { return new Promise((resolve2) => { const p2 = { src: picture, w: 0, h: 0, title: "" }; const img = document.createElement("img"); img.style.display = "none"; img.onload = (event) => { if (event.path) { p2.w = event.path[0].naturalWidth; p2.h = event.path[0].naturalHeight; } else if (event.explicitOriginalTarget) { p2.w = event.explicitOriginalTarget.naturalWidth; p2.h = event.explicitOriginalTarget.naturalHeight; } vuexContext.commit("SET_PHOTO_SWIPE_PICTURE", p2); document.getElementsByTagName("body")[0].removeChild(img); resolve2(true); }; img.src = picture; document.getElementsByTagName("body")[0].appendChild(img); }); } }; const getters = { customizedQuestions(state2, getters2, rootState, rootGetters) { return rootGetters.config.widgetWebSetup.customizedQuestions; }, permanentMessages(state2, getters2, rootState, rootGetters) { var _a2; return ((_a2 = rootGetters.config.widgetWebSetup) == null ? void 0 : _a2.permanentMessages) ? rootGetters.config.widgetWebSetup.permanentMessages : []; } }; const chat = { actions, getters, mutations, state }; const store = createStore({ modules: { auth, chat }, plugins: [ a({ key: "keybe-chat", paths: ["auth", "chat"] }) ] }); const conversations = {}; const UrlBaseNew = store.getters.urlBaseNew; conversations.uploadImage = async ({ appId, companyId, totalFiles, roomId, onUploadProgress }) => { try { const formData = new FormData(); for (const file of totalFiles) { formData.append("files", file); } const token2 = "GCyIH0Q23wvU0jTjgyGJtT3ClxnqoUTFePbpJ4wZQzyY8eu4UA2QCFqX0s9Ocpwx9JwQPSLGlaLgEnAm4KJDJGFrFdedNiLDcBdJ"; const response = await axios.post( `${""}/uploads/company/${companyId}/app/${appId}/room/${roomId}`, formData, { headers: { "Content-Type": "multipart/form-data", Authorization: "Bearer " + token2 }, onUploadProgress } ); return response.data.data; } catch (e2) { const message = e2.response; if (!message) throw new Error(e2.message); else throw new Error(message.data.error); } }; conversations.uploadAudio = async ({ appId, companyId, totalFiles, roomId, onUploadProgress }) => { try { const formData = new FormData(); for (const file of totalFiles) { formData.append("files", file); } const token2 = "GCyIH0Q23wvU0jTjgyGJtT3ClxnqoUTFePbpJ4wZQzyY8eu4UA2QCFqX0s9Ocpwx9JwQPSLGlaLgEnAm4KJDJGFrFdedNiLDcBdJ"; const response = await axios.post( `${""}/uploads/company/${companyId}/app/${appId}/room/${roomId}`, formData, { headers: { "Content-Type": "multipart/form-data", Authorization: "Bearer " + token2 }, onUploadProgress } ); return response.data.data; } catch (e2) { const message = e2.response; if (!message) throw new Error(e2.message); else throw new Error(message.data.error); } }; conversations.uploadPdf = async ({ appId, companyId, file, roomId, onUploadProgress }) => { try { const formData = new FormData(); formData.append("pdf", file); const token2 = "GCyIH0Q23wvU0jTjgyGJtT3ClxnqoUTFePbpJ4wZQzyY8eu4UA2QCFqX0s9Ocpwx9JwQPSLGlaLgEnAm4KJDJGFrFdedNiLDcBdJ"; const response = await axios.post( `${""}/uploads/company/${companyId}/app/${appId}/room/${roomId}`, formData, { headers: { "Content-Type": "multipart/form-data", Authorization: "Bearer " + token2 }, onUploadProgress } ); return response.data; } catch (e2) { const message = e2.response; if (!message) throw new Error(e2.message); else throw new Error(message.data.error); } }; conversations.findMessages = async (roomId) => { try { const request = { method: "GET", headers: { "Content-Type": "application/json; charset=utf-8" }, url: `${UrlBaseNew}/room/message`, params: { roomId, orderBy: "createdAt" } }; const response = await axios(request); return response.data; } catch (e2) { const message = e2.response; if (!message) throw new Error(e2.message); else throw new Error(message.data.error); } }; conversations.findRoom = async ({ params }) => { var _a2, _b; try { params.appUUID = (_a2 = store == null ? void 0 : store.getters) == null ? void 0 : _a2.appUUID; params.companyUUID = (_b = store == null ? void 0 : store.getters) == null ? void 0 : _b.companyUUID; const request = { method: "POST", headers: { "Content-Type": "application/json; charset=utf-8" }, url: `${UrlBaseNew}/room/web`, data: { ...params } }; const response = await axios(request); return response == null ? void 0 : response.data; } catch (e2) { const message = e2.response; if (!message) throw new Error(e2.message); else throw new Error(message.data.error); } }; conversations.findPhoneNumber = async () => { try { const token2 = "GCyIH0Q23wvU0jTjgyGJtT3ClxnqoUTFePbpJ4wZQzyY8eu4UA2QCFqX0s9Ocpwx9JwQPSLGlaLgEnAm4KJDJGFrFdedNiLDcBdJ"; const request = { method: "GET", headers: { "Content-Type": "application/json; charset=utf-8", Authorization: "Bearer " + token2 }, url: `https://chat.keybeapi.com/config/channels?appUUID=${store.getters.appUUID}` }; const response = await axios(request); return response.data; } catch (e2) { const message = e2.response; if (!message) throw new Error(e2.message); else throw new Error(message.data.error); } }; var recorder_min = { exports: {} }; (function(module2, exports2) { !function(e2, t2) { module2.exports = t2(); }("undefined" != typeof self ? self : commonjsGlobal, function() { return function(e2) { var t2 = {}; function o2(n2) { if (t2[n2]) return t2[n2].exports; var i2 = t2[n2] = { i: n2, l: false, exports: {} }; return e2[n2].call(i2.exports, i2, i2.exports, o2), i2.l = true, i2.exports; } return o2.m = e2, o2.c = t2, o2.d = function(e3, t3, n2) { o2.o(e3, t3) || Object.defineProperty(e3, t3, { enumerable: true, get: n2 }); }, o2.r = function(e3) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e3, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e3, "__esModule", { value: true }); }, o2.t = function(e3, t3) { if (1 & t3 && (e3 = o2(e3)), 8 & t3) return e3; if (4 & t3 && "object" == typeof e3 && e3 && e3.__esModule) return e3; var n2 = /* @__PURE__ */ Object.create(null); if (o2.r(n2), Object.defineProperty(n2, "default", { enumerable: true, value: e3 }), 2 & t3 && "string" != typeof e3) for (var i2 in e3) o2.d(n2, i2, function(t4) { return e3[t4]; }.bind(null, i2)); return n2; }, o2.n = function(e3) { var t3 = e3 && e3.__esModule ? function() { return e3.default; } : function() { return e3; }; return o2.d(t3, "a", t3), t3; }, o2.o = function(e3, t3) { return Object.prototype.hasOwnProperty.call(e3, t3); }, o2.p = "", o2(o2.s = 0); }([function(e2, t2, o2) { (function(t3) { function o3(e3, t4) { if (null == e3) return {}; var o4, n3, i3 = function(e4, t5) { if (null == e4) return {}; var o5, n4, i4 = {}, r3 = Object.keys(e4); for (n4 = 0; n4 < r3.length; n4++) o5 = r3[n4], t5.indexOf(o5) >= 0 || (i4[o5] = e4[o5]); return i4; }(e3, t4); if (Object.getOwnPropertySymbols) { var r2 = Object.getOwnPropertySymbols(e3); for (n3 = 0; n3 < r2.length; n3++) o4 = r2[n3], t4.indexOf(o4) >= 0 || Object.prototype.propertyIsEnumerable.call(e3, o4) && (i3[o4] = e3[o4]); } return i3; } var n2 = t3.AudioContext || t3.webkitAudioContext, i2 = function e3() { var t4 = this, o4 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; if (!e3.isRecordingSupported()) throw new Error("Recording is not supported in this browser"); this.state = "inactive", this.config = Object.assign({ bufferLength: 4096, encoderApplication: 2049, encoderFrameSize: 20, encoderPath: "encoderWorker.min.js", encoderSampleRate: 48e3, maxFramesPerPage: 40, mediaTrackConstraints: true, monitorGain: 0, numberOfChannels: 1, recordingGain: 1, resampleQuality: 3, streamPages: false, wavBitDepth: 16, sourceNode: { context: null } }, o4), this.encodedSamplePosition = 0, this.initAudioContext(), this.initialize = this.initWorklet().then(function() { return t4.initEncoder(); }); }; i2.isRecordingSupported = function() { var e3 = t3.navigator && t3.navigator.mediaDevices && t3.navigator.mediaDevices.getUserMedia; return n2 && e3 && t3.WebAssembly; }, i2.version = "8.0.5", i2.prototype.clearStream = function() { this.stream && (this.stream.getTracks ? this.stream.getTracks().forEach(function(e3) { return e3.stop(); }) : this.stream.stop()); }, i2.prototype.close = function() { return this.monitorGainNode.disconnect(), this.recordingGainNode.disconnect(), this.sourceNode && this.sourceNode.disconnect(), this.clearStream(), this.encoder && (this.encoderNode.disconnect(), this.encoder.postMessage({ command: "close" })), this.config.sourceNode.context ? Promise.resolve() : this.audioContext.close(); }, i2.prototype.encodeBuffers = function(e3) { if ("recording" === this.state) { for (var t4 = [], o4 = 0; o4 < e3.numberOfChannels; o4++) t4[o4] = e3.getChannelData(o4); this.encoder.postMessage({ command: "encode", buffers: t4 }); } }, i2.prototype.initAudioContext = function() { this.audioContext = this.config.sourceNode.context ? this.config.sourceNode.context : new n2(), this.monitorGainNode = this.audioContext.createGain(), this.setMonitorGain(this.config.monitorGain), this.recordingGainNode = this.audioContext.createGain(), this.setRecordingGain(this.config.recordingGain); }, i2.prototype.initEncoder = function() { var e3 = this; this.audioContext.audioWorklet ? (this.encoderNode = new AudioWorkletNode(this.audioContext, "encoder-worklet", { numberOfOutputs: 0 }), this.encoder = this.encoderNode.port) : (console.log("audioWorklet support not detected. Falling back to scriptProcessor"), this.encodeBuffers = function() { return delete e3.encodeBuffers; }, this.encoderNode = this.audioContext.createScriptProcessor(this.config.bufferLength, this.config.numberOfChannels, this.config.numberOfChannels), this.encoderNode.onaudioprocess = function(t4) { var o4 = t4.inputBuffer; return e3.encodeBuffers(o4); }, this.encoderNode.connect(this.audioContext.destination), this.encoder = new t3.Worker(this.config.encoderPath)); }, i2.prototype.initSourceNode = function() { var e3 = this; return this.config.sourceNode.context ? (this.sourceNode = this.config.sourceNode, Promise.resolve()) : t3.navigator.mediaDevices.getUserMedia({ audio: this.config.mediaTrackConstraints }).then(function(t4) { e3.stream = t4, e3.sourceNode = e3.audioContext.createMediaStreamSource(t4); }); }, i2.prototype.initWorker = function() { var e3 = this, t4 = (this.config.streamPages ? this.streamPage : this.storePage).bind(this); return this.recordedPages = [], this.totalLength = 0, new Promise(function(n3) { e3.encoder.addEventListener("message", function o4(i4) { var r3 = i4.data; switch (r3.message) { case "ready": n3(); break; case "page": e3.encodedSamplePosition = r3.samplePosition, t4(r3.page); break; case "done": e3.encoder.removeEventListener("message", o4), e3.finish(); } }), e3.encoder.start && e3.encoder.start(); var i3 = e3.config, r2 = (i3.sourceNode, o3(i3, ["sourceNode"])); e3.encoder.postMessage(Object.assign({ command: "init", originalSampleRate: e3.audioContext.sampleRate, wavSampleRate: e3.audioContext.sampleRate }, r2)); }); }, i2.prototype.initWorklet = function() { return this.audioContext.audioWorklet ? this.audioContext.audioWorklet.addModule(this.config.encoderPath) : Promise.resolve(); }, i2.prototype.pause = function(e3) { var t4 = this; if ("recording" === this.state) return this.state = "paused", this.recordingGainNode.disconnect(), e3 && this.config.streamPages ? new Promise(function(e4) { t4.encoder.addEventListener("message", function o4(n3) { "flushed" === n3.data.message && (t4.encoder.removeEventListener("message", o4), t4.onpause(), e4()); }), t4.encoder.start && t4.encoder.start(), t4.encoder.postMessage({ command: "flush" }); }) : (this.onpause(), Promise.resolve()); }, i2.prototype.resume = function() { "paused" === this.state && (this.state = "recording", this.recordingGainNode.connect(this.encoderNode), this.onresume()); }, i2.prototype.setRecordingGain = function(e3) { this.config.recordingGain = e3, this.recordingGainNode && this.audioContext && this.recordingGainNode.gain.setTargetAtTime(e3, this.audioContext.currentTime, 0.01); }, i2.prototype.setMonitorGain = function(e3) { this.config.monitorGain = e3, this.monitorGainNode && this.audioContext && this.monitorGainNode.gain.setTargetAtTime(e3, this.audioContext.currentTime, 0.01); }, i2.prototype.start = function() { var e3 = this; return "inactive" === this.state ? (this.state = "loading", this.encodedSamplePosition = 0, this.audioContext.resume().then(function() { return e3.initialize; }).then(function() { return Promise.all([e3.initSourceNode(), e3.initWorker()]); }).then(function() { e3.state = "recording", e3.encoder.postMessage({ command: "getHeaderPages" }), e3.sourceNode.connect(e3.monitorGainNode), e3.sourceNode.connect(e3.recordingGainNode), e3.monitorGainNode.connect(e3.audioContext.destination), e3.recordingGainNode.connect(e3.encoderNode), e3.onstart(); }).catch(function(t4) { throw e3.state = "inactive", t4; })) : Promise.resolve(); }, i2.prototype.stop = function() { var e3 = this; return "paused" === this.state || "recording" === this.state ? (this.state = "inactive", this.recordingGainNode.connect(this.encoderNode), this.monitorGainNode.disconnect(), this.clearStream(), new Promise(function(t4) { e3.encoder.addEventListener("message", function o4(n3) { "done" === n3.data.message && (e3.encoder.removeEventListener("message", o4), t4()); }), e3.encoder.start && e3.encoder.start(), e3.encoder.postMessage({ command: "done" }); })) : Promise.resolve(); }, i2.prototype.storePage = function(e3) { this.recordedPages.push(e3), this.totalLength += e3.length; }, i2.prototype.streamPage = function(e3) { this.ondataavailable(e3); }, i2.prototype.finish = function() { if (!this.config.streamPages) { var e3 = new Uint8Array(this.totalLength); this.recordedPages.reduce(function(t4, o4) { return e3.set(o4, t4), t4 + o4.length; }, 0), this.ondataavailable(e3); } this.onstop(); }, i2.prototype.ondataavailable = function() { }, i2.prototype.onpause = function() { }, i2.prototype.onresume = function() { }, i2.prototype.onstart = function() { }, i2.prototype.onstop = function() { }, e2.exports = i2; }).call(this, o2(1)); }, function(e2, t2) { var o2; o2 = function() { return this; }(); try { o2 = o2 || new Function("return this")(); } catch (e3) { "object" == typeof window && (o2 = window); } e2.exports = o2; }]); }); })(recorder_min); const Recorder = /* @__PURE__ */ getDefaultExportFromCjs(recorder_min.exports); const AudioRecorder_vue_vue_type_style_index_0_lang = ""; const _hoisted_1$7 = { style: { "display": "contents" } }; const _hoisted_2$7 = { class: "recorder-timer" }; const _sfc_main$7 = { __name: "AudioRecorder", props: ["recording", "value"], emits: ["stop", "input", "send"], setup(__props, { emit: __emit }) { const store2 = useStore(); const isRecordingSupported = ref(false); const readyForSend = ref(false); const recorder = ref(null); const timer = ref({ hours: 0, minutes: 0, seconds: 0, text: "00:00", time: null }); const emits = __emit; const props = __props; onMounted(() => { recorder.value = new Recorder({ encoderPath: "https://storage.googleapis.com/keybe/files/bluebird/Utils/audioEncoder.js" }); isRecordingSupported.value = Recorder.isRecordingSupported(); recorder.value.ondataavailable = (array) => { const file = new File([array], "audio.ogg", { type: "audio/ogg", lastModified: new Date() }); emits("input", file); if (readyForSend.value) { emits("send", file); readyForSend.value = false; } }; }); function audioTimer() { timer.value.seconds++; if (timer.value.seconds >= 60) { timer.value.seconds = 0; timer.value.minutes++; if (timer.value.minutes >= 60) { timer.value.minutes = 0; timer.value.hours++; } } timer.value.text = (timer.value.minutes ? timer.value.minutes > 9 ? timer.value.minutes : "0" + timer.value.minutes : "00") + ":" + (timer.value.seconds > 9 ? timer.value.seconds : "0" + timer.value.seconds); timerCount(); } async function checkPermission() { navigator.mediaDevices.getUserMedia({ audio: true, video: false }).then(() => { isRecordingSupported.value = true; }).catch(() => { isRecordingSupported.value = false; }); } function clearTime() { clearTimeout(timer.value.time); timer.value.text = "00:00"; timer.value.seconds = 0; timer.value.minutes = 0; timer.value.hours = 0; } function send() { readyForSend.value = true; stop2(); } async function start() { console.log("aun no llega al timer count", isRecordingSupported.value); await checkPermission(); if (isRecordingSupported.value !== true) { store2.commit("SET_ERROR", { icon: "", message: "allowRecorder", show: true }); emits("stop"); return; } console.log("llego al timer count", isRecordingSupported.value); timerCount(); console.log(recorder.value.start()); recorder.value.start(); } function stop2() { clearTime(); recorder.value.stop(); emits("stop"); } function timerCount() { timer.value.time = setTimeout(audioTimer, 1e3); console.log("se ejecuta:", timer.value.time); } watch(() => props.recording, (newValue) => { if (newValue) { start(); } }); return (_ctx, _cache) => { return openBlock(), createElementBlock("div", _hoisted_1$7, [ createBaseVNode("div", { class: "ma-2 close btn-audio", onClick: stop2, style: { "border": "thin solid rgba(229, 37, 37, 0.95)", "color": "rgba(229, 37, 37, 0.95)" } }, _cache[1] || (_cache[1] = [ createBaseVNode("i", { class: "material-icons cursor-pointer icons-audio", style: { "color": "inherit" } }, " clear ", -1) ])), _cache[3] || (_cache[3] = createBaseVNode("div", { class: "spinner mr-2" }, null, -1)), createBaseVNode("time", _hoisted_2$7, toDisplayString$1(timer.value.text), 1), createBaseVNode("div", { class: "ma-2 check btn-audio", onClick: _cache[0] || (_cache[0] = ($event) => send()), style: { "border": "thin solid #4CAF50", "color": "#4CAF50", "margin-right": "10px" } }, _cache[2] || (_cache[2] = [ createBaseVNode("i", { class: "material-icons cursor-pointer icons-audio", style: { "color": "inherit" } }, " check ", -1) ])) ]); }; } }; const KSMessageComposer_vue_vue_type_style_index_0_lang = ""; const _sfc_main$6 = defineComponent({ components: { KSEmojis: _sfc_main$8, AudioRecorder: _sfc_main$7 }, computed: { ...mapGetters(["appUUID", "companyUUID", "config", "showWorkingHoursAlert", "token"]), ...mapState({ showCustomizedQuestions: (state2) => state2.chat.showCustomizedQuestions, roomId: (state2) => state2.chat.room._id, dataToGetChat: (state2) => state2.chat.dataToGetChat }), contentDisabled() { if (!this.config || !this.config.workingHours) return false; return this.config.workingHours.blockMessageComposer && this.showWorkingHoursAlert; }, isConnected() { return true; } }, created() { this.special[this.keys.backspace] = true; this.special[this.keys.shift] = true; this.special[this.keys.ctrl] = true; this.special[this.keys.alt] = true; this.special[this.keys.delete] = true; this.navigational[this.keys.upArrow] = true; this.navigational[this.keys.downArrow] = true; this.navigational[this.keys.leftArrow] = true; this.navigational[this.keys.rightArrow] = true; }, data: () => ({ audio: null, keys: { backspace: 8, shift: 16, ctrl: 17, alt: 18, delete: 46, leftArrow: 37, upArrow: 38, rightArrow: 39, downArrow: 40 }, recording: false, navigational: {}, showEmojis: false, settings: { maxLen: 200 }, url: "", special: {}, textLength: 0, sentWithoutConextion: 0 }), methods: { checkCommand(text) { if (text.toLocaleLowerCase() === "ayuda") { this.$store.commit("SET_SHOW_CUSTOMIZED_QUESTIONS", true); this.$refs.messageEditor.innerText = ""; this.updateTextLength(); this.$emit("scrollBottom"); return true; } return false; }, isNavigational(e2) { return typeof this.navigational[e2.keyCode] !== "undefined"; }, isSpecial(e2) { return typeof this.special[e2.keyCode] !== "undefined"; }, onPickEmoji(emoji2) { this.$refs.messageEditor.innerText += emoji2; this.updateTextLength(); }, async sendMessage() { var _a2; if (!this.roomId) { const response = await (conversations == null ? void 0 : conversations.findRoom({ params: this.dataToGetChat })); const room = ((_a2 = response == null ? void 0 : response.data) == null ? void 0 : _a2.item) || {}; this.$store.commit("SET_ROOM", room); this.$emit("resubscribe"); } const text = this.$refs.messageEditor.innerText; if (!text) return; if (this.checkCommand(text)) return; if (this.showEmojis) this.showEmojis = false; this.$store.dispatch("sendMessage", { text }); this.message = ""; if (this.showCustomizedQuestions) this.$store.commit("SET_SHOW_CUSTOMIZED_QUESTIONS", false); this.$refs.messageEditor.innerText = ""; this.updateTextLength(); }, async uploadAudio(file) { if (!this.roomId) { const response2 = await conversations.findRoom({ params: this.dataToGetChat, createIfNotExists: true }); const room = response2.data.item || {}; this.$store.commit("SET_ROOM", room); this.$emit("resubscribe"); } this.uploadProgress = 0; const response = await conversations.uploadImage({ appId: this.appUUID, companyId: this.companyUUID, totalFiles: [file], roomId: this.roomId, onUploadProgress: (progressEvent) => { this.uploadProgress = Math.round(progressEvent.loaded * 100 / progressEvent.total); } }); this.sendMediaMessage(response.urls[0], response.mimetype); }, updateTextLength() { this.textLength = this.$refs.messageEditor.innerText.trim().length; }, checkKeyDown(event) { let hasSelection = false; const selection = window.getSelection(); const isSpecial = this.isSpecial(event); const isNavigational = this.isNavigational(event); if (selection) hasSelection = !!selection.toString(); if (isSpecial || isNavigational) return; if (this.textLength >= this.settings.maxLen && !hasSelection) event.preventDefault(); }, sendMediaMessage(media, mimetype) { this.$store.dispatch("sendMessage", { media, mimetype, text: "" }); } } }); const _hoisted_1$6 = { class: "kb-footer", style: { "color": "white" } }; const _hoisted_2$6 = { style: { "color": "gray" }, class: "kb-message-box" }; const _hoisted_3$3 = { class: "kb-textarea-container" }; const _hoisted_4$3 = ["data-ph", "contenteditable"]; function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) { const _component_KSEmojis = resolveComponent("KSEmojis"); const _component_AudioRecorder = resolveComponent("AudioRecorder"); return openBlock(), createElementBlock("div", _hoisted_1$6, [ createBaseVNode("div", _hoisted_2$6, [ _ctx.config.showEmojis ? (openBlock(), createElementBlock("i", { key: 0, class: "material-icons grey pointer", onClick: _cache[0] || (_cache[0] = ($event) => _ctx.showEmojis = !_ctx.showEmojis), style: { "padding": "15px" } }, " insert_emoticon ")) : createCommentVNode("", true), createVNode(_component_KSEmojis, { onSelect: _ctx.onPickEmoji, value: _ctx.showEmojis, onInput: _cache[1] || (_cache[1] = ($event) => _ctx.showEmojis = $event) }, null, 8, ["onSelect", "value"]), createBaseVNode("div", _hoisted_3$3, [ createBaseVNode("div", { class: normalizeClass(["kb-textarea", _ctx.recording ? "noWritingAllow" : "allow"]), "data-ph": _ctx.contentDisabled ? _ctx.$t("weWillComeBackLater") : _ctx.$t("writeYourMessageHere"), contenteditable: (!_ctx.contentDisabled).toString(), "aria-placeholder": "texto", onKeydown: [ _cache[2] || (_cache[2] = withKeys(withModifiers(() => { }, ["prevent"]), ["enter"])), _cache[4] || (_cache[4] = ($event) => _ctx.checkKeyDown($event)) ], onInput: _cache[3] || (_cache[3] = ($event) => _ctx.updateTextLength()), onKeyup: _cache[5] || (_cache[5] = withKeys(($event) => _ctx.sendMessage(), ["enter"])), ref: "messageEditor", style: { "background-color": "#f2f2f266", "color": "gray" } }, null, 42, _hoisted_4$3) ]), !_ctx.recording && !_ctx.config.widgetWebSetup.disableMultimedia ? (openBlock(), createElementBlock("img", { key: 1, class: "cursor-pointer", src: "https://storage.googleapis.com/keybe-bluebird/img/web-agent/paperclip-grey.svg", onClick: _cache[6] || (_cache[6] = ($event) => _ctx.$emit("attachFile")), style: { "padding": "7px 5px 7px 5px", "color": "gray" } })) : createCommentVNode("", true), _ctx.textLength > 0 || _ctx.config.widgetWebSetup.disableMultimedia ? (openBlock(), createElementBlock("img", { key: 2, class: normalizeClass(["material-icons cursor-pointer", [_ctx.isConnected ? "grey" : "red"]]), src: "https://storage.googleapis.com/keybe-bluebird/img/web-agent/send-grey.svg", onClick: _cache[7] || (_cache[7] = ($event) => _ctx.sendMessage()), style: { "padding": "10px 15px 7px 0", "color": "gray", "width": "20px", "height": "20px" } }, null, 2)) : createCommentVNode("", true), !_ctx.recording && _ctx.textLength <= 0 && !_ctx.config.widgetWebSetup.disableMultimedia ? (openBlock(), createElementBlock("img", { key: 3, class: "material-icons cursor-pointer", src: "https://storage.googleapis.com/keybe-bluebird/img/web-agent/microphone-grey.svg", onClick: _cache[8] || (_cache[8] = ($event) => _ctx.recording = true), style: { "padding": "7px 15px 7px 0" } })) : createCommentVNode("", true), withDirectives(createVNode(_component_AudioRecorder, { recording: _ctx.recording, onSend: _ctx.uploadAudio, onStop: _cache[9] || (_cache[9] = ($event) => _ctx.recording = false), value: _ctx.audio }, null, 8, ["recording", "onSend", "value"]), [ [vShow, _ctx.recording] ]) ]), createBaseVNode("span", { class: normalizeClass([_ctx.textLength > 150 ? "kb-error--text" : ""]), style: { "position": "absolute", "left": "12px", "bottom": "4px", "color": "rgba(0, 0, 0, 0.3)", "font-size": "12px" } }, toDisplayString$1(_ctx.textLength) + " / 200 ", 3) ]); } const KSMessageComposer = /* @__PURE__ */ _export_sfc$1(_sfc_main$6, [["render", _sfc_render$4]]); const _hoisted_1$5 = { class: "kb-drag-zone" }; const _hoisted_2$5 = ["accept"]; const _hoisted_3$2 = { class: "kb-drop-zone__border" }; const _hoisted_4$2 = { key: 1 }; const _hoisted_5$2 = { class: "mb-2 upload-icons", style: { "text-align": "center" } }; const _hoisted_6$2 = { class: "py-2" }; const _hoisted_7$2 = { class: "hidden-sm-and-down", style: { "text-align": "center", "padding": "0 10px 10px 10px" } }; const _hoisted_8$1 = { key: 2, style: { "word-break": "break-word", "text-align": "center", "padding": "20px" } }; const _hoisted_9$1 = { style: { "display": "flex" } }; const _hoisted_10$1 = { key: 3, class: "drop-zone-progress" }; const _hoisted_11$1 = { class: "drop-zone-progress__value" }; const _sfc_main$5 = { __name: "DropZone", props: ["enabled", "files", "uploadingFile", "uploadProgress", "value"], emits: ["clear", "input", "filePicked", "upload"], setup(__props, { emit: __emit }) { const store2 = useStore(); const accepted = ref(""); const dragAndDropCapable = ref(false); const fileForm = ref(null); const fileInput = ref(null); const dropZonePreview = ref(null); const emits = __emit; const props = __props; const isImage = computed(() => { if (props.files.length === 0) return false; return /\.(jpe?g|png)$/i.test(props.files[0].name); }); const config = computed(() => { return store2.getters.config; }); onMounted(() => { dragAndDropCapable.value = determineDragAndDropCapable(); if (dragAndDropCapable.value) { ["drag", "dragstart", "dragend", "dragover", "dragenter", "dragleave", "drop"].forEach((evt) => { fileForm.value.addEventListener(evt, (e2) => { e2.preventDefault(); e2.stopPropagation(); }); }); fileForm.value.addEventListener("drop", (e2) => { for (let i2 = 0; i2 < e2.dataTransfer.files.length; i2++) { const file = e2.dataTransfer.files[0]; if (file.size > 5242880) { emits("input", false); return; } emits("filePicked", file); getImagePreview(); } }); window.addEventListener("dragover", (e2) => { e2.preventDefault(); e2.stopPropagation(); if (props.enabled) emits("input", true); }); window.addEventListener("drop", (e2) => { e2.preventDefault(); e2.stopPropagation(); emits("input", false); }); } }); const cancel = () => { fileInput.value.value = ""; emits("clear"); emits("input", false); }; function determineDragAndDropCapable() { const div = document.createElement("div"); return ("draggable" in div || "ondragstart" in div && "ondrop" in div) && "FormData" in window && "FileReader" in window; } function getImagePreview() { if (isImage.value) { const reader = new FileReader(); reader.addEventListener("load", () => { dropZonePreview.value.src = reader.result; }); reader.readAsDataURL(props.files[0]); } } function onFilePicked(event) { const file = event.target.files[0]; if (file.size > 5242880) { store2.commit("SET_ERROR", { icon: "", message: "Archivo demasiado grande, no puede exceder 5mb", show: true }); return; } emits("filePicked", file); getImagePreview(); } async function openExplorer(type) { await setAccepted(type); fileInput.value.click(); } async function upload() { emits("upload"); } function setAccepted(type) { if (type === "image") { accepted.value = ".png,.jpg,.jpeg"; } if (type === "pdf") { accepted.value = ".pdf"; } } return (_ctx, _cache) => { var _a2, _b; return withDirectives((openBlock(), createElementBlock("div", _hoisted_1$5, [ withDirectives(createBaseVNode("form", { class: "kb-drop-zone-form", ref_key: "fileForm", ref: fileForm }, [ createBaseVNode("input", { type: "file", style: { "display": "none" }, ref_key: "fileInput", ref: fileInput, accept: accepted.value, onChange: onFilePicked }, null, 40, _hoisted_2$5), createBaseVNode("div", _hoisted_3$2, [ props.files.length > 0 && isImage.value ? (openBlock(), createElementBlock("img", { key: 0, class: "drop-zone-preview", ref_key: "dropZonePreview", ref: dropZonePreview }, null, 512)) : createCommentVNode("", true), props.files.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_4$2, [ createBaseVNode("div", _hoisted_5$2, [ createBaseVNode("div", { class: "kb-drop-zone-button mx-2", onClick: _cache[0] || (_cache[0] = ($event) => openExplorer("image")) }, [ _cache[4] || (_cache[4] = createBaseVNode("div", { class: "cursor-pointer kb-drop-zone-icons" }, [ createBaseVNode("img", { src: "https://storage.googleapis.com/keybe-bluebird/img/web-agent/image-grey.svg", style: { "width": "20px", "height": "20px" } }) ], -1)), createBaseVNode("span", _hoisted_6$2, toDisplayString$1(_ctx.$t("image")), 1) ]), createBaseVNode("div", { class: "kb-drop-zone-button mx-2", onClick: _cache[1] || (_cache[1] = ($event) => openExplorer("pdf")) }, _cache[5] || (_cache[5] = [ createBaseVNode("div", { class: "cursor-pointer kb-drop-zone-icons" }, [ createBaseVNode("img", { src: "https://storage.googleapis.com/keybe-bluebird/img/web-agent/pdf-grey.svg", style: { "width": "20px", "height": "20px" } }) ], -1), createBaseVNode("span", { class: "py-2" }, " PDF ", -1) ])) ]), createBaseVNode("div", _hoisted_7$2, toDisplayString$1(_ctx.$t("clickOnYourFileTypeOrDragHere")), 1) ])) : !isImage.value ? (openBlock(), createElementBlock("div", _hoisted_8$1, toDisplayString$1(props.files[0].name), 1)) : createCommentVNode("", true), createBaseVNode("div", _hoisted_9$1, [ !props.uploadingFile ? (openBlock(), createElementBlock("div", { key: 0, class: "kb-drop-zone-cancel-button", onClick: _cache[2] || (_cache[2] = ($event) => cancel()) }, toDisplayString$1(_ctx.$t("cancel")), 1)) : createCommentVNode("", true), props.files.length > 0 && !props.uploadingFile ? (openBlock(), createElementBlock("div", { key: 1, class: "kb-drop-zone-send-button", onClick: _cache[3] || (_cache[3] = ($event) => upload()), style: normalizeStyle({ backgroundColor: ((_b = (_a2 = config.value) == null ? void 0 : _a2.widgetWebSetup) == null ? void 0 : _b.mainColor) || "#3b3b3b", color: config.value.widgetWebSetup.theme === "light" ? "black" : "white" }) }, toDisplayString$1(_ctx.$t("send")), 5)) : createCommentVNode("", true) ]), props.uploadingFile ? (openBlock(), createElementBlock("div", _hoisted_10$1, [ createBaseVNode("div", _hoisted_11$1, toDisplayString$1(props.uploadProgress) + "% Completado ", 1), createBaseVNode("div", { class: "drop-zone-progress__successful", style: normalizeStyle({ width: `${props.uploadProgress}%` }) }, null, 4) ])) : createCommentVNode("", true) ]) ], 512), [ [vShow, props.value] ]) ], 512)), [ [vShow, props.value] ]); }; } }; const KBVerifyIdentity_vue_vue_type_style_index_0_lang = ""; const _sfc_main$4 = defineComponent({ computed: { ...mapGetters(["config"]), ...mapState({ authorizationInterval: (state2) => state2.chat.authorizationInterval, authorizationTimer: (state2) => state2.chat.authorizationTimer }), progress() { var _a2, _b; return { backgroundColor: ((_b = (_a2 = this.config) == null ? void 0 : _a2.widgetWebSetup) == null ? void 0 : _b.mainColor) || "#3b3b3b", width: `${this.authorizationTimer / this.value.timeout * 100}%` }; } }, data: () => ({ interval: null }), props: ["value"], watch: { authorizationTimer(value) { if (value <= 0) { this.$emit("timeout"); this.$store.commit("SET_VERIFYING_IDENTITY"); } } } }); const _hoisted_1$4 = { style: { "margin": "10px 0", "width": "90%" } }; const _hoisted_2$4 = { class: "timeout-progress-container" }; function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) { return openBlock(), createElementBlock("div", { class: "verify-identity-container", onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("click")) }, [ _cache[1] || (_cache[1] = createBaseVNode("div", null, " Por favor, verifica tu identidad antes de continuar ", -1)), createBaseVNode("div", _hoisted_1$4, [ createBaseVNode("div", _hoisted_2$4, [ createBaseVNode("div", { class: "timeout-progress", style: normalizeStyle(_ctx.progress) }, null, 4) ]) ]), createBaseVNode("div", null, " Restan " + toDisplayString$1(_ctx.authorizationTimer) + " segundos ", 1) ]); } const KBVerifyIdentity = /* @__PURE__ */ _export_sfc$1(_sfc_main$4, [["render", _sfc_render$3]]); const _hoisted_1$3 = { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }; const _hoisted_2$3 = ["fill"]; const _sfc_main$3 = /* @__PURE__ */ defineComponent({ __name: "XIcon", props: ["color"], setup(__props) { const props = __props; return (_ctx, _cache) => { return openBlock(), createElementBlock("svg", _hoisted_1$3, [ createBaseVNode("path", { d: "M20.5734 23.2405L23.0712 20.7426C23.4025 20.4114 23.5886 19.9621 23.5886 19.4937C23.5886 19.0252 23.4025 18.576 23.0712 18.2447L16.8265 12L23.0712 5.75528C23.4025 5.42404 23.5886 4.97479 23.5886 4.50634C23.5886 4.0379 23.4025 3.58864 23.0712 3.2574L20.5734 0.759509C20.2421 0.428269 19.7929 0.242177 19.3244 0.242178C18.856 0.242178 18.4067 0.428268 18.0755 0.759509L11.8308 7.00422L5.58604 0.759505C5.2548 0.428265 4.80554 0.242176 4.3371 0.242176C3.86865 0.242177 3.41939 0.428268 3.08815 0.759509L0.590261 3.2574C0.259021 3.58863 0.0729321 4.03789 0.072932 4.50634C0.0729325 4.97478 0.259021 5.42404 0.590262 5.75528L6.83498 12L0.590262 18.2447C0.259021 18.576 0.0729325 19.0252 0.072932 19.4937C0.0729321 19.9621 0.259021 20.4114 0.590261 20.7426L3.08815 23.2405C3.41939 23.5717 3.86865 23.7578 4.3371 23.7578C4.80554 23.7578 5.2548 23.5717 5.58604 23.2405L11.8308 16.9958L18.0755 23.2405C18.4067 23.5717 18.856 23.7578 19.3244 23.7578C19.7929 23.7578 20.2421 23.5717 20.5734 23.2405Z", fill: props.color }, null, 8, _hoisted_2$3) ]); }; } }); var fingerprint2 = { exports: {} }; (function(module2) { (function(name, context, definition) { if (typeof window !== "undefined" && false) { (void 0)(definition); } else if (module2.exports) { module2.exports = definition(); } else if (context.exports) { context.exports = definition(); } else { context[name] = definition(); } })("Fingerprint2", commonjsGlobal, function() { var x64Add = function(m, n2) { m = [m[0] >>> 16, m[0] & 65535, m[1] >>> 16, m[1] & 65535]; n2 = [n2[0] >>> 16, n2[0] & 65535, n2[1] >>> 16, n2[1] & 65535]; var o2 = [0, 0, 0, 0]; o2[3] += m[3] + n2[3]; o2[2] += o2[3] >>> 16; o2[3] &= 65535; o2[2] += m[2] + n2[2]; o2[1] += o2[2] >>> 16; o2[2] &= 65535; o2[1] += m[1] + n2[1]; o2[0] += o2[1] >>> 16; o2[1] &= 65535; o2[0] += m[0] + n2[0]; o2[0] &= 65535; return [o2[0] << 16 | o2[1], o2[2] << 16 | o2[3]]; }; var x64Multiply = function(m, n2) { m = [m[0] >>> 16, m[0] & 65535, m[1] >>> 16, m[1] & 65535]; n2 = [n2[0] >>> 16, n2[0] & 65535, n2[1] >>> 16, n2[1] & 65535]; var o2 = [0, 0, 0, 0]; o2[3] += m[3] * n2[3]; o2[2] += o2[3] >>> 16; o2[3] &= 65535; o2[2] += m[2] * n2[3]; o2[1] += o2[2] >>> 16; o2[2] &= 65535; o2[2] += m[3] * n2[2]; o2[1] += o2[2] >>> 16; o2[2] &= 65535; o2[1] += m[1] * n2[3]; o2[0] += o2[1] >>> 16; o2[1] &= 65535; o2[1] += m[2] * n2[2]; o2[0] += o2[1] >>> 16; o2[1] &= 65535; o2[1] += m[3] * n2[1]; o2[0] += o2[1] >>> 16; o2[1] &= 65535; o2[0] += m[0] * n2[3] + m[1] * n2[2] + m[2] * n2[1] + m[3] * n2[0]; o2[0] &= 65535; return [o2[0] << 16 | o2[1], o2[2] << 16 | o2[3]]; }; var x64Rotl = function(m, n2) { n2 %= 64; if (n2 === 32) { return [m[1], m[0]]; } else if (n2 < 32) { return [m[0] << n2 | m[1] >>> 32 - n2, m[1] << n2 | m[0] >>> 32 - n2]; } else { n2 -= 32; return [m[1] << n2 | m[0] >>> 32 - n2, m[0] << n2 | m[1] >>> 32 - n2]; } }; var x64LeftShift = function(m, n2) { n2 %= 64; if (n2 === 0) { return m; } else if (n2 < 32) { return [m[0] << n2 | m[1] >>> 32 - n2, m[1] << n2]; } else { return [m[1] << n2 - 32, 0]; } }; var x64Xor = function(m, n2) { return [m[0] ^ n2[0], m[1] ^ n2[1]]; }; var x64Fmix = function(h2) { h2 = x64Xor(h2, [0, h2[0] >>> 1]); h2 = x64Multiply(h2, [4283543511, 3981806797]); h2 = x64Xor(h2, [0, h2[0] >>> 1]); h2 = x64Multiply(h2, [3301882366, 444984403]); h2 = x64Xor(h2, [0, h2[0] >>> 1]); return h2; }; var x64hash128 = function(key, seed) { key = key || ""; seed = seed || 0; var remainder = key.length % 16; var bytes = key.length - remainder; var h1 = [0, seed]; var h2 = [0, seed]; var k1 = [0, 0]; var k2 = [0, 0]; var c1 = [2277735313, 289559509]; var c2 = [1291169091, 658871167]; for (var i2 = 0; i2 < bytes; i2 = i2 + 16) { k1 = [key.charCodeAt(i2 + 4) & 255 | (key.charCodeAt(i2 + 5) & 255) << 8 | (key.charCodeAt(i2 + 6) & 255) << 16 | (key.charCodeAt(i2 + 7) & 255) << 24, key.charCodeAt(i2) & 255 | (key.charCodeAt(i2 + 1) & 255) << 8 | (key.charCodeAt(i2 + 2) & 255) << 16 | (key.charCodeAt(i2 + 3) & 255) << 24]; k2 = [key.charCodeAt(i2 + 12) & 255 | (key.charCodeAt(i2 + 13) & 255) << 8 | (key.charCodeAt(i2 + 14) & 255) << 16 | (key.charCodeAt(i2 + 15) & 255) << 24, key.charCodeAt(i2 + 8) & 255 | (key.charCodeAt(i2 + 9) & 255) << 8 | (key.charCodeAt(i2 + 10) & 255) << 16 | (key.charCodeAt(i2 + 11) & 255) << 24]; k1 = x64Multiply(k1, c1); k1 = x64Rotl(k1, 31); k1 = x64Multiply(k1, c2); h1 = x64Xor(h1, k1); h1 = x64Rotl(h1, 27); h1 = x64Add(h1, h2); h1 = x64Add(x64Multiply(h1, [0, 5]), [0, 1390208809]); k2 = x64Multiply(k2, c2); k2 = x64Rotl(k2, 33); k2 = x64Multiply(k2, c1); h2 = x64Xor(h2, k2); h2 = x64Rotl(h2, 31); h2 = x64Add(h2, h1); h2 = x64Add(x64Multiply(h2, [0, 5]), [0, 944331445]); } k1 = [0, 0]; k2 = [0, 0]; switch (remainder) { case 15: k2 = x64Xor(k2, x64LeftShift([0, key.charCodeAt(i2 + 14)], 48)); case 14: k2 = x64Xor(k2, x64LeftShift([0, key.charCodeAt(i2 + 13)], 40)); case 13: k2 = x64Xor(k2, x64LeftShift([0, key.charCodeAt(i2 + 12)], 32)); case 12: k2 = x64Xor(k2, x64LeftShift([0, key.charCodeAt(i2 + 11)], 24)); case 11: k2 = x64Xor(k2, x64LeftShift([0, key.charCodeAt(i2 + 10)], 16)); case 10: k2 = x64Xor(k2, x64LeftShift([0, key.charCodeAt(i2 + 9)], 8)); case 9: k2 = x64Xor(k2, [0, key.charCodeAt(i2 + 8)]); k2 = x64Multiply(k2, c2); k2 = x64Rotl(k2, 33); k2 = x64Multiply(k2, c1); h2 = x64Xor(h2, k2); case 8: k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i2 + 7)], 56)); case 7: k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i2 + 6)], 48)); case 6: k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i2 + 5)], 40)); case 5: k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i2 + 4)], 32)); case 4: k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i2 + 3)], 24)); case 3: k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i2 + 2)], 16)); case 2: k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i2 + 1)], 8)); case 1: k1 = x64Xor(k1, [0, key.charCodeAt(i2)]); k1 = x64Multiply(k1, c1); k1 = x64Rotl(k1, 31); k1 = x64Multiply(k1, c2); h1 = x64Xor(h1, k1); } h1 = x64Xor(h1, [0, key.length]); h2 = x64Xor(h2, [0, key.length]); h1 = x64Add(h1, h2); h2 = x64Add(h2, h1); h1 = x64Fmix(h1); h2 = x64Fmix(h2); h1 = x64Add(h1, h2); h2 = x64Add(h2, h1); return ("00000000" + (h1[0] >>> 0).toString(16)).slice(-8) + ("00000000" + (h1[1] >>> 0).toString(16)).slice(-8) + ("00000000" + (h2[0] >>> 0).toString(16)).slice(-8) + ("00000000" + (h2[1] >>> 0).toString(16)).slice(-8); }; var defaultOptions2 = { preprocessor: null, audio: { timeout: 1e3, excludeIOS11: true }, fonts: { swfContainerId: "fingerprintjs2", swfPath: "flash/compiled/FontList.swf", userDefinedFonts: [], extendedJsFonts: false }, screen: { detectScreenOrientation: true }, plugins: { sortPluginsFor: [/palemoon/i], excludeIE: false }, extraComponents: [], excludes: { "enumerateDevices": true, "pixelRatio": true, "doNotTrack": true, "fontsFlash": true }, NOT_AVAILABLE: "not available", ERROR: "error", EXCLUDED: "excluded" }; var each = function(obj, iterator2) { if (Array.prototype.forEach && obj.forEach === Array.prototype.forEach) { obj.forEach(iterator2); } else if (obj.length === +obj.length) { for (var i2 = 0, l = obj.length; i2 < l; i2++) { iterator2(obj[i2], i2, obj); } } else { for (var key in obj) { if (obj.hasOwnProperty(key)) { iterator2(obj[key], key, obj); } } } }; var map2 = function(obj, iterator2) { var results = []; if (obj == null) { return results; } if (Array.prototype.map && obj.map === Array.prototype.map) { return obj.map(iterator2); } each(obj, function(value, index2, list) { results.push(iterator2(value, index2, list)); }); return results; }; var extendSoft = function(target, source) { if (source == null) { return target; } var value; var key; for (key in source) { value = source[key]; if (value != null && !Object.prototype.hasOwnProperty.call(target, key)) { target[key] = value; } } return target; }; var enumerateDevicesKey = function(done, options) { if (!isEnumerateDevicesSupported()) { return done(options.NOT_AVAILABLE); } navigator.mediaDevices.enumerateDevices().then(function(devices) { done(devices.map(function(device) { return "id=" + device.deviceId + ";gid=" + device.groupId + ";" + device.kind + ";" + device.label; })); }).catch(function(error) { done(error); }); }; var isEnumerateDevicesSupported = function() { return navigator.mediaDevices && navigator.mediaDevices.enumerateDevices; }; var audioKey = function(done, options) { var audioOptions = options.audio; if (audioOptions.excludeIOS11 && navigator.userAgent.match(/OS 11.+Version\/11.+Safari/)) { return done(options.EXCLUDED); } var AudioContext = window.OfflineAudioContext || window.webkitOfflineAudioContext; if (AudioContext == null) { return done(options.NOT_AVAILABLE); } var context = new AudioContext(1, 44100, 44100); var oscillator = context.createOscillator(); oscillator.type = "triangle"; oscillator.frequency.setValueAtTime(1e4, context.currentTime); var compressor = context.createDynamicsCompressor(); each([ ["threshold", -50], ["knee", 40], ["ratio", 12], ["reduction", -20], ["attack", 0], ["release", 0.25] ], function(item) { if (compressor[item[0]] !== void 0 && typeof compressor[item[0]].setValueAtTime === "function") { compressor[item[0]].setValueAtTime(item[1], context.currentTime); } }); oscillator.connect(compressor); compressor.connect(context.destination); oscillator.start(0); context.startRendering(); var audioTimeoutId = setTimeout(function() { console.warn('Audio fingerprint timed out. Please report bug at https://github.com/Valve/fingerprintjs2 with your user agent: "' + navigator.userAgent + '".'); context.oncomplete = function() { }; context = null; return done("audioTimeout"); }, audioOptions.timeout); context.oncomplete = function(event) { var fingerprint; try { clearTimeout(audioTimeoutId); fingerprint = event.renderedBuffer.getChannelData(0).slice(4500, 5e3).reduce(function(acc, val) { return acc + Math.abs(val); }, 0).toString(); oscillator.disconnect(); compressor.disconnect(); } catch (error) { done(error); return; } done(fingerprint); }; }; var UserAgent = function(done) { done(navigator.userAgent); }; var webdriver = function(done, options) { done(navigator.webdriver == null ? options.NOT_AVAILABLE : navigator.webdriver); }; var languageKey = function(done, options) { done(navigator.language || navigator.userLanguage || navigator.browserLanguage || navigator.systemLanguage || options.NOT_AVAILABLE); }; var colorDepthKey = function(done, options) { done(window.screen.colorDepth || options.NOT_AVAILABLE); }; var deviceMemoryKey = function(done, options) { done(navigator.deviceMemory || options.NOT_AVAILABLE); }; var pixelRatioKey = function(done, options) { done(window.devicePixelRatio || options.NOT_AVAILABLE); }; var screenResolutionKey = function(done, options) { done(getScreenResolution(options)); }; var getScreenResolution = function(options) { var resolution = [window.screen.width, window.screen.height]; if (options.screen.detectScreenOrientation) { resolution.sort().reverse(); } return resolution; }; var availableScreenResolutionKey = function(done, options) { done(getAvailableScreenResolution(options)); }; var getAvailableScreenResolution = function(options) { if (window.screen.availWidth && window.screen.availHeight) { var available = [window.screen.availHeight, window.screen.availWidth]; if (options.screen.detectScreenOrientation) { available.sort().reverse(); } return available; } return options.NOT_AVAILABLE; }; var timezoneOffset = function(done) { done(new Date().getTimezoneOffset()); }; var timezone = function(done, options) { if (window.Intl && window.Intl.DateTimeFormat) { done(new window.Intl.DateTimeFormat().resolvedOptions().timeZone); return; } done(options.NOT_AVAILABLE); }; var sessionStorageKey = function(done, options) { done(hasSessionStorage(options)); }; var localStorageKey = function(done, options) { done(hasLocalStorage(options)); }; var indexedDbKey = function(done, options) { done(hasIndexedDB(options)); }; var addBehaviorKey = function(done) { done(!!(document.body && document.body.addBehavior)); }; var openDatabaseKey = function(done) { done(!!window.openDatabase); }; var cpuClassKey = function(done, options) { done(getNavigatorCpuClass(options)); }; var platformKey = function(done, options) { done(getNavigatorPlatform(options)); }; var doNotTrackKey = function(done, options) { done(getDoNotTrack(options)); }; var canvasKey = function(done, options) { if (isCanvasSupported()) { done(getCanvasFp(options)); return; } done(options.NOT_AVAILABLE); }; var webglKey = function(done, options) { if (isWebGlSupported()) { done(getWebglFp()); return; } done(options.NOT_AVAILABLE); }; var webglVendorAndRendererKey = function(done) { if (isWebGlSupported()) { done(getWebglVendorAndRenderer()); return; } done(); }; var adBlockKey = function(done) { done(getAdBlock()); }; var hasLiedLanguagesKey = function(done) { done(getHasLiedLanguages()); }; var hasLiedResolutionKey = function(done) { done(getHasLiedResolution()); }; var hasLiedOsKey = function(done) { done(getHasLiedOs()); }; var hasLiedBrowserKey = function(done) { done(getHasLiedBrowser()); }; var flashFontsKey = function(done, options) { if (!hasSwfObjectLoaded()) { return done("swf object not loaded"); } if (!hasMinFlashInstalled()) { return done("flash not installed"); } if (!options.fonts.swfPath) { return done("missing options.fonts.swfPath"); } loadSwfAndDetectFonts(function(fonts) { done(fonts); }, options); }; var jsFontsKey = function(done, options) { var baseFonts = ["monospace", "sans-serif", "serif"]; var fontList = [ "Andale Mono", "Arial", "Arial Black", "Arial Hebrew", "Arial MT", "Arial Narrow", "Arial Rounded MT Bold", "Arial Unicode MS", "Bitstream Vera Sans Mono", "Book Antiqua", "Bookman Old Style", "Calibri", "Cambria", "Cambria Math", "Century", "Century Gothic", "Century Schoolbook", "Comic Sans", "Comic Sans MS", "Consolas", "Courier", "Courier New", "Geneva", "Georgia", "Helvetica", "Helvetica Neue", "Impact", "Lucida Bright", "Lucida Calligraphy", "Lucida Console", "Lucida Fax", "LUCIDA GRANDE", "Lucida Handwriting", "Lucida Sans", "Lucida Sans Typewriter", "Lucida Sans Unicode", "Microsoft Sans Serif", "Monaco", "Monotype Corsiva", "MS Gothic", "MS Outlook", "MS PGothic", "MS Reference Sans Serif", "MS Sans Serif", "MS Serif", "MYRIAD", "MYRIAD PRO", "Palatino", "Palatino Linotype", "Segoe Print", "Segoe Script", "Segoe UI", "Segoe UI Light", "Segoe UI Semibold", "Segoe UI Symbol", "Tahoma", "Times", "Times New Roman", "Times New Roman PS", "Trebuchet MS", "Verdana", "Wingdings", "Wingdings 2", "Wingdings 3" ]; if (options.fonts.extendedJsFonts) { var extendedFontList = [ "Abadi MT Condensed Light", "Academy Engraved LET", "ADOBE CASLON PRO", "Adobe Garamond", "ADOBE GARAMOND PRO", "Agency FB", "Aharoni", "Albertus Extra Bold", "Albertus Medium", "Algerian", "Amazone BT", "American Typewriter", "American Typewriter Condensed", "AmerType Md BT", "Andalus", "Angsana New", "AngsanaUPC", "Antique Olive", "Aparajita", "Apple Chancery", "Apple Color Emoji", "Apple SD Gothic Neo", "Arabic Typesetting", "ARCHER", "ARNO PRO", "Arrus BT", "Aurora Cn BT", "AvantGarde Bk BT", "AvantGarde Md BT", "AVENIR", "Ayuthaya", "Bandy", "Bangla Sangam MN", "Bank Gothic", "BankGothic Md BT", "Baskerville", "Baskerville Old Face", "Batang", "BatangChe", "Bauer Bodoni", "Bauhaus 93", "Bazooka", "Bell MT", "Bembo", "Benguiat Bk BT", "Berlin Sans FB", "Berlin Sans FB Demi", "Bernard MT Condensed", "BernhardFashion BT", "BernhardMod BT", "Big Caslon", "BinnerD", "Blackadder ITC", "BlairMdITC TT", "Bodoni 72", "Bodoni 72 Oldstyle", "Bodoni 72 Smallcaps", "Bodoni MT", "Bodoni MT Black", "Bodoni MT Condensed", "Bodoni MT Poster Compressed", "Bookshelf Symbol 7", "Boulder", "Bradley Hand", "Bradley Hand ITC", "Bremen Bd BT", "Britannic Bold", "Broadway", "Browallia New", "BrowalliaUPC", "Brush Script MT", "Californian FB", "Calisto MT", "Calligrapher", "Candara", "CaslonOpnface BT", "Castellar", "Centaur", "Cezanne", "CG Omega", "CG Times", "Chalkboard", "Chalkboard SE", "Chalkduster", "Charlesworth", "Charter Bd BT", "Charter BT", "Chaucer", "ChelthmITC Bk BT", "Chiller", "Clarendon", "Clarendon Condensed", "CloisterBlack BT", "Cochin", "Colonna MT", "Constantia", "Cooper Black", "Copperplate", "Copperplate Gothic", "Copperplate Gothic Bold", "Copperplate Gothic Light", "CopperplGoth Bd BT", "Corbel", "Cordia New", "CordiaUPC", "Cornerstone", "Coronet", "Cuckoo", "Curlz MT", "DaunPenh", "Dauphin", "David", "DB LCD Temp", "DELICIOUS", "Denmark", "DFKai-SB", "Didot", "DilleniaUPC", "DIN", "DokChampa", "Dotum", "DotumChe", "Ebrima", "Edwardian Script ITC", "Elephant", "English 111 Vivace BT", "Engravers MT", "EngraversGothic BT", "Eras Bold ITC", "Eras Demi ITC", "Eras Light ITC", "Eras Medium ITC", "EucrosiaUPC", "Euphemia", "Euphemia UCAS", "EUROSTILE", "Exotc350 Bd BT", "FangSong", "Felix Titling", "Fixedsys", "FONTIN", "Footlight MT Light", "Forte", "FrankRuehl", "Fransiscan", "Freefrm721 Blk BT", "FreesiaUPC", "Freestyle Script", "French Script MT", "FrnkGothITC Bk BT", "Fruitger", "FRUTIGER", "Futura", "Futura Bk BT", "Futura Lt BT", "Futura Md BT", "Futura ZBlk BT", "FuturaBlack BT", "Gabriola", "Galliard BT", "Gautami", "Geeza Pro", "Geometr231 BT", "Geometr231 Hv BT", "Geometr231 Lt BT", "GeoSlab 703 Lt BT", "GeoSlab 703 XBd BT", "Gigi", "Gill Sans", "Gill Sans MT", "Gill Sans MT Condensed", "Gill Sans MT Ext Condensed Bold", "Gill Sans Ultra Bold", "Gill Sans Ultra Bold Condensed", "Gisha", "Gloucester MT Extra Condensed", "GOTHAM", "GOTHAM BOLD", "Goudy Old Style", "Goudy Stout", "GoudyHandtooled BT", "GoudyOLSt BT", "Gujarati Sangam MN", "Gulim", "GulimChe", "Gungsuh", "GungsuhChe", "Gurmukhi MN", "Haettenschweiler", "Harlow Solid Italic", "Harrington", "Heather", "Heiti SC", "Heiti TC", "HELV", "Herald", "High Tower Text", "Hiragino Kaku Gothic ProN", "Hiragino Mincho ProN", "Hoefler Text", "Humanst 521 Cn BT", "Humanst521 BT", "Humanst521 Lt BT", "Imprint MT Shadow", "Incised901 Bd BT", "Incised901 BT", "Incised901 Lt BT", "INCONSOLATA", "Informal Roman", "Informal011 BT", "INTERSTATE", "IrisUPC", "Iskoola Pota", "JasmineUPC", "Jazz LET", "Jenson", "Jester", "Jokerman", "Juice ITC", "Kabel Bk BT", "Kabel Ult BT", "Kailasa", "KaiTi", "Kalinga", "Kannada Sangam MN", "Kartika", "Kaufmann Bd BT", "Kaufmann BT", "Khmer UI", "KodchiangUPC", "Kokila", "Korinna BT", "Kristen ITC", "Krungthep", "Kunstler Script", "Lao UI", "Latha", "Leelawadee", "Letter Gothic", "Levenim MT", "LilyUPC", "Lithograph", "Lithograph Light", "Long Island", "Lydian BT", "Magneto", "Maiandra GD", "Malayalam Sangam MN", "Malgun Gothic", "Mangal", "Marigold", "Marion", "Marker Felt", "Market", "Marlett", "Matisse ITC", "Matura MT Script Capitals", "Meiryo", "Meiryo UI", "Microsoft Himalaya", "Microsoft JhengHei", "Microsoft New Tai Lue", "Microsoft PhagsPa", "Microsoft Tai Le", "Microsoft Uighur", "Microsoft YaHei", "Microsoft Yi Baiti", "MingLiU", "MingLiU_HKSCS", "MingLiU_HKSCS-ExtB", "MingLiU-ExtB", "Minion", "Minion Pro", "Miriam", "Miriam Fixed", "Mistral", "Modern", "Modern No. 20", "Mona Lisa Solid ITC TT", "Mongolian Baiti", "MONO", "MoolBoran", "Mrs Eaves", "MS LineDraw", "MS Mincho", "MS PMincho", "MS Reference Specialty", "MS UI Gothic", "MT Extra", "MUSEO", "MV Boli", "Nadeem", "Narkisim", "NEVIS", "News Gothic", "News GothicMT", "NewsGoth BT", "Niagara Engraved", "Niagara Solid", "Noteworthy", "NSimSun", "Nyala", "OCR A Extended", "Old Century", "Old English Text MT", "Onyx", "Onyx BT", "OPTIMA", "Oriya Sangam MN", "OSAKA", "OzHandicraft BT", "Palace Script MT", "Papyrus", "Parchment", "Party LET", "Pegasus", "Perpetua", "Perpetua Titling MT", "PetitaBold", "Pickwick", "Plantagenet Cherokee", "Playbill", "PMingLiU", "PMingLiU-ExtB", "Poor Richard", "Poster", "PosterBodoni BT", "PRINCETOWN LET", "Pristina", "PTBarnum BT", "Pythagoras", "Raavi", "Rage Italic", "Ravie", "Ribbon131 Bd BT", "Rockwell", "Rockwell Condensed", "Rockwell Extra Bold", "Rod", "Roman", "Sakkal Majalla", "Santa Fe LET", "Savoye LET", "Sceptre", "Script", "Script MT Bold", "SCRIPTINA", "Serifa", "Serifa BT", "Serifa Th BT", "ShelleyVolante BT", "Sherwood", "Shonar Bangla", "Showcard Gothic", "Shruti", "Signboard", "SILKSCREEN", "SimHei", "Simplified Arabic", "Simplified Arabic Fixed", "SimSun", "SimSun-ExtB", "Sinhala Sangam MN", "Sketch Rockwell", "Skia", "Small Fonts", "Snap ITC", "Snell Roundhand", "Socket", "Souvenir Lt BT", "Staccato222 BT", "Steamer", "Stencil", "Storybook", "Styllo", "Subway", "Swis721 BlkEx BT", "Swiss911 XCm BT", "Sylfaen", "Synchro LET", "System", "Tamil Sangam MN", "Technical", "Teletype", "Telugu Sangam MN", "Tempus Sans ITC", "Terminal", "Thonburi", "Traditional Arabic", "Trajan", "TRAJAN PRO", "Tristan", "Tubular", "Tunga", "Tw Cen MT", "Tw Cen MT Condensed", "Tw Cen MT Condensed Extra Bold", "TypoUpright BT", "Unicorn", "Univers", "Univers CE 55 Medium", "Univers Condensed", "Utsaah", "Vagabond", "Vani", "Vijaya", "Viner Hand ITC", "VisualUI", "Vivaldi", "Vladimir Script", "Vrinda", "Westminster", "WHITNEY", "Wide Latin", "ZapfEllipt BT", "ZapfHumnst BT", "ZapfHumnst Dm BT", "Zapfino", "Zurich BlkEx BT", "Zurich Ex BT", "ZWAdobeF" ]; fontList = fontList.concat(extendedFontList); } fontList = fontList.concat(options.fonts.userDefinedFonts); fontList = fontList.filter(function(font, position) { return fontList.indexOf(font) === position; }); var testString = "mmmmmmmmmmlli"; var testSize = "72px"; var h2 = document.getElementsByTagName("body")[0]; var baseFontsDiv = document.createElement("div"); var fontsDiv = document.createElement("div"); var defaultWidth = {}; var defaultHeight = {}; var createSpan = function() { var s = document.createElement("span"); s.style.position = "absolute"; s.style.left = "-9999px"; s.style.fontSize = testSize; s.style.fontStyle = "normal"; s.style.fontWeight = "normal"; s.style.letterSpacing = "normal"; s.style.lineBreak = "auto"; s.style.lineHeight = "normal"; s.style.textTransform = "none"; s.style.textAlign = "left"; s.style.textDecoration = "none"; s.style.textShadow = "none"; s.style.whiteSpace = "normal"; s.style.wordBreak = "normal"; s.style.wordSpacing = "normal"; s.innerHTML = testString; return s; }; var createSpanWithFonts = function(fontToDetect, baseFont) { var s = createSpan(); s.style.fontFamily = "'" + fontToDetect + "'," + baseFont; return s; }; var initializeBaseFontsSpans = function() { var spans = []; for (var index3 = 0, length2 = baseFonts.length; index3 < length2; index3++) { var s = createSpan(); s.style.fontFamily = baseFonts[index3]; baseFontsDiv.appendChild(s); spans.push(s); } return spans; }; var initializeFontsSpans = function() { var spans = {}; for (var i3 = 0, l2 = fontList.length; i3 < l2; i3++) { var fontSpans = []; for (var j = 0, numDefaultFonts = baseFonts.length; j < numDefaultFonts; j++) { var s = createSpanWithFonts(fontList[i3], baseFonts[j]); fontsDiv.appendChild(s); fontSpans.push(s); } spans[fontList[i3]] = fontSpans; } return spans; }; var isFontAvailable = function(fontSpans) { var detected = false; for (var i3 = 0; i3 < baseFonts.length; i3++) { detected = fontSpans[i3].offsetWidth !== defaultWidth[baseFonts[i3]] || fontSpans[i3].offsetHeight !== defaultHeight[baseFonts[i3]]; if (detected) { return detected; } } return detected; }; var baseFontsSpans = initializeBaseFontsSpans(); h2.appendChild(baseFontsDiv); for (var index2 = 0, length = baseFonts.length; index2 < length; index2++) { defaultWidth[baseFonts[index2]] = baseFontsSpans[index2].offsetWidth; defaultHeight[baseFonts[index2]] = baseFontsSpans[index2].offsetHeight; } var fontsSpans = initializeFontsSpans(); h2.appendChild(fontsDiv); var available = []; for (var i2 = 0, l = fontList.length; i2 < l; i2++) { if (isFontAvailable(fontsSpans[fontList[i2]])) { available.push(fontList[i2]); } } h2.removeChild(fontsDiv); h2.removeChild(baseFontsDiv); done(available); }; var pluginsComponent = function(done, options) { if (isIE()) { if (!options.plugins.excludeIE) { done(getIEPlugins(options)); } else { done(options.EXCLUDED); } } else { done(getRegularPlugins(options)); } }; var getRegularPlugins = function(options) { if (navigator.plugins == null) { return options.NOT_AVAILABLE; } var plugins = []; for (var i2 = 0, l = navigator.plugins.length; i2 < l; i2++) { if (navigator.plugins[i2]) { plugins.push(navigator.plugins[i2]); } } if (pluginsShouldBeSorted(options)) { plugins = plugins.sort(function(a2, b) { if (a2.name > b.name) { return 1; } if (a2.name < b.name) { return -1; } return 0; }); } return map2(plugins, function(p2) { var mimeTypes = map2(p2, function(mt) { return [mt.type, mt.suffixes]; }); return [p2.name, p2.description, mimeTypes]; }); }; var getIEPlugins = function(options) { var result2 = []; if (Object.getOwnPropertyDescriptor && Object.getOwnPropertyDescriptor(window, "ActiveXObject") || "ActiveXObject" in window) { var names = [ "AcroPDF.PDF", "Adodb.Stream", "AgControl.AgControl", "DevalVRXCtrl.DevalVRXCtrl.1", "MacromediaFlashPaper.MacromediaFlashPaper", "Msxml2.DOMDocument", "Msxml2.XMLHTTP", "PDF.PdfCtrl", "QuickTime.QuickTime", "QuickTimeCheckObject.QuickTimeCheck.1", "RealPlayer", "RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)", "RealVideo.RealVideo(tm) ActiveX Control (32-bit)", "Scripting.Dictionary", "SWCtl.SWCtl", "Shell.UIHelper", "ShockwaveFlash.ShockwaveFlash", "Skype.Detection", "TDCCtl.TDCCtl", "WMPlayer.OCX", "rmocx.RealPlayer G2 Control", "rmocx.RealPlayer G2 Control.1" ]; result2 = map2(names, function(name) { try { new window.ActiveXObject(name); return name; } catch (e2) { return options.ERROR; } }); } else { result2.push(options.NOT_AVAILABLE); } if (navigator.plugins) { result2 = result2.concat(getRegularPlugins(options)); } return result2; }; var pluginsShouldBeSorted = function(options) { var should = false; for (var i2 = 0, l = options.plugins.sortPluginsFor.length; i2 < l; i2++) { var re = options.plugins.sortPluginsFor[i2]; if (navigator.userAgent.match(re)) { should = true; break; } } return should; }; var touchSupportKey = function(done) { done(getTouchSupport()); }; var hardwareConcurrencyKey = function(done, options) { done(getHardwareConcurrency(options)); }; var hasSessionStorage = function(options) { try { return !!window.sessionStorage; } catch (e2) { return options.ERROR; } }; var hasLocalStorage = function(options) { try { return !!window.localStorage; } catch (e2) { return options.ERROR; } }; var hasIndexedDB = function(options) { try { return !!window.indexedDB; } catch (e2) { return options.ERROR; } }; var getHardwareConcurrency = function(options) { if (navigator.hardwareConcurrency) { return navigator.hardwareConcurrency; } return options.NOT_AVAILABLE; }; var getNavigatorCpuClass = function(options) { return navigator.cpuClass || options.NOT_AVAILABLE; }; var getNavigatorPlatform = function(options) { if (navigator.platform) { return navigator.platform; } else { return options.NOT_AVAILABLE; } }; var getDoNotTrack = function(options) { if (navigator.doNotTrack) { return navigator.doNotTrack; } else if (navigator.msDoNotTrack) { return navigator.msDoNotTrack; } else if (window.doNotTrack) { return window.doNotTrack; } else { return options.NOT_AVAILABLE; } }; var getTouchSupport = function() { var maxTouchPoints = 0; var touchEvent; if (typeof navigator.maxTouchPoints !== "undefined") { maxTouchPoints = navigator.maxTouchPoints; } else if (typeof navigator.msMaxTouchPoints !== "undefined") { maxTouchPoints = navigator.msMaxTouchPoints; } try { document.createEvent("TouchEvent"); touchEvent = true; } catch (_) { touchEvent = false; } var touchStart = "ontouchstart" in window; return [maxTouchPoints, touchEvent, touchStart]; }; var getCanvasFp = function(options) { var result2 = []; var canvas = document.createElement("canvas"); canvas.width = 2e3; canvas.height = 200; canvas.style.display = "inline"; var ctx = canvas.getContext("2d"); ctx.rect(0, 0, 10, 10); ctx.rect(2, 2, 6, 6); result2.push("canvas winding:" + (ctx.isPointInPath(5, 5, "evenodd") === false ? "yes" : "no")); ctx.textBaseline = "alphabetic"; ctx.fillStyle = "#f60"; ctx.fillRect(125, 1, 62, 20); ctx.fillStyle = "#069"; if (options.dontUseFakeFontInCanvas) { ctx.font = "11pt Arial"; } else { ctx.font = "11pt no-real-font-123"; } ctx.fillText("Cwm fjordbank glyphs vext quiz, \u{1F603}", 2, 15); ctx.fillStyle = "rgba(102, 204, 0, 0.2)"; ctx.font = "18pt Arial"; ctx.fillText("Cwm fjordbank glyphs vext quiz, \u{1F603}", 4, 45); ctx.globalCompositeOperation = "multiply"; ctx.fillStyle = "rgb(255,0,255)"; ctx.beginPath(); ctx.arc(50, 50, 50, 0, Math.PI * 2, true); ctx.closePath(); ctx.fill(); ctx.fillStyle = "rgb(0,255,255)"; ctx.beginPath(); ctx.arc(100, 50, 50, 0, Math.PI * 2, true); ctx.closePath(); ctx.fill(); ctx.fillStyle = "rgb(255,255,0)"; ctx.beginPath(); ctx.arc(75, 100, 50, 0, Math.PI * 2, true); ctx.closePath(); ctx.fill(); ctx.fillStyle = "rgb(255,0,255)"; ctx.arc(75, 75, 75, 0, Math.PI * 2, true); ctx.arc(75, 75, 25, 0, Math.PI * 2, true); ctx.fill("evenodd"); if (canvas.toDataURL) { result2.push("canvas fp:" + canvas.toDataURL()); } return result2; }; var getWebglFp = function() { var gl; var fa2s = function(fa) { gl.clearColor(0, 0, 0, 1); gl.enable(gl.DEPTH_TEST); gl.depthFunc(gl.LEQUAL); gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); return "[" + fa[0] + ", " + fa[1] + "]"; }; var maxAnisotropy = function(gl2) { var ext = gl2.getExtension("EXT_texture_filter_anisotropic") || gl2.getExtension("WEBKIT_EXT_texture_filter_anisotropic") || gl2.getExtension("MOZ_EXT_texture_filter_anisotropic"); if (ext) { var anisotropy = gl2.getParameter(ext.MAX_TEXTURE_MAX_ANISOTROPY_EXT); if (anisotropy === 0) { anisotropy = 2; } return anisotropy; } else { return null; } }; gl = getWebglCanvas(); if (!gl) { return null; } var result2 = []; var vShaderTemplate = "attribute vec2 attrVertex;varying vec2 varyinTexCoordinate;uniform vec2 uniformOffset;void main(){varyinTexCoordinate=attrVertex+uniformOffset;gl_Position=vec4(attrVertex,0,1);}"; var fShaderTemplate = "precision mediump float;varying vec2 varyinTexCoordinate;void main() {gl_FragColor=vec4(varyinTexCoordinate,0,1);}"; var vertexPosBuffer = gl.createBuffer(); gl.bindBuffer(gl.ARRAY_BUFFER, vertexPosBuffer); var vertices = new Float32Array([-0.2, -0.9, 0, 0.4, -0.26, 0, 0, 0.732134444, 0]); gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW); vertexPosBuffer.itemSize = 3; vertexPosBuffer.numItems = 3; var program = gl.createProgram(); var vshader = gl.createShader(gl.VERTEX_SHADER); gl.shaderSource(vshader, vShaderTemplate); gl.compileShader(vshader); var fshader = gl.createShader(gl.FRAGMENT_SHADER); gl.shaderSource(fshader, fShaderTemplate); gl.compileShader(fshader); gl.attachShader(program, vshader); gl.attachShader(program, fshader); gl.linkProgram(program); gl.useProgram(program); program.vertexPosAttrib = gl.getAttribLocation(program, "attrVertex"); program.offsetUniform = gl.getUniformLocation(program, "uniformOffset"); gl.enableVertexAttribArray(program.vertexPosArray); gl.vertexAttribPointer(program.vertexPosAttrib, vertexPosBuffer.itemSize, gl.FLOAT, false, 0, 0); gl.uniform2f(program.offsetUniform, 1, 1); gl.drawArrays(gl.TRIANGLE_STRIP, 0, vertexPosBuffer.numItems); try { result2.push(gl.canvas.toDataURL()); } catch (e2) { } result2.push("extensions:" + (gl.getSupportedExtensions() || []).join(";")); result2.push("webgl aliased line width range:" + fa2s(gl.getParameter(gl.ALIASED_LINE_WIDTH_RANGE))); result2.push("webgl aliased point size range:" + fa2s(gl.getParameter(gl.ALIASED_POINT_SIZE_RANGE))); result2.push("webgl alpha bits:" + gl.getParameter(gl.ALPHA_BITS)); result2.push("webgl antialiasing:" + (gl.getContextAttributes().antialias ? "yes" : "no")); result2.push("webgl blue bits:" + gl.getParameter(gl.BLUE_BITS)); result2.push("webgl depth bits:" + gl.getParameter(gl.DEPTH_BITS)); result2.push("webgl green bits:" + gl.getParameter(gl.GREEN_BITS)); result2.push("webgl max anisotropy:" + maxAnisotropy(gl)); result2.push("webgl max combined texture image units:" + gl.getParameter(gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS)); result2.push("webgl max cube map texture size:" + gl.getParameter(gl.MAX_CUBE_MAP_TEXTURE_SIZE)); result2.push("webgl max fragment uniform vectors:" + gl.getParameter(gl.MAX_FRAGMENT_UNIFORM_VECTORS)); result2.push("webgl max render buffer size:" + gl.getParameter(gl.MAX_RENDERBUFFER_SIZE)); result2.push("webgl max texture image units:" + gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS)); result2.push("webgl max texture size:" + gl.getParameter(gl.MAX_TEXTURE_SIZE)); result2.push("webgl max varying vectors:" + gl.getParameter(gl.MAX_VARYING_VECTORS)); result2.push("webgl max vertex attribs:" + gl.getParameter(gl.MAX_VERTEX_ATTRIBS)); result2.push("webgl max vertex texture image units:" + gl.getParameter(gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS)); result2.push("webgl max vertex uniform vectors:" + gl.getParameter(gl.MAX_VERTEX_UNIFORM_VECTORS)); result2.push("webgl max viewport dims:" + fa2s(gl.getParameter(gl.MAX_VIEWPORT_DIMS))); result2.push("webgl red bits:" + gl.getParameter(gl.RED_BITS)); result2.push("webgl renderer:" + gl.getParameter(gl.RENDERER)); result2.push("webgl shading language version:" + gl.getParameter(gl.SHADING_LANGUAGE_VERSION)); result2.push("webgl stencil bits:" + gl.getParameter(gl.STENCIL_BITS)); result2.push("webgl vendor:" + gl.getParameter(gl.VENDOR)); result2.push("webgl version:" + gl.getParameter(gl.VERSION)); try { var extensionDebugRendererInfo = gl.getExtension("WEBGL_debug_renderer_info"); if (extensionDebugRendererInfo) { result2.push("webgl unmasked vendor:" + gl.getParameter(extensionDebugRendererInfo.UNMASKED_VENDOR_WEBGL)); result2.push("webgl unmasked renderer:" + gl.getParameter(extensionDebugRendererInfo.UNMASKED_RENDERER_WEBGL)); } } catch (e2) { } if (!gl.getShaderPrecisionFormat) { return result2; } each(["FLOAT", "INT"], function(numType) { each(["VERTEX", "FRAGMENT"], function(shader) { each(["HIGH", "MEDIUM", "LOW"], function(numSize) { each(["precision", "rangeMin", "rangeMax"], function(key) { var format2 = gl.getShaderPrecisionFormat(gl[shader + "_SHADER"], gl[numSize + "_" + numType])[key]; if (key !== "precision") { key = "precision " + key; } var line = ["webgl ", shader.toLowerCase(), " shader ", numSize.toLowerCase(), " ", numType.toLowerCase(), " ", key, ":", format2].join(""); result2.push(line); }); }); }); }); return result2; }; var getWebglVendorAndRenderer = function() { try { var glContext = getWebglCanvas(); var extensionDebugRendererInfo = glContext.getExtension("WEBGL_debug_renderer_info"); return glContext.getParameter(extensionDebugRendererInfo.UNMASKED_VENDOR_WEBGL) + "~" + glContext.getParameter(extensionDebugRendererInfo.UNMASKED_RENDERER_WEBGL); } catch (e2) { return null; } }; var getAdBlock = function() { var ads = document.createElement("div"); ads.innerHTML = " "; ads.className = "adsbox"; var result2 = false; try { document.body.appendChild(ads); result2 = document.getElementsByClassName("adsbox")[0].offsetHeight === 0; document.body.removeChild(ads); } catch (e2) { result2 = false; } return result2; }; var getHasLiedLanguages = function() { if (typeof navigator.languages !== "undefined") { try { var firstLanguages = navigator.languages[0].substr(0, 2); if (firstLanguages !== navigator.language.substr(0, 2)) { return true; } } catch (err) { return true; } } return false; }; var getHasLiedResolution = function() { return window.screen.width < window.screen.availWidth || window.screen.height < window.screen.availHeight; }; var getHasLiedOs = function() { var userAgent = navigator.userAgent.toLowerCase(); var oscpu = navigator.oscpu; var platform = navigator.platform.toLowerCase(); var os2; if (userAgent.indexOf("windows phone") >= 0) { os2 = "Windows Phone"; } else if (userAgent.indexOf("win") >= 0) { os2 = "Windows"; } else if (userAgent.indexOf("android") >= 0) { os2 = "Android"; } else if (userAgent.indexOf("linux") >= 0 || userAgent.indexOf("cros") >= 0) { os2 = "Linux"; } else if (userAgent.indexOf("iphone") >= 0 || userAgent.indexOf("ipad") >= 0) { os2 = "iOS"; } else if (userAgent.indexOf("mac") >= 0) { os2 = "Mac"; } else { os2 = "Other"; } var mobileDevice = "ontouchstart" in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0; if (mobileDevice && os2 !== "Windows Phone" && os2 !== "Android" && os2 !== "iOS" && os2 !== "Other") { return true; } if (typeof oscpu !== "undefined") { oscpu = oscpu.toLowerCase(); if (oscpu.indexOf("win") >= 0 && os2 !== "Windows" && os2 !== "Windows Phone") { return true; } else if (oscpu.indexOf("linux") >= 0 && os2 !== "Linux" && os2 !== "Android") { return true; } else if (oscpu.indexOf("mac") >= 0 && os2 !== "Mac" && os2 !== "iOS") { return true; } else if ((oscpu.indexOf("win") === -1 && oscpu.indexOf("linux") === -1 && oscpu.indexOf("mac") === -1) !== (os2 === "Other")) { return true; } } if (platform.indexOf("win") >= 0 && os2 !== "Windows" && os2 !== "Windows Phone") { return true; } else if ((platform.indexOf("linux") >= 0 || platform.indexOf("android") >= 0 || platform.indexOf("pike") >= 0) && os2 !== "Linux" && os2 !== "Android") { return true; } else if ((platform.indexOf("mac") >= 0 || platform.indexOf("ipad") >= 0 || platform.indexOf("ipod") >= 0 || platform.indexOf("iphone") >= 0) && os2 !== "Mac" && os2 !== "iOS") { return true; } else { var platformIsOther = platform.indexOf("win") < 0 && platform.indexOf("linux") < 0 && platform.indexOf("mac") < 0 && platform.indexOf("iphone") < 0 && platform.indexOf("ipad") < 0; if (platformIsOther !== (os2 === "Other")) { return true; } } return typeof navigator.plugins === "undefined" && os2 !== "Windows" && os2 !== "Windows Phone"; }; var getHasLiedBrowser = function() { var userAgent = navigator.userAgent.toLowerCase(); var productSub = navigator.productSub; var browser; if (userAgent.indexOf("firefox") >= 0) { browser = "Firefox"; } else if (userAgent.indexOf("opera") >= 0 || userAgent.indexOf("opr") >= 0) { browser = "Opera"; } else if (userAgent.indexOf("chrome") >= 0) { browser = "Chrome"; } else if (userAgent.indexOf("safari") >= 0) { browser = "Safari"; } else if (userAgent.indexOf("trident") >= 0) { browser = "Internet Explorer"; } else { browser = "Other"; } if ((browser === "Chrome" || browser === "Safari" || browser === "Opera") && productSub !== "20030107") { return true; } var tempRes = eval.toString().length; if (tempRes === 37 && browser !== "Safari" && browser !== "Firefox" && browser !== "Other") { return true; } else if (tempRes === 39 && browser !== "Internet Explorer" && browser !== "Other") { return true; } else if (tempRes === 33 && browser !== "Chrome" && browser !== "Opera" && browser !== "Other") { return true; } var errFirefox; try { throw "a"; } catch (err) { try { err.toSource(); errFirefox = true; } catch (errOfErr) { errFirefox = false; } } return errFirefox && browser !== "Firefox" && browser !== "Other"; }; var isCanvasSupported = function() { var elem = document.createElement("canvas"); return !!(elem.getContext && elem.getContext("2d")); }; var isWebGlSupported = function() { if (!isCanvasSupported()) { return false; } var glContext = getWebglCanvas(); return !!window.WebGLRenderingContext && !!glContext; }; var isIE = function() { if (navigator.appName === "Microsoft Internet Explorer") { return true; } else if (navigator.appName === "Netscape" && /Trident/.test(navigator.userAgent)) { return true; } return false; }; var hasSwfObjectLoaded = function() { return typeof window.swfobject !== "undefined"; }; var hasMinFlashInstalled = function() { return window.swfobject.hasFlashPlayerVersion("9.0.0"); }; var addFlashDivNode = function(options) { var node = document.createElement("div"); node.setAttribute("id", options.fonts.swfContainerId); document.body.appendChild(node); }; var loadSwfAndDetectFonts = function(done, options) { var hiddenCallback = "___fp_swf_loaded"; window[hiddenCallback] = function(fonts) { done(fonts); }; var id = options.fonts.swfContainerId; addFlashDivNode(); var flashvars = { onReady: hiddenCallback }; var flashparams = { allowScriptAccess: "always", menu: "false" }; window.swfobject.embedSWF(options.fonts.swfPath, id, "1", "1", "9.0.0", false, flashvars, flashparams, {}); }; var getWebglCanvas = function() { var canvas = document.createElement("canvas"); var gl = null; try { gl = canvas.getContext("webgl") || canvas.getContext("experimental-webgl"); } catch (e2) { } if (!gl) { gl = null; } return gl; }; var components = [ { key: "userAgent", getData: UserAgent }, { key: "webdriver", getData: webdriver }, { key: "language", getData: languageKey }, { key: "colorDepth", getData: colorDepthKey }, { key: "deviceMemory", getData: deviceMemoryKey }, { key: "pixelRatio", getData: pixelRatioKey }, { key: "hardwareConcurrency", getData: hardwareConcurrencyKey }, { key: "screenResolution", getData: screenResolutionKey }, { key: "availableScreenResolution", getData: availableScreenResolutionKey }, { key: "timezoneOffset", getData: timezoneOffset }, { key: "timezone", getData: timezone }, { key: "sessionStorage", getData: sessionStorageKey }, { key: "localStorage", getData: localStorageKey }, { key: "indexedDb", getData: indexedDbKey }, { key: "addBehavior", getData: addBehaviorKey }, { key: "openDatabase", getData: openDatabaseKey }, { key: "cpuClass", getData: cpuClassKey }, { key: "platform", getData: platformKey }, { key: "doNotTrack", getData: doNotTrackKey }, { key: "plugins", getData: pluginsComponent }, { key: "canvas", getData: canvasKey }, { key: "webgl", getData: webglKey }, { key: "webglVendorAndRenderer", getData: webglVendorAndRendererKey }, { key: "adBlock", getData: adBlockKey }, { key: "hasLiedLanguages", getData: hasLiedLanguagesKey }, { key: "hasLiedResolution", getData: hasLiedResolutionKey }, { key: "hasLiedOs", getData: hasLiedOsKey }, { key: "hasLiedBrowser", getData: hasLiedBrowserKey }, { key: "touchSupport", getData: touchSupportKey }, { key: "fonts", getData: jsFontsKey, pauseBefore: true }, { key: "fontsFlash", getData: flashFontsKey, pauseBefore: true }, { key: "audio", getData: audioKey }, { key: "enumerateDevices", getData: enumerateDevicesKey } ]; var Fingerprint2 = function(options) { throw new Error("'new Fingerprint()' is deprecated, see https://github.com/Valve/fingerprintjs2#upgrade-guide-from-182-to-200"); }; Fingerprint2.get = function(options, callback) { if (!callback) { callback = options; options = {}; } else if (!options) { options = {}; } extendSoft(options, defaultOptions2); options.components = options.extraComponents.concat(components); var keys2 = { data: [], addPreprocessedComponent: function(key, value) { if (typeof options.preprocessor === "function") { value = options.preprocessor(key, value); } keys2.data.push({ key, value }); } }; var i2 = -1; var chainComponents = function(alreadyWaited) { i2 += 1; if (i2 >= options.components.length) { callback(keys2.data); return; } var component = options.components[i2]; if (options.excludes[component.key]) { chainComponents(false); return; } if (!alreadyWaited && component.pauseBefore) { i2 -= 1; setTimeout(function() { chainComponents(true); }, 1); return; } try { component.getData(function(value) { keys2.addPreprocessedComponent(component.key, value); chainComponents(false); }, options); } catch (error) { keys2.addPreprocessedComponent(component.key, String(error)); chainComponents(false); } }; chainComponents(false); }; Fingerprint2.getPromise = function(options) { return new Promise(function(resolve2, reject) { Fingerprint2.get(options, resolve2); }); }; Fingerprint2.getV18 = function(options, callback) { if (callback == null) { callback = options; options = {}; } return Fingerprint2.get(options, function(components2) { var newComponents = []; for (var i2 = 0; i2 < components2.length; i2++) { var component = components2[i2]; if (component.value === (options.NOT_AVAILABLE || "not available")) { newComponents.push({ key: component.key, value: "unknown" }); } else if (component.key === "plugins") { newComponents.push({ key: "plugins", value: map2(component.value, function(p2) { var mimeTypes = map2(p2[2], function(mt) { if (mt.join) { return mt.join("~"); } return mt; }).join(","); return [p2[0], p2[1], mimeTypes].join("::"); }) }); } else if (["canvas", "webgl"].indexOf(component.key) !== -1) { newComponents.push({ key: component.key, value: component.value.join("~") }); } else if (["sessionStorage", "localStorage", "indexedDb", "addBehavior", "openDatabase"].indexOf(component.key) !== -1) { if (component.value) { newComponents.push({ key: component.key, value: 1 }); } else { continue; } } else { if (component.value) { newComponents.push(component.value.join ? { key: component.key, value: component.value.join(";") } : component); } else { newComponents.push({ key: component.key, value: component.value }); } } } var murmur = x64hash128(map2(newComponents, function(component2) { return component2.value; }).join("~~~"), 31); callback(murmur, newComponents); }); }; Fingerprint2.x64hash128 = x64hash128; Fingerprint2.VERSION = "2.1.0"; return Fingerprint2; }); })(fingerprint2); const Fingerprint = fingerprint2.exports; function commonjsRequire(path) { throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.'); } var uniqid = { exports: {} }; const __viteBrowserExternal = {}; const __viteBrowserExternal$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, default: __viteBrowserExternal }, Symbol.toStringTag, { value: "Module" })); const require$$0$1 = /* @__PURE__ */ getAugmentedNamespace(__viteBrowserExternal$1); var pid = typeof process !== "undefined" && process.pid ? process.pid.toString(36) : ""; var address = ""; if (typeof __webpack_require__ !== "function" && typeof commonjsRequire !== "undefined") { var mac = "", os = require$$0$1; if (os.networkInterfaces) var networkInterfaces = os.networkInterfaces(); if (networkInterfaces) { loop: for (let interface_key in networkInterfaces) { const networkInterface = networkInterfaces[interface_key]; const length = networkInterface.length; for (var i = 0; i < length; i++) { if (networkInterface[i] !== void 0 && networkInterface[i].mac && networkInterface[i].mac != "00:00:00:00:00:00") { mac = networkInterface[i].mac; break loop; } } } address = mac ? parseInt(mac.replace(/\:|\D+/gi, "")).toString(36) : ""; } } uniqid.exports = uniqid.exports.default = function(prefix, suffix) { return (prefix ? prefix : "") + address + pid + now().toString(36) + (suffix ? suffix : ""); }; uniqid.exports.process = function(prefix, suffix) { return (prefix ? prefix : "") + pid + now().toString(36) + (suffix ? suffix : ""); }; uniqid.exports.time = function(prefix, suffix) { return (prefix ? prefix : "") + now().toString(36) + (suffix ? suffix : ""); }; function now() { var time = Date.now(); var last = now.last || time; return now.last = time > last ? time : last + 1; } var extendStatics = function(d, b) { extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { d2.__proto__ = b2; } || function(d2, b2) { for (var p2 in b2) if (Object.prototype.hasOwnProperty.call(b2, p2)) d2[p2] = b2[p2]; }; return extendStatics(d, b); }; function __extends(d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); } var __assign$1 = function() { __assign$1 = Object.assign || function __assign2(t2) { for (var s, i2 = 1, n2 = arguments.length; i2 < n2; i2++) { s = arguments[i2]; for (var p2 in s) if (Object.prototype.hasOwnProperty.call(s, p2)) t2[p2] = s[p2]; } return t2; }; return __assign$1.apply(this, arguments); }; function __rest(s, e2) { var t2 = {}; for (var p2 in s) if (Object.prototype.hasOwnProperty.call(s, p2) && e2.indexOf(p2) < 0) t2[p2] = s[p2]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i2 = 0, p2 = Object.getOwnPropertySymbols(s); i2 < p2.length; i2++) { if (e2.indexOf(p2[i2]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p2[i2])) t2[p2[i2]] = s[p2[i2]]; } return t2; } function __awaiter$1(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function(resolve2) { resolve2(value); }); } return new (P || (P = Promise))(function(resolve2, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e2) { reject(e2); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e2) { reject(e2); } } function step(result2) { result2.done ? resolve2(result2.value) : adopt(result2.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); } function __generator$1(thisArg, body) { var _ = { label: 0, sent: function() { if (t2[0] & 1) throw t2[1]; return t2[1]; }, trys: [], ops: [] }, f, y, t2, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n2) { return function(v) { return step([n2, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t2 = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t2 = y["return"]) && t2.call(y), 0) : y.next) && !(t2 = t2.call(y, op[1])).done) return t2; if (y = 0, t2) op = [op[0] & 2, t2.value]; switch (op[0]) { case 0: case 1: t2 = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t2 = _.trys, t2 = t2.length > 0 && t2[t2.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t2 || op[1] > t2[0] && op[1] < t2[3])) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t2[1]) { _.label = t2[1]; t2 = op; break; } if (t2 && _.label < t2[2]) { _.label = t2[2]; _.ops.push(op); break; } if (t2[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e2) { op = [6, e2]; y = 0; } finally { f = t2 = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } } function __spreadArray$1(to2, from2, pack) { if (pack || arguments.length === 2) for (var i2 = 0, l = from2.length, ar; i2 < l; i2++) { if (ar || !(i2 in from2)) { if (!ar) ar = Array.prototype.slice.call(from2, 0, i2); ar[i2] = from2[i2]; } } return to2.concat(ar || Array.prototype.slice.call(from2)); } typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message) { var e2 = new Error(message); return e2.name = "SuppressedError", e2.error = error, e2.suppressed = suppressed, e2; }; function devAssert(condition, message) { const booleanCondition = Boolean(condition); if (!booleanCondition) { throw new Error(message); } } function isObjectLike(value) { return typeof value == "object" && value !== null; } function invariant$2(condition, message) { const booleanCondition = Boolean(condition); if (!booleanCondition) { throw new Error( message != null ? message : "Unexpected invariant triggered." ); } } const LineRegExp = /\r\n|[\n\r]/g; function getLocation(source, position) { let lastLineStart = 0; let line = 1; for (const match of source.body.matchAll(LineRegExp)) { typeof match.index === "number" || invariant$2(false); if (match.index >= position) { break; } lastLineStart = match.index + match[0].length; line += 1; } return { line, column: position + 1 - lastLineStart }; } function printLocation(location2) { return printSourceLocation( location2.source, getLocation(location2.source, location2.start) ); } function printSourceLocation(source, sourceLocation) { const firstLineColumnOffset = source.locationOffset.column - 1; const body = "".padStart(firstLineColumnOffset) + source.body; const lineIndex = sourceLocation.line - 1; const lineOffset = source.locationOffset.line - 1; const lineNum = sourceLocation.line + lineOffset; const columnOffset = sourceLocation.line === 1 ? firstLineColumnOffset : 0; const columnNum = sourceLocation.column + columnOffset; const locationStr = `${source.name}:${lineNum}:${columnNum} `; const lines = body.split(/\r\n|[\n\r]/g); const locationLine = lines[lineIndex]; if (locationLine.length > 120) { const subLineIndex = Math.floor(columnNum / 80); const subLineColumnNum = columnNum % 80; const subLines = []; for (let i2 = 0; i2 < locationLine.length; i2 += 80) { subLines.push(locationLine.slice(i2, i2 + 80)); } return locationStr + printPrefixedLines([ [`${lineNum} |`, subLines[0]], ...subLines.slice(1, subLineIndex + 1).map((subLine) => ["|", subLine]), ["|", "^".padStart(subLineColumnNum)], ["|", subLines[subLineIndex + 1]] ]); } return locationStr + printPrefixedLines([ [`${lineNum - 1} |`, lines[lineIndex - 1]], [`${lineNum} |`, locationLine], ["|", "^".padStart(columnNum)], [`${lineNum + 1} |`, lines[lineIndex + 1]] ]); } function printPrefixedLines(lines) { const existingLines = lines.filter(([_, line]) => line !== void 0); const padLen = Math.max(...existingLines.map(([prefix]) => prefix.length)); return existingLines.map(([prefix, line]) => prefix.padStart(padLen) + (line ? " " + line : "")).join("\n"); } function toNormalizedOptions(args) { const firstArg = args[0]; if (firstArg == null || "kind" in firstArg || "length" in firstArg) { return { nodes: firstArg, source: args[1], positions: args[2], path: args[3], originalError: args[4], extensions: args[5] }; } return firstArg; } class GraphQLError extends Error { constructor(message, ...rawArgs) { var _this$nodes, _nodeLocations$, _ref; const { nodes, source, positions, path, originalError, extensions } = toNormalizedOptions(rawArgs); super(message); this.name = "GraphQLError"; this.path = path !== null && path !== void 0 ? path : void 0; this.originalError = originalError !== null && originalError !== void 0 ? originalError : void 0; this.nodes = undefinedIfEmpty( Array.isArray(nodes) ? nodes : nodes ? [nodes] : void 0 ); const nodeLocations = undefinedIfEmpty( (_this$nodes = this.nodes) === null || _this$nodes === void 0 ? void 0 : _this$nodes.map((node) => node.loc).filter((loc) => loc != null) ); this.source = source !== null && source !== void 0 ? source : nodeLocations === null || nodeLocations === void 0 ? void 0 : (_nodeLocations$ = nodeLocations[0]) === null || _nodeLocations$ === void 0 ? void 0 : _nodeLocations$.source; this.positions = positions !== null && positions !== void 0 ? positions : nodeLocations === null || nodeLocations === void 0 ? void 0 : nodeLocations.map((loc) => loc.start); this.locations = positions && source ? positions.map((pos) => getLocation(source, pos)) : nodeLocations === null || nodeLocations === void 0 ? void 0 : nodeLocations.map((loc) => getLocation(loc.source, loc.start)); const originalExtensions = isObjectLike( originalError === null || originalError === void 0 ? void 0 : originalError.extensions ) ? originalError === null || originalError === void 0 ? void 0 : originalError.extensions : void 0; this.extensions = (_ref = extensions !== null && extensions !== void 0 ? extensions : originalExtensions) !== null && _ref !== void 0 ? _ref : /* @__PURE__ */ Object.create(null); Object.defineProperties(this, { message: { writable: true, enumerable: true }, name: { enumerable: false }, nodes: { enumerable: false }, source: { enumerable: false }, positions: { enumerable: false }, originalError: { enumerable: false } }); if (originalError !== null && originalError !== void 0 && originalError.stack) { Object.defineProperty(this, "stack", { value: originalError.stack, writable: true, configurable: true }); } else if (Error.captureStackTrace) { Error.captureStackTrace(this, GraphQLError); } else { Object.defineProperty(this, "stack", { value: Error().stack, writable: true, configurable: true }); } } get [Symbol.toStringTag]() { return "GraphQLError"; } toString() { let output = this.message; if (this.nodes) { for (const node of this.nodes) { if (node.loc) { output += "\n\n" + printLocation(node.loc); } } } else if (this.source && this.locations) { for (const location2 of this.locations) { output += "\n\n" + printSourceLocation(this.source, location2); } } return output; } toJSON() { const formattedError = { message: this.message }; if (this.locations != null) { formattedError.locations = this.locations; } if (this.path != null) { formattedError.path = this.path; } if (this.extensions != null && Object.keys(this.extensions).length > 0) { formattedError.extensions = this.extensions; } return formattedError; } } function undefinedIfEmpty(array) { return array === void 0 || array.length === 0 ? void 0 : array; } function syntaxError(source, position, description) { return new GraphQLError(`Syntax Error: ${description}`, { source, positions: [position] }); } class Location { constructor(startToken, endToken, source) { this.start = startToken.start; this.end = endToken.end; this.startToken = startToken; this.endToken = endToken; this.source = source; } get [Symbol.toStringTag]() { return "Location"; } toJSON() { return { start: this.start, end: this.end }; } } class Token { constructor(kind, start, end, line, column, value) { this.kind = kind; this.start = start; this.end = end; this.line = line; this.column = column; this.value = value; this.prev = null; this.next = null; } get [Symbol.toStringTag]() { return "Token"; } toJSON() { return { kind: this.kind, value: this.value, line: this.line, column: this.column }; } } const QueryDocumentKeys = { Name: [], Document: ["definitions"], OperationDefinition: [ "name", "variableDefinitions", "directives", "selectionSet" ], VariableDefinition: ["variable", "type", "defaultValue", "directives"], Variable: ["name"], SelectionSet: ["selections"], Field: ["alias", "name", "arguments", "directives", "selectionSet"], Argument: ["name", "value"], FragmentSpread: ["name", "directives"], InlineFragment: ["typeCondition", "directives", "selectionSet"], FragmentDefinition: [ "name", "variableDefinitions", "typeCondition", "directives", "selectionSet" ], IntValue: [], FloatValue: [], StringValue: [], BooleanValue: [], NullValue: [], EnumValue: [], ListValue: ["values"], ObjectValue: ["fields"], ObjectField: ["name", "value"], Directive: ["name", "arguments"], NamedType: ["name"], ListType: ["type"], NonNullType: ["type"], SchemaDefinition: ["description", "directives", "operationTypes"], OperationTypeDefinition: ["type"], ScalarTypeDefinition: ["description", "name", "directives"], ObjectTypeDefinition: [ "description", "name", "interfaces", "directives", "fields" ], FieldDefinition: ["description", "name", "arguments", "type", "directives"], InputValueDefinition: [ "description", "name", "type", "defaultValue", "directives" ], InterfaceTypeDefinition: [ "description", "name", "interfaces", "directives", "fields" ], UnionTypeDefinition: ["description", "name", "directives", "types"], EnumTypeDefinition: ["description", "name", "directives", "values"], EnumValueDefinition: ["description", "name", "directives"], InputObjectTypeDefinition: ["description", "name", "directives", "fields"], DirectiveDefinition: ["description", "name", "arguments", "locations"], SchemaExtension: ["directives", "operationTypes"], ScalarTypeExtension: ["name", "directives"], ObjectTypeExtension: ["name", "interfaces", "directives", "fields"], InterfaceTypeExtension: ["name", "interfaces", "directives", "fields"], UnionTypeExtension: ["name", "directives", "types"], EnumTypeExtension: ["name", "directives", "values"], InputObjectTypeExtension: ["name", "directives", "fields"] }; const kindValues = new Set(Object.keys(QueryDocumentKeys)); function isNode(maybeNode) { const maybeKind = maybeNode === null || maybeNode === void 0 ? void 0 : maybeNode.kind; return typeof maybeKind === "string" && kindValues.has(maybeKind); } var OperationTypeNode; (function(OperationTypeNode2) { OperationTypeNode2["QUERY"] = "query"; OperationTypeNode2["MUTATION"] = "mutation"; OperationTypeNode2["SUBSCRIPTION"] = "subscription"; })(OperationTypeNode || (OperationTypeNode = {})); var DirectiveLocation; (function(DirectiveLocation2) { DirectiveLocation2["QUERY"] = "QUERY"; DirectiveLocation2["MUTATION"] = "MUTATION"; DirectiveLocation2["SUBSCRIPTION"] = "SUBSCRIPTION"; DirectiveLocation2["FIELD"] = "FIELD"; DirectiveLocation2["FRAGMENT_DEFINITION"] = "FRAGMENT_DEFINITION"; DirectiveLocation2["FRAGMENT_SPREAD"] = "FRAGMENT_SPREAD"; DirectiveLocation2["INLINE_FRAGMENT"] = "INLINE_FRAGMENT"; DirectiveLocation2["VARIABLE_DEFINITION"] = "VARIABLE_DEFINITION"; DirectiveLocation2["SCHEMA"] = "SCHEMA"; DirectiveLocation2["SCALAR"] = "SCALAR"; DirectiveLocation2["OBJECT"] = "OBJECT"; DirectiveLocation2["FIELD_DEFINITION"] = "FIELD_DEFINITION"; DirectiveLocation2["ARGUMENT_DEFINITION"] = "ARGUMENT_DEFINITION"; DirectiveLocation2["INTERFACE"] = "INTERFACE"; DirectiveLocation2["UNION"] = "UNION"; DirectiveLocation2["ENUM"] = "ENUM"; DirectiveLocation2["ENUM_VALUE"] = "ENUM_VALUE"; DirectiveLocation2["INPUT_OBJECT"] = "INPUT_OBJECT"; DirectiveLocation2["INPUT_FIELD_DEFINITION"] = "INPUT_FIELD_DEFINITION"; })(DirectiveLocation || (DirectiveLocation = {})); var Kind; (function(Kind2) { Kind2["NAME"] = "Name"; Kind2["DOCUMENT"] = "Document"; Kind2["OPERATION_DEFINITION"] = "OperationDefinition"; Kind2["VARIABLE_DEFINITION"] = "VariableDefinition"; Kind2["SELECTION_SET"] = "SelectionSet"; Kind2["FIELD"] = "Field"; Kind2["ARGUMENT"] = "Argument"; Kind2["FRAGMENT_SPREAD"] = "FragmentSpread"; Kind2["INLINE_FRAGMENT"] = "InlineFragment"; Kind2["FRAGMENT_DEFINITION"] = "FragmentDefinition"; Kind2["VARIABLE"] = "Variable"; Kind2["INT"] = "IntValue"; Kind2["FLOAT"] = "FloatValue"; Kind2["STRING"] = "StringValue"; Kind2["BOOLEAN"] = "BooleanValue"; Kind2["NULL"] = "NullValue"; Kind2["ENUM"] = "EnumValue"; Kind2["LIST"] = "ListValue"; Kind2["OBJECT"] = "ObjectValue"; Kind2["OBJECT_FIELD"] = "ObjectField"; Kind2["DIRECTIVE"] = "Directive"; Kind2["NAMED_TYPE"] = "NamedType"; Kind2["LIST_TYPE"] = "ListType"; Kind2["NON_NULL_TYPE"] = "NonNullType"; Kind2["SCHEMA_DEFINITION"] = "SchemaDefinition"; Kind2["OPERATION_TYPE_DEFINITION"] = "OperationTypeDefinition"; Kind2["SCALAR_TYPE_DEFINITION"] = "ScalarTypeDefinition"; Kind2["OBJECT_TYPE_DEFINITION"] = "ObjectTypeDefinition"; Kind2["FIELD_DEFINITION"] = "FieldDefinition"; Kind2["INPUT_VALUE_DEFINITION"] = "InputValueDefinition"; Kind2["INTERFACE_TYPE_DEFINITION"] = "InterfaceTypeDefinition"; Kind2["UNION_TYPE_DEFINITION"] = "UnionTypeDefinition"; Kind2["ENUM_TYPE_DEFINITION"] = "EnumTypeDefinition"; Kind2["ENUM_VALUE_DEFINITION"] = "EnumValueDefinition"; Kind2["INPUT_OBJECT_TYPE_DEFINITION"] = "InputObjectTypeDefinition"; Kind2["DIRECTIVE_DEFINITION"] = "DirectiveDefinition"; Kind2["SCHEMA_EXTENSION"] = "SchemaExtension"; Kind2["SCALAR_TYPE_EXTENSION"] = "ScalarTypeExtension"; Kind2["OBJECT_TYPE_EXTENSION"] = "ObjectTypeExtension"; Kind2["INTERFACE_TYPE_EXTENSION"] = "InterfaceTypeExtension"; Kind2["UNION_TYPE_EXTENSION"] = "UnionTypeExtension"; Kind2["ENUM_TYPE_EXTENSION"] = "EnumTypeExtension"; Kind2["INPUT_OBJECT_TYPE_EXTENSION"] = "InputObjectTypeExtension"; })(Kind || (Kind = {})); function isWhiteSpace(code2) { return code2 === 9 || code2 === 32; } function isDigit(code2) { return code2 >= 48 && code2 <= 57; } function isLetter(code2) { return code2 >= 97 && code2 <= 122 || code2 >= 65 && code2 <= 90; } function isNameStart(code2) { return isLetter(code2) || code2 === 95; } function isNameContinue(code2) { return isLetter(code2) || isDigit(code2) || code2 === 95; } function dedentBlockStringLines(lines) { var _firstNonEmptyLine2; let commonIndent = Number.MAX_SAFE_INTEGER; let firstNonEmptyLine = null; let lastNonEmptyLine = -1; for (let i2 = 0; i2 < lines.length; ++i2) { var _firstNonEmptyLine; const line = lines[i2]; const indent2 = leadingWhitespace(line); if (indent2 === line.length) { continue; } firstNonEmptyLine = (_firstNonEmptyLine = firstNonEmptyLine) !== null && _firstNonEmptyLine !== void 0 ? _firstNonEmptyLine : i2; lastNonEmptyLine = i2; if (i2 !== 0 && indent2 < commonIndent) { commonIndent = indent2; } } return lines.map((line, i2) => i2 === 0 ? line : line.slice(commonIndent)).slice( (_firstNonEmptyLine2 = firstNonEmptyLine) !== null && _firstNonEmptyLine2 !== void 0 ? _firstNonEmptyLine2 : 0, lastNonEmptyLine + 1 ); } function leadingWhitespace(str) { let i2 = 0; while (i2 < str.length && isWhiteSpace(str.charCodeAt(i2))) { ++i2; } return i2; } function printBlockString(value, options) { const escapedValue = value.replace(/"""/g, '\\"""'); const lines = escapedValue.split(/\r\n|[\n\r]/g); const isSingleLine = lines.length === 1; const forceLeadingNewLine = lines.length > 1 && lines.slice(1).every((line) => line.length === 0 || isWhiteSpace(line.charCodeAt(0))); const hasTrailingTripleQuotes = escapedValue.endsWith('\\"""'); const hasTrailingQuote = value.endsWith('"') && !hasTrailingTripleQuotes; const hasTrailingSlash = value.endsWith("\\"); const forceTrailingNewline = hasTrailingQuote || hasTrailingSlash; const printAsMultipleLines = !(options !== null && options !== void 0 && options.minimize) && (!isSingleLine || value.length > 70 || forceTrailingNewline || forceLeadingNewLine || hasTrailingTripleQuotes); let result2 = ""; const skipLeadingNewLine = isSingleLine && isWhiteSpace(value.charCodeAt(0)); if (printAsMultipleLines && !skipLeadingNewLine || forceLeadingNewLine) { result2 += "\n"; } result2 += escapedValue; if (printAsMultipleLines || forceTrailingNewline) { result2 += "\n"; } return '"""' + result2 + '"""'; } var TokenKind; (function(TokenKind2) { TokenKind2["SOF"] = ""; TokenKind2["EOF"] = ""; TokenKind2["BANG"] = "!"; TokenKind2["DOLLAR"] = "$"; TokenKind2["AMP"] = "&"; TokenKind2["PAREN_L"] = "("; TokenKind2["PAREN_R"] = ")"; TokenKind2["SPREAD"] = "..."; TokenKind2["COLON"] = ":"; TokenKind2["EQUALS"] = "="; TokenKind2["AT"] = "@"; TokenKind2["BRACKET_L"] = "["; TokenKind2["BRACKET_R"] = "]"; TokenKind2["BRACE_L"] = "{"; TokenKind2["PIPE"] = "|"; TokenKind2["BRACE_R"] = "}"; TokenKind2["NAME"] = "Name"; TokenKind2["INT"] = "Int"; TokenKind2["FLOAT"] = "Float"; TokenKind2["STRING"] = "String"; TokenKind2["BLOCK_STRING"] = "BlockString"; TokenKind2["COMMENT"] = "Comment"; })(TokenKind || (TokenKind = {})); class Lexer { constructor(source) { const startOfFileToken = new Token(TokenKind.SOF, 0, 0, 0, 0); this.source = source; this.lastToken = startOfFileToken; this.token = startOfFileToken; this.line = 1; this.lineStart = 0; } get [Symbol.toStringTag]() { return "Lexer"; } advance() { this.lastToken = this.token; const token2 = this.token = this.lookahead(); return token2; } lookahead() { let token2 = this.token; if (token2.kind !== TokenKind.EOF) { do { if (token2.next) { token2 = token2.next; } else { const nextToken = readNextToken(this, token2.end); token2.next = nextToken; nextToken.prev = token2; token2 = nextToken; } } while (token2.kind === TokenKind.COMMENT); } return token2; } } function isPunctuatorTokenKind(kind) { return kind === TokenKind.BANG || kind === TokenKind.DOLLAR || kind === TokenKind.AMP || kind === TokenKind.PAREN_L || kind === TokenKind.PAREN_R || kind === TokenKind.SPREAD || kind === TokenKind.COLON || kind === TokenKind.EQUALS || kind === TokenKind.AT || kind === TokenKind.BRACKET_L || kind === TokenKind.BRACKET_R || kind === TokenKind.BRACE_L || kind === TokenKind.PIPE || kind === TokenKind.BRACE_R; } function isUnicodeScalarValue(code2) { return code2 >= 0 && code2 <= 55295 || code2 >= 57344 && code2 <= 1114111; } function isSupplementaryCodePoint(body, location2) { return isLeadingSurrogate(body.charCodeAt(location2)) && isTrailingSurrogate(body.charCodeAt(location2 + 1)); } function isLeadingSurrogate(code2) { return code2 >= 55296 && code2 <= 56319; } function isTrailingSurrogate(code2) { return code2 >= 56320 && code2 <= 57343; } function printCodePointAt(lexer, location2) { const code2 = lexer.source.body.codePointAt(location2); if (code2 === void 0) { return TokenKind.EOF; } else if (code2 >= 32 && code2 <= 126) { const char = String.fromCodePoint(code2); return char === '"' ? `'"'` : `"${char}"`; } return "U+" + code2.toString(16).toUpperCase().padStart(4, "0"); } function createToken(lexer, kind, start, end, value) { const line = lexer.line; const col = 1 + start - lexer.lineStart; return new Token(kind, start, end, line, col, value); } function readNextToken(lexer, start) { const body = lexer.source.body; const bodyLength = body.length; let position = start; while (position < bodyLength) { const code2 = body.charCodeAt(position); switch (code2) { case 65279: case 9: case 32: case 44: ++position; continue; case 10: ++position; ++lexer.line; lexer.lineStart = position; continue; case 13: if (body.charCodeAt(position + 1) === 10) { position += 2; } else { ++position; } ++lexer.line; lexer.lineStart = position; continue; case 35: return readComment(lexer, position); case 33: return createToken(lexer, TokenKind.BANG, position, position + 1); case 36: return createToken(lexer, TokenKind.DOLLAR, position, position + 1); case 38: return createToken(lexer, TokenKind.AMP, position, position + 1); case 40: return createToken(lexer, TokenKind.PAREN_L, position, position + 1); case 41: return createToken(lexer, TokenKind.PAREN_R, position, position + 1); case 46: if (body.charCodeAt(position + 1) === 46 && body.charCodeAt(position + 2) === 46) { return createToken(lexer, TokenKind.SPREAD, position, position + 3); } break; case 58: return createToken(lexer, TokenKind.COLON, position, position + 1); case 61: return createToken(lexer, TokenKind.EQUALS, position, position + 1); case 64: return createToken(lexer, TokenKind.AT, position, position + 1); case 91: return createToken(lexer, TokenKind.BRACKET_L, position, position + 1); case 93: return createToken(lexer, TokenKind.BRACKET_R, position, position + 1); case 123: return createToken(lexer, TokenKind.BRACE_L, position, position + 1); case 124: return createToken(lexer, TokenKind.PIPE, position, position + 1); case 125: return createToken(lexer, TokenKind.BRACE_R, position, position + 1); case 34: if (body.charCodeAt(position + 1) === 34 && body.charCodeAt(position + 2) === 34) { return readBlockString(lexer, position); } return readString(lexer, position); } if (isDigit(code2) || code2 === 45) { return readNumber(lexer, position, code2); } if (isNameStart(code2)) { return readName(lexer, position); } throw syntaxError( lexer.source, position, code2 === 39 ? `Unexpected single quote character ('), did you mean to use a double quote (")?` : isUnicodeScalarValue(code2) || isSupplementaryCodePoint(body, position) ? `Unexpected character: ${printCodePointAt(lexer, position)}.` : `Invalid character: ${printCodePointAt(lexer, position)}.` ); } return createToken(lexer, TokenKind.EOF, bodyLength, bodyLength); } function readComment(lexer, start) { const body = lexer.source.body; const bodyLength = body.length; let position = start + 1; while (position < bodyLength) { const code2 = body.charCodeAt(position); if (code2 === 10 || code2 === 13) { break; } if (isUnicodeScalarValue(code2)) { ++position; } else if (isSupplementaryCodePoint(body, position)) { position += 2; } else { break; } } return createToken( lexer, TokenKind.COMMENT, start, position, body.slice(start + 1, position) ); } function readNumber(lexer, start, firstCode) { const body = lexer.source.body; let position = start; let code2 = firstCode; let isFloat = false; if (code2 === 45) { code2 = body.charCodeAt(++position); } if (code2 === 48) { code2 = body.charCodeAt(++position); if (isDigit(code2)) { throw syntaxError( lexer.source, position, `Invalid number, unexpected digit after 0: ${printCodePointAt( lexer, position )}.` ); } } else { position = readDigits(lexer, position, code2); code2 = body.charCodeAt(position); } if (code2 === 46) { isFloat = true; code2 = body.charCodeAt(++position); position = readDigits(lexer, position, code2); code2 = body.charCodeAt(position); } if (code2 === 69 || code2 === 101) { isFloat = true; code2 = body.charCodeAt(++position); if (code2 === 43 || code2 === 45) { code2 = body.charCodeAt(++position); } position = readDigits(lexer, position, code2); code2 = body.charCodeAt(position); } if (code2 === 46 || isNameStart(code2)) { throw syntaxError( lexer.source, position, `Invalid number, expected digit but got: ${printCodePointAt( lexer, position )}.` ); } return createToken( lexer, isFloat ? TokenKind.FLOAT : TokenKind.INT, start, position, body.slice(start, position) ); } function readDigits(lexer, start, firstCode) { if (!isDigit(firstCode)) { throw syntaxError( lexer.source, start, `Invalid number, expected digit but got: ${printCodePointAt( lexer, start )}.` ); } const body = lexer.source.body; let position = start + 1; while (isDigit(body.charCodeAt(position))) { ++position; } return position; } function readString(lexer, start) { const body = lexer.source.body; const bodyLength = body.length; let position = start + 1; let chunkStart = position; let value = ""; while (position < bodyLength) { const code2 = body.charCodeAt(position); if (code2 === 34) { value += body.slice(chunkStart, position); return createToken(lexer, TokenKind.STRING, start, position + 1, value); } if (code2 === 92) { value += body.slice(chunkStart, position); const escape = body.charCodeAt(position + 1) === 117 ? body.charCodeAt(position + 2) === 123 ? readEscapedUnicodeVariableWidth(lexer, position) : readEscapedUnicodeFixedWidth(lexer, position) : readEscapedCharacter(lexer, position); value += escape.value; position += escape.size; chunkStart = position; continue; } if (code2 === 10 || code2 === 13) { break; } if (isUnicodeScalarValue(code2)) { ++position; } else if (isSupplementaryCodePoint(body, position)) { position += 2; } else { throw syntaxError( lexer.source, position, `Invalid character within String: ${printCodePointAt( lexer, position )}.` ); } } throw syntaxError(lexer.source, position, "Unterminated string."); } function readEscapedUnicodeVariableWidth(lexer, position) { const body = lexer.source.body; let point = 0; let size = 3; while (size < 12) { const code2 = body.charCodeAt(position + size++); if (code2 === 125) { if (size < 5 || !isUnicodeScalarValue(point)) { break; } return { value: String.fromCodePoint(point), size }; } point = point << 4 | readHexDigit(code2); if (point < 0) { break; } } throw syntaxError( lexer.source, position, `Invalid Unicode escape sequence: "${body.slice( position, position + size )}".` ); } function readEscapedUnicodeFixedWidth(lexer, position) { const body = lexer.source.body; const code2 = read16BitHexCode(body, position + 2); if (isUnicodeScalarValue(code2)) { return { value: String.fromCodePoint(code2), size: 6 }; } if (isLeadingSurrogate(code2)) { if (body.charCodeAt(position + 6) === 92 && body.charCodeAt(position + 7) === 117) { const trailingCode = read16BitHexCode(body, position + 8); if (isTrailingSurrogate(trailingCode)) { return { value: String.fromCodePoint(code2, trailingCode), size: 12 }; } } } throw syntaxError( lexer.source, position, `Invalid Unicode escape sequence: "${body.slice(position, position + 6)}".` ); } function read16BitHexCode(body, position) { return readHexDigit(body.charCodeAt(position)) << 12 | readHexDigit(body.charCodeAt(position + 1)) << 8 | readHexDigit(body.charCodeAt(position + 2)) << 4 | readHexDigit(body.charCodeAt(position + 3)); } function readHexDigit(code2) { return code2 >= 48 && code2 <= 57 ? code2 - 48 : code2 >= 65 && code2 <= 70 ? code2 - 55 : code2 >= 97 && code2 <= 102 ? code2 - 87 : -1; } function readEscapedCharacter(lexer, position) { const body = lexer.source.body; const code2 = body.charCodeAt(position + 1); switch (code2) { case 34: return { value: '"', size: 2 }; case 92: return { value: "\\", size: 2 }; case 47: return { value: "/", size: 2 }; case 98: return { value: "\b", size: 2 }; case 102: return { value: "\f", size: 2 }; case 110: return { value: "\n", size: 2 }; case 114: return { value: "\r", size: 2 }; case 116: return { value: " ", size: 2 }; } throw syntaxError( lexer.source, position, `Invalid character escape sequence: "${body.slice( position, position + 2 )}".` ); } function readBlockString(lexer, start) { const body = lexer.source.body; const bodyLength = body.length; let lineStart = lexer.lineStart; let position = start + 3; let chunkStart = position; let currentLine = ""; const blockLines = []; while (position < bodyLength) { const code2 = body.charCodeAt(position); if (code2 === 34 && body.charCodeAt(position + 1) === 34 && body.charCodeAt(position + 2) === 34) { currentLine += body.slice(chunkStart, position); blockLines.push(currentLine); const token2 = createToken( lexer, TokenKind.BLOCK_STRING, start, position + 3, dedentBlockStringLines(blockLines).join("\n") ); lexer.line += blockLines.length - 1; lexer.lineStart = lineStart; return token2; } if (code2 === 92 && body.charCodeAt(position + 1) === 34 && body.charCodeAt(position + 2) === 34 && body.charCodeAt(position + 3) === 34) { currentLine += body.slice(chunkStart, position); chunkStart = position + 1; position += 4; continue; } if (code2 === 10 || code2 === 13) { currentLine += body.slice(chunkStart, position); blockLines.push(currentLine); if (code2 === 13 && body.charCodeAt(position + 1) === 10) { position += 2; } else { ++position; } currentLine = ""; chunkStart = position; lineStart = position; continue; } if (isUnicodeScalarValue(code2)) { ++position; } else if (isSupplementaryCodePoint(body, position)) { position += 2; } else { throw syntaxError( lexer.source, position, `Invalid character within String: ${printCodePointAt( lexer, position )}.` ); } } throw syntaxError(lexer.source, position, "Unterminated string."); } function readName(lexer, start) { const body = lexer.source.body; const bodyLength = body.length; let position = start + 1; while (position < bodyLength) { const code2 = body.charCodeAt(position); if (isNameContinue(code2)) { ++position; } else { break; } } return createToken( lexer, TokenKind.NAME, start, position, body.slice(start, position) ); } const MAX_ARRAY_LENGTH = 10; const MAX_RECURSIVE_DEPTH = 2; function inspect(value) { return formatValue(value, []); } function formatValue(value, seenValues) { switch (typeof value) { case "string": return JSON.stringify(value); case "function": return value.name ? `[function ${value.name}]` : "[function]"; case "object": return formatObjectValue(value, seenValues); default: return String(value); } } function formatObjectValue(value, previouslySeenValues) { if (value === null) { return "null"; } if (previouslySeenValues.includes(value)) { return "[Circular]"; } const seenValues = [...previouslySeenValues, value]; if (isJSONable(value)) { const jsonValue = value.toJSON(); if (jsonValue !== value) { return typeof jsonValue === "string" ? jsonValue : formatValue(jsonValue, seenValues); } } else if (Array.isArray(value)) { return formatArray(value, seenValues); } return formatObject(value, seenValues); } function isJSONable(value) { return typeof value.toJSON === "function"; } function formatObject(object, seenValues) { const entries = Object.entries(object); if (entries.length === 0) { return "{}"; } if (seenValues.length > MAX_RECURSIVE_DEPTH) { return "[" + getObjectTag(object) + "]"; } const properties = entries.map( ([key, value]) => key + ": " + formatValue(value, seenValues) ); return "{ " + properties.join(", ") + " }"; } function formatArray(array, seenValues) { if (array.length === 0) { return "[]"; } if (seenValues.length > MAX_RECURSIVE_DEPTH) { return "[Array]"; } const len = Math.min(MAX_ARRAY_LENGTH, array.length); const remaining = array.length - len; const items = []; for (let i2 = 0; i2 < len; ++i2) { items.push(formatValue(array[i2], seenValues)); } if (remaining === 1) { items.push("... 1 more item"); } else if (remaining > 1) { items.push(`... ${remaining} more items`); } return "[" + items.join(", ") + "]"; } function getObjectTag(object) { const tag = Object.prototype.toString.call(object).replace(/^\[object /, "").replace(/]$/, ""); if (tag === "Object" && typeof object.constructor === "function") { const name = object.constructor.name; if (typeof name === "string" && name !== "") { return name; } } return tag; } const isProduction = globalThis.process && true; const instanceOf = isProduction ? function instanceOf2(value, constructor) { return value instanceof constructor; } : function instanceOf2(value, constructor) { if (value instanceof constructor) { return true; } if (typeof value === "object" && value !== null) { var _value$constructor; const className = constructor.prototype[Symbol.toStringTag]; const valueClassName = Symbol.toStringTag in value ? value[Symbol.toStringTag] : (_value$constructor = value.constructor) === null || _value$constructor === void 0 ? void 0 : _value$constructor.name; if (className === valueClassName) { const stringifiedValue = inspect(value); throw new Error(`Cannot use ${className} "${stringifiedValue}" from another module or realm. Ensure that there is only one instance of "graphql" in the node_modules directory. If different versions of "graphql" are the dependencies of other relied on modules, use "resolutions" to ensure only one version is installed. https://yarnpkg.com/en/docs/selective-version-resolutions Duplicate "graphql" modules cannot be used at the same time since different versions may have different capabilities and behavior. The data from one version used in the function from another could produce confusing and spurious results.`); } } return false; }; class Source { constructor(body, name = "GraphQL request", locationOffset = { line: 1, column: 1 }) { typeof body === "string" || devAssert(false, `Body must be a string. Received: ${inspect(body)}.`); this.body = body; this.name = name; this.locationOffset = locationOffset; this.locationOffset.line > 0 || devAssert( false, "line in locationOffset is 1-indexed and must be positive." ); this.locationOffset.column > 0 || devAssert( false, "column in locationOffset is 1-indexed and must be positive." ); } get [Symbol.toStringTag]() { return "Source"; } } function isSource(source) { return instanceOf(source, Source); } function parse$2(source, options) { const parser = new Parser(source, options); return parser.parseDocument(); } class Parser { constructor(source, options = {}) { const sourceObj = isSource(source) ? source : new Source(source); this._lexer = new Lexer(sourceObj); this._options = options; this._tokenCounter = 0; } parseName() { const token2 = this.expectToken(TokenKind.NAME); return this.node(token2, { kind: Kind.NAME, value: token2.value }); } parseDocument() { return this.node(this._lexer.token, { kind: Kind.DOCUMENT, definitions: this.many( TokenKind.SOF, this.parseDefinition, TokenKind.EOF ) }); } parseDefinition() { if (this.peek(TokenKind.BRACE_L)) { return this.parseOperationDefinition(); } const hasDescription = this.peekDescription(); const keywordToken = hasDescription ? this._lexer.lookahead() : this._lexer.token; if (keywordToken.kind === TokenKind.NAME) { switch (keywordToken.value) { case "schema": return this.parseSchemaDefinition(); case "scalar": return this.parseScalarTypeDefinition(); case "type": return this.parseObjectTypeDefinition(); case "interface": return this.parseInterfaceTypeDefinition(); case "union": return this.parseUnionTypeDefinition(); case "enum": return this.parseEnumTypeDefinition(); case "input": return this.parseInputObjectTypeDefinition(); case "directive": return this.parseDirectiveDefinition(); } if (hasDescription) { throw syntaxError( this._lexer.source, this._lexer.token.start, "Unexpected description, descriptions are supported only on type definitions." ); } switch (keywordToken.value) { case "query": case "mutation": case "subscription": return this.parseOperationDefinition(); case "fragment": return this.parseFragmentDefinition(); case "extend": return this.parseTypeSystemExtension(); } } throw this.unexpected(keywordToken); } parseOperationDefinition() { const start = this._lexer.token; if (this.peek(TokenKind.BRACE_L)) { return this.node(start, { kind: Kind.OPERATION_DEFINITION, operation: OperationTypeNode.QUERY, name: void 0, variableDefinitions: [], directives: [], selectionSet: this.parseSelectionSet() }); } const operation = this.parseOperationType(); let name; if (this.peek(TokenKind.NAME)) { name = this.parseName(); } return this.node(start, { kind: Kind.OPERATION_DEFINITION, operation, name, variableDefinitions: this.parseVariableDefinitions(), directives: this.parseDirectives(false), selectionSet: this.parseSelectionSet() }); } parseOperationType() { const operationToken = this.expectToken(TokenKind.NAME); switch (operationToken.value) { case "query": return OperationTypeNode.QUERY; case "mutation": return OperationTypeNode.MUTATION; case "subscription": return OperationTypeNode.SUBSCRIPTION; } throw this.unexpected(operationToken); } parseVariableDefinitions() { return this.optionalMany( TokenKind.PAREN_L, this.parseVariableDefinition, TokenKind.PAREN_R ); } parseVariableDefinition() { return this.node(this._lexer.token, { kind: Kind.VARIABLE_DEFINITION, variable: this.parseVariable(), type: (this.expectToken(TokenKind.COLON), this.parseTypeReference()), defaultValue: this.expectOptionalToken(TokenKind.EQUALS) ? this.parseConstValueLiteral() : void 0, directives: this.parseConstDirectives() }); } parseVariable() { const start = this._lexer.token; this.expectToken(TokenKind.DOLLAR); return this.node(start, { kind: Kind.VARIABLE, name: this.parseName() }); } parseSelectionSet() { return this.node(this._lexer.token, { kind: Kind.SELECTION_SET, selections: this.many( TokenKind.BRACE_L, this.parseSelection, TokenKind.BRACE_R ) }); } parseSelection() { return this.peek(TokenKind.SPREAD) ? this.parseFragment() : this.parseField(); } parseField() { const start = this._lexer.token; const nameOrAlias = this.parseName(); let alias; let name; if (this.expectOptionalToken(TokenKind.COLON)) { alias = nameOrAlias; name = this.parseName(); } else { name = nameOrAlias; } return this.node(start, { kind: Kind.FIELD, alias, name, arguments: this.parseArguments(false), directives: this.parseDirectives(false), selectionSet: this.peek(TokenKind.BRACE_L) ? this.parseSelectionSet() : void 0 }); } parseArguments(isConst) { const item = isConst ? this.parseConstArgument : this.parseArgument; return this.optionalMany(TokenKind.PAREN_L, item, TokenKind.PAREN_R); } parseArgument(isConst = false) { const start = this._lexer.token; const name = this.parseName(); this.expectToken(TokenKind.COLON); return this.node(start, { kind: Kind.ARGUMENT, name, value: this.parseValueLiteral(isConst) }); } parseConstArgument() { return this.parseArgument(true); } parseFragment() { const start = this._lexer.token; this.expectToken(TokenKind.SPREAD); const hasTypeCondition = this.expectOptionalKeyword("on"); if (!hasTypeCondition && this.peek(TokenKind.NAME)) { return this.node(start, { kind: Kind.FRAGMENT_SPREAD, name: this.parseFragmentName(), directives: this.parseDirectives(false) }); } return this.node(start, { kind: Kind.INLINE_FRAGMENT, typeCondition: hasTypeCondition ? this.parseNamedType() : void 0, directives: this.parseDirectives(false), selectionSet: this.parseSelectionSet() }); } parseFragmentDefinition() { const start = this._lexer.token; this.expectKeyword("fragment"); if (this._options.allowLegacyFragmentVariables === true) { return this.node(start, { kind: Kind.FRAGMENT_DEFINITION, name: this.parseFragmentName(), variableDefinitions: this.parseVariableDefinitions(), typeCondition: (this.expectKeyword("on"), this.parseNamedType()), directives: this.parseDirectives(false), selectionSet: this.parseSelectionSet() }); } return this.node(start, { kind: Kind.FRAGMENT_DEFINITION, name: this.parseFragmentName(), typeCondition: (this.expectKeyword("on"), this.parseNamedType()), directives: this.parseDirectives(false), selectionSet: this.parseSelectionSet() }); } parseFragmentName() { if (this._lexer.token.value === "on") { throw this.unexpected(); } return this.parseName(); } parseValueLiteral(isConst) { const token2 = this._lexer.token; switch (token2.kind) { case TokenKind.BRACKET_L: return this.parseList(isConst); case TokenKind.BRACE_L: return this.parseObject(isConst); case TokenKind.INT: this.advanceLexer(); return this.node(token2, { kind: Kind.INT, value: token2.value }); case TokenKind.FLOAT: this.advanceLexer(); return this.node(token2, { kind: Kind.FLOAT, value: token2.value }); case TokenKind.STRING: case TokenKind.BLOCK_STRING: return this.parseStringLiteral(); case TokenKind.NAME: this.advanceLexer(); switch (token2.value) { case "true": return this.node(token2, { kind: Kind.BOOLEAN, value: true }); case "false": return this.node(token2, { kind: Kind.BOOLEAN, value: false }); case "null": return this.node(token2, { kind: Kind.NULL }); default: return this.node(token2, { kind: Kind.ENUM, value: token2.value }); } case TokenKind.DOLLAR: if (isConst) { this.expectToken(TokenKind.DOLLAR); if (this._lexer.token.kind === TokenKind.NAME) { const varName = this._lexer.token.value; throw syntaxError( this._lexer.source, token2.start, `Unexpected variable "$${varName}" in constant value.` ); } else { throw this.unexpected(token2); } } return this.parseVariable(); default: throw this.unexpected(); } } parseConstValueLiteral() { return this.parseValueLiteral(true); } parseStringLiteral() { const token2 = this._lexer.token; this.advanceLexer(); return this.node(token2, { kind: Kind.STRING, value: token2.value, block: token2.kind === TokenKind.BLOCK_STRING }); } parseList(isConst) { const item = () => this.parseValueLiteral(isConst); return this.node(this._lexer.token, { kind: Kind.LIST, values: this.any(TokenKind.BRACKET_L, item, TokenKind.BRACKET_R) }); } parseObject(isConst) { const item = () => this.parseObjectField(isConst); return this.node(this._lexer.token, { kind: Kind.OBJECT, fields: this.any(TokenKind.BRACE_L, item, TokenKind.BRACE_R) }); } parseObjectField(isConst) { const start = this._lexer.token; const name = this.parseName(); this.expectToken(TokenKind.COLON); return this.node(start, { kind: Kind.OBJECT_FIELD, name, value: this.parseValueLiteral(isConst) }); } parseDirectives(isConst) { const directives = []; while (this.peek(TokenKind.AT)) { directives.push(this.parseDirective(isConst)); } return directives; } parseConstDirectives() { return this.parseDirectives(true); } parseDirective(isConst) { const start = this._lexer.token; this.expectToken(TokenKind.AT); return this.node(start, { kind: Kind.DIRECTIVE, name: this.parseName(), arguments: this.parseArguments(isConst) }); } parseTypeReference() { const start = this._lexer.token; let type; if (this.expectOptionalToken(TokenKind.BRACKET_L)) { const innerType = this.parseTypeReference(); this.expectToken(TokenKind.BRACKET_R); type = this.node(start, { kind: Kind.LIST_TYPE, type: innerType }); } else { type = this.parseNamedType(); } if (this.expectOptionalToken(TokenKind.BANG)) { return this.node(start, { kind: Kind.NON_NULL_TYPE, type }); } return type; } parseNamedType() { return this.node(this._lexer.token, { kind: Kind.NAMED_TYPE, name: this.parseName() }); } peekDescription() { return this.peek(TokenKind.STRING) || this.peek(TokenKind.BLOCK_STRING); } parseDescription() { if (this.peekDescription()) { return this.parseStringLiteral(); } } parseSchemaDefinition() { const start = this._lexer.token; const description = this.parseDescription(); this.expectKeyword("schema"); const directives = this.parseConstDirectives(); const operationTypes = this.many( TokenKind.BRACE_L, this.parseOperationTypeDefinition, TokenKind.BRACE_R ); return this.node(start, { kind: Kind.SCHEMA_DEFINITION, description, directives, operationTypes }); } parseOperationTypeDefinition() { const start = this._lexer.token; const operation = this.parseOperationType(); this.expectToken(TokenKind.COLON); const type = this.parseNamedType(); return this.node(start, { kind: Kind.OPERATION_TYPE_DEFINITION, operation, type }); } parseScalarTypeDefinition() { const start = this._lexer.token; const description = this.parseDescription(); this.expectKeyword("scalar"); const name = this.parseName(); const directives = this.parseConstDirectives(); return this.node(start, { kind: Kind.SCALAR_TYPE_DEFINITION, description, name, directives }); } parseObjectTypeDefinition() { const start = this._lexer.token; const description = this.parseDescription(); this.expectKeyword("type"); const name = this.parseName(); const interfaces = this.parseImplementsInterfaces(); const directives = this.parseConstDirectives(); const fields = this.parseFieldsDefinition(); return this.node(start, { kind: Kind.OBJECT_TYPE_DEFINITION, description, name, interfaces, directives, fields }); } parseImplementsInterfaces() { return this.expectOptionalKeyword("implements") ? this.delimitedMany(TokenKind.AMP, this.parseNamedType) : []; } parseFieldsDefinition() { return this.optionalMany( TokenKind.BRACE_L, this.parseFieldDefinition, TokenKind.BRACE_R ); } parseFieldDefinition() { const start = this._lexer.token; const description = this.parseDescription(); const name = this.parseName(); const args = this.parseArgumentDefs(); this.expectToken(TokenKind.COLON); const type = this.parseTypeReference(); const directives = this.parseConstDirectives(); return this.node(start, { kind: Kind.FIELD_DEFINITION, description, name, arguments: args, type, directives }); } parseArgumentDefs() { return this.optionalMany( TokenKind.PAREN_L, this.parseInputValueDef, TokenKind.PAREN_R ); } parseInputValueDef() { const start = this._lexer.token; const description = this.parseDescription(); const name = this.parseName(); this.expectToken(TokenKind.COLON); const type = this.parseTypeReference(); let defaultValue; if (this.expectOptionalToken(TokenKind.EQUALS)) { defaultValue = this.parseConstValueLiteral(); } const directives = this.parseConstDirectives(); return this.node(start, { kind: Kind.INPUT_VALUE_DEFINITION, description, name, type, defaultValue, directives }); } parseInterfaceTypeDefinition() { const start = this._lexer.token; const description = this.parseDescription(); this.expectKeyword("interface"); const name = this.parseName(); const interfaces = this.parseImplementsInterfaces(); const directives = this.parseConstDirectives(); const fields = this.parseFieldsDefinition(); return this.node(start, { kind: Kind.INTERFACE_TYPE_DEFINITION, description, name, interfaces, directives, fields }); } parseUnionTypeDefinition() { const start = this._lexer.token; const description = this.parseDescription(); this.expectKeyword("union"); const name = this.parseName(); const directives = this.parseConstDirectives(); const types = this.parseUnionMemberTypes(); return this.node(start, { kind: Kind.UNION_TYPE_DEFINITION, description, name, directives, types }); } parseUnionMemberTypes() { return this.expectOptionalToken(TokenKind.EQUALS) ? this.delimitedMany(TokenKind.PIPE, this.parseNamedType) : []; } parseEnumTypeDefinition() { const start = this._lexer.token; const description = this.parseDescription(); this.expectKeyword("enum"); const name = this.parseName(); const directives = this.parseConstDirectives(); const values = this.parseEnumValuesDefinition(); return this.node(start, { kind: Kind.ENUM_TYPE_DEFINITION, description, name, directives, values }); } parseEnumValuesDefinition() { return this.optionalMany( TokenKind.BRACE_L, this.parseEnumValueDefinition, TokenKind.BRACE_R ); } parseEnumValueDefinition() { const start = this._lexer.token; const description = this.parseDescription(); const name = this.parseEnumValueName(); const directives = this.parseConstDirectives(); return this.node(start, { kind: Kind.ENUM_VALUE_DEFINITION, description, name, directives }); } parseEnumValueName() { if (this._lexer.token.value === "true" || this._lexer.token.value === "false" || this._lexer.token.value === "null") { throw syntaxError( this._lexer.source, this._lexer.token.start, `${getTokenDesc( this._lexer.token )} is reserved and cannot be used for an enum value.` ); } return this.parseName(); } parseInputObjectTypeDefinition() { const start = this._lexer.token; const description = this.parseDescription(); this.expectKeyword("input"); const name = this.parseName(); const directives = this.parseConstDirectives(); const fields = this.parseInputFieldsDefinition(); return this.node(start, { kind: Kind.INPUT_OBJECT_TYPE_DEFINITION, description, name, directives, fields }); } parseInputFieldsDefinition() { return this.optionalMany( TokenKind.BRACE_L, this.parseInputValueDef, TokenKind.BRACE_R ); } parseTypeSystemExtension() { const keywordToken = this._lexer.lookahead(); if (keywordToken.kind === TokenKind.NAME) { switch (keywordToken.value) { case "schema": return this.parseSchemaExtension(); case "scalar": return this.parseScalarTypeExtension(); case "type": return this.parseObjectTypeExtension(); case "interface": return this.parseInterfaceTypeExtension(); case "union": return this.parseUnionTypeExtension(); case "enum": return this.parseEnumTypeExtension(); case "input": return this.parseInputObjectTypeExtension(); } } throw this.unexpected(keywordToken); } parseSchemaExtension() { const start = this._lexer.token; this.expectKeyword("extend"); this.expectKeyword("schema"); const directives = this.parseConstDirectives(); const operationTypes = this.optionalMany( TokenKind.BRACE_L, this.parseOperationTypeDefinition, TokenKind.BRACE_R ); if (directives.length === 0 && operationTypes.length === 0) { throw this.unexpected(); } return this.node(start, { kind: Kind.SCHEMA_EXTENSION, directives, operationTypes }); } parseScalarTypeExtension() { const start = this._lexer.token; this.expectKeyword("extend"); this.expectKeyword("scalar"); const name = this.parseName(); const directives = this.parseConstDirectives(); if (directives.length === 0) { throw this.unexpected(); } return this.node(start, { kind: Kind.SCALAR_TYPE_EXTENSION, name, directives }); } parseObjectTypeExtension() { const start = this._lexer.token; this.expectKeyword("extend"); this.expectKeyword("type"); const name = this.parseName(); const interfaces = this.parseImplementsInterfaces(); const directives = this.parseConstDirectives(); const fields = this.parseFieldsDefinition(); if (interfaces.length === 0 && directives.length === 0 && fields.length === 0) { throw this.unexpected(); } return this.node(start, { kind: Kind.OBJECT_TYPE_EXTENSION, name, interfaces, directives, fields }); } parseInterfaceTypeExtension() { const start = this._lexer.token; this.expectKeyword("extend"); this.expectKeyword("interface"); const name = this.parseName(); const interfaces = this.parseImplementsInterfaces(); const directives = this.parseConstDirectives(); const fields = this.parseFieldsDefinition(); if (interfaces.length === 0 && directives.length === 0 && fields.length === 0) { throw this.unexpected(); } return this.node(start, { kind: Kind.INTERFACE_TYPE_EXTENSION, name, interfaces, directives, fields }); } parseUnionTypeExtension() { const start = this._lexer.token; this.expectKeyword("extend"); this.expectKeyword("union"); const name = this.parseName(); const directives = this.parseConstDirectives(); const types = this.parseUnionMemberTypes(); if (directives.length === 0 && types.length === 0) { throw this.unexpected(); } return this.node(start, { kind: Kind.UNION_TYPE_EXTENSION, name, directives, types }); } parseEnumTypeExtension() { const start = this._lexer.token; this.expectKeyword("extend"); this.expectKeyword("enum"); const name = this.parseName(); const directives = this.parseConstDirectives(); const values = this.parseEnumValuesDefinition(); if (directives.length === 0 && values.length === 0) { throw this.unexpected(); } return this.node(start, { kind: Kind.ENUM_TYPE_EXTENSION, name, directives, values }); } parseInputObjectTypeExtension() { const start = this._lexer.token; this.expectKeyword("extend"); this.expectKeyword("input"); const name = this.parseName(); const directives = this.parseConstDirectives(); const fields = this.parseInputFieldsDefinition(); if (directives.length === 0 && fields.length === 0) { throw this.unexpected(); } return this.node(start, { kind: Kind.INPUT_OBJECT_TYPE_EXTENSION, name, directives, fields }); } parseDirectiveDefinition() { const start = this._lexer.token; const description = this.parseDescription(); this.expectKeyword("directive"); this.expectToken(TokenKind.AT); const name = this.parseName(); const args = this.parseArgumentDefs(); const repeatable = this.expectOptionalKeyword("repeatable"); this.expectKeyword("on"); const locations = this.parseDirectiveLocations(); return this.node(start, { kind: Kind.DIRECTIVE_DEFINITION, description, name, arguments: args, repeatable, locations }); } parseDirectiveLocations() { return this.delimitedMany(TokenKind.PIPE, this.parseDirectiveLocation); } parseDirectiveLocation() { const start = this._lexer.token; const name = this.parseName(); if (Object.prototype.hasOwnProperty.call(DirectiveLocation, name.value)) { return name; } throw this.unexpected(start); } node(startToken, node) { if (this._options.noLocation !== true) { node.loc = new Location( startToken, this._lexer.lastToken, this._lexer.source ); } return node; } peek(kind) { return this._lexer.token.kind === kind; } expectToken(kind) { const token2 = this._lexer.token; if (token2.kind === kind) { this.advanceLexer(); return token2; } throw syntaxError( this._lexer.source, token2.start, `Expected ${getTokenKindDesc(kind)}, found ${getTokenDesc(token2)}.` ); } expectOptionalToken(kind) { const token2 = this._lexer.token; if (token2.kind === kind) { this.advanceLexer(); return true; } return false; } expectKeyword(value) { const token2 = this._lexer.token; if (token2.kind === TokenKind.NAME && token2.value === value) { this.advanceLexer(); } else { throw syntaxError( this._lexer.source, token2.start, `Expected "${value}", found ${getTokenDesc(token2)}.` ); } } expectOptionalKeyword(value) { const token2 = this._lexer.token; if (token2.kind === TokenKind.NAME && token2.value === value) { this.advanceLexer(); return true; } return false; } unexpected(atToken) { const token2 = atToken !== null && atToken !== void 0 ? atToken : this._lexer.token; return syntaxError( this._lexer.source, token2.start, `Unexpected ${getTokenDesc(token2)}.` ); } any(openKind, parseFn, closeKind) { this.expectToken(openKind); const nodes = []; while (!this.expectOptionalToken(closeKind)) { nodes.push(parseFn.call(this)); } return nodes; } optionalMany(openKind, parseFn, closeKind) { if (this.expectOptionalToken(openKind)) { const nodes = []; do { nodes.push(parseFn.call(this)); } while (!this.expectOptionalToken(closeKind)); return nodes; } return []; } many(openKind, parseFn, closeKind) { this.expectToken(openKind); const nodes = []; do { nodes.push(parseFn.call(this)); } while (!this.expectOptionalToken(closeKind)); return nodes; } delimitedMany(delimiterKind, parseFn) { this.expectOptionalToken(delimiterKind); const nodes = []; do { nodes.push(parseFn.call(this)); } while (this.expectOptionalToken(delimiterKind)); return nodes; } advanceLexer() { const { maxTokens } = this._options; const token2 = this._lexer.advance(); if (maxTokens !== void 0 && token2.kind !== TokenKind.EOF) { ++this._tokenCounter; if (this._tokenCounter > maxTokens) { throw syntaxError( this._lexer.source, token2.start, `Document contains more that ${maxTokens} tokens. Parsing aborted.` ); } } } } function getTokenDesc(token2) { const value = token2.value; return getTokenKindDesc(token2.kind) + (value != null ? ` "${value}"` : ""); } function getTokenKindDesc(kind) { return isPunctuatorTokenKind(kind) ? `"${kind}"` : kind; } function printString(str) { return `"${str.replace(escapedRegExp, escapedReplacer)}"`; } const escapedRegExp = /[\x00-\x1f\x22\x5c\x7f-\x9f]/g; function escapedReplacer(str) { return escapeSequences[str.charCodeAt(0)]; } const escapeSequences = [ "\\u0000", "\\u0001", "\\u0002", "\\u0003", "\\u0004", "\\u0005", "\\u0006", "\\u0007", "\\b", "\\t", "\\n", "\\u000B", "\\f", "\\r", "\\u000E", "\\u000F", "\\u0010", "\\u0011", "\\u0012", "\\u0013", "\\u0014", "\\u0015", "\\u0016", "\\u0017", "\\u0018", "\\u0019", "\\u001A", "\\u001B", "\\u001C", "\\u001D", "\\u001E", "\\u001F", "", "", '\\"', "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "\\\\", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "\\u007F", "\\u0080", "\\u0081", "\\u0082", "\\u0083", "\\u0084", "\\u0085", "\\u0086", "\\u0087", "\\u0088", "\\u0089", "\\u008A", "\\u008B", "\\u008C", "\\u008D", "\\u008E", "\\u008F", "\\u0090", "\\u0091", "\\u0092", "\\u0093", "\\u0094", "\\u0095", "\\u0096", "\\u0097", "\\u0098", "\\u0099", "\\u009A", "\\u009B", "\\u009C", "\\u009D", "\\u009E", "\\u009F" ]; const BREAK = Object.freeze({}); function visit(root2, visitor, visitorKeys = QueryDocumentKeys) { const enterLeaveMap = /* @__PURE__ */ new Map(); for (const kind of Object.values(Kind)) { enterLeaveMap.set(kind, getEnterLeaveForKind(visitor, kind)); } let stack2 = void 0; let inArray = Array.isArray(root2); let keys2 = [root2]; let index2 = -1; let edits = []; let node = root2; let key = void 0; let parent = void 0; const path = []; const ancestors = []; do { index2++; const isLeaving = index2 === keys2.length; const isEdited = isLeaving && edits.length !== 0; if (isLeaving) { key = ancestors.length === 0 ? void 0 : path[path.length - 1]; node = parent; parent = ancestors.pop(); if (isEdited) { if (inArray) { node = node.slice(); let editOffset = 0; for (const [editKey, editValue] of edits) { const arrayKey = editKey - editOffset; if (editValue === null) { node.splice(arrayKey, 1); editOffset++; } else { node[arrayKey] = editValue; } } } else { node = Object.defineProperties( {}, Object.getOwnPropertyDescriptors(node) ); for (const [editKey, editValue] of edits) { node[editKey] = editValue; } } } index2 = stack2.index; keys2 = stack2.keys; edits = stack2.edits; inArray = stack2.inArray; stack2 = stack2.prev; } else if (parent) { key = inArray ? index2 : keys2[index2]; node = parent[key]; if (node === null || node === void 0) { continue; } path.push(key); } let result2; if (!Array.isArray(node)) { var _enterLeaveMap$get, _enterLeaveMap$get2; isNode(node) || devAssert(false, `Invalid AST Node: ${inspect(node)}.`); const visitFn = isLeaving ? (_enterLeaveMap$get = enterLeaveMap.get(node.kind)) === null || _enterLeaveMap$get === void 0 ? void 0 : _enterLeaveMap$get.leave : (_enterLeaveMap$get2 = enterLeaveMap.get(node.kind)) === null || _enterLeaveMap$get2 === void 0 ? void 0 : _enterLeaveMap$get2.enter; result2 = visitFn === null || visitFn === void 0 ? void 0 : visitFn.call(visitor, node, key, parent, path, ancestors); if (result2 === BREAK) { break; } if (result2 === false) { if (!isLeaving) { path.pop(); continue; } } else if (result2 !== void 0) { edits.push([key, result2]); if (!isLeaving) { if (isNode(result2)) { node = result2; } else { path.pop(); continue; } } } } if (result2 === void 0 && isEdited) { edits.push([key, node]); } if (isLeaving) { path.pop(); } else { var _node$kind; stack2 = { inArray, index: index2, keys: keys2, edits, prev: stack2 }; inArray = Array.isArray(node); keys2 = inArray ? node : (_node$kind = visitorKeys[node.kind]) !== null && _node$kind !== void 0 ? _node$kind : []; index2 = -1; edits = []; if (parent) { ancestors.push(parent); } parent = node; } } while (stack2 !== void 0); if (edits.length !== 0) { return edits[edits.length - 1][1]; } return root2; } function getEnterLeaveForKind(visitor, kind) { const kindVisitor = visitor[kind]; if (typeof kindVisitor === "object") { return kindVisitor; } else if (typeof kindVisitor === "function") { return { enter: kindVisitor, leave: void 0 }; } return { enter: visitor.enter, leave: visitor.leave }; } function print$1(ast) { return visit(ast, printDocASTReducer); } const MAX_LINE_LENGTH = 80; const printDocASTReducer = { Name: { leave: (node) => node.value }, Variable: { leave: (node) => "$" + node.name }, Document: { leave: (node) => join$2(node.definitions, "\n\n") }, OperationDefinition: { leave(node) { const varDefs = wrap$2("(", join$2(node.variableDefinitions, ", "), ")"); const prefix = join$2( [ node.operation, join$2([node.name, varDefs]), join$2(node.directives, " ") ], " " ); return (prefix === "query" ? "" : prefix + " ") + node.selectionSet; } }, VariableDefinition: { leave: ({ variable, type, defaultValue, directives }) => variable + ": " + type + wrap$2(" = ", defaultValue) + wrap$2(" ", join$2(directives, " ")) }, SelectionSet: { leave: ({ selections }) => block(selections) }, Field: { leave({ alias, name, arguments: args, directives, selectionSet }) { const prefix = wrap$2("", alias, ": ") + name; let argsLine = prefix + wrap$2("(", join$2(args, ", "), ")"); if (argsLine.length > MAX_LINE_LENGTH) { argsLine = prefix + wrap$2("(\n", indent(join$2(args, "\n")), "\n)"); } return join$2([argsLine, join$2(directives, " "), selectionSet], " "); } }, Argument: { leave: ({ name, value }) => name + ": " + value }, FragmentSpread: { leave: ({ name, directives }) => "..." + name + wrap$2(" ", join$2(directives, " ")) }, InlineFragment: { leave: ({ typeCondition, directives, selectionSet }) => join$2( [ "...", wrap$2("on ", typeCondition), join$2(directives, " "), selectionSet ], " " ) }, FragmentDefinition: { leave: ({ name, typeCondition, variableDefinitions, directives, selectionSet }) => `fragment ${name}${wrap$2("(", join$2(variableDefinitions, ", "), ")")} on ${typeCondition} ${wrap$2("", join$2(directives, " "), " ")}` + selectionSet }, IntValue: { leave: ({ value }) => value }, FloatValue: { leave: ({ value }) => value }, StringValue: { leave: ({ value, block: isBlockString }) => isBlockString ? printBlockString(value) : printString(value) }, BooleanValue: { leave: ({ value }) => value ? "true" : "false" }, NullValue: { leave: () => "null" }, EnumValue: { leave: ({ value }) => value }, ListValue: { leave: ({ values }) => "[" + join$2(values, ", ") + "]" }, ObjectValue: { leave: ({ fields }) => "{" + join$2(fields, ", ") + "}" }, ObjectField: { leave: ({ name, value }) => name + ": " + value }, Directive: { leave: ({ name, arguments: args }) => "@" + name + wrap$2("(", join$2(args, ", "), ")") }, NamedType: { leave: ({ name }) => name }, ListType: { leave: ({ type }) => "[" + type + "]" }, NonNullType: { leave: ({ type }) => type + "!" }, SchemaDefinition: { leave: ({ description, directives, operationTypes }) => wrap$2("", description, "\n") + join$2(["schema", join$2(directives, " "), block(operationTypes)], " ") }, OperationTypeDefinition: { leave: ({ operation, type }) => operation + ": " + type }, ScalarTypeDefinition: { leave: ({ description, name, directives }) => wrap$2("", description, "\n") + join$2(["scalar", name, join$2(directives, " ")], " ") }, ObjectTypeDefinition: { leave: ({ description, name, interfaces, directives, fields }) => wrap$2("", description, "\n") + join$2( [ "type", name, wrap$2("implements ", join$2(interfaces, " & ")), join$2(directives, " "), block(fields) ], " " ) }, FieldDefinition: { leave: ({ description, name, arguments: args, type, directives }) => wrap$2("", description, "\n") + name + (hasMultilineItems(args) ? wrap$2("(\n", indent(join$2(args, "\n")), "\n)") : wrap$2("(", join$2(args, ", "), ")")) + ": " + type + wrap$2(" ", join$2(directives, " ")) }, InputValueDefinition: { leave: ({ description, name, type, defaultValue, directives }) => wrap$2("", description, "\n") + join$2( [name + ": " + type, wrap$2("= ", defaultValue), join$2(directives, " ")], " " ) }, InterfaceTypeDefinition: { leave: ({ description, name, interfaces, directives, fields }) => wrap$2("", description, "\n") + join$2( [ "interface", name, wrap$2("implements ", join$2(interfaces, " & ")), join$2(directives, " "), block(fields) ], " " ) }, UnionTypeDefinition: { leave: ({ description, name, directives, types }) => wrap$2("", description, "\n") + join$2( ["union", name, join$2(directives, " "), wrap$2("= ", join$2(types, " | "))], " " ) }, EnumTypeDefinition: { leave: ({ description, name, directives, values }) => wrap$2("", description, "\n") + join$2(["enum", name, join$2(directives, " "), block(values)], " ") }, EnumValueDefinition: { leave: ({ description, name, directives }) => wrap$2("", description, "\n") + join$2([name, join$2(directives, " ")], " ") }, InputObjectTypeDefinition: { leave: ({ description, name, directives, fields }) => wrap$2("", description, "\n") + join$2(["input", name, join$2(directives, " "), block(fields)], " ") }, DirectiveDefinition: { leave: ({ description, name, arguments: args, repeatable, locations }) => wrap$2("", description, "\n") + "directive @" + name + (hasMultilineItems(args) ? wrap$2("(\n", indent(join$2(args, "\n")), "\n)") : wrap$2("(", join$2(args, ", "), ")")) + (repeatable ? " repeatable" : "") + " on " + join$2(locations, " | ") }, SchemaExtension: { leave: ({ directives, operationTypes }) => join$2( ["extend schema", join$2(directives, " "), block(operationTypes)], " " ) }, ScalarTypeExtension: { leave: ({ name, directives }) => join$2(["extend scalar", name, join$2(directives, " ")], " ") }, ObjectTypeExtension: { leave: ({ name, interfaces, directives, fields }) => join$2( [ "extend type", name, wrap$2("implements ", join$2(interfaces, " & ")), join$2(directives, " "), block(fields) ], " " ) }, InterfaceTypeExtension: { leave: ({ name, interfaces, directives, fields }) => join$2( [ "extend interface", name, wrap$2("implements ", join$2(interfaces, " & ")), join$2(directives, " "), block(fields) ], " " ) }, UnionTypeExtension: { leave: ({ name, directives, types }) => join$2( [ "extend union", name, join$2(directives, " "), wrap$2("= ", join$2(types, " | ")) ], " " ) }, EnumTypeExtension: { leave: ({ name, directives, values }) => join$2(["extend enum", name, join$2(directives, " "), block(values)], " ") }, InputObjectTypeExtension: { leave: ({ name, directives, fields }) => join$2(["extend input", name, join$2(directives, " "), block(fields)], " ") } }; function join$2(maybeArray, separator = "") { var _maybeArray$filter$jo; return (_maybeArray$filter$jo = maybeArray === null || maybeArray === void 0 ? void 0 : maybeArray.filter((x) => x).join(separator)) !== null && _maybeArray$filter$jo !== void 0 ? _maybeArray$filter$jo : ""; } function block(array) { return wrap$2("{\n", indent(join$2(array, "\n")), "\n}"); } function wrap$2(start, maybeString, end = "") { return maybeString != null && maybeString !== "" ? start + maybeString + end : ""; } function indent(str) { return wrap$2(" ", str.replace(/\n/g, "\n ")); } function hasMultilineItems(maybeArray) { var _maybeArray$some; return (_maybeArray$some = maybeArray === null || maybeArray === void 0 ? void 0 : maybeArray.some((str) => str.includes("\n"))) !== null && _maybeArray$some !== void 0 ? _maybeArray$some : false; } const printer = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, print: print$1 }, Symbol.toStringTag, { value: "Module" })); function isSelectionNode(node) { return node.kind === Kind.FIELD || node.kind === Kind.FRAGMENT_SPREAD || node.kind === Kind.INLINE_FRAGMENT; } function getOperationAST(documentAST, operationName) { let operation = null; for (const definition of documentAST.definitions) { if (definition.kind === Kind.OPERATION_DEFINITION) { var _definition$name; if (operationName == null) { if (operation) { return null; } operation = definition; } else if (((_definition$name = definition.name) === null || _definition$name === void 0 ? void 0 : _definition$name.value) === operationName) { return definition; } } } return operation; } const getOperationAST$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, getOperationAST }, Symbol.toStringTag, { value: "Module" })); var docCache = /* @__PURE__ */ new Map(); var fragmentSourceMap = /* @__PURE__ */ new Map(); var printFragmentWarnings = true; var experimentalFragmentVariables = false; function normalize$1(string) { return string.replace(/[\s,]+/g, " ").trim(); } function cacheKeyFromLoc(loc) { return normalize$1(loc.source.body.substring(loc.start, loc.end)); } function processFragments(ast) { var seenKeys = /* @__PURE__ */ new Set(); var definitions = []; ast.definitions.forEach(function(fragmentDefinition) { if (fragmentDefinition.kind === "FragmentDefinition") { var fragmentName = fragmentDefinition.name.value; var sourceKey = cacheKeyFromLoc(fragmentDefinition.loc); var sourceKeySet = fragmentSourceMap.get(fragmentName); if (sourceKeySet && !sourceKeySet.has(sourceKey)) { if (printFragmentWarnings) { console.warn("Warning: fragment with name " + fragmentName + " already exists.\ngraphql-tag enforces all fragment names across your application to be unique; read more about\nthis in the docs: http://dev.apollodata.com/core/fragments.html#unique-names"); } } else if (!sourceKeySet) { fragmentSourceMap.set(fragmentName, sourceKeySet = /* @__PURE__ */ new Set()); } sourceKeySet.add(sourceKey); if (!seenKeys.has(sourceKey)) { seenKeys.add(sourceKey); definitions.push(fragmentDefinition); } } else { definitions.push(fragmentDefinition); } }); return __assign$1(__assign$1({}, ast), { definitions }); } function stripLoc(doc2) { var workSet = new Set(doc2.definitions); workSet.forEach(function(node) { if (node.loc) delete node.loc; Object.keys(node).forEach(function(key) { var value = node[key]; if (value && typeof value === "object") { workSet.add(value); } }); }); var loc = doc2.loc; if (loc) { delete loc.startToken; delete loc.endToken; } return doc2; } function parseDocument(source) { var cacheKey = normalize$1(source); if (!docCache.has(cacheKey)) { var parsed = parse$2(source, { experimentalFragmentVariables, allowLegacyFragmentVariables: experimentalFragmentVariables }); if (!parsed || parsed.kind !== "Document") { throw new Error("Not a valid GraphQL document."); } docCache.set(cacheKey, stripLoc(processFragments(parsed))); } return docCache.get(cacheKey); } function gql(literals) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } if (typeof literals === "string") { literals = [literals]; } var result2 = literals[0]; args.forEach(function(arg, i2) { if (arg && arg.kind === "Document") { result2 += arg.loc.source.body; } else { result2 += arg; } result2 += literals[i2 + 1]; }); return parseDocument(result2); } function resetCaches() { docCache.clear(); fragmentSourceMap.clear(); } function disableFragmentWarnings() { printFragmentWarnings = false; } function enableExperimentalFragmentVariables() { experimentalFragmentVariables = true; } function disableExperimentalFragmentVariables() { experimentalFragmentVariables = false; } var extras = { gql, resetCaches, disableFragmentWarnings, enableExperimentalFragmentVariables, disableExperimentalFragmentVariables }; (function(gql_1) { gql_1.gql = extras.gql, gql_1.resetCaches = extras.resetCaches, gql_1.disableFragmentWarnings = extras.disableFragmentWarnings, gql_1.enableExperimentalFragmentVariables = extras.enableExperimentalFragmentVariables, gql_1.disableExperimentalFragmentVariables = extras.disableExperimentalFragmentVariables; })(gql || (gql = {})); gql["default"] = gql; const gql$1 = gql; const onCreateMessage = (roomId) => gql$1` subscription { onCreateMessage(roomId: "${roomId}") { _id text createdAt deliveryStatus delivery { sending channel user read failed } advisorId sender type error media roomId appUUID channel channelId repliedStoryUrl reactions { reaction users } quotedMessageKB { _id type text sender media channelId advisorId createdAt updatedAt } payload { suggestion selectedOption statusKeys statusData { executingAdviserName impactedAdviserName impactedAdviserEmail reasonForClosing inboxName } } adviser { name } origin { event eventId } typeOptions { latitude longitude contacts { name { formatted_name } phones { phone } } } } } `; var genericMessage = "Invariant Violation"; var _a = Object.setPrototypeOf, setPrototypeOf = _a === void 0 ? function(obj, proto2) { obj.__proto__ = proto2; return obj; } : _a; var InvariantError = function(_super) { __extends(InvariantError2, _super); function InvariantError2(message) { if (message === void 0) { message = genericMessage; } var _this = _super.call(this, typeof message === "number" ? genericMessage + ": " + message + " (see https://github.com/apollographql/invariant-packages)" : message) || this; _this.framesToPop = 1; _this.name = genericMessage; setPrototypeOf(_this, InvariantError2.prototype); return _this; } return InvariantError2; }(Error); function invariant$1(condition, message) { if (!condition) { throw new InvariantError(message); } } var verbosityLevels = ["debug", "log", "warn", "error", "silent"]; var verbosityLevel = verbosityLevels.indexOf("log"); function wrapConsoleMethod(name) { return function() { if (verbosityLevels.indexOf(name) >= verbosityLevel) { var method = console[name] || console.log; return method.apply(console, arguments); } }; } (function(invariant2) { invariant2.debug = wrapConsoleMethod("debug"); invariant2.log = wrapConsoleMethod("log"); invariant2.warn = wrapConsoleMethod("warn"); invariant2.error = wrapConsoleMethod("error"); })(invariant$1 || (invariant$1 = {})); var version = "3.11.10"; function maybe$1(thunk) { try { return thunk(); } catch (_a2) { } } const global$1 = maybe$1(function() { return globalThis; }) || maybe$1(function() { return window; }) || maybe$1(function() { return self; }) || maybe$1(function() { return global; }) || maybe$1(function() { return maybe$1.constructor("return this")(); }); var prefixCounts = /* @__PURE__ */ new Map(); function makeUniqueId(prefix) { var count = prefixCounts.get(prefix) || 1; prefixCounts.set(prefix, count + 1); return "".concat(prefix, ":").concat(count, ":").concat(Math.random().toString(36).slice(2)); } function stringifyForDisplay(value, space) { if (space === void 0) { space = 0; } var undefId = makeUniqueId("stringifyForDisplay"); return JSON.stringify(value, function(key, value2) { return value2 === void 0 ? undefId : value2; }, space).split(JSON.stringify(undefId)).join(""); } function wrap$1(fn) { return function(message) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } if (typeof message === "number") { var arg0 = message; message = getHandledErrorMsg(arg0); if (!message) { message = getFallbackErrorMsg(arg0, args); args = []; } } fn.apply(void 0, [message].concat(args)); }; } var invariant = Object.assign(function invariant2(condition, message) { var args = []; for (var _i = 2; _i < arguments.length; _i++) { args[_i - 2] = arguments[_i]; } if (!condition) { invariant$1(condition, getHandledErrorMsg(message, args) || getFallbackErrorMsg(message, args)); } }, { debug: wrap$1(invariant$1.debug), log: wrap$1(invariant$1.log), warn: wrap$1(invariant$1.warn), error: wrap$1(invariant$1.error) }); function newInvariantError(message) { var optionalParams = []; for (var _i = 1; _i < arguments.length; _i++) { optionalParams[_i - 1] = arguments[_i]; } return new InvariantError(getHandledErrorMsg(message, optionalParams) || getFallbackErrorMsg(message, optionalParams)); } var ApolloErrorMessageHandler = Symbol.for("ApolloErrorMessageHandler_" + version); function stringify(arg) { if (typeof arg == "string") { return arg; } try { return stringifyForDisplay(arg, 2).slice(0, 1e3); } catch (_a2) { return ""; } } function getHandledErrorMsg(message, messageArgs) { if (messageArgs === void 0) { messageArgs = []; } if (!message) return; return global$1[ApolloErrorMessageHandler] && global$1[ApolloErrorMessageHandler](message, messageArgs.map(stringify)); } function getFallbackErrorMsg(message, messageArgs) { if (messageArgs === void 0) { messageArgs = []; } if (!message) return; return "An error occurred! For more details, see the full error text at https://go.apollo.dev/c/err#".concat(encodeURIComponent(JSON.stringify({ version, message, args: messageArgs.map(stringify) }))); } function shouldInclude(_a2, variables) { var directives = _a2.directives; if (!directives || !directives.length) { return true; } return getInclusionDirectives(directives).every(function(_a3) { var directive = _a3.directive, ifArgument = _a3.ifArgument; var evaledValue = false; if (ifArgument.value.kind === "Variable") { evaledValue = variables && variables[ifArgument.value.name.value]; invariant(evaledValue !== void 0, 70, directive.name.value); } else { evaledValue = ifArgument.value.value; } return directive.name.value === "skip" ? !evaledValue : evaledValue; }); } function hasDirectives(names, root2, all) { var nameSet = new Set(names); var uniqueCount = nameSet.size; visit(root2, { Directive: function(node) { if (nameSet.delete(node.name.value) && (!all || !nameSet.size)) { return BREAK; } } }); return all ? !nameSet.size : nameSet.size < uniqueCount; } function hasClientExports(document2) { return document2 && hasDirectives(["client", "export"], document2, true); } function isInclusionDirective(_a2) { var value = _a2.name.value; return value === "skip" || value === "include"; } function getInclusionDirectives(directives) { var result2 = []; if (directives && directives.length) { directives.forEach(function(directive) { if (!isInclusionDirective(directive)) return; var directiveArguments = directive.arguments; var directiveName = directive.name.value; invariant(directiveArguments && directiveArguments.length === 1, 71, directiveName); var ifArgument = directiveArguments[0]; invariant(ifArgument.name && ifArgument.name.value === "if", 72, directiveName); var ifValue = ifArgument.value; invariant(ifValue && (ifValue.kind === "Variable" || ifValue.kind === "BooleanValue"), 73, directiveName); result2.push({ directive, ifArgument }); }); } return result2; } const defaultMakeData = () => /* @__PURE__ */ Object.create(null); const { forEach, slice } = Array.prototype; const { hasOwnProperty: hasOwnProperty$7 } = Object.prototype; class Trie { constructor(weakness = true, makeData = defaultMakeData) { this.weakness = weakness; this.makeData = makeData; } lookup() { return this.lookupArray(arguments); } lookupArray(array) { let node = this; forEach.call(array, (key) => node = node.getChildTrie(key)); return hasOwnProperty$7.call(node, "data") ? node.data : node.data = this.makeData(slice.call(array)); } peek() { return this.peekArray(arguments); } peekArray(array) { let node = this; for (let i2 = 0, len = array.length; node && i2 < len; ++i2) { const map2 = node.mapFor(array[i2], false); node = map2 && map2.get(array[i2]); } return node && node.data; } remove() { return this.removeArray(arguments); } removeArray(array) { let data2; if (array.length) { const head = array[0]; const map2 = this.mapFor(head, false); const child = map2 && map2.get(head); if (child) { data2 = child.removeArray(slice.call(array, 1)); if (!child.data && !child.weak && !(child.strong && child.strong.size)) { map2.delete(head); } } } else { data2 = this.data; delete this.data; } return data2; } getChildTrie(key) { const map2 = this.mapFor(key, true); let child = map2.get(key); if (!child) map2.set(key, child = new Trie(this.weakness, this.makeData)); return child; } mapFor(key, create2) { return this.weakness && isObjRef(key) ? this.weak || (create2 ? this.weak = /* @__PURE__ */ new WeakMap() : void 0) : this.strong || (create2 ? this.strong = /* @__PURE__ */ new Map() : void 0); } } function isObjRef(value) { switch (typeof value) { case "object": if (value === null) break; case "function": return true; } return false; } var isReactNative = maybe$1(function() { return navigator.product; }) == "ReactNative"; var canUseWeakMap = typeof WeakMap === "function" && !(isReactNative && !global.HermesInternal); var canUseWeakSet = typeof WeakSet === "function"; var canUseSymbol = typeof Symbol === "function" && typeof Symbol.for === "function"; var canUseAsyncIteratorSymbol = canUseSymbol && Symbol.asyncIterator; typeof maybe$1(function() { return window.document.createElement; }) === "function"; maybe$1(function() { return navigator.userAgent.indexOf("jsdom") >= 0; }) || false; function isNonNullObject(obj) { return obj !== null && typeof obj === "object"; } function getFragmentQueryDocument(document2, fragmentName) { var actualFragmentName = fragmentName; var fragments = []; document2.definitions.forEach(function(definition) { if (definition.kind === "OperationDefinition") { throw newInvariantError( 74, definition.operation, definition.name ? " named '".concat(definition.name.value, "'") : "" ); } if (definition.kind === "FragmentDefinition") { fragments.push(definition); } }); if (typeof actualFragmentName === "undefined") { invariant(fragments.length === 1, 75, fragments.length); actualFragmentName = fragments[0].name.value; } var query = __assign$1(__assign$1({}, document2), { definitions: __spreadArray$1([ { kind: "OperationDefinition", operation: "query", selectionSet: { kind: "SelectionSet", selections: [ { kind: "FragmentSpread", name: { kind: "Name", value: actualFragmentName } } ] } } ], document2.definitions, true) }); return query; } function createFragmentMap(fragments) { if (fragments === void 0) { fragments = []; } var symTable = {}; fragments.forEach(function(fragment) { symTable[fragment.name.value] = fragment; }); return symTable; } function getFragmentFromSelection(selection, fragmentMap) { switch (selection.kind) { case "InlineFragment": return selection; case "FragmentSpread": { var fragmentName = selection.name.value; if (typeof fragmentMap === "function") { return fragmentMap(fragmentName); } var fragment = fragmentMap && fragmentMap[fragmentName]; invariant(fragment, 76, fragmentName); return fragment || null; } default: return null; } } function defaultDispose$1() { } class StrongCache { constructor(max2 = Infinity, dispose = defaultDispose$1) { this.max = max2; this.dispose = dispose; this.map = /* @__PURE__ */ new Map(); this.newest = null; this.oldest = null; } has(key) { return this.map.has(key); } get(key) { const node = this.getNode(key); return node && node.value; } get size() { return this.map.size; } getNode(key) { const node = this.map.get(key); if (node && node !== this.newest) { const { older, newer } = node; if (newer) { newer.older = older; } if (older) { older.newer = newer; } node.older = this.newest; node.older.newer = node; node.newer = null; this.newest = node; if (node === this.oldest) { this.oldest = newer; } } return node; } set(key, value) { let node = this.getNode(key); if (node) { return node.value = value; } node = { key, value, newer: null, older: this.newest }; if (this.newest) { this.newest.newer = node; } this.newest = node; this.oldest = this.oldest || node; this.map.set(key, node); return node.value; } clean() { while (this.oldest && this.map.size > this.max) { this.delete(this.oldest.key); } } delete(key) { const node = this.map.get(key); if (node) { if (node === this.newest) { this.newest = node.older; } if (node === this.oldest) { this.oldest = node.newer; } if (node.newer) { node.newer.older = node.older; } if (node.older) { node.older.newer = node.newer; } this.map.delete(key); this.dispose(node.value, key); return true; } return false; } } function noop() { } const defaultDispose = noop; const _WeakRef = typeof WeakRef !== "undefined" ? WeakRef : function(value) { return { deref: () => value }; }; const _WeakMap = typeof WeakMap !== "undefined" ? WeakMap : Map; const _FinalizationRegistry = typeof FinalizationRegistry !== "undefined" ? FinalizationRegistry : function() { return { register: noop, unregister: noop }; }; const finalizationBatchSize = 10024; class WeakCache { constructor(max2 = Infinity, dispose = defaultDispose) { this.max = max2; this.dispose = dispose; this.map = new _WeakMap(); this.newest = null; this.oldest = null; this.unfinalizedNodes = /* @__PURE__ */ new Set(); this.finalizationScheduled = false; this.size = 0; this.finalize = () => { const iterator2 = this.unfinalizedNodes.values(); for (let i2 = 0; i2 < finalizationBatchSize; i2++) { const node = iterator2.next().value; if (!node) break; this.unfinalizedNodes.delete(node); const key = node.key; delete node.key; node.keyRef = new _WeakRef(key); this.registry.register(key, node, node); } if (this.unfinalizedNodes.size > 0) { queueMicrotask(this.finalize); } else { this.finalizationScheduled = false; } }; this.registry = new _FinalizationRegistry(this.deleteNode.bind(this)); } has(key) { return this.map.has(key); } get(key) { const node = this.getNode(key); return node && node.value; } getNode(key) { const node = this.map.get(key); if (node && node !== this.newest) { const { older, newer } = node; if (newer) { newer.older = older; } if (older) { older.newer = newer; } node.older = this.newest; node.older.newer = node; node.newer = null; this.newest = node; if (node === this.oldest) { this.oldest = newer; } } return node; } set(key, value) { let node = this.getNode(key); if (node) { return node.value = value; } node = { key, value, newer: null, older: this.newest }; if (this.newest) { this.newest.newer = node; } this.newest = node; this.oldest = this.oldest || node; this.scheduleFinalization(node); this.map.set(key, node); this.size++; return node.value; } clean() { while (this.oldest && this.size > this.max) { this.deleteNode(this.oldest); } } deleteNode(node) { if (node === this.newest) { this.newest = node.older; } if (node === this.oldest) { this.oldest = node.newer; } if (node.newer) { node.newer.older = node.older; } if (node.older) { node.older.newer = node.newer; } this.size--; const key = node.key || node.keyRef && node.keyRef.deref(); this.dispose(node.value, key); if (!node.keyRef) { this.unfinalizedNodes.delete(node); } else { this.registry.unregister(node); } if (key) this.map.delete(key); } delete(key) { const node = this.map.get(key); if (node) { this.deleteNode(node); return true; } return false; } scheduleFinalization(node) { this.unfinalizedNodes.add(node); if (!this.finalizationScheduled) { this.finalizationScheduled = true; queueMicrotask(this.finalize); } } } var scheduledCleanup = /* @__PURE__ */ new WeakSet(); function schedule(cache2) { if (cache2.size <= (cache2.max || -1)) { return; } if (!scheduledCleanup.has(cache2)) { scheduledCleanup.add(cache2); setTimeout(function() { cache2.clean(); scheduledCleanup.delete(cache2); }, 100); } } var AutoCleanedWeakCache = function(max2, dispose) { var cache2 = new WeakCache(max2, dispose); cache2.set = function(key, value) { var ret = WeakCache.prototype.set.call(this, key, value); schedule(this); return ret; }; return cache2; }; var AutoCleanedStrongCache = function(max2, dispose) { var cache2 = new StrongCache(max2, dispose); cache2.set = function(key, value) { var ret = StrongCache.prototype.set.call(this, key, value); schedule(this); return ret; }; return cache2; }; var cacheSizeSymbol = Symbol.for("apollo.cacheSize"); var cacheSizes = __assign$1({}, global$1[cacheSizeSymbol]); var globalCaches = {}; function registerGlobalCache(name, getSize) { globalCaches[name] = getSize; } var getApolloClientMemoryInternals = globalThis.__DEV__ !== false ? _getApolloClientMemoryInternals : void 0; var getInMemoryCacheMemoryInternals = globalThis.__DEV__ !== false ? _getInMemoryCacheMemoryInternals : void 0; var getApolloCacheMemoryInternals = globalThis.__DEV__ !== false ? _getApolloCacheMemoryInternals : void 0; function getCurrentCacheSizes() { var defaults2 = { parser: 1e3, canonicalStringify: 1e3, print: 2e3, "documentTransform.cache": 2e3, "queryManager.getDocumentInfo": 2e3, "PersistedQueryLink.persistedQueryHashes": 2e3, "fragmentRegistry.transform": 2e3, "fragmentRegistry.lookup": 1e3, "fragmentRegistry.findFragmentSpreads": 4e3, "cache.fragmentQueryDocuments": 1e3, "removeTypenameFromVariables.getVariableDefinitions": 2e3, "inMemoryCache.maybeBroadcastWatch": 5e3, "inMemoryCache.executeSelectionSet": 5e4, "inMemoryCache.executeSubSelectedArray": 1e4 }; return Object.fromEntries(Object.entries(defaults2).map(function(_a2) { var k = _a2[0], v = _a2[1]; return [ k, cacheSizes[k] || v ]; })); } function _getApolloClientMemoryInternals() { var _a2, _b, _c, _d, _e; if (!(globalThis.__DEV__ !== false)) throw new Error("only supported in development mode"); return { limits: getCurrentCacheSizes(), sizes: __assign$1({ print: (_a2 = globalCaches.print) === null || _a2 === void 0 ? void 0 : _a2.call(globalCaches), parser: (_b = globalCaches.parser) === null || _b === void 0 ? void 0 : _b.call(globalCaches), canonicalStringify: (_c = globalCaches.canonicalStringify) === null || _c === void 0 ? void 0 : _c.call(globalCaches), links: linkInfo(this.link), queryManager: { getDocumentInfo: this["queryManager"]["transformCache"].size, documentTransforms: transformInfo(this["queryManager"].documentTransform) } }, (_e = (_d = this.cache).getMemoryInternals) === null || _e === void 0 ? void 0 : _e.call(_d)) }; } function _getApolloCacheMemoryInternals() { return { cache: { fragmentQueryDocuments: getWrapperInformation(this["getFragmentDoc"]) } }; } function _getInMemoryCacheMemoryInternals() { var fragments = this.config.fragments; return __assign$1(__assign$1({}, _getApolloCacheMemoryInternals.apply(this)), { addTypenameDocumentTransform: transformInfo(this["addTypenameTransform"]), inMemoryCache: { executeSelectionSet: getWrapperInformation(this["storeReader"]["executeSelectionSet"]), executeSubSelectedArray: getWrapperInformation(this["storeReader"]["executeSubSelectedArray"]), maybeBroadcastWatch: getWrapperInformation(this["maybeBroadcastWatch"]) }, fragmentRegistry: { findFragmentSpreads: getWrapperInformation(fragments === null || fragments === void 0 ? void 0 : fragments.findFragmentSpreads), lookup: getWrapperInformation(fragments === null || fragments === void 0 ? void 0 : fragments.lookup), transform: getWrapperInformation(fragments === null || fragments === void 0 ? void 0 : fragments.transform) } }); } function isWrapper(f) { return !!f && "dirtyKey" in f; } function getWrapperInformation(f) { return isWrapper(f) ? f.size : void 0; } function isDefined(value) { return value != null; } function transformInfo(transform2) { return recurseTransformInfo(transform2).map(function(cache2) { return { cache: cache2 }; }); } function recurseTransformInfo(transform2) { return transform2 ? __spreadArray$1(__spreadArray$1([ getWrapperInformation(transform2 === null || transform2 === void 0 ? void 0 : transform2["performWork"]) ], recurseTransformInfo(transform2 === null || transform2 === void 0 ? void 0 : transform2["left"]), true), recurseTransformInfo(transform2 === null || transform2 === void 0 ? void 0 : transform2["right"]), true).filter(isDefined) : []; } function linkInfo(link2) { var _a2; return link2 ? __spreadArray$1(__spreadArray$1([ (_a2 = link2 === null || link2 === void 0 ? void 0 : link2.getMemoryInternals) === null || _a2 === void 0 ? void 0 : _a2.call(link2) ], linkInfo(link2 === null || link2 === void 0 ? void 0 : link2.left), true), linkInfo(link2 === null || link2 === void 0 ? void 0 : link2.right), true).filter(isDefined) : []; } var canonicalStringify = Object.assign(function canonicalStringify2(value) { return JSON.stringify(value, stableObjectReplacer); }, { reset: function() { sortingMap = new AutoCleanedStrongCache(cacheSizes.canonicalStringify || 1e3); } }); if (globalThis.__DEV__ !== false) { registerGlobalCache("canonicalStringify", function() { return sortingMap.size; }); } var sortingMap; canonicalStringify.reset(); function stableObjectReplacer(key, value) { if (value && typeof value === "object") { var proto2 = Object.getPrototypeOf(value); if (proto2 === Object.prototype || proto2 === null) { var keys2 = Object.keys(value); if (keys2.every(everyKeyInOrder)) return value; var unsortedKey = JSON.stringify(keys2); var sortedKeys = sortingMap.get(unsortedKey); if (!sortedKeys) { keys2.sort(); var sortedKey = JSON.stringify(keys2); sortedKeys = sortingMap.get(sortedKey) || keys2; sortingMap.set(unsortedKey, sortedKeys); sortingMap.set(sortedKey, sortedKeys); } var sortedObject_1 = Object.create(proto2); sortedKeys.forEach(function(key2) { sortedObject_1[key2] = value[key2]; }); return sortedObject_1; } } return value; } function everyKeyInOrder(key, i2, keys2) { return i2 === 0 || keys2[i2 - 1] <= key; } function makeReference(id) { return { __ref: String(id) }; } function isReference(obj) { return Boolean(obj && typeof obj === "object" && typeof obj.__ref === "string"); } function isDocumentNode(value) { return isNonNullObject(value) && value.kind === "Document" && Array.isArray(value.definitions); } function isStringValue(value) { return value.kind === "StringValue"; } function isBooleanValue(value) { return value.kind === "BooleanValue"; } function isIntValue(value) { return value.kind === "IntValue"; } function isFloatValue(value) { return value.kind === "FloatValue"; } function isVariable(value) { return value.kind === "Variable"; } function isObjectValue(value) { return value.kind === "ObjectValue"; } function isListValue(value) { return value.kind === "ListValue"; } function isEnumValue(value) { return value.kind === "EnumValue"; } function isNullValue(value) { return value.kind === "NullValue"; } function valueToObjectRepresentation(argObj, name, value, variables) { if (isIntValue(value) || isFloatValue(value)) { argObj[name.value] = Number(value.value); } else if (isBooleanValue(value) || isStringValue(value)) { argObj[name.value] = value.value; } else if (isObjectValue(value)) { var nestedArgObj_1 = {}; value.fields.map(function(obj) { return valueToObjectRepresentation(nestedArgObj_1, obj.name, obj.value, variables); }); argObj[name.value] = nestedArgObj_1; } else if (isVariable(value)) { var variableValue = (variables || {})[value.name.value]; argObj[name.value] = variableValue; } else if (isListValue(value)) { argObj[name.value] = value.values.map(function(listValue) { var nestedArgArrayObj = {}; valueToObjectRepresentation(nestedArgArrayObj, name, listValue, variables); return nestedArgArrayObj[name.value]; }); } else if (isEnumValue(value)) { argObj[name.value] = value.value; } else if (isNullValue(value)) { argObj[name.value] = null; } else { throw newInvariantError(85, name.value, value.kind); } } function storeKeyNameFromField(field, variables) { var directivesObj = null; if (field.directives) { directivesObj = {}; field.directives.forEach(function(directive) { directivesObj[directive.name.value] = {}; if (directive.arguments) { directive.arguments.forEach(function(_a2) { var name = _a2.name, value = _a2.value; return valueToObjectRepresentation(directivesObj[directive.name.value], name, value, variables); }); } }); } var argObj = null; if (field.arguments && field.arguments.length) { argObj = {}; field.arguments.forEach(function(_a2) { var name = _a2.name, value = _a2.value; return valueToObjectRepresentation(argObj, name, value, variables); }); } return getStoreKeyName(field.name.value, argObj, directivesObj); } var KNOWN_DIRECTIVES = [ "connection", "include", "skip", "client", "rest", "export", "nonreactive" ]; var storeKeyNameStringify = canonicalStringify; var getStoreKeyName = Object.assign(function(fieldName, args, directives) { if (args && directives && directives["connection"] && directives["connection"]["key"]) { if (directives["connection"]["filter"] && directives["connection"]["filter"].length > 0) { var filterKeys = directives["connection"]["filter"] ? directives["connection"]["filter"] : []; filterKeys.sort(); var filteredArgs_1 = {}; filterKeys.forEach(function(key) { filteredArgs_1[key] = args[key]; }); return "".concat(directives["connection"]["key"], "(").concat(storeKeyNameStringify(filteredArgs_1), ")"); } else { return directives["connection"]["key"]; } } var completeFieldName = fieldName; if (args) { var stringifiedArgs = storeKeyNameStringify(args); completeFieldName += "(".concat(stringifiedArgs, ")"); } if (directives) { Object.keys(directives).forEach(function(key) { if (KNOWN_DIRECTIVES.indexOf(key) !== -1) return; if (directives[key] && Object.keys(directives[key]).length) { completeFieldName += "@".concat(key, "(").concat(storeKeyNameStringify(directives[key]), ")"); } else { completeFieldName += "@".concat(key); } }); } return completeFieldName; }, { setStringify: function(s) { var previous = storeKeyNameStringify; storeKeyNameStringify = s; return previous; } }); function argumentsObjectFromField(field, variables) { if (field.arguments && field.arguments.length) { var argObj_1 = {}; field.arguments.forEach(function(_a2) { var name = _a2.name, value = _a2.value; return valueToObjectRepresentation(argObj_1, name, value, variables); }); return argObj_1; } return null; } function resultKeyNameFromField(field) { return field.alias ? field.alias.value : field.name.value; } function getTypenameFromResult(result2, selectionSet, fragmentMap) { var fragments; for (var _i = 0, _a2 = selectionSet.selections; _i < _a2.length; _i++) { var selection = _a2[_i]; if (isField(selection)) { if (selection.name.value === "__typename") { return result2[resultKeyNameFromField(selection)]; } } else if (fragments) { fragments.push(selection); } else { fragments = [selection]; } } if (typeof result2.__typename === "string") { return result2.__typename; } if (fragments) { for (var _b = 0, fragments_1 = fragments; _b < fragments_1.length; _b++) { var selection = fragments_1[_b]; var typename = getTypenameFromResult(result2, getFragmentFromSelection(selection, fragmentMap).selectionSet, fragmentMap); if (typeof typename === "string") { return typename; } } } } function isField(selection) { return selection.kind === "Field"; } function isInlineFragment(selection) { return selection.kind === "InlineFragment"; } function checkDocument(doc2) { invariant(doc2 && doc2.kind === "Document", 77); var operations = doc2.definitions.filter(function(d) { return d.kind !== "FragmentDefinition"; }).map(function(definition) { if (definition.kind !== "OperationDefinition") { throw newInvariantError(78, definition.kind); } return definition; }); invariant(operations.length <= 1, 79, operations.length); return doc2; } function getOperationDefinition(doc2) { checkDocument(doc2); return doc2.definitions.filter(function(definition) { return definition.kind === "OperationDefinition"; })[0]; } function getOperationName(doc2) { return doc2.definitions.filter(function(definition) { return definition.kind === "OperationDefinition" && !!definition.name; }).map(function(x) { return x.name.value; })[0] || null; } function getFragmentDefinitions(doc2) { return doc2.definitions.filter(function(definition) { return definition.kind === "FragmentDefinition"; }); } function getQueryDefinition(doc2) { var queryDef = getOperationDefinition(doc2); invariant(queryDef && queryDef.operation === "query", 80); return queryDef; } function getFragmentDefinition(doc2) { invariant(doc2.kind === "Document", 81); invariant(doc2.definitions.length <= 1, 82); var fragmentDef = doc2.definitions[0]; invariant(fragmentDef.kind === "FragmentDefinition", 83); return fragmentDef; } function getMainDefinition(queryDoc) { checkDocument(queryDoc); var fragmentDefinition; for (var _i = 0, _a2 = queryDoc.definitions; _i < _a2.length; _i++) { var definition = _a2[_i]; if (definition.kind === "OperationDefinition") { var operation = definition.operation; if (operation === "query" || operation === "mutation" || operation === "subscription") { return definition; } } if (definition.kind === "FragmentDefinition" && !fragmentDefinition) { fragmentDefinition = definition; } } if (fragmentDefinition) { return fragmentDefinition; } throw newInvariantError(84); } function getDefaultValues(definition) { var defaultValues = /* @__PURE__ */ Object.create(null); var defs = definition && definition.variableDefinitions; if (defs && defs.length) { defs.forEach(function(def2) { if (def2.defaultValue) { valueToObjectRepresentation(defaultValues, def2.variable.name, def2.defaultValue); } }); } return defaultValues; } let currentContext = null; const MISSING_VALUE = {}; let idCounter = 1; const makeSlotClass = () => class Slot { constructor() { this.id = [ "slot", idCounter++, Date.now(), Math.random().toString(36).slice(2) ].join(":"); } hasValue() { for (let context = currentContext; context; context = context.parent) { if (this.id in context.slots) { const value = context.slots[this.id]; if (value === MISSING_VALUE) break; if (context !== currentContext) { currentContext.slots[this.id] = value; } return true; } } if (currentContext) { currentContext.slots[this.id] = MISSING_VALUE; } return false; } getValue() { if (this.hasValue()) { return currentContext.slots[this.id]; } } withValue(value, callback, args, thisArg) { const slots = { __proto__: null, [this.id]: value }; const parent = currentContext; currentContext = { parent, slots }; try { return callback.apply(thisArg, args); } finally { currentContext = parent; } } static bind(callback) { const context = currentContext; return function() { const saved = currentContext; try { currentContext = context; return callback.apply(this, arguments); } finally { currentContext = saved; } }; } static noContext(callback, args, thisArg) { if (currentContext) { const saved = currentContext; try { currentContext = null; return callback.apply(thisArg, args); } finally { currentContext = saved; } } else { return callback.apply(thisArg, args); } } }; function maybe(fn) { try { return fn(); } catch (ignored) { } } const globalKey = "@wry/context:Slot"; const host = maybe(() => globalThis) || maybe(() => global) || /* @__PURE__ */ Object.create(null); const globalHost = host; const Slot = globalHost[globalKey] || Array[globalKey] || function(Slot2) { try { Object.defineProperty(globalHost, globalKey, { value: Slot2, enumerable: false, writable: false, configurable: true }); } finally { return Slot2; } }(makeSlotClass()); const parentEntrySlot = new Slot(); const { hasOwnProperty: hasOwnProperty$6 } = Object.prototype; const arrayFromSet = Array.from || function(set2) { const array = []; set2.forEach((item) => array.push(item)); return array; }; function maybeUnsubscribe(entryOrDep) { const { unsubscribe } = entryOrDep; if (typeof unsubscribe === "function") { entryOrDep.unsubscribe = void 0; unsubscribe(); } } const emptySetPool = []; const POOL_TARGET_SIZE = 100; function assert(condition, optionalMessage) { if (!condition) { throw new Error(optionalMessage || "assertion failure"); } } function valueIs(a2, b) { const len = a2.length; return len > 0 && len === b.length && a2[len - 1] === b[len - 1]; } function valueGet(value) { switch (value.length) { case 0: throw new Error("unknown value"); case 1: return value[0]; case 2: throw value[1]; } } function valueCopy(value) { return value.slice(0); } class Entry { constructor(fn) { this.fn = fn; this.parents = /* @__PURE__ */ new Set(); this.childValues = /* @__PURE__ */ new Map(); this.dirtyChildren = null; this.dirty = true; this.recomputing = false; this.value = []; this.deps = null; ++Entry.count; } peek() { if (this.value.length === 1 && !mightBeDirty(this)) { rememberParent(this); return this.value[0]; } } recompute(args) { assert(!this.recomputing, "already recomputing"); rememberParent(this); return mightBeDirty(this) ? reallyRecompute(this, args) : valueGet(this.value); } setDirty() { if (this.dirty) return; this.dirty = true; reportDirty(this); maybeUnsubscribe(this); } dispose() { this.setDirty(); forgetChildren(this); eachParent(this, (parent, child) => { parent.setDirty(); forgetChild(parent, this); }); } forget() { this.dispose(); } dependOn(dep2) { dep2.add(this); if (!this.deps) { this.deps = emptySetPool.pop() || /* @__PURE__ */ new Set(); } this.deps.add(dep2); } forgetDeps() { if (this.deps) { arrayFromSet(this.deps).forEach((dep2) => dep2.delete(this)); this.deps.clear(); emptySetPool.push(this.deps); this.deps = null; } } } Entry.count = 0; function rememberParent(child) { const parent = parentEntrySlot.getValue(); if (parent) { child.parents.add(parent); if (!parent.childValues.has(child)) { parent.childValues.set(child, []); } if (mightBeDirty(child)) { reportDirtyChild(parent, child); } else { reportCleanChild(parent, child); } return parent; } } function reallyRecompute(entry, args) { forgetChildren(entry); parentEntrySlot.withValue(entry, recomputeNewValue, [entry, args]); if (maybeSubscribe(entry, args)) { setClean(entry); } return valueGet(entry.value); } function recomputeNewValue(entry, args) { entry.recomputing = true; const { normalizeResult } = entry; let oldValueCopy; if (normalizeResult && entry.value.length === 1) { oldValueCopy = valueCopy(entry.value); } entry.value.length = 0; try { entry.value[0] = entry.fn.apply(null, args); if (normalizeResult && oldValueCopy && !valueIs(oldValueCopy, entry.value)) { try { entry.value[0] = normalizeResult(entry.value[0], oldValueCopy[0]); } catch (_a2) { } } } catch (e2) { entry.value[1] = e2; } entry.recomputing = false; } function mightBeDirty(entry) { return entry.dirty || !!(entry.dirtyChildren && entry.dirtyChildren.size); } function setClean(entry) { entry.dirty = false; if (mightBeDirty(entry)) { return; } reportClean(entry); } function reportDirty(child) { eachParent(child, reportDirtyChild); } function reportClean(child) { eachParent(child, reportCleanChild); } function eachParent(child, callback) { const parentCount = child.parents.size; if (parentCount) { const parents = arrayFromSet(child.parents); for (let i2 = 0; i2 < parentCount; ++i2) { callback(parents[i2], child); } } } function reportDirtyChild(parent, child) { assert(parent.childValues.has(child)); assert(mightBeDirty(child)); const parentWasClean = !mightBeDirty(parent); if (!parent.dirtyChildren) { parent.dirtyChildren = emptySetPool.pop() || /* @__PURE__ */ new Set(); } else if (parent.dirtyChildren.has(child)) { return; } parent.dirtyChildren.add(child); if (parentWasClean) { reportDirty(parent); } } function reportCleanChild(parent, child) { assert(parent.childValues.has(child)); assert(!mightBeDirty(child)); const childValue = parent.childValues.get(child); if (childValue.length === 0) { parent.childValues.set(child, valueCopy(child.value)); } else if (!valueIs(childValue, child.value)) { parent.setDirty(); } removeDirtyChild(parent, child); if (mightBeDirty(parent)) { return; } reportClean(parent); } function removeDirtyChild(parent, child) { const dc = parent.dirtyChildren; if (dc) { dc.delete(child); if (dc.size === 0) { if (emptySetPool.length < POOL_TARGET_SIZE) { emptySetPool.push(dc); } parent.dirtyChildren = null; } } } function forgetChildren(parent) { if (parent.childValues.size > 0) { parent.childValues.forEach((_value, child) => { forgetChild(parent, child); }); } parent.forgetDeps(); assert(parent.dirtyChildren === null); } function forgetChild(parent, child) { child.parents.delete(parent); parent.childValues.delete(child); removeDirtyChild(parent, child); } function maybeSubscribe(entry, args) { if (typeof entry.subscribe === "function") { try { maybeUnsubscribe(entry); entry.unsubscribe = entry.subscribe.apply(null, args); } catch (e2) { entry.setDirty(); return false; } } return true; } const EntryMethods = { setDirty: true, dispose: true, forget: true }; function dep(options) { const depsByKey = /* @__PURE__ */ new Map(); const subscribe = options && options.subscribe; function depend(key) { const parent = parentEntrySlot.getValue(); if (parent) { let dep2 = depsByKey.get(key); if (!dep2) { depsByKey.set(key, dep2 = /* @__PURE__ */ new Set()); } parent.dependOn(dep2); if (typeof subscribe === "function") { maybeUnsubscribe(dep2); dep2.unsubscribe = subscribe(key); } } } depend.dirty = function dirty(key, entryMethodName) { const dep2 = depsByKey.get(key); if (dep2) { const m = entryMethodName && hasOwnProperty$6.call(EntryMethods, entryMethodName) ? entryMethodName : "setDirty"; arrayFromSet(dep2).forEach((entry) => entry[m]()); depsByKey.delete(key); maybeUnsubscribe(dep2); } }; return depend; } let defaultKeyTrie; function defaultMakeCacheKey(...args) { const trie = defaultKeyTrie || (defaultKeyTrie = new Trie(typeof WeakMap === "function")); return trie.lookupArray(args); } const caches = /* @__PURE__ */ new Set(); function wrap(originalFunction, { max: max2 = Math.pow(2, 16), keyArgs, makeCacheKey = defaultMakeCacheKey, normalizeResult, subscribe, cache: cacheOption = StrongCache } = /* @__PURE__ */ Object.create(null)) { const cache2 = typeof cacheOption === "function" ? new cacheOption(max2, (entry) => entry.dispose()) : cacheOption; const optimistic = function() { const key = makeCacheKey.apply(null, keyArgs ? keyArgs.apply(null, arguments) : arguments); if (key === void 0) { return originalFunction.apply(null, arguments); } let entry = cache2.get(key); if (!entry) { cache2.set(key, entry = new Entry(originalFunction)); entry.normalizeResult = normalizeResult; entry.subscribe = subscribe; entry.forget = () => cache2.delete(key); } const value = entry.recompute(Array.prototype.slice.call(arguments)); cache2.set(key, entry); caches.add(cache2); if (!parentEntrySlot.hasValue()) { caches.forEach((cache3) => cache3.clean()); caches.clear(); } return value; }; Object.defineProperty(optimistic, "size", { get: () => cache2.size, configurable: false, enumerable: false }); Object.freeze(optimistic.options = { max: max2, keyArgs, makeCacheKey, normalizeResult, subscribe, cache: cache2 }); function dirtyKey(key) { const entry = key && cache2.get(key); if (entry) { entry.setDirty(); } } optimistic.dirtyKey = dirtyKey; optimistic.dirty = function dirty() { dirtyKey(makeCacheKey.apply(null, arguments)); }; function peekKey(key) { const entry = key && cache2.get(key); if (entry) { return entry.peek(); } } optimistic.peekKey = peekKey; optimistic.peek = function peek() { return peekKey(makeCacheKey.apply(null, arguments)); }; function forgetKey(key) { return key ? cache2.delete(key) : false; } optimistic.forgetKey = forgetKey; optimistic.forget = function forget() { return forgetKey(makeCacheKey.apply(null, arguments)); }; optimistic.makeCacheKey = makeCacheKey; optimistic.getKey = keyArgs ? function getKey() { return makeCacheKey.apply(null, keyArgs.apply(null, arguments)); } : makeCacheKey; return Object.freeze(optimistic); } function identity(document2) { return document2; } var DocumentTransform = function() { function DocumentTransform2(transform2, options) { if (options === void 0) { options = /* @__PURE__ */ Object.create(null); } this.resultCache = canUseWeakSet ? /* @__PURE__ */ new WeakSet() : /* @__PURE__ */ new Set(); this.transform = transform2; if (options.getCacheKey) { this.getCacheKey = options.getCacheKey; } this.cached = options.cache !== false; this.resetCache(); } DocumentTransform2.prototype.getCacheKey = function(document2) { return [document2]; }; DocumentTransform2.identity = function() { return new DocumentTransform2(identity, { cache: false }); }; DocumentTransform2.split = function(predicate, left, right) { if (right === void 0) { right = DocumentTransform2.identity(); } return Object.assign(new DocumentTransform2( function(document2) { var documentTransform = predicate(document2) ? left : right; return documentTransform.transformDocument(document2); }, { cache: false } ), { left, right }); }; DocumentTransform2.prototype.resetCache = function() { var _this = this; if (this.cached) { var stableCacheKeys_1 = new Trie(canUseWeakMap); this.performWork = wrap(DocumentTransform2.prototype.performWork.bind(this), { makeCacheKey: function(document2) { var cacheKeys = _this.getCacheKey(document2); if (cacheKeys) { invariant(Array.isArray(cacheKeys), 69); return stableCacheKeys_1.lookupArray(cacheKeys); } }, max: cacheSizes["documentTransform.cache"], cache: WeakCache }); } }; DocumentTransform2.prototype.performWork = function(document2) { checkDocument(document2); return this.transform(document2); }; DocumentTransform2.prototype.transformDocument = function(document2) { if (this.resultCache.has(document2)) { return document2; } var transformedDocument = this.performWork(document2); this.resultCache.add(transformedDocument); return transformedDocument; }; DocumentTransform2.prototype.concat = function(otherTransform) { var _this = this; return Object.assign(new DocumentTransform2( function(document2) { return otherTransform.transformDocument(_this.transformDocument(document2)); }, { cache: false } ), { left: this, right: otherTransform }); }; return DocumentTransform2; }(); var printCache; var print = Object.assign(function(ast) { var result2 = printCache.get(ast); if (!result2) { result2 = print$1(ast); printCache.set(ast, result2); } return result2; }, { reset: function() { printCache = new AutoCleanedWeakCache(cacheSizes.print || 2e3); } }); print.reset(); if (globalThis.__DEV__ !== false) { registerGlobalCache("print", function() { return printCache ? printCache.size : 0; }); } var isArray$1 = Array.isArray; function isNonEmptyArray(value) { return Array.isArray(value) && value.length > 0; } var TYPENAME_FIELD = { kind: Kind.FIELD, name: { kind: Kind.NAME, value: "__typename" } }; function isEmpty(op, fragmentMap) { return !op || op.selectionSet.selections.every(function(selection) { return selection.kind === Kind.FRAGMENT_SPREAD && isEmpty(fragmentMap[selection.name.value], fragmentMap); }); } function nullIfDocIsEmpty(doc2) { return isEmpty(getOperationDefinition(doc2) || getFragmentDefinition(doc2), createFragmentMap(getFragmentDefinitions(doc2))) ? null : doc2; } function getDirectiveMatcher(configs) { var names = /* @__PURE__ */ new Map(); var tests = /* @__PURE__ */ new Map(); configs.forEach(function(directive) { if (directive) { if (directive.name) { names.set(directive.name, directive); } else if (directive.test) { tests.set(directive.test, directive); } } }); return function(directive) { var config = names.get(directive.name.value); if (!config && tests.size) { tests.forEach(function(testConfig, test) { if (test(directive)) { config = testConfig; } }); } return config; }; } function makeInUseGetterFunction(defaultKey) { var map2 = /* @__PURE__ */ new Map(); return function inUseGetterFunction(key) { if (key === void 0) { key = defaultKey; } var inUse = map2.get(key); if (!inUse) { map2.set(key, inUse = { variables: /* @__PURE__ */ new Set(), fragmentSpreads: /* @__PURE__ */ new Set() }); } return inUse; }; } function removeDirectivesFromDocument(directives, doc2) { checkDocument(doc2); var getInUseByOperationName = makeInUseGetterFunction(""); var getInUseByFragmentName = makeInUseGetterFunction(""); var getInUse = function(ancestors) { for (var p2 = 0, ancestor = void 0; p2 < ancestors.length && (ancestor = ancestors[p2]); ++p2) { if (isArray$1(ancestor)) continue; if (ancestor.kind === Kind.OPERATION_DEFINITION) { return getInUseByOperationName(ancestor.name && ancestor.name.value); } if (ancestor.kind === Kind.FRAGMENT_DEFINITION) { return getInUseByFragmentName(ancestor.name.value); } } globalThis.__DEV__ !== false && invariant.error(86); return null; }; var operationCount = 0; for (var i2 = doc2.definitions.length - 1; i2 >= 0; --i2) { if (doc2.definitions[i2].kind === Kind.OPERATION_DEFINITION) { ++operationCount; } } var directiveMatcher = getDirectiveMatcher(directives); var shouldRemoveField = function(nodeDirectives) { return isNonEmptyArray(nodeDirectives) && nodeDirectives.map(directiveMatcher).some(function(config) { return config && config.remove; }); }; var originalFragmentDefsByPath = /* @__PURE__ */ new Map(); var firstVisitMadeChanges = false; var fieldOrInlineFragmentVisitor = { enter: function(node) { if (shouldRemoveField(node.directives)) { firstVisitMadeChanges = true; return null; } } }; var docWithoutDirectiveSubtrees = visit(doc2, { Field: fieldOrInlineFragmentVisitor, InlineFragment: fieldOrInlineFragmentVisitor, VariableDefinition: { enter: function() { return false; } }, Variable: { enter: function(node, _key, _parent, _path, ancestors) { var inUse = getInUse(ancestors); if (inUse) { inUse.variables.add(node.name.value); } } }, FragmentSpread: { enter: function(node, _key, _parent, _path, ancestors) { if (shouldRemoveField(node.directives)) { firstVisitMadeChanges = true; return null; } var inUse = getInUse(ancestors); if (inUse) { inUse.fragmentSpreads.add(node.name.value); } } }, FragmentDefinition: { enter: function(node, _key, _parent, path) { originalFragmentDefsByPath.set(JSON.stringify(path), node); }, leave: function(node, _key, _parent, path) { var originalNode = originalFragmentDefsByPath.get(JSON.stringify(path)); if (node === originalNode) { return node; } if (operationCount > 0 && node.selectionSet.selections.every(function(selection) { return selection.kind === Kind.FIELD && selection.name.value === "__typename"; })) { getInUseByFragmentName(node.name.value).removed = true; firstVisitMadeChanges = true; return null; } } }, Directive: { leave: function(node) { if (directiveMatcher(node)) { firstVisitMadeChanges = true; return null; } } } }); if (!firstVisitMadeChanges) { return doc2; } var populateTransitiveVars = function(inUse) { if (!inUse.transitiveVars) { inUse.transitiveVars = new Set(inUse.variables); if (!inUse.removed) { inUse.fragmentSpreads.forEach(function(childFragmentName) { populateTransitiveVars(getInUseByFragmentName(childFragmentName)).transitiveVars.forEach(function(varName) { inUse.transitiveVars.add(varName); }); }); } } return inUse; }; var allFragmentNamesUsed = /* @__PURE__ */ new Set(); docWithoutDirectiveSubtrees.definitions.forEach(function(def2) { if (def2.kind === Kind.OPERATION_DEFINITION) { populateTransitiveVars(getInUseByOperationName(def2.name && def2.name.value)).fragmentSpreads.forEach(function(childFragmentName) { allFragmentNamesUsed.add(childFragmentName); }); } else if (def2.kind === Kind.FRAGMENT_DEFINITION && operationCount === 0 && !getInUseByFragmentName(def2.name.value).removed) { allFragmentNamesUsed.add(def2.name.value); } }); allFragmentNamesUsed.forEach(function(fragmentName) { populateTransitiveVars(getInUseByFragmentName(fragmentName)).fragmentSpreads.forEach(function(childFragmentName) { allFragmentNamesUsed.add(childFragmentName); }); }); var fragmentWillBeRemoved = function(fragmentName) { return !!(!allFragmentNamesUsed.has(fragmentName) || getInUseByFragmentName(fragmentName).removed); }; var enterVisitor = { enter: function(node) { if (fragmentWillBeRemoved(node.name.value)) { return null; } } }; return nullIfDocIsEmpty(visit(docWithoutDirectiveSubtrees, { FragmentSpread: enterVisitor, FragmentDefinition: enterVisitor, OperationDefinition: { leave: function(node) { if (node.variableDefinitions) { var usedVariableNames_1 = populateTransitiveVars( getInUseByOperationName(node.name && node.name.value) ).transitiveVars; if (usedVariableNames_1.size < node.variableDefinitions.length) { return __assign$1(__assign$1({}, node), { variableDefinitions: node.variableDefinitions.filter(function(varDef) { return usedVariableNames_1.has(varDef.variable.name.value); }) }); } } } } })); } var addTypenameToDocument = Object.assign(function(doc2) { return visit(doc2, { SelectionSet: { enter: function(node, _key, parent) { if (parent && parent.kind === Kind.OPERATION_DEFINITION) { return; } var selections = node.selections; if (!selections) { return; } var skip = selections.some(function(selection) { return isField(selection) && (selection.name.value === "__typename" || selection.name.value.lastIndexOf("__", 0) === 0); }); if (skip) { return; } var field = parent; if (isField(field) && field.directives && field.directives.some(function(d) { return d.name.value === "export"; })) { return; } return __assign$1(__assign$1({}, node), { selections: __spreadArray$1(__spreadArray$1([], selections, true), [TYPENAME_FIELD], false) }); } } }); }, { added: function(field) { return field === TYPENAME_FIELD; } }); function buildQueryFromSelectionSet(document2) { var definition = getMainDefinition(document2); var definitionOperation = definition.operation; if (definitionOperation === "query") { return document2; } var modifiedDoc = visit(document2, { OperationDefinition: { enter: function(node) { return __assign$1(__assign$1({}, node), { operation: "query" }); } } }); return modifiedDoc; } function removeClientSetsFromDocument(document2) { checkDocument(document2); var modifiedDoc = removeDirectivesFromDocument([ { test: function(directive) { return directive.name.value === "client"; }, remove: true } ], document2); return modifiedDoc; } var hasOwnProperty$5 = Object.prototype.hasOwnProperty; function mergeDeep() { var sources = []; for (var _i = 0; _i < arguments.length; _i++) { sources[_i] = arguments[_i]; } return mergeDeepArray(sources); } function mergeDeepArray(sources) { var target = sources[0] || {}; var count = sources.length; if (count > 1) { var merger = new DeepMerger(); for (var i2 = 1; i2 < count; ++i2) { target = merger.merge(target, sources[i2]); } } return target; } var defaultReconciler = function(target, source, property) { return this.merge(target[property], source[property]); }; var DeepMerger = function() { function DeepMerger2(reconciler) { if (reconciler === void 0) { reconciler = defaultReconciler; } this.reconciler = reconciler; this.isObject = isNonNullObject; this.pastCopies = /* @__PURE__ */ new Set(); } DeepMerger2.prototype.merge = function(target, source) { var _this = this; var context = []; for (var _i = 2; _i < arguments.length; _i++) { context[_i - 2] = arguments[_i]; } if (isNonNullObject(source) && isNonNullObject(target)) { Object.keys(source).forEach(function(sourceKey) { if (hasOwnProperty$5.call(target, sourceKey)) { var targetValue = target[sourceKey]; if (source[sourceKey] !== targetValue) { var result2 = _this.reconciler.apply(_this, __spreadArray$1([ target, source, sourceKey ], context, false)); if (result2 !== targetValue) { target = _this.shallowCopyForMerge(target); target[sourceKey] = result2; } } } else { target = _this.shallowCopyForMerge(target); target[sourceKey] = source[sourceKey]; } }); return target; } return source; }; DeepMerger2.prototype.shallowCopyForMerge = function(value) { if (isNonNullObject(value)) { if (!this.pastCopies.has(value)) { if (Array.isArray(value)) { value = value.slice(0); } else { value = __assign$1({ __proto__: Object.getPrototypeOf(value) }, value); } this.pastCopies.add(value); } } return value; }; return DeepMerger2; }(); function _createForOfIteratorHelperLoose$6(o2, allowArrayLike) { var it = typeof Symbol !== "undefined" && o2[Symbol.iterator] || o2["@@iterator"]; if (it) return (it = it.call(o2)).next.bind(it); if (Array.isArray(o2) || (it = _unsupportedIterableToArray$8(o2)) || allowArrayLike && o2 && typeof o2.length === "number") { if (it) o2 = it; var i2 = 0; return function() { if (i2 >= o2.length) return { done: true }; return { done: false, value: o2[i2++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray$8(o2, minLen) { if (!o2) return; if (typeof o2 === "string") return _arrayLikeToArray$8(o2, minLen); var n2 = Object.prototype.toString.call(o2).slice(8, -1); if (n2 === "Object" && o2.constructor) n2 = o2.constructor.name; if (n2 === "Map" || n2 === "Set") return Array.from(o2); if (n2 === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n2)) return _arrayLikeToArray$8(o2, minLen); } function _arrayLikeToArray$8(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i2 = 0, arr2 = new Array(len); i2 < len; i2++) { arr2[i2] = arr[i2]; } return arr2; } function _defineProperties$4(target, props) { for (var i2 = 0; i2 < props.length; i2++) { var descriptor = props[i2]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass$4(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$4(Constructor.prototype, protoProps); if (staticProps) _defineProperties$4(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } var hasSymbols = function() { return typeof Symbol === "function"; }; var hasSymbol = function(name) { return hasSymbols() && Boolean(Symbol[name]); }; var getSymbol = function(name) { return hasSymbol(name) ? Symbol[name] : "@@" + name; }; if (hasSymbols() && !hasSymbol("observable")) { Symbol.observable = Symbol("observable"); } var SymbolIterator = getSymbol("iterator"); var SymbolObservable = getSymbol("observable"); var SymbolSpecies = getSymbol("species"); function getMethod(obj, key) { var value = obj[key]; if (value == null) return void 0; if (typeof value !== "function") throw new TypeError(value + " is not a function"); return value; } function getSpecies(obj) { var ctor = obj.constructor; if (ctor !== void 0) { ctor = ctor[SymbolSpecies]; if (ctor === null) { ctor = void 0; } } return ctor !== void 0 ? ctor : Observable; } function isObservable(x) { return x instanceof Observable; } function hostReportError(e2) { if (hostReportError.log) { hostReportError.log(e2); } else { setTimeout(function() { throw e2; }); } } function enqueue(fn) { Promise.resolve().then(function() { try { fn(); } catch (e2) { hostReportError(e2); } }); } function cleanupSubscription(subscription) { var cleanup = subscription._cleanup; if (cleanup === void 0) return; subscription._cleanup = void 0; if (!cleanup) { return; } try { if (typeof cleanup === "function") { cleanup(); } else { var unsubscribe = getMethod(cleanup, "unsubscribe"); if (unsubscribe) { unsubscribe.call(cleanup); } } } catch (e2) { hostReportError(e2); } } function closeSubscription(subscription) { subscription._observer = void 0; subscription._queue = void 0; subscription._state = "closed"; } function flushSubscription(subscription) { var queue2 = subscription._queue; if (!queue2) { return; } subscription._queue = void 0; subscription._state = "ready"; for (var i2 = 0; i2 < queue2.length; ++i2) { notifySubscription(subscription, queue2[i2].type, queue2[i2].value); if (subscription._state === "closed") break; } } function notifySubscription(subscription, type, value) { subscription._state = "running"; var observer = subscription._observer; try { var m = getMethod(observer, type); switch (type) { case "next": if (m) m.call(observer, value); break; case "error": closeSubscription(subscription); if (m) m.call(observer, value); else throw value; break; case "complete": closeSubscription(subscription); if (m) m.call(observer); break; } } catch (e2) { hostReportError(e2); } if (subscription._state === "closed") cleanupSubscription(subscription); else if (subscription._state === "running") subscription._state = "ready"; } function onNotify(subscription, type, value) { if (subscription._state === "closed") return; if (subscription._state === "buffering") { subscription._queue.push({ type, value }); return; } if (subscription._state !== "ready") { subscription._state = "buffering"; subscription._queue = [{ type, value }]; enqueue(function() { return flushSubscription(subscription); }); return; } notifySubscription(subscription, type, value); } var Subscription = /* @__PURE__ */ function() { function Subscription2(observer, subscriber) { this._cleanup = void 0; this._observer = observer; this._queue = void 0; this._state = "initializing"; var subscriptionObserver = new SubscriptionObserver(this); try { this._cleanup = subscriber.call(void 0, subscriptionObserver); } catch (e2) { subscriptionObserver.error(e2); } if (this._state === "initializing") this._state = "ready"; } var _proto = Subscription2.prototype; _proto.unsubscribe = function unsubscribe() { if (this._state !== "closed") { closeSubscription(this); cleanupSubscription(this); } }; _createClass$4(Subscription2, [{ key: "closed", get: function() { return this._state === "closed"; } }]); return Subscription2; }(); var SubscriptionObserver = /* @__PURE__ */ function() { function SubscriptionObserver2(subscription) { this._subscription = subscription; } var _proto2 = SubscriptionObserver2.prototype; _proto2.next = function next(value) { onNotify(this._subscription, "next", value); }; _proto2.error = function error(value) { onNotify(this._subscription, "error", value); }; _proto2.complete = function complete() { onNotify(this._subscription, "complete"); }; _createClass$4(SubscriptionObserver2, [{ key: "closed", get: function() { return this._subscription._state === "closed"; } }]); return SubscriptionObserver2; }(); var Observable = /* @__PURE__ */ function() { function Observable2(subscriber) { if (!(this instanceof Observable2)) throw new TypeError("Observable cannot be called as a function"); if (typeof subscriber !== "function") throw new TypeError("Observable initializer must be a function"); this._subscriber = subscriber; } var _proto3 = Observable2.prototype; _proto3.subscribe = function subscribe(observer) { if (typeof observer !== "object" || observer === null) { observer = { next: observer, error: arguments[1], complete: arguments[2] }; } return new Subscription(observer, this._subscriber); }; _proto3.forEach = function forEach2(fn) { var _this = this; return new Promise(function(resolve2, reject) { if (typeof fn !== "function") { reject(new TypeError(fn + " is not a function")); return; } function done() { subscription.unsubscribe(); resolve2(); } var subscription = _this.subscribe({ next: function(value) { try { fn(value, done); } catch (e2) { reject(e2); subscription.unsubscribe(); } }, error: reject, complete: resolve2 }); }); }; _proto3.map = function map2(fn) { var _this2 = this; if (typeof fn !== "function") throw new TypeError(fn + " is not a function"); var C = getSpecies(this); return new C(function(observer) { return _this2.subscribe({ next: function(value) { try { value = fn(value); } catch (e2) { return observer.error(e2); } observer.next(value); }, error: function(e2) { observer.error(e2); }, complete: function() { observer.complete(); } }); }); }; _proto3.filter = function filter(fn) { var _this3 = this; if (typeof fn !== "function") throw new TypeError(fn + " is not a function"); var C = getSpecies(this); return new C(function(observer) { return _this3.subscribe({ next: function(value) { try { if (!fn(value)) return; } catch (e2) { return observer.error(e2); } observer.next(value); }, error: function(e2) { observer.error(e2); }, complete: function() { observer.complete(); } }); }); }; _proto3.reduce = function reduce2(fn) { var _this4 = this; if (typeof fn !== "function") throw new TypeError(fn + " is not a function"); var C = getSpecies(this); var hasSeed = arguments.length > 1; var hasValue = false; var seed = arguments[1]; var acc = seed; return new C(function(observer) { return _this4.subscribe({ next: function(value) { var first = !hasValue; hasValue = true; if (!first || hasSeed) { try { acc = fn(acc, value); } catch (e2) { return observer.error(e2); } } else { acc = value; } }, error: function(e2) { observer.error(e2); }, complete: function() { if (!hasValue && !hasSeed) return observer.error(new TypeError("Cannot reduce an empty sequence")); observer.next(acc); observer.complete(); } }); }); }; _proto3.concat = function concat() { var _this5 = this; for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) { sources[_key] = arguments[_key]; } var C = getSpecies(this); return new C(function(observer) { var subscription; var index2 = 0; function startNext(next) { subscription = next.subscribe({ next: function(v) { observer.next(v); }, error: function(e2) { observer.error(e2); }, complete: function() { if (index2 === sources.length) { subscription = void 0; observer.complete(); } else { startNext(C.from(sources[index2++])); } } }); } startNext(_this5); return function() { if (subscription) { subscription.unsubscribe(); subscription = void 0; } }; }); }; _proto3.flatMap = function flatMap(fn) { var _this6 = this; if (typeof fn !== "function") throw new TypeError(fn + " is not a function"); var C = getSpecies(this); return new C(function(observer) { var subscriptions = []; var outer = _this6.subscribe({ next: function(value) { if (fn) { try { value = fn(value); } catch (e2) { return observer.error(e2); } } var inner = C.from(value).subscribe({ next: function(value2) { observer.next(value2); }, error: function(e2) { observer.error(e2); }, complete: function() { var i2 = subscriptions.indexOf(inner); if (i2 >= 0) subscriptions.splice(i2, 1); completeIfDone(); } }); subscriptions.push(inner); }, error: function(e2) { observer.error(e2); }, complete: function() { completeIfDone(); } }); function completeIfDone() { if (outer.closed && subscriptions.length === 0) observer.complete(); } return function() { subscriptions.forEach(function(s) { return s.unsubscribe(); }); outer.unsubscribe(); }; }); }; _proto3[SymbolObservable] = function() { return this; }; Observable2.from = function from2(x) { var C = typeof this === "function" ? this : Observable2; if (x == null) throw new TypeError(x + " is not an object"); var method = getMethod(x, SymbolObservable); if (method) { var observable = method.call(x); if (Object(observable) !== observable) throw new TypeError(observable + " is not an object"); if (isObservable(observable) && observable.constructor === C) return observable; return new C(function(observer) { return observable.subscribe(observer); }); } if (hasSymbol("iterator")) { method = getMethod(x, SymbolIterator); if (method) { return new C(function(observer) { enqueue(function() { if (observer.closed) return; for (var _iterator = _createForOfIteratorHelperLoose$6(method.call(x)), _step; !(_step = _iterator()).done; ) { var item = _step.value; observer.next(item); if (observer.closed) return; } observer.complete(); }); }); } } if (Array.isArray(x)) { return new C(function(observer) { enqueue(function() { if (observer.closed) return; for (var i2 = 0; i2 < x.length; ++i2) { observer.next(x[i2]); if (observer.closed) return; } observer.complete(); }); }); } throw new TypeError(x + " is not observable"); }; Observable2.of = function of() { for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { items[_key2] = arguments[_key2]; } var C = typeof this === "function" ? this : Observable2; return new C(function(observer) { enqueue(function() { if (observer.closed) return; for (var i2 = 0; i2 < items.length; ++i2) { observer.next(items[i2]); if (observer.closed) return; } observer.complete(); }); }); }; _createClass$4(Observable2, null, [{ key: SymbolSpecies, get: function() { return this; } }]); return Observable2; }(); if (hasSymbols()) { Object.defineProperty(Observable, Symbol("extensions"), { value: { symbol: SymbolObservable, hostReportError }, configurable: true }); } function symbolObservablePonyfill$1(root2) { var result2; var Symbol2 = root2.Symbol; if (typeof Symbol2 === "function") { if (Symbol2.observable) { result2 = Symbol2.observable; } else { if (typeof Symbol2.for === "function") { result2 = Symbol2.for("https://github.com/benlesh/symbol-observable"); } else { result2 = Symbol2("https://github.com/benlesh/symbol-observable"); } try { Symbol2.observable = result2; } catch (err) { } } } else { result2 = "@@observable"; } return result2; } var root$1; if (typeof self !== "undefined") { root$1 = self; } else if (typeof window !== "undefined") { root$1 = window; } else if (typeof global !== "undefined") { root$1 = global; } else if (typeof module !== "undefined") { root$1 = module; } else { root$1 = Function("return this")(); } symbolObservablePonyfill$1(root$1); var prototype = Observable.prototype; var fakeObsSymbol = "@@observable"; if (!prototype[fakeObsSymbol]) { prototype[fakeObsSymbol] = function() { return this; }; } var toString$1 = Object.prototype.toString; function cloneDeep(value) { return cloneDeepHelper(value); } function cloneDeepHelper(val, seen) { switch (toString$1.call(val)) { case "[object Array]": { seen = seen || /* @__PURE__ */ new Map(); if (seen.has(val)) return seen.get(val); var copy_1 = val.slice(0); seen.set(val, copy_1); copy_1.forEach(function(child, i2) { copy_1[i2] = cloneDeepHelper(child, seen); }); return copy_1; } case "[object Object]": { seen = seen || /* @__PURE__ */ new Map(); if (seen.has(val)) return seen.get(val); var copy_2 = Object.create(Object.getPrototypeOf(val)); seen.set(val, copy_2); Object.keys(val).forEach(function(key) { copy_2[key] = cloneDeepHelper(val[key], seen); }); return copy_2; } default: return val; } } function deepFreeze(value) { var workSet = /* @__PURE__ */ new Set([value]); workSet.forEach(function(obj) { if (isNonNullObject(obj) && shallowFreeze(obj) === obj) { Object.getOwnPropertyNames(obj).forEach(function(name) { if (isNonNullObject(obj[name])) workSet.add(obj[name]); }); } }); return value; } function shallowFreeze(obj) { if (globalThis.__DEV__ !== false && !Object.isFrozen(obj)) { try { Object.freeze(obj); } catch (e2) { if (e2 instanceof TypeError) return null; throw e2; } } return obj; } function maybeDeepFreeze(obj) { if (globalThis.__DEV__ !== false) { deepFreeze(obj); } return obj; } function iterateObserversSafely(observers, method, argument) { var observersWithMethod = []; observers.forEach(function(obs) { return obs[method] && observersWithMethod.push(obs); }); observersWithMethod.forEach(function(obs) { return obs[method](argument); }); } function asyncMap(observable, mapFn, catchFn) { return new Observable(function(observer) { var promiseQueue = { then: function(callback) { return new Promise(function(resolve2) { return resolve2(callback()); }); } }; function makeCallback(examiner, key) { return function(arg) { if (examiner) { var both = function() { return observer.closed ? 0 : examiner(arg); }; promiseQueue = promiseQueue.then(both, both).then(function(result2) { return observer.next(result2); }, function(error) { return observer.error(error); }); } else { observer[key](arg); } }; } var handler = { next: makeCallback(mapFn, "next"), error: makeCallback(catchFn, "error"), complete: function() { promiseQueue.then(function() { return observer.complete(); }); } }; var sub = observable.subscribe(handler); return function() { return sub.unsubscribe(); }; }); } function fixObservableSubclass(subclass) { function set2(key) { Object.defineProperty(subclass, key, { value: Observable }); } if (canUseSymbol && Symbol.species) { set2(Symbol.species); } set2("@@species"); return subclass; } function isPromiseLike(value) { return value && typeof value.then === "function"; } var Concast = function(_super) { __extends(Concast2, _super); function Concast2(sources) { var _this = _super.call(this, function(observer) { _this.addObserver(observer); return function() { return _this.removeObserver(observer); }; }) || this; _this.observers = /* @__PURE__ */ new Set(); _this.promise = new Promise(function(resolve2, reject) { _this.resolve = resolve2; _this.reject = reject; }); _this.handlers = { next: function(result2) { if (_this.sub !== null) { _this.latest = ["next", result2]; _this.notify("next", result2); iterateObserversSafely(_this.observers, "next", result2); } }, error: function(error) { var sub = _this.sub; if (sub !== null) { if (sub) setTimeout(function() { return sub.unsubscribe(); }); _this.sub = null; _this.latest = ["error", error]; _this.reject(error); _this.notify("error", error); iterateObserversSafely(_this.observers, "error", error); } }, complete: function() { var _a2 = _this, sub = _a2.sub, _b = _a2.sources, sources2 = _b === void 0 ? [] : _b; if (sub !== null) { var value = sources2.shift(); if (!value) { if (sub) setTimeout(function() { return sub.unsubscribe(); }); _this.sub = null; if (_this.latest && _this.latest[0] === "next") { _this.resolve(_this.latest[1]); } else { _this.resolve(); } _this.notify("complete"); iterateObserversSafely(_this.observers, "complete"); } else if (isPromiseLike(value)) { value.then(function(obs) { return _this.sub = obs.subscribe(_this.handlers); }, _this.handlers.error); } else { _this.sub = value.subscribe(_this.handlers); } } } }; _this.nextResultListeners = /* @__PURE__ */ new Set(); _this.cancel = function(reason) { _this.reject(reason); _this.sources = []; _this.handlers.error(reason); }; _this.promise.catch(function(_) { }); if (typeof sources === "function") { sources = [new Observable(sources)]; } if (isPromiseLike(sources)) { sources.then(function(iterable) { return _this.start(iterable); }, _this.handlers.error); } else { _this.start(sources); } return _this; } Concast2.prototype.start = function(sources) { if (this.sub !== void 0) return; this.sources = Array.from(sources); this.handlers.complete(); }; Concast2.prototype.deliverLastMessage = function(observer) { if (this.latest) { var nextOrError = this.latest[0]; var method = observer[nextOrError]; if (method) { method.call(observer, this.latest[1]); } if (this.sub === null && nextOrError === "next" && observer.complete) { observer.complete(); } } }; Concast2.prototype.addObserver = function(observer) { if (!this.observers.has(observer)) { this.deliverLastMessage(observer); this.observers.add(observer); } }; Concast2.prototype.removeObserver = function(observer) { if (this.observers.delete(observer) && this.observers.size < 1) { this.handlers.complete(); } }; Concast2.prototype.notify = function(method, arg) { var nextResultListeners = this.nextResultListeners; if (nextResultListeners.size) { this.nextResultListeners = /* @__PURE__ */ new Set(); nextResultListeners.forEach(function(listener) { return listener(method, arg); }); } }; Concast2.prototype.beforeNext = function(callback) { var called = false; this.nextResultListeners.add(function(method, arg) { if (!called) { called = true; callback(method, arg); } }); }; return Concast2; }(Observable); fixObservableSubclass(Concast); function isExecutionPatchIncrementalResult(value) { return "incremental" in value; } function isExecutionPatchInitialResult(value) { return "hasNext" in value && "data" in value; } function isExecutionPatchResult(value) { return isExecutionPatchIncrementalResult(value) || isExecutionPatchInitialResult(value); } function isApolloPayloadResult(value) { return isNonNullObject(value) && "payload" in value; } function mergeIncrementalData(prevResult, result2) { var mergedData = prevResult; var merger = new DeepMerger(); if (isExecutionPatchIncrementalResult(result2) && isNonEmptyArray(result2.incremental)) { result2.incremental.forEach(function(_a2) { var data2 = _a2.data, path = _a2.path; for (var i2 = path.length - 1; i2 >= 0; --i2) { var key = path[i2]; var isNumericKey = !isNaN(+key); var parent_1 = isNumericKey ? [] : {}; parent_1[key] = data2; data2 = parent_1; } mergedData = merger.merge(mergedData, data2); }); } return mergedData; } function graphQLResultHasError(result2) { var errors = getGraphQLErrorsFromResult(result2); return isNonEmptyArray(errors); } function getGraphQLErrorsFromResult(result2) { var graphQLErrors = isNonEmptyArray(result2.errors) ? result2.errors.slice(0) : []; if (isExecutionPatchIncrementalResult(result2) && isNonEmptyArray(result2.incremental)) { result2.incremental.forEach(function(incrementalResult) { if (incrementalResult.errors) { graphQLErrors.push.apply(graphQLErrors, incrementalResult.errors); } }); } return graphQLErrors; } function compact() { var objects = []; for (var _i = 0; _i < arguments.length; _i++) { objects[_i] = arguments[_i]; } var result2 = /* @__PURE__ */ Object.create(null); objects.forEach(function(obj) { if (!obj) return; Object.keys(obj).forEach(function(key) { var value = obj[key]; if (value !== void 0) { result2[key] = value; } }); }); return result2; } function mergeOptions(defaults2, options) { return compact(defaults2, options, options.variables && { variables: compact(__assign$1(__assign$1({}, defaults2 && defaults2.variables), options.variables)) }); } function fromError(errorValue) { return new Observable(function(observer) { observer.error(errorValue); }); } var throwServerError = function(response, result2, message) { var error = new Error(message); error.name = "ServerError"; error.response = response; error.statusCode = response.status; error.result = result2; throw error; }; function validateOperation(operation) { var OPERATION_FIELDS = [ "query", "operationName", "variables", "extensions", "context" ]; for (var _i = 0, _a2 = Object.keys(operation); _i < _a2.length; _i++) { var key = _a2[_i]; if (OPERATION_FIELDS.indexOf(key) < 0) { throw newInvariantError(44, key); } } return operation; } function createOperation(starting, operation) { var context = __assign$1({}, starting); var setContext = function(next) { if (typeof next === "function") { context = __assign$1(__assign$1({}, context), next(context)); } else { context = __assign$1(__assign$1({}, context), next); } }; var getContext2 = function() { return __assign$1({}, context); }; Object.defineProperty(operation, "setContext", { enumerable: false, value: setContext }); Object.defineProperty(operation, "getContext", { enumerable: false, value: getContext2 }); return operation; } function transformOperation(operation) { var transformedOperation = { variables: operation.variables || {}, extensions: operation.extensions || {}, operationName: operation.operationName, query: operation.query }; if (!transformedOperation.operationName) { transformedOperation.operationName = typeof transformedOperation.query !== "string" ? getOperationName(transformedOperation.query) || void 0 : ""; } return transformedOperation; } function filterOperationVariables(variables, query) { var result2 = __assign$1({}, variables); var unusedNames = new Set(Object.keys(variables)); visit(query, { Variable: function(node, _key, parent) { if (parent && parent.kind !== "VariableDefinition") { unusedNames.delete(node.name.value); } } }); unusedNames.forEach(function(name) { delete result2[name]; }); return result2; } function passthrough(op, forward) { return forward ? forward(op) : Observable.of(); } function toLink(handler) { return typeof handler === "function" ? new ApolloLink(handler) : handler; } function isTerminating(link2) { return link2.request.length <= 1; } var ApolloLink = function() { function ApolloLink2(request) { if (request) this.request = request; } ApolloLink2.empty = function() { return new ApolloLink2(function() { return Observable.of(); }); }; ApolloLink2.from = function(links) { if (links.length === 0) return ApolloLink2.empty(); return links.map(toLink).reduce(function(x, y) { return x.concat(y); }); }; ApolloLink2.split = function(test, left, right) { var leftLink = toLink(left); var rightLink = toLink(right || new ApolloLink2(passthrough)); var ret; if (isTerminating(leftLink) && isTerminating(rightLink)) { ret = new ApolloLink2(function(operation) { return test(operation) ? leftLink.request(operation) || Observable.of() : rightLink.request(operation) || Observable.of(); }); } else { ret = new ApolloLink2(function(operation, forward) { return test(operation) ? leftLink.request(operation, forward) || Observable.of() : rightLink.request(operation, forward) || Observable.of(); }); } return Object.assign(ret, { left: leftLink, right: rightLink }); }; ApolloLink2.execute = function(link2, operation) { return link2.request(createOperation(operation.context, transformOperation(validateOperation(operation)))) || Observable.of(); }; ApolloLink2.concat = function(first, second) { var firstLink = toLink(first); if (isTerminating(firstLink)) { globalThis.__DEV__ !== false && invariant.warn(36, firstLink); return firstLink; } var nextLink = toLink(second); var ret; if (isTerminating(nextLink)) { ret = new ApolloLink2(function(operation) { return firstLink.request(operation, function(op) { return nextLink.request(op) || Observable.of(); }) || Observable.of(); }); } else { ret = new ApolloLink2(function(operation, forward) { return firstLink.request(operation, function(op) { return nextLink.request(op, forward) || Observable.of(); }) || Observable.of(); }); } return Object.assign(ret, { left: firstLink, right: nextLink }); }; ApolloLink2.prototype.split = function(test, left, right) { return this.concat(ApolloLink2.split(test, left, right || new ApolloLink2(passthrough))); }; ApolloLink2.prototype.concat = function(next) { return ApolloLink2.concat(this, next); }; ApolloLink2.prototype.request = function(operation, forward) { throw newInvariantError(37); }; ApolloLink2.prototype.onError = function(error, observer) { if (observer && observer.error) { observer.error(error); return false; } throw error; }; ApolloLink2.prototype.setOnError = function(fn) { this.onError = fn; return this; }; return ApolloLink2; }(); var split = ApolloLink.split; var execute = ApolloLink.execute; function asyncIterator(source) { var _a2; var iterator2 = source[Symbol.asyncIterator](); return _a2 = { next: function() { return iterator2.next(); } }, _a2[Symbol.asyncIterator] = function() { return this; }, _a2; } function nodeStreamIterator(stream) { var cleanup = null; var error = null; var done = false; var data2 = []; var waiting = []; function onData(chunk) { if (error) return; if (waiting.length) { var shiftedArr = waiting.shift(); if (Array.isArray(shiftedArr) && shiftedArr[0]) { return shiftedArr[0]({ value: chunk, done: false }); } } data2.push(chunk); } function onError(err) { error = err; var all = waiting.slice(); all.forEach(function(pair) { pair[1](err); }); !cleanup || cleanup(); } function onEnd() { done = true; var all = waiting.slice(); all.forEach(function(pair) { pair[0]({ value: void 0, done: true }); }); !cleanup || cleanup(); } cleanup = function() { cleanup = null; stream.removeListener("data", onData); stream.removeListener("error", onError); stream.removeListener("end", onEnd); stream.removeListener("finish", onEnd); stream.removeListener("close", onEnd); }; stream.on("data", onData); stream.on("error", onError); stream.on("end", onEnd); stream.on("finish", onEnd); stream.on("close", onEnd); function getNext() { return new Promise(function(resolve2, reject) { if (error) return reject(error); if (data2.length) return resolve2({ value: data2.shift(), done: false }); if (done) return resolve2({ value: void 0, done: true }); waiting.push([resolve2, reject]); }); } var iterator2 = { next: function() { return getNext(); } }; if (canUseAsyncIteratorSymbol) { iterator2[Symbol.asyncIterator] = function() { return this; }; } return iterator2; } function promiseIterator(promise) { var resolved = false; var iterator2 = { next: function() { if (resolved) return Promise.resolve({ value: void 0, done: true }); resolved = true; return new Promise(function(resolve2, reject) { promise.then(function(value) { resolve2({ value, done: false }); }).catch(reject); }); } }; if (canUseAsyncIteratorSymbol) { iterator2[Symbol.asyncIterator] = function() { return this; }; } return iterator2; } function readerIterator(reader) { var iterator2 = { next: function() { return reader.read(); } }; if (canUseAsyncIteratorSymbol) { iterator2[Symbol.asyncIterator] = function() { return this; }; } return iterator2; } function isNodeResponse(value) { return !!value.body; } function isReadableStream(value) { return !!value.getReader; } function isAsyncIterableIterator(value) { return !!(canUseAsyncIteratorSymbol && value[Symbol.asyncIterator]); } function isStreamableBlob(value) { return !!value.stream; } function isBlob(value) { return !!value.arrayBuffer; } function isNodeReadableStream(value) { return !!value.pipe; } function responseIterator(response) { var body = response; if (isNodeResponse(response)) body = response.body; if (isAsyncIterableIterator(body)) return asyncIterator(body); if (isReadableStream(body)) return readerIterator(body.getReader()); if (isStreamableBlob(body)) { return readerIterator(body.stream().getReader()); } if (isBlob(body)) return promiseIterator(body.arrayBuffer()); if (isNodeReadableStream(body)) return nodeStreamIterator(body); throw new Error("Unknown body type for responseIterator. Please pass a streamable response."); } var PROTOCOL_ERRORS_SYMBOL = Symbol(); function graphQLResultHasProtocolErrors(result2) { if (result2.extensions) { return Array.isArray(result2.extensions[PROTOCOL_ERRORS_SYMBOL]); } return false; } function isApolloError(err) { return err.hasOwnProperty("graphQLErrors"); } var generateErrorMessage = function(err) { var errors = __spreadArray$1(__spreadArray$1(__spreadArray$1([], err.graphQLErrors, true), err.clientErrors, true), err.protocolErrors, true); if (err.networkError) errors.push(err.networkError); return errors.map(function(err2) { return isNonNullObject(err2) && err2.message || "Error message not found."; }).join("\n"); }; var ApolloError = function(_super) { __extends(ApolloError2, _super); function ApolloError2(_a2) { var graphQLErrors = _a2.graphQLErrors, protocolErrors = _a2.protocolErrors, clientErrors = _a2.clientErrors, networkError = _a2.networkError, errorMessage = _a2.errorMessage, extraInfo = _a2.extraInfo; var _this = _super.call(this, errorMessage) || this; _this.name = "ApolloError"; _this.graphQLErrors = graphQLErrors || []; _this.protocolErrors = protocolErrors || []; _this.clientErrors = clientErrors || []; _this.networkError = networkError || null; _this.message = errorMessage || generateErrorMessage(_this); _this.extraInfo = extraInfo; _this.cause = __spreadArray$1(__spreadArray$1(__spreadArray$1([ networkError ], graphQLErrors || [], true), protocolErrors || [], true), clientErrors || [], true).find(function(e2) { return !!e2; }) || null; _this.__proto__ = ApolloError2.prototype; return _this; } return ApolloError2; }(Error); var hasOwnProperty$4 = Object.prototype.hasOwnProperty; function readMultipartBody(response, nextValue) { return __awaiter$1(this, void 0, void 0, function() { var decoder, contentType, delimiter, boundaryVal, boundary, buffer2, iterator2, running, _a2, value, done, chunk, searchFrom, bi, message, i2, headers, contentType_1, body, result2, next; var _b, _c; var _d; return __generator$1(this, function(_e) { switch (_e.label) { case 0: if (TextDecoder === void 0) { throw new Error("TextDecoder must be defined in the environment: please import a polyfill."); } decoder = new TextDecoder("utf-8"); contentType = (_d = response.headers) === null || _d === void 0 ? void 0 : _d.get("content-type"); delimiter = "boundary="; boundaryVal = (contentType === null || contentType === void 0 ? void 0 : contentType.includes(delimiter)) ? contentType === null || contentType === void 0 ? void 0 : contentType.substring((contentType === null || contentType === void 0 ? void 0 : contentType.indexOf(delimiter)) + delimiter.length).replace(/['"]/g, "").replace(/\;(.*)/gm, "").trim() : "-"; boundary = "\r\n--".concat(boundaryVal); buffer2 = ""; iterator2 = responseIterator(response); running = true; _e.label = 1; case 1: if (!running) return [3, 3]; return [4, iterator2.next()]; case 2: _a2 = _e.sent(), value = _a2.value, done = _a2.done; chunk = typeof value === "string" ? value : decoder.decode(value); searchFrom = buffer2.length - boundary.length + 1; running = !done; buffer2 += chunk; bi = buffer2.indexOf(boundary, searchFrom); while (bi > -1) { message = void 0; _b = [ buffer2.slice(0, bi), buffer2.slice(bi + boundary.length) ], message = _b[0], buffer2 = _b[1]; i2 = message.indexOf("\r\n\r\n"); headers = parseHeaders(message.slice(0, i2)); contentType_1 = headers["content-type"]; if (contentType_1 && contentType_1.toLowerCase().indexOf("application/json") === -1) { throw new Error("Unsupported patch content type: application/json is required."); } body = message.slice(i2); if (body) { result2 = parseJsonBody(response, body); if (Object.keys(result2).length > 1 || "data" in result2 || "incremental" in result2 || "errors" in result2 || "payload" in result2) { if (isApolloPayloadResult(result2)) { next = {}; if ("payload" in result2) { if (Object.keys(result2).length === 1 && result2.payload === null) { return [2]; } next = __assign$1({}, result2.payload); } if ("errors" in result2) { next = __assign$1(__assign$1({}, next), { extensions: __assign$1(__assign$1({}, "extensions" in next ? next.extensions : null), (_c = {}, _c[PROTOCOL_ERRORS_SYMBOL] = result2.errors, _c)) }); } nextValue(next); } else { nextValue(result2); } } else if (Object.keys(result2).length === 1 && "hasNext" in result2 && !result2.hasNext) { return [2]; } } bi = buffer2.indexOf(boundary); } return [3, 1]; case 3: return [2]; } }); }); } function parseHeaders(headerText) { var headersInit = {}; headerText.split("\n").forEach(function(line) { var i2 = line.indexOf(":"); if (i2 > -1) { var name_1 = line.slice(0, i2).trim().toLowerCase(); var value = line.slice(i2 + 1).trim(); headersInit[name_1] = value; } }); return headersInit; } function parseJsonBody(response, bodyText) { if (response.status >= 300) { var getResult = function() { try { return JSON.parse(bodyText); } catch (err) { return bodyText; } }; throwServerError(response, getResult(), "Response not successful: Received status code ".concat(response.status)); } try { return JSON.parse(bodyText); } catch (err) { var parseError = err; parseError.name = "ServerParseError"; parseError.response = response; parseError.statusCode = response.status; parseError.bodyText = bodyText; throw parseError; } } function handleError(err, observer) { if (err.result && err.result.errors && err.result.data) { observer.next(err.result); } observer.error(err); } function parseAndCheckHttpResponse(operations) { return function(response) { return response.text().then(function(bodyText) { return parseJsonBody(response, bodyText); }).then(function(result2) { if (!Array.isArray(result2) && !hasOwnProperty$4.call(result2, "data") && !hasOwnProperty$4.call(result2, "errors")) { throwServerError(response, result2, "Server response was missing for query '".concat(Array.isArray(operations) ? operations.map(function(op) { return op.operationName; }) : operations.operationName, "'.")); } return result2; }); }; } var serializeFetchParameter = function(p2, label) { var serialized; try { serialized = JSON.stringify(p2); } catch (e2) { var parseError = newInvariantError(40, label, e2.message); parseError.parseError = e2; throw parseError; } return serialized; }; var defaultHttpOptions = { includeQuery: true, includeExtensions: false, preserveHeaderCase: false }; var defaultHeaders = { accept: "*/*", "content-type": "application/json" }; var defaultOptions$1 = { method: "POST" }; var fallbackHttpConfig = { http: defaultHttpOptions, headers: defaultHeaders, options: defaultOptions$1 }; var defaultPrinter = function(ast, printer2) { return printer2(ast); }; function selectHttpOptionsAndBodyInternal(operation, printer2) { var configs = []; for (var _i = 2; _i < arguments.length; _i++) { configs[_i - 2] = arguments[_i]; } var options = {}; var http = {}; configs.forEach(function(config) { options = __assign$1(__assign$1(__assign$1({}, options), config.options), { headers: __assign$1(__assign$1({}, options.headers), config.headers) }); if (config.credentials) { options.credentials = config.credentials; } http = __assign$1(__assign$1({}, http), config.http); }); if (options.headers) { options.headers = removeDuplicateHeaders(options.headers, http.preserveHeaderCase); } var operationName = operation.operationName, extensions = operation.extensions, variables = operation.variables, query = operation.query; var body = { operationName, variables }; if (http.includeExtensions) body.extensions = extensions; if (http.includeQuery) body.query = printer2(query, print); return { options, body }; } function removeDuplicateHeaders(headers, preserveHeaderCase) { if (!preserveHeaderCase) { var normalizedHeaders_1 = {}; Object.keys(Object(headers)).forEach(function(name) { normalizedHeaders_1[name.toLowerCase()] = headers[name]; }); return normalizedHeaders_1; } var headerData = {}; Object.keys(Object(headers)).forEach(function(name) { headerData[name.toLowerCase()] = { originalName: name, value: headers[name] }; }); var normalizedHeaders = {}; Object.keys(headerData).forEach(function(name) { normalizedHeaders[headerData[name].originalName] = headerData[name].value; }); return normalizedHeaders; } var checkFetcher = function(fetcher) { if (!fetcher && typeof fetch === "undefined") { throw newInvariantError(38); } }; var selectURI = function(operation, fallbackURI) { var context = operation.getContext(); var contextURI = context.uri; if (contextURI) { return contextURI; } else if (typeof fallbackURI === "function") { return fallbackURI(operation); } else { return fallbackURI || "/graphql"; } }; function rewriteURIForGET(chosenURI, body) { var queryParams = []; var addQueryParam = function(key, value) { queryParams.push("".concat(key, "=").concat(encodeURIComponent(value))); }; if ("query" in body) { addQueryParam("query", body.query); } if (body.operationName) { addQueryParam("operationName", body.operationName); } if (body.variables) { var serializedVariables = void 0; try { serializedVariables = serializeFetchParameter(body.variables, "Variables map"); } catch (parseError) { return { parseError }; } addQueryParam("variables", serializedVariables); } if (body.extensions) { var serializedExtensions = void 0; try { serializedExtensions = serializeFetchParameter(body.extensions, "Extensions map"); } catch (parseError) { return { parseError }; } addQueryParam("extensions", serializedExtensions); } var fragment = "", preFragment = chosenURI; var fragmentStart = chosenURI.indexOf("#"); if (fragmentStart !== -1) { fragment = chosenURI.substr(fragmentStart); preFragment = chosenURI.substr(0, fragmentStart); } var queryParamsPrefix = preFragment.indexOf("?") === -1 ? "?" : "&"; var newURI = preFragment + queryParamsPrefix + queryParams.join("&") + fragment; return { newURI }; } var backupFetch = maybe$1(function() { return fetch; }); var createHttpLink = function(linkOptions) { if (linkOptions === void 0) { linkOptions = {}; } var _a2 = linkOptions.uri, uri = _a2 === void 0 ? "/graphql" : _a2, preferredFetch = linkOptions.fetch, _b = linkOptions.print, print2 = _b === void 0 ? defaultPrinter : _b, includeExtensions = linkOptions.includeExtensions, preserveHeaderCase = linkOptions.preserveHeaderCase, useGETForQueries = linkOptions.useGETForQueries, _c = linkOptions.includeUnusedVariables, includeUnusedVariables = _c === void 0 ? false : _c, requestOptions = __rest(linkOptions, ["uri", "fetch", "print", "includeExtensions", "preserveHeaderCase", "useGETForQueries", "includeUnusedVariables"]); if (globalThis.__DEV__ !== false) { checkFetcher(preferredFetch || backupFetch); } var linkConfig = { http: { includeExtensions, preserveHeaderCase }, options: requestOptions.fetchOptions, credentials: requestOptions.credentials, headers: requestOptions.headers }; return new ApolloLink(function(operation) { var chosenURI = selectURI(operation, uri); var context = operation.getContext(); var clientAwarenessHeaders = {}; if (context.clientAwareness) { var _a3 = context.clientAwareness, name_1 = _a3.name, version2 = _a3.version; if (name_1) { clientAwarenessHeaders["apollographql-client-name"] = name_1; } if (version2) { clientAwarenessHeaders["apollographql-client-version"] = version2; } } var contextHeaders = __assign$1(__assign$1({}, clientAwarenessHeaders), context.headers); var contextConfig = { http: context.http, options: context.fetchOptions, credentials: context.credentials, headers: contextHeaders }; if (hasDirectives(["client"], operation.query)) { var transformedQuery = removeClientSetsFromDocument(operation.query); if (!transformedQuery) { return fromError(new Error("HttpLink: Trying to send a client-only query to the server. To send to the server, ensure a non-client field is added to the query or set the `transformOptions.removeClientFields` option to `true`.")); } operation.query = transformedQuery; } var _b2 = selectHttpOptionsAndBodyInternal(operation, print2, fallbackHttpConfig, linkConfig, contextConfig), options = _b2.options, body = _b2.body; if (body.variables && !includeUnusedVariables) { body.variables = filterOperationVariables(body.variables, operation.query); } var controller; if (!options.signal && typeof AbortController !== "undefined") { controller = new AbortController(); options.signal = controller.signal; } var definitionIsMutation = function(d) { return d.kind === "OperationDefinition" && d.operation === "mutation"; }; var definitionIsSubscription = function(d) { return d.kind === "OperationDefinition" && d.operation === "subscription"; }; var isSubscription = definitionIsSubscription(getMainDefinition(operation.query)); var hasDefer = hasDirectives(["defer"], operation.query); if (useGETForQueries && !operation.query.definitions.some(definitionIsMutation)) { options.method = "GET"; } if (hasDefer || isSubscription) { options.headers = options.headers || {}; var acceptHeader = "multipart/mixed;"; if (isSubscription && hasDefer) { globalThis.__DEV__ !== false && invariant.warn(39); } if (isSubscription) { acceptHeader += "boundary=graphql;subscriptionSpec=1.0,application/json"; } else if (hasDefer) { acceptHeader += "deferSpec=20220824,application/json"; } options.headers.accept = acceptHeader; } if (options.method === "GET") { var _c2 = rewriteURIForGET(chosenURI, body), newURI = _c2.newURI, parseError = _c2.parseError; if (parseError) { return fromError(parseError); } chosenURI = newURI; } else { try { options.body = serializeFetchParameter(body, "Payload"); } catch (parseError2) { return fromError(parseError2); } } return new Observable(function(observer) { var currentFetch = preferredFetch || maybe$1(function() { return fetch; }) || backupFetch; var observerNext = observer.next.bind(observer); currentFetch(chosenURI, options).then(function(response) { var _a4; operation.setContext({ response }); var ctype = (_a4 = response.headers) === null || _a4 === void 0 ? void 0 : _a4.get("content-type"); if (ctype !== null && /^multipart\/mixed/i.test(ctype)) { return readMultipartBody(response, observerNext); } else { return parseAndCheckHttpResponse(operation)(response).then(observerNext); } }).then(function() { controller = void 0; observer.complete(); }).catch(function(err) { controller = void 0; handleError(err, observer); }); return function() { if (controller) controller.abort(); }; }); }); }; var HttpLink = function(_super) { __extends(HttpLink2, _super); function HttpLink2(options) { if (options === void 0) { options = {}; } var _this = _super.call(this, createHttpLink(options).request) || this; _this.options = options; return _this; } return HttpLink2; }(ApolloLink); const { toString, hasOwnProperty: hasOwnProperty$3 } = Object.prototype; const fnToStr = Function.prototype.toString; const previousComparisons = /* @__PURE__ */ new Map(); function equal(a2, b) { try { return check(a2, b); } finally { previousComparisons.clear(); } } function check(a2, b) { if (a2 === b) { return true; } const aTag = toString.call(a2); const bTag = toString.call(b); if (aTag !== bTag) { return false; } switch (aTag) { case "[object Array]": if (a2.length !== b.length) return false; case "[object Object]": { if (previouslyCompared(a2, b)) return true; const aKeys = definedKeys(a2); const bKeys = definedKeys(b); const keyCount = aKeys.length; if (keyCount !== bKeys.length) return false; for (let k = 0; k < keyCount; ++k) { if (!hasOwnProperty$3.call(b, aKeys[k])) { return false; } } for (let k = 0; k < keyCount; ++k) { const key = aKeys[k]; if (!check(a2[key], b[key])) { return false; } } return true; } case "[object Error]": return a2.name === b.name && a2.message === b.message; case "[object Number]": if (a2 !== a2) return b !== b; case "[object Boolean]": case "[object Date]": return +a2 === +b; case "[object RegExp]": case "[object String]": return a2 == `${b}`; case "[object Map]": case "[object Set]": { if (a2.size !== b.size) return false; if (previouslyCompared(a2, b)) return true; const aIterator = a2.entries(); const isMap2 = aTag === "[object Map]"; while (true) { const info = aIterator.next(); if (info.done) break; const [aKey, aValue] = info.value; if (!b.has(aKey)) { return false; } if (isMap2 && !check(aValue, b.get(aKey))) { return false; } } return true; } case "[object Uint16Array]": case "[object Uint8Array]": case "[object Uint32Array]": case "[object Int32Array]": case "[object Int8Array]": case "[object Int16Array]": case "[object ArrayBuffer]": a2 = new Uint8Array(a2); b = new Uint8Array(b); case "[object DataView]": { let len = a2.byteLength; if (len === b.byteLength) { while (len-- && a2[len] === b[len]) { } } return len === -1; } case "[object AsyncFunction]": case "[object GeneratorFunction]": case "[object AsyncGeneratorFunction]": case "[object Function]": { const aCode = fnToStr.call(a2); if (aCode !== fnToStr.call(b)) { return false; } return !endsWith(aCode, nativeCodeSuffix); } } return false; } function definedKeys(obj) { return Object.keys(obj).filter(isDefinedKey, obj); } function isDefinedKey(key) { return this[key] !== void 0; } const nativeCodeSuffix = "{ [native code] }"; function endsWith(full, suffix) { const fromIndex = full.length - suffix.length; return fromIndex >= 0 && full.indexOf(suffix, fromIndex) === fromIndex; } function previouslyCompared(a2, b) { let bSet = previousComparisons.get(a2); if (bSet) { if (bSet.has(b)) return true; } else { previousComparisons.set(a2, bSet = /* @__PURE__ */ new Set()); } bSet.add(b); return false; } function equalByQuery(query, _a2, _b, variables) { var aData = _a2.data, aRest = __rest(_a2, ["data"]); var bData = _b.data, bRest = __rest(_b, ["data"]); return equal(aRest, bRest) && equalBySelectionSet(getMainDefinition(query).selectionSet, aData, bData, { fragmentMap: createFragmentMap(getFragmentDefinitions(query)), variables }); } function equalBySelectionSet(selectionSet, aResult, bResult, context) { if (aResult === bResult) { return true; } var seenSelections = /* @__PURE__ */ new Set(); return selectionSet.selections.every(function(selection) { if (seenSelections.has(selection)) return true; seenSelections.add(selection); if (!shouldInclude(selection, context.variables)) return true; if (selectionHasNonreactiveDirective(selection)) return true; if (isField(selection)) { var resultKey = resultKeyNameFromField(selection); var aResultChild = aResult && aResult[resultKey]; var bResultChild = bResult && bResult[resultKey]; var childSelectionSet = selection.selectionSet; if (!childSelectionSet) { return equal(aResultChild, bResultChild); } var aChildIsArray = Array.isArray(aResultChild); var bChildIsArray = Array.isArray(bResultChild); if (aChildIsArray !== bChildIsArray) return false; if (aChildIsArray && bChildIsArray) { var length_1 = aResultChild.length; if (bResultChild.length !== length_1) { return false; } for (var i2 = 0; i2 < length_1; ++i2) { if (!equalBySelectionSet(childSelectionSet, aResultChild[i2], bResultChild[i2], context)) { return false; } } return true; } return equalBySelectionSet(childSelectionSet, aResultChild, bResultChild, context); } else { var fragment = getFragmentFromSelection(selection, context.fragmentMap); if (fragment) { if (selectionHasNonreactiveDirective(fragment)) return true; return equalBySelectionSet( fragment.selectionSet, aResult, bResult, context ); } } }); } function selectionHasNonreactiveDirective(selection) { return !!selection.directives && selection.directives.some(directiveIsNonreactive); } function directiveIsNonreactive(dir) { return dir.name.value === "nonreactive"; } var ApolloCache = function() { function ApolloCache2() { this.assumeImmutableResults = false; this.getFragmentDoc = wrap(getFragmentQueryDocument, { max: cacheSizes["cache.fragmentQueryDocuments"] || 1e3, cache: WeakCache }); } ApolloCache2.prototype.batch = function(options) { var _this = this; var optimisticId = typeof options.optimistic === "string" ? options.optimistic : options.optimistic === false ? null : void 0; var updateResult; this.performTransaction(function() { return updateResult = options.update(_this); }, optimisticId); return updateResult; }; ApolloCache2.prototype.recordOptimisticTransaction = function(transaction, optimisticId) { this.performTransaction(transaction, optimisticId); }; ApolloCache2.prototype.transformDocument = function(document2) { return document2; }; ApolloCache2.prototype.transformForLink = function(document2) { return document2; }; ApolloCache2.prototype.identify = function(object) { return; }; ApolloCache2.prototype.gc = function() { return []; }; ApolloCache2.prototype.modify = function(options) { return false; }; ApolloCache2.prototype.readQuery = function(options, optimistic) { if (optimistic === void 0) { optimistic = !!options.optimistic; } return this.read(__assign$1(__assign$1({}, options), { rootId: options.id || "ROOT_QUERY", optimistic })); }; ApolloCache2.prototype.watchFragment = function(options) { var _this = this; var fragment = options.fragment, fragmentName = options.fragmentName, from2 = options.from, _a2 = options.optimistic, optimistic = _a2 === void 0 ? true : _a2, otherOptions = __rest(options, ["fragment", "fragmentName", "from", "optimistic"]); var query = this.getFragmentDoc(fragment, fragmentName); var diffOptions = __assign$1(__assign$1({}, otherOptions), { returnPartialData: true, id: typeof from2 === "undefined" || typeof from2 === "string" ? from2 : this.identify(from2), query, optimistic }); var latestDiff; return new Observable(function(observer) { return _this.watch(__assign$1(__assign$1({}, diffOptions), { immediate: true, callback: function(diff2) { if (latestDiff && equalByQuery(query, { data: latestDiff === null || latestDiff === void 0 ? void 0 : latestDiff.result }, { data: diff2.result })) { return; } var result2 = { data: diff2.result, complete: !!diff2.complete }; if (diff2.missing) { result2.missing = mergeDeepArray(diff2.missing.map(function(error) { return error.missing; })); } latestDiff = diff2; observer.next(result2); } })); }); }; ApolloCache2.prototype.readFragment = function(options, optimistic) { if (optimistic === void 0) { optimistic = !!options.optimistic; } return this.read(__assign$1(__assign$1({}, options), { query: this.getFragmentDoc(options.fragment, options.fragmentName), rootId: options.id, optimistic })); }; ApolloCache2.prototype.writeQuery = function(_a2) { var id = _a2.id, data2 = _a2.data, options = __rest(_a2, ["id", "data"]); return this.write(Object.assign(options, { dataId: id || "ROOT_QUERY", result: data2 })); }; ApolloCache2.prototype.writeFragment = function(_a2) { var id = _a2.id, data2 = _a2.data, fragment = _a2.fragment, fragmentName = _a2.fragmentName, options = __rest(_a2, ["id", "data", "fragment", "fragmentName"]); return this.write(Object.assign(options, { query: this.getFragmentDoc(fragment, fragmentName), dataId: id, result: data2 })); }; ApolloCache2.prototype.updateQuery = function(options, update2) { return this.batch({ update: function(cache2) { var value = cache2.readQuery(options); var data2 = update2(value); if (data2 === void 0 || data2 === null) return value; cache2.writeQuery(__assign$1(__assign$1({}, options), { data: data2 })); return data2; } }); }; ApolloCache2.prototype.updateFragment = function(options, update2) { return this.batch({ update: function(cache2) { var value = cache2.readFragment(options); var data2 = update2(value); if (data2 === void 0 || data2 === null) return value; cache2.writeFragment(__assign$1(__assign$1({}, options), { data: data2 })); return data2; } }); }; return ApolloCache2; }(); if (globalThis.__DEV__ !== false) { ApolloCache.prototype.getMemoryInternals = getApolloCacheMemoryInternals; } var MissingFieldError = function(_super) { __extends(MissingFieldError2, _super); function MissingFieldError2(message, path, query, variables) { var _a2; var _this = _super.call(this, message) || this; _this.message = message; _this.path = path; _this.query = query; _this.variables = variables; if (Array.isArray(_this.path)) { _this.missing = _this.message; for (var i2 = _this.path.length - 1; i2 >= 0; --i2) { _this.missing = (_a2 = {}, _a2[_this.path[i2]] = _this.missing, _a2); } } else { _this.missing = _this.path; } _this.__proto__ = MissingFieldError2.prototype; return _this; } return MissingFieldError2; }(Error); var hasOwn$1 = Object.prototype.hasOwnProperty; function isNullish(value) { return value === null || value === void 0; } function defaultDataIdFromObject(_a2, context) { var __typename = _a2.__typename, id = _a2.id, _id = _a2._id; if (typeof __typename === "string") { if (context) { context.keyObject = !isNullish(id) ? { id } : !isNullish(_id) ? { _id } : void 0; } if (isNullish(id) && !isNullish(_id)) { id = _id; } if (!isNullish(id)) { return "".concat(__typename, ":").concat(typeof id === "number" || typeof id === "string" ? id : JSON.stringify(id)); } } } var defaultConfig = { dataIdFromObject: defaultDataIdFromObject, addTypename: true, resultCaching: true, canonizeResults: false }; function normalizeConfig(config) { return compact(defaultConfig, config); } function shouldCanonizeResults(config) { var value = config.canonizeResults; return value === void 0 ? defaultConfig.canonizeResults : value; } function getTypenameFromStoreObject(store2, objectOrReference) { return isReference(objectOrReference) ? store2.get(objectOrReference.__ref, "__typename") : objectOrReference && objectOrReference.__typename; } var TypeOrFieldNameRegExp = /^[_a-z][_0-9a-z]*/i; function fieldNameFromStoreName(storeFieldName) { var match = storeFieldName.match(TypeOrFieldNameRegExp); return match ? match[0] : storeFieldName; } function selectionSetMatchesResult(selectionSet, result2, variables) { if (isNonNullObject(result2)) { return isArray$1(result2) ? result2.every(function(item) { return selectionSetMatchesResult(selectionSet, item, variables); }) : selectionSet.selections.every(function(field) { if (isField(field) && shouldInclude(field, variables)) { var key = resultKeyNameFromField(field); return hasOwn$1.call(result2, key) && (!field.selectionSet || selectionSetMatchesResult(field.selectionSet, result2[key], variables)); } return true; }); } return false; } function storeValueIsStoreObject(value) { return isNonNullObject(value) && !isReference(value) && !isArray$1(value); } function makeProcessedFieldsMerger() { return new DeepMerger(); } function extractFragmentContext(document2, fragments) { var fragmentMap = createFragmentMap(getFragmentDefinitions(document2)); return { fragmentMap, lookupFragment: function(name) { var def2 = fragmentMap[name]; if (!def2 && fragments) { def2 = fragments.lookup(name); } return def2 || null; } }; } var DELETE = /* @__PURE__ */ Object.create(null); var delModifier = function() { return DELETE; }; var INVALIDATE = /* @__PURE__ */ Object.create(null); var EntityStore = function() { function EntityStore2(policies, group) { var _this = this; this.policies = policies; this.group = group; this.data = /* @__PURE__ */ Object.create(null); this.rootIds = /* @__PURE__ */ Object.create(null); this.refs = /* @__PURE__ */ Object.create(null); this.getFieldValue = function(objectOrReference, storeFieldName) { return maybeDeepFreeze(isReference(objectOrReference) ? _this.get(objectOrReference.__ref, storeFieldName) : objectOrReference && objectOrReference[storeFieldName]); }; this.canRead = function(objOrRef) { return isReference(objOrRef) ? _this.has(objOrRef.__ref) : typeof objOrRef === "object"; }; this.toReference = function(objOrIdOrRef, mergeIntoStore) { if (typeof objOrIdOrRef === "string") { return makeReference(objOrIdOrRef); } if (isReference(objOrIdOrRef)) { return objOrIdOrRef; } var id = _this.policies.identify(objOrIdOrRef)[0]; if (id) { var ref2 = makeReference(id); if (mergeIntoStore) { _this.merge(id, objOrIdOrRef); } return ref2; } }; } EntityStore2.prototype.toObject = function() { return __assign$1({}, this.data); }; EntityStore2.prototype.has = function(dataId) { return this.lookup(dataId, true) !== void 0; }; EntityStore2.prototype.get = function(dataId, fieldName) { this.group.depend(dataId, fieldName); if (hasOwn$1.call(this.data, dataId)) { var storeObject = this.data[dataId]; if (storeObject && hasOwn$1.call(storeObject, fieldName)) { return storeObject[fieldName]; } } if (fieldName === "__typename" && hasOwn$1.call(this.policies.rootTypenamesById, dataId)) { return this.policies.rootTypenamesById[dataId]; } if (this instanceof Layer) { return this.parent.get(dataId, fieldName); } }; EntityStore2.prototype.lookup = function(dataId, dependOnExistence) { if (dependOnExistence) this.group.depend(dataId, "__exists"); if (hasOwn$1.call(this.data, dataId)) { return this.data[dataId]; } if (this instanceof Layer) { return this.parent.lookup(dataId, dependOnExistence); } if (this.policies.rootTypenamesById[dataId]) { return /* @__PURE__ */ Object.create(null); } }; EntityStore2.prototype.merge = function(older, newer) { var _this = this; var dataId; if (isReference(older)) older = older.__ref; if (isReference(newer)) newer = newer.__ref; var existing = typeof older === "string" ? this.lookup(dataId = older) : older; var incoming = typeof newer === "string" ? this.lookup(dataId = newer) : newer; if (!incoming) return; invariant(typeof dataId === "string", 1); var merged = new DeepMerger(storeObjectReconciler).merge(existing, incoming); this.data[dataId] = merged; if (merged !== existing) { delete this.refs[dataId]; if (this.group.caching) { var fieldsToDirty_1 = /* @__PURE__ */ Object.create(null); if (!existing) fieldsToDirty_1.__exists = 1; Object.keys(incoming).forEach(function(storeFieldName) { if (!existing || existing[storeFieldName] !== merged[storeFieldName]) { fieldsToDirty_1[storeFieldName] = 1; var fieldName = fieldNameFromStoreName(storeFieldName); if (fieldName !== storeFieldName && !_this.policies.hasKeyArgs(merged.__typename, fieldName)) { fieldsToDirty_1[fieldName] = 1; } if (merged[storeFieldName] === void 0 && !(_this instanceof Layer)) { delete merged[storeFieldName]; } } }); if (fieldsToDirty_1.__typename && !(existing && existing.__typename) && this.policies.rootTypenamesById[dataId] === merged.__typename) { delete fieldsToDirty_1.__typename; } Object.keys(fieldsToDirty_1).forEach(function(fieldName) { return _this.group.dirty(dataId, fieldName); }); } } }; EntityStore2.prototype.modify = function(dataId, fields) { var _this = this; var storeObject = this.lookup(dataId); if (storeObject) { var changedFields_1 = /* @__PURE__ */ Object.create(null); var needToMerge_1 = false; var allDeleted_1 = true; var sharedDetails_1 = { DELETE, INVALIDATE, isReference, toReference: this.toReference, canRead: this.canRead, readField: function(fieldNameOrOptions, from2) { return _this.policies.readField(typeof fieldNameOrOptions === "string" ? { fieldName: fieldNameOrOptions, from: from2 || makeReference(dataId) } : fieldNameOrOptions, { store: _this }); } }; Object.keys(storeObject).forEach(function(storeFieldName) { var fieldName = fieldNameFromStoreName(storeFieldName); var fieldValue = storeObject[storeFieldName]; if (fieldValue === void 0) return; var modify = typeof fields === "function" ? fields : fields[storeFieldName] || fields[fieldName]; if (modify) { var newValue = modify === delModifier ? DELETE : modify(maybeDeepFreeze(fieldValue), __assign$1(__assign$1({}, sharedDetails_1), { fieldName, storeFieldName, storage: _this.getStorage(dataId, storeFieldName) })); if (newValue === INVALIDATE) { _this.group.dirty(dataId, storeFieldName); } else { if (newValue === DELETE) newValue = void 0; if (newValue !== fieldValue) { changedFields_1[storeFieldName] = newValue; needToMerge_1 = true; fieldValue = newValue; if (globalThis.__DEV__ !== false) { var checkReference = function(ref2) { if (_this.lookup(ref2.__ref) === void 0) { globalThis.__DEV__ !== false && invariant.warn(2, ref2); return true; } }; if (isReference(newValue)) { checkReference(newValue); } else if (Array.isArray(newValue)) { var seenReference = false; var someNonReference = void 0; for (var _i = 0, newValue_1 = newValue; _i < newValue_1.length; _i++) { var value = newValue_1[_i]; if (isReference(value)) { seenReference = true; if (checkReference(value)) break; } else { if (typeof value === "object" && !!value) { var id = _this.policies.identify(value)[0]; if (id) { someNonReference = value; } } } if (seenReference && someNonReference !== void 0) { globalThis.__DEV__ !== false && invariant.warn(3, someNonReference); break; } } } } } } } if (fieldValue !== void 0) { allDeleted_1 = false; } }); if (needToMerge_1) { this.merge(dataId, changedFields_1); if (allDeleted_1) { if (this instanceof Layer) { this.data[dataId] = void 0; } else { delete this.data[dataId]; } this.group.dirty(dataId, "__exists"); } return true; } } return false; }; EntityStore2.prototype.delete = function(dataId, fieldName, args) { var _a2; var storeObject = this.lookup(dataId); if (storeObject) { var typename = this.getFieldValue(storeObject, "__typename"); var storeFieldName = fieldName && args ? this.policies.getStoreFieldName({ typename, fieldName, args }) : fieldName; return this.modify(dataId, storeFieldName ? (_a2 = {}, _a2[storeFieldName] = delModifier, _a2) : delModifier); } return false; }; EntityStore2.prototype.evict = function(options, limit) { var evicted = false; if (options.id) { if (hasOwn$1.call(this.data, options.id)) { evicted = this.delete(options.id, options.fieldName, options.args); } if (this instanceof Layer && this !== limit) { evicted = this.parent.evict(options, limit) || evicted; } if (options.fieldName || evicted) { this.group.dirty(options.id, options.fieldName || "__exists"); } } return evicted; }; EntityStore2.prototype.clear = function() { this.replace(null); }; EntityStore2.prototype.extract = function() { var _this = this; var obj = this.toObject(); var extraRootIds = []; this.getRootIdSet().forEach(function(id) { if (!hasOwn$1.call(_this.policies.rootTypenamesById, id)) { extraRootIds.push(id); } }); if (extraRootIds.length) { obj.__META = { extraRootIds: extraRootIds.sort() }; } return obj; }; EntityStore2.prototype.replace = function(newData) { var _this = this; Object.keys(this.data).forEach(function(dataId) { if (!(newData && hasOwn$1.call(newData, dataId))) { _this.delete(dataId); } }); if (newData) { var __META = newData.__META, rest_1 = __rest(newData, ["__META"]); Object.keys(rest_1).forEach(function(dataId) { _this.merge(dataId, rest_1[dataId]); }); if (__META) { __META.extraRootIds.forEach(this.retain, this); } } }; EntityStore2.prototype.retain = function(rootId) { return this.rootIds[rootId] = (this.rootIds[rootId] || 0) + 1; }; EntityStore2.prototype.release = function(rootId) { if (this.rootIds[rootId] > 0) { var count = --this.rootIds[rootId]; if (!count) delete this.rootIds[rootId]; return count; } return 0; }; EntityStore2.prototype.getRootIdSet = function(ids) { if (ids === void 0) { ids = /* @__PURE__ */ new Set(); } Object.keys(this.rootIds).forEach(ids.add, ids); if (this instanceof Layer) { this.parent.getRootIdSet(ids); } else { Object.keys(this.policies.rootTypenamesById).forEach(ids.add, ids); } return ids; }; EntityStore2.prototype.gc = function() { var _this = this; var ids = this.getRootIdSet(); var snapshot = this.toObject(); ids.forEach(function(id) { if (hasOwn$1.call(snapshot, id)) { Object.keys(_this.findChildRefIds(id)).forEach(ids.add, ids); delete snapshot[id]; } }); var idsToRemove = Object.keys(snapshot); if (idsToRemove.length) { var root_1 = this; while (root_1 instanceof Layer) root_1 = root_1.parent; idsToRemove.forEach(function(id) { return root_1.delete(id); }); } return idsToRemove; }; EntityStore2.prototype.findChildRefIds = function(dataId) { if (!hasOwn$1.call(this.refs, dataId)) { var found_1 = this.refs[dataId] = /* @__PURE__ */ Object.create(null); var root2 = this.data[dataId]; if (!root2) return found_1; var workSet_1 = /* @__PURE__ */ new Set([root2]); workSet_1.forEach(function(obj) { if (isReference(obj)) { found_1[obj.__ref] = true; } if (isNonNullObject(obj)) { Object.keys(obj).forEach(function(key) { var child = obj[key]; if (isNonNullObject(child)) { workSet_1.add(child); } }); } }); } return this.refs[dataId]; }; EntityStore2.prototype.makeCacheKey = function() { return this.group.keyMaker.lookupArray(arguments); }; return EntityStore2; }(); var CacheGroup = function() { function CacheGroup2(caching, parent) { if (parent === void 0) { parent = null; } this.caching = caching; this.parent = parent; this.d = null; this.resetCaching(); } CacheGroup2.prototype.resetCaching = function() { this.d = this.caching ? dep() : null; this.keyMaker = new Trie(canUseWeakMap); }; CacheGroup2.prototype.depend = function(dataId, storeFieldName) { if (this.d) { this.d(makeDepKey(dataId, storeFieldName)); var fieldName = fieldNameFromStoreName(storeFieldName); if (fieldName !== storeFieldName) { this.d(makeDepKey(dataId, fieldName)); } if (this.parent) { this.parent.depend(dataId, storeFieldName); } } }; CacheGroup2.prototype.dirty = function(dataId, storeFieldName) { if (this.d) { this.d.dirty( makeDepKey(dataId, storeFieldName), storeFieldName === "__exists" ? "forget" : "setDirty" ); } }; return CacheGroup2; }(); function makeDepKey(dataId, storeFieldName) { return storeFieldName + "#" + dataId; } function maybeDependOnExistenceOfEntity(store2, entityId) { if (supportsResultCaching(store2)) { store2.group.depend(entityId, "__exists"); } } (function(EntityStore2) { var Root = function(_super) { __extends(Root2, _super); function Root2(_a2) { var policies = _a2.policies, _b = _a2.resultCaching, resultCaching = _b === void 0 ? true : _b, seed = _a2.seed; var _this = _super.call(this, policies, new CacheGroup(resultCaching)) || this; _this.stump = new Stump(_this); _this.storageTrie = new Trie(canUseWeakMap); if (seed) _this.replace(seed); return _this; } Root2.prototype.addLayer = function(layerId, replay) { return this.stump.addLayer(layerId, replay); }; Root2.prototype.removeLayer = function() { return this; }; Root2.prototype.getStorage = function() { return this.storageTrie.lookupArray(arguments); }; return Root2; }(EntityStore2); EntityStore2.Root = Root; })(EntityStore || (EntityStore = {})); var Layer = function(_super) { __extends(Layer2, _super); function Layer2(id, parent, replay, group) { var _this = _super.call(this, parent.policies, group) || this; _this.id = id; _this.parent = parent; _this.replay = replay; _this.group = group; replay(_this); return _this; } Layer2.prototype.addLayer = function(layerId, replay) { return new Layer2(layerId, this, replay, this.group); }; Layer2.prototype.removeLayer = function(layerId) { var _this = this; var parent = this.parent.removeLayer(layerId); if (layerId === this.id) { if (this.group.caching) { Object.keys(this.data).forEach(function(dataId) { var ownStoreObject = _this.data[dataId]; var parentStoreObject = parent["lookup"](dataId); if (!parentStoreObject) { _this.delete(dataId); } else if (!ownStoreObject) { _this.group.dirty(dataId, "__exists"); Object.keys(parentStoreObject).forEach(function(storeFieldName) { _this.group.dirty(dataId, storeFieldName); }); } else if (ownStoreObject !== parentStoreObject) { Object.keys(ownStoreObject).forEach(function(storeFieldName) { if (!equal(ownStoreObject[storeFieldName], parentStoreObject[storeFieldName])) { _this.group.dirty(dataId, storeFieldName); } }); } }); } return parent; } if (parent === this.parent) return this; return parent.addLayer(this.id, this.replay); }; Layer2.prototype.toObject = function() { return __assign$1(__assign$1({}, this.parent.toObject()), this.data); }; Layer2.prototype.findChildRefIds = function(dataId) { var fromParent = this.parent.findChildRefIds(dataId); return hasOwn$1.call(this.data, dataId) ? __assign$1(__assign$1({}, fromParent), _super.prototype.findChildRefIds.call(this, dataId)) : fromParent; }; Layer2.prototype.getStorage = function() { var p2 = this.parent; while (p2.parent) p2 = p2.parent; return p2.getStorage.apply( p2, arguments ); }; return Layer2; }(EntityStore); var Stump = function(_super) { __extends(Stump2, _super); function Stump2(root2) { return _super.call(this, "EntityStore.Stump", root2, function() { }, new CacheGroup(root2.group.caching, root2.group)) || this; } Stump2.prototype.removeLayer = function() { return this; }; Stump2.prototype.merge = function(older, newer) { return this.parent.merge(older, newer); }; return Stump2; }(Layer); function storeObjectReconciler(existingObject, incomingObject, property) { var existingValue = existingObject[property]; var incomingValue = incomingObject[property]; return equal(existingValue, incomingValue) ? existingValue : incomingValue; } function supportsResultCaching(store2) { return !!(store2 instanceof EntityStore && store2.group.caching); } function shallowCopy(value) { if (isNonNullObject(value)) { return isArray$1(value) ? value.slice(0) : __assign$1({ __proto__: Object.getPrototypeOf(value) }, value); } return value; } var ObjectCanon = function() { function ObjectCanon2() { this.known = new (canUseWeakSet ? WeakSet : Set)(); this.pool = new Trie(canUseWeakMap); this.passes = /* @__PURE__ */ new WeakMap(); this.keysByJSON = /* @__PURE__ */ new Map(); this.empty = this.admit({}); } ObjectCanon2.prototype.isKnown = function(value) { return isNonNullObject(value) && this.known.has(value); }; ObjectCanon2.prototype.pass = function(value) { if (isNonNullObject(value)) { var copy = shallowCopy(value); this.passes.set(copy, value); return copy; } return value; }; ObjectCanon2.prototype.admit = function(value) { var _this = this; if (isNonNullObject(value)) { var original = this.passes.get(value); if (original) return original; var proto2 = Object.getPrototypeOf(value); switch (proto2) { case Array.prototype: { if (this.known.has(value)) return value; var array = value.map(this.admit, this); var node = this.pool.lookupArray(array); if (!node.array) { this.known.add(node.array = array); if (globalThis.__DEV__ !== false) { Object.freeze(array); } } return node.array; } case null: case Object.prototype: { if (this.known.has(value)) return value; var proto_1 = Object.getPrototypeOf(value); var array_1 = [proto_1]; var keys2 = this.sortedKeys(value); array_1.push(keys2.json); var firstValueIndex_1 = array_1.length; keys2.sorted.forEach(function(key) { array_1.push(_this.admit(value[key])); }); var node = this.pool.lookupArray(array_1); if (!node.object) { var obj_1 = node.object = Object.create(proto_1); this.known.add(obj_1); keys2.sorted.forEach(function(key, i2) { obj_1[key] = array_1[firstValueIndex_1 + i2]; }); if (globalThis.__DEV__ !== false) { Object.freeze(obj_1); } } return node.object; } } } return value; }; ObjectCanon2.prototype.sortedKeys = function(obj) { var keys2 = Object.keys(obj); var node = this.pool.lookupArray(keys2); if (!node.keys) { keys2.sort(); var json = JSON.stringify(keys2); if (!(node.keys = this.keysByJSON.get(json))) { this.keysByJSON.set(json, node.keys = { sorted: keys2, json }); } } return node.keys; }; return ObjectCanon2; }(); function execSelectionSetKeyArgs(options) { return [ options.selectionSet, options.objectOrReference, options.context, options.context.canonizeResults ]; } var StoreReader = function() { function StoreReader2(config) { var _this = this; this.knownResults = new (canUseWeakMap ? WeakMap : Map)(); this.config = compact(config, { addTypename: config.addTypename !== false, canonizeResults: shouldCanonizeResults(config) }); this.canon = config.canon || new ObjectCanon(); this.executeSelectionSet = wrap(function(options) { var _a2; var canonizeResults = options.context.canonizeResults; var peekArgs = execSelectionSetKeyArgs(options); peekArgs[3] = !canonizeResults; var other = (_a2 = _this.executeSelectionSet).peek.apply(_a2, peekArgs); if (other) { if (canonizeResults) { return __assign$1(__assign$1({}, other), { result: _this.canon.admit(other.result) }); } return other; } maybeDependOnExistenceOfEntity(options.context.store, options.enclosingRef.__ref); return _this.execSelectionSetImpl(options); }, { max: this.config.resultCacheMaxSize || cacheSizes["inMemoryCache.executeSelectionSet"] || 5e4, keyArgs: execSelectionSetKeyArgs, makeCacheKey: function(selectionSet, parent, context, canonizeResults) { if (supportsResultCaching(context.store)) { return context.store.makeCacheKey(selectionSet, isReference(parent) ? parent.__ref : parent, context.varString, canonizeResults); } } }); this.executeSubSelectedArray = wrap(function(options) { maybeDependOnExistenceOfEntity(options.context.store, options.enclosingRef.__ref); return _this.execSubSelectedArrayImpl(options); }, { max: this.config.resultCacheMaxSize || cacheSizes["inMemoryCache.executeSubSelectedArray"] || 1e4, makeCacheKey: function(_a2) { var field = _a2.field, array = _a2.array, context = _a2.context; if (supportsResultCaching(context.store)) { return context.store.makeCacheKey(field, array, context.varString); } } }); } StoreReader2.prototype.resetCanon = function() { this.canon = new ObjectCanon(); }; StoreReader2.prototype.diffQueryAgainstStore = function(_a2) { var store2 = _a2.store, query = _a2.query, _b = _a2.rootId, rootId = _b === void 0 ? "ROOT_QUERY" : _b, variables = _a2.variables, _c = _a2.returnPartialData, returnPartialData = _c === void 0 ? true : _c, _d = _a2.canonizeResults, canonizeResults = _d === void 0 ? this.config.canonizeResults : _d; var policies = this.config.cache.policies; variables = __assign$1(__assign$1({}, getDefaultValues(getQueryDefinition(query))), variables); var rootRef = makeReference(rootId); var execResult = this.executeSelectionSet({ selectionSet: getMainDefinition(query).selectionSet, objectOrReference: rootRef, enclosingRef: rootRef, context: __assign$1({ store: store2, query, policies, variables, varString: canonicalStringify(variables), canonizeResults }, extractFragmentContext(query, this.config.fragments)) }); var missing; if (execResult.missing) { missing = [ new MissingFieldError(firstMissing(execResult.missing), execResult.missing, query, variables) ]; if (!returnPartialData) { throw missing[0]; } } return { result: execResult.result, complete: !missing, missing }; }; StoreReader2.prototype.isFresh = function(result2, parent, selectionSet, context) { if (supportsResultCaching(context.store) && this.knownResults.get(result2) === selectionSet) { var latest = this.executeSelectionSet.peek( selectionSet, parent, context, this.canon.isKnown(result2) ); if (latest && result2 === latest.result) { return true; } } return false; }; StoreReader2.prototype.execSelectionSetImpl = function(_a2) { var _this = this; var selectionSet = _a2.selectionSet, objectOrReference = _a2.objectOrReference, enclosingRef = _a2.enclosingRef, context = _a2.context; if (isReference(objectOrReference) && !context.policies.rootTypenamesById[objectOrReference.__ref] && !context.store.has(objectOrReference.__ref)) { return { result: this.canon.empty, missing: "Dangling reference to missing ".concat(objectOrReference.__ref, " object") }; } var variables = context.variables, policies = context.policies, store2 = context.store; var typename = store2.getFieldValue(objectOrReference, "__typename"); var objectsToMerge = []; var missing; var missingMerger = new DeepMerger(); if (this.config.addTypename && typeof typename === "string" && !policies.rootIdsByTypename[typename]) { objectsToMerge.push({ __typename: typename }); } function handleMissing2(result3, resultName) { var _a3; if (result3.missing) { missing = missingMerger.merge(missing, (_a3 = {}, _a3[resultName] = result3.missing, _a3)); } return result3.result; } var workSet = new Set(selectionSet.selections); workSet.forEach(function(selection) { var _a3, _b; if (!shouldInclude(selection, variables)) return; if (isField(selection)) { var fieldValue = policies.readField({ fieldName: selection.name.value, field: selection, variables: context.variables, from: objectOrReference }, context); var resultName = resultKeyNameFromField(selection); if (fieldValue === void 0) { if (!addTypenameToDocument.added(selection)) { missing = missingMerger.merge(missing, (_a3 = {}, _a3[resultName] = "Can't find field '".concat(selection.name.value, "' on ").concat(isReference(objectOrReference) ? objectOrReference.__ref + " object" : "object " + JSON.stringify(objectOrReference, null, 2)), _a3)); } } else if (isArray$1(fieldValue)) { if (fieldValue.length > 0) { fieldValue = handleMissing2(_this.executeSubSelectedArray({ field: selection, array: fieldValue, enclosingRef, context }), resultName); } } else if (!selection.selectionSet) { if (context.canonizeResults) { fieldValue = _this.canon.pass(fieldValue); } } else if (fieldValue != null) { fieldValue = handleMissing2(_this.executeSelectionSet({ selectionSet: selection.selectionSet, objectOrReference: fieldValue, enclosingRef: isReference(fieldValue) ? fieldValue : enclosingRef, context }), resultName); } if (fieldValue !== void 0) { objectsToMerge.push((_b = {}, _b[resultName] = fieldValue, _b)); } } else { var fragment = getFragmentFromSelection(selection, context.lookupFragment); if (!fragment && selection.kind === Kind.FRAGMENT_SPREAD) { throw newInvariantError(9, selection.name.value); } if (fragment && policies.fragmentMatches(fragment, typename)) { fragment.selectionSet.selections.forEach(workSet.add, workSet); } } }); var result2 = mergeDeepArray(objectsToMerge); var finalResult = { result: result2, missing }; var frozen = context.canonizeResults ? this.canon.admit(finalResult) : maybeDeepFreeze(finalResult); if (frozen.result) { this.knownResults.set(frozen.result, selectionSet); } return frozen; }; StoreReader2.prototype.execSubSelectedArrayImpl = function(_a2) { var _this = this; var field = _a2.field, array = _a2.array, enclosingRef = _a2.enclosingRef, context = _a2.context; var missing; var missingMerger = new DeepMerger(); function handleMissing2(childResult, i2) { var _a3; if (childResult.missing) { missing = missingMerger.merge(missing, (_a3 = {}, _a3[i2] = childResult.missing, _a3)); } return childResult.result; } if (field.selectionSet) { array = array.filter(context.store.canRead); } array = array.map(function(item, i2) { if (item === null) { return null; } if (isArray$1(item)) { return handleMissing2(_this.executeSubSelectedArray({ field, array: item, enclosingRef, context }), i2); } if (field.selectionSet) { return handleMissing2(_this.executeSelectionSet({ selectionSet: field.selectionSet, objectOrReference: item, enclosingRef: isReference(item) ? item : enclosingRef, context }), i2); } if (globalThis.__DEV__ !== false) { assertSelectionSetForIdValue(context.store, field, item); } return item; }); return { result: context.canonizeResults ? this.canon.admit(array) : array, missing }; }; return StoreReader2; }(); function firstMissing(tree) { try { JSON.stringify(tree, function(_, value) { if (typeof value === "string") throw value; return value; }); } catch (result2) { return result2; } } function assertSelectionSetForIdValue(store2, field, fieldValue) { if (!field.selectionSet) { var workSet_1 = /* @__PURE__ */ new Set([fieldValue]); workSet_1.forEach(function(value) { if (isNonNullObject(value)) { invariant( !isReference(value), 10, getTypenameFromStoreObject(store2, value), field.name.value ); Object.values(value).forEach(workSet_1.add, workSet_1); } }); } } var cacheSlot = new Slot(); var cacheInfoMap = /* @__PURE__ */ new WeakMap(); function getCacheInfo(cache2) { var info = cacheInfoMap.get(cache2); if (!info) { cacheInfoMap.set(cache2, info = { vars: /* @__PURE__ */ new Set(), dep: dep() }); } return info; } function forgetCache(cache2) { getCacheInfo(cache2).vars.forEach(function(rv) { return rv.forgetCache(cache2); }); } function recallCache(cache2) { getCacheInfo(cache2).vars.forEach(function(rv) { return rv.attachCache(cache2); }); } function makeVar(value) { var caches2 = /* @__PURE__ */ new Set(); var listeners = /* @__PURE__ */ new Set(); var rv = function(newValue) { if (arguments.length > 0) { if (value !== newValue) { value = newValue; caches2.forEach(function(cache3) { getCacheInfo(cache3).dep.dirty(rv); broadcast(cache3); }); var oldListeners = Array.from(listeners); listeners.clear(); oldListeners.forEach(function(listener) { return listener(value); }); } } else { var cache2 = cacheSlot.getValue(); if (cache2) { attach(cache2); getCacheInfo(cache2).dep(rv); } } return value; }; rv.onNextChange = function(listener) { listeners.add(listener); return function() { listeners.delete(listener); }; }; var attach = rv.attachCache = function(cache2) { caches2.add(cache2); getCacheInfo(cache2).vars.add(rv); return rv; }; rv.forgetCache = function(cache2) { return caches2.delete(cache2); }; return rv; } function broadcast(cache2) { if (cache2.broadcastWatches) { cache2.broadcastWatches(); } } var specifierInfoCache = /* @__PURE__ */ Object.create(null); function lookupSpecifierInfo(spec) { var cacheKey = JSON.stringify(spec); return specifierInfoCache[cacheKey] || (specifierInfoCache[cacheKey] = /* @__PURE__ */ Object.create(null)); } function keyFieldsFnFromSpecifier(specifier) { var info = lookupSpecifierInfo(specifier); return info.keyFieldsFn || (info.keyFieldsFn = function(object, context) { var extract = function(from2, key) { return context.readField(key, from2); }; var keyObject = context.keyObject = collectSpecifierPaths(specifier, function(schemaKeyPath) { var extracted = extractKeyPath( context.storeObject, schemaKeyPath, extract ); if (extracted === void 0 && object !== context.storeObject && hasOwn$1.call(object, schemaKeyPath[0])) { extracted = extractKeyPath(object, schemaKeyPath, extractKey); } invariant(extracted !== void 0, 4, schemaKeyPath.join("."), object); return extracted; }); return "".concat(context.typename, ":").concat(JSON.stringify(keyObject)); }); } function keyArgsFnFromSpecifier(specifier) { var info = lookupSpecifierInfo(specifier); return info.keyArgsFn || (info.keyArgsFn = function(args, _a2) { var field = _a2.field, variables = _a2.variables, fieldName = _a2.fieldName; var collected = collectSpecifierPaths(specifier, function(keyPath) { var firstKey = keyPath[0]; var firstChar = firstKey.charAt(0); if (firstChar === "@") { if (field && isNonEmptyArray(field.directives)) { var directiveName_1 = firstKey.slice(1); var d = field.directives.find(function(d2) { return d2.name.value === directiveName_1; }); var directiveArgs = d && argumentsObjectFromField(d, variables); return directiveArgs && extractKeyPath( directiveArgs, keyPath.slice(1) ); } return; } if (firstChar === "$") { var variableName = firstKey.slice(1); if (variables && hasOwn$1.call(variables, variableName)) { var varKeyPath = keyPath.slice(0); varKeyPath[0] = variableName; return extractKeyPath(variables, varKeyPath); } return; } if (args) { return extractKeyPath(args, keyPath); } }); var suffix = JSON.stringify(collected); if (args || suffix !== "{}") { fieldName += ":" + suffix; } return fieldName; }); } function collectSpecifierPaths(specifier, extractor) { var merger = new DeepMerger(); return getSpecifierPaths(specifier).reduce(function(collected, path) { var _a2; var toMerge = extractor(path); if (toMerge !== void 0) { for (var i2 = path.length - 1; i2 >= 0; --i2) { toMerge = (_a2 = {}, _a2[path[i2]] = toMerge, _a2); } collected = merger.merge(collected, toMerge); } return collected; }, /* @__PURE__ */ Object.create(null)); } function getSpecifierPaths(spec) { var info = lookupSpecifierInfo(spec); if (!info.paths) { var paths_1 = info.paths = []; var currentPath_1 = []; spec.forEach(function(s, i2) { if (isArray$1(s)) { getSpecifierPaths(s).forEach(function(p2) { return paths_1.push(currentPath_1.concat(p2)); }); currentPath_1.length = 0; } else { currentPath_1.push(s); if (!isArray$1(spec[i2 + 1])) { paths_1.push(currentPath_1.slice(0)); currentPath_1.length = 0; } } }); } return info.paths; } function extractKey(object, key) { return object[key]; } function extractKeyPath(object, path, extract) { extract = extract || extractKey; return normalize(path.reduce(function reducer(obj, key) { return isArray$1(obj) ? obj.map(function(child) { return reducer(child, key); }) : obj && extract(obj, key); }, object)); } function normalize(value) { if (isNonNullObject(value)) { if (isArray$1(value)) { return value.map(normalize); } return collectSpecifierPaths(Object.keys(value).sort(), function(path) { return extractKeyPath(value, path); }); } return value; } function argsFromFieldSpecifier(spec) { return spec.args !== void 0 ? spec.args : spec.field ? argumentsObjectFromField(spec.field, spec.variables) : null; } var nullKeyFieldsFn = function() { return void 0; }; var simpleKeyArgsFn = function(_args, context) { return context.fieldName; }; var mergeTrueFn = function(existing, incoming, _a2) { var mergeObjects = _a2.mergeObjects; return mergeObjects(existing, incoming); }; var mergeFalseFn = function(_, incoming) { return incoming; }; var Policies = function() { function Policies2(config) { this.config = config; this.typePolicies = /* @__PURE__ */ Object.create(null); this.toBeAdded = /* @__PURE__ */ Object.create(null); this.supertypeMap = /* @__PURE__ */ new Map(); this.fuzzySubtypes = /* @__PURE__ */ new Map(); this.rootIdsByTypename = /* @__PURE__ */ Object.create(null); this.rootTypenamesById = /* @__PURE__ */ Object.create(null); this.usingPossibleTypes = false; this.config = __assign$1({ dataIdFromObject: defaultDataIdFromObject }, config); this.cache = this.config.cache; this.setRootTypename("Query"); this.setRootTypename("Mutation"); this.setRootTypename("Subscription"); if (config.possibleTypes) { this.addPossibleTypes(config.possibleTypes); } if (config.typePolicies) { this.addTypePolicies(config.typePolicies); } } Policies2.prototype.identify = function(object, partialContext) { var _a2; var policies = this; var typename = partialContext && (partialContext.typename || ((_a2 = partialContext.storeObject) === null || _a2 === void 0 ? void 0 : _a2.__typename)) || object.__typename; if (typename === this.rootTypenamesById.ROOT_QUERY) { return ["ROOT_QUERY"]; } var storeObject = partialContext && partialContext.storeObject || object; var context = __assign$1(__assign$1({}, partialContext), { typename, storeObject, readField: partialContext && partialContext.readField || function() { var options = normalizeReadFieldOptions(arguments, storeObject); return policies.readField(options, { store: policies.cache["data"], variables: options.variables }); } }); var id; var policy2 = typename && this.getTypePolicy(typename); var keyFn = policy2 && policy2.keyFn || this.config.dataIdFromObject; while (keyFn) { var specifierOrId = keyFn(__assign$1(__assign$1({}, object), storeObject), context); if (isArray$1(specifierOrId)) { keyFn = keyFieldsFnFromSpecifier(specifierOrId); } else { id = specifierOrId; break; } } id = id ? String(id) : void 0; return context.keyObject ? [id, context.keyObject] : [id]; }; Policies2.prototype.addTypePolicies = function(typePolicies) { var _this = this; Object.keys(typePolicies).forEach(function(typename) { var _a2 = typePolicies[typename], queryType = _a2.queryType, mutationType = _a2.mutationType, subscriptionType = _a2.subscriptionType, incoming = __rest(_a2, ["queryType", "mutationType", "subscriptionType"]); if (queryType) _this.setRootTypename("Query", typename); if (mutationType) _this.setRootTypename("Mutation", typename); if (subscriptionType) _this.setRootTypename("Subscription", typename); if (hasOwn$1.call(_this.toBeAdded, typename)) { _this.toBeAdded[typename].push(incoming); } else { _this.toBeAdded[typename] = [incoming]; } }); }; Policies2.prototype.updateTypePolicy = function(typename, incoming) { var _this = this; var existing = this.getTypePolicy(typename); var keyFields = incoming.keyFields, fields = incoming.fields; function setMerge(existing2, merge2) { existing2.merge = typeof merge2 === "function" ? merge2 : merge2 === true ? mergeTrueFn : merge2 === false ? mergeFalseFn : existing2.merge; } setMerge(existing, incoming.merge); existing.keyFn = keyFields === false ? nullKeyFieldsFn : isArray$1(keyFields) ? keyFieldsFnFromSpecifier(keyFields) : typeof keyFields === "function" ? keyFields : existing.keyFn; if (fields) { Object.keys(fields).forEach(function(fieldName) { var existing2 = _this.getFieldPolicy(typename, fieldName, true); var incoming2 = fields[fieldName]; if (typeof incoming2 === "function") { existing2.read = incoming2; } else { var keyArgs = incoming2.keyArgs, read = incoming2.read, merge2 = incoming2.merge; existing2.keyFn = keyArgs === false ? simpleKeyArgsFn : isArray$1(keyArgs) ? keyArgsFnFromSpecifier(keyArgs) : typeof keyArgs === "function" ? keyArgs : existing2.keyFn; if (typeof read === "function") { existing2.read = read; } setMerge(existing2, merge2); } if (existing2.read && existing2.merge) { existing2.keyFn = existing2.keyFn || simpleKeyArgsFn; } }); } }; Policies2.prototype.setRootTypename = function(which, typename) { if (typename === void 0) { typename = which; } var rootId = "ROOT_" + which.toUpperCase(); var old = this.rootTypenamesById[rootId]; if (typename !== old) { invariant(!old || old === which, 5, which); if (old) delete this.rootIdsByTypename[old]; this.rootIdsByTypename[typename] = rootId; this.rootTypenamesById[rootId] = typename; } }; Policies2.prototype.addPossibleTypes = function(possibleTypes) { var _this = this; this.usingPossibleTypes = true; Object.keys(possibleTypes).forEach(function(supertype) { _this.getSupertypeSet(supertype, true); possibleTypes[supertype].forEach(function(subtype) { _this.getSupertypeSet(subtype, true).add(supertype); var match = subtype.match(TypeOrFieldNameRegExp); if (!match || match[0] !== subtype) { _this.fuzzySubtypes.set(subtype, new RegExp(subtype)); } }); }); }; Policies2.prototype.getTypePolicy = function(typename) { var _this = this; if (!hasOwn$1.call(this.typePolicies, typename)) { var policy_1 = this.typePolicies[typename] = /* @__PURE__ */ Object.create(null); policy_1.fields = /* @__PURE__ */ Object.create(null); var supertypes_1 = this.supertypeMap.get(typename); if (!supertypes_1 && this.fuzzySubtypes.size) { supertypes_1 = this.getSupertypeSet(typename, true); this.fuzzySubtypes.forEach(function(regExp, fuzzy) { if (regExp.test(typename)) { var fuzzySupertypes = _this.supertypeMap.get(fuzzy); if (fuzzySupertypes) { fuzzySupertypes.forEach(function(supertype) { return supertypes_1.add(supertype); }); } } }); } if (supertypes_1 && supertypes_1.size) { supertypes_1.forEach(function(supertype) { var _a2 = _this.getTypePolicy(supertype), fields = _a2.fields, rest = __rest(_a2, ["fields"]); Object.assign(policy_1, rest); Object.assign(policy_1.fields, fields); }); } } var inbox = this.toBeAdded[typename]; if (inbox && inbox.length) { inbox.splice(0).forEach(function(policy2) { _this.updateTypePolicy(typename, policy2); }); } return this.typePolicies[typename]; }; Policies2.prototype.getFieldPolicy = function(typename, fieldName, createIfMissing) { if (typename) { var fieldPolicies = this.getTypePolicy(typename).fields; return fieldPolicies[fieldName] || createIfMissing && (fieldPolicies[fieldName] = /* @__PURE__ */ Object.create(null)); } }; Policies2.prototype.getSupertypeSet = function(subtype, createIfMissing) { var supertypeSet = this.supertypeMap.get(subtype); if (!supertypeSet && createIfMissing) { this.supertypeMap.set(subtype, supertypeSet = /* @__PURE__ */ new Set()); } return supertypeSet; }; Policies2.prototype.fragmentMatches = function(fragment, typename, result2, variables) { var _this = this; if (!fragment.typeCondition) return true; if (!typename) return false; var supertype = fragment.typeCondition.name.value; if (typename === supertype) return true; if (this.usingPossibleTypes && this.supertypeMap.has(supertype)) { var typenameSupertypeSet = this.getSupertypeSet(typename, true); var workQueue_1 = [typenameSupertypeSet]; var maybeEnqueue_1 = function(subtype) { var supertypeSet2 = _this.getSupertypeSet(subtype, false); if (supertypeSet2 && supertypeSet2.size && workQueue_1.indexOf(supertypeSet2) < 0) { workQueue_1.push(supertypeSet2); } }; var needToCheckFuzzySubtypes = !!(result2 && this.fuzzySubtypes.size); var checkingFuzzySubtypes = false; for (var i2 = 0; i2 < workQueue_1.length; ++i2) { var supertypeSet = workQueue_1[i2]; if (supertypeSet.has(supertype)) { if (!typenameSupertypeSet.has(supertype)) { if (checkingFuzzySubtypes) { globalThis.__DEV__ !== false && invariant.warn(6, typename, supertype); } typenameSupertypeSet.add(supertype); } return true; } supertypeSet.forEach(maybeEnqueue_1); if (needToCheckFuzzySubtypes && i2 === workQueue_1.length - 1 && selectionSetMatchesResult(fragment.selectionSet, result2, variables)) { needToCheckFuzzySubtypes = false; checkingFuzzySubtypes = true; this.fuzzySubtypes.forEach(function(regExp, fuzzyString) { var match = typename.match(regExp); if (match && match[0] === typename) { maybeEnqueue_1(fuzzyString); } }); } } } return false; }; Policies2.prototype.hasKeyArgs = function(typename, fieldName) { var policy2 = this.getFieldPolicy(typename, fieldName, false); return !!(policy2 && policy2.keyFn); }; Policies2.prototype.getStoreFieldName = function(fieldSpec) { var typename = fieldSpec.typename, fieldName = fieldSpec.fieldName; var policy2 = this.getFieldPolicy(typename, fieldName, false); var storeFieldName; var keyFn = policy2 && policy2.keyFn; if (keyFn && typename) { var context = { typename, fieldName, field: fieldSpec.field || null, variables: fieldSpec.variables }; var args = argsFromFieldSpecifier(fieldSpec); while (keyFn) { var specifierOrString = keyFn(args, context); if (isArray$1(specifierOrString)) { keyFn = keyArgsFnFromSpecifier(specifierOrString); } else { storeFieldName = specifierOrString || fieldName; break; } } } if (storeFieldName === void 0) { storeFieldName = fieldSpec.field ? storeKeyNameFromField(fieldSpec.field, fieldSpec.variables) : getStoreKeyName(fieldName, argsFromFieldSpecifier(fieldSpec)); } if (storeFieldName === false) { return fieldName; } return fieldName === fieldNameFromStoreName(storeFieldName) ? storeFieldName : fieldName + ":" + storeFieldName; }; Policies2.prototype.readField = function(options, context) { var objectOrReference = options.from; if (!objectOrReference) return; var nameOrField = options.field || options.fieldName; if (!nameOrField) return; if (options.typename === void 0) { var typename = context.store.getFieldValue(objectOrReference, "__typename"); if (typename) options.typename = typename; } var storeFieldName = this.getStoreFieldName(options); var fieldName = fieldNameFromStoreName(storeFieldName); var existing = context.store.getFieldValue(objectOrReference, storeFieldName); var policy2 = this.getFieldPolicy(options.typename, fieldName, false); var read = policy2 && policy2.read; if (read) { var readOptions = makeFieldFunctionOptions(this, objectOrReference, options, context, context.store.getStorage(isReference(objectOrReference) ? objectOrReference.__ref : objectOrReference, storeFieldName)); return cacheSlot.withValue(this.cache, read, [ existing, readOptions ]); } return existing; }; Policies2.prototype.getReadFunction = function(typename, fieldName) { var policy2 = this.getFieldPolicy(typename, fieldName, false); return policy2 && policy2.read; }; Policies2.prototype.getMergeFunction = function(parentTypename, fieldName, childTypename) { var policy2 = this.getFieldPolicy(parentTypename, fieldName, false); var merge2 = policy2 && policy2.merge; if (!merge2 && childTypename) { policy2 = this.getTypePolicy(childTypename); merge2 = policy2 && policy2.merge; } return merge2; }; Policies2.prototype.runMergeFunction = function(existing, incoming, _a2, context, storage) { var field = _a2.field, typename = _a2.typename, merge2 = _a2.merge; if (merge2 === mergeTrueFn) { return makeMergeObjectsFunction(context.store)(existing, incoming); } if (merge2 === mergeFalseFn) { return incoming; } if (context.overwrite) { existing = void 0; } return merge2(existing, incoming, makeFieldFunctionOptions( this, void 0, { typename, fieldName: field.name.value, field, variables: context.variables }, context, storage || /* @__PURE__ */ Object.create(null) )); }; return Policies2; }(); function makeFieldFunctionOptions(policies, objectOrReference, fieldSpec, context, storage) { var storeFieldName = policies.getStoreFieldName(fieldSpec); var fieldName = fieldNameFromStoreName(storeFieldName); var variables = fieldSpec.variables || context.variables; var _a2 = context.store, toReference = _a2.toReference, canRead = _a2.canRead; return { args: argsFromFieldSpecifier(fieldSpec), field: fieldSpec.field || null, fieldName, storeFieldName, variables, isReference, toReference, storage, cache: policies.cache, canRead, readField: function() { return policies.readField(normalizeReadFieldOptions(arguments, objectOrReference, variables), context); }, mergeObjects: makeMergeObjectsFunction(context.store) }; } function normalizeReadFieldOptions(readFieldArgs, objectOrReference, variables) { var fieldNameOrOptions = readFieldArgs[0], from2 = readFieldArgs[1], argc = readFieldArgs.length; var options; if (typeof fieldNameOrOptions === "string") { options = { fieldName: fieldNameOrOptions, from: argc > 1 ? from2 : objectOrReference }; } else { options = __assign$1({}, fieldNameOrOptions); if (!hasOwn$1.call(options, "from")) { options.from = objectOrReference; } } if (globalThis.__DEV__ !== false && options.from === void 0) { globalThis.__DEV__ !== false && invariant.warn(7, stringifyForDisplay(Array.from(readFieldArgs))); } if (void 0 === options.variables) { options.variables = variables; } return options; } function makeMergeObjectsFunction(store2) { return function mergeObjects(existing, incoming) { if (isArray$1(existing) || isArray$1(incoming)) { throw newInvariantError(8); } if (isNonNullObject(existing) && isNonNullObject(incoming)) { var eType = store2.getFieldValue(existing, "__typename"); var iType = store2.getFieldValue(incoming, "__typename"); var typesDiffer = eType && iType && eType !== iType; if (typesDiffer) { return incoming; } if (isReference(existing) && storeValueIsStoreObject(incoming)) { store2.merge(existing.__ref, incoming); return existing; } if (storeValueIsStoreObject(existing) && isReference(incoming)) { store2.merge(existing, incoming.__ref); return incoming; } if (storeValueIsStoreObject(existing) && storeValueIsStoreObject(incoming)) { return __assign$1(__assign$1({}, existing), incoming); } } return incoming; }; } function getContextFlavor(context, clientOnly, deferred) { var key = "".concat(clientOnly).concat(deferred); var flavored = context.flavors.get(key); if (!flavored) { context.flavors.set(key, flavored = context.clientOnly === clientOnly && context.deferred === deferred ? context : __assign$1(__assign$1({}, context), { clientOnly, deferred })); } return flavored; } var StoreWriter = function() { function StoreWriter2(cache2, reader, fragments) { this.cache = cache2; this.reader = reader; this.fragments = fragments; } StoreWriter2.prototype.writeToStore = function(store2, _a2) { var _this = this; var query = _a2.query, result2 = _a2.result, dataId = _a2.dataId, variables = _a2.variables, overwrite = _a2.overwrite; var operationDefinition = getOperationDefinition(query); var merger = makeProcessedFieldsMerger(); variables = __assign$1(__assign$1({}, getDefaultValues(operationDefinition)), variables); var context = __assign$1(__assign$1({ store: store2, written: /* @__PURE__ */ Object.create(null), merge: function(existing, incoming) { return merger.merge(existing, incoming); }, variables, varString: canonicalStringify(variables) }, extractFragmentContext(query, this.fragments)), { overwrite: !!overwrite, incomingById: /* @__PURE__ */ new Map(), clientOnly: false, deferred: false, flavors: /* @__PURE__ */ new Map() }); var ref2 = this.processSelectionSet({ result: result2 || /* @__PURE__ */ Object.create(null), dataId, selectionSet: operationDefinition.selectionSet, mergeTree: { map: /* @__PURE__ */ new Map() }, context }); if (!isReference(ref2)) { throw newInvariantError(11, result2); } context.incomingById.forEach(function(_a3, dataId2) { var storeObject = _a3.storeObject, mergeTree = _a3.mergeTree, fieldNodeSet = _a3.fieldNodeSet; var entityRef = makeReference(dataId2); if (mergeTree && mergeTree.map.size) { var applied = _this.applyMerges(mergeTree, entityRef, storeObject, context); if (isReference(applied)) { return; } storeObject = applied; } if (globalThis.__DEV__ !== false && !context.overwrite) { var fieldsWithSelectionSets_1 = /* @__PURE__ */ Object.create(null); fieldNodeSet.forEach(function(field) { if (field.selectionSet) { fieldsWithSelectionSets_1[field.name.value] = true; } }); var hasSelectionSet_1 = function(storeFieldName) { return fieldsWithSelectionSets_1[fieldNameFromStoreName(storeFieldName)] === true; }; var hasMergeFunction_1 = function(storeFieldName) { var childTree = mergeTree && mergeTree.map.get(storeFieldName); return Boolean(childTree && childTree.info && childTree.info.merge); }; Object.keys(storeObject).forEach(function(storeFieldName) { if (hasSelectionSet_1(storeFieldName) && !hasMergeFunction_1(storeFieldName)) { warnAboutDataLoss(entityRef, storeObject, storeFieldName, context.store); } }); } store2.merge(dataId2, storeObject); }); store2.retain(ref2.__ref); return ref2; }; StoreWriter2.prototype.processSelectionSet = function(_a2) { var _this = this; var dataId = _a2.dataId, result2 = _a2.result, selectionSet = _a2.selectionSet, context = _a2.context, mergeTree = _a2.mergeTree; var policies = this.cache.policies; var incoming = /* @__PURE__ */ Object.create(null); var typename = dataId && policies.rootTypenamesById[dataId] || getTypenameFromResult(result2, selectionSet, context.fragmentMap) || dataId && context.store.get(dataId, "__typename"); if ("string" === typeof typename) { incoming.__typename = typename; } var readField = function() { var options = normalizeReadFieldOptions(arguments, incoming, context.variables); if (isReference(options.from)) { var info = context.incomingById.get(options.from.__ref); if (info) { var result_1 = policies.readField(__assign$1(__assign$1({}, options), { from: info.storeObject }), context); if (result_1 !== void 0) { return result_1; } } } return policies.readField(options, context); }; var fieldNodeSet = /* @__PURE__ */ new Set(); this.flattenFields( selectionSet, result2, context, typename ).forEach(function(context2, field) { var _a3; var resultFieldKey = resultKeyNameFromField(field); var value = result2[resultFieldKey]; fieldNodeSet.add(field); if (value !== void 0) { var storeFieldName = policies.getStoreFieldName({ typename, fieldName: field.name.value, field, variables: context2.variables }); var childTree = getChildMergeTree(mergeTree, storeFieldName); var incomingValue = _this.processFieldValue( value, field, field.selectionSet ? getContextFlavor(context2, false, false) : context2, childTree ); var childTypename = void 0; if (field.selectionSet && (isReference(incomingValue) || storeValueIsStoreObject(incomingValue))) { childTypename = readField("__typename", incomingValue); } var merge2 = policies.getMergeFunction(typename, field.name.value, childTypename); if (merge2) { childTree.info = { field, typename, merge: merge2 }; } else { maybeRecycleChildMergeTree(mergeTree, storeFieldName); } incoming = context2.merge(incoming, (_a3 = {}, _a3[storeFieldName] = incomingValue, _a3)); } else if (globalThis.__DEV__ !== false && !context2.clientOnly && !context2.deferred && !addTypenameToDocument.added(field) && !policies.getReadFunction(typename, field.name.value)) { globalThis.__DEV__ !== false && invariant.error(12, resultKeyNameFromField(field), result2); } }); try { var _b = policies.identify(result2, { typename, selectionSet, fragmentMap: context.fragmentMap, storeObject: incoming, readField }), id = _b[0], keyObject = _b[1]; dataId = dataId || id; if (keyObject) { incoming = context.merge(incoming, keyObject); } } catch (e2) { if (!dataId) throw e2; } if ("string" === typeof dataId) { var dataRef = makeReference(dataId); var sets = context.written[dataId] || (context.written[dataId] = []); if (sets.indexOf(selectionSet) >= 0) return dataRef; sets.push(selectionSet); if (this.reader && this.reader.isFresh(result2, dataRef, selectionSet, context)) { return dataRef; } var previous_1 = context.incomingById.get(dataId); if (previous_1) { previous_1.storeObject = context.merge(previous_1.storeObject, incoming); previous_1.mergeTree = mergeMergeTrees(previous_1.mergeTree, mergeTree); fieldNodeSet.forEach(function(field) { return previous_1.fieldNodeSet.add(field); }); } else { context.incomingById.set(dataId, { storeObject: incoming, mergeTree: mergeTreeIsEmpty(mergeTree) ? void 0 : mergeTree, fieldNodeSet }); } return dataRef; } return incoming; }; StoreWriter2.prototype.processFieldValue = function(value, field, context, mergeTree) { var _this = this; if (!field.selectionSet || value === null) { return globalThis.__DEV__ !== false ? cloneDeep(value) : value; } if (isArray$1(value)) { return value.map(function(item, i2) { var value2 = _this.processFieldValue(item, field, context, getChildMergeTree(mergeTree, i2)); maybeRecycleChildMergeTree(mergeTree, i2); return value2; }); } return this.processSelectionSet({ result: value, selectionSet: field.selectionSet, context, mergeTree }); }; StoreWriter2.prototype.flattenFields = function(selectionSet, result2, context, typename) { if (typename === void 0) { typename = getTypenameFromResult(result2, selectionSet, context.fragmentMap); } var fieldMap = /* @__PURE__ */ new Map(); var policies = this.cache.policies; var limitingTrie = new Trie(false); (function flatten(selectionSet2, inheritedContext) { var visitedNode = limitingTrie.lookup( selectionSet2, inheritedContext.clientOnly, inheritedContext.deferred ); if (visitedNode.visited) return; visitedNode.visited = true; selectionSet2.selections.forEach(function(selection) { if (!shouldInclude(selection, context.variables)) return; var clientOnly = inheritedContext.clientOnly, deferred = inheritedContext.deferred; if (!(clientOnly && deferred) && isNonEmptyArray(selection.directives)) { selection.directives.forEach(function(dir) { var name = dir.name.value; if (name === "client") clientOnly = true; if (name === "defer") { var args = argumentsObjectFromField(dir, context.variables); if (!args || args.if !== false) { deferred = true; } } }); } if (isField(selection)) { var existing = fieldMap.get(selection); if (existing) { clientOnly = clientOnly && existing.clientOnly; deferred = deferred && existing.deferred; } fieldMap.set(selection, getContextFlavor(context, clientOnly, deferred)); } else { var fragment = getFragmentFromSelection(selection, context.lookupFragment); if (!fragment && selection.kind === Kind.FRAGMENT_SPREAD) { throw newInvariantError(13, selection.name.value); } if (fragment && policies.fragmentMatches(fragment, typename, result2, context.variables)) { flatten(fragment.selectionSet, getContextFlavor(context, clientOnly, deferred)); } } }); })(selectionSet, context); return fieldMap; }; StoreWriter2.prototype.applyMerges = function(mergeTree, existing, incoming, context, getStorageArgs) { var _a2; var _this = this; if (mergeTree.map.size && !isReference(incoming)) { var e_1 = !isArray$1(incoming) && (isReference(existing) || storeValueIsStoreObject(existing)) ? existing : void 0; var i_1 = incoming; if (e_1 && !getStorageArgs) { getStorageArgs = [isReference(e_1) ? e_1.__ref : e_1]; } var changedFields_1; var getValue_1 = function(from2, name) { return isArray$1(from2) ? typeof name === "number" ? from2[name] : void 0 : context.store.getFieldValue(from2, String(name)); }; mergeTree.map.forEach(function(childTree, storeFieldName) { var eVal = getValue_1(e_1, storeFieldName); var iVal = getValue_1(i_1, storeFieldName); if (void 0 === iVal) return; if (getStorageArgs) { getStorageArgs.push(storeFieldName); } var aVal = _this.applyMerges(childTree, eVal, iVal, context, getStorageArgs); if (aVal !== iVal) { changedFields_1 = changedFields_1 || /* @__PURE__ */ new Map(); changedFields_1.set(storeFieldName, aVal); } if (getStorageArgs) { invariant(getStorageArgs.pop() === storeFieldName); } }); if (changedFields_1) { incoming = isArray$1(i_1) ? i_1.slice(0) : __assign$1({}, i_1); changedFields_1.forEach(function(value, name) { incoming[name] = value; }); } } if (mergeTree.info) { return this.cache.policies.runMergeFunction(existing, incoming, mergeTree.info, context, getStorageArgs && (_a2 = context.store).getStorage.apply(_a2, getStorageArgs)); } return incoming; }; return StoreWriter2; }(); var emptyMergeTreePool = []; function getChildMergeTree(_a2, name) { var map2 = _a2.map; if (!map2.has(name)) { map2.set(name, emptyMergeTreePool.pop() || { map: /* @__PURE__ */ new Map() }); } return map2.get(name); } function mergeMergeTrees(left, right) { if (left === right || !right || mergeTreeIsEmpty(right)) return left; if (!left || mergeTreeIsEmpty(left)) return right; var info = left.info && right.info ? __assign$1(__assign$1({}, left.info), right.info) : left.info || right.info; var needToMergeMaps = left.map.size && right.map.size; var map2 = needToMergeMaps ? /* @__PURE__ */ new Map() : left.map.size ? left.map : right.map; var merged = { info, map: map2 }; if (needToMergeMaps) { var remainingRightKeys_1 = new Set(right.map.keys()); left.map.forEach(function(leftTree, key) { merged.map.set(key, mergeMergeTrees(leftTree, right.map.get(key))); remainingRightKeys_1.delete(key); }); remainingRightKeys_1.forEach(function(key) { merged.map.set(key, mergeMergeTrees(right.map.get(key), left.map.get(key))); }); } return merged; } function mergeTreeIsEmpty(tree) { return !tree || !(tree.info || tree.map.size); } function maybeRecycleChildMergeTree(_a2, name) { var map2 = _a2.map; var childTree = map2.get(name); if (childTree && mergeTreeIsEmpty(childTree)) { emptyMergeTreePool.push(childTree); map2.delete(name); } } var warnings = /* @__PURE__ */ new Set(); function warnAboutDataLoss(existingRef, incomingObj, storeFieldName, store2) { var getChild = function(objOrRef) { var child = store2.getFieldValue(objOrRef, storeFieldName); return typeof child === "object" && child; }; var existing = getChild(existingRef); if (!existing) return; var incoming = getChild(incomingObj); if (!incoming) return; if (isReference(existing)) return; if (equal(existing, incoming)) return; if (Object.keys(existing).every(function(key) { return store2.getFieldValue(incoming, key) !== void 0; })) { return; } var parentType = store2.getFieldValue(existingRef, "__typename") || store2.getFieldValue(incomingObj, "__typename"); var fieldName = fieldNameFromStoreName(storeFieldName); var typeDotName = "".concat(parentType, ".").concat(fieldName); if (warnings.has(typeDotName)) return; warnings.add(typeDotName); var childTypenames = []; if (!isArray$1(existing) && !isArray$1(incoming)) { [existing, incoming].forEach(function(child) { var typename = store2.getFieldValue(child, "__typename"); if (typeof typename === "string" && !childTypenames.includes(typename)) { childTypenames.push(typename); } }); } globalThis.__DEV__ !== false && invariant.warn(14, fieldName, parentType, childTypenames.length ? "either ensure all objects of type " + childTypenames.join(" and ") + " have an ID or a custom merge function, or " : "", typeDotName, __assign$1({}, existing), __assign$1({}, incoming)); } var InMemoryCache = function(_super) { __extends(InMemoryCache2, _super); function InMemoryCache2(config) { if (config === void 0) { config = {}; } var _this = _super.call(this) || this; _this.watches = /* @__PURE__ */ new Set(); _this.addTypenameTransform = new DocumentTransform(addTypenameToDocument); _this.assumeImmutableResults = true; _this.makeVar = makeVar; _this.txCount = 0; _this.config = normalizeConfig(config); _this.addTypename = !!_this.config.addTypename; _this.policies = new Policies({ cache: _this, dataIdFromObject: _this.config.dataIdFromObject, possibleTypes: _this.config.possibleTypes, typePolicies: _this.config.typePolicies }); _this.init(); return _this; } InMemoryCache2.prototype.init = function() { var rootStore = this.data = new EntityStore.Root({ policies: this.policies, resultCaching: this.config.resultCaching }); this.optimisticData = rootStore.stump; this.resetResultCache(); }; InMemoryCache2.prototype.resetResultCache = function(resetResultIdentities) { var _this = this; var previousReader = this.storeReader; var fragments = this.config.fragments; this.storeWriter = new StoreWriter(this, this.storeReader = new StoreReader({ cache: this, addTypename: this.addTypename, resultCacheMaxSize: this.config.resultCacheMaxSize, canonizeResults: shouldCanonizeResults(this.config), canon: resetResultIdentities ? void 0 : previousReader && previousReader.canon, fragments }), fragments); this.maybeBroadcastWatch = wrap(function(c2, options) { return _this.broadcastWatch(c2, options); }, { max: this.config.resultCacheMaxSize || cacheSizes["inMemoryCache.maybeBroadcastWatch"] || 5e3, makeCacheKey: function(c2) { var store2 = c2.optimistic ? _this.optimisticData : _this.data; if (supportsResultCaching(store2)) { var optimistic = c2.optimistic, id = c2.id, variables = c2.variables; return store2.makeCacheKey( c2.query, c2.callback, canonicalStringify({ optimistic, id, variables }) ); } } }); (/* @__PURE__ */ new Set([this.data.group, this.optimisticData.group])).forEach(function(group) { return group.resetCaching(); }); }; InMemoryCache2.prototype.restore = function(data2) { this.init(); if (data2) this.data.replace(data2); return this; }; InMemoryCache2.prototype.extract = function(optimistic) { if (optimistic === void 0) { optimistic = false; } return (optimistic ? this.optimisticData : this.data).extract(); }; InMemoryCache2.prototype.read = function(options) { var _a2 = options.returnPartialData, returnPartialData = _a2 === void 0 ? false : _a2; try { return this.storeReader.diffQueryAgainstStore(__assign$1(__assign$1({}, options), { store: options.optimistic ? this.optimisticData : this.data, config: this.config, returnPartialData })).result || null; } catch (e2) { if (e2 instanceof MissingFieldError) { return null; } throw e2; } }; InMemoryCache2.prototype.write = function(options) { try { ++this.txCount; return this.storeWriter.writeToStore(this.data, options); } finally { if (!--this.txCount && options.broadcast !== false) { this.broadcastWatches(); } } }; InMemoryCache2.prototype.modify = function(options) { if (hasOwn$1.call(options, "id") && !options.id) { return false; } var store2 = options.optimistic ? this.optimisticData : this.data; try { ++this.txCount; return store2.modify(options.id || "ROOT_QUERY", options.fields); } finally { if (!--this.txCount && options.broadcast !== false) { this.broadcastWatches(); } } }; InMemoryCache2.prototype.diff = function(options) { return this.storeReader.diffQueryAgainstStore(__assign$1(__assign$1({}, options), { store: options.optimistic ? this.optimisticData : this.data, rootId: options.id || "ROOT_QUERY", config: this.config })); }; InMemoryCache2.prototype.watch = function(watch2) { var _this = this; if (!this.watches.size) { recallCache(this); } this.watches.add(watch2); if (watch2.immediate) { this.maybeBroadcastWatch(watch2); } return function() { if (_this.watches.delete(watch2) && !_this.watches.size) { forgetCache(_this); } _this.maybeBroadcastWatch.forget(watch2); }; }; InMemoryCache2.prototype.gc = function(options) { var _a2; canonicalStringify.reset(); print.reset(); this.addTypenameTransform.resetCache(); (_a2 = this.config.fragments) === null || _a2 === void 0 ? void 0 : _a2.resetCaches(); var ids = this.optimisticData.gc(); if (options && !this.txCount) { if (options.resetResultCache) { this.resetResultCache(options.resetResultIdentities); } else if (options.resetResultIdentities) { this.storeReader.resetCanon(); } } return ids; }; InMemoryCache2.prototype.retain = function(rootId, optimistic) { return (optimistic ? this.optimisticData : this.data).retain(rootId); }; InMemoryCache2.prototype.release = function(rootId, optimistic) { return (optimistic ? this.optimisticData : this.data).release(rootId); }; InMemoryCache2.prototype.identify = function(object) { if (isReference(object)) return object.__ref; try { return this.policies.identify(object)[0]; } catch (e2) { globalThis.__DEV__ !== false && invariant.warn(e2); } }; InMemoryCache2.prototype.evict = function(options) { if (!options.id) { if (hasOwn$1.call(options, "id")) { return false; } options = __assign$1(__assign$1({}, options), { id: "ROOT_QUERY" }); } try { ++this.txCount; return this.optimisticData.evict(options, this.data); } finally { if (!--this.txCount && options.broadcast !== false) { this.broadcastWatches(); } } }; InMemoryCache2.prototype.reset = function(options) { var _this = this; this.init(); canonicalStringify.reset(); if (options && options.discardWatches) { this.watches.forEach(function(watch2) { return _this.maybeBroadcastWatch.forget(watch2); }); this.watches.clear(); forgetCache(this); } else { this.broadcastWatches(); } return Promise.resolve(); }; InMemoryCache2.prototype.removeOptimistic = function(idToRemove) { var newOptimisticData = this.optimisticData.removeLayer(idToRemove); if (newOptimisticData !== this.optimisticData) { this.optimisticData = newOptimisticData; this.broadcastWatches(); } }; InMemoryCache2.prototype.batch = function(options) { var _this = this; var update2 = options.update, _a2 = options.optimistic, optimistic = _a2 === void 0 ? true : _a2, removeOptimistic = options.removeOptimistic, onWatchUpdated = options.onWatchUpdated; var updateResult; var perform = function(layer) { var _a3 = _this, data2 = _a3.data, optimisticData = _a3.optimisticData; ++_this.txCount; if (layer) { _this.data = _this.optimisticData = layer; } try { return updateResult = update2(_this); } finally { --_this.txCount; _this.data = data2; _this.optimisticData = optimisticData; } }; var alreadyDirty = /* @__PURE__ */ new Set(); if (onWatchUpdated && !this.txCount) { this.broadcastWatches(__assign$1(__assign$1({}, options), { onWatchUpdated: function(watch2) { alreadyDirty.add(watch2); return false; } })); } if (typeof optimistic === "string") { this.optimisticData = this.optimisticData.addLayer(optimistic, perform); } else if (optimistic === false) { perform(this.data); } else { perform(); } if (typeof removeOptimistic === "string") { this.optimisticData = this.optimisticData.removeLayer(removeOptimistic); } if (onWatchUpdated && alreadyDirty.size) { this.broadcastWatches(__assign$1(__assign$1({}, options), { onWatchUpdated: function(watch2, diff2) { var result2 = onWatchUpdated.call(this, watch2, diff2); if (result2 !== false) { alreadyDirty.delete(watch2); } return result2; } })); if (alreadyDirty.size) { alreadyDirty.forEach(function(watch2) { return _this.maybeBroadcastWatch.dirty(watch2); }); } } else { this.broadcastWatches(options); } return updateResult; }; InMemoryCache2.prototype.performTransaction = function(update2, optimisticId) { return this.batch({ update: update2, optimistic: optimisticId || optimisticId !== null }); }; InMemoryCache2.prototype.transformDocument = function(document2) { return this.addTypenameToDocument(this.addFragmentsToDocument(document2)); }; InMemoryCache2.prototype.broadcastWatches = function(options) { var _this = this; if (!this.txCount) { this.watches.forEach(function(c2) { return _this.maybeBroadcastWatch(c2, options); }); } }; InMemoryCache2.prototype.addFragmentsToDocument = function(document2) { var fragments = this.config.fragments; return fragments ? fragments.transform(document2) : document2; }; InMemoryCache2.prototype.addTypenameToDocument = function(document2) { if (this.addTypename) { return this.addTypenameTransform.transformDocument(document2); } return document2; }; InMemoryCache2.prototype.broadcastWatch = function(c2, options) { var lastDiff = c2.lastDiff; var diff2 = this.diff(c2); if (options) { if (c2.optimistic && typeof options.optimistic === "string") { diff2.fromOptimisticTransaction = true; } if (options.onWatchUpdated && options.onWatchUpdated.call(this, c2, diff2, lastDiff) === false) { return; } } if (!lastDiff || !equal(lastDiff.result, diff2.result)) { c2.callback(c2.lastDiff = diff2, lastDiff); } }; return InMemoryCache2; }(ApolloCache); if (globalThis.__DEV__ !== false) { InMemoryCache.prototype.getMemoryInternals = getInMemoryCacheMemoryInternals; } var NetworkStatus; (function(NetworkStatus2) { NetworkStatus2[NetworkStatus2["loading"] = 1] = "loading"; NetworkStatus2[NetworkStatus2["setVariables"] = 2] = "setVariables"; NetworkStatus2[NetworkStatus2["fetchMore"] = 3] = "fetchMore"; NetworkStatus2[NetworkStatus2["refetch"] = 4] = "refetch"; NetworkStatus2[NetworkStatus2["poll"] = 6] = "poll"; NetworkStatus2[NetworkStatus2["ready"] = 7] = "ready"; NetworkStatus2[NetworkStatus2["error"] = 8] = "error"; })(NetworkStatus || (NetworkStatus = {})); function isNetworkRequestInFlight(networkStatus) { return networkStatus ? networkStatus < 7 : false; } var assign$2 = Object.assign, hasOwnProperty$2 = Object.hasOwnProperty; var ObservableQuery = function(_super) { __extends(ObservableQuery2, _super); function ObservableQuery2(_a2) { var queryManager = _a2.queryManager, queryInfo = _a2.queryInfo, options = _a2.options; var _this = _super.call(this, function(observer) { try { var subObserver = observer._subscription._observer; if (subObserver && !subObserver.error) { subObserver.error = defaultSubscriptionObserverErrorCallback; } } catch (_a3) { } var first = !_this.observers.size; _this.observers.add(observer); var last = _this.last; if (last && last.error) { observer.error && observer.error(last.error); } else if (last && last.result) { observer.next && observer.next(last.result); } if (first) { _this.reobserve().catch(function() { }); } return function() { if (_this.observers.delete(observer) && !_this.observers.size) { _this.tearDownQuery(); } }; }) || this; _this.observers = /* @__PURE__ */ new Set(); _this.subscriptions = /* @__PURE__ */ new Set(); _this.queryInfo = queryInfo; _this.queryManager = queryManager; _this.waitForOwnResult = skipCacheDataFor(options.fetchPolicy); _this.isTornDown = false; _this.subscribeToMore = _this.subscribeToMore.bind(_this); var _b = queryManager.defaultOptions.watchQuery, _c = _b === void 0 ? {} : _b, _d = _c.fetchPolicy, defaultFetchPolicy = _d === void 0 ? "cache-first" : _d; var _e = options.fetchPolicy, fetchPolicy = _e === void 0 ? defaultFetchPolicy : _e, _f = options.initialFetchPolicy, initialFetchPolicy = _f === void 0 ? fetchPolicy === "standby" ? defaultFetchPolicy : fetchPolicy : _f; _this.options = __assign$1(__assign$1({}, options), { initialFetchPolicy, fetchPolicy }); _this.queryId = queryInfo.queryId || queryManager.generateQueryId(); var opDef = getOperationDefinition(_this.query); _this.queryName = opDef && opDef.name && opDef.name.value; return _this; } Object.defineProperty(ObservableQuery2.prototype, "query", { get: function() { return this.lastQuery || this.options.query; }, enumerable: false, configurable: true }); Object.defineProperty(ObservableQuery2.prototype, "variables", { get: function() { return this.options.variables; }, enumerable: false, configurable: true }); ObservableQuery2.prototype.result = function() { var _this = this; return new Promise(function(resolve2, reject) { var observer = { next: function(result2) { resolve2(result2); _this.observers.delete(observer); if (!_this.observers.size) { _this.queryManager.removeQuery(_this.queryId); } setTimeout(function() { subscription.unsubscribe(); }, 0); }, error: reject }; var subscription = _this.subscribe(observer); }); }; ObservableQuery2.prototype.resetDiff = function() { this.queryInfo.resetDiff(); }; ObservableQuery2.prototype.getCurrentResult = function(saveAsLastResult) { if (saveAsLastResult === void 0) { saveAsLastResult = true; } var lastResult = this.getLastResult(true); var networkStatus = this.queryInfo.networkStatus || lastResult && lastResult.networkStatus || NetworkStatus.ready; var result2 = __assign$1(__assign$1({}, lastResult), { loading: isNetworkRequestInFlight(networkStatus), networkStatus }); var _a2 = this.options.fetchPolicy, fetchPolicy = _a2 === void 0 ? "cache-first" : _a2; if (skipCacheDataFor(fetchPolicy) || this.queryManager.getDocumentInfo(this.query).hasForcedResolvers) ; else if (this.waitForOwnResult) { this.queryInfo["updateWatch"](); } else { var diff2 = this.queryInfo.getDiff(); if (diff2.complete || this.options.returnPartialData) { result2.data = diff2.result; } if (equal(result2.data, {})) { result2.data = void 0; } if (diff2.complete) { delete result2.partial; if (diff2.complete && result2.networkStatus === NetworkStatus.loading && (fetchPolicy === "cache-first" || fetchPolicy === "cache-only")) { result2.networkStatus = NetworkStatus.ready; result2.loading = false; } } else { result2.partial = true; } if (globalThis.__DEV__ !== false && !diff2.complete && !this.options.partialRefetch && !result2.loading && !result2.data && !result2.error) { logMissingFieldErrors(diff2.missing); } } if (saveAsLastResult) { this.updateLastResult(result2); } return result2; }; ObservableQuery2.prototype.isDifferentFromLastResult = function(newResult, variables) { if (!this.last) { return true; } var resultIsDifferent = this.queryManager.getDocumentInfo(this.query).hasNonreactiveDirective ? !equalByQuery(this.query, this.last.result, newResult, this.variables) : !equal(this.last.result, newResult); return resultIsDifferent || variables && !equal(this.last.variables, variables); }; ObservableQuery2.prototype.getLast = function(key, variablesMustMatch) { var last = this.last; if (last && last[key] && (!variablesMustMatch || equal(last.variables, this.variables))) { return last[key]; } }; ObservableQuery2.prototype.getLastResult = function(variablesMustMatch) { return this.getLast("result", variablesMustMatch); }; ObservableQuery2.prototype.getLastError = function(variablesMustMatch) { return this.getLast("error", variablesMustMatch); }; ObservableQuery2.prototype.resetLastResults = function() { delete this.last; this.isTornDown = false; }; ObservableQuery2.prototype.resetQueryStoreErrors = function() { this.queryManager.resetErrors(this.queryId); }; ObservableQuery2.prototype.refetch = function(variables) { var _a2; var reobserveOptions = { pollInterval: 0 }; var fetchPolicy = this.options.fetchPolicy; if (fetchPolicy === "cache-and-network") { reobserveOptions.fetchPolicy = fetchPolicy; } else if (fetchPolicy === "no-cache") { reobserveOptions.fetchPolicy = "no-cache"; } else { reobserveOptions.fetchPolicy = "network-only"; } if (globalThis.__DEV__ !== false && variables && hasOwnProperty$2.call(variables, "variables")) { var queryDef = getQueryDefinition(this.query); var vars = queryDef.variableDefinitions; if (!vars || !vars.some(function(v) { return v.variable.name.value === "variables"; })) { globalThis.__DEV__ !== false && invariant.warn( 20, variables, ((_a2 = queryDef.name) === null || _a2 === void 0 ? void 0 : _a2.value) || queryDef ); } } if (variables && !equal(this.options.variables, variables)) { reobserveOptions.variables = this.options.variables = __assign$1(__assign$1({}, this.options.variables), variables); } this.queryInfo.resetLastWrite(); return this.reobserve(reobserveOptions, NetworkStatus.refetch); }; ObservableQuery2.prototype.fetchMore = function(fetchMoreOptions) { var _this = this; var combinedOptions = __assign$1(__assign$1({}, fetchMoreOptions.query ? fetchMoreOptions : __assign$1(__assign$1(__assign$1(__assign$1({}, this.options), { query: this.options.query }), fetchMoreOptions), { variables: __assign$1(__assign$1({}, this.options.variables), fetchMoreOptions.variables) })), { fetchPolicy: "no-cache" }); combinedOptions.query = this.transformDocument(combinedOptions.query); var qid = this.queryManager.generateQueryId(); this.lastQuery = fetchMoreOptions.query ? this.transformDocument(this.options.query) : combinedOptions.query; var queryInfo = this.queryInfo; var originalNetworkStatus = queryInfo.networkStatus; queryInfo.networkStatus = NetworkStatus.fetchMore; if (combinedOptions.notifyOnNetworkStatusChange) { this.observe(); } var updatedQuerySet = /* @__PURE__ */ new Set(); var updateQuery = fetchMoreOptions === null || fetchMoreOptions === void 0 ? void 0 : fetchMoreOptions.updateQuery; var isCached = this.options.fetchPolicy !== "no-cache"; if (!isCached) { invariant(updateQuery, 21); } return this.queryManager.fetchQuery(qid, combinedOptions, NetworkStatus.fetchMore).then(function(fetchMoreResult) { _this.queryManager.removeQuery(qid); if (queryInfo.networkStatus === NetworkStatus.fetchMore) { queryInfo.networkStatus = originalNetworkStatus; } if (isCached) { _this.queryManager.cache.batch({ update: function(cache2) { var updateQuery2 = fetchMoreOptions.updateQuery; if (updateQuery2) { cache2.updateQuery({ query: _this.query, variables: _this.variables, returnPartialData: true, optimistic: false }, function(previous) { return updateQuery2(previous, { fetchMoreResult: fetchMoreResult.data, variables: combinedOptions.variables }); }); } else { cache2.writeQuery({ query: combinedOptions.query, variables: combinedOptions.variables, data: fetchMoreResult.data }); } }, onWatchUpdated: function(watch2) { updatedQuerySet.add(watch2.query); } }); } else { var lastResult = _this.getLast("result"); var data2 = updateQuery(lastResult.data, { fetchMoreResult: fetchMoreResult.data, variables: combinedOptions.variables }); _this.reportResult(__assign$1(__assign$1({}, lastResult), { data: data2 }), _this.variables); } return fetchMoreResult; }).finally(function() { if (isCached && !updatedQuerySet.has(_this.query)) { reobserveCacheFirst(_this); } }); }; ObservableQuery2.prototype.subscribeToMore = function(options) { var _this = this; var subscription = this.queryManager.startGraphQLSubscription({ query: options.document, variables: options.variables, context: options.context }).subscribe({ next: function(subscriptionData) { var updateQuery = options.updateQuery; if (updateQuery) { _this.updateQuery(function(previous, _a2) { var variables = _a2.variables; return updateQuery(previous, { subscriptionData, variables }); }); } }, error: function(err) { if (options.onError) { options.onError(err); return; } globalThis.__DEV__ !== false && invariant.error(22, err); } }); this.subscriptions.add(subscription); return function() { if (_this.subscriptions.delete(subscription)) { subscription.unsubscribe(); } }; }; ObservableQuery2.prototype.setOptions = function(newOptions) { return this.reobserve(newOptions); }; ObservableQuery2.prototype.silentSetOptions = function(newOptions) { var mergedOptions = compact(this.options, newOptions || {}); assign$2(this.options, mergedOptions); }; ObservableQuery2.prototype.setVariables = function(variables) { if (equal(this.variables, variables)) { return this.observers.size ? this.result() : Promise.resolve(); } this.options.variables = variables; if (!this.observers.size) { return Promise.resolve(); } return this.reobserve({ fetchPolicy: this.options.initialFetchPolicy, variables }, NetworkStatus.setVariables); }; ObservableQuery2.prototype.updateQuery = function(mapFn) { var queryManager = this.queryManager; var result2 = queryManager.cache.diff({ query: this.options.query, variables: this.variables, returnPartialData: true, optimistic: false }).result; var newResult = mapFn(result2, { variables: this.variables }); if (newResult) { queryManager.cache.writeQuery({ query: this.options.query, data: newResult, variables: this.variables }); queryManager.broadcastQueries(); } }; ObservableQuery2.prototype.startPolling = function(pollInterval) { this.options.pollInterval = pollInterval; this.updatePolling(); }; ObservableQuery2.prototype.stopPolling = function() { this.options.pollInterval = 0; this.updatePolling(); }; ObservableQuery2.prototype.applyNextFetchPolicy = function(reason, options) { if (options.nextFetchPolicy) { var _a2 = options.fetchPolicy, fetchPolicy = _a2 === void 0 ? "cache-first" : _a2, _b = options.initialFetchPolicy, initialFetchPolicy = _b === void 0 ? fetchPolicy : _b; if (fetchPolicy === "standby") ; else if (typeof options.nextFetchPolicy === "function") { options.fetchPolicy = options.nextFetchPolicy(fetchPolicy, { reason, options, observable: this, initialFetchPolicy }); } else if (reason === "variables-changed") { options.fetchPolicy = initialFetchPolicy; } else { options.fetchPolicy = options.nextFetchPolicy; } } return options.fetchPolicy; }; ObservableQuery2.prototype.fetch = function(options, newNetworkStatus, query) { this.queryManager.setObservableQuery(this); return this.queryManager["fetchConcastWithInfo"](this.queryId, options, newNetworkStatus, query); }; ObservableQuery2.prototype.updatePolling = function() { var _this = this; if (this.queryManager.ssrMode) { return; } var _a2 = this, pollingInfo = _a2.pollingInfo, pollInterval = _a2.options.pollInterval; if (!pollInterval || !this.hasObservers()) { if (pollingInfo) { clearTimeout(pollingInfo.timeout); delete this.pollingInfo; } return; } if (pollingInfo && pollingInfo.interval === pollInterval) { return; } invariant(pollInterval, 23); var info = pollingInfo || (this.pollingInfo = {}); info.interval = pollInterval; var maybeFetch = function() { var _a3, _b; if (_this.pollingInfo) { if (!isNetworkRequestInFlight(_this.queryInfo.networkStatus) && !((_b = (_a3 = _this.options).skipPollAttempt) === null || _b === void 0 ? void 0 : _b.call(_a3))) { _this.reobserve({ fetchPolicy: _this.options.initialFetchPolicy === "no-cache" ? "no-cache" : "network-only" }, NetworkStatus.poll).then(poll, poll); } else { poll(); } } }; var poll = function() { var info2 = _this.pollingInfo; if (info2) { clearTimeout(info2.timeout); info2.timeout = setTimeout(maybeFetch, info2.interval); } }; poll(); }; ObservableQuery2.prototype.updateLastResult = function(newResult, variables) { if (variables === void 0) { variables = this.variables; } var error = this.getLastError(); if (error && this.last && !equal(variables, this.last.variables)) { error = void 0; } return this.last = __assign$1({ result: this.queryManager.assumeImmutableResults ? newResult : cloneDeep(newResult), variables }, error ? { error } : null); }; ObservableQuery2.prototype.reobserveAsConcast = function(newOptions, newNetworkStatus) { var _this = this; this.isTornDown = false; var useDisposableConcast = newNetworkStatus === NetworkStatus.refetch || newNetworkStatus === NetworkStatus.fetchMore || newNetworkStatus === NetworkStatus.poll; var oldVariables = this.options.variables; var oldFetchPolicy = this.options.fetchPolicy; var mergedOptions = compact(this.options, newOptions || {}); var options = useDisposableConcast ? mergedOptions : assign$2(this.options, mergedOptions); var query = this.transformDocument(options.query); this.lastQuery = query; if (!useDisposableConcast) { this.updatePolling(); if (newOptions && newOptions.variables && !equal(newOptions.variables, oldVariables) && options.fetchPolicy !== "standby" && (options.fetchPolicy === oldFetchPolicy || typeof options.nextFetchPolicy === "function")) { this.applyNextFetchPolicy("variables-changed", options); if (newNetworkStatus === void 0) { newNetworkStatus = NetworkStatus.setVariables; } } } this.waitForOwnResult && (this.waitForOwnResult = skipCacheDataFor(options.fetchPolicy)); var finishWaitingForOwnResult = function() { if (_this.concast === concast) { _this.waitForOwnResult = false; } }; var variables = options.variables && __assign$1({}, options.variables); var _a2 = this.fetch(options, newNetworkStatus, query), concast = _a2.concast, fromLink = _a2.fromLink; var observer = { next: function(result2) { if (equal(_this.variables, variables)) { finishWaitingForOwnResult(); _this.reportResult(result2, variables); } }, error: function(error) { if (equal(_this.variables, variables)) { if (!isApolloError(error)) { error = new ApolloError({ networkError: error }); } finishWaitingForOwnResult(); _this.reportError(error, variables); } } }; if (!useDisposableConcast && (fromLink || !this.concast)) { if (this.concast && this.observer) { this.concast.removeObserver(this.observer); } this.concast = concast; this.observer = observer; } concast.addObserver(observer); return concast; }; ObservableQuery2.prototype.reobserve = function(newOptions, newNetworkStatus) { return this.reobserveAsConcast(newOptions, newNetworkStatus).promise; }; ObservableQuery2.prototype.resubscribeAfterError = function() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } var last = this.last; this.resetLastResults(); var subscription = this.subscribe.apply(this, args); this.last = last; return subscription; }; ObservableQuery2.prototype.observe = function() { this.reportResult( this.getCurrentResult(false), this.variables ); }; ObservableQuery2.prototype.reportResult = function(result2, variables) { var lastError = this.getLastError(); var isDifferent = this.isDifferentFromLastResult(result2, variables); if (lastError || !result2.partial || this.options.returnPartialData) { this.updateLastResult(result2, variables); } if (lastError || isDifferent) { iterateObserversSafely(this.observers, "next", result2); } }; ObservableQuery2.prototype.reportError = function(error, variables) { var errorResult = __assign$1(__assign$1({}, this.getLastResult()), { error, errors: error.graphQLErrors, networkStatus: NetworkStatus.error, loading: false }); this.updateLastResult(errorResult, variables); iterateObserversSafely(this.observers, "error", this.last.error = error); }; ObservableQuery2.prototype.hasObservers = function() { return this.observers.size > 0; }; ObservableQuery2.prototype.tearDownQuery = function() { if (this.isTornDown) return; if (this.concast && this.observer) { this.concast.removeObserver(this.observer); delete this.concast; delete this.observer; } this.stopPolling(); this.subscriptions.forEach(function(sub) { return sub.unsubscribe(); }); this.subscriptions.clear(); this.queryManager.stopQuery(this.queryId); this.observers.clear(); this.isTornDown = true; }; ObservableQuery2.prototype.transformDocument = function(document2) { return this.queryManager.transform(document2); }; return ObservableQuery2; }(Observable); fixObservableSubclass(ObservableQuery); function reobserveCacheFirst(obsQuery) { var _a2 = obsQuery.options, fetchPolicy = _a2.fetchPolicy, nextFetchPolicy = _a2.nextFetchPolicy; if (fetchPolicy === "cache-and-network" || fetchPolicy === "network-only") { return obsQuery.reobserve({ fetchPolicy: "cache-first", nextFetchPolicy: function(currentFetchPolicy, context) { this.nextFetchPolicy = nextFetchPolicy; if (typeof this.nextFetchPolicy === "function") { return this.nextFetchPolicy(currentFetchPolicy, context); } return fetchPolicy; } }); } return obsQuery.reobserve(); } function defaultSubscriptionObserverErrorCallback(error) { globalThis.__DEV__ !== false && invariant.error(24, error.message, error.stack); } function logMissingFieldErrors(missing) { if (globalThis.__DEV__ !== false && missing) { globalThis.__DEV__ !== false && invariant.debug(25, missing); } } function skipCacheDataFor(fetchPolicy) { return fetchPolicy === "network-only" || fetchPolicy === "no-cache" || fetchPolicy === "standby"; } var destructiveMethodCounts = new (canUseWeakMap ? WeakMap : Map)(); function wrapDestructiveCacheMethod(cache2, methodName) { var original = cache2[methodName]; if (typeof original === "function") { cache2[methodName] = function() { destructiveMethodCounts.set( cache2, (destructiveMethodCounts.get(cache2) + 1) % 1e15 ); return original.apply(this, arguments); }; } } function cancelNotifyTimeout(info) { if (info["notifyTimeout"]) { clearTimeout(info["notifyTimeout"]); info["notifyTimeout"] = void 0; } } var QueryInfo = function() { function QueryInfo2(queryManager, queryId) { if (queryId === void 0) { queryId = queryManager.generateQueryId(); } this.queryId = queryId; this.listeners = /* @__PURE__ */ new Set(); this.document = null; this.lastRequestId = 1; this.stopped = false; this.dirty = false; this.observableQuery = null; var cache2 = this.cache = queryManager.cache; if (!destructiveMethodCounts.has(cache2)) { destructiveMethodCounts.set(cache2, 0); wrapDestructiveCacheMethod(cache2, "evict"); wrapDestructiveCacheMethod(cache2, "modify"); wrapDestructiveCacheMethod(cache2, "reset"); } } QueryInfo2.prototype.init = function(query) { var networkStatus = query.networkStatus || NetworkStatus.loading; if (this.variables && this.networkStatus !== NetworkStatus.loading && !equal(this.variables, query.variables)) { networkStatus = NetworkStatus.setVariables; } if (!equal(query.variables, this.variables)) { this.lastDiff = void 0; } Object.assign(this, { document: query.document, variables: query.variables, networkError: null, graphQLErrors: this.graphQLErrors || [], networkStatus }); if (query.observableQuery) { this.setObservableQuery(query.observableQuery); } if (query.lastRequestId) { this.lastRequestId = query.lastRequestId; } return this; }; QueryInfo2.prototype.reset = function() { cancelNotifyTimeout(this); this.dirty = false; }; QueryInfo2.prototype.resetDiff = function() { this.lastDiff = void 0; }; QueryInfo2.prototype.getDiff = function() { var options = this.getDiffOptions(); if (this.lastDiff && equal(options, this.lastDiff.options)) { return this.lastDiff.diff; } this.updateWatch(this.variables); var oq = this.observableQuery; if (oq && oq.options.fetchPolicy === "no-cache") { return { complete: false }; } var diff2 = this.cache.diff(options); this.updateLastDiff(diff2, options); return diff2; }; QueryInfo2.prototype.updateLastDiff = function(diff2, options) { this.lastDiff = diff2 ? { diff: diff2, options: options || this.getDiffOptions() } : void 0; }; QueryInfo2.prototype.getDiffOptions = function(variables) { var _a2; if (variables === void 0) { variables = this.variables; } return { query: this.document, variables, returnPartialData: true, optimistic: true, canonizeResults: (_a2 = this.observableQuery) === null || _a2 === void 0 ? void 0 : _a2.options.canonizeResults }; }; QueryInfo2.prototype.setDiff = function(diff2) { var _this = this; var _a2; var oldDiff = this.lastDiff && this.lastDiff.diff; if (diff2 && !diff2.complete && ((_a2 = this.observableQuery) === null || _a2 === void 0 ? void 0 : _a2.getLastError())) { return; } this.updateLastDiff(diff2); if (!this.dirty && !equal(oldDiff && oldDiff.result, diff2 && diff2.result)) { this.dirty = true; if (!this.notifyTimeout) { this.notifyTimeout = setTimeout(function() { return _this.notify(); }, 0); } } }; QueryInfo2.prototype.setObservableQuery = function(oq) { var _this = this; if (oq === this.observableQuery) return; if (this.oqListener) { this.listeners.delete(this.oqListener); } this.observableQuery = oq; if (oq) { oq["queryInfo"] = this; this.listeners.add(this.oqListener = function() { var diff2 = _this.getDiff(); if (diff2.fromOptimisticTransaction) { oq["observe"](); } else { reobserveCacheFirst(oq); } }); } else { delete this.oqListener; } }; QueryInfo2.prototype.notify = function() { var _this = this; cancelNotifyTimeout(this); if (this.shouldNotify()) { this.listeners.forEach(function(listener) { return listener(_this); }); } this.dirty = false; }; QueryInfo2.prototype.shouldNotify = function() { if (!this.dirty || !this.listeners.size) { return false; } if (isNetworkRequestInFlight(this.networkStatus) && this.observableQuery) { var fetchPolicy = this.observableQuery.options.fetchPolicy; if (fetchPolicy !== "cache-only" && fetchPolicy !== "cache-and-network") { return false; } } return true; }; QueryInfo2.prototype.stop = function() { if (!this.stopped) { this.stopped = true; this.reset(); this.cancel(); this.cancel = QueryInfo2.prototype.cancel; var oq = this.observableQuery; if (oq) oq.stopPolling(); } }; QueryInfo2.prototype.cancel = function() { }; QueryInfo2.prototype.updateWatch = function(variables) { var _this = this; if (variables === void 0) { variables = this.variables; } var oq = this.observableQuery; if (oq && oq.options.fetchPolicy === "no-cache") { return; } var watchOptions = __assign$1(__assign$1({}, this.getDiffOptions(variables)), { watcher: this, callback: function(diff2) { return _this.setDiff(diff2); } }); if (!this.lastWatch || !equal(watchOptions, this.lastWatch)) { this.cancel(); this.cancel = this.cache.watch(this.lastWatch = watchOptions); } }; QueryInfo2.prototype.resetLastWrite = function() { this.lastWrite = void 0; }; QueryInfo2.prototype.shouldWrite = function(result2, variables) { var lastWrite = this.lastWrite; return !(lastWrite && lastWrite.dmCount === destructiveMethodCounts.get(this.cache) && equal(variables, lastWrite.variables) && equal(result2.data, lastWrite.result.data)); }; QueryInfo2.prototype.markResult = function(result2, document2, options, cacheWriteBehavior) { var _this = this; var merger = new DeepMerger(); var graphQLErrors = isNonEmptyArray(result2.errors) ? result2.errors.slice(0) : []; this.reset(); if ("incremental" in result2 && isNonEmptyArray(result2.incremental)) { var mergedData = mergeIncrementalData(this.getDiff().result, result2); result2.data = mergedData; } else if ("hasNext" in result2 && result2.hasNext) { var diff2 = this.getDiff(); result2.data = merger.merge(diff2.result, result2.data); } this.graphQLErrors = graphQLErrors; if (options.fetchPolicy === "no-cache") { this.updateLastDiff({ result: result2.data, complete: true }, this.getDiffOptions(options.variables)); } else if (cacheWriteBehavior !== 0) { if (shouldWriteResult(result2, options.errorPolicy)) { this.cache.performTransaction(function(cache2) { if (_this.shouldWrite(result2, options.variables)) { cache2.writeQuery({ query: document2, data: result2.data, variables: options.variables, overwrite: cacheWriteBehavior === 1 }); _this.lastWrite = { result: result2, variables: options.variables, dmCount: destructiveMethodCounts.get(_this.cache) }; } else { if (_this.lastDiff && _this.lastDiff.diff.complete) { result2.data = _this.lastDiff.diff.result; return; } } var diffOptions = _this.getDiffOptions(options.variables); var diff3 = cache2.diff(diffOptions); if (!_this.stopped && equal(_this.variables, options.variables)) { _this.updateWatch(options.variables); } _this.updateLastDiff(diff3, diffOptions); if (diff3.complete) { result2.data = diff3.result; } }); } else { this.lastWrite = void 0; } } }; QueryInfo2.prototype.markReady = function() { this.networkError = null; return this.networkStatus = NetworkStatus.ready; }; QueryInfo2.prototype.markError = function(error) { this.networkStatus = NetworkStatus.error; this.lastWrite = void 0; this.reset(); if (error.graphQLErrors) { this.graphQLErrors = error.graphQLErrors; } if (error.networkError) { this.networkError = error.networkError; } return error; }; return QueryInfo2; }(); function shouldWriteResult(result2, errorPolicy) { if (errorPolicy === void 0) { errorPolicy = "none"; } var ignoreErrors = errorPolicy === "ignore" || errorPolicy === "all"; var writeWithErrors = !graphQLResultHasError(result2); if (!writeWithErrors && ignoreErrors && result2.data) { writeWithErrors = true; } return writeWithErrors; } var hasOwnProperty$1 = Object.prototype.hasOwnProperty; var IGNORE = /* @__PURE__ */ Object.create(null); var QueryManager = function() { function QueryManager2(options) { var _this = this; this.clientAwareness = {}; this.queries = /* @__PURE__ */ new Map(); this.fetchCancelFns = /* @__PURE__ */ new Map(); this.transformCache = new AutoCleanedWeakCache(cacheSizes["queryManager.getDocumentInfo"] || 2e3); this.queryIdCounter = 1; this.requestIdCounter = 1; this.mutationIdCounter = 1; this.inFlightLinkObservables = new Trie(false); var defaultDocumentTransform = new DocumentTransform( function(document2) { return _this.cache.transformDocument(document2); }, { cache: false } ); this.cache = options.cache; this.link = options.link; this.defaultOptions = options.defaultOptions; this.queryDeduplication = options.queryDeduplication; this.clientAwareness = options.clientAwareness; this.localState = options.localState; this.ssrMode = options.ssrMode; this.assumeImmutableResults = options.assumeImmutableResults; var documentTransform = options.documentTransform; this.documentTransform = documentTransform ? defaultDocumentTransform.concat(documentTransform).concat(defaultDocumentTransform) : defaultDocumentTransform; this.defaultContext = options.defaultContext || /* @__PURE__ */ Object.create(null); if (this.onBroadcast = options.onBroadcast) { this.mutationStore = /* @__PURE__ */ Object.create(null); } } QueryManager2.prototype.stop = function() { var _this = this; this.queries.forEach(function(_info, queryId) { _this.stopQueryNoBroadcast(queryId); }); this.cancelPendingFetches(newInvariantError(26)); }; QueryManager2.prototype.cancelPendingFetches = function(error) { this.fetchCancelFns.forEach(function(cancel) { return cancel(error); }); this.fetchCancelFns.clear(); }; QueryManager2.prototype.mutate = function(_a2) { return __awaiter$1(this, arguments, void 0, function(_b) { var mutationId, hasClientExports2, mutationStoreValue, isOptimistic, self2; var _c, _d; var mutation = _b.mutation, variables = _b.variables, optimisticResponse = _b.optimisticResponse, updateQueries = _b.updateQueries, _e = _b.refetchQueries, refetchQueries = _e === void 0 ? [] : _e, _f = _b.awaitRefetchQueries, awaitRefetchQueries = _f === void 0 ? false : _f, updateWithProxyFn = _b.update, onQueryUpdated = _b.onQueryUpdated, _g = _b.fetchPolicy, fetchPolicy = _g === void 0 ? ((_c = this.defaultOptions.mutate) === null || _c === void 0 ? void 0 : _c.fetchPolicy) || "network-only" : _g, _h = _b.errorPolicy, errorPolicy = _h === void 0 ? ((_d = this.defaultOptions.mutate) === null || _d === void 0 ? void 0 : _d.errorPolicy) || "none" : _h, keepRootFields = _b.keepRootFields, context = _b.context; return __generator$1(this, function(_j) { switch (_j.label) { case 0: invariant(mutation, 27); invariant(fetchPolicy === "network-only" || fetchPolicy === "no-cache", 28); mutationId = this.generateMutationId(); mutation = this.cache.transformForLink(this.transform(mutation)); hasClientExports2 = this.getDocumentInfo(mutation).hasClientExports; variables = this.getVariables(mutation, variables); if (!hasClientExports2) return [3, 2]; return [4, this.localState.addExportedVariables(mutation, variables, context)]; case 1: variables = _j.sent(); _j.label = 2; case 2: mutationStoreValue = this.mutationStore && (this.mutationStore[mutationId] = { mutation, variables, loading: true, error: null }); isOptimistic = optimisticResponse && this.markMutationOptimistic(optimisticResponse, { mutationId, document: mutation, variables, fetchPolicy, errorPolicy, context, updateQueries, update: updateWithProxyFn, keepRootFields }); this.broadcastQueries(); self2 = this; return [2, new Promise(function(resolve2, reject) { return asyncMap(self2.getObservableFromLink(mutation, __assign$1(__assign$1({}, context), { optimisticResponse: isOptimistic ? optimisticResponse : void 0 }), variables, {}, false), function(result2) { if (graphQLResultHasError(result2) && errorPolicy === "none") { throw new ApolloError({ graphQLErrors: getGraphQLErrorsFromResult(result2) }); } if (mutationStoreValue) { mutationStoreValue.loading = false; mutationStoreValue.error = null; } var storeResult = __assign$1({}, result2); if (typeof refetchQueries === "function") { refetchQueries = refetchQueries(storeResult); } if (errorPolicy === "ignore" && graphQLResultHasError(storeResult)) { delete storeResult.errors; } return self2.markMutationResult({ mutationId, result: storeResult, document: mutation, variables, fetchPolicy, errorPolicy, context, update: updateWithProxyFn, updateQueries, awaitRefetchQueries, refetchQueries, removeOptimistic: isOptimistic ? mutationId : void 0, onQueryUpdated, keepRootFields }); }).subscribe({ next: function(storeResult) { self2.broadcastQueries(); if (!("hasNext" in storeResult) || storeResult.hasNext === false) { resolve2(storeResult); } }, error: function(err) { if (mutationStoreValue) { mutationStoreValue.loading = false; mutationStoreValue.error = err; } if (isOptimistic) { self2.cache.removeOptimistic(mutationId); } self2.broadcastQueries(); reject(err instanceof ApolloError ? err : new ApolloError({ networkError: err })); } }); })]; } }); }); }; QueryManager2.prototype.markMutationResult = function(mutation, cache2) { var _this = this; if (cache2 === void 0) { cache2 = this.cache; } var result2 = mutation.result; var cacheWrites = []; var skipCache = mutation.fetchPolicy === "no-cache"; if (!skipCache && shouldWriteResult(result2, mutation.errorPolicy)) { if (!isExecutionPatchIncrementalResult(result2)) { cacheWrites.push({ result: result2.data, dataId: "ROOT_MUTATION", query: mutation.document, variables: mutation.variables }); } if (isExecutionPatchIncrementalResult(result2) && isNonEmptyArray(result2.incremental)) { var diff2 = cache2.diff({ id: "ROOT_MUTATION", query: this.getDocumentInfo(mutation.document).asQuery, variables: mutation.variables, optimistic: false, returnPartialData: true }); var mergedData = void 0; if (diff2.result) { mergedData = mergeIncrementalData(diff2.result, result2); } if (typeof mergedData !== "undefined") { result2.data = mergedData; cacheWrites.push({ result: mergedData, dataId: "ROOT_MUTATION", query: mutation.document, variables: mutation.variables }); } } var updateQueries_1 = mutation.updateQueries; if (updateQueries_1) { this.queries.forEach(function(_a2, queryId) { var observableQuery = _a2.observableQuery; var queryName = observableQuery && observableQuery.queryName; if (!queryName || !hasOwnProperty$1.call(updateQueries_1, queryName)) { return; } var updater = updateQueries_1[queryName]; var _b = _this.queries.get(queryId), document2 = _b.document, variables = _b.variables; var _c = cache2.diff({ query: document2, variables, returnPartialData: true, optimistic: false }), currentQueryResult = _c.result, complete = _c.complete; if (complete && currentQueryResult) { var nextQueryResult = updater(currentQueryResult, { mutationResult: result2, queryName: document2 && getOperationName(document2) || void 0, queryVariables: variables }); if (nextQueryResult) { cacheWrites.push({ result: nextQueryResult, dataId: "ROOT_QUERY", query: document2, variables }); } } }); } } if (cacheWrites.length > 0 || (mutation.refetchQueries || "").length > 0 || mutation.update || mutation.onQueryUpdated || mutation.removeOptimistic) { var results_1 = []; this.refetchQueries({ updateCache: function(cache3) { if (!skipCache) { cacheWrites.forEach(function(write) { return cache3.write(write); }); } var update2 = mutation.update; var isFinalResult = !isExecutionPatchResult(result2) || isExecutionPatchIncrementalResult(result2) && !result2.hasNext; if (update2) { if (!skipCache) { var diff3 = cache3.diff({ id: "ROOT_MUTATION", query: _this.getDocumentInfo(mutation.document).asQuery, variables: mutation.variables, optimistic: false, returnPartialData: true }); if (diff3.complete) { result2 = __assign$1(__assign$1({}, result2), { data: diff3.result }); if ("incremental" in result2) { delete result2.incremental; } if ("hasNext" in result2) { delete result2.hasNext; } } } if (isFinalResult) { update2(cache3, result2, { context: mutation.context, variables: mutation.variables }); } } if (!skipCache && !mutation.keepRootFields && isFinalResult) { cache3.modify({ id: "ROOT_MUTATION", fields: function(value, _a2) { var fieldName = _a2.fieldName, DELETE2 = _a2.DELETE; return fieldName === "__typename" ? value : DELETE2; } }); } }, include: mutation.refetchQueries, optimistic: false, removeOptimistic: mutation.removeOptimistic, onQueryUpdated: mutation.onQueryUpdated || null }).forEach(function(result3) { return results_1.push(result3); }); if (mutation.awaitRefetchQueries || mutation.onQueryUpdated) { return Promise.all(results_1).then(function() { return result2; }); } } return Promise.resolve(result2); }; QueryManager2.prototype.markMutationOptimistic = function(optimisticResponse, mutation) { var _this = this; var data2 = typeof optimisticResponse === "function" ? optimisticResponse(mutation.variables, { IGNORE }) : optimisticResponse; if (data2 === IGNORE) { return false; } this.cache.recordOptimisticTransaction(function(cache2) { try { _this.markMutationResult(__assign$1(__assign$1({}, mutation), { result: { data: data2 } }), cache2); } catch (error) { globalThis.__DEV__ !== false && invariant.error(error); } }, mutation.mutationId); return true; }; QueryManager2.prototype.fetchQuery = function(queryId, options, networkStatus) { return this.fetchConcastWithInfo(queryId, options, networkStatus).concast.promise; }; QueryManager2.prototype.getQueryStore = function() { var store2 = /* @__PURE__ */ Object.create(null); this.queries.forEach(function(info, queryId) { store2[queryId] = { variables: info.variables, networkStatus: info.networkStatus, networkError: info.networkError, graphQLErrors: info.graphQLErrors }; }); return store2; }; QueryManager2.prototype.resetErrors = function(queryId) { var queryInfo = this.queries.get(queryId); if (queryInfo) { queryInfo.networkError = void 0; queryInfo.graphQLErrors = []; } }; QueryManager2.prototype.transform = function(document2) { return this.documentTransform.transformDocument(document2); }; QueryManager2.prototype.getDocumentInfo = function(document2) { var transformCache = this.transformCache; if (!transformCache.has(document2)) { var cacheEntry = { hasClientExports: hasClientExports(document2), hasForcedResolvers: this.localState.shouldForceResolvers(document2), hasNonreactiveDirective: hasDirectives(["nonreactive"], document2), clientQuery: this.localState.clientQuery(document2), serverQuery: removeDirectivesFromDocument([ { name: "client", remove: true }, { name: "connection" }, { name: "nonreactive" } ], document2), defaultVars: getDefaultValues(getOperationDefinition(document2)), asQuery: __assign$1(__assign$1({}, document2), { definitions: document2.definitions.map(function(def2) { if (def2.kind === "OperationDefinition" && def2.operation !== "query") { return __assign$1(__assign$1({}, def2), { operation: "query" }); } return def2; }) }) }; transformCache.set(document2, cacheEntry); } return transformCache.get(document2); }; QueryManager2.prototype.getVariables = function(document2, variables) { return __assign$1(__assign$1({}, this.getDocumentInfo(document2).defaultVars), variables); }; QueryManager2.prototype.watchQuery = function(options) { var query = this.transform(options.query); options = __assign$1(__assign$1({}, options), { variables: this.getVariables(query, options.variables) }); if (typeof options.notifyOnNetworkStatusChange === "undefined") { options.notifyOnNetworkStatusChange = false; } var queryInfo = new QueryInfo(this); var observable = new ObservableQuery({ queryManager: this, queryInfo, options }); observable["lastQuery"] = query; this.queries.set(observable.queryId, queryInfo); queryInfo.init({ document: query, observableQuery: observable, variables: observable.variables }); return observable; }; QueryManager2.prototype.query = function(options, queryId) { var _this = this; if (queryId === void 0) { queryId = this.generateQueryId(); } invariant(options.query, 29); invariant(options.query.kind === "Document", 30); invariant(!options.returnPartialData, 31); invariant(!options.pollInterval, 32); return this.fetchQuery(queryId, __assign$1(__assign$1({}, options), { query: this.transform(options.query) })).finally(function() { return _this.stopQuery(queryId); }); }; QueryManager2.prototype.generateQueryId = function() { return String(this.queryIdCounter++); }; QueryManager2.prototype.generateRequestId = function() { return this.requestIdCounter++; }; QueryManager2.prototype.generateMutationId = function() { return String(this.mutationIdCounter++); }; QueryManager2.prototype.stopQueryInStore = function(queryId) { this.stopQueryInStoreNoBroadcast(queryId); this.broadcastQueries(); }; QueryManager2.prototype.stopQueryInStoreNoBroadcast = function(queryId) { var queryInfo = this.queries.get(queryId); if (queryInfo) queryInfo.stop(); }; QueryManager2.prototype.clearStore = function(options) { if (options === void 0) { options = { discardWatches: true }; } this.cancelPendingFetches(newInvariantError(33)); this.queries.forEach(function(queryInfo) { if (queryInfo.observableQuery) { queryInfo.networkStatus = NetworkStatus.loading; } else { queryInfo.stop(); } }); if (this.mutationStore) { this.mutationStore = /* @__PURE__ */ Object.create(null); } return this.cache.reset(options); }; QueryManager2.prototype.getObservableQueries = function(include) { var _this = this; if (include === void 0) { include = "active"; } var queries = /* @__PURE__ */ new Map(); var queryNamesAndDocs = /* @__PURE__ */ new Map(); var legacyQueryOptions = /* @__PURE__ */ new Set(); if (Array.isArray(include)) { include.forEach(function(desc) { if (typeof desc === "string") { queryNamesAndDocs.set(desc, false); } else if (isDocumentNode(desc)) { queryNamesAndDocs.set(_this.transform(desc), false); } else if (isNonNullObject(desc) && desc.query) { legacyQueryOptions.add(desc); } }); } this.queries.forEach(function(_a2, queryId) { var oq = _a2.observableQuery, document2 = _a2.document; if (oq) { if (include === "all") { queries.set(queryId, oq); return; } var queryName = oq.queryName, fetchPolicy = oq.options.fetchPolicy; if (fetchPolicy === "standby" || include === "active" && !oq.hasObservers()) { return; } if (include === "active" || queryName && queryNamesAndDocs.has(queryName) || document2 && queryNamesAndDocs.has(document2)) { queries.set(queryId, oq); if (queryName) queryNamesAndDocs.set(queryName, true); if (document2) queryNamesAndDocs.set(document2, true); } } }); if (legacyQueryOptions.size) { legacyQueryOptions.forEach(function(options) { var queryId = makeUniqueId("legacyOneTimeQuery"); var queryInfo = _this.getQuery(queryId).init({ document: options.query, variables: options.variables }); var oq = new ObservableQuery({ queryManager: _this, queryInfo, options: __assign$1(__assign$1({}, options), { fetchPolicy: "network-only" }) }); invariant(oq.queryId === queryId); queryInfo.setObservableQuery(oq); queries.set(queryId, oq); }); } if (globalThis.__DEV__ !== false && queryNamesAndDocs.size) { queryNamesAndDocs.forEach(function(included, nameOrDoc) { if (!included) { globalThis.__DEV__ !== false && invariant.warn(typeof nameOrDoc === "string" ? 34 : 35, nameOrDoc); } }); } return queries; }; QueryManager2.prototype.reFetchObservableQueries = function(includeStandby) { var _this = this; if (includeStandby === void 0) { includeStandby = false; } var observableQueryPromises = []; this.getObservableQueries(includeStandby ? "all" : "active").forEach(function(observableQuery, queryId) { var fetchPolicy = observableQuery.options.fetchPolicy; observableQuery.resetLastResults(); if (includeStandby || fetchPolicy !== "standby" && fetchPolicy !== "cache-only") { observableQueryPromises.push(observableQuery.refetch()); } _this.getQuery(queryId).setDiff(null); }); this.broadcastQueries(); return Promise.all(observableQueryPromises); }; QueryManager2.prototype.setObservableQuery = function(observableQuery) { this.getQuery(observableQuery.queryId).setObservableQuery(observableQuery); }; QueryManager2.prototype.startGraphQLSubscription = function(_a2) { var _this = this; var query = _a2.query, fetchPolicy = _a2.fetchPolicy, _b = _a2.errorPolicy, errorPolicy = _b === void 0 ? "none" : _b, variables = _a2.variables, _c = _a2.context, context = _c === void 0 ? {} : _c, _d = _a2.extensions, extensions = _d === void 0 ? {} : _d; query = this.transform(query); variables = this.getVariables(query, variables); var makeObservable = function(variables2) { return _this.getObservableFromLink(query, context, variables2, extensions).map(function(result2) { if (fetchPolicy !== "no-cache") { if (shouldWriteResult(result2, errorPolicy)) { _this.cache.write({ query, result: result2.data, dataId: "ROOT_SUBSCRIPTION", variables: variables2 }); } _this.broadcastQueries(); } var hasErrors = graphQLResultHasError(result2); var hasProtocolErrors = graphQLResultHasProtocolErrors(result2); if (hasErrors || hasProtocolErrors) { var errors = {}; if (hasErrors) { errors.graphQLErrors = result2.errors; } if (hasProtocolErrors) { errors.protocolErrors = result2.extensions[PROTOCOL_ERRORS_SYMBOL]; } if (errorPolicy === "none" || hasProtocolErrors) { throw new ApolloError(errors); } } if (errorPolicy === "ignore") { delete result2.errors; } return result2; }); }; if (this.getDocumentInfo(query).hasClientExports) { var observablePromise_1 = this.localState.addExportedVariables(query, variables, context).then(makeObservable); return new Observable(function(observer) { var sub = null; observablePromise_1.then(function(observable) { return sub = observable.subscribe(observer); }, observer.error); return function() { return sub && sub.unsubscribe(); }; }); } return makeObservable(variables); }; QueryManager2.prototype.stopQuery = function(queryId) { this.stopQueryNoBroadcast(queryId); this.broadcastQueries(); }; QueryManager2.prototype.stopQueryNoBroadcast = function(queryId) { this.stopQueryInStoreNoBroadcast(queryId); this.removeQuery(queryId); }; QueryManager2.prototype.removeQuery = function(queryId) { this.fetchCancelFns.delete(queryId); if (this.queries.has(queryId)) { this.getQuery(queryId).stop(); this.queries.delete(queryId); } }; QueryManager2.prototype.broadcastQueries = function() { if (this.onBroadcast) this.onBroadcast(); this.queries.forEach(function(info) { return info.notify(); }); }; QueryManager2.prototype.getLocalState = function() { return this.localState; }; QueryManager2.prototype.getObservableFromLink = function(query, context, variables, extensions, deduplication) { var _this = this; var _a2; if (deduplication === void 0) { deduplication = (_a2 = context === null || context === void 0 ? void 0 : context.queryDeduplication) !== null && _a2 !== void 0 ? _a2 : this.queryDeduplication; } var observable; var _b = this.getDocumentInfo(query), serverQuery = _b.serverQuery, clientQuery = _b.clientQuery; if (serverQuery) { var _c = this, inFlightLinkObservables_1 = _c.inFlightLinkObservables, link2 = _c.link; var operation = { query: serverQuery, variables, operationName: getOperationName(serverQuery) || void 0, context: this.prepareContext(__assign$1(__assign$1({}, context), { forceFetch: !deduplication })), extensions }; context = operation.context; if (deduplication) { var printedServerQuery_1 = print(serverQuery); var varJson_1 = canonicalStringify(variables); var entry = inFlightLinkObservables_1.lookup(printedServerQuery_1, varJson_1); observable = entry.observable; if (!observable) { var concast = new Concast([ execute(link2, operation) ]); observable = entry.observable = concast; concast.beforeNext(function() { inFlightLinkObservables_1.remove(printedServerQuery_1, varJson_1); }); } } else { observable = new Concast([ execute(link2, operation) ]); } } else { observable = new Concast([Observable.of({ data: {} })]); context = this.prepareContext(context); } if (clientQuery) { observable = asyncMap(observable, function(result2) { return _this.localState.runResolvers({ document: clientQuery, remoteResult: result2, context, variables }); }); } return observable; }; QueryManager2.prototype.getResultsFromLink = function(queryInfo, cacheWriteBehavior, options) { var requestId = queryInfo.lastRequestId = this.generateRequestId(); var linkDocument = this.cache.transformForLink(options.query); return asyncMap(this.getObservableFromLink(linkDocument, options.context, options.variables), function(result2) { var graphQLErrors = getGraphQLErrorsFromResult(result2); var hasErrors = graphQLErrors.length > 0; var errorPolicy = options.errorPolicy; if (requestId >= queryInfo.lastRequestId) { if (hasErrors && errorPolicy === "none") { throw queryInfo.markError(new ApolloError({ graphQLErrors })); } queryInfo.markResult(result2, linkDocument, options, cacheWriteBehavior); queryInfo.markReady(); } var aqr = { data: result2.data, loading: false, networkStatus: NetworkStatus.ready }; if (hasErrors && errorPolicy === "none") { aqr.data = void 0; } if (hasErrors && errorPolicy !== "ignore") { aqr.errors = graphQLErrors; aqr.networkStatus = NetworkStatus.error; } return aqr; }, function(networkError) { var error = isApolloError(networkError) ? networkError : new ApolloError({ networkError }); if (requestId >= queryInfo.lastRequestId) { queryInfo.markError(error); } throw error; }); }; QueryManager2.prototype.fetchConcastWithInfo = function(queryId, options, networkStatus, query) { var _this = this; if (networkStatus === void 0) { networkStatus = NetworkStatus.loading; } if (query === void 0) { query = options.query; } var variables = this.getVariables(query, options.variables); var queryInfo = this.getQuery(queryId); var defaults2 = this.defaultOptions.watchQuery; var _a2 = options.fetchPolicy, fetchPolicy = _a2 === void 0 ? defaults2 && defaults2.fetchPolicy || "cache-first" : _a2, _b = options.errorPolicy, errorPolicy = _b === void 0 ? defaults2 && defaults2.errorPolicy || "none" : _b, _c = options.returnPartialData, returnPartialData = _c === void 0 ? false : _c, _d = options.notifyOnNetworkStatusChange, notifyOnNetworkStatusChange = _d === void 0 ? false : _d, _e = options.context, context = _e === void 0 ? {} : _e; var normalized = Object.assign({}, options, { query, variables, fetchPolicy, errorPolicy, returnPartialData, notifyOnNetworkStatusChange, context }); var fromVariables = function(variables2) { normalized.variables = variables2; var sourcesWithInfo2 = _this.fetchQueryByPolicy(queryInfo, normalized, networkStatus); if (normalized.fetchPolicy !== "standby" && sourcesWithInfo2.sources.length > 0 && queryInfo.observableQuery) { queryInfo.observableQuery["applyNextFetchPolicy"]("after-fetch", options); } return sourcesWithInfo2; }; var cleanupCancelFn = function() { return _this.fetchCancelFns.delete(queryId); }; this.fetchCancelFns.set(queryId, function(reason) { cleanupCancelFn(); setTimeout(function() { return concast.cancel(reason); }); }); var concast, containsDataFromLink; if (this.getDocumentInfo(normalized.query).hasClientExports) { concast = new Concast(this.localState.addExportedVariables(normalized.query, normalized.variables, normalized.context).then(fromVariables).then(function(sourcesWithInfo2) { return sourcesWithInfo2.sources; })); containsDataFromLink = true; } else { var sourcesWithInfo = fromVariables(normalized.variables); containsDataFromLink = sourcesWithInfo.fromLink; concast = new Concast(sourcesWithInfo.sources); } concast.promise.then(cleanupCancelFn, cleanupCancelFn); return { concast, fromLink: containsDataFromLink }; }; QueryManager2.prototype.refetchQueries = function(_a2) { var _this = this; var updateCache = _a2.updateCache, include = _a2.include, _b = _a2.optimistic, optimistic = _b === void 0 ? false : _b, _c = _a2.removeOptimistic, removeOptimistic = _c === void 0 ? optimistic ? makeUniqueId("refetchQueries") : void 0 : _c, onQueryUpdated = _a2.onQueryUpdated; var includedQueriesById = /* @__PURE__ */ new Map(); if (include) { this.getObservableQueries(include).forEach(function(oq, queryId) { includedQueriesById.set(queryId, { oq, lastDiff: _this.getQuery(queryId).getDiff() }); }); } var results = /* @__PURE__ */ new Map(); if (updateCache) { this.cache.batch({ update: updateCache, optimistic: optimistic && removeOptimistic || false, removeOptimistic, onWatchUpdated: function(watch2, diff2, lastDiff) { var oq = watch2.watcher instanceof QueryInfo && watch2.watcher.observableQuery; if (oq) { if (onQueryUpdated) { includedQueriesById.delete(oq.queryId); var result2 = onQueryUpdated(oq, diff2, lastDiff); if (result2 === true) { result2 = oq.refetch(); } if (result2 !== false) { results.set(oq, result2); } return result2; } if (onQueryUpdated !== null) { includedQueriesById.set(oq.queryId, { oq, lastDiff, diff: diff2 }); } } } }); } if (includedQueriesById.size) { includedQueriesById.forEach(function(_a3, queryId) { var oq = _a3.oq, lastDiff = _a3.lastDiff, diff2 = _a3.diff; var result2; if (onQueryUpdated) { if (!diff2) { var info = oq["queryInfo"]; info.reset(); diff2 = info.getDiff(); } result2 = onQueryUpdated(oq, diff2, lastDiff); } if (!onQueryUpdated || result2 === true) { result2 = oq.refetch(); } if (result2 !== false) { results.set(oq, result2); } if (queryId.indexOf("legacyOneTimeQuery") >= 0) { _this.stopQueryNoBroadcast(queryId); } }); } if (removeOptimistic) { this.cache.removeOptimistic(removeOptimistic); } return results; }; QueryManager2.prototype.fetchQueryByPolicy = function(queryInfo, _a2, networkStatus) { var _this = this; var query = _a2.query, variables = _a2.variables, fetchPolicy = _a2.fetchPolicy, refetchWritePolicy = _a2.refetchWritePolicy, errorPolicy = _a2.errorPolicy, returnPartialData = _a2.returnPartialData, context = _a2.context, notifyOnNetworkStatusChange = _a2.notifyOnNetworkStatusChange; var oldNetworkStatus = queryInfo.networkStatus; queryInfo.init({ document: query, variables, networkStatus }); var readCache = function() { return queryInfo.getDiff(); }; var resultsFromCache = function(diff3, networkStatus2) { if (networkStatus2 === void 0) { networkStatus2 = queryInfo.networkStatus || NetworkStatus.loading; } var data2 = diff3.result; if (globalThis.__DEV__ !== false && !returnPartialData && !equal(data2, {})) { logMissingFieldErrors(diff3.missing); } var fromData = function(data3) { return Observable.of(__assign$1({ data: data3, loading: isNetworkRequestInFlight(networkStatus2), networkStatus: networkStatus2 }, diff3.complete ? null : { partial: true })); }; if (data2 && _this.getDocumentInfo(query).hasForcedResolvers) { return _this.localState.runResolvers({ document: query, remoteResult: { data: data2 }, context, variables, onlyRunForcedResolvers: true }).then(function(resolved) { return fromData(resolved.data || void 0); }); } if (errorPolicy === "none" && networkStatus2 === NetworkStatus.refetch && Array.isArray(diff3.missing)) { return fromData(void 0); } return fromData(data2); }; var cacheWriteBehavior = fetchPolicy === "no-cache" ? 0 : networkStatus === NetworkStatus.refetch && refetchWritePolicy !== "merge" ? 1 : 2; var resultsFromLink = function() { return _this.getResultsFromLink(queryInfo, cacheWriteBehavior, { query, variables, context, fetchPolicy, errorPolicy }); }; var shouldNotify = notifyOnNetworkStatusChange && typeof oldNetworkStatus === "number" && oldNetworkStatus !== networkStatus && isNetworkRequestInFlight(networkStatus); switch (fetchPolicy) { default: case "cache-first": { var diff2 = readCache(); if (diff2.complete) { return { fromLink: false, sources: [resultsFromCache(diff2, queryInfo.markReady())] }; } if (returnPartialData || shouldNotify) { return { fromLink: true, sources: [resultsFromCache(diff2), resultsFromLink()] }; } return { fromLink: true, sources: [resultsFromLink()] }; } case "cache-and-network": { var diff2 = readCache(); if (diff2.complete || returnPartialData || shouldNotify) { return { fromLink: true, sources: [resultsFromCache(diff2), resultsFromLink()] }; } return { fromLink: true, sources: [resultsFromLink()] }; } case "cache-only": return { fromLink: false, sources: [resultsFromCache(readCache(), queryInfo.markReady())] }; case "network-only": if (shouldNotify) { return { fromLink: true, sources: [resultsFromCache(readCache()), resultsFromLink()] }; } return { fromLink: true, sources: [resultsFromLink()] }; case "no-cache": if (shouldNotify) { return { fromLink: true, sources: [resultsFromCache(queryInfo.getDiff()), resultsFromLink()] }; } return { fromLink: true, sources: [resultsFromLink()] }; case "standby": return { fromLink: false, sources: [] }; } }; QueryManager2.prototype.getQuery = function(queryId) { if (queryId && !this.queries.has(queryId)) { this.queries.set(queryId, new QueryInfo(this, queryId)); } return this.queries.get(queryId); }; QueryManager2.prototype.prepareContext = function(context) { if (context === void 0) { context = {}; } var newContext = this.localState.prepareContext(context); return __assign$1(__assign$1(__assign$1({}, this.defaultContext), newContext), { clientAwareness: this.clientAwareness }); }; return QueryManager2; }(); var LocalState = function() { function LocalState2(_a2) { var cache2 = _a2.cache, client2 = _a2.client, resolvers = _a2.resolvers, fragmentMatcher = _a2.fragmentMatcher; this.selectionsToResolveCache = /* @__PURE__ */ new WeakMap(); this.cache = cache2; if (client2) { this.client = client2; } if (resolvers) { this.addResolvers(resolvers); } if (fragmentMatcher) { this.setFragmentMatcher(fragmentMatcher); } } LocalState2.prototype.addResolvers = function(resolvers) { var _this = this; this.resolvers = this.resolvers || {}; if (Array.isArray(resolvers)) { resolvers.forEach(function(resolverGroup) { _this.resolvers = mergeDeep(_this.resolvers, resolverGroup); }); } else { this.resolvers = mergeDeep(this.resolvers, resolvers); } }; LocalState2.prototype.setResolvers = function(resolvers) { this.resolvers = {}; this.addResolvers(resolvers); }; LocalState2.prototype.getResolvers = function() { return this.resolvers || {}; }; LocalState2.prototype.runResolvers = function(_a2) { return __awaiter$1(this, arguments, void 0, function(_b) { var document2 = _b.document, remoteResult = _b.remoteResult, context = _b.context, variables = _b.variables, _c = _b.onlyRunForcedResolvers, onlyRunForcedResolvers = _c === void 0 ? false : _c; return __generator$1(this, function(_d) { if (document2) { return [2, this.resolveDocument(document2, remoteResult.data, context, variables, this.fragmentMatcher, onlyRunForcedResolvers).then(function(localResult) { return __assign$1(__assign$1({}, remoteResult), { data: localResult.result }); })]; } return [2, remoteResult]; }); }); }; LocalState2.prototype.setFragmentMatcher = function(fragmentMatcher) { this.fragmentMatcher = fragmentMatcher; }; LocalState2.prototype.getFragmentMatcher = function() { return this.fragmentMatcher; }; LocalState2.prototype.clientQuery = function(document2) { if (hasDirectives(["client"], document2)) { if (this.resolvers) { return document2; } } return null; }; LocalState2.prototype.serverQuery = function(document2) { return removeClientSetsFromDocument(document2); }; LocalState2.prototype.prepareContext = function(context) { var cache2 = this.cache; return __assign$1(__assign$1({}, context), { cache: cache2, getCacheKey: function(obj) { return cache2.identify(obj); } }); }; LocalState2.prototype.addExportedVariables = function(document_1) { return __awaiter$1(this, arguments, void 0, function(document2, variables, context) { if (variables === void 0) { variables = {}; } if (context === void 0) { context = {}; } return __generator$1(this, function(_a2) { if (document2) { return [2, this.resolveDocument(document2, this.buildRootValueFromCache(document2, variables) || {}, this.prepareContext(context), variables).then(function(data2) { return __assign$1(__assign$1({}, variables), data2.exportedVariables); })]; } return [2, __assign$1({}, variables)]; }); }); }; LocalState2.prototype.shouldForceResolvers = function(document2) { var forceResolvers = false; visit(document2, { Directive: { enter: function(node) { if (node.name.value === "client" && node.arguments) { forceResolvers = node.arguments.some(function(arg) { return arg.name.value === "always" && arg.value.kind === "BooleanValue" && arg.value.value === true; }); if (forceResolvers) { return BREAK; } } } } }); return forceResolvers; }; LocalState2.prototype.buildRootValueFromCache = function(document2, variables) { return this.cache.diff({ query: buildQueryFromSelectionSet(document2), variables, returnPartialData: true, optimistic: false }).result; }; LocalState2.prototype.resolveDocument = function(document_1, rootValue_1) { return __awaiter$1(this, arguments, void 0, function(document2, rootValue, context, variables, fragmentMatcher, onlyRunForcedResolvers) { var mainDefinition, fragments, fragmentMap, selectionsToResolve, definitionOperation, defaultOperationType, _a2, cache2, client2, execContext, isClientFieldDescendant; if (context === void 0) { context = {}; } if (variables === void 0) { variables = {}; } if (fragmentMatcher === void 0) { fragmentMatcher = function() { return true; }; } if (onlyRunForcedResolvers === void 0) { onlyRunForcedResolvers = false; } return __generator$1(this, function(_b) { mainDefinition = getMainDefinition(document2); fragments = getFragmentDefinitions(document2); fragmentMap = createFragmentMap(fragments); selectionsToResolve = this.collectSelectionsToResolve(mainDefinition, fragmentMap); definitionOperation = mainDefinition.operation; defaultOperationType = definitionOperation ? definitionOperation.charAt(0).toUpperCase() + definitionOperation.slice(1) : "Query"; _a2 = this, cache2 = _a2.cache, client2 = _a2.client; execContext = { fragmentMap, context: __assign$1(__assign$1({}, context), { cache: cache2, client: client2 }), variables, fragmentMatcher, defaultOperationType, exportedVariables: {}, selectionsToResolve, onlyRunForcedResolvers }; isClientFieldDescendant = false; return [2, this.resolveSelectionSet(mainDefinition.selectionSet, isClientFieldDescendant, rootValue, execContext).then(function(result2) { return { result: result2, exportedVariables: execContext.exportedVariables }; })]; }); }); }; LocalState2.prototype.resolveSelectionSet = function(selectionSet, isClientFieldDescendant, rootValue, execContext) { return __awaiter$1(this, void 0, void 0, function() { var fragmentMap, context, variables, resultsToMerge, execute2; var _this = this; return __generator$1(this, function(_a2) { fragmentMap = execContext.fragmentMap, context = execContext.context, variables = execContext.variables; resultsToMerge = [rootValue]; execute2 = function(selection) { return __awaiter$1(_this, void 0, void 0, function() { var fragment, typeCondition; return __generator$1(this, function(_a3) { if (!isClientFieldDescendant && !execContext.selectionsToResolve.has(selection)) { return [2]; } if (!shouldInclude(selection, variables)) { return [2]; } if (isField(selection)) { return [2, this.resolveField(selection, isClientFieldDescendant, rootValue, execContext).then(function(fieldResult) { var _a4; if (typeof fieldResult !== "undefined") { resultsToMerge.push((_a4 = {}, _a4[resultKeyNameFromField(selection)] = fieldResult, _a4)); } })]; } if (isInlineFragment(selection)) { fragment = selection; } else { fragment = fragmentMap[selection.name.value]; invariant(fragment, 18, selection.name.value); } if (fragment && fragment.typeCondition) { typeCondition = fragment.typeCondition.name.value; if (execContext.fragmentMatcher(rootValue, typeCondition, context)) { return [2, this.resolveSelectionSet(fragment.selectionSet, isClientFieldDescendant, rootValue, execContext).then(function(fragmentResult) { resultsToMerge.push(fragmentResult); })]; } } return [2]; }); }); }; return [2, Promise.all(selectionSet.selections.map(execute2)).then(function() { return mergeDeepArray(resultsToMerge); })]; }); }); }; LocalState2.prototype.resolveField = function(field, isClientFieldDescendant, rootValue, execContext) { return __awaiter$1(this, void 0, void 0, function() { var variables, fieldName, aliasedFieldName, aliasUsed, defaultResult, resultPromise, resolverType, resolverMap, resolve2; var _this = this; return __generator$1(this, function(_a2) { if (!rootValue) { return [2, null]; } variables = execContext.variables; fieldName = field.name.value; aliasedFieldName = resultKeyNameFromField(field); aliasUsed = fieldName !== aliasedFieldName; defaultResult = rootValue[aliasedFieldName] || rootValue[fieldName]; resultPromise = Promise.resolve(defaultResult); if (!execContext.onlyRunForcedResolvers || this.shouldForceResolvers(field)) { resolverType = rootValue.__typename || execContext.defaultOperationType; resolverMap = this.resolvers && this.resolvers[resolverType]; if (resolverMap) { resolve2 = resolverMap[aliasUsed ? fieldName : aliasedFieldName]; if (resolve2) { resultPromise = Promise.resolve( cacheSlot.withValue(this.cache, resolve2, [ rootValue, argumentsObjectFromField(field, variables), execContext.context, { field, fragmentMap: execContext.fragmentMap } ]) ); } } } return [2, resultPromise.then(function(result2) { var _a3, _b; if (result2 === void 0) { result2 = defaultResult; } if (field.directives) { field.directives.forEach(function(directive) { if (directive.name.value === "export" && directive.arguments) { directive.arguments.forEach(function(arg) { if (arg.name.value === "as" && arg.value.kind === "StringValue") { execContext.exportedVariables[arg.value.value] = result2; } }); } }); } if (!field.selectionSet) { return result2; } if (result2 == null) { return result2; } var isClientField = (_b = (_a3 = field.directives) === null || _a3 === void 0 ? void 0 : _a3.some(function(d) { return d.name.value === "client"; })) !== null && _b !== void 0 ? _b : false; if (Array.isArray(result2)) { return _this.resolveSubSelectedArray(field, isClientFieldDescendant || isClientField, result2, execContext); } if (field.selectionSet) { return _this.resolveSelectionSet(field.selectionSet, isClientFieldDescendant || isClientField, result2, execContext); } })]; }); }); }; LocalState2.prototype.resolveSubSelectedArray = function(field, isClientFieldDescendant, result2, execContext) { var _this = this; return Promise.all(result2.map(function(item) { if (item === null) { return null; } if (Array.isArray(item)) { return _this.resolveSubSelectedArray(field, isClientFieldDescendant, item, execContext); } if (field.selectionSet) { return _this.resolveSelectionSet(field.selectionSet, isClientFieldDescendant, item, execContext); } })); }; LocalState2.prototype.collectSelectionsToResolve = function(mainDefinition, fragmentMap) { var isSingleASTNode = function(node) { return !Array.isArray(node); }; var selectionsToResolveCache = this.selectionsToResolveCache; function collectByDefinition(definitionNode) { if (!selectionsToResolveCache.has(definitionNode)) { var matches_1 = /* @__PURE__ */ new Set(); selectionsToResolveCache.set(definitionNode, matches_1); visit(definitionNode, { Directive: function(node, _, __, ___, ancestors) { if (node.name.value === "client") { ancestors.forEach(function(node2) { if (isSingleASTNode(node2) && isSelectionNode(node2)) { matches_1.add(node2); } }); } }, FragmentSpread: function(spread2, _, __, ___, ancestors) { var fragment = fragmentMap[spread2.name.value]; invariant(fragment, 19, spread2.name.value); var fragmentSelections = collectByDefinition(fragment); if (fragmentSelections.size > 0) { ancestors.forEach(function(node) { if (isSingleASTNode(node) && isSelectionNode(node)) { matches_1.add(node); } }); matches_1.add(spread2); fragmentSelections.forEach(function(selection) { matches_1.add(selection); }); } } }); } return selectionsToResolveCache.get(definitionNode); } return collectByDefinition(mainDefinition); }; return LocalState2; }(); var hasSuggestedDevtools = false; var ApolloClient = function() { function ApolloClient2(options) { var _this = this; var _a2; this.resetStoreCallbacks = []; this.clearStoreCallbacks = []; if (!options.cache) { throw newInvariantError(15); } var uri = options.uri, credentials = options.credentials, headers = options.headers, cache2 = options.cache, documentTransform = options.documentTransform, _b = options.ssrMode, ssrMode = _b === void 0 ? false : _b, _c = options.ssrForceFetchDelay, ssrForceFetchDelay = _c === void 0 ? 0 : _c, connectToDevTools = options.connectToDevTools, _d = options.queryDeduplication, queryDeduplication = _d === void 0 ? true : _d, defaultOptions2 = options.defaultOptions, defaultContext = options.defaultContext, _e = options.assumeImmutableResults, assumeImmutableResults = _e === void 0 ? cache2.assumeImmutableResults : _e, resolvers = options.resolvers, typeDefs = options.typeDefs, fragmentMatcher = options.fragmentMatcher, clientAwarenessName = options.name, clientAwarenessVersion = options.version, devtools2 = options.devtools; var link2 = options.link; if (!link2) { link2 = uri ? new HttpLink({ uri, credentials, headers }) : ApolloLink.empty(); } this.link = link2; this.cache = cache2; this.disableNetworkFetches = ssrMode || ssrForceFetchDelay > 0; this.queryDeduplication = queryDeduplication; this.defaultOptions = defaultOptions2 || /* @__PURE__ */ Object.create(null); this.typeDefs = typeDefs; this.devtoolsConfig = __assign$1(__assign$1({}, devtools2), { enabled: (_a2 = devtools2 === null || devtools2 === void 0 ? void 0 : devtools2.enabled) !== null && _a2 !== void 0 ? _a2 : connectToDevTools }); if (this.devtoolsConfig.enabled === void 0) { this.devtoolsConfig.enabled = globalThis.__DEV__ !== false; } if (ssrForceFetchDelay) { setTimeout(function() { return _this.disableNetworkFetches = false; }, ssrForceFetchDelay); } this.watchQuery = this.watchQuery.bind(this); this.query = this.query.bind(this); this.mutate = this.mutate.bind(this); this.watchFragment = this.watchFragment.bind(this); this.resetStore = this.resetStore.bind(this); this.reFetchObservableQueries = this.reFetchObservableQueries.bind(this); this.version = version; this.localState = new LocalState({ cache: cache2, client: this, resolvers, fragmentMatcher }); this.queryManager = new QueryManager({ cache: this.cache, link: this.link, defaultOptions: this.defaultOptions, defaultContext, documentTransform, queryDeduplication, ssrMode, clientAwareness: { name: clientAwarenessName, version: clientAwarenessVersion }, localState: this.localState, assumeImmutableResults, onBroadcast: this.devtoolsConfig.enabled ? function() { if (_this.devToolsHookCb) { _this.devToolsHookCb({ action: {}, state: { queries: _this.queryManager.getQueryStore(), mutations: _this.queryManager.mutationStore || {} }, dataWithOptimisticResults: _this.cache.extract(true) }); } } : void 0 }); if (this.devtoolsConfig.enabled) this.connectToDevTools(); } ApolloClient2.prototype.connectToDevTools = function() { if (typeof window === "undefined") { return; } var windowWithDevTools = window; var devtoolsSymbol = Symbol.for("apollo.devtools"); (windowWithDevTools[devtoolsSymbol] = windowWithDevTools[devtoolsSymbol] || []).push(this); windowWithDevTools.__APOLLO_CLIENT__ = this; if (!hasSuggestedDevtools && globalThis.__DEV__ !== false) { hasSuggestedDevtools = true; if (window.document && window.top === window.self && /^(https?|file):$/.test(window.location.protocol)) { setTimeout(function() { if (!window.__APOLLO_DEVTOOLS_GLOBAL_HOOK__) { var nav = window.navigator; var ua = nav && nav.userAgent; var url = void 0; if (typeof ua === "string") { if (ua.indexOf("Chrome/") > -1) { url = "https://chrome.google.com/webstore/detail/apollo-client-developer-t/jdkknkkbebbapilgoeccciglkfbmbnfm"; } else if (ua.indexOf("Firefox/") > -1) { url = "https://addons.mozilla.org/en-US/firefox/addon/apollo-developer-tools/"; } } if (url) { globalThis.__DEV__ !== false && invariant.log("Download the Apollo DevTools for a better development experience: %s", url); } } }, 1e4); } } }; Object.defineProperty(ApolloClient2.prototype, "documentTransform", { get: function() { return this.queryManager.documentTransform; }, enumerable: false, configurable: true }); ApolloClient2.prototype.stop = function() { this.queryManager.stop(); }; ApolloClient2.prototype.watchQuery = function(options) { if (this.defaultOptions.watchQuery) { options = mergeOptions(this.defaultOptions.watchQuery, options); } if (this.disableNetworkFetches && (options.fetchPolicy === "network-only" || options.fetchPolicy === "cache-and-network")) { options = __assign$1(__assign$1({}, options), { fetchPolicy: "cache-first" }); } return this.queryManager.watchQuery(options); }; ApolloClient2.prototype.query = function(options) { if (this.defaultOptions.query) { options = mergeOptions(this.defaultOptions.query, options); } invariant(options.fetchPolicy !== "cache-and-network", 16); if (this.disableNetworkFetches && options.fetchPolicy === "network-only") { options = __assign$1(__assign$1({}, options), { fetchPolicy: "cache-first" }); } return this.queryManager.query(options); }; ApolloClient2.prototype.mutate = function(options) { if (this.defaultOptions.mutate) { options = mergeOptions(this.defaultOptions.mutate, options); } return this.queryManager.mutate(options); }; ApolloClient2.prototype.subscribe = function(options) { return this.queryManager.startGraphQLSubscription(options); }; ApolloClient2.prototype.readQuery = function(options, optimistic) { if (optimistic === void 0) { optimistic = false; } return this.cache.readQuery(options, optimistic); }; ApolloClient2.prototype.watchFragment = function(options) { return this.cache.watchFragment(options); }; ApolloClient2.prototype.readFragment = function(options, optimistic) { if (optimistic === void 0) { optimistic = false; } return this.cache.readFragment(options, optimistic); }; ApolloClient2.prototype.writeQuery = function(options) { var ref2 = this.cache.writeQuery(options); if (options.broadcast !== false) { this.queryManager.broadcastQueries(); } return ref2; }; ApolloClient2.prototype.writeFragment = function(options) { var ref2 = this.cache.writeFragment(options); if (options.broadcast !== false) { this.queryManager.broadcastQueries(); } return ref2; }; ApolloClient2.prototype.__actionHookForDevTools = function(cb) { this.devToolsHookCb = cb; }; ApolloClient2.prototype.__requestRaw = function(payload) { return execute(this.link, payload); }; ApolloClient2.prototype.resetStore = function() { var _this = this; return Promise.resolve().then(function() { return _this.queryManager.clearStore({ discardWatches: false }); }).then(function() { return Promise.all(_this.resetStoreCallbacks.map(function(fn) { return fn(); })); }).then(function() { return _this.reFetchObservableQueries(); }); }; ApolloClient2.prototype.clearStore = function() { var _this = this; return Promise.resolve().then(function() { return _this.queryManager.clearStore({ discardWatches: true }); }).then(function() { return Promise.all(_this.clearStoreCallbacks.map(function(fn) { return fn(); })); }); }; ApolloClient2.prototype.onResetStore = function(cb) { var _this = this; this.resetStoreCallbacks.push(cb); return function() { _this.resetStoreCallbacks = _this.resetStoreCallbacks.filter(function(c2) { return c2 !== cb; }); }; }; ApolloClient2.prototype.onClearStore = function(cb) { var _this = this; this.clearStoreCallbacks.push(cb); return function() { _this.clearStoreCallbacks = _this.clearStoreCallbacks.filter(function(c2) { return c2 !== cb; }); }; }; ApolloClient2.prototype.reFetchObservableQueries = function(includeStandby) { return this.queryManager.reFetchObservableQueries(includeStandby); }; ApolloClient2.prototype.refetchQueries = function(options) { var map2 = this.queryManager.refetchQueries(options); var queries = []; var results = []; map2.forEach(function(result3, obsQuery) { queries.push(obsQuery); results.push(result3); }); var result2 = Promise.all(results); result2.queries = queries; result2.results = results; result2.catch(function(error) { globalThis.__DEV__ !== false && invariant.debug(17, error); }); return result2; }; ApolloClient2.prototype.getObservableQueries = function(include) { if (include === void 0) { include = "active"; } return this.queryManager.getObservableQueries(include); }; ApolloClient2.prototype.extract = function(optimistic) { return this.cache.extract(optimistic); }; ApolloClient2.prototype.restore = function(serializedState) { return this.cache.restore(serializedState); }; ApolloClient2.prototype.addResolvers = function(resolvers) { this.localState.addResolvers(resolvers); }; ApolloClient2.prototype.setResolvers = function(resolvers) { this.localState.setResolvers(resolvers); }; ApolloClient2.prototype.getResolvers = function() { return this.localState.getResolvers(); }; ApolloClient2.prototype.setLocalStateFragmentMatcher = function(fragmentMatcher) { this.localState.setFragmentMatcher(fragmentMatcher); }; ApolloClient2.prototype.setLink = function(newLink) { this.link = this.queryManager.link = newLink; }; Object.defineProperty(ApolloClient2.prototype, "defaultContext", { get: function() { return this.queryManager.defaultContext; }, enumerable: false, configurable: true }); return ApolloClient2; }(); if (globalThis.__DEV__ !== false) { ApolloClient.prototype.getMemoryInternals = getApolloClientMemoryInternals; } function _iterableToArrayLimit$2(arr, i2) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = true, _d = false; try { if (_x = (_i = _i.call(arr)).next, 0 === i2) { if (Object(_i) !== _i) return; _n = false; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i2); _n = true) ; } catch (err) { _d = true, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function ownKeys$5(object, enumerableOnly) { var keys2 = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function(sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys2.push.apply(keys2, symbols); } return keys2; } function _objectSpread2(target) { for (var i2 = 1; i2 < arguments.length; i2++) { var source = null != arguments[i2] ? arguments[i2] : {}; i2 % 2 ? ownKeys$5(Object(source), true).forEach(function(key) { _defineProperty$5(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$5(Object(source)).forEach(function(key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _typeof$3(obj) { "@babel/helpers - typeof"; return _typeof$3 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj2) { return typeof obj2; } : function(obj2) { return obj2 && "function" == typeof Symbol && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2; }, _typeof$3(obj); } function _classCallCheck$3(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties$3(target, props) { for (var i2 = 0; i2 < props.length; i2++) { var descriptor = props[i2]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass$3(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$3(Constructor.prototype, protoProps); if (staticProps) _defineProperties$3(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _defineProperty$5(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _inherits$1(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf$1(subClass, superClass); } function _getPrototypeOf$1(o2) { _getPrototypeOf$1 = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf2(o3) { return o3.__proto__ || Object.getPrototypeOf(o3); }; return _getPrototypeOf$1(o2); } function _setPrototypeOf$1(o2, p2) { _setPrototypeOf$1 = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf2(o3, p3) { o3.__proto__ = p3; return o3; }; return _setPrototypeOf$1(o2, p2); } function _isNativeReflectConstruct$1() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() { })); return true; } catch (e2) { return false; } } function _assertThisInitialized$1(self2) { if (self2 === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self2; } function _possibleConstructorReturn$1(self2, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized$1(self2); } function _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf$1(Derived), result2; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf$1(this).constructor; result2 = Reflect.construct(Super, arguments, NewTarget); } else { result2 = Super.apply(this, arguments); } return _possibleConstructorReturn$1(this, result2); }; } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf$1(object); if (object === null) break; } return object; } function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get2(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); } function _slicedToArray$2(arr, i2) { return _arrayWithHoles$2(arr) || _iterableToArrayLimit$2(arr, i2) || _unsupportedIterableToArray$7(arr, i2) || _nonIterableRest$2(); } function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$7(arr) || _nonIterableSpread(); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray$7(arr); } function _arrayWithHoles$2(arr) { if (Array.isArray(arr)) return arr; } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _unsupportedIterableToArray$7(o2, minLen) { if (!o2) return; if (typeof o2 === "string") return _arrayLikeToArray$7(o2, minLen); var n2 = Object.prototype.toString.call(o2).slice(8, -1); if (n2 === "Object" && o2.constructor) n2 = o2.constructor.name; if (n2 === "Map" || n2 === "Set") return Array.from(o2); if (n2 === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n2)) return _arrayLikeToArray$7(o2, minLen); } function _arrayLikeToArray$7(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i2 = 0, arr2 = new Array(len); i2 < len; i2++) arr2[i2] = arr[i2]; return arr2; } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _nonIterableRest$2() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== void 0) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } function throttle(delay, callback, options) { var _ref = options || {}, _ref$noTrailing = _ref.noTrailing, noTrailing = _ref$noTrailing === void 0 ? false : _ref$noTrailing, _ref$noLeading = _ref.noLeading, noLeading = _ref$noLeading === void 0 ? false : _ref$noLeading, _ref$debounceMode = _ref.debounceMode, debounceMode = _ref$debounceMode === void 0 ? void 0 : _ref$debounceMode; var timeoutID; var cancelled = false; var lastExec = 0; function clearExistingTimeout() { if (timeoutID) { clearTimeout(timeoutID); } } function cancel(options2) { var _ref2 = options2 || {}, _ref2$upcomingOnly = _ref2.upcomingOnly, upcomingOnly = _ref2$upcomingOnly === void 0 ? false : _ref2$upcomingOnly; clearExistingTimeout(); cancelled = !upcomingOnly; } function wrapper() { for (var _len = arguments.length, arguments_ = new Array(_len), _key = 0; _key < _len; _key++) { arguments_[_key] = arguments[_key]; } var self2 = this; var elapsed = Date.now() - lastExec; if (cancelled) { return; } function exec() { lastExec = Date.now(); callback.apply(self2, arguments_); } function clear() { timeoutID = void 0; } if (!noLeading && debounceMode && !timeoutID) { exec(); } clearExistingTimeout(); if (debounceMode === void 0 && elapsed > delay) { if (noLeading) { lastExec = Date.now(); if (!noTrailing) { timeoutID = setTimeout(debounceMode ? clear : exec, delay); } } else { exec(); } } else if (noTrailing !== true) { timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === void 0 ? delay - elapsed : delay); } } wrapper.cancel = cancel; return wrapper; } function debounce(delay, callback, options) { var _ref = options || {}, _ref$atBegin = _ref.atBegin, atBegin = _ref$atBegin === void 0 ? false : _ref$atBegin; return throttle(delay, callback, { debounceMode: atBegin !== false }); } var esm = /* @__PURE__ */ Object.freeze({ __proto__: null, debounce, throttle }); function factory(action) { return function(cb, time) { return action(time, cb); }; } var throttle$1 = factory(esm.throttle); var debounce$1 = factory(esm.debounce); var reapply = function reapply2(options, context) { while (typeof options === "function") { options = options.call(context); } return options; }; var omit = function omit2(obj, properties) { return Object.entries(obj).filter(function(_ref) { var _ref2 = _slicedToArray$2(_ref, 1), key = _ref2[0]; return !properties.includes(key); }).reduce(function(c2, _ref3) { var _ref4 = _slicedToArray$2(_ref3, 2), key = _ref4[0], val = _ref4[1]; c2[key] = val; return c2; }, {}); }; var addGqlError = function addGqlError2(error) { if (error.graphQLErrors && error.graphQLErrors.length) { error.gqlError = error.graphQLErrors[0]; } }; var isServer = typeof window === "undefined"; var skippAllKeys = { query: "_skipAllQueries", subscription: "_skipAllSubscriptions" }; var SmartApollo = /* @__PURE__ */ function() { function SmartApollo2(vm, key, options) { _classCallCheck$3(this, SmartApollo2); _defineProperty$5(this, "type", null); _defineProperty$5(this, "vueApolloSpecialKeys", []); this.vm = vm; this.key = key; this.initialOptions = options; this.options = Object.assign({}, options); this._skip = false; this._pollInterval = null; this._watchers = []; this._destroyed = false; this.lastApolloOptions = null; } _createClass$3(SmartApollo2, [{ key: "autostart", value: function autostart() { var _this = this; if (typeof this.options.skip === "function") { this._skipWatcher = this.vm.$watch(function() { return _this.options.skip.call(_this.vm, _this.vm, _this.key); }, this.skipChanged.bind(this), { immediate: true, deep: this.options.deep }); } else if (!this.options.skip && !this.allSkip) { this.start(); } else { this._skip = true; } if (typeof this.options.pollInterval === "function") { this._pollWatcher = this.vm.$watch(this.options.pollInterval.bind(this.vm), this.pollIntervalChanged.bind(this), { immediate: true }); } } }, { key: "pollIntervalChanged", value: function pollIntervalChanged(value, oldValue) { if (value !== oldValue) { this.pollInterval = value; if (value == null) { this.stopPolling(); } else { this.startPolling(value); } } } }, { key: "skipChanged", value: function skipChanged(value, oldValue) { if (value !== oldValue) { this.skip = value; } } }, { key: "pollInterval", get: function get2() { return this._pollInterval; }, set: function set2(value) { this._pollInterval = value; } }, { key: "skip", get: function get2() { return this._skip; }, set: function set2(value) { if (value || this.allSkip) { this.stop(); } else { this.start(); } this._skip = value; } }, { key: "allSkip", get: function get2() { return this.vm.$apollo[skippAllKeys[this.type]]; } }, { key: "refresh", value: function refresh() { if (!this._skip) { this.stop(); this.start(); } } }, { key: "start", value: function start() { var _this2 = this; this.starting = true; var _loop = function _loop2() { var prop = _ref2[_i2]; if (typeof _this2.initialOptions[prop] === "function") { var queryCb = _this2.initialOptions[prop].bind(_this2.vm); _this2.options[prop] = queryCb(); var cb2 = function cb3(query) { if (_this2._destroyed) return; _this2.options[prop] = query; _this2.refresh(); }; if (!isServer) { cb2 = _this2.options.throttle ? throttle$1(cb2, _this2.options.throttle) : cb2; cb2 = _this2.options.debounce ? debounce$1(cb2, _this2.options.debounce) : cb2; } _this2._watchers.push(_this2.vm.$watch(queryCb, cb2, { deep: _this2.options.deep })); } }; for (var _i2 = 0, _ref2 = ["query", "document", "context"]; _i2 < _ref2.length; _i2++) { _loop(); } if (typeof this.options.variables === "function") { var cb = this.executeApollo.bind(this); if (!isServer) { cb = this.options.throttle ? throttle$1(cb, this.options.throttle) : cb; cb = this.options.debounce ? debounce$1(cb, this.options.debounce) : cb; } this._watchers.push(this.vm.$watch(function() { return typeof _this2.options.variables === "function" ? _this2.options.variables.call(_this2.vm) : _this2.options.variables; }, cb, { immediate: true, deep: this.options.deep })); } else { this.executeApollo(this.options.variables); } } }, { key: "stop", value: function stop2() { for (var _i4 = 0, _this$_watchers2 = this._watchers; _i4 < _this$_watchers2.length; _i4++) { var unwatch = _this$_watchers2[_i4]; unwatch(); } if (this.sub) { this.sub.unsubscribe(); this.sub = null; } } }, { key: "generateApolloOptions", value: function generateApolloOptions(variables) { var apolloOptions = omit(this.options, this.vueApolloSpecialKeys); apolloOptions.variables = variables; this.lastApolloOptions = apolloOptions; return apolloOptions; } }, { key: "executeApollo", value: function executeApollo(variables) { this.starting = false; } }, { key: "nextResult", value: function nextResult(result2) { var error = result2.error; if (error) addGqlError(error); } }, { key: "callHandlers", value: function callHandlers(handlers) { var catched = false; for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key]; } for (var _i6 = 0; _i6 < handlers.length; _i6++) { var handler = handlers[_i6]; if (handler) { catched = true; var result2 = handler.apply(this.vm, args); if (typeof result2 !== "undefined" && !result2) { break; } } } return catched; } }, { key: "errorHandler", value: function errorHandler() { for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2]; } return this.callHandlers.apply(this, [[this.options.error, this.vm.$apollo.error, this.vm.$apollo.provider.errorHandler]].concat(args)); } }, { key: "catchError", value: function catchError(error) { addGqlError(error); var catched = this.errorHandler(error, this.vm, this.key, this.type, this.lastApolloOptions); if (catched) return; if (error.graphQLErrors && error.graphQLErrors.length !== 0) { console.error("GraphQL execution errors for ".concat(this.type, " '").concat(this.key, "'")); for (var _i8 = 0, _error$graphQLErrors2 = error.graphQLErrors; _i8 < _error$graphQLErrors2.length; _i8++) { var e2 = _error$graphQLErrors2[_i8]; console.error(e2); } } else if (error.networkError) { console.error("Error sending the ".concat(this.type, " '").concat(this.key, "'"), error.networkError); } else { console.error("[vue-apollo] An error has occurred for ".concat(this.type, " '").concat(this.key, "'")); if (Array.isArray(error)) { var _console; (_console = console).error.apply(_console, _toConsumableArray(error)); } else { console.error(error); } } } }, { key: "destroy", value: function destroy2() { if (this._destroyed) return; this._destroyed = true; this.stop(); if (this._skipWatcher) { this._skipWatcher(); } } }]); return SmartApollo2; }(); var VUE_APOLLO_QUERY_KEYWORDS = ["variables", "watch", "update", "result", "error", "loadingKey", "watchLoading", "skip", "throttle", "debounce", "subscribeToMore", "prefetch", "manual"]; var SmartQuery = /* @__PURE__ */ function(_SmartApollo) { _inherits$1(SmartQuery2, _SmartApollo); var _super = _createSuper$1(SmartQuery2); function SmartQuery2(vm, key, options) { var _this; var autostart = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true; _classCallCheck$3(this, SmartQuery2); if (vm.$data.$apolloData && !vm.$data.$apolloData.queries[key]) { vm.$data.$apolloData.queries[key] = { loading: false }; } _this = _super.call(this, vm, key, options); _defineProperty$5(_assertThisInitialized$1(_this), "type", "query"); _defineProperty$5(_assertThisInitialized$1(_this), "vueApolloSpecialKeys", VUE_APOLLO_QUERY_KEYWORDS); _defineProperty$5(_assertThisInitialized$1(_this), "_loading", false); _defineProperty$5(_assertThisInitialized$1(_this), "_linkedSubscriptions", []); if (isServer) { _this.firstRun = new Promise(function(resolve2, reject) { _this._firstRunResolve = resolve2; _this._firstRunReject = reject; }); } if (isServer) { _this.options.fetchPolicy = "network-only"; } if (!options.manual) { _this.hasDataField = Object.prototype.hasOwnProperty.call(_this.vm.$data, key); if (_this.hasDataField) { Object.defineProperty(_this.vm.$data.$apolloData.data, key, { get: function get2() { return _this.vm.$data[key]; }, enumerable: true, configurable: true }); } else { Object.defineProperty(_this.vm.$data, key, { get: function get2() { return _this.vm.$data.$apolloData.data[key]; }, enumerable: true, configurable: true }); } } if (autostart) { _this.autostart(); } return _this; } _createClass$3(SmartQuery2, [{ key: "client", get: function get2() { return this.vm.$apollo.getClient(this.options); } }, { key: "loading", get: function get2() { return this.vm.$data.$apolloData && this.vm.$data.$apolloData.queries[this.key] ? this.vm.$data.$apolloData.queries[this.key].loading : this._loading; }, set: function set2(value) { if (this._loading !== value) { this._loading = value; if (this.vm.$data.$apolloData && this.vm.$data.$apolloData.queries[this.key]) { this.vm.$data.$apolloData.queries[this.key].loading = value; this.vm.$data.$apolloData.loading += value ? 1 : -1; } } } }, { key: "stop", value: function stop2() { _get(_getPrototypeOf$1(SmartQuery2.prototype), "stop", this).call(this); this.loadingDone(); if (this.observer) { this.observer.stopPolling(); this.observer = null; } } }, { key: "generateApolloOptions", value: function generateApolloOptions(variables) { var apolloOptions = _get(_getPrototypeOf$1(SmartQuery2.prototype), "generateApolloOptions", this).call(this, variables); if (this.vm.$isServer) { delete apolloOptions.pollInterval; } return apolloOptions; } }, { key: "executeApollo", value: function executeApollo(variables) { if (this._destroyed) return; var variablesJson = JSON.stringify(variables); if (this.sub) { if (variablesJson === this.previousVariablesJson) { return; } this.sub.unsubscribe(); for (var _i2 = 0, _this$_linkedSubscrip2 = this._linkedSubscriptions; _i2 < _this$_linkedSubscrip2.length; _i2++) { var sub = _this$_linkedSubscrip2[_i2]; sub.stop(); } } this.previousVariablesJson = variablesJson; this.observer = this.vm.$apollo.watchQuery(this.generateApolloOptions(variables)); this.startQuerySubscription(); if (this.options.fetchPolicy !== "no-cache" || this.options.notifyOnNetworkStatusChange) { var currentResult = this.retrieveCurrentResult(); if (this.options.notifyOnNetworkStatusChange || this.observer.getCurrentResult && !currentResult.loading) { this.nextResult(currentResult); } } _get(_getPrototypeOf$1(SmartQuery2.prototype), "executeApollo", this).call(this, variables); for (var _i4 = 0, _this$_linkedSubscrip4 = this._linkedSubscriptions; _i4 < _this$_linkedSubscrip4.length; _i4++) { var _sub = _this$_linkedSubscrip4[_i4]; _sub.start(); } } }, { key: "startQuerySubscription", value: function startQuerySubscription() { if (this.sub && !this.sub.closed) return; this.sub = this.observer.subscribe({ next: this.nextResult.bind(this), error: this.catchError.bind(this) }); } }, { key: "retrieveCurrentResult", value: function retrieveCurrentResult() { var force = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false; var currentResult = this.observer.getCurrentResult ? this.observer.getCurrentResult() : this.observer.currentResult(); if (force || currentResult.loading) { if (!this.loading) { this.applyLoadingModifier(1); } this.loading = true; } return currentResult; } }, { key: "nextResult", value: function nextResult(result2) { _get(_getPrototypeOf$1(SmartQuery2.prototype), "nextResult", this).call(this, result2); var data2 = result2.data, loading = result2.loading, error = result2.error, errors = result2.errors; var anyErrors = errors && errors.length; if (error || anyErrors) { this.firstRunReject(error); } if (!loading) { this.loadingDone(); } if (!error && anyErrors) { var e2 = new Error("GraphQL error: ".concat(errors.map(function(e3) { return e3.message; }).join(" | "))); Object.assign(e2, { graphQLErrors: errors, networkError: null }); _get(_getPrototypeOf$1(SmartQuery2.prototype), "catchError", this).call(this, e2); } if (this.observer.options.errorPolicy === "none" && (error || anyErrors)) { return; } var hasResultCallback = typeof this.options.result === "function"; if (data2 == null) ; else if (!this.options.manual) { if (typeof this.options.update === "function") { this.setData(this.options.update.call(this.vm, data2)); } else if (typeof data2[this.key] === "undefined" && Object.keys(data2).length) { console.error("Missing ".concat(this.key, " attribute on result"), data2); } else { this.setData(data2[this.key]); } } else if (!hasResultCallback) { console.error("".concat(this.key, " query must have a 'result' hook in manual mode")); } if (hasResultCallback) { this.options.result.call(this.vm, result2, this.key); } } }, { key: "setData", value: function setData(value) { var target = this.hasDataField ? this.vm.$data : this.vm.$data.$apolloData.data; target[this.key] = value; } }, { key: "catchError", value: function catchError(error) { _get(_getPrototypeOf$1(SmartQuery2.prototype), "catchError", this).call(this, error); this.firstRunReject(error); this.loadingDone(error); this.nextResult(this.observer.getCurrentResult ? this.observer.getCurrentResult() : this.observer.currentResult()); this.resubscribeToQuery(); } }, { key: "resubscribeToQuery", value: function resubscribeToQuery() { var lastError = this.observer.getLastError(); var lastResult = this.observer.getLastResult(); this.observer.resetLastResults(); this.startQuerySubscription(); Object.assign(this.observer, { lastError, lastResult }); } }, { key: "loadingKey", get: function get2() { return this.options.loadingKey || this.vm.$apollo.loadingKey; } }, { key: "watchLoading", value: function watchLoading() { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return this.callHandlers.apply(this, [[this.options.watchLoading, this.vm.$apollo.watchLoading, this.vm.$apollo.provider.watchLoading]].concat(args, [this])); } }, { key: "applyLoadingModifier", value: function applyLoadingModifier(value) { var loadingKey = this.loadingKey; if (loadingKey && typeof this.vm[loadingKey] === "number") { this.vm[loadingKey] += value; } this.watchLoading(value === 1, value); } }, { key: "loadingDone", value: function loadingDone() { var error = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : null; if (this.loading) { this.applyLoadingModifier(-1); } this.loading = false; if (!error) { this.firstRunResolve(); } } }, { key: "fetchMore", value: function fetchMore() { var _this2 = this; if (this.observer) { var _this$observer; this.retrieveCurrentResult(true); return (_this$observer = this.observer).fetchMore.apply(_this$observer, arguments).then(function(result2) { if (!result2.loading) { _this2.loadingDone(); } return result2; }); } } }, { key: "subscribeToMore", value: function subscribeToMore() { if (this.observer) { var _this$observer2; return { unsubscribe: (_this$observer2 = this.observer).subscribeToMore.apply(_this$observer2, arguments) }; } } }, { key: "refetch", value: function refetch(variables) { var _this3 = this; variables && (this.options.variables = variables); if (this.observer) { var result2 = this.observer.refetch(variables).then(function(result3) { if (!result3.loading) { _this3.loadingDone(); } return result3; }); this.retrieveCurrentResult(); return result2; } } }, { key: "setVariables", value: function setVariables(variables, tryFetch) { this.options.variables = variables; if (this.observer) { var result2 = this.observer.setVariables(variables, tryFetch); this.retrieveCurrentResult(); return result2; } } }, { key: "setOptions", value: function setOptions(options) { Object.assign(this.options, options); if (this.observer) { var result2 = this.observer.setOptions(options); this.retrieveCurrentResult(); return result2; } } }, { key: "startPolling", value: function startPolling() { if (this.observer) { var _this$observer3; return (_this$observer3 = this.observer).startPolling.apply(_this$observer3, arguments); } } }, { key: "stopPolling", value: function stopPolling() { if (this.observer) { var _this$observer4; return (_this$observer4 = this.observer).stopPolling.apply(_this$observer4, arguments); } } }, { key: "firstRunResolve", value: function firstRunResolve() { if (this._firstRunResolve) { this._firstRunResolve(); this._firstRunResolve = null; } } }, { key: "firstRunReject", value: function firstRunReject(error) { if (this._firstRunReject) { this._firstRunReject(error); this._firstRunReject = null; } } }, { key: "destroy", value: function destroy2() { _get(_getPrototypeOf$1(SmartQuery2.prototype), "destroy", this).call(this); if (this.loading) { this.watchLoading(false, -1); } this.loading = false; } }]); return SmartQuery2; }(SmartApollo); var MAX_RETRIES = 5; var DELAY_MS = 500; var SmartSubscription = /* @__PURE__ */ function(_SmartApollo) { _inherits$1(SmartSubscription2, _SmartApollo); var _super = _createSuper$1(SmartSubscription2); function SmartSubscription2(vm, key, options) { var _this; var autostart = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true; _classCallCheck$3(this, SmartSubscription2); _this = _super.call(this, vm, key, options); _defineProperty$5(_assertThisInitialized$1(_this), "type", "subscription"); _defineProperty$5(_assertThisInitialized$1(_this), "vueApolloSpecialKeys", ["variables", "result", "error", "throttle", "debounce", "linkedQuery"]); _this.attempts = 0; if (autostart) { _this.autostart(); } return _this; } _createClass$3(SmartSubscription2, [{ key: "generateApolloOptions", value: function generateApolloOptions(variables) { var apolloOptions = _get(_getPrototypeOf$1(SmartSubscription2.prototype), "generateApolloOptions", this).call(this, variables); apolloOptions.onError = this.catchError.bind(this); return apolloOptions; } }, { key: "executeApollo", value: function executeApollo(variables) { if (this._destroyed) return; var variablesJson = JSON.stringify(variables); if (this.sub) { if (variablesJson === this.previousVariablesJson) { return; } this.sub.unsubscribe(); } this.previousVariablesJson = variablesJson; var apolloOptions = this.generateApolloOptions(variables); if (typeof apolloOptions.updateQuery === "function") { apolloOptions.updateQuery = apolloOptions.updateQuery.bind(this.vm); } if (this.options.linkedQuery) { if (typeof this.options.result === "function") { var rcb = this.options.result.bind(this.vm); var ucb = apolloOptions.updateQuery && apolloOptions.updateQuery.bind(this.vm); apolloOptions.updateQuery = function() { rcb.apply(void 0, arguments); return ucb && ucb.apply(void 0, arguments); }; } this.sub = this.options.linkedQuery.subscribeToMore(apolloOptions); } else { this.observer = this.vm.$apollo.subscribe(apolloOptions); this.sub = this.observer.subscribe({ next: this.nextResult.bind(this), error: this.catchError.bind(this) }); } _get(_getPrototypeOf$1(SmartSubscription2.prototype), "executeApollo", this).call(this, variables); } }, { key: "nextResult", value: function nextResult(data2) { _get(_getPrototypeOf$1(SmartSubscription2.prototype), "nextResult", this).call(this, data2); this.attempts = 0; if (typeof this.options.result === "function") { this.options.result.call(this.vm, data2, this.key); } } }, { key: "catchError", value: function catchError(error) { _get(_getPrototypeOf$1(SmartSubscription2.prototype), "catchError", this).call(this, error); if (this.skip || this.attempts >= MAX_RETRIES) { return; } this.stop(); this.retryTimeout = setTimeout(this.start.bind(this), Math.pow(2, this.attempts) * DELAY_MS); this.attempts++; } }, { key: "stop", value: function stop2() { _get(_getPrototypeOf$1(SmartSubscription2.prototype), "stop", this).call(this); clearTimeout(this.retryTimeout); } }]); return SmartSubscription2; }(SmartApollo); var DollarApollo = /* @__PURE__ */ function() { function DollarApollo2(vm, provider) { _classCallCheck$3(this, DollarApollo2); this._apolloSubscriptions = []; this._watchers = []; this.vm = vm; this.provider = provider; this.queries = {}; this.subscriptions = {}; this.client = void 0; this.loadingKey = void 0; this.error = void 0; } _createClass$3(DollarApollo2, [{ key: "getClient", value: function getClient() { var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : null; if (!options || !options.client) { if (_typeof$3(this.client) === "object") { return this.client; } if (this.client) { if (!this.provider.clients) { throw new Error("[vue-apollo] Missing 'clients' options in 'apolloProvider'"); } else { var _client = this.provider.clients[this.client]; if (!_client) { throw new Error("[vue-apollo] Missing client '".concat(this.client, "' in 'apolloProvider'")); } return _client; } } return this.provider.defaultClient; } var client2 = this.provider.clients[options.client]; if (!client2) { throw new Error("[vue-apollo] Missing client '".concat(options.client, "' in 'apolloProvider'")); } return client2; } }, { key: "query", value: function query(options) { return this.getClient(options).query(options); } }, { key: "watchQuery", value: function watchQuery(options) { var _this = this; var observable = this.getClient(options).watchQuery(options); var _subscribe = observable.subscribe.bind(observable); observable.subscribe = function(options2) { var sub = _subscribe(options2); _this._apolloSubscriptions.push(sub); return sub; }; return observable; } }, { key: "mutate", value: function mutate(options) { return this.getClient(options).mutate(options); } }, { key: "subscribe", value: function subscribe(options) { var _this2 = this; if (!isServer) { var observable = this.getClient(options).subscribe(options); var _subscribe = observable.subscribe.bind(observable); observable.subscribe = function(options2) { var sub = _subscribe(options2); _this2._apolloSubscriptions.push(sub); return sub; }; return observable; } } }, { key: "loading", get: function get2() { return this.vm.$data.$apolloData.loading !== 0; } }, { key: "data", get: function get2() { return this.vm.$data.$apolloData.data; } }, { key: "addSmartQuery", value: function addSmartQuery(key, options) { var _this3 = this; var finalOptions = reapply(options, this.vm); if (!finalOptions.query) { var query = finalOptions; finalOptions = { query }; } var apollo = this.vm.$options.apollo; var defaultOptions2 = this.provider.defaultOptions; var $query; if (defaultOptions2 && defaultOptions2.$query) { $query = defaultOptions2.$query; } if (apollo && apollo.$query) { $query = _objectSpread2(_objectSpread2({}, $query || {}), apollo.$query); } if ($query) { for (var _key in $query) { if (typeof finalOptions[_key] === "undefined") { finalOptions[_key] = $query[_key]; } } } var smart = this.queries[key] = new SmartQuery(this.vm, key, finalOptions, false); if (!isServer || finalOptions.prefetch !== false) { smart.autostart(); } if (!isServer) { var subs = finalOptions.subscribeToMore; if (subs) { if (Array.isArray(subs)) { subs.forEach(function(sub, index2) { _this3.addSmartSubscription("".concat(key).concat(index2), _objectSpread2(_objectSpread2({}, sub), {}, { linkedQuery: smart })); }); } else { this.addSmartSubscription(key, _objectSpread2(_objectSpread2({}, subs), {}, { linkedQuery: smart })); } } } return smart; } }, { key: "addSmartSubscription", value: function addSmartSubscription(key, options) { if (!isServer) { options = reapply(options, this.vm); var smart = this.subscriptions[key] = new SmartSubscription(this.vm, key, options, false); smart.autostart(); if (options.linkedQuery) { var index2 = options.linkedQuery._linkedSubscriptions.findIndex(function(x) { return x.key === key; }); if (index2 !== -1) { options.linkedQuery._linkedSubscriptions[index2] = smart; } else { options.linkedQuery._linkedSubscriptions.push(smart); } } return smart; } } }, { key: "defineReactiveSetter", value: function defineReactiveSetter2(key, func, deep) { var _this4 = this; this._watchers.push(this.vm.$watch(func, function(value) { _this4[key] = value; }, { immediate: true, deep })); } }, { key: "skipAllQueries", set: function set2(value) { this._skipAllQueries = value; for (var key in this.queries) { this.queries[key].skip = value; } } }, { key: "skipAllSubscriptions", set: function set2(value) { this._skipAllSubscriptions = value; for (var key in this.subscriptions) { this.subscriptions[key].skip = value; } } }, { key: "skipAll", set: function set2(value) { this.skipAllQueries = value; this.skipAllSubscriptions = value; } }, { key: "destroy", value: function destroy2() { for (var _i2 = 0, _this$_watchers2 = this._watchers; _i2 < _this$_watchers2.length; _i2++) { var unwatch = _this$_watchers2[_i2]; unwatch(); } for (var key in this.queries) { this.queries[key].destroy(); } for (var _key2 in this.subscriptions) { this.subscriptions[_key2].destroy(); } this._apolloSubscriptions.forEach(function(sub) { sub.unsubscribe(); }); this._apolloSubscriptions = null; this.vm = null; } }]); return DollarApollo2; }(); function hasProperty(holder, key) { return typeof holder !== "undefined" && Object.prototype.hasOwnProperty.call(holder, key); } function launch() { var _this = this; var apolloProvider2 = this.$apolloProvider; if (this._apolloLaunched || !apolloProvider2) return; this._apolloLaunched = true; var apollo = this.$options.apollo; if (apollo) { this.$_apolloPromises = []; if (!apollo.$init) { apollo.$init = true; if (apolloProvider2.defaultOptions) { apollo = this.$options.apollo = Object.assign({}, apolloProvider2.defaultOptions, apollo); } } defineReactiveSetter(this.$apollo, "skipAll", apollo.$skipAll, apollo.$deep); defineReactiveSetter(this.$apollo, "skipAllQueries", apollo.$skipAllQueries, apollo.$deep); defineReactiveSetter(this.$apollo, "skipAllSubscriptions", apollo.$skipAllSubscriptions, apollo.$deep); defineReactiveSetter(this.$apollo, "client", apollo.$client, apollo.$deep); defineReactiveSetter(this.$apollo, "loadingKey", apollo.$loadingKey, apollo.$deep); defineReactiveSetter(this.$apollo, "error", apollo.$error, apollo.$deep); defineReactiveSetter(this.$apollo, "watchLoading", apollo.$watchLoading, apollo.$deep); Object.defineProperty(this, "$apolloData", { get: function get2() { return _this.$data.$apolloData; }, enumerable: true, configurable: true }); for (var key in apollo) { if (key.charAt(0) !== "$") { var options = apollo[key]; var smart = this.$apollo.addSmartQuery(key, options); if (isServer) { options = reapply(options, this); if (apolloProvider2.prefetch !== false && options.prefetch !== false && apollo.$prefetch !== false && !smart.skip) { this.$_apolloPromises.push(smart.firstRun); } } } } if (apollo.subscribe) { console.warn("vue-apollo -> `subscribe` option is deprecated. Use the `$subscribe` option instead."); } if (apollo.$subscribe) { for (var _key in apollo.$subscribe) { this.$apollo.addSmartSubscription(_key, apollo.$subscribe[_key]); } } } } function defineReactiveSetter($apollo, key, value, deep) { if (typeof value !== "undefined") { if (typeof value === "function") { $apollo.defineReactiveSetter(key, value, deep); } else { $apollo[key] = value; } } } function destroy() { if (this.$apollo) { this.$apollo.destroy(); this.$apollo = null; } } function installMixin(app2, provider) { app2.mixin({ data: function data2() { var result2 = { $apolloData: { queries: {}, loading: 0, data: {} } }; var apollo = this.$options.apollo; if (apollo) { for (var key in apollo) { if (key.charAt(0) !== "$") { var options = apollo[key]; if (!options.manual && !hasProperty(this.$options.props, key) && !hasProperty(this.$options.computed, key) && !hasProperty(this.$options.methods, key)) { result2[key] = null; } } } } return result2; }, beforeCreate: function beforeCreate() { var _this2 = this; this.$apollo = new DollarApollo(this, provider); if (isServer) { var render2 = this.$options.ssrRender; if (!render2) return; if (render2.__IS_VUE_APOLLO_WRAPPED) return; this.$options.ssrRender = function(h2) { var result2 = render2.call(_this2, h2); destroy.call(_this2); return result2; }; this.$options.ssrRender.__IS_VUE_APOLLO_WRAPPED = true; } }, serverPrefetch: function serverPrefetch() { var _this3 = this; if (this.$_apolloPromises) { return Promise.all(this.$_apolloPromises).then(function() { var mocked = { vm: _this3, provider: _this3.$apollo.provider, loading: false, queries: {}, subscriptions: {} }; destroy.call(_this3); _this3.$apollo = mocked; })["catch"](function(e2) { destroy.call(_this3); return Promise.reject(e2); }); } }, created: launch, unmounted: destroy }); } var keywords = ["$subscribe"]; var ApolloProvider = /* @__PURE__ */ function() { function ApolloProvider2(options) { _classCallCheck$3(this, ApolloProvider2); if (!options) { throw new Error("Options argument required"); } this.clients = options.clients || {}; if (options.defaultClient) { this.clients.defaultClient = this.defaultClient = options.defaultClient; } this.defaultOptions = options.defaultOptions; this.watchLoading = options.watchLoading; this.errorHandler = options.errorHandler; this.prefetch = options.prefetch; } _createClass$3(ApolloProvider2, [{ key: "install", value: function install(app2) { app2.config.optionMergeStrategies.apollo = function(toVal, fromVal, vm) { if (!toVal) return fromVal; if (!fromVal) return toVal; var toData = Object.assign({}, omit(toVal, keywords), toVal.data); var fromData = Object.assign({}, omit(fromVal, keywords), fromVal.data); var map2 = {}; for (var i2 = 0; i2 < keywords.length; i2++) { var key = keywords[i2]; map2[key] = mergeObjectOptions(toVal[key], fromVal[key]); } return Object.assign(map2, mergeObjectOptions(toData, fromData)); }; app2.config.globalProperties.$apolloProvider = this; installMixin(app2, this); } }]); return ApolloProvider2; }(); function mergeObjectOptions(to2, from2) { return to2 ? Object.assign(Object.assign(/* @__PURE__ */ Object.create(null), to2), from2) : from2; } function createApolloProvider(options) { return new ApolloProvider(options); } var client = {}; var backo2 = Backoff$1; function Backoff$1(opts) { opts = opts || {}; this.ms = opts.min || 100; this.max = opts.max || 1e4; this.factor = opts.factor || 2; this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0; this.attempts = 0; } Backoff$1.prototype.duration = function() { var ms = this.ms * Math.pow(this.factor, this.attempts++); if (this.jitter) { var rand = Math.random(); var deviation = Math.floor(rand * this.jitter * ms); ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation; } return Math.min(ms, this.max) | 0; }; Backoff$1.prototype.reset = function() { this.attempts = 0; }; Backoff$1.prototype.setMin = function(min2) { this.ms = min2; }; Backoff$1.prototype.setMax = function(max2) { this.max = max2; }; Backoff$1.prototype.setJitter = function(jitter) { this.jitter = jitter; }; var eventemitter3 = { exports: {} }; (function(module2) { var has = Object.prototype.hasOwnProperty, prefix = "~"; function Events() { } if (Object.create) { Events.prototype = /* @__PURE__ */ Object.create(null); if (!new Events().__proto__) prefix = false; } function EE(fn, context, once) { this.fn = fn; this.context = context; this.once = once || false; } function addListener(emitter, event, fn, context, once) { if (typeof fn !== "function") { throw new TypeError("The listener must be a function"); } var listener = new EE(fn, context || emitter, once), evt = prefix ? prefix + event : event; if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++; else if (!emitter._events[evt].fn) emitter._events[evt].push(listener); else emitter._events[evt] = [emitter._events[evt], listener]; return emitter; } function clearEvent(emitter, evt) { if (--emitter._eventsCount === 0) emitter._events = new Events(); else delete emitter._events[evt]; } function EventEmitter() { this._events = new Events(); this._eventsCount = 0; } EventEmitter.prototype.eventNames = function eventNames() { var names = [], events, name; if (this._eventsCount === 0) return names; for (name in events = this._events) { if (has.call(events, name)) names.push(prefix ? name.slice(1) : name); } if (Object.getOwnPropertySymbols) { return names.concat(Object.getOwnPropertySymbols(events)); } return names; }; EventEmitter.prototype.listeners = function listeners(event) { var evt = prefix ? prefix + event : event, handlers = this._events[evt]; if (!handlers) return []; if (handlers.fn) return [handlers.fn]; for (var i2 = 0, l = handlers.length, ee = new Array(l); i2 < l; i2++) { ee[i2] = handlers[i2].fn; } return ee; }; EventEmitter.prototype.listenerCount = function listenerCount(event) { var evt = prefix ? prefix + event : event, listeners = this._events[evt]; if (!listeners) return 0; if (listeners.fn) return 1; return listeners.length; }; EventEmitter.prototype.emit = function emit2(event, a1, a2, a3, a4, a5) { var evt = prefix ? prefix + event : event; if (!this._events[evt]) return false; var listeners = this._events[evt], len = arguments.length, args, i2; if (listeners.fn) { if (listeners.once) this.removeListener(event, listeners.fn, void 0, true); switch (len) { case 1: return listeners.fn.call(listeners.context), true; case 2: return listeners.fn.call(listeners.context, a1), true; case 3: return listeners.fn.call(listeners.context, a1, a2), true; case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true; case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true; case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true; } for (i2 = 1, args = new Array(len - 1); i2 < len; i2++) { args[i2 - 1] = arguments[i2]; } listeners.fn.apply(listeners.context, args); } else { var length = listeners.length, j; for (i2 = 0; i2 < length; i2++) { if (listeners[i2].once) this.removeListener(event, listeners[i2].fn, void 0, true); switch (len) { case 1: listeners[i2].fn.call(listeners[i2].context); break; case 2: listeners[i2].fn.call(listeners[i2].context, a1); break; case 3: listeners[i2].fn.call(listeners[i2].context, a1, a2); break; case 4: listeners[i2].fn.call(listeners[i2].context, a1, a2, a3); break; default: if (!args) for (j = 1, args = new Array(len - 1); j < len; j++) { args[j - 1] = arguments[j]; } listeners[i2].fn.apply(listeners[i2].context, args); } } } return true; }; EventEmitter.prototype.on = function on(event, fn, context) { return addListener(this, event, fn, context, false); }; EventEmitter.prototype.once = function once(event, fn, context) { return addListener(this, event, fn, context, true); }; EventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) { var evt = prefix ? prefix + event : event; if (!this._events[evt]) return this; if (!fn) { clearEvent(this, evt); return this; } var listeners = this._events[evt]; if (listeners.fn) { if (listeners.fn === fn && (!once || listeners.once) && (!context || listeners.context === context)) { clearEvent(this, evt); } } else { for (var i2 = 0, events = [], length = listeners.length; i2 < length; i2++) { if (listeners[i2].fn !== fn || once && !listeners[i2].once || context && listeners[i2].context !== context) { events.push(listeners[i2]); } } if (events.length) this._events[evt] = events.length === 1 ? events[0] : events; else clearEvent(this, evt); } return this; }; EventEmitter.prototype.removeAllListeners = function removeAllListeners(event) { var evt; if (event) { evt = prefix ? prefix + event : event; if (this._events[evt]) clearEvent(this, evt); } else { this._events = new Events(); this._eventsCount = 0; } return this; }; EventEmitter.prototype.off = EventEmitter.prototype.removeListener; EventEmitter.prototype.addListener = EventEmitter.prototype.on; EventEmitter.prefixed = prefix; EventEmitter.EventEmitter = EventEmitter; { module2.exports = EventEmitter; } })(eventemitter3); var isString$3 = {}; Object.defineProperty(isString$3, "__esModule", { value: true }); function isString$2(value) { return typeof value === "string"; } isString$3.default = isString$2; var isObject$4 = {}; Object.defineProperty(isObject$4, "__esModule", { value: true }); function isObject$3(value) { return value !== null && typeof value === "object"; } isObject$4.default = isObject$3; const require$$4 = /* @__PURE__ */ getAugmentedNamespace(printer); const require$$5 = /* @__PURE__ */ getAugmentedNamespace(getOperationAST$1); function symbolObservablePonyfill(root2) { var result2; var Symbol2 = root2.Symbol; if (typeof Symbol2 === "function") { if (Symbol2.observable) { result2 = Symbol2.observable; } else { result2 = Symbol2("observable"); Symbol2.observable = result2; } } else { result2 = "@@observable"; } return result2; } var root; if (typeof self !== "undefined") { root = self; } else if (typeof window !== "undefined") { root = window; } else if (typeof global !== "undefined") { root = global; } else if (typeof module !== "undefined") { root = module; } else { root = Function("return this")(); } var result$1 = symbolObservablePonyfill(root); const es$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, default: result$1 }, Symbol.toStringTag, { value: "Module" })); const require$$6 = /* @__PURE__ */ getAugmentedNamespace(es$1); var protocol = {}; Object.defineProperty(protocol, "__esModule", { value: true }); protocol.GRAPHQL_SUBSCRIPTIONS = protocol.GRAPHQL_WS = void 0; var GRAPHQL_WS = "graphql-ws"; protocol.GRAPHQL_WS = GRAPHQL_WS; var GRAPHQL_SUBSCRIPTIONS = "graphql-subscriptions"; protocol.GRAPHQL_SUBSCRIPTIONS = GRAPHQL_SUBSCRIPTIONS; var defaults = {}; Object.defineProperty(defaults, "__esModule", { value: true }); defaults.WS_TIMEOUT = defaults.MIN_WS_TIMEOUT = void 0; var MIN_WS_TIMEOUT = 1e3; defaults.MIN_WS_TIMEOUT = MIN_WS_TIMEOUT; var WS_TIMEOUT = 3e4; defaults.WS_TIMEOUT = WS_TIMEOUT; var messageTypes = {}; Object.defineProperty(messageTypes, "__esModule", { value: true }); var MessageTypes = function() { function MessageTypes2() { throw new Error("Static Class"); } MessageTypes2.GQL_CONNECTION_INIT = "connection_init"; MessageTypes2.GQL_CONNECTION_ACK = "connection_ack"; MessageTypes2.GQL_CONNECTION_ERROR = "connection_error"; MessageTypes2.GQL_CONNECTION_KEEP_ALIVE = "ka"; MessageTypes2.GQL_CONNECTION_TERMINATE = "connection_terminate"; MessageTypes2.GQL_START = "start"; MessageTypes2.GQL_DATA = "data"; MessageTypes2.GQL_ERROR = "error"; MessageTypes2.GQL_COMPLETE = "complete"; MessageTypes2.GQL_STOP = "stop"; MessageTypes2.SUBSCRIPTION_START = "subscription_start"; MessageTypes2.SUBSCRIPTION_DATA = "subscription_data"; MessageTypes2.SUBSCRIPTION_SUCCESS = "subscription_success"; MessageTypes2.SUBSCRIPTION_FAIL = "subscription_fail"; MessageTypes2.SUBSCRIPTION_END = "subscription_end"; MessageTypes2.INIT = "init"; MessageTypes2.INIT_SUCCESS = "init_success"; MessageTypes2.INIT_FAIL = "init_fail"; MessageTypes2.KEEP_ALIVE = "keepalive"; return MessageTypes2; }(); messageTypes.default = MessageTypes; var __assign = commonjsGlobal && commonjsGlobal.__assign || function() { __assign = Object.assign || function(t2) { for (var s, i2 = 1, n2 = arguments.length; i2 < n2; i2++) { s = arguments[i2]; for (var p2 in s) if (Object.prototype.hasOwnProperty.call(s, p2)) t2[p2] = s[p2]; } return t2; }; return __assign.apply(this, arguments); }; var __awaiter = commonjsGlobal && commonjsGlobal.__awaiter || function(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function(resolve2) { resolve2(value); }); } return new (P || (P = Promise))(function(resolve2, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e2) { reject(e2); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e2) { reject(e2); } } function step(result2) { result2.done ? resolve2(result2.value) : adopt(result2.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = commonjsGlobal && commonjsGlobal.__generator || function(thisArg, body) { var _ = { label: 0, sent: function() { if (t2[0] & 1) throw t2[1]; return t2[1]; }, trys: [], ops: [] }, f, y, t2, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n2) { return function(v) { return step([n2, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t2 = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t2 = y["return"]) && t2.call(y), 0) : y.next) && !(t2 = t2.call(y, op[1])).done) return t2; if (y = 0, t2) op = [op[0] & 2, t2.value]; switch (op[0]) { case 0: case 1: t2 = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t2 = _.trys, t2 = t2.length > 0 && t2[t2.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t2 || op[1] > t2[0] && op[1] < t2[3])) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t2[1]) { _.label = t2[1]; t2 = op; break; } if (t2 && _.label < t2[2]) { _.label = t2[2]; _.ops.push(op); break; } if (t2[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e2) { op = [6, e2]; y = 0; } finally { f = t2 = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var __spreadArray = commonjsGlobal && commonjsGlobal.__spreadArray || function(to2, from2, pack) { if (pack || arguments.length === 2) for (var i2 = 0, l = from2.length, ar; i2 < l; i2++) { if (ar || !(i2 in from2)) { if (!ar) ar = Array.prototype.slice.call(from2, 0, i2); ar[i2] = from2[i2]; } } return to2.concat(ar || Array.prototype.slice.call(from2)); }; Object.defineProperty(client, "__esModule", { value: true }); var SubscriptionClient_1 = client.SubscriptionClient = void 0; var _global = typeof commonjsGlobal !== "undefined" ? commonjsGlobal : typeof window !== "undefined" ? window : {}; var NativeWebSocket = _global.WebSocket || _global.MozWebSocket; var Backoff = backo2; var eventemitter3_1 = eventemitter3.exports; var is_string_1 = isString$3; var is_object_1 = isObject$4; var printer_1 = require$$4; var getOperationAST_1 = require$$5; var symbol_observable_1 = require$$6; var protocol_1 = protocol; var defaults_1 = defaults; var message_types_1 = messageTypes; var SubscriptionClient = function() { function SubscriptionClient2(url, options, webSocketImpl, webSocketProtocols) { var _a2 = options || {}, _b = _a2.connectionCallback, connectionCallback = _b === void 0 ? void 0 : _b, _c = _a2.connectionParams, connectionParams = _c === void 0 ? {} : _c, _d = _a2.minTimeout, minTimeout = _d === void 0 ? defaults_1.MIN_WS_TIMEOUT : _d, _e = _a2.timeout, timeout = _e === void 0 ? defaults_1.WS_TIMEOUT : _e, _f = _a2.reconnect, reconnect = _f === void 0 ? false : _f, _g = _a2.reconnectionAttempts, reconnectionAttempts = _g === void 0 ? Infinity : _g, _h = _a2.lazy, lazy = _h === void 0 ? false : _h, _j = _a2.inactivityTimeout, inactivityTimeout = _j === void 0 ? 0 : _j, _k = _a2.wsOptionArguments, wsOptionArguments = _k === void 0 ? [] : _k; this.wsImpl = webSocketImpl || NativeWebSocket; if (!this.wsImpl) { throw new Error("Unable to find native implementation, or alternative implementation for WebSocket!"); } this.wsProtocols = webSocketProtocols || protocol_1.GRAPHQL_WS; this.connectionCallback = connectionCallback; this.url = url; this.operations = {}; this.nextOperationId = 0; this.minWsTimeout = minTimeout; this.wsTimeout = timeout; this.unsentMessagesQueue = []; this.reconnect = reconnect; this.reconnecting = false; this.reconnectionAttempts = reconnectionAttempts; this.lazy = !!lazy; this.inactivityTimeout = inactivityTimeout; this.closedByUser = false; this.backoff = new Backoff({ jitter: 0.5 }); this.eventEmitter = new eventemitter3_1.EventEmitter(); this.middlewares = []; this.client = null; this.maxConnectTimeGenerator = this.createMaxConnectTimeGenerator(); this.connectionParams = this.getConnectionParams(connectionParams); this.wsOptionArguments = wsOptionArguments; if (!this.lazy) { this.connect(); } } Object.defineProperty(SubscriptionClient2.prototype, "status", { get: function() { if (this.client === null) { return this.wsImpl.CLOSED; } return this.client.readyState; }, enumerable: false, configurable: true }); SubscriptionClient2.prototype.close = function(isForced, closedByUser) { if (isForced === void 0) { isForced = true; } if (closedByUser === void 0) { closedByUser = true; } this.clearInactivityTimeout(); if (this.client !== null) { this.closedByUser = closedByUser; if (isForced) { this.clearCheckConnectionInterval(); this.clearMaxConnectTimeout(); this.clearTryReconnectTimeout(); this.unsubscribeAll(); this.sendMessage(void 0, message_types_1.default.GQL_CONNECTION_TERMINATE, null); } this.client.close(); this.client.onopen = null; this.client.onclose = null; this.client.onerror = null; this.client.onmessage = null; this.client = null; this.eventEmitter.emit("disconnected"); if (!isForced) { this.tryReconnect(); } } }; SubscriptionClient2.prototype.request = function(request) { var _a2; var getObserver = this.getObserver.bind(this); var executeOperation = this.executeOperation.bind(this); var unsubscribe = this.unsubscribe.bind(this); var opId; this.clearInactivityTimeout(); return _a2 = {}, _a2[symbol_observable_1.default] = function() { return this; }, _a2.subscribe = function(observerOrNext, onError, onComplete) { var observer = getObserver(observerOrNext, onError, onComplete); opId = executeOperation(request, function(error, result2) { if (error === null && result2 === null) { if (observer.complete) { observer.complete(); } } else if (error) { if (observer.error) { observer.error(error[0]); } } else { if (observer.next) { observer.next(result2); } } }); return { unsubscribe: function() { if (opId) { unsubscribe(opId); opId = null; } } }; }, _a2; }; SubscriptionClient2.prototype.on = function(eventName, callback, context) { var handler = this.eventEmitter.on(eventName, callback, context); return function() { handler.off(eventName, callback, context); }; }; SubscriptionClient2.prototype.onConnected = function(callback, context) { return this.on("connected", callback, context); }; SubscriptionClient2.prototype.onConnecting = function(callback, context) { return this.on("connecting", callback, context); }; SubscriptionClient2.prototype.onDisconnected = function(callback, context) { return this.on("disconnected", callback, context); }; SubscriptionClient2.prototype.onReconnected = function(callback, context) { return this.on("reconnected", callback, context); }; SubscriptionClient2.prototype.onReconnecting = function(callback, context) { return this.on("reconnecting", callback, context); }; SubscriptionClient2.prototype.onError = function(callback, context) { return this.on("error", callback, context); }; SubscriptionClient2.prototype.unsubscribeAll = function() { var _this = this; Object.keys(this.operations).forEach(function(subId) { _this.unsubscribe(subId); }); }; SubscriptionClient2.prototype.applyMiddlewares = function(options) { var _this = this; return new Promise(function(resolve2, reject) { var queue2 = function(funcs, scope) { var next = function(error) { if (error) { reject(error); } else { if (funcs.length > 0) { var f = funcs.shift(); if (f) { f.applyMiddleware.apply(scope, [options, next]); } } else { resolve2(options); } } }; next(); }; queue2(__spreadArray([], _this.middlewares, true), _this); }); }; SubscriptionClient2.prototype.use = function(middlewares) { var _this = this; middlewares.map(function(middleware) { if (typeof middleware.applyMiddleware === "function") { _this.middlewares.push(middleware); } else { throw new Error("Middleware must implement the applyMiddleware function."); } }); return this; }; SubscriptionClient2.prototype.getConnectionParams = function(connectionParams) { return function() { return new Promise(function(resolve2, reject) { if (typeof connectionParams === "function") { try { return resolve2(connectionParams.call(null)); } catch (error) { return reject(error); } } resolve2(connectionParams); }); }; }; SubscriptionClient2.prototype.executeOperation = function(options, handler) { var _this = this; if (this.client === null) { this.connect(); } var opId = this.generateOperationId(); this.operations[opId] = { options, handler }; this.applyMiddlewares(options).then(function(processedOptions) { _this.checkOperationOptions(processedOptions, handler); if (_this.operations[opId]) { _this.operations[opId] = { options: processedOptions, handler }; _this.sendMessage(opId, message_types_1.default.GQL_START, processedOptions); } }).catch(function(error) { _this.unsubscribe(opId); handler(_this.formatErrors(error)); }); return opId; }; SubscriptionClient2.prototype.getObserver = function(observerOrNext, error, complete) { if (typeof observerOrNext === "function") { return { next: function(v) { return observerOrNext(v); }, error: function(e2) { return error && error(e2); }, complete: function() { return complete && complete(); } }; } return observerOrNext; }; SubscriptionClient2.prototype.createMaxConnectTimeGenerator = function() { var minValue = this.minWsTimeout; var maxValue = this.wsTimeout; return new Backoff({ min: minValue, max: maxValue, factor: 1.2 }); }; SubscriptionClient2.prototype.clearCheckConnectionInterval = function() { if (this.checkConnectionIntervalId) { clearInterval(this.checkConnectionIntervalId); this.checkConnectionIntervalId = null; } }; SubscriptionClient2.prototype.clearMaxConnectTimeout = function() { if (this.maxConnectTimeoutId) { clearTimeout(this.maxConnectTimeoutId); this.maxConnectTimeoutId = null; } }; SubscriptionClient2.prototype.clearTryReconnectTimeout = function() { if (this.tryReconnectTimeoutId) { clearTimeout(this.tryReconnectTimeoutId); this.tryReconnectTimeoutId = null; } }; SubscriptionClient2.prototype.clearInactivityTimeout = function() { if (this.inactivityTimeoutId) { clearTimeout(this.inactivityTimeoutId); this.inactivityTimeoutId = null; } }; SubscriptionClient2.prototype.setInactivityTimeout = function() { var _this = this; if (this.inactivityTimeout > 0 && Object.keys(this.operations).length === 0) { this.inactivityTimeoutId = setTimeout(function() { if (Object.keys(_this.operations).length === 0) { _this.close(); } }, this.inactivityTimeout); } }; SubscriptionClient2.prototype.checkOperationOptions = function(options, handler) { var query = options.query, variables = options.variables, operationName = options.operationName; if (!query) { throw new Error("Must provide a query."); } if (!handler) { throw new Error("Must provide an handler."); } if (!(0, is_string_1.default)(query) && !(0, getOperationAST_1.getOperationAST)(query, operationName) || operationName && !(0, is_string_1.default)(operationName) || variables && !(0, is_object_1.default)(variables)) { throw new Error("Incorrect option types. query must be a string or a document,`operationName` must be a string, and `variables` must be an object."); } }; SubscriptionClient2.prototype.buildMessage = function(id, type, payload) { var payloadToReturn = payload && payload.query ? __assign(__assign({}, payload), { query: typeof payload.query === "string" ? payload.query : (0, printer_1.print)(payload.query) }) : payload; return { id, type, payload: payloadToReturn }; }; SubscriptionClient2.prototype.formatErrors = function(errors) { if (Array.isArray(errors)) { return errors; } if (errors && errors.errors) { return this.formatErrors(errors.errors); } if (errors && errors.message) { return [errors]; } return [{ name: "FormatedError", message: "Unknown error", originalError: errors }]; }; SubscriptionClient2.prototype.sendMessage = function(id, type, payload) { this.sendMessageRaw(this.buildMessage(id, type, payload)); }; SubscriptionClient2.prototype.sendMessageRaw = function(message) { switch (this.status) { case this.wsImpl.OPEN: var serializedMessage = JSON.stringify(message); try { JSON.parse(serializedMessage); } catch (e2) { this.eventEmitter.emit("error", new Error("Message must be JSON-serializable. Got: " + message)); } this.client.send(serializedMessage); break; case this.wsImpl.CONNECTING: this.unsentMessagesQueue.push(message); break; default: if (!this.reconnecting) { this.eventEmitter.emit("error", new Error("A message was not sent because socket is not connected, is closing or is already closed. Message was: " + JSON.stringify(message))); } } }; SubscriptionClient2.prototype.generateOperationId = function() { return String(++this.nextOperationId); }; SubscriptionClient2.prototype.tryReconnect = function() { var _this = this; if (!this.reconnect || this.backoff.attempts >= this.reconnectionAttempts) { return; } if (!this.reconnecting) { Object.keys(this.operations).forEach(function(key) { _this.unsentMessagesQueue.push(_this.buildMessage(key, message_types_1.default.GQL_START, _this.operations[key].options)); }); this.reconnecting = true; } this.clearTryReconnectTimeout(); var delay = this.backoff.duration(); this.tryReconnectTimeoutId = setTimeout(function() { _this.connect(); }, delay); }; SubscriptionClient2.prototype.flushUnsentMessagesQueue = function() { var _this = this; this.unsentMessagesQueue.forEach(function(message) { _this.sendMessageRaw(message); }); this.unsentMessagesQueue = []; }; SubscriptionClient2.prototype.checkConnection = function() { if (this.wasKeepAliveReceived) { this.wasKeepAliveReceived = false; return; } if (!this.reconnecting) { this.close(false, true); } }; SubscriptionClient2.prototype.checkMaxConnectTimeout = function() { var _this = this; this.clearMaxConnectTimeout(); this.maxConnectTimeoutId = setTimeout(function() { if (_this.status !== _this.wsImpl.OPEN) { _this.reconnecting = true; _this.close(false, true); } }, this.maxConnectTimeGenerator.duration()); }; SubscriptionClient2.prototype.connect = function() { var _a2; var _this = this; this.client = new ((_a2 = this.wsImpl).bind.apply(_a2, __spreadArray([void 0, this.url, this.wsProtocols], this.wsOptionArguments, false)))(); this.checkMaxConnectTimeout(); this.client.onopen = function() { return __awaiter(_this, void 0, void 0, function() { var connectionParams, error_1; return __generator(this, function(_a3) { switch (_a3.label) { case 0: if (!(this.status === this.wsImpl.OPEN)) return [3, 4]; this.clearMaxConnectTimeout(); this.closedByUser = false; this.eventEmitter.emit(this.reconnecting ? "reconnecting" : "connecting"); _a3.label = 1; case 1: _a3.trys.push([1, 3, , 4]); return [4, this.connectionParams()]; case 2: connectionParams = _a3.sent(); this.sendMessage(void 0, message_types_1.default.GQL_CONNECTION_INIT, connectionParams); this.flushUnsentMessagesQueue(); return [3, 4]; case 3: error_1 = _a3.sent(); this.sendMessage(void 0, message_types_1.default.GQL_CONNECTION_ERROR, error_1); this.flushUnsentMessagesQueue(); return [3, 4]; case 4: return [2]; } }); }); }; this.client.onclose = function() { if (!_this.closedByUser) { _this.close(false, false); } }; this.client.onerror = function(err) { _this.eventEmitter.emit("error", err); }; this.client.onmessage = function(_a3) { var data2 = _a3.data; _this.processReceivedData(data2); }; }; SubscriptionClient2.prototype.processReceivedData = function(receivedData) { var parsedMessage; var opId; try { parsedMessage = JSON.parse(receivedData); opId = parsedMessage.id; } catch (e2) { throw new Error("Message must be JSON-parseable. Got: " + receivedData); } if ([ message_types_1.default.GQL_DATA, message_types_1.default.GQL_COMPLETE, message_types_1.default.GQL_ERROR ].indexOf(parsedMessage.type) !== -1 && !this.operations[opId]) { this.unsubscribe(opId); return; } switch (parsedMessage.type) { case message_types_1.default.GQL_CONNECTION_ERROR: if (this.connectionCallback) { this.connectionCallback(parsedMessage.payload); } break; case message_types_1.default.GQL_CONNECTION_ACK: this.eventEmitter.emit(this.reconnecting ? "reconnected" : "connected", parsedMessage.payload); this.reconnecting = false; this.backoff.reset(); this.maxConnectTimeGenerator.reset(); if (this.connectionCallback) { this.connectionCallback(); } break; case message_types_1.default.GQL_COMPLETE: var handler = this.operations[opId].handler; delete this.operations[opId]; handler.call(this, null, null); break; case message_types_1.default.GQL_ERROR: this.operations[opId].handler(this.formatErrors(parsedMessage.payload), null); delete this.operations[opId]; break; case message_types_1.default.GQL_DATA: var parsedPayload = !parsedMessage.payload.errors ? parsedMessage.payload : __assign(__assign({}, parsedMessage.payload), { errors: this.formatErrors(parsedMessage.payload.errors) }); this.operations[opId].handler(null, parsedPayload); break; case message_types_1.default.GQL_CONNECTION_KEEP_ALIVE: var firstKA = typeof this.wasKeepAliveReceived === "undefined"; this.wasKeepAliveReceived = true; if (firstKA) { this.checkConnection(); } if (this.checkConnectionIntervalId) { clearInterval(this.checkConnectionIntervalId); this.checkConnection(); } this.checkConnectionIntervalId = setInterval(this.checkConnection.bind(this), this.wsTimeout); break; default: throw new Error("Invalid message type!"); } }; SubscriptionClient2.prototype.unsubscribe = function(opId) { if (this.operations[opId]) { delete this.operations[opId]; this.setInactivityTimeout(); this.sendMessage(opId, message_types_1.default.GQL_STOP, void 0); } }; return SubscriptionClient2; }(); SubscriptionClient_1 = client.SubscriptionClient = SubscriptionClient; var WebSocketLink = function(_super) { __extends(WebSocketLink2, _super); function WebSocketLink2(paramsOrClient) { var _this = _super.call(this) || this; if (paramsOrClient instanceof SubscriptionClient_1) { _this.subscriptionClient = paramsOrClient; } else { _this.subscriptionClient = new SubscriptionClient_1(paramsOrClient.uri, paramsOrClient.options, paramsOrClient.webSocketImpl); } return _this; } WebSocketLink2.prototype.request = function(operation) { return this.subscriptionClient.request(operation); }; return WebSocketLink2; }(ApolloLink); const httpLink = createHttpLink({ uri: "https://chat-graphql.keybeapi.com/graphql" }); const wsLink = new WebSocketLink({ uri: "wss://chat-graphql.keybeapi.com/graphql", options: { reconnect: true, lazy: true } }); const link = split( ({ query }) => { const { kind, operation } = getMainDefinition(query); return kind === "OperationDefinition" && operation === "subscription"; }, wsLink, httpLink ); const cache$1 = new InMemoryCache(); const apolloClient = new ApolloClient({ link, cache: cache$1 }); const apolloProvider = createApolloProvider({ defaultClient: apolloClient }); const KBImageModal_vue_vue_type_style_index_0_scoped_e8add922_lang = ""; const _sfc_main$2 = defineComponent({ name: "KBImageModal", data() { return { imageUrl: "" }; }, props: ["image"], methods: { close() { this.imageUrl = ""; } }, mounted() { var _a2; this.imageUrl = ((_a2 = this.image) == null ? void 0 : _a2.src) || ""; }, watch: { image: { handler(newVal) { this.imageUrl = (newVal == null ? void 0 : newVal.src) || ""; } } } }); const _hoisted_1$2 = { class: "KBImageModal-modal-row" }; const _hoisted_2$2 = ["src"]; function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) { return _ctx.imageUrl ? (openBlock(), createElementBlock("div", { key: 0, class: "KBImageModal-modal", onClick: _cache[2] || (_cache[2] = (...args) => _ctx.close && _ctx.close(...args)) }, [ createBaseVNode("div", _hoisted_1$2, [ createBaseVNode("img", { class: "kb-pointer", onClick: _cache[0] || (_cache[0] = withModifiers((...args) => _ctx.close && _ctx.close(...args), ["stop"])), src: "https://storage.googleapis.com/keybe-bluebird/img/web-agent/close-white.svg" }) ]), createBaseVNode("div", { style: normalizeStyle({ height: _ctx.image.h, width: _ctx.image.w }), class: "KBImageModal-imageContainer" }, [ createBaseVNode("img", { onClick: _cache[1] || (_cache[1] = withModifiers(() => { }, ["prevent"])), src: _ctx.imageUrl, alt: "" }, null, 8, _hoisted_2$2) ], 4) ])) : createCommentVNode("", true); } const KBImageModal = /* @__PURE__ */ _export_sfc$1(_sfc_main$2, [["render", _sfc_render$2], ["__scopeId", "data-v-e8add922"]]); class AppUUIDsService { static appKeybeAi() { return { uuid: "4xqa4b8khxrofef", phone: "13474583147" }; } } const App_vue_vue_type_style_index_0_lang = ""; const _sfc_main$1 = defineComponent({ components: { KBImageModal, KBAuthForm, KBCustomizedQuestions, KSMessage: _sfc_main$a, KSMessageComposer, KBPermanentMessages, DropZone: _sfc_main$5, KBVerifyIdentity, XIcon: _sfc_main$3 }, computed: { ...mapGetters(["config", "localConfig", "showWorkingHoursAlert", "urlBase", "urlBaseNew", "assetsBase"]), ...mapState({ apiKey: (state2) => state2.auth.apiKey, appInfo: (state2) => state2.auth.appInfo, isLoggedIn: (state2) => state2.auth.isLoggedIn, messages: (state2) => state2.chat.messages, roomId: (state2) => state2.chat.room._id, room: (state2) => state2.chat.room, showAuthForm: (state2) => state2.auth.showAuthForm, error: (state2) => state2.chat.error, showCustomizedQuestions: (state2) => state2.chat.showCustomizedQuestions, endpointUrl: (state2) => state2.chat.endpointUrl, user: (state2) => state2.auth.user, extradata: (state2) => state2.auth.extradata, verifyingIdentity: (state2) => state2.chat.verifyingIdentity, authorizationInterval: (state2) => state2.chat.authorizationInterval, habeasData: (state2) => state2.auth.habeasData, dataToGetChat: (state2) => state2.chat.dataToGetChat }), isConnected() { return true; }, isComfama() { const comfamaAppKeys = ["42e91d51ed9a410aa67fceaf685e94e2", "f13a3eeb336943209e23c272e1d3784d", "c0543874f1954efdae2ce3300511b061"]; const app2 = this.apiKey; return comfamaAppKeys.includes(app2); }, isDislicores() { const dislicoresAppKey = ["719978543aa34932a1b529cbbd243b1e", "7989531c-e41c-40cf-af5e-0f9552138aeb"]; const app2 = this.apiKey; return dislicoresAppKey.includes(app2); }, language() { return this.$root.$i18n.locale; }, position() { var _a2, _b, _c; if (((_b = (_a2 = this.config) == null ? void 0 : _a2.widgetWebSetup) == null ? void 0 : _b.position) === "left" || ((_c = this.localConfig) == null ? void 0 : _c.position) === "left") { return [ "kb-toggle-button-left", "kb-toggle-button-message-left", "kb-chat-container-left", "kb-inactivity-container-left" ]; } return [ "kb-toggle-button-right", "kb-toggle-button-message-right", "kb-chat-container-right", "kb-inactivity-container-right" ]; }, showLogoutButton() { var _a2, _b, _c, _d; return (((_b = (_a2 = this.config) == null ? void 0 : _a2.widgetWebSetup) == null ? void 0 : _b.authMethod) === "external" || ((_d = (_c = this.config) == null ? void 0 : _c.widgetWebSetup) == null ? void 0 : _d.authMethod) === "form") && this.isLoggedIn; }, showToggleButton() { if (this.config.widgetWebSetup) { if (this.appInfo && !this.showInactivityMessage && !this.localConfig.hideToggleButton && !this.showWhatsAppButton && this.config.widgetWebSetup.showBubble) return true; else return false; } else { if (this.appInfo && !this.showInactivityMessage && !this.localConfig.hideToggleButton && !this.showWhatsAppButton) return true; else return false; } }, showImageToggle() { if (this.config.widgetWebSetup) { if (this.appInfo && !this.showInactivityMessage && !this.localConfig.hideToggleButton && !this.showWhatsAppButton && !this.config.widgetWebSetup.showBubble) return true; else return false; } else return false; } }, async created() { await this.$store.dispatch("getTime"); await this.$store.dispatch("getCountry"); window.addEventListener("webchatConversationsUiInit", async (event) => { const config = event.detail; window.keybe.initializeApp(config); this.$store.commit("SET_API_KEY", config.apiKey); this.$store.commit("SET_LOCAL_CONFIG", config); this.setLanguage(); await this.initChat(); }); window.addEventListener("authExternal", (event) => { const data2 = event.detail; this.handleAuthExternal(data2); }); window.addEventListener("onLogout", async () => { this.logout(); }); window.addEventListener("openChat", (event) => { this.toggleShowConversation(event); }); this.audio = new Audio("https://storage.googleapis.com/keybe/app/audio/notification.mp3"); }, async mounted() { var _a2; if (this.isLoggedIn && !this.roomId) { await this.logout(); return; } if ((((_a2 = this.user) == null ? void 0 : _a2.email) || this.user.phone) && this.isLoggedIn) { await this.subscribeChat(); return; } if (this.roomId) { this.suscribeToMessages(); await this.findMessages(); } this.checkAuth(); }, data: () => ({ audio: null, inactivityTimeout: null, initAttempts: 0, logo: "http://storage.keybeapi.com/files/bluebird/kb_logo.webp", files: [], showConversation: false, startAuthorizationData: { actionResponse: "", customEventId: "", state: "", timeout: "", type: "", uuid: "" }, showInactivityMessage: false, showErrorConnection: false, showDropZone: false, uploadingFile: false, uploadProgress: 0, target: "", imageToShow: null, showWhatsAppButton: false, whatsAppPhoneNumber: "", showPhoneNumbers: false, authExternalValidate: false }), methods: { sendWhatsApp() { if (this.isDislicores) { window.open("https://wa.me/573144325098", "_blank"); return; } if (this.$store.state.auth.appInfo.UUID === AppUUIDsService.appKeybeAi().uuid) { this.whatsAppPhoneNumber = AppUUIDsService.appKeybeAi().phone; } window.open(`https://wa.me/${this.whatsAppPhoneNumber}`, "_blank"); }, openChat() { this.showWhatsAppButton = false; this.toggleShowConversation(); }, setImageToShow(image) { this.imageToShow = image; }, suscribeToMessages() { apolloProvider.defaultClient.subscribe({ query: onCreateMessage(this.roomId), variables: { roomId: this.roomId } }).subscribe((response) => { const message = response.data.onCreateMessage; if (message.sender === "authorize") { if (message.text === "startAuthorization") { this.startAuthorization(message); return; } if (message.text === "endAuthorization") { this.clearStartAuthorizationData(); } } if (message.sender === "listener" && message.status === "ended") { this.clearUserSession(); location.reload(true); } const messageIndex = this.messages.findIndex( (m) => m._id === message._id ); if (messageIndex >= 0) { const actualMessages = [...this.messages]; actualMessages[messageIndex] = { ...actualMessages[messageIndex], ...message }; this.$store.commit("SET_MESSAGES", actualMessages); return; } this.$store.commit("ADD_MESSAGE", message); if (message.sender === "advisor") this.audio.play(); this.scrollBottom(); }); }, addFile(file) { this.files.push(file); }, checkExtension() { let extension = this.files[0].name.split("."); extension = extension.length > 1 ? `.${extension.pop()}` : ""; extension = extension.toLocaleLowerCase(); return [".jpg", ".png", ".jpeg", ".pdf", ".ogg"].includes(extension); }, checkFile() { let validFile = "invalid"; switch (this.files[0].type) { case "image/jpeg": validFile = "jpeg"; break; case "image/png": validFile = "png"; break; case "application/pdf": validFile = "pdf"; break; default: validFile = "invalid"; } return validFile; }, async checkAuth() { var _a2, _b; if (this.isLoggedIn) { return this.$store.commit("SET_SHOW_AUTH_FORM", false); } if (((_a2 = this == null ? void 0 : this.config) == null ? void 0 : _a2.authMethod) === "none") { this.$store.commit("SET_SHOW_AUTH_FORM", false); this.$store.commit("SET_IS_LOGGED_IN", true); } if (((_b = this == null ? void 0 : this.config) == null ? void 0 : _b.authMethod) === "form" && !this.isLoggedIn) { return this.$store.commit("SET_SHOW_AUTH_FORM", true); } if (!this.isLoggedIn) { return this.$store.commit("SET_SHOW_AUTH_FORM", true); } }, clearStartAuthorizationData() { this.startAuthorizationData = { type: "", timeout: "", uuid: "", state: "", actionResponse: "", customEventId: "" }; this.removeAuthorizationEventListener(); this.$store.commit("SET_AUTHORIZATION_INTERVAL", true); this.$store.commit("SET_VERIFYING_IDENTITY", false); window.keybe.openChat({ value: true }); }, clearUserSession() { if (!this.isLoggedIn) return; this.$store.commit("SET_IS_LOGGED_IN", false); this.$store.commit("SET_USER", {}); this.$store.commit("SET_LOGGED_WITH", ""); this.showConversation = false; this.$store.commit("SET_MESSAGES", []); this.$store.commit("SET_SHOW_CUSTOMIZED_QUESTIONS", false); this.$store.commit("SET_TOKEN", ""); this.$store.commit("SET_DATA_TO_GET_CHAT", {}); this.$store.commit("SET_ROOM", {}); this.showLogoutButton = false; location.reload(); }, async getFingerPrint() { const options = { canvas: true, ie_activex: true, screen_resolution: true }; const components = await Fingerprint.getPromise(options); const values = components.map((component) => component.value); const hash = Fingerprint.x64hash128(values.join(""), 31); this.$store.commit("SET_GUEST_ID", hash); return hash; }, async initChat() { var _a2, _b; await this.$store.dispatch("initApp"); if (((_b = (_a2 = this.config) == null ? void 0 : _a2.widgetWebSetup) == null ? void 0 : _b.authMethod) === "external") { window.keybe.uiLoad({ apiKey: this.apiKey, language: "en" }); } if (Array.isArray(this.config.urlsAutoOpen) && this.config.urlsAutoOpen.includes(window.location.href)) { this.toggleShowConversation({ value: true }); } const customEvent = new CustomEvent("webchatConversationsUiLoaded", { detail: { ...this.config } }); window.dispatchEvent(customEvent); setTimeout(() => { this.findPhoneNumber(); }, 1500); }, async processAuthorization(event) { const { payload, state: state2, uuid } = event.detail; if (state2 !== this.startAuthorizationData.state || uuid !== this.startAuthorizationData.uuid) { return console.log("No est\xE1 autorizado"); } const data2 = { action: this.startAuthorizationData.actionResponse, payload: { ...payload, state: state2, uuid } }; this.$store.sendMessage(data2); this.clearStartAuthorizationData(); }, async logout() { var _a2, _b; this.clearUserSession(); if (((_b = (_a2 = this.config) == null ? void 0 : _a2.widgetWebSetup) == null ? void 0 : _b.authMethod) === "external" && window.keybe.isLoggedIn()) { await window.keybe.logout(); } location.reload(true); }, resetDropZone() { this.showDropZone = false; this.files = []; this.uploadingFile = false; this.uploadProgress = 0; }, removeAuthorizationEventListener() { window.removeEventListener(this.startAuthorizationData.customEventId, this.processAuthorization); }, scrollBottom() { this.$nextTick(() => { if (this.$refs.chatContainer) { this.$refs.chatContainer.scrollTop = this.$refs.chatContainer.scrollHeight; } }); }, async sendAuthorizationTimeout(reason) { const payload = { action: this.startAuthorizationData.actionResponse, payload: { reason, state: this.startAuthorizationData.state, uuid: this.startAuthorizationData.uuid } }; this.$store.dispatch("sendMessage", payload); this.clearStartAuthorizationData(); }, sendMediaMessage(media, mimetype) { this.$store.dispatch("sendMessage", { media, mimetype, text: "" }); this.resetDropZone(); }, setLanguage(value) { if (value) { this.$root.$i18n.locale = this.$root.$i18n.locale === "es" ? "en" : "es"; return; } this.$root.$i18n.locale = this.config.language || this.localConfig.language || document.documentElement.lang || "es"; }, showCustomizedCuestions() { let showQuestions = false; showQuestions = this.$store.state.chat.messages.length === 0; return this.showWorkingHoursAlert && this.config.workingHours.blockMessageComposer ? false : showQuestions; }, startAuthorization(data2) { if (!data2) return; this.startAuthorizationData = { type: data2.payload.type, timeout: data2.payload.timeout || this.config.authorizationTimeout || 60, uuid: data2.payload.uuid, state: data2.payload.state, actionResponse: data2.payload.actionResponse }; const customEventId = uniqid.exports(); this.startAuthorizationData.customEventId = customEventId; window.addEventListener(customEventId, this.processAuthorization); const authorizationEvent = new CustomEvent("keybeChatAuthorization", { detail: { type: data2.payload.type, uuid: data2.payload.uuid, state: data2.payload.state, customEventId } }); window.dispatchEvent(authorizationEvent); this.$store.commit("SET_VERIFYING_IDENTITY", true); if (!this.authorizationInterval) { this.$store.commit("SET_AUTHORIZATION_TIMER", data2.payload.timeout || this.config.authorizationTimeout || 60); this.$store.commit("SET_AUTHORIZATION_INTERVAL"); } if (data2.payload.type === "start_authorization") window.keybe.openChat({ value: false }); }, toggleShowConversation(event) { var _a2, _b; this.showInactivityMessage = false; if (this.inactivityTimeout) clearTimeout(this.inactivityTimeout); if (((_b = (_a2 = this.config) == null ? void 0 : _a2.widgetWebSetup) == null ? void 0 : _b.authMethod) === "external" && !this.isLoggedIn) { return window.keybe.uiOpenModal(); } if (event && event.detail && Object.keys(event.detail).includes("value")) { this.showConversation = event.detail.value; return true; } this.showConversation = !this.showConversation; }, async showDnDZone() { this.showDropZone = true; await this.scrollBottom(); }, async subscribeChat() { var _a2, _b, _c, _d, _e, _f; let subscription = { appKey: this.apiKey, city: this.user.city, email: this.user.email, name: this.user.name, lastName: this.user.lastName, phone: this.user.phone, extradata: this.extradata, userGuestLocal: await this.getFingerPrint(), habeasData: this.habeasData, identificationNumber: this.user.identificationNumber, identificationType: this.user.identificationType }; if (!((_b = (_a2 = this.config) == null ? void 0 : _a2.widgetWebSetup) == null ? void 0 : _b.authMethod) || ((_d = (_c = this.config) == null ? void 0 : _c.widgetWebSetup) == null ? void 0 : _d.authMethod) === "none") { if (this.config.workingHours && this.config.workingHours.blockMessageComposer && this.showWorkingHoursAlert) return; const fingerprint = await this.getFingerPrint(); subscription = { appKey: this.apiKey, name: fingerprint, userGuestLocal: fingerprint }; } if (this.user.phone) subscription.phone = this.user.phone; if (this.user.email) subscription.email = this.user.email; if (this.authExternalValidate) { subscription.userGuestLocal = this.user.email; } this.$store.commit("SET_LOGGED_WITH", (_f = (_e = this.config) == null ? void 0 : _e.widgetWebSetup) == null ? void 0 : _f.authMethod); await this.findRoom(subscription); }, async findRoom(data2) { var _a2, _b; const response = await conversations.findRoom({ params: data2 }); const room = response.data || {}; this.$store.commit("SET_DATA_TO_GET_CHAT", data2); if (room) { if (((_b = (_a2 = this.config) == null ? void 0 : _a2.widgetWebSetup) == null ? void 0 : _b.authMethod) === "form") this.$store.commit("SET_SHOW_AUTH_FORM", false); this.$store.commit("SET_ROOM", room); } }, async findPhoneNumber() { var _a2, _b; const response = await conversations.findPhoneNumber(); if ((_b = (_a2 = response.data) == null ? void 0 : _a2.whatsapp) == null ? void 0 : _b.hasWhatsappProvider) { this.whatsAppPhoneNumber = response.data.whatsapp.accounts[0].userHost.replace("+", ""); } }, async findMessages() { const response = await conversations.findMessages(this.roomId); if (response.code || !response.data.messages) { return; } const messages = response.data.messages.reverse(); if (messages.length > 0) { this.$store.commit("SET_MESSAGES", messages); } this.$store.commit("SET_SHOW_CUSTOMIZED_QUESTIONS", this.showCustomizedCuestions()); this.scrollBottom(); }, async uploadFile() { if (!this.roomId) { const response = await conversations.findRoom({ params: this.dataToGetChat, createIfNotExists: true }); const room = response.data.item || {}; this.$store.commit("SET_ROOM", room); this.$emit("resubscribe"); } if (this.checkFile() === "invalid") { this.$store.commit("SET_ERROR", { icon: "", message: "Invalid file type", show: true }); this.resetDropZone(); return; } if (!this.checkExtension()) { this.$store.commit("SET_ERROR", { icon: "", message: "Invalid file extension", show: true }); return; } if (["jpg", "png", "jpeg"].indexOf(this.checkFile()) !== -1) { this.checkFile(); this.uploadingFile = true; this.uploadProgress = 0; const response = await conversations.uploadImage({ totalFiles: this.files, appId: this.$store.state.auth.appInfo.UUID, companyId: this.$store.state.auth.appInfo.companyUUID, roomId: this.roomId, onUploadProgress: (event) => { this.uploadProgress = Math.round(event.loaded * 100 / event.total); } }); this.sendMediaMessage(response.urls[0], response.mimetype); this.uploadingFile = false; } else if (this.checkFile() === "pdf") { this.checkFile(); this.uploadingFile = true; this.uploadProgress = 0; const response = await conversations.uploadImage({ totalFiles: [this.files[0]], appId: this.$store.state.auth.appInfo.UUID, companyId: this.$store.state.auth.appInfo.companyUUID, roomId: this.roomId, onUploadProgress: this.updateProgress }); this.sendMediaMessage(response.urls[0], response.mimetype); this.uploadingFile = false; } }, updateProgress(progressEvent) { this.uploadProgress = Math.round(progressEvent.loaded / progressEvent.total * 100); }, handleAuthExternal(data2) { this.authExternalValidate = true; let user = {}; if (data2.name && data2.email) { user = { name: data2.name, lastName: data2 == null ? void 0 : data2.lastName, email: data2.email }; } const aux = "accepted"; this.$store.commit("SET_USER", user); this.$store.commit("SET_HABEASDATA", aux); this.$store.commit("SET_IS_LOGGED_IN", true); window.keybe.openChat({ value: true }); } }, name: "keybe-chat", watch: { config() { this.checkAuth(); this.setLanguage(); }, "error.show"(value) { if (!value) return; setTimeout(() => { this.$store.commit("CLEAR_ERROR"); }, 2e3); }, isConnected(value) { if (!value) return; this.$store.dispatch("resendMessages"); }, isLoggedIn(value) { if (!value) { return; } this.subscribeChat(); }, messages() { this.scrollBottom(); }, showConversation(value) { if (value) this.scrollBottom(); }, room: { async handler() { if (this.room && Object.keys(this.room).length > 0) { setTimeout(async () => { await this.findMessages(); await this.suscribeToMessages(); }, 1e3); } }, deep: true, immediate: true } } }); const _hoisted_1$1 = { id: "keybe-webchat" }; const _hoisted_2$1 = { key: 0, class: "kb-error-connection" }; const _hoisted_3$1 = ["alt", "src"]; const _hoisted_4$1 = ["alt", "src", "height"]; const _hoisted_5$1 = { key: 1, src: "https://storage.googleapis.com/keybe-conversations/comfama_rectangulo.svg", alt: "Comfama", height: "46", style: { "width": "50px", "height": "46px" } }; const _hoisted_6$1 = { key: 0, class: "kb-phone-button__container" }; const _hoisted_7$1 = { class: "kb-phone-button__numbers" }; const _hoisted_8 = ["src"]; const _hoisted_9 = { key: 1 }; const _hoisted_10 = ["src"]; const _hoisted_11 = ["src"]; const _hoisted_12 = ["src"]; const _hoisted_13 = ["alt", "src"]; const _hoisted_14 = ["alt", "src", "width"]; const _hoisted_15 = ["title"]; const _hoisted_16 = ["src", "title"]; const _hoisted_17 = ["src", "title"]; const _hoisted_18 = { key: 0, class: "kb-message-error" }; const _hoisted_19 = { key: 2, class: "kb-powered-container" }; const _hoisted_20 = ["href"]; const _hoisted_21 = { style: { "margin-left": "4px" } }; function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) { var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s; const _component_KBImageModal = resolveComponent("KBImageModal"); const _component_XIcon = resolveComponent("XIcon"); const _component_KBScheduleAlert = resolveComponent("KBScheduleAlert"); const _component_KBPermanentMessages = resolveComponent("KBPermanentMessages"); const _component_KSMessage = resolveComponent("KSMessage"); const _component_DropZone = resolveComponent("DropZone"); const _component_KBCustomizedQuestions = resolveComponent("KBCustomizedQuestions"); const _component_KBAuthForm = resolveComponent("KBAuthForm"); const _component_KSMessageComposer = resolveComponent("KSMessageComposer"); const _component_KBVerifyIdentity = resolveComponent("KBVerifyIdentity"); return openBlock(), createElementBlock("div", _hoisted_1$1, [ createVNode(_component_KBImageModal, { image: _ctx.imageToShow }, null, 8, ["image"]), _ctx.showErrorConnection && !_ctx.appInfo ? (openBlock(), createElementBlock("div", _hoisted_2$1, " Revisa tu conexi\xF3n a internet ")) : createCommentVNode("", true), _ctx.appInfo && !_ctx.showInactivityMessage && !_ctx.showConversation && !_ctx.localConfig.hideToggleButton && ((_a2 = _ctx.config.widgetWebSetup) == null ? void 0 : _a2.bubbleMessage) && !_ctx.showWhatsAppButton ? (openBlock(), createElementBlock("div", { key: 1, class: normalizeClass([ _ctx.position[1], _ctx.isComfama ? "kb-toggle-button-message-comfama" : "kb-toggle-button-message" ]), onClick: _cache[0] || (_cache[0] = ($event) => _ctx.toggleShowConversation()), style: normalizeStyle({ backgroundColor: ((_c = (_b = _ctx.config) == null ? void 0 : _b.widgetWebSetup) == null ? void 0 : _c.mainColor) || "#3b3b3b", color: _ctx.config.widgetWebSetup.theme === "light" ? "black" : "white" }) }, [ createBaseVNode("span", null, toDisplayString$1(((_d = _ctx.config.widgetWebSetup) == null ? void 0 : _d.bubbleMessage) || _ctx.$t("letsTalk")), 1) ], 6)) : createCommentVNode("", true), _ctx.showImageToggle ? (openBlock(), createElementBlock("div", { key: 2, onClick: _cache[1] || (_cache[1] = ($event) => { var _a3; return ((_a3 = _ctx.config.widgetWebSetup) == null ? void 0 : _a3.isWhatsappButtonActive) ? _ctx.showWhatsAppButton = true : _ctx.toggleShowConversation(); }), class: normalizeClass(`kb-toggle-image ${_ctx.position[0]}`) }, [ !_ctx.isComfama ? (openBlock(), createElementBlock("img", { key: 0, alt: ((_e = _ctx.appInfo) == null ? void 0 : _e.app_name) || _ctx.config.name, src: ((_f = _ctx.config.widgetWebSetup) == null ? void 0 : _f.logo) || _ctx.logo, height: "40px", width: "40px", style: normalizeStyle({ width: _ctx.config.widgetWebSetup && ((_g = _ctx.config.widgetWebSetup) == null ? void 0 : _g.bubbleSize) ? ((_h = _ctx.config.widgetWebSetup) == null ? void 0 : _h.bubbleSize) + "px" : ((_i = _ctx.config.widgetWebSetup) == null ? void 0 : _i.logo) ? "64px" : "18px", height: "auto" }) }, null, 12, _hoisted_3$1)) : createCommentVNode("", true) ], 2)) : createCommentVNode("", true), _ctx.showToggleButton ? (openBlock(), createElementBlock("div", { key: 3, class: normalizeClass([ !_ctx.showConversation ? !_ctx.isComfama ? "kb-toggle-button__pulse" : "" : "", _ctx.position[0], _ctx.isComfama ? "kb-toggle-button-comfama" : "kb-toggle-button" ]), onClick: _cache[2] || (_cache[2] = ($event) => { var _a3; return ((_a3 = _ctx.config.widgetWebSetup) == null ? void 0 : _a3.isWhatsappButtonActive) ? _ctx.showWhatsAppButton = true : _ctx.toggleShowConversation(); }), style: normalizeStyle({ backgroundColor: ((_j = _ctx.config.widgetWebSetup) == null ? void 0 : _j.mainColor) || "#3b3b3b", width: _ctx.config.widgetWebSetup && ((_k = _ctx.config.widgetWebSetup) == null ? void 0 : _k.bubbleSize) ? ((_l = _ctx.config.widgetWebSetup) == null ? void 0 : _l.bubbleSize) + "px" : "64px", height: _ctx.config.widgetWebSetup && ((_m = _ctx.config.widgetWebSetup) == null ? void 0 : _m.bubbleSize) ? ((_n = _ctx.config.widgetWebSetup) == null ? void 0 : _n.bubbleSize) + "px" : "64px" }) }, [ !_ctx.isComfama ? (openBlock(), createElementBlock("img", { key: 0, alt: ((_o = _ctx.appInfo) == null ? void 0 : _o.app_name) || _ctx.config.name, src: ((_p = _ctx.config.widgetWebSetup) == null ? void 0 : _p.logo) || _ctx.logo, height: ((_q = _ctx.config.widgetWebSetup) == null ? void 0 : _q.logo) ? "40px" : "18px", width: "40px", style: normalizeStyle(`height: ${_ctx.config.widgetWebSetup && ((_r = _ctx.config.widgetWebSetup) == null ? void 0 : _r.bubbleSize) ? "70%" : _ctx.config.logo ? "40px" : "18px"}; width: ${_ctx.config.widgetWebSetup && ((_s = _ctx.config.widgetWebSetup) == null ? void 0 : _s.bubbleSize) ? "70%" : "40px"}`) }, null, 12, _hoisted_4$1)) : (openBlock(), createElementBlock("img", _hoisted_5$1)) ], 6)) : createCommentVNode("", true), createVNode(Transition, { name: "slide-fade" }, { default: withCtx(() => { var _a3, _b2, _c2, _d2, _e2, _f2, _g2, _h2, _i2, _j2, _k2, _l2, _m2, _n2, _o2; return [ _ctx.showWhatsAppButton ? (openBlock(), createElementBlock("div", { key: 0, class: normalizeClass(["kb-whatsapp-button__container", _ctx.position[2]]) }, [ createBaseVNode("div", { class: "kb-whatsapp-button__close kb-fade-in-animation--delay", style: normalizeStyle({ borderColor: ((_b2 = (_a3 = _ctx.config) == null ? void 0 : _a3.widgetWebSetup) == null ? void 0 : _b2.mainColor) || "#3b3b3b" }), onClick: _cache[3] || (_cache[3] = ($event) => _ctx.showWhatsAppButton = false) }, [ createVNode(_component_XIcon, { color: (_d2 = (_c2 = _ctx.config) == null ? void 0 : _c2.widgetWebSetup) == null ? void 0 : _d2.mainColor }, null, 8, ["color"]) ], 4), _ctx.isDislicores ? (openBlock(), createElementBlock("div", _hoisted_6$1, [ _ctx.showPhoneNumbers ? (openBlock(), createElementBlock("div", { key: 0, class: normalizeClass(((_e2 = _ctx.config.widgetWebSetup) == null ? void 0 : _e2.position) === "left" ? "kb-phone-button__phones kb-phone-button__phones-right kb-fade-animation" : "kb-phone-button__phones kb-phone-button__phones-left kb-fade-animation"), style: normalizeStyle({ backgroundColor: ((_g2 = (_f2 = _ctx.config) == null ? void 0 : _f2.widgetWebSetup) == null ? void 0 : _g2.mainColor) || "#3b3b3b", color: _ctx.config.widgetWebSetup.theme === "light" ? "black" : "white" }) }, [ createBaseVNode("div", null, [ createBaseVNode("span", null, toDisplayString$1(_ctx.$t("contactUsNumbers")), 1), createBaseVNode("div", _hoisted_7$1, [ createBaseVNode("h5", null, [ createBaseVNode("a", { href: "tel:+573002323060", style: normalizeStyle(`text-decoration: none;${_ctx.config.widgetWebSetup.theme === "light" ? "black" : "white"}`) }, toDisplayString$1(`(300 232 3060)`), 4) ]) ]) ]) ], 6)) : createCommentVNode("", true), createBaseVNode("div", { class: "kb-whatsapp-button__phone kb-fade-in-animation--delay", style: normalizeStyle({ backgroundColor: ((_i2 = (_h2 = _ctx.config) == null ? void 0 : _h2.widgetWebSetup) == null ? void 0 : _i2.mainColor) || "#3b3b3b", color: _ctx.config.widgetWebSetup.theme === "light" ? "black" : "white" }), onClick: _cache[4] || (_cache[4] = ($event) => _ctx.showPhoneNumbers = !_ctx.showPhoneNumbers) }, [ createBaseVNode("img", { src: _ctx.assetsBase + "/phone.svg", style: { "max-width": "30px" } }, null, 8, _hoisted_8) ], 4) ])) : createCommentVNode("", true), ((_j2 = _ctx.config.widgetWebSetup) == null ? void 0 : _j2.isWhatsappButtonActive) ? (openBlock(), createElementBlock("div", _hoisted_9, [ createBaseVNode("div", { class: "kb-whatsapp-button__whatsApp kb-fade-in-animation--delay", onClick: _cache[5] || (_cache[5] = ($event) => _ctx.sendWhatsApp()), style: normalizeStyle({ backgroundColor: ((_l2 = (_k2 = _ctx.config) == null ? void 0 : _k2.widgetWebSetup) == null ? void 0 : _l2.mainColor) || "#40C451" }) }, [ createBaseVNode("img", { src: _ctx.assetsBase + "/whatsappicon.svg", style: { "margin-left": "4px" } }, null, 8, _hoisted_10) ], 4) ])) : createCommentVNode("", true), createBaseVNode("div", { class: "kb-whatsapp-button__chat kb-fade-in-animation--delay", onClick: _cache[6] || (_cache[6] = ($event) => _ctx.openChat()), style: normalizeStyle({ backgroundColor: ((_n2 = (_m2 = _ctx.config) == null ? void 0 : _m2.widgetWebSetup) == null ? void 0 : _n2.mainColor) || "#3b3b3b", color: _ctx.config.widgetWebSetup.theme === "light" ? "black" : "white" }) }, [ createBaseVNode("img", { src: ((_o2 = _ctx.config.widgetWebSetup) == null ? void 0 : _o2.theme) === "light" ? _ctx.assetsBase + "/message-bubble-black.svg" : _ctx.assetsBase + "/message-bubble.svg" }, null, 8, _hoisted_11) ], 4) ], 2)) : createCommentVNode("", true) ]; }), _: 1 }), createVNode(Transition, { name: "slide-fade" }, { default: withCtx(() => { var _a3, _b2, _c2, _d2, _e2, _f2; return [ !_ctx.showConversation && _ctx.showInactivityMessage ? (openBlock(), createElementBlock("div", { key: 0, class: normalizeClass(["kb-inactivity-container", _ctx.position[3]]), onClick: _cache[8] || (_cache[8] = ($event) => _ctx.toggleShowConversation()), style: normalizeStyle({ backgroundColor: ((_b2 = (_a3 = _ctx.config) == null ? void 0 : _a3.widgetWebSetup) == null ? void 0 : _b2.mainColor) || "#3b3b3b", color: _ctx.config.widgetWebSetup.theme === "light" ? "black" : "white" }) }, [ createBaseVNode("img", { class: "kb-inactivity-container__close-button md-24", src: ((_c2 = _ctx.config.widgetWebSetup) == null ? void 0 : _c2.theme) === "light" ? _ctx.assetsBase + "/close.svg" : _ctx.assetsBase + "/close-white.svg", onClick: _cache[7] || (_cache[7] = withModifiers(($event) => _ctx.showInactivityMessage = false, ["stop"])) }, null, 8, _hoisted_12), createBaseVNode("img", { class: "kb-inactivity-container__logo", alt: _ctx.appInfo && ((_d2 = _ctx.appInfo) == null ? void 0 : _d2.app_name) ? (_e2 = _ctx.appInfo) == null ? void 0 : _e2.app_name : "Inactivity logo", src: _ctx.config.widgetWebSetup.logo || _ctx.logo }, null, 8, _hoisted_13), createBaseVNode("div", null, toDisplayString$1((_f2 = _ctx.config.widgetWebSetup) == null ? void 0 : _f2.inactivityMessage), 1) ], 6)) : createCommentVNode("", true) ]; }), _: 1 }), createVNode(Transition, { name: "slide-fade" }, { default: withCtx(() => { var _a3, _b2, _c2, _d2, _e2, _f2, _g2, _h2, _i2, _j2; return [ withDirectives(createBaseVNode("div", { class: normalizeClass(["kb-chat-container", _ctx.position[2]]) }, [ createBaseVNode("div", { class: "kb-chat-header kb-px4", onClick: _cache[11] || (_cache[11] = ($event) => _ctx.showConversation = false), style: normalizeStyle({ backgroundColor: ((_b2 = (_a3 = _ctx.config) == null ? void 0 : _a3.widgetWebSetup) == null ? void 0 : _b2.mainColor) || "#3b3b3b" }) }, [ createBaseVNode("img", { alt: ((_c2 = _ctx.appInfo) == null ? void 0 : _c2.app_name) || _ctx.config.name, class: "kb-logo", src: ((_d2 = _ctx.config.widgetWebSetup) == null ? void 0 : _d2.logo) || _ctx.logo, width: ((_e2 = _ctx.config.widgetWebSetup) == null ? void 0 : _e2.logo) ? "26px" : "55px", style: normalizeStyle(`width: ${((_f2 = _ctx.config.widgetWebSetup) == null ? void 0 : _f2.logo) ? "26px" : "55px"}; height: 26px`), height: "26px" }, null, 12, _hoisted_14), createBaseVNode("span", { class: "kb-font-weight-bold kb-ml2", style: normalizeStyle({ color: ((_g2 = _ctx.config.widgetWebSetup) == null ? void 0 : _g2.theme) === "light" ? "black" : "white" }) }, toDisplayString$1(_ctx.config.title), 5), _cache[20] || (_cache[20] = createBaseVNode("div", { class: "kb-spacer" }, null, -1)), createBaseVNode("span", { class: "language-toggle", onClick: _cache[9] || (_cache[9] = withModifiers(($event) => _ctx.setLanguage("en"), ["stop"])), style: normalizeStyle({ color: ((_h2 = _ctx.config.widgetWebSetup) == null ? void 0 : _h2.theme) === "light" ? "black" : "white" }), title: _ctx.$t("changeLanguage") }, toDisplayString$1(_ctx.language === "es" ? "EN" : "ES"), 13, _hoisted_15), _ctx.showLogoutButton ? (openBlock(), createElementBlock("img", { key: 0, class: "material-icons kb-pointer", onClick: _cache[10] || (_cache[10] = ($event) => _ctx.logout()), style: { "margin-right": "5px" }, src: ((_i2 = _ctx.config.widgetWebSetup) == null ? void 0 : _i2.theme) === "light" ? _ctx.assetsBase + "/exit.svg" : _ctx.assetsBase + "/exit-white.svg", title: _ctx.$t("leaveChat") }, null, 8, _hoisted_16)) : createCommentVNode("", true), createBaseVNode("img", { class: "kb-pointer", click: "showConversation = !showConversation", src: ((_j2 = _ctx.config.widgetWebSetup) == null ? void 0 : _j2.theme) === "light" ? _ctx.assetsBase + "/close.svg" : _ctx.assetsBase + "/close-white.svg", title: _ctx.$t("hideChat") }, null, 8, _hoisted_17) ], 4), _ctx.showWorkingHoursAlert ? (openBlock(), createBlock(_component_KBScheduleAlert, { key: 0 })) : createCommentVNode("", true), createVNode(Transition, { name: "expand-y" }, { default: withCtx(() => [ _ctx.error.show ? (openBlock(), createElementBlock("div", _hoisted_18, toDisplayString$1(_ctx.error.message), 1)) : createCommentVNode("", true) ]), _: 1 }), createBaseVNode("div", { class: normalizeClass(["kb-chat-conversation", _ctx.showDropZone ? "isDragZoneOpen" : "isNotOpen"]), ref: "chatContainer" }, [ _cache[21] || (_cache[21] = createBaseVNode("div", { style: { "flex": "1 1 auto" } }, null, -1)), !_ctx.showWorkingHoursAlert ? (openBlock(), createBlock(_component_KBPermanentMessages, { key: 0 })) : createCommentVNode("", true), (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.messages, (message) => { return openBlock(), createBlock(_component_KSMessage, { onSetImageToShow: _ctx.setImageToShow, key: message.id, message }, null, 8, ["onSetImageToShow", "message"]); }), 128)), createVNode(_component_DropZone, { onClear: _cache[12] || (_cache[12] = ($event) => _ctx.files = []), enabled: _ctx.roomId, onFilePicked: _cache[13] || (_cache[13] = ($event) => _ctx.addFile($event)), files: _ctx.files, onUpload: _cache[14] || (_cache[14] = ($event) => _ctx.uploadFile()), uploadingFile: _ctx.uploadingFile, uploadProgress: _ctx.uploadProgress, onInput: _cache[15] || (_cache[15] = ($event) => _ctx.showDropZone = $event), value: _ctx.showDropZone }, null, 8, ["enabled", "files", "uploadingFile", "uploadProgress", "value"]), _ctx.showCustomizedQuestions ? (openBlock(), createBlock(_component_KBCustomizedQuestions, { key: 1 })) : createCommentVNode("", true) ], 2), createVNode(_component_KBAuthForm, { value: _ctx.showAuthForm, language: _ctx.language }, null, 8, ["value", "language"]), !_ctx.showAuthForm ? (openBlock(), createBlock(_component_KSMessageComposer, { key: 1, onScrollBottom: _cache[16] || (_cache[16] = ($event) => _ctx.scrollBottom()), onAttachFile: _cache[17] || (_cache[17] = ($event) => _ctx.showDnDZone()), onResubscribe: _cache[18] || (_cache[18] = ($event) => _ctx.suscribeToMessages()) })) : createCommentVNode("", true), !_ctx.showAuthForm ? (openBlock(), createElementBlock("div", _hoisted_19, [ !_ctx.config.hidePoweredByKeybe ? (openBlock(), createElementBlock("a", { key: 0, class: "cursor-pointer", href: _ctx.config.isCloudTask || _ctx.localConfig.isCloudTask ? "https://www.cloudtask.com/" : "https://keybe.ai/", target: "_blank" }, [ _cache[22] || (_cache[22] = createTextVNode(" Powered by ")), createBaseVNode("b", _hoisted_21, toDisplayString$1(_ctx.config.isCloudTask || _ctx.localConfig.isCloudTask ? "CL" : "KB"), 1) ], 8, _hoisted_20)) : createCommentVNode("", true) ])) : createCommentVNode("", true), createVNode(Transition, { name: "fade" }, { default: withCtx(() => [ withDirectives(createVNode(_component_KBVerifyIdentity, { onClick: _ctx.toggleShowConversation, onTimeout: _cache[19] || (_cache[19] = ($event) => _ctx.sendAuthorizationTimeout("timeout")), value: _ctx.startAuthorizationData }, null, 8, ["onClick", "value"]), [ [vShow, _ctx.verifyingIdentity] ]) ]), _: 1 }) ], 2), [ [vShow, _ctx.showConversation] ]) ]; }), _: 1 }) ]); } const App = /* @__PURE__ */ _export_sfc$1(_sfc_main$1, [["render", _sfc_render$1]]); /*! * shared v9.14.2 * (c) 2024 kazuya kawaguchi * Released under the MIT License. */ const inBrowser = typeof window !== "undefined"; const makeSymbol = (name, shareable = false) => !shareable ? Symbol(name) : Symbol.for(name); const generateFormatCacheKey = (locale2, key, source) => friendlyJSONstringify({ l: locale2, k: key, s: source }); const friendlyJSONstringify = (json) => JSON.stringify(json).replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029").replace(/\u0027/g, "\\u0027"); const isNumber = (val) => typeof val === "number" && isFinite(val); const isDate = (val) => toTypeString(val) === "[object Date]"; const isRegExp = (val) => toTypeString(val) === "[object RegExp]"; const isEmptyObject = (val) => isPlainObject(val) && Object.keys(val).length === 0; const assign$1 = Object.assign; const _create = Object.create; const create = (obj = null) => _create(obj); let _globalThis; const getGlobalThis = () => { return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : create()); }; function escapeHtml(rawText) { return rawText.replace(//g, ">").replace(/"/g, """).replace(/'/g, "'"); } const hasOwnProperty = Object.prototype.hasOwnProperty; function hasOwn(obj, key) { return hasOwnProperty.call(obj, key); } const isArray = Array.isArray; const isFunction = (val) => typeof val === "function"; const isString$1 = (val) => typeof val === "string"; const isBoolean = (val) => typeof val === "boolean"; const isObject$2 = (val) => val !== null && typeof val === "object"; const isPromise = (val) => { return isObject$2(val) && isFunction(val.then) && isFunction(val.catch); }; const objectToString = Object.prototype.toString; const toTypeString = (value) => objectToString.call(value); const isPlainObject = (val) => { if (!isObject$2(val)) return false; const proto2 = Object.getPrototypeOf(val); return proto2 === null || proto2.constructor === Object; }; const toDisplayString = (val) => { return val == null ? "" : isArray(val) || isPlainObject(val) && val.toString === objectToString ? JSON.stringify(val, null, 2) : String(val); }; function join$1(items, separator = "") { return items.reduce((str, item, index2) => index2 === 0 ? str + item : str + separator + item, ""); } function incrementer(code2) { let current = code2; return () => ++current; } function warn(msg, err) { if (typeof console !== "undefined") { console.warn(`[intlify] ` + msg); if (err) { console.warn(err.stack); } } } const isNotObjectOrIsArray = (val) => !isObject$2(val) || isArray(val); function deepCopy(src, des) { if (isNotObjectOrIsArray(src) || isNotObjectOrIsArray(des)) { throw new Error("Invalid value"); } const stack2 = [{ src, des }]; while (stack2.length) { const { src: src2, des: des2 } = stack2.pop(); Object.keys(src2).forEach((key) => { if (key === "__proto__") { return; } if (isObject$2(src2[key]) && !isObject$2(des2[key])) { des2[key] = Array.isArray(src2[key]) ? [] : create(); } if (isNotObjectOrIsArray(des2[key]) || isNotObjectOrIsArray(src2[key])) { des2[key] = src2[key]; } else { stack2.push({ src: src2[key], des: des2[key] }); } }); } } /*! * message-compiler v9.14.2 * (c) 2024 kazuya kawaguchi * Released under the MIT License. */ function createPosition(line, column, offset2) { return { line, column, offset: offset2 }; } function createLocation(start, end, source) { const loc = { start, end }; if (source != null) { loc.source = source; } return loc; } const RE_ARGS = /\{([0-9a-zA-Z]+)\}/g; function format$1(message, ...args) { if (args.length === 1 && isObject$1(args[0])) { args = args[0]; } if (!args || !args.hasOwnProperty) { args = {}; } return message.replace(RE_ARGS, (match, identifier) => { return args.hasOwnProperty(identifier) ? args[identifier] : ""; }); } const assign = Object.assign; const isString = (val) => typeof val === "string"; const isObject$1 = (val) => val !== null && typeof val === "object"; function join(items, separator = "") { return items.reduce((str, item, index2) => index2 === 0 ? str + item : str + separator + item, ""); } const CompileWarnCodes = { USE_MODULO_SYNTAX: 1, __EXTEND_POINT__: 2 }; const warnMessages = { [CompileWarnCodes.USE_MODULO_SYNTAX]: `Use modulo before '{{0}}'.` }; function createCompileWarn(code2, loc, ...args) { const msg = format$1(warnMessages[code2] || "", ...args || []); const message = { message: String(msg), code: code2 }; if (loc) { message.location = loc; } return message; } const CompileErrorCodes = { EXPECTED_TOKEN: 1, INVALID_TOKEN_IN_PLACEHOLDER: 2, UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER: 3, UNKNOWN_ESCAPE_SEQUENCE: 4, INVALID_UNICODE_ESCAPE_SEQUENCE: 5, UNBALANCED_CLOSING_BRACE: 6, UNTERMINATED_CLOSING_BRACE: 7, EMPTY_PLACEHOLDER: 8, NOT_ALLOW_NEST_PLACEHOLDER: 9, INVALID_LINKED_FORMAT: 10, MUST_HAVE_MESSAGES_IN_PLURAL: 11, UNEXPECTED_EMPTY_LINKED_MODIFIER: 12, UNEXPECTED_EMPTY_LINKED_KEY: 13, UNEXPECTED_LEXICAL_ANALYSIS: 14, UNHANDLED_CODEGEN_NODE_TYPE: 15, UNHANDLED_MINIFIER_NODE_TYPE: 16, __EXTEND_POINT__: 17 }; const errorMessages = { [CompileErrorCodes.EXPECTED_TOKEN]: `Expected token: '{0}'`, [CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER]: `Invalid token in placeholder: '{0}'`, [CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]: `Unterminated single quote in placeholder`, [CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE]: `Unknown escape sequence: \\{0}`, [CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE]: `Invalid unicode escape sequence: {0}`, [CompileErrorCodes.UNBALANCED_CLOSING_BRACE]: `Unbalanced closing brace`, [CompileErrorCodes.UNTERMINATED_CLOSING_BRACE]: `Unterminated closing brace`, [CompileErrorCodes.EMPTY_PLACEHOLDER]: `Empty placeholder`, [CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER]: `Not allowed nest placeholder`, [CompileErrorCodes.INVALID_LINKED_FORMAT]: `Invalid linked format`, [CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL]: `Plural must have messages`, [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER]: `Unexpected empty linked modifier`, [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY]: `Unexpected empty linked key`, [CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS]: `Unexpected lexical analysis in token: '{0}'`, [CompileErrorCodes.UNHANDLED_CODEGEN_NODE_TYPE]: `unhandled codegen node type: '{0}'`, [CompileErrorCodes.UNHANDLED_MINIFIER_NODE_TYPE]: `unhandled mimifier node type: '{0}'` }; function createCompileError(code2, loc, options = {}) { const { domain, messages, args } = options; const msg = format$1((messages || errorMessages)[code2] || "", ...args || []); const error = new SyntaxError(String(msg)); error.code = code2; if (loc) { error.location = loc; } error.domain = domain; return error; } function defaultOnError(error) { throw error; } const CHAR_SP = " "; const CHAR_CR = "\r"; const CHAR_LF = "\n"; const CHAR_LS = String.fromCharCode(8232); const CHAR_PS = String.fromCharCode(8233); function createScanner(str) { const _buf = str; let _index = 0; let _line = 1; let _column = 1; let _peekOffset = 0; const isCRLF = (index3) => _buf[index3] === CHAR_CR && _buf[index3 + 1] === CHAR_LF; const isLF = (index3) => _buf[index3] === CHAR_LF; const isPS = (index3) => _buf[index3] === CHAR_PS; const isLS = (index3) => _buf[index3] === CHAR_LS; const isLineEnd = (index3) => isCRLF(index3) || isLF(index3) || isPS(index3) || isLS(index3); const index2 = () => _index; const line = () => _line; const column = () => _column; const peekOffset = () => _peekOffset; const charAt = (offset2) => isCRLF(offset2) || isPS(offset2) || isLS(offset2) ? CHAR_LF : _buf[offset2]; const currentChar = () => charAt(_index); const currentPeek = () => charAt(_index + _peekOffset); function next() { _peekOffset = 0; if (isLineEnd(_index)) { _line++; _column = 0; } if (isCRLF(_index)) { _index++; } _index++; _column++; return _buf[_index]; } function peek() { if (isCRLF(_index + _peekOffset)) { _peekOffset++; } _peekOffset++; return _buf[_index + _peekOffset]; } function reset() { _index = 0; _line = 1; _column = 1; _peekOffset = 0; } function resetPeek(offset2 = 0) { _peekOffset = offset2; } function skipToPeek() { const target = _index + _peekOffset; while (target !== _index) { next(); } _peekOffset = 0; } return { index: index2, line, column, peekOffset, charAt, currentChar, currentPeek, next, peek, reset, resetPeek, skipToPeek }; } const EOF = void 0; const DOT = "."; const LITERAL_DELIMITER = "'"; const ERROR_DOMAIN$3 = "tokenizer"; function createTokenizer(source, options = {}) { const location2 = options.location !== false; const _scnr = createScanner(source); const currentOffset = () => _scnr.index(); const currentPosition = () => createPosition(_scnr.line(), _scnr.column(), _scnr.index()); const _initLoc = currentPosition(); const _initOffset = currentOffset(); const _context = { currentType: 14, offset: _initOffset, startLoc: _initLoc, endLoc: _initLoc, lastType: 14, lastOffset: _initOffset, lastStartLoc: _initLoc, lastEndLoc: _initLoc, braceNest: 0, inLinked: false, text: "" }; const context = () => _context; const { onError } = options; function emitError(code2, pos, offset2, ...args) { const ctx = context(); pos.column += offset2; pos.offset += offset2; if (onError) { const loc = location2 ? createLocation(ctx.startLoc, pos) : null; const err = createCompileError(code2, loc, { domain: ERROR_DOMAIN$3, args }); onError(err); } } function getToken(context2, type, value) { context2.endLoc = currentPosition(); context2.currentType = type; const token2 = { type }; if (location2) { token2.loc = createLocation(context2.startLoc, context2.endLoc); } if (value != null) { token2.value = value; } return token2; } const getEndToken = (context2) => getToken(context2, 14); function eat(scnr, ch) { if (scnr.currentChar() === ch) { scnr.next(); return ch; } else { emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch); return ""; } } function peekSpaces(scnr) { let buf = ""; while (scnr.currentPeek() === CHAR_SP || scnr.currentPeek() === CHAR_LF) { buf += scnr.currentPeek(); scnr.peek(); } return buf; } function skipSpaces(scnr) { const buf = peekSpaces(scnr); scnr.skipToPeek(); return buf; } function isIdentifierStart(ch) { if (ch === EOF) { return false; } const cc = ch.charCodeAt(0); return cc >= 97 && cc <= 122 || cc >= 65 && cc <= 90 || cc === 95; } function isNumberStart(ch) { if (ch === EOF) { return false; } const cc = ch.charCodeAt(0); return cc >= 48 && cc <= 57; } function isNamedIdentifierStart(scnr, context2) { const { currentType } = context2; if (currentType !== 2) { return false; } peekSpaces(scnr); const ret = isIdentifierStart(scnr.currentPeek()); scnr.resetPeek(); return ret; } function isListIdentifierStart(scnr, context2) { const { currentType } = context2; if (currentType !== 2) { return false; } peekSpaces(scnr); const ch = scnr.currentPeek() === "-" ? scnr.peek() : scnr.currentPeek(); const ret = isNumberStart(ch); scnr.resetPeek(); return ret; } function isLiteralStart(scnr, context2) { const { currentType } = context2; if (currentType !== 2) { return false; } peekSpaces(scnr); const ret = scnr.currentPeek() === LITERAL_DELIMITER; scnr.resetPeek(); return ret; } function isLinkedDotStart(scnr, context2) { const { currentType } = context2; if (currentType !== 8) { return false; } peekSpaces(scnr); const ret = scnr.currentPeek() === "."; scnr.resetPeek(); return ret; } function isLinkedModifierStart(scnr, context2) { const { currentType } = context2; if (currentType !== 9) { return false; } peekSpaces(scnr); const ret = isIdentifierStart(scnr.currentPeek()); scnr.resetPeek(); return ret; } function isLinkedDelimiterStart(scnr, context2) { const { currentType } = context2; if (!(currentType === 8 || currentType === 12)) { return false; } peekSpaces(scnr); const ret = scnr.currentPeek() === ":"; scnr.resetPeek(); return ret; } function isLinkedReferStart(scnr, context2) { const { currentType } = context2; if (currentType !== 10) { return false; } const fn = () => { const ch = scnr.currentPeek(); if (ch === "{") { return isIdentifierStart(scnr.peek()); } else if (ch === "@" || ch === "%" || ch === "|" || ch === ":" || ch === "." || ch === CHAR_SP || !ch) { return false; } else if (ch === CHAR_LF) { scnr.peek(); return fn(); } else { return isTextStart(scnr, false); } }; const ret = fn(); scnr.resetPeek(); return ret; } function isPluralStart(scnr) { peekSpaces(scnr); const ret = scnr.currentPeek() === "|"; scnr.resetPeek(); return ret; } function detectModuloStart(scnr) { const spaces = peekSpaces(scnr); const ret = scnr.currentPeek() === "%" && scnr.peek() === "{"; scnr.resetPeek(); return { isModulo: ret, hasSpace: spaces.length > 0 }; } function isTextStart(scnr, reset = true) { const fn = (hasSpace = false, prev = "", detectModulo = false) => { const ch = scnr.currentPeek(); if (ch === "{") { return prev === "%" ? false : hasSpace; } else if (ch === "@" || !ch) { return prev === "%" ? true : hasSpace; } else if (ch === "%") { scnr.peek(); return fn(hasSpace, "%", true); } else if (ch === "|") { return prev === "%" || detectModulo ? true : !(prev === CHAR_SP || prev === CHAR_LF); } else if (ch === CHAR_SP) { scnr.peek(); return fn(true, CHAR_SP, detectModulo); } else if (ch === CHAR_LF) { scnr.peek(); return fn(true, CHAR_LF, detectModulo); } else { return true; } }; const ret = fn(); reset && scnr.resetPeek(); return ret; } function takeChar(scnr, fn) { const ch = scnr.currentChar(); if (ch === EOF) { return EOF; } if (fn(ch)) { scnr.next(); return ch; } return null; } function isIdentifier(ch) { const cc = ch.charCodeAt(0); return cc >= 97 && cc <= 122 || cc >= 65 && cc <= 90 || cc >= 48 && cc <= 57 || cc === 95 || cc === 36; } function takeIdentifierChar(scnr) { return takeChar(scnr, isIdentifier); } function isNamedIdentifier(ch) { const cc = ch.charCodeAt(0); return cc >= 97 && cc <= 122 || cc >= 65 && cc <= 90 || cc >= 48 && cc <= 57 || cc === 95 || cc === 36 || cc === 45; } function takeNamedIdentifierChar(scnr) { return takeChar(scnr, isNamedIdentifier); } function isDigit2(ch) { const cc = ch.charCodeAt(0); return cc >= 48 && cc <= 57; } function takeDigit(scnr) { return takeChar(scnr, isDigit2); } function isHexDigit(ch) { const cc = ch.charCodeAt(0); return cc >= 48 && cc <= 57 || cc >= 65 && cc <= 70 || cc >= 97 && cc <= 102; } function takeHexDigit(scnr) { return takeChar(scnr, isHexDigit); } function getDigits(scnr) { let ch = ""; let num = ""; while (ch = takeDigit(scnr)) { num += ch; } return num; } function readModulo(scnr) { skipSpaces(scnr); const ch = scnr.currentChar(); if (ch !== "%") { emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch); } scnr.next(); return "%"; } function readText(scnr) { let buf = ""; while (true) { const ch = scnr.currentChar(); if (ch === "{" || ch === "}" || ch === "@" || ch === "|" || !ch) { break; } else if (ch === "%") { if (isTextStart(scnr)) { buf += ch; scnr.next(); } else { break; } } else if (ch === CHAR_SP || ch === CHAR_LF) { if (isTextStart(scnr)) { buf += ch; scnr.next(); } else if (isPluralStart(scnr)) { break; } else { buf += ch; scnr.next(); } } else { buf += ch; scnr.next(); } } return buf; } function readNamedIdentifier(scnr) { skipSpaces(scnr); let ch = ""; let name = ""; while (ch = takeNamedIdentifierChar(scnr)) { name += ch; } if (scnr.currentChar() === EOF) { emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0); } return name; } function readListIdentifier(scnr) { skipSpaces(scnr); let value = ""; if (scnr.currentChar() === "-") { scnr.next(); value += `-${getDigits(scnr)}`; } else { value += getDigits(scnr); } if (scnr.currentChar() === EOF) { emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0); } return value; } function isLiteral2(ch) { return ch !== LITERAL_DELIMITER && ch !== CHAR_LF; } function readLiteral(scnr) { skipSpaces(scnr); eat(scnr, `'`); let ch = ""; let literal = ""; while (ch = takeChar(scnr, isLiteral2)) { if (ch === "\\") { literal += readEscapeSequence(scnr); } else { literal += ch; } } const current = scnr.currentChar(); if (current === CHAR_LF || current === EOF) { emitError(CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER, currentPosition(), 0); if (current === CHAR_LF) { scnr.next(); eat(scnr, `'`); } return literal; } eat(scnr, `'`); return literal; } function readEscapeSequence(scnr) { const ch = scnr.currentChar(); switch (ch) { case "\\": case `'`: scnr.next(); return `\\${ch}`; case "u": return readUnicodeEscapeSequence(scnr, ch, 4); case "U": return readUnicodeEscapeSequence(scnr, ch, 6); default: emitError(CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE, currentPosition(), 0, ch); return ""; } } function readUnicodeEscapeSequence(scnr, unicode, digits) { eat(scnr, unicode); let sequence = ""; for (let i2 = 0; i2 < digits; i2++) { const ch = takeHexDigit(scnr); if (!ch) { emitError(CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE, currentPosition(), 0, `\\${unicode}${sequence}${scnr.currentChar()}`); break; } sequence += ch; } return `\\${unicode}${sequence}`; } function isInvalidIdentifier(ch) { return ch !== "{" && ch !== "}" && ch !== CHAR_SP && ch !== CHAR_LF; } function readInvalidIdentifier(scnr) { skipSpaces(scnr); let ch = ""; let identifiers = ""; while (ch = takeChar(scnr, isInvalidIdentifier)) { identifiers += ch; } return identifiers; } function readLinkedModifier(scnr) { let ch = ""; let name = ""; while (ch = takeIdentifierChar(scnr)) { name += ch; } return name; } function readLinkedRefer(scnr) { const fn = (buf) => { const ch = scnr.currentChar(); if (ch === "{" || ch === "%" || ch === "@" || ch === "|" || ch === "(" || ch === ")" || !ch) { return buf; } else if (ch === CHAR_SP) { return buf; } else if (ch === CHAR_LF || ch === DOT) { buf += ch; scnr.next(); return fn(buf); } else { buf += ch; scnr.next(); return fn(buf); } }; return fn(""); } function readPlural(scnr) { skipSpaces(scnr); const plural = eat(scnr, "|"); skipSpaces(scnr); return plural; } function readTokenInPlaceholder(scnr, context2) { let token2 = null; const ch = scnr.currentChar(); switch (ch) { case "{": if (context2.braceNest >= 1) { emitError(CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER, currentPosition(), 0); } scnr.next(); token2 = getToken(context2, 2, "{"); skipSpaces(scnr); context2.braceNest++; return token2; case "}": if (context2.braceNest > 0 && context2.currentType === 2) { emitError(CompileErrorCodes.EMPTY_PLACEHOLDER, currentPosition(), 0); } scnr.next(); token2 = getToken(context2, 3, "}"); context2.braceNest--; context2.braceNest > 0 && skipSpaces(scnr); if (context2.inLinked && context2.braceNest === 0) { context2.inLinked = false; } return token2; case "@": if (context2.braceNest > 0) { emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0); } token2 = readTokenInLinked(scnr, context2) || getEndToken(context2); context2.braceNest = 0; return token2; default: { let validNamedIdentifier = true; let validListIdentifier = true; let validLiteral = true; if (isPluralStart(scnr)) { if (context2.braceNest > 0) { emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0); } token2 = getToken(context2, 1, readPlural(scnr)); context2.braceNest = 0; context2.inLinked = false; return token2; } if (context2.braceNest > 0 && (context2.currentType === 5 || context2.currentType === 6 || context2.currentType === 7)) { emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0); context2.braceNest = 0; return readToken(scnr, context2); } if (validNamedIdentifier = isNamedIdentifierStart(scnr, context2)) { token2 = getToken(context2, 5, readNamedIdentifier(scnr)); skipSpaces(scnr); return token2; } if (validListIdentifier = isListIdentifierStart(scnr, context2)) { token2 = getToken(context2, 6, readListIdentifier(scnr)); skipSpaces(scnr); return token2; } if (validLiteral = isLiteralStart(scnr, context2)) { token2 = getToken(context2, 7, readLiteral(scnr)); skipSpaces(scnr); return token2; } if (!validNamedIdentifier && !validListIdentifier && !validLiteral) { token2 = getToken(context2, 13, readInvalidIdentifier(scnr)); emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, token2.value); skipSpaces(scnr); return token2; } break; } } return token2; } function readTokenInLinked(scnr, context2) { const { currentType } = context2; let token2 = null; const ch = scnr.currentChar(); if ((currentType === 8 || currentType === 9 || currentType === 12 || currentType === 10) && (ch === CHAR_LF || ch === CHAR_SP)) { emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0); } switch (ch) { case "@": scnr.next(); token2 = getToken(context2, 8, "@"); context2.inLinked = true; return token2; case ".": skipSpaces(scnr); scnr.next(); return getToken(context2, 9, "."); case ":": skipSpaces(scnr); scnr.next(); return getToken(context2, 10, ":"); default: if (isPluralStart(scnr)) { token2 = getToken(context2, 1, readPlural(scnr)); context2.braceNest = 0; context2.inLinked = false; return token2; } if (isLinkedDotStart(scnr, context2) || isLinkedDelimiterStart(scnr, context2)) { skipSpaces(scnr); return readTokenInLinked(scnr, context2); } if (isLinkedModifierStart(scnr, context2)) { skipSpaces(scnr); return getToken(context2, 12, readLinkedModifier(scnr)); } if (isLinkedReferStart(scnr, context2)) { skipSpaces(scnr); if (ch === "{") { return readTokenInPlaceholder(scnr, context2) || token2; } else { return getToken(context2, 11, readLinkedRefer(scnr)); } } if (currentType === 8) { emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0); } context2.braceNest = 0; context2.inLinked = false; return readToken(scnr, context2); } } function readToken(scnr, context2) { let token2 = { type: 14 }; if (context2.braceNest > 0) { return readTokenInPlaceholder(scnr, context2) || getEndToken(context2); } if (context2.inLinked) { return readTokenInLinked(scnr, context2) || getEndToken(context2); } const ch = scnr.currentChar(); switch (ch) { case "{": return readTokenInPlaceholder(scnr, context2) || getEndToken(context2); case "}": emitError(CompileErrorCodes.UNBALANCED_CLOSING_BRACE, currentPosition(), 0); scnr.next(); return getToken(context2, 3, "}"); case "@": return readTokenInLinked(scnr, context2) || getEndToken(context2); default: { if (isPluralStart(scnr)) { token2 = getToken(context2, 1, readPlural(scnr)); context2.braceNest = 0; context2.inLinked = false; return token2; } const { isModulo, hasSpace } = detectModuloStart(scnr); if (isModulo) { return hasSpace ? getToken(context2, 0, readText(scnr)) : getToken(context2, 4, readModulo(scnr)); } if (isTextStart(scnr)) { return getToken(context2, 0, readText(scnr)); } break; } } return token2; } function nextToken() { const { currentType, offset: offset2, startLoc, endLoc } = _context; _context.lastType = currentType; _context.lastOffset = offset2; _context.lastStartLoc = startLoc; _context.lastEndLoc = endLoc; _context.offset = currentOffset(); _context.startLoc = currentPosition(); if (_scnr.currentChar() === EOF) { return getToken(_context, 14); } return readToken(_scnr, _context); } return { nextToken, currentOffset, currentPosition, context }; } const ERROR_DOMAIN$2 = "parser"; const KNOWN_ESCAPES = /(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g; function fromEscapeSequence(match, codePoint4, codePoint6) { switch (match) { case `\\\\`: return `\\`; case `\\'`: return `'`; default: { const codePoint = parseInt(codePoint4 || codePoint6, 16); if (codePoint <= 55295 || codePoint >= 57344) { return String.fromCodePoint(codePoint); } return "\uFFFD"; } } } function createParser(options = {}) { const location2 = options.location !== false; const { onError, onWarn } = options; function emitError(tokenzer, code2, start, offset2, ...args) { const end = tokenzer.currentPosition(); end.offset += offset2; end.column += offset2; if (onError) { const loc = location2 ? createLocation(start, end) : null; const err = createCompileError(code2, loc, { domain: ERROR_DOMAIN$2, args }); onError(err); } } function emitWarn(tokenzer, code2, start, offset2, ...args) { const end = tokenzer.currentPosition(); end.offset += offset2; end.column += offset2; if (onWarn) { const loc = location2 ? createLocation(start, end) : null; onWarn(createCompileWarn(code2, loc, args)); } } function startNode(type, offset2, loc) { const node = { type }; if (location2) { node.start = offset2; node.end = offset2; node.loc = { start: loc, end: loc }; } return node; } function endNode(node, offset2, pos, type) { if (type) { node.type = type; } if (location2) { node.end = offset2; if (node.loc) { node.loc.end = pos; } } } function parseText(tokenizer, value) { const context = tokenizer.context(); const node = startNode(3, context.offset, context.startLoc); node.value = value; endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); return node; } function parseList(tokenizer, index2) { const context = tokenizer.context(); const { lastOffset: offset2, lastStartLoc: loc } = context; const node = startNode(5, offset2, loc); node.index = parseInt(index2, 10); tokenizer.nextToken(); endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); return node; } function parseNamed(tokenizer, key, modulo) { const context = tokenizer.context(); const { lastOffset: offset2, lastStartLoc: loc } = context; const node = startNode(4, offset2, loc); node.key = key; if (modulo === true) { node.modulo = true; } tokenizer.nextToken(); endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); return node; } function parseLiteral(tokenizer, value) { const context = tokenizer.context(); const { lastOffset: offset2, lastStartLoc: loc } = context; const node = startNode(9, offset2, loc); node.value = value.replace(KNOWN_ESCAPES, fromEscapeSequence); tokenizer.nextToken(); endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); return node; } function parseLinkedModifier(tokenizer) { const token2 = tokenizer.nextToken(); const context = tokenizer.context(); const { lastOffset: offset2, lastStartLoc: loc } = context; const node = startNode(8, offset2, loc); if (token2.type !== 12) { emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER, context.lastStartLoc, 0); node.value = ""; endNode(node, offset2, loc); return { nextConsumeToken: token2, node }; } if (token2.value == null) { emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token2)); } node.value = token2.value || ""; endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); return { node }; } function parseLinkedKey(tokenizer, value) { const context = tokenizer.context(); const node = startNode(7, context.offset, context.startLoc); node.value = value; endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); return node; } function parseLinked(tokenizer) { const context = tokenizer.context(); const linkedNode = startNode(6, context.offset, context.startLoc); let token2 = tokenizer.nextToken(); if (token2.type === 9) { const parsed = parseLinkedModifier(tokenizer); linkedNode.modifier = parsed.node; token2 = parsed.nextConsumeToken || tokenizer.nextToken(); } if (token2.type !== 10) { emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token2)); } token2 = tokenizer.nextToken(); if (token2.type === 2) { token2 = tokenizer.nextToken(); } switch (token2.type) { case 11: if (token2.value == null) { emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token2)); } linkedNode.key = parseLinkedKey(tokenizer, token2.value || ""); break; case 5: if (token2.value == null) { emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token2)); } linkedNode.key = parseNamed(tokenizer, token2.value || ""); break; case 6: if (token2.value == null) { emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token2)); } linkedNode.key = parseList(tokenizer, token2.value || ""); break; case 7: if (token2.value == null) { emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token2)); } linkedNode.key = parseLiteral(tokenizer, token2.value || ""); break; default: { emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY, context.lastStartLoc, 0); const nextContext = tokenizer.context(); const emptyLinkedKeyNode = startNode(7, nextContext.offset, nextContext.startLoc); emptyLinkedKeyNode.value = ""; endNode(emptyLinkedKeyNode, nextContext.offset, nextContext.startLoc); linkedNode.key = emptyLinkedKeyNode; endNode(linkedNode, nextContext.offset, nextContext.startLoc); return { nextConsumeToken: token2, node: linkedNode }; } } endNode(linkedNode, tokenizer.currentOffset(), tokenizer.currentPosition()); return { node: linkedNode }; } function parseMessage(tokenizer) { const context = tokenizer.context(); const startOffset = context.currentType === 1 ? tokenizer.currentOffset() : context.offset; const startLoc = context.currentType === 1 ? context.endLoc : context.startLoc; const node = startNode(2, startOffset, startLoc); node.items = []; let nextToken = null; let modulo = null; do { const token2 = nextToken || tokenizer.nextToken(); nextToken = null; switch (token2.type) { case 0: if (token2.value == null) { emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token2)); } node.items.push(parseText(tokenizer, token2.value || "")); break; case 6: if (token2.value == null) { emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token2)); } node.items.push(parseList(tokenizer, token2.value || "")); break; case 4: modulo = true; break; case 5: if (token2.value == null) { emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token2)); } node.items.push(parseNamed(tokenizer, token2.value || "", !!modulo)); if (modulo) { emitWarn(tokenizer, CompileWarnCodes.USE_MODULO_SYNTAX, context.lastStartLoc, 0, getTokenCaption(token2)); modulo = null; } break; case 7: if (token2.value == null) { emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token2)); } node.items.push(parseLiteral(tokenizer, token2.value || "")); break; case 8: { const parsed = parseLinked(tokenizer); node.items.push(parsed.node); nextToken = parsed.nextConsumeToken || null; break; } } } while (context.currentType !== 14 && context.currentType !== 1); const endOffset = context.currentType === 1 ? context.lastOffset : tokenizer.currentOffset(); const endLoc = context.currentType === 1 ? context.lastEndLoc : tokenizer.currentPosition(); endNode(node, endOffset, endLoc); return node; } function parsePlural(tokenizer, offset2, loc, msgNode) { const context = tokenizer.context(); let hasEmptyMessage = msgNode.items.length === 0; const node = startNode(1, offset2, loc); node.cases = []; node.cases.push(msgNode); do { const msg = parseMessage(tokenizer); if (!hasEmptyMessage) { hasEmptyMessage = msg.items.length === 0; } node.cases.push(msg); } while (context.currentType !== 14); if (hasEmptyMessage) { emitError(tokenizer, CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL, loc, 0); } endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); return node; } function parseResource(tokenizer) { const context = tokenizer.context(); const { offset: offset2, startLoc } = context; const msgNode = parseMessage(tokenizer); if (context.currentType === 14) { return msgNode; } else { return parsePlural(tokenizer, offset2, startLoc, msgNode); } } function parse2(source) { const tokenizer = createTokenizer(source, assign({}, options)); const context = tokenizer.context(); const node = startNode(0, context.offset, context.startLoc); if (location2 && node.loc) { node.loc.source = source; } node.body = parseResource(tokenizer); if (options.onCacheKey) { node.cacheKey = options.onCacheKey(source); } if (context.currentType !== 14) { emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, source[context.offset] || ""); } endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); return node; } return { parse: parse2 }; } function getTokenCaption(token2) { if (token2.type === 14) { return "EOF"; } const name = (token2.value || "").replace(/\r?\n/gu, "\\n"); return name.length > 10 ? name.slice(0, 9) + "\u2026" : name; } function createTransformer(ast, options = {}) { const _context = { ast, helpers: /* @__PURE__ */ new Set() }; const context = () => _context; const helper = (name) => { _context.helpers.add(name); return name; }; return { context, helper }; } function traverseNodes(nodes, transformer) { for (let i2 = 0; i2 < nodes.length; i2++) { traverseNode(nodes[i2], transformer); } } function traverseNode(node, transformer) { switch (node.type) { case 1: traverseNodes(node.cases, transformer); transformer.helper("plural"); break; case 2: traverseNodes(node.items, transformer); break; case 6: { const linked = node; traverseNode(linked.key, transformer); transformer.helper("linked"); transformer.helper("type"); break; } case 5: transformer.helper("interpolate"); transformer.helper("list"); break; case 4: transformer.helper("interpolate"); transformer.helper("named"); break; } } function transform(ast, options = {}) { const transformer = createTransformer(ast); transformer.helper("normalize"); ast.body && traverseNode(ast.body, transformer); const context = transformer.context(); ast.helpers = Array.from(context.helpers); } function optimize(ast) { const body = ast.body; if (body.type === 2) { optimizeMessageNode(body); } else { body.cases.forEach((c2) => optimizeMessageNode(c2)); } return ast; } function optimizeMessageNode(message) { if (message.items.length === 1) { const item = message.items[0]; if (item.type === 3 || item.type === 9) { message.static = item.value; delete item.value; } } else { const values = []; for (let i2 = 0; i2 < message.items.length; i2++) { const item = message.items[i2]; if (!(item.type === 3 || item.type === 9)) { break; } if (item.value == null) { break; } values.push(item.value); } if (values.length === message.items.length) { message.static = join(values); for (let i2 = 0; i2 < message.items.length; i2++) { const item = message.items[i2]; if (item.type === 3 || item.type === 9) { delete item.value; } } } } } const ERROR_DOMAIN$1 = "minifier"; function minify(node) { node.t = node.type; switch (node.type) { case 0: { const resource = node; minify(resource.body); resource.b = resource.body; delete resource.body; break; } case 1: { const plural = node; const cases = plural.cases; for (let i2 = 0; i2 < cases.length; i2++) { minify(cases[i2]); } plural.c = cases; delete plural.cases; break; } case 2: { const message = node; const items = message.items; for (let i2 = 0; i2 < items.length; i2++) { minify(items[i2]); } message.i = items; delete message.items; if (message.static) { message.s = message.static; delete message.static; } break; } case 3: case 9: case 8: case 7: { const valueNode = node; if (valueNode.value) { valueNode.v = valueNode.value; delete valueNode.value; } break; } case 6: { const linked = node; minify(linked.key); linked.k = linked.key; delete linked.key; if (linked.modifier) { minify(linked.modifier); linked.m = linked.modifier; delete linked.modifier; } break; } case 5: { const list = node; list.i = list.index; delete list.index; break; } case 4: { const named = node; named.k = named.key; delete named.key; break; } default: { throw createCompileError(CompileErrorCodes.UNHANDLED_MINIFIER_NODE_TYPE, null, { domain: ERROR_DOMAIN$1, args: [node.type] }); } } delete node.type; } const ERROR_DOMAIN = "parser"; function createCodeGenerator(ast, options) { const { sourceMap, filename, breakLineCode, needIndent: _needIndent } = options; const location2 = options.location !== false; const _context = { filename, code: "", column: 1, line: 1, offset: 0, map: void 0, breakLineCode, needIndent: _needIndent, indentLevel: 0 }; if (location2 && ast.loc) { _context.source = ast.loc.source; } const context = () => _context; function push(code2, node) { _context.code += code2; } function _newline(n2, withBreakLine = true) { const _breakLineCode = withBreakLine ? breakLineCode : ""; push(_needIndent ? _breakLineCode + ` `.repeat(n2) : _breakLineCode); } function indent2(withNewLine = true) { const level = ++_context.indentLevel; withNewLine && _newline(level); } function deindent(withNewLine = true) { const level = --_context.indentLevel; withNewLine && _newline(level); } function newline() { _newline(_context.indentLevel); } const helper = (key) => `_${key}`; const needIndent = () => _context.needIndent; return { context, push, indent: indent2, deindent, newline, helper, needIndent }; } function generateLinkedNode(generator, node) { const { helper } = generator; generator.push(`${helper("linked")}(`); generateNode(generator, node.key); if (node.modifier) { generator.push(`, `); generateNode(generator, node.modifier); generator.push(`, _type`); } else { generator.push(`, undefined, _type`); } generator.push(`)`); } function generateMessageNode(generator, node) { const { helper, needIndent } = generator; generator.push(`${helper("normalize")}([`); generator.indent(needIndent()); const length = node.items.length; for (let i2 = 0; i2 < length; i2++) { generateNode(generator, node.items[i2]); if (i2 === length - 1) { break; } generator.push(", "); } generator.deindent(needIndent()); generator.push("])"); } function generatePluralNode(generator, node) { const { helper, needIndent } = generator; if (node.cases.length > 1) { generator.push(`${helper("plural")}([`); generator.indent(needIndent()); const length = node.cases.length; for (let i2 = 0; i2 < length; i2++) { generateNode(generator, node.cases[i2]); if (i2 === length - 1) { break; } generator.push(", "); } generator.deindent(needIndent()); generator.push(`])`); } } function generateResource(generator, node) { if (node.body) { generateNode(generator, node.body); } else { generator.push("null"); } } function generateNode(generator, node) { const { helper } = generator; switch (node.type) { case 0: generateResource(generator, node); break; case 1: generatePluralNode(generator, node); break; case 2: generateMessageNode(generator, node); break; case 6: generateLinkedNode(generator, node); break; case 8: generator.push(JSON.stringify(node.value), node); break; case 7: generator.push(JSON.stringify(node.value), node); break; case 5: generator.push(`${helper("interpolate")}(${helper("list")}(${node.index}))`, node); break; case 4: generator.push(`${helper("interpolate")}(${helper("named")}(${JSON.stringify(node.key)}))`, node); break; case 9: generator.push(JSON.stringify(node.value), node); break; case 3: generator.push(JSON.stringify(node.value), node); break; default: { throw createCompileError(CompileErrorCodes.UNHANDLED_CODEGEN_NODE_TYPE, null, { domain: ERROR_DOMAIN, args: [node.type] }); } } } const generate = (ast, options = {}) => { const mode = isString(options.mode) ? options.mode : "normal"; const filename = isString(options.filename) ? options.filename : "message.intl"; const sourceMap = !!options.sourceMap; const breakLineCode = options.breakLineCode != null ? options.breakLineCode : mode === "arrow" ? ";" : "\n"; const needIndent = options.needIndent ? options.needIndent : mode !== "arrow"; const helpers = ast.helpers || []; const generator = createCodeGenerator(ast, { mode, filename, sourceMap, breakLineCode, needIndent }); generator.push(mode === "normal" ? `function __msg__ (ctx) {` : `(ctx) => {`); generator.indent(needIndent); if (helpers.length > 0) { generator.push(`const { ${join(helpers.map((s) => `${s}: _${s}`), ", ")} } = ctx`); generator.newline(); } generator.push(`return `); generateNode(generator, ast); generator.deindent(needIndent); generator.push(`}`); delete ast.helpers; const { code: code2, map: map2 } = generator.context(); return { ast, code: code2, map: map2 ? map2.toJSON() : void 0 }; }; function baseCompile$1(source, options = {}) { const assignedOptions = assign({}, options); const jit = !!assignedOptions.jit; const enalbeMinify = !!assignedOptions.minify; const enambeOptimize = assignedOptions.optimize == null ? true : assignedOptions.optimize; const parser = createParser(assignedOptions); const ast = parser.parse(source); if (!jit) { transform(ast, assignedOptions); return generate(ast, assignedOptions); } else { enambeOptimize && optimize(ast); enalbeMinify && minify(ast); return { ast, code: "" }; } } /*! * core-base v9.14.2 * (c) 2024 kazuya kawaguchi * Released under the MIT License. */ function initFeatureFlags$1() { if (typeof __INTLIFY_PROD_DEVTOOLS__ !== "boolean") { getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false; } if (typeof __INTLIFY_JIT_COMPILATION__ !== "boolean") { getGlobalThis().__INTLIFY_JIT_COMPILATION__ = false; } if (typeof __INTLIFY_DROP_MESSAGE_COMPILER__ !== "boolean") { getGlobalThis().__INTLIFY_DROP_MESSAGE_COMPILER__ = false; } } const pathStateMachine = []; pathStateMachine[0] = { ["w"]: [0], ["i"]: [3, 0], ["["]: [4], ["o"]: [7] }; pathStateMachine[1] = { ["w"]: [1], ["."]: [2], ["["]: [4], ["o"]: [7] }; pathStateMachine[2] = { ["w"]: [2], ["i"]: [3, 0], ["0"]: [3, 0] }; pathStateMachine[3] = { ["i"]: [3, 0], ["0"]: [3, 0], ["w"]: [1, 1], ["."]: [2, 1], ["["]: [4, 1], ["o"]: [7, 1] }; pathStateMachine[4] = { ["'"]: [5, 0], ['"']: [6, 0], ["["]: [ 4, 2 ], ["]"]: [1, 3], ["o"]: 8, ["l"]: [4, 0] }; pathStateMachine[5] = { ["'"]: [4, 0], ["o"]: 8, ["l"]: [5, 0] }; pathStateMachine[6] = { ['"']: [4, 0], ["o"]: 8, ["l"]: [6, 0] }; const literalValueRE = /^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/; function isLiteral(exp) { return literalValueRE.test(exp); } function stripQuotes(str) { const a2 = str.charCodeAt(0); const b = str.charCodeAt(str.length - 1); return a2 === b && (a2 === 34 || a2 === 39) ? str.slice(1, -1) : str; } function getPathCharType(ch) { if (ch === void 0 || ch === null) { return "o"; } const code2 = ch.charCodeAt(0); switch (code2) { case 91: case 93: case 46: case 34: case 39: return ch; case 95: case 36: case 45: return "i"; case 9: case 10: case 13: case 160: case 65279: case 8232: case 8233: return "w"; } return "i"; } function formatSubPath(path) { const trimmed = path.trim(); if (path.charAt(0) === "0" && isNaN(parseInt(path))) { return false; } return isLiteral(trimmed) ? stripQuotes(trimmed) : "*" + trimmed; } function parse$1(path) { const keys2 = []; let index2 = -1; let mode = 0; let subPathDepth = 0; let c2; let key; let newChar; let type; let transition; let action; let typeMap; const actions2 = []; actions2[0] = () => { if (key === void 0) { key = newChar; } else { key += newChar; } }; actions2[1] = () => { if (key !== void 0) { keys2.push(key); key = void 0; } }; actions2[2] = () => { actions2[0](); subPathDepth++; }; actions2[3] = () => { if (subPathDepth > 0) { subPathDepth--; mode = 4; actions2[0](); } else { subPathDepth = 0; if (key === void 0) { return false; } key = formatSubPath(key); if (key === false) { return false; } else { actions2[1](); } } }; function maybeUnescapeQuote() { const nextChar = path[index2 + 1]; if (mode === 5 && nextChar === "'" || mode === 6 && nextChar === '"') { index2++; newChar = "\\" + nextChar; actions2[0](); return true; } } while (mode !== null) { index2++; c2 = path[index2]; if (c2 === "\\" && maybeUnescapeQuote()) { continue; } type = getPathCharType(c2); typeMap = pathStateMachine[mode]; transition = typeMap[type] || typeMap["l"] || 8; if (transition === 8) { return; } mode = transition[0]; if (transition[1] !== void 0) { action = actions2[transition[1]]; if (action) { newChar = c2; if (action() === false) { return; } } } if (mode === 7) { return keys2; } } } const cache = /* @__PURE__ */ new Map(); function resolveWithKeyValue(obj, path) { return isObject$2(obj) ? obj[path] : null; } function resolveValue$1(obj, path) { if (!isObject$2(obj)) { return null; } let hit = cache.get(path); if (!hit) { hit = parse$1(path); if (hit) { cache.set(path, hit); } } if (!hit) { return null; } const len = hit.length; let last = obj; let i2 = 0; while (i2 < len) { const val = last[hit[i2]]; if (val === void 0) { return null; } if (isFunction(last)) { return null; } last = val; i2++; } return last; } const DEFAULT_MODIFIER = (str) => str; const DEFAULT_MESSAGE = (ctx) => ""; const DEFAULT_MESSAGE_DATA_TYPE = "text"; const DEFAULT_NORMALIZE = (values) => values.length === 0 ? "" : join$1(values); const DEFAULT_INTERPOLATE = toDisplayString; function pluralDefault(choice, choicesLength) { choice = Math.abs(choice); if (choicesLength === 2) { return choice ? choice > 1 ? 1 : 0 : 1; } return choice ? Math.min(choice, 2) : 0; } function getPluralIndex(options) { const index2 = isNumber(options.pluralIndex) ? options.pluralIndex : -1; return options.named && (isNumber(options.named.count) || isNumber(options.named.n)) ? isNumber(options.named.count) ? options.named.count : isNumber(options.named.n) ? options.named.n : index2 : index2; } function normalizeNamed(pluralIndex, props) { if (!props.count) { props.count = pluralIndex; } if (!props.n) { props.n = pluralIndex; } } function createMessageContext(options = {}) { const locale2 = options.locale; const pluralIndex = getPluralIndex(options); const pluralRule = isObject$2(options.pluralRules) && isString$1(locale2) && isFunction(options.pluralRules[locale2]) ? options.pluralRules[locale2] : pluralDefault; const orgPluralRule = isObject$2(options.pluralRules) && isString$1(locale2) && isFunction(options.pluralRules[locale2]) ? pluralDefault : void 0; const plural = (messages) => { return messages[pluralRule(pluralIndex, messages.length, orgPluralRule)]; }; const _list = options.list || []; const list = (index2) => _list[index2]; const _named = options.named || create(); isNumber(options.pluralIndex) && normalizeNamed(pluralIndex, _named); const named = (key) => _named[key]; function message(key) { const msg = isFunction(options.messages) ? options.messages(key) : isObject$2(options.messages) ? options.messages[key] : false; return !msg ? options.parent ? options.parent.message(key) : DEFAULT_MESSAGE : msg; } const _modifier = (name) => options.modifiers ? options.modifiers[name] : DEFAULT_MODIFIER; const normalize2 = isPlainObject(options.processor) && isFunction(options.processor.normalize) ? options.processor.normalize : DEFAULT_NORMALIZE; const interpolate = isPlainObject(options.processor) && isFunction(options.processor.interpolate) ? options.processor.interpolate : DEFAULT_INTERPOLATE; const type = isPlainObject(options.processor) && isString$1(options.processor.type) ? options.processor.type : DEFAULT_MESSAGE_DATA_TYPE; const linked = (key, ...args) => { const [arg1, arg2] = args; let type2 = "text"; let modifier = ""; if (args.length === 1) { if (isObject$2(arg1)) { modifier = arg1.modifier || modifier; type2 = arg1.type || type2; } else if (isString$1(arg1)) { modifier = arg1 || modifier; } } else if (args.length === 2) { if (isString$1(arg1)) { modifier = arg1 || modifier; } if (isString$1(arg2)) { type2 = arg2 || type2; } } const ret = message(key)(ctx); const msg = type2 === "vnode" && isArray(ret) && modifier ? ret[0] : ret; return modifier ? _modifier(modifier)(msg, type2) : msg; }; const ctx = { ["list"]: list, ["named"]: named, ["plural"]: plural, ["linked"]: linked, ["message"]: message, ["type"]: type, ["interpolate"]: interpolate, ["normalize"]: normalize2, ["values"]: assign$1(create(), _list, _named) }; return ctx; } let devtools = null; function setDevToolsHook(hook) { devtools = hook; } function initI18nDevTools(i18n2, version2, meta) { devtools && devtools.emit("i18n:init", { timestamp: Date.now(), i18n: i18n2, version: version2, meta }); } const translateDevTools = /* @__PURE__ */ createDevToolsHook("function:translate"); function createDevToolsHook(hook) { return (payloads) => devtools && devtools.emit(hook, payloads); } const code$1$1 = CompileWarnCodes.__EXTEND_POINT__; const inc$1$1 = incrementer(code$1$1); const CoreWarnCodes = { NOT_FOUND_KEY: code$1$1, FALLBACK_TO_TRANSLATE: inc$1$1(), CANNOT_FORMAT_NUMBER: inc$1$1(), FALLBACK_TO_NUMBER_FORMAT: inc$1$1(), CANNOT_FORMAT_DATE: inc$1$1(), FALLBACK_TO_DATE_FORMAT: inc$1$1(), EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER: inc$1$1(), __EXTEND_POINT__: inc$1$1() }; const code$2 = CompileErrorCodes.__EXTEND_POINT__; const inc$2 = incrementer(code$2); const CoreErrorCodes = { INVALID_ARGUMENT: code$2, INVALID_DATE_ARGUMENT: inc$2(), INVALID_ISO_DATE_ARGUMENT: inc$2(), NOT_SUPPORT_NON_STRING_MESSAGE: inc$2(), NOT_SUPPORT_LOCALE_PROMISE_VALUE: inc$2(), NOT_SUPPORT_LOCALE_ASYNC_FUNCTION: inc$2(), NOT_SUPPORT_LOCALE_TYPE: inc$2(), __EXTEND_POINT__: inc$2() }; function createCoreError(code2) { return createCompileError(code2, null, void 0); } function getLocale(context, options) { return options.locale != null ? resolveLocale(options.locale) : resolveLocale(context.locale); } let _resolveLocale; function resolveLocale(locale2) { if (isString$1(locale2)) { return locale2; } else { if (isFunction(locale2)) { if (locale2.resolvedOnce && _resolveLocale != null) { return _resolveLocale; } else if (locale2.constructor.name === "Function") { const resolve2 = locale2(); if (isPromise(resolve2)) { throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_PROMISE_VALUE); } return _resolveLocale = resolve2; } else { throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION); } } else { throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_TYPE); } } } function fallbackWithSimple(ctx, fallback, start) { return [.../* @__PURE__ */ new Set([ start, ...isArray(fallback) ? fallback : isObject$2(fallback) ? Object.keys(fallback) : isString$1(fallback) ? [fallback] : [start] ])]; } function fallbackWithLocaleChain(ctx, fallback, start) { const startLocale = isString$1(start) ? start : DEFAULT_LOCALE; const context = ctx; if (!context.__localeChainCache) { context.__localeChainCache = /* @__PURE__ */ new Map(); } let chain = context.__localeChainCache.get(startLocale); if (!chain) { chain = []; let block2 = [start]; while (isArray(block2)) { block2 = appendBlockToChain(chain, block2, fallback); } const defaults2 = isArray(fallback) || !isPlainObject(fallback) ? fallback : fallback["default"] ? fallback["default"] : null; block2 = isString$1(defaults2) ? [defaults2] : defaults2; if (isArray(block2)) { appendBlockToChain(chain, block2, false); } context.__localeChainCache.set(startLocale, chain); } return chain; } function appendBlockToChain(chain, block2, blocks) { let follow = true; for (let i2 = 0; i2 < block2.length && isBoolean(follow); i2++) { const locale2 = block2[i2]; if (isString$1(locale2)) { follow = appendLocaleToChain(chain, block2[i2], blocks); } } return follow; } function appendLocaleToChain(chain, locale2, blocks) { let follow; const tokens2 = locale2.split("-"); do { const target = tokens2.join("-"); follow = appendItemToChain(chain, target, blocks); tokens2.splice(-1, 1); } while (tokens2.length && follow === true); return follow; } function appendItemToChain(chain, target, blocks) { let follow = false; if (!chain.includes(target)) { follow = true; if (target) { follow = target[target.length - 1] !== "!"; const locale2 = target.replace(/!/g, ""); chain.push(locale2); if ((isArray(blocks) || isPlainObject(blocks)) && blocks[locale2]) { follow = blocks[locale2]; } } } return follow; } const VERSION$1 = "9.14.2"; const NOT_REOSLVED = -1; const DEFAULT_LOCALE = "en-US"; const MISSING_RESOLVE_VALUE = ""; const capitalize = (str) => `${str.charAt(0).toLocaleUpperCase()}${str.substr(1)}`; function getDefaultLinkedModifiers() { return { upper: (val, type) => { return type === "text" && isString$1(val) ? val.toUpperCase() : type === "vnode" && isObject$2(val) && "__v_isVNode" in val ? val.children.toUpperCase() : val; }, lower: (val, type) => { return type === "text" && isString$1(val) ? val.toLowerCase() : type === "vnode" && isObject$2(val) && "__v_isVNode" in val ? val.children.toLowerCase() : val; }, capitalize: (val, type) => { return type === "text" && isString$1(val) ? capitalize(val) : type === "vnode" && isObject$2(val) && "__v_isVNode" in val ? capitalize(val.children) : val; } }; } let _compiler; function registerMessageCompiler(compiler) { _compiler = compiler; } let _resolver; function registerMessageResolver(resolver) { _resolver = resolver; } let _fallbacker; function registerLocaleFallbacker(fallbacker) { _fallbacker = fallbacker; } let _additionalMeta = null; const setAdditionalMeta = (meta) => { _additionalMeta = meta; }; const getAdditionalMeta = () => _additionalMeta; let _fallbackContext = null; const setFallbackContext = (context) => { _fallbackContext = context; }; const getFallbackContext = () => _fallbackContext; let _cid = 0; function createCoreContext(options = {}) { const onWarn = isFunction(options.onWarn) ? options.onWarn : warn; const version2 = isString$1(options.version) ? options.version : VERSION$1; const locale2 = isString$1(options.locale) || isFunction(options.locale) ? options.locale : DEFAULT_LOCALE; const _locale = isFunction(locale2) ? DEFAULT_LOCALE : locale2; const fallbackLocale = isArray(options.fallbackLocale) || isPlainObject(options.fallbackLocale) || isString$1(options.fallbackLocale) || options.fallbackLocale === false ? options.fallbackLocale : _locale; const messages = isPlainObject(options.messages) ? options.messages : createResources(_locale); const datetimeFormats = isPlainObject(options.datetimeFormats) ? options.datetimeFormats : createResources(_locale); const numberFormats = isPlainObject(options.numberFormats) ? options.numberFormats : createResources(_locale); const modifiers = assign$1(create(), options.modifiers, getDefaultLinkedModifiers()); const pluralRules = options.pluralRules || create(); const missing = isFunction(options.missing) ? options.missing : null; const missingWarn = isBoolean(options.missingWarn) || isRegExp(options.missingWarn) ? options.missingWarn : true; const fallbackWarn = isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn) ? options.fallbackWarn : true; const fallbackFormat = !!options.fallbackFormat; const unresolving = !!options.unresolving; const postTranslation = isFunction(options.postTranslation) ? options.postTranslation : null; const processor = isPlainObject(options.processor) ? options.processor : null; const warnHtmlMessage = isBoolean(options.warnHtmlMessage) ? options.warnHtmlMessage : true; const escapeParameter = !!options.escapeParameter; const messageCompiler = isFunction(options.messageCompiler) ? options.messageCompiler : _compiler; const messageResolver = isFunction(options.messageResolver) ? options.messageResolver : _resolver || resolveWithKeyValue; const localeFallbacker = isFunction(options.localeFallbacker) ? options.localeFallbacker : _fallbacker || fallbackWithSimple; const fallbackContext = isObject$2(options.fallbackContext) ? options.fallbackContext : void 0; const internalOptions = options; const __datetimeFormatters = isObject$2(internalOptions.__datetimeFormatters) ? internalOptions.__datetimeFormatters : /* @__PURE__ */ new Map(); const __numberFormatters = isObject$2(internalOptions.__numberFormatters) ? internalOptions.__numberFormatters : /* @__PURE__ */ new Map(); const __meta = isObject$2(internalOptions.__meta) ? internalOptions.__meta : {}; _cid++; const context = { version: version2, cid: _cid, locale: locale2, fallbackLocale, messages, modifiers, pluralRules, missing, missingWarn, fallbackWarn, fallbackFormat, unresolving, postTranslation, processor, warnHtmlMessage, escapeParameter, messageCompiler, messageResolver, localeFallbacker, fallbackContext, onWarn, __meta }; { context.datetimeFormats = datetimeFormats; context.numberFormats = numberFormats; context.__datetimeFormatters = __datetimeFormatters; context.__numberFormatters = __numberFormatters; } if (__INTLIFY_PROD_DEVTOOLS__) { initI18nDevTools(context, version2, __meta); } return context; } const createResources = (locale2) => ({ [locale2]: create() }); function handleMissing(context, key, locale2, missingWarn, type) { const { missing, onWarn } = context; if (missing !== null) { const ret = missing(context, locale2, key, type); return isString$1(ret) ? ret : key; } else { return key; } } function updateFallbackLocale(ctx, locale2, fallback) { const context = ctx; context.__localeChainCache = /* @__PURE__ */ new Map(); ctx.localeFallbacker(ctx, fallback, locale2); } function isAlmostSameLocale(locale2, compareLocale) { if (locale2 === compareLocale) return false; return locale2.split("-")[0] === compareLocale.split("-")[0]; } function isImplicitFallback(targetLocale, locales2) { const index2 = locales2.indexOf(targetLocale); if (index2 === -1) { return false; } for (let i2 = index2 + 1; i2 < locales2.length; i2++) { if (isAlmostSameLocale(targetLocale, locales2[i2])) { return true; } } return false; } function format(ast) { const msg = (ctx) => formatParts(ctx, ast); return msg; } function formatParts(ctx, ast) { const body = resolveBody(ast); if (body == null) { throw createUnhandleNodeError(0); } const type = resolveType(body); if (type === 1) { const plural = body; const cases = resolveCases(plural); return ctx.plural(cases.reduce((messages, c2) => [ ...messages, formatMessageParts(ctx, c2) ], [])); } else { return formatMessageParts(ctx, body); } } const PROPS_BODY = ["b", "body"]; function resolveBody(node) { return resolveProps(node, PROPS_BODY); } const PROPS_CASES = ["c", "cases"]; function resolveCases(node) { return resolveProps(node, PROPS_CASES, []); } function formatMessageParts(ctx, node) { const static_ = resolveStatic(node); if (static_ != null) { return ctx.type === "text" ? static_ : ctx.normalize([static_]); } else { const messages = resolveItems(node).reduce((acm, c2) => [...acm, formatMessagePart(ctx, c2)], []); return ctx.normalize(messages); } } const PROPS_STATIC = ["s", "static"]; function resolveStatic(node) { return resolveProps(node, PROPS_STATIC); } const PROPS_ITEMS = ["i", "items"]; function resolveItems(node) { return resolveProps(node, PROPS_ITEMS, []); } function formatMessagePart(ctx, node) { const type = resolveType(node); switch (type) { case 3: { return resolveValue(node, type); } case 9: { return resolveValue(node, type); } case 4: { const named = node; if (hasOwn(named, "k") && named.k) { return ctx.interpolate(ctx.named(named.k)); } if (hasOwn(named, "key") && named.key) { return ctx.interpolate(ctx.named(named.key)); } throw createUnhandleNodeError(type); } case 5: { const list = node; if (hasOwn(list, "i") && isNumber(list.i)) { return ctx.interpolate(ctx.list(list.i)); } if (hasOwn(list, "index") && isNumber(list.index)) { return ctx.interpolate(ctx.list(list.index)); } throw createUnhandleNodeError(type); } case 6: { const linked = node; const modifier = resolveLinkedModifier(linked); const key = resolveLinkedKey(linked); return ctx.linked(formatMessagePart(ctx, key), modifier ? formatMessagePart(ctx, modifier) : void 0, ctx.type); } case 7: { return resolveValue(node, type); } case 8: { return resolveValue(node, type); } default: throw new Error(`unhandled node on format message part: ${type}`); } } const PROPS_TYPE = ["t", "type"]; function resolveType(node) { return resolveProps(node, PROPS_TYPE); } const PROPS_VALUE = ["v", "value"]; function resolveValue(node, type) { const resolved = resolveProps(node, PROPS_VALUE); if (resolved) { return resolved; } else { throw createUnhandleNodeError(type); } } const PROPS_MODIFIER = ["m", "modifier"]; function resolveLinkedModifier(node) { return resolveProps(node, PROPS_MODIFIER); } const PROPS_KEY = ["k", "key"]; function resolveLinkedKey(node) { const resolved = resolveProps(node, PROPS_KEY); if (resolved) { return resolved; } else { throw createUnhandleNodeError(6); } } function resolveProps(node, props, defaultValue) { for (let i2 = 0; i2 < props.length; i2++) { const prop = props[i2]; if (hasOwn(node, prop) && node[prop] != null) { return node[prop]; } } return defaultValue; } function createUnhandleNodeError(type) { return new Error(`unhandled node type: ${type}`); } const defaultOnCacheKey = (message) => message; let compileCache = create(); function isMessageAST(val) { return isObject$2(val) && resolveType(val) === 0 && (hasOwn(val, "b") || hasOwn(val, "body")); } function baseCompile(message, options = {}) { let detectError = false; const onError = options.onError || defaultOnError; options.onError = (err) => { detectError = true; onError(err); }; return { ...baseCompile$1(message, options), detectError }; } const compileToFunction = (message, context) => { if (!isString$1(message)) { throw createCoreError(CoreErrorCodes.NOT_SUPPORT_NON_STRING_MESSAGE); } { isBoolean(context.warnHtmlMessage) ? context.warnHtmlMessage : true; const onCacheKey = context.onCacheKey || defaultOnCacheKey; const cacheKey = onCacheKey(message); const cached = compileCache[cacheKey]; if (cached) { return cached; } const { code: code2, detectError } = baseCompile(message, context); const msg = new Function(`return ${code2}`)(); return !detectError ? compileCache[cacheKey] = msg : msg; } }; function compile(message, context) { if (__INTLIFY_JIT_COMPILATION__ && !__INTLIFY_DROP_MESSAGE_COMPILER__ && isString$1(message)) { isBoolean(context.warnHtmlMessage) ? context.warnHtmlMessage : true; const onCacheKey = context.onCacheKey || defaultOnCacheKey; const cacheKey = onCacheKey(message); const cached = compileCache[cacheKey]; if (cached) { return cached; } const { ast, detectError } = baseCompile(message, { ...context, location: false, jit: true }); const msg = format(ast); return !detectError ? compileCache[cacheKey] = msg : msg; } else { const cacheKey = message.cacheKey; if (cacheKey) { const cached = compileCache[cacheKey]; if (cached) { return cached; } return compileCache[cacheKey] = format(message); } else { return format(message); } } } const NOOP_MESSAGE_FUNCTION = () => ""; const isMessageFunction = (val) => isFunction(val); function translate(context, ...args) { const { fallbackFormat, postTranslation, unresolving, messageCompiler, fallbackLocale, messages } = context; const [key, options] = parseTranslateArgs(...args); const missingWarn = isBoolean(options.missingWarn) ? options.missingWarn : context.missingWarn; const fallbackWarn = isBoolean(options.fallbackWarn) ? options.fallbackWarn : context.fallbackWarn; const escapeParameter = isBoolean(options.escapeParameter) ? options.escapeParameter : context.escapeParameter; const resolvedMessage = !!options.resolvedMessage; const defaultMsgOrKey = isString$1(options.default) || isBoolean(options.default) ? !isBoolean(options.default) ? options.default : !messageCompiler ? () => key : key : fallbackFormat ? !messageCompiler ? () => key : key : ""; const enableDefaultMsg = fallbackFormat || defaultMsgOrKey !== ""; const locale2 = getLocale(context, options); escapeParameter && escapeParams(options); let [formatScope, targetLocale, message] = !resolvedMessage ? resolveMessageFormat(context, key, locale2, fallbackLocale, fallbackWarn, missingWarn) : [ key, locale2, messages[locale2] || create() ]; let format2 = formatScope; let cacheBaseKey = key; if (!resolvedMessage && !(isString$1(format2) || isMessageAST(format2) || isMessageFunction(format2))) { if (enableDefaultMsg) { format2 = defaultMsgOrKey; cacheBaseKey = format2; } } if (!resolvedMessage && (!(isString$1(format2) || isMessageAST(format2) || isMessageFunction(format2)) || !isString$1(targetLocale))) { return unresolving ? NOT_REOSLVED : key; } let occurred = false; const onError = () => { occurred = true; }; const msg = !isMessageFunction(format2) ? compileMessageFormat(context, key, targetLocale, format2, cacheBaseKey, onError) : format2; if (occurred) { return format2; } const ctxOptions = getMessageContextOptions(context, targetLocale, message, options); const msgContext = createMessageContext(ctxOptions); const messaged = evaluateMessage(context, msg, msgContext); const ret = postTranslation ? postTranslation(messaged, key) : messaged; if (__INTLIFY_PROD_DEVTOOLS__) { const payloads = { timestamp: Date.now(), key: isString$1(key) ? key : isMessageFunction(format2) ? format2.key : "", locale: targetLocale || (isMessageFunction(format2) ? format2.locale : ""), format: isString$1(format2) ? format2 : isMessageFunction(format2) ? format2.source : "", message: ret }; payloads.meta = assign$1({}, context.__meta, getAdditionalMeta() || {}); translateDevTools(payloads); } return ret; } function escapeParams(options) { if (isArray(options.list)) { options.list = options.list.map((item) => isString$1(item) ? escapeHtml(item) : item); } else if (isObject$2(options.named)) { Object.keys(options.named).forEach((key) => { if (isString$1(options.named[key])) { options.named[key] = escapeHtml(options.named[key]); } }); } } function resolveMessageFormat(context, key, locale2, fallbackLocale, fallbackWarn, missingWarn) { const { messages, onWarn, messageResolver: resolveValue2, localeFallbacker } = context; const locales2 = localeFallbacker(context, fallbackLocale, locale2); let message = create(); let targetLocale; let format2 = null; const type = "translate"; for (let i2 = 0; i2 < locales2.length; i2++) { targetLocale = locales2[i2]; message = messages[targetLocale] || create(); if ((format2 = resolveValue2(message, key)) === null) { format2 = message[key]; } if (isString$1(format2) || isMessageAST(format2) || isMessageFunction(format2)) { break; } if (!isImplicitFallback(targetLocale, locales2)) { const missingRet = handleMissing( context, key, targetLocale, missingWarn, type ); if (missingRet !== key) { format2 = missingRet; } } } return [format2, targetLocale, message]; } function compileMessageFormat(context, key, targetLocale, format2, cacheBaseKey, onError) { const { messageCompiler, warnHtmlMessage } = context; if (isMessageFunction(format2)) { const msg2 = format2; msg2.locale = msg2.locale || targetLocale; msg2.key = msg2.key || key; return msg2; } if (messageCompiler == null) { const msg2 = () => format2; msg2.locale = targetLocale; msg2.key = key; return msg2; } const msg = messageCompiler(format2, getCompileContext(context, targetLocale, cacheBaseKey, format2, warnHtmlMessage, onError)); msg.locale = targetLocale; msg.key = key; msg.source = format2; return msg; } function evaluateMessage(context, msg, msgCtx) { const messaged = msg(msgCtx); return messaged; } function parseTranslateArgs(...args) { const [arg1, arg2, arg3] = args; const options = create(); if (!isString$1(arg1) && !isNumber(arg1) && !isMessageFunction(arg1) && !isMessageAST(arg1)) { throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT); } const key = isNumber(arg1) ? String(arg1) : isMessageFunction(arg1) ? arg1 : arg1; if (isNumber(arg2)) { options.plural = arg2; } else if (isString$1(arg2)) { options.default = arg2; } else if (isPlainObject(arg2) && !isEmptyObject(arg2)) { options.named = arg2; } else if (isArray(arg2)) { options.list = arg2; } if (isNumber(arg3)) { options.plural = arg3; } else if (isString$1(arg3)) { options.default = arg3; } else if (isPlainObject(arg3)) { assign$1(options, arg3); } return [key, options]; } function getCompileContext(context, locale2, key, source, warnHtmlMessage, onError) { return { locale: locale2, key, warnHtmlMessage, onError: (err) => { onError && onError(err); { throw err; } }, onCacheKey: (source2) => generateFormatCacheKey(locale2, key, source2) }; } function getMessageContextOptions(context, locale2, message, options) { const { modifiers, pluralRules, messageResolver: resolveValue2, fallbackLocale, fallbackWarn, missingWarn, fallbackContext } = context; const resolveMessage = (key) => { let val = resolveValue2(message, key); if (val == null && fallbackContext) { const [, , message2] = resolveMessageFormat(fallbackContext, key, locale2, fallbackLocale, fallbackWarn, missingWarn); val = resolveValue2(message2, key); } if (isString$1(val) || isMessageAST(val)) { let occurred = false; const onError = () => { occurred = true; }; const msg = compileMessageFormat(context, key, locale2, val, key, onError); return !occurred ? msg : NOOP_MESSAGE_FUNCTION; } else if (isMessageFunction(val)) { return val; } else { return NOOP_MESSAGE_FUNCTION; } }; const ctxOptions = { locale: locale2, modifiers, pluralRules, messages: resolveMessage }; if (context.processor) { ctxOptions.processor = context.processor; } if (options.list) { ctxOptions.list = options.list; } if (options.named) { ctxOptions.named = options.named; } if (isNumber(options.plural)) { ctxOptions.pluralIndex = options.plural; } return ctxOptions; } function datetime(context, ...args) { const { datetimeFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context; const { __datetimeFormatters } = context; const [key, value, options, overrides] = parseDateTimeArgs(...args); const missingWarn = isBoolean(options.missingWarn) ? options.missingWarn : context.missingWarn; isBoolean(options.fallbackWarn) ? options.fallbackWarn : context.fallbackWarn; const part = !!options.part; const locale2 = getLocale(context, options); const locales2 = localeFallbacker( context, fallbackLocale, locale2 ); if (!isString$1(key) || key === "") { return new Intl.DateTimeFormat(locale2, overrides).format(value); } let datetimeFormat = {}; let targetLocale; let format2 = null; const type = "datetime format"; for (let i2 = 0; i2 < locales2.length; i2++) { targetLocale = locales2[i2]; datetimeFormat = datetimeFormats[targetLocale] || {}; format2 = datetimeFormat[key]; if (isPlainObject(format2)) break; handleMissing(context, key, targetLocale, missingWarn, type); } if (!isPlainObject(format2) || !isString$1(targetLocale)) { return unresolving ? NOT_REOSLVED : key; } let id = `${targetLocale}__${key}`; if (!isEmptyObject(overrides)) { id = `${id}__${JSON.stringify(overrides)}`; } let formatter = __datetimeFormatters.get(id); if (!formatter) { formatter = new Intl.DateTimeFormat(targetLocale, assign$1({}, format2, overrides)); __datetimeFormatters.set(id, formatter); } return !part ? formatter.format(value) : formatter.formatToParts(value); } const DATETIME_FORMAT_OPTIONS_KEYS = [ "localeMatcher", "weekday", "era", "year", "month", "day", "hour", "minute", "second", "timeZoneName", "formatMatcher", "hour12", "timeZone", "dateStyle", "timeStyle", "calendar", "dayPeriod", "numberingSystem", "hourCycle", "fractionalSecondDigits" ]; function parseDateTimeArgs(...args) { const [arg1, arg2, arg3, arg4] = args; const options = create(); let overrides = create(); let value; if (isString$1(arg1)) { const matches2 = arg1.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/); if (!matches2) { throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT); } const dateTime = matches2[3] ? matches2[3].trim().startsWith("T") ? `${matches2[1].trim()}${matches2[3].trim()}` : `${matches2[1].trim()}T${matches2[3].trim()}` : matches2[1].trim(); value = new Date(dateTime); try { value.toISOString(); } catch (e2) { throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT); } } else if (isDate(arg1)) { if (isNaN(arg1.getTime())) { throw createCoreError(CoreErrorCodes.INVALID_DATE_ARGUMENT); } value = arg1; } else if (isNumber(arg1)) { value = arg1; } else { throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT); } if (isString$1(arg2)) { options.key = arg2; } else if (isPlainObject(arg2)) { Object.keys(arg2).forEach((key) => { if (DATETIME_FORMAT_OPTIONS_KEYS.includes(key)) { overrides[key] = arg2[key]; } else { options[key] = arg2[key]; } }); } if (isString$1(arg3)) { options.locale = arg3; } else if (isPlainObject(arg3)) { overrides = arg3; } if (isPlainObject(arg4)) { overrides = arg4; } return [options.key || "", value, options, overrides]; } function clearDateTimeFormat(ctx, locale2, format2) { const context = ctx; for (const key in format2) { const id = `${locale2}__${key}`; if (!context.__datetimeFormatters.has(id)) { continue; } context.__datetimeFormatters.delete(id); } } function number(context, ...args) { const { numberFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context; const { __numberFormatters } = context; const [key, value, options, overrides] = parseNumberArgs(...args); const missingWarn = isBoolean(options.missingWarn) ? options.missingWarn : context.missingWarn; isBoolean(options.fallbackWarn) ? options.fallbackWarn : context.fallbackWarn; const part = !!options.part; const locale2 = getLocale(context, options); const locales2 = localeFallbacker( context, fallbackLocale, locale2 ); if (!isString$1(key) || key === "") { return new Intl.NumberFormat(locale2, overrides).format(value); } let numberFormat = {}; let targetLocale; let format2 = null; const type = "number format"; for (let i2 = 0; i2 < locales2.length; i2++) { targetLocale = locales2[i2]; numberFormat = numberFormats[targetLocale] || {}; format2 = numberFormat[key]; if (isPlainObject(format2)) break; handleMissing(context, key, targetLocale, missingWarn, type); } if (!isPlainObject(format2) || !isString$1(targetLocale)) { return unresolving ? NOT_REOSLVED : key; } let id = `${targetLocale}__${key}`; if (!isEmptyObject(overrides)) { id = `${id}__${JSON.stringify(overrides)}`; } let formatter = __numberFormatters.get(id); if (!formatter) { formatter = new Intl.NumberFormat(targetLocale, assign$1({}, format2, overrides)); __numberFormatters.set(id, formatter); } return !part ? formatter.format(value) : formatter.formatToParts(value); } const NUMBER_FORMAT_OPTIONS_KEYS = [ "localeMatcher", "style", "currency", "currencyDisplay", "currencySign", "useGrouping", "minimumIntegerDigits", "minimumFractionDigits", "maximumFractionDigits", "minimumSignificantDigits", "maximumSignificantDigits", "compactDisplay", "notation", "signDisplay", "unit", "unitDisplay", "roundingMode", "roundingPriority", "roundingIncrement", "trailingZeroDisplay" ]; function parseNumberArgs(...args) { const [arg1, arg2, arg3, arg4] = args; const options = create(); let overrides = create(); if (!isNumber(arg1)) { throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT); } const value = arg1; if (isString$1(arg2)) { options.key = arg2; } else if (isPlainObject(arg2)) { Object.keys(arg2).forEach((key) => { if (NUMBER_FORMAT_OPTIONS_KEYS.includes(key)) { overrides[key] = arg2[key]; } else { options[key] = arg2[key]; } }); } if (isString$1(arg3)) { options.locale = arg3; } else if (isPlainObject(arg3)) { overrides = arg3; } if (isPlainObject(arg4)) { overrides = arg4; } return [options.key || "", value, options, overrides]; } function clearNumberFormat(ctx, locale2, format2) { const context = ctx; for (const key in format2) { const id = `${locale2}__${key}`; if (!context.__numberFormatters.has(id)) { continue; } context.__numberFormatters.delete(id); } } { initFeatureFlags$1(); } /*! * vue-i18n v9.14.2 * (c) 2024 kazuya kawaguchi * Released under the MIT License. */ const VERSION = "9.14.2"; function initFeatureFlags() { if (typeof __VUE_I18N_FULL_INSTALL__ !== "boolean") { getGlobalThis().__VUE_I18N_FULL_INSTALL__ = true; } if (typeof __VUE_I18N_LEGACY_API__ !== "boolean") { getGlobalThis().__VUE_I18N_LEGACY_API__ = true; } if (typeof __INTLIFY_JIT_COMPILATION__ !== "boolean") { getGlobalThis().__INTLIFY_JIT_COMPILATION__ = false; } if (typeof __INTLIFY_DROP_MESSAGE_COMPILER__ !== "boolean") { getGlobalThis().__INTLIFY_DROP_MESSAGE_COMPILER__ = false; } if (typeof __INTLIFY_PROD_DEVTOOLS__ !== "boolean") { getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false; } } const code$1 = CoreWarnCodes.__EXTEND_POINT__; const inc$1 = incrementer(code$1); ({ FALLBACK_TO_ROOT: code$1, NOT_SUPPORTED_PRESERVE: inc$1(), NOT_SUPPORTED_FORMATTER: inc$1(), NOT_SUPPORTED_PRESERVE_DIRECTIVE: inc$1(), NOT_SUPPORTED_GET_CHOICE_INDEX: inc$1(), COMPONENT_NAME_LEGACY_COMPATIBLE: inc$1(), NOT_FOUND_PARENT_SCOPE: inc$1(), IGNORE_OBJ_FLATTEN: inc$1(), NOTICE_DROP_ALLOW_COMPOSITION: inc$1(), NOTICE_DROP_TRANSLATE_EXIST_COMPATIBLE_FLAG: inc$1() }); const code = CoreErrorCodes.__EXTEND_POINT__; const inc = incrementer(code); const I18nErrorCodes = { UNEXPECTED_RETURN_TYPE: code, INVALID_ARGUMENT: inc(), MUST_BE_CALL_SETUP_TOP: inc(), NOT_INSTALLED: inc(), NOT_AVAILABLE_IN_LEGACY_MODE: inc(), REQUIRED_VALUE: inc(), INVALID_VALUE: inc(), CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN: inc(), NOT_INSTALLED_WITH_PROVIDE: inc(), UNEXPECTED_ERROR: inc(), NOT_COMPATIBLE_LEGACY_VUE_I18N: inc(), BRIDGE_SUPPORT_VUE_2_ONLY: inc(), MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION: inc(), NOT_AVAILABLE_COMPOSITION_IN_LEGACY: inc(), __EXTEND_POINT__: inc() }; function createI18nError(code2, ...args) { return createCompileError(code2, null, void 0); } const TranslateVNodeSymbol = /* @__PURE__ */ makeSymbol("__translateVNode"); const DatetimePartsSymbol = /* @__PURE__ */ makeSymbol("__datetimeParts"); const NumberPartsSymbol = /* @__PURE__ */ makeSymbol("__numberParts"); const SetPluralRulesSymbol = makeSymbol("__setPluralRules"); makeSymbol("__intlifyMeta"); const InejctWithOptionSymbol = /* @__PURE__ */ makeSymbol("__injectWithOption"); const DisposeSymbol = /* @__PURE__ */ makeSymbol("__dispose"); function handleFlatJson(obj) { if (!isObject$2(obj)) { return obj; } for (const key in obj) { if (!hasOwn(obj, key)) { continue; } if (!key.includes(".")) { if (isObject$2(obj[key])) { handleFlatJson(obj[key]); } } else { const subKeys = key.split("."); const lastIndex = subKeys.length - 1; let currentObj = obj; let hasStringValue = false; for (let i2 = 0; i2 < lastIndex; i2++) { if (!(subKeys[i2] in currentObj)) { currentObj[subKeys[i2]] = create(); } if (!isObject$2(currentObj[subKeys[i2]])) { hasStringValue = true; break; } currentObj = currentObj[subKeys[i2]]; } if (!hasStringValue) { currentObj[subKeys[lastIndex]] = obj[key]; delete obj[key]; } if (isObject$2(currentObj[subKeys[lastIndex]])) { handleFlatJson(currentObj[subKeys[lastIndex]]); } } } return obj; } function getLocaleMessages(locale2, options) { const { messages, __i18n, messageResolver, flatJson } = options; const ret = isPlainObject(messages) ? messages : isArray(__i18n) ? create() : { [locale2]: create() }; if (isArray(__i18n)) { __i18n.forEach((custom) => { if ("locale" in custom && "resource" in custom) { const { locale: locale3, resource } = custom; if (locale3) { ret[locale3] = ret[locale3] || create(); deepCopy(resource, ret[locale3]); } else { deepCopy(resource, ret); } } else { isString$1(custom) && deepCopy(JSON.parse(custom), ret); } }); } if (messageResolver == null && flatJson) { for (const key in ret) { if (hasOwn(ret, key)) { handleFlatJson(ret[key]); } } } return ret; } function getComponentOptions(instance) { return instance.type; } function adjustI18nResources(gl, options, componentOptions) { let messages = isObject$2(options.messages) ? options.messages : create(); if ("__i18nGlobal" in componentOptions) { messages = getLocaleMessages(gl.locale.value, { messages, __i18n: componentOptions.__i18nGlobal }); } const locales2 = Object.keys(messages); if (locales2.length) { locales2.forEach((locale2) => { gl.mergeLocaleMessage(locale2, messages[locale2]); }); } { if (isObject$2(options.datetimeFormats)) { const locales3 = Object.keys(options.datetimeFormats); if (locales3.length) { locales3.forEach((locale2) => { gl.mergeDateTimeFormat(locale2, options.datetimeFormats[locale2]); }); } } if (isObject$2(options.numberFormats)) { const locales3 = Object.keys(options.numberFormats); if (locales3.length) { locales3.forEach((locale2) => { gl.mergeNumberFormat(locale2, options.numberFormats[locale2]); }); } } } } function createTextNode(key) { return createVNode(Text, null, key, 0); } const DEVTOOLS_META = "__INTLIFY_META__"; const NOOP_RETURN_ARRAY = () => []; const NOOP_RETURN_FALSE = () => false; let composerID = 0; function defineCoreMissingHandler(missing) { return (ctx, locale2, key, type) => { return missing(locale2, key, getCurrentInstance() || void 0, type); }; } const getMetaInfo = () => { const instance = getCurrentInstance(); let meta = null; return instance && (meta = getComponentOptions(instance)[DEVTOOLS_META]) ? { [DEVTOOLS_META]: meta } : null; }; function createComposer(options = {}, VueI18nLegacy) { const { __root, __injectWithOption } = options; const _isGlobal = __root === void 0; const flatJson = options.flatJson; const _ref = inBrowser ? ref : shallowRef; const translateExistCompatible = !!options.translateExistCompatible; let _inheritLocale = isBoolean(options.inheritLocale) ? options.inheritLocale : true; const _locale = _ref( __root && _inheritLocale ? __root.locale.value : isString$1(options.locale) ? options.locale : DEFAULT_LOCALE ); const _fallbackLocale = _ref( __root && _inheritLocale ? __root.fallbackLocale.value : isString$1(options.fallbackLocale) || isArray(options.fallbackLocale) || isPlainObject(options.fallbackLocale) || options.fallbackLocale === false ? options.fallbackLocale : _locale.value ); const _messages = _ref(getLocaleMessages(_locale.value, options)); const _datetimeFormats = _ref(isPlainObject(options.datetimeFormats) ? options.datetimeFormats : { [_locale.value]: {} }); const _numberFormats = _ref(isPlainObject(options.numberFormats) ? options.numberFormats : { [_locale.value]: {} }); let _missingWarn = __root ? __root.missingWarn : isBoolean(options.missingWarn) || isRegExp(options.missingWarn) ? options.missingWarn : true; let _fallbackWarn = __root ? __root.fallbackWarn : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn) ? options.fallbackWarn : true; let _fallbackRoot = __root ? __root.fallbackRoot : isBoolean(options.fallbackRoot) ? options.fallbackRoot : true; let _fallbackFormat = !!options.fallbackFormat; let _missing = isFunction(options.missing) ? options.missing : null; let _runtimeMissing = isFunction(options.missing) ? defineCoreMissingHandler(options.missing) : null; let _postTranslation = isFunction(options.postTranslation) ? options.postTranslation : null; let _warnHtmlMessage = __root ? __root.warnHtmlMessage : isBoolean(options.warnHtmlMessage) ? options.warnHtmlMessage : true; let _escapeParameter = !!options.escapeParameter; const _modifiers = __root ? __root.modifiers : isPlainObject(options.modifiers) ? options.modifiers : {}; let _pluralRules = options.pluralRules || __root && __root.pluralRules; let _context; const getCoreContext = () => { _isGlobal && setFallbackContext(null); const ctxOptions = { version: VERSION, locale: _locale.value, fallbackLocale: _fallbackLocale.value, messages: _messages.value, modifiers: _modifiers, pluralRules: _pluralRules, missing: _runtimeMissing === null ? void 0 : _runtimeMissing, missingWarn: _missingWarn, fallbackWarn: _fallbackWarn, fallbackFormat: _fallbackFormat, unresolving: true, postTranslation: _postTranslation === null ? void 0 : _postTranslation, warnHtmlMessage: _warnHtmlMessage, escapeParameter: _escapeParameter, messageResolver: options.messageResolver, messageCompiler: options.messageCompiler, __meta: { framework: "vue" } }; { ctxOptions.datetimeFormats = _datetimeFormats.value; ctxOptions.numberFormats = _numberFormats.value; ctxOptions.__datetimeFormatters = isPlainObject(_context) ? _context.__datetimeFormatters : void 0; ctxOptions.__numberFormatters = isPlainObject(_context) ? _context.__numberFormatters : void 0; } const ctx = createCoreContext(ctxOptions); _isGlobal && setFallbackContext(ctx); return ctx; }; _context = getCoreContext(); updateFallbackLocale(_context, _locale.value, _fallbackLocale.value); function trackReactivityValues() { return [ _locale.value, _fallbackLocale.value, _messages.value, _datetimeFormats.value, _numberFormats.value ]; } const locale2 = computed({ get: () => _locale.value, set: (val) => { _locale.value = val; _context.locale = _locale.value; } }); const fallbackLocale = computed({ get: () => _fallbackLocale.value, set: (val) => { _fallbackLocale.value = val; _context.fallbackLocale = _fallbackLocale.value; updateFallbackLocale(_context, _locale.value, val); } }); const messages = computed(() => _messages.value); const datetimeFormats = /* @__PURE__ */ computed(() => _datetimeFormats.value); const numberFormats = /* @__PURE__ */ computed(() => _numberFormats.value); function getPostTranslationHandler() { return isFunction(_postTranslation) ? _postTranslation : null; } function setPostTranslationHandler(handler) { _postTranslation = handler; _context.postTranslation = handler; } function getMissingHandler() { return _missing; } function setMissingHandler(handler) { if (handler !== null) { _runtimeMissing = defineCoreMissingHandler(handler); } _missing = handler; _context.missing = _runtimeMissing; } const wrapWithDeps = (fn, argumentParser, warnType, fallbackSuccess, fallbackFail, successCondition) => { trackReactivityValues(); let ret; try { if (__INTLIFY_PROD_DEVTOOLS__) { setAdditionalMeta(getMetaInfo()); } if (!_isGlobal) { _context.fallbackContext = __root ? getFallbackContext() : void 0; } ret = fn(_context); } finally { if (__INTLIFY_PROD_DEVTOOLS__) { setAdditionalMeta(null); } if (!_isGlobal) { _context.fallbackContext = void 0; } } if (warnType !== "translate exists" && isNumber(ret) && ret === NOT_REOSLVED || warnType === "translate exists" && !ret) { const [key, arg2] = argumentParser(); return __root && _fallbackRoot ? fallbackSuccess(__root) : fallbackFail(key); } else if (successCondition(ret)) { return ret; } else { throw createI18nError(I18nErrorCodes.UNEXPECTED_RETURN_TYPE); } }; function t2(...args) { return wrapWithDeps((context) => Reflect.apply(translate, null, [context, ...args]), () => parseTranslateArgs(...args), "translate", (root2) => Reflect.apply(root2.t, root2, [...args]), (key) => key, (val) => isString$1(val)); } function rt(...args) { const [arg1, arg2, arg3] = args; if (arg3 && !isObject$2(arg3)) { throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT); } return t2(...[arg1, arg2, assign$1({ resolvedMessage: true }, arg3 || {})]); } function d(...args) { return wrapWithDeps((context) => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), "datetime format", (root2) => Reflect.apply(root2.d, root2, [...args]), () => MISSING_RESOLVE_VALUE, (val) => isString$1(val)); } function n2(...args) { return wrapWithDeps((context) => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), "number format", (root2) => Reflect.apply(root2.n, root2, [...args]), () => MISSING_RESOLVE_VALUE, (val) => isString$1(val)); } function normalize2(values) { return values.map((val) => isString$1(val) || isNumber(val) || isBoolean(val) ? createTextNode(String(val)) : val); } const interpolate = (val) => val; const processor = { normalize: normalize2, interpolate, type: "vnode" }; function translateVNode(...args) { return wrapWithDeps( (context) => { let ret; const _context2 = context; try { _context2.processor = processor; ret = Reflect.apply(translate, null, [_context2, ...args]); } finally { _context2.processor = null; } return ret; }, () => parseTranslateArgs(...args), "translate", (root2) => root2[TranslateVNodeSymbol](...args), (key) => [createTextNode(key)], (val) => isArray(val) ); } function numberParts(...args) { return wrapWithDeps( (context) => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), "number format", (root2) => root2[NumberPartsSymbol](...args), NOOP_RETURN_ARRAY, (val) => isString$1(val) || isArray(val) ); } function datetimeParts(...args) { return wrapWithDeps( (context) => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), "datetime format", (root2) => root2[DatetimePartsSymbol](...args), NOOP_RETURN_ARRAY, (val) => isString$1(val) || isArray(val) ); } function setPluralRules(rules) { _pluralRules = rules; _context.pluralRules = _pluralRules; } function te(key, locale3) { return wrapWithDeps(() => { if (!key) { return false; } const targetLocale = isString$1(locale3) ? locale3 : _locale.value; const message = getLocaleMessage(targetLocale); const resolved = _context.messageResolver(message, key); return !translateExistCompatible ? isMessageAST(resolved) || isMessageFunction(resolved) || isString$1(resolved) : resolved != null; }, () => [key], "translate exists", (root2) => { return Reflect.apply(root2.te, root2, [key, locale3]); }, NOOP_RETURN_FALSE, (val) => isBoolean(val)); } function resolveMessages(key) { let messages2 = null; const locales2 = fallbackWithLocaleChain(_context, _fallbackLocale.value, _locale.value); for (let i2 = 0; i2 < locales2.length; i2++) { const targetLocaleMessages = _messages.value[locales2[i2]] || {}; const messageValue = _context.messageResolver(targetLocaleMessages, key); if (messageValue != null) { messages2 = messageValue; break; } } return messages2; } function tm(key) { const messages2 = resolveMessages(key); return messages2 != null ? messages2 : __root ? __root.tm(key) || {} : {}; } function getLocaleMessage(locale3) { return _messages.value[locale3] || {}; } function setLocaleMessage(locale3, message) { if (flatJson) { const _message = { [locale3]: message }; for (const key in _message) { if (hasOwn(_message, key)) { handleFlatJson(_message[key]); } } message = _message[locale3]; } _messages.value[locale3] = message; _context.messages = _messages.value; } function mergeLocaleMessage(locale3, message) { _messages.value[locale3] = _messages.value[locale3] || {}; const _message = { [locale3]: message }; if (flatJson) { for (const key in _message) { if (hasOwn(_message, key)) { handleFlatJson(_message[key]); } } } message = _message[locale3]; deepCopy(message, _messages.value[locale3]); _context.messages = _messages.value; } function getDateTimeFormat(locale3) { return _datetimeFormats.value[locale3] || {}; } function setDateTimeFormat(locale3, format2) { _datetimeFormats.value[locale3] = format2; _context.datetimeFormats = _datetimeFormats.value; clearDateTimeFormat(_context, locale3, format2); } function mergeDateTimeFormat(locale3, format2) { _datetimeFormats.value[locale3] = assign$1(_datetimeFormats.value[locale3] || {}, format2); _context.datetimeFormats = _datetimeFormats.value; clearDateTimeFormat(_context, locale3, format2); } function getNumberFormat(locale3) { return _numberFormats.value[locale3] || {}; } function setNumberFormat(locale3, format2) { _numberFormats.value[locale3] = format2; _context.numberFormats = _numberFormats.value; clearNumberFormat(_context, locale3, format2); } function mergeNumberFormat(locale3, format2) { _numberFormats.value[locale3] = assign$1(_numberFormats.value[locale3] || {}, format2); _context.numberFormats = _numberFormats.value; clearNumberFormat(_context, locale3, format2); } composerID++; if (__root && inBrowser) { watch(__root.locale, (val) => { if (_inheritLocale) { _locale.value = val; _context.locale = val; updateFallbackLocale(_context, _locale.value, _fallbackLocale.value); } }); watch(__root.fallbackLocale, (val) => { if (_inheritLocale) { _fallbackLocale.value = val; _context.fallbackLocale = val; updateFallbackLocale(_context, _locale.value, _fallbackLocale.value); } }); } const composer = { id: composerID, locale: locale2, fallbackLocale, get inheritLocale() { return _inheritLocale; }, set inheritLocale(val) { _inheritLocale = val; if (val && __root) { _locale.value = __root.locale.value; _fallbackLocale.value = __root.fallbackLocale.value; updateFallbackLocale(_context, _locale.value, _fallbackLocale.value); } }, get availableLocales() { return Object.keys(_messages.value).sort(); }, messages, get modifiers() { return _modifiers; }, get pluralRules() { return _pluralRules || {}; }, get isGlobal() { return _isGlobal; }, get missingWarn() { return _missingWarn; }, set missingWarn(val) { _missingWarn = val; _context.missingWarn = _missingWarn; }, get fallbackWarn() { return _fallbackWarn; }, set fallbackWarn(val) { _fallbackWarn = val; _context.fallbackWarn = _fallbackWarn; }, get fallbackRoot() { return _fallbackRoot; }, set fallbackRoot(val) { _fallbackRoot = val; }, get fallbackFormat() { return _fallbackFormat; }, set fallbackFormat(val) { _fallbackFormat = val; _context.fallbackFormat = _fallbackFormat; }, get warnHtmlMessage() { return _warnHtmlMessage; }, set warnHtmlMessage(val) { _warnHtmlMessage = val; _context.warnHtmlMessage = val; }, get escapeParameter() { return _escapeParameter; }, set escapeParameter(val) { _escapeParameter = val; _context.escapeParameter = val; }, t: t2, getLocaleMessage, setLocaleMessage, mergeLocaleMessage, getPostTranslationHandler, setPostTranslationHandler, getMissingHandler, setMissingHandler, [SetPluralRulesSymbol]: setPluralRules }; { composer.datetimeFormats = datetimeFormats; composer.numberFormats = numberFormats; composer.rt = rt; composer.te = te; composer.tm = tm; composer.d = d; composer.n = n2; composer.getDateTimeFormat = getDateTimeFormat; composer.setDateTimeFormat = setDateTimeFormat; composer.mergeDateTimeFormat = mergeDateTimeFormat; composer.getNumberFormat = getNumberFormat; composer.setNumberFormat = setNumberFormat; composer.mergeNumberFormat = mergeNumberFormat; composer[InejctWithOptionSymbol] = __injectWithOption; composer[TranslateVNodeSymbol] = translateVNode; composer[DatetimePartsSymbol] = datetimeParts; composer[NumberPartsSymbol] = numberParts; } return composer; } function convertComposerOptions(options) { const locale2 = isString$1(options.locale) ? options.locale : DEFAULT_LOCALE; const fallbackLocale = isString$1(options.fallbackLocale) || isArray(options.fallbackLocale) || isPlainObject(options.fallbackLocale) || options.fallbackLocale === false ? options.fallbackLocale : locale2; const missing = isFunction(options.missing) ? options.missing : void 0; const missingWarn = isBoolean(options.silentTranslationWarn) || isRegExp(options.silentTranslationWarn) ? !options.silentTranslationWarn : true; const fallbackWarn = isBoolean(options.silentFallbackWarn) || isRegExp(options.silentFallbackWarn) ? !options.silentFallbackWarn : true; const fallbackRoot = isBoolean(options.fallbackRoot) ? options.fallbackRoot : true; const fallbackFormat = !!options.formatFallbackMessages; const modifiers = isPlainObject(options.modifiers) ? options.modifiers : {}; const pluralizationRules = options.pluralizationRules; const postTranslation = isFunction(options.postTranslation) ? options.postTranslation : void 0; const warnHtmlMessage = isString$1(options.warnHtmlInMessage) ? options.warnHtmlInMessage !== "off" : true; const escapeParameter = !!options.escapeParameterHtml; const inheritLocale = isBoolean(options.sync) ? options.sync : true; let messages = options.messages; if (isPlainObject(options.sharedMessages)) { const sharedMessages = options.sharedMessages; const locales2 = Object.keys(sharedMessages); messages = locales2.reduce((messages2, locale3) => { const message = messages2[locale3] || (messages2[locale3] = {}); assign$1(message, sharedMessages[locale3]); return messages2; }, messages || {}); } const { __i18n, __root, __injectWithOption } = options; const datetimeFormats = options.datetimeFormats; const numberFormats = options.numberFormats; const flatJson = options.flatJson; const translateExistCompatible = options.translateExistCompatible; return { locale: locale2, fallbackLocale, messages, flatJson, datetimeFormats, numberFormats, missing, missingWarn, fallbackWarn, fallbackRoot, fallbackFormat, modifiers, pluralRules: pluralizationRules, postTranslation, warnHtmlMessage, escapeParameter, messageResolver: options.messageResolver, inheritLocale, translateExistCompatible, __i18n, __root, __injectWithOption }; } function createVueI18n(options = {}, VueI18nLegacy) { { const composer = createComposer(convertComposerOptions(options)); const { __extender } = options; const vueI18n = { id: composer.id, get locale() { return composer.locale.value; }, set locale(val) { composer.locale.value = val; }, get fallbackLocale() { return composer.fallbackLocale.value; }, set fallbackLocale(val) { composer.fallbackLocale.value = val; }, get messages() { return composer.messages.value; }, get datetimeFormats() { return composer.datetimeFormats.value; }, get numberFormats() { return composer.numberFormats.value; }, get availableLocales() { return composer.availableLocales; }, get formatter() { return { interpolate() { return []; } }; }, set formatter(val) { }, get missing() { return composer.getMissingHandler(); }, set missing(handler) { composer.setMissingHandler(handler); }, get silentTranslationWarn() { return isBoolean(composer.missingWarn) ? !composer.missingWarn : composer.missingWarn; }, set silentTranslationWarn(val) { composer.missingWarn = isBoolean(val) ? !val : val; }, get silentFallbackWarn() { return isBoolean(composer.fallbackWarn) ? !composer.fallbackWarn : composer.fallbackWarn; }, set silentFallbackWarn(val) { composer.fallbackWarn = isBoolean(val) ? !val : val; }, get modifiers() { return composer.modifiers; }, get formatFallbackMessages() { return composer.fallbackFormat; }, set formatFallbackMessages(val) { composer.fallbackFormat = val; }, get postTranslation() { return composer.getPostTranslationHandler(); }, set postTranslation(handler) { composer.setPostTranslationHandler(handler); }, get sync() { return composer.inheritLocale; }, set sync(val) { composer.inheritLocale = val; }, get warnHtmlInMessage() { return composer.warnHtmlMessage ? "warn" : "off"; }, set warnHtmlInMessage(val) { composer.warnHtmlMessage = val !== "off"; }, get escapeParameterHtml() { return composer.escapeParameter; }, set escapeParameterHtml(val) { composer.escapeParameter = val; }, get preserveDirectiveContent() { return true; }, set preserveDirectiveContent(val) { }, get pluralizationRules() { return composer.pluralRules || {}; }, __composer: composer, t(...args) { const [arg1, arg2, arg3] = args; const options2 = {}; let list = null; let named = null; if (!isString$1(arg1)) { throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT); } const key = arg1; if (isString$1(arg2)) { options2.locale = arg2; } else if (isArray(arg2)) { list = arg2; } else if (isPlainObject(arg2)) { named = arg2; } if (isArray(arg3)) { list = arg3; } else if (isPlainObject(arg3)) { named = arg3; } return Reflect.apply(composer.t, composer, [ key, list || named || {}, options2 ]); }, rt(...args) { return Reflect.apply(composer.rt, composer, [...args]); }, tc(...args) { const [arg1, arg2, arg3] = args; const options2 = { plural: 1 }; let list = null; let named = null; if (!isString$1(arg1)) { throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT); } const key = arg1; if (isString$1(arg2)) { options2.locale = arg2; } else if (isNumber(arg2)) { options2.plural = arg2; } else if (isArray(arg2)) { list = arg2; } else if (isPlainObject(arg2)) { named = arg2; } if (isString$1(arg3)) { options2.locale = arg3; } else if (isArray(arg3)) { list = arg3; } else if (isPlainObject(arg3)) { named = arg3; } return Reflect.apply(composer.t, composer, [ key, list || named || {}, options2 ]); }, te(key, locale2) { return composer.te(key, locale2); }, tm(key) { return composer.tm(key); }, getLocaleMessage(locale2) { return composer.getLocaleMessage(locale2); }, setLocaleMessage(locale2, message) { composer.setLocaleMessage(locale2, message); }, mergeLocaleMessage(locale2, message) { composer.mergeLocaleMessage(locale2, message); }, d(...args) { return Reflect.apply(composer.d, composer, [...args]); }, getDateTimeFormat(locale2) { return composer.getDateTimeFormat(locale2); }, setDateTimeFormat(locale2, format2) { composer.setDateTimeFormat(locale2, format2); }, mergeDateTimeFormat(locale2, format2) { composer.mergeDateTimeFormat(locale2, format2); }, n(...args) { return Reflect.apply(composer.n, composer, [...args]); }, getNumberFormat(locale2) { return composer.getNumberFormat(locale2); }, setNumberFormat(locale2, format2) { composer.setNumberFormat(locale2, format2); }, mergeNumberFormat(locale2, format2) { composer.mergeNumberFormat(locale2, format2); }, getChoiceIndex(choice, choicesLength) { return -1; } }; vueI18n.__extender = __extender; return vueI18n; } } const baseFormatProps = { tag: { type: [String, Object] }, locale: { type: String }, scope: { type: String, validator: (val) => val === "parent" || val === "global", default: "parent" }, i18n: { type: Object } }; function getInterpolateArg({ slots }, keys2) { if (keys2.length === 1 && keys2[0] === "default") { const ret = slots.default ? slots.default() : []; return ret.reduce((slot, current) => { return [ ...slot, ...current.type === Fragment ? current.children : [current] ]; }, []); } else { return keys2.reduce((arg, key) => { const slot = slots[key]; if (slot) { arg[key] = slot(); } return arg; }, create()); } } function getFragmentableTag(tag) { return Fragment; } const TranslationImpl = /* @__PURE__ */ defineComponent({ name: "i18n-t", props: assign$1({ keypath: { type: String, required: true }, plural: { type: [Number, String], validator: (val) => isNumber(val) || !isNaN(val) } }, baseFormatProps), setup(props, context) { const { slots, attrs } = context; const i18n2 = props.i18n || useI18n({ useScope: props.scope, __useComponent: true }); return () => { const keys2 = Object.keys(slots).filter((key) => key !== "_"); const options = create(); if (props.locale) { options.locale = props.locale; } if (props.plural !== void 0) { options.plural = isString$1(props.plural) ? +props.plural : props.plural; } const arg = getInterpolateArg(context, keys2); const children = i18n2[TranslateVNodeSymbol](props.keypath, arg, options); const assignedAttrs = assign$1(create(), attrs); const tag = isString$1(props.tag) || isObject$2(props.tag) ? props.tag : getFragmentableTag(); return h(tag, assignedAttrs, children); }; } }); const Translation = TranslationImpl; function isVNode(target) { return isArray(target) && !isString$1(target[0]); } function renderFormatter(props, context, slotKeys, partFormatter) { const { slots, attrs } = context; return () => { const options = { part: true }; let overrides = create(); if (props.locale) { options.locale = props.locale; } if (isString$1(props.format)) { options.key = props.format; } else if (isObject$2(props.format)) { if (isString$1(props.format.key)) { options.key = props.format.key; } overrides = Object.keys(props.format).reduce((options2, prop) => { return slotKeys.includes(prop) ? assign$1(create(), options2, { [prop]: props.format[prop] }) : options2; }, create()); } const parts = partFormatter(...[props.value, options, overrides]); let children = [options.key]; if (isArray(parts)) { children = parts.map((part, index2) => { const slot = slots[part.type]; const node = slot ? slot({ [part.type]: part.value, index: index2, parts }) : [part.value]; if (isVNode(node)) { node[0].key = `${part.type}-${index2}`; } return node; }); } else if (isString$1(parts)) { children = [parts]; } const assignedAttrs = assign$1(create(), attrs); const tag = isString$1(props.tag) || isObject$2(props.tag) ? props.tag : getFragmentableTag(); return h(tag, assignedAttrs, children); }; } const NumberFormatImpl = /* @__PURE__ */ defineComponent({ name: "i18n-n", props: assign$1({ value: { type: Number, required: true }, format: { type: [String, Object] } }, baseFormatProps), setup(props, context) { const i18n2 = props.i18n || useI18n({ useScope: props.scope, __useComponent: true }); return renderFormatter(props, context, NUMBER_FORMAT_OPTIONS_KEYS, (...args) => i18n2[NumberPartsSymbol](...args)); } }); const NumberFormat = NumberFormatImpl; const DatetimeFormatImpl = /* @__PURE__ */ defineComponent({ name: "i18n-d", props: assign$1({ value: { type: [Number, Date], required: true }, format: { type: [String, Object] } }, baseFormatProps), setup(props, context) { const i18n2 = props.i18n || useI18n({ useScope: props.scope, __useComponent: true }); return renderFormatter(props, context, DATETIME_FORMAT_OPTIONS_KEYS, (...args) => i18n2[DatetimePartsSymbol](...args)); } }); const DatetimeFormat = DatetimeFormatImpl; function getComposer$2(i18n2, instance) { const i18nInternal = i18n2; if (i18n2.mode === "composition") { return i18nInternal.__getInstance(instance) || i18n2.global; } else { const vueI18n = i18nInternal.__getInstance(instance); return vueI18n != null ? vueI18n.__composer : i18n2.global.__composer; } } function vTDirective(i18n2) { const _process = (binding) => { const { instance, modifiers, value } = binding; if (!instance || !instance.$) { throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR); } const composer = getComposer$2(i18n2, instance.$); const parsedValue = parseValue(value); return [ Reflect.apply(composer.t, composer, [...makeParams(parsedValue)]), composer ]; }; const register = (el, binding) => { const [textContent, composer] = _process(binding); if (inBrowser && i18n2.global === composer) { el.__i18nWatcher = watch(composer.locale, () => { binding.instance && binding.instance.$forceUpdate(); }); } el.__composer = composer; el.textContent = textContent; }; const unregister = (el) => { if (inBrowser && el.__i18nWatcher) { el.__i18nWatcher(); el.__i18nWatcher = void 0; delete el.__i18nWatcher; } if (el.__composer) { el.__composer = void 0; delete el.__composer; } }; const update2 = (el, { value }) => { if (el.__composer) { const composer = el.__composer; const parsedValue = parseValue(value); el.textContent = Reflect.apply(composer.t, composer, [ ...makeParams(parsedValue) ]); } }; const getSSRProps = (binding) => { const [textContent] = _process(binding); return { textContent }; }; return { created: register, unmounted: unregister, beforeUpdate: update2, getSSRProps }; } function parseValue(value) { if (isString$1(value)) { return { path: value }; } else if (isPlainObject(value)) { if (!("path" in value)) { throw createI18nError(I18nErrorCodes.REQUIRED_VALUE, "path"); } return value; } else { throw createI18nError(I18nErrorCodes.INVALID_VALUE); } } function makeParams(value) { const { path, locale: locale2, args, choice, plural } = value; const options = {}; const named = args || {}; if (isString$1(locale2)) { options.locale = locale2; } if (isNumber(choice)) { options.plural = choice; } if (isNumber(plural)) { options.plural = plural; } return [path, named, options]; } function apply(app2, i18n2, ...options) { const pluginOptions = isPlainObject(options[0]) ? options[0] : {}; const useI18nComponentName = !!pluginOptions.useI18nComponentName; const globalInstall = isBoolean(pluginOptions.globalInstall) ? pluginOptions.globalInstall : true; if (globalInstall) { [!useI18nComponentName ? Translation.name : "i18n", "I18nT"].forEach((name) => app2.component(name, Translation)); [NumberFormat.name, "I18nN"].forEach((name) => app2.component(name, NumberFormat)); [DatetimeFormat.name, "I18nD"].forEach((name) => app2.component(name, DatetimeFormat)); } { app2.directive("t", vTDirective(i18n2)); } } function defineMixin(vuei18n, composer, i18n2) { return { beforeCreate() { const instance = getCurrentInstance(); if (!instance) { throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR); } const options = this.$options; if (options.i18n) { const optionsI18n = options.i18n; if (options.__i18n) { optionsI18n.__i18n = options.__i18n; } optionsI18n.__root = composer; if (this === this.$root) { this.$i18n = mergeToGlobal(vuei18n, optionsI18n); } else { optionsI18n.__injectWithOption = true; optionsI18n.__extender = i18n2.__vueI18nExtend; this.$i18n = createVueI18n(optionsI18n); const _vueI18n = this.$i18n; if (_vueI18n.__extender) { _vueI18n.__disposer = _vueI18n.__extender(this.$i18n); } } } else if (options.__i18n) { if (this === this.$root) { this.$i18n = mergeToGlobal(vuei18n, options); } else { this.$i18n = createVueI18n({ __i18n: options.__i18n, __injectWithOption: true, __extender: i18n2.__vueI18nExtend, __root: composer }); const _vueI18n = this.$i18n; if (_vueI18n.__extender) { _vueI18n.__disposer = _vueI18n.__extender(this.$i18n); } } } else { this.$i18n = vuei18n; } if (options.__i18nGlobal) { adjustI18nResources(composer, options, options); } this.$t = (...args) => this.$i18n.t(...args); this.$rt = (...args) => this.$i18n.rt(...args); this.$tc = (...args) => this.$i18n.tc(...args); this.$te = (key, locale2) => this.$i18n.te(key, locale2); this.$d = (...args) => this.$i18n.d(...args); this.$n = (...args) => this.$i18n.n(...args); this.$tm = (key) => this.$i18n.tm(key); i18n2.__setInstance(instance, this.$i18n); }, mounted() { }, unmounted() { const instance = getCurrentInstance(); if (!instance) { throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR); } const _vueI18n = this.$i18n; delete this.$t; delete this.$rt; delete this.$tc; delete this.$te; delete this.$d; delete this.$n; delete this.$tm; if (_vueI18n.__disposer) { _vueI18n.__disposer(); delete _vueI18n.__disposer; delete _vueI18n.__extender; } i18n2.__deleteInstance(instance); delete this.$i18n; } }; } function mergeToGlobal(g, options) { g.locale = options.locale || g.locale; g.fallbackLocale = options.fallbackLocale || g.fallbackLocale; g.missing = options.missing || g.missing; g.silentTranslationWarn = options.silentTranslationWarn || g.silentFallbackWarn; g.silentFallbackWarn = options.silentFallbackWarn || g.silentFallbackWarn; g.formatFallbackMessages = options.formatFallbackMessages || g.formatFallbackMessages; g.postTranslation = options.postTranslation || g.postTranslation; g.warnHtmlInMessage = options.warnHtmlInMessage || g.warnHtmlInMessage; g.escapeParameterHtml = options.escapeParameterHtml || g.escapeParameterHtml; g.sync = options.sync || g.sync; g.__composer[SetPluralRulesSymbol](options.pluralizationRules || g.pluralizationRules); const messages = getLocaleMessages(g.locale, { messages: options.messages, __i18n: options.__i18n }); Object.keys(messages).forEach((locale2) => g.mergeLocaleMessage(locale2, messages[locale2])); if (options.datetimeFormats) { Object.keys(options.datetimeFormats).forEach((locale2) => g.mergeDateTimeFormat(locale2, options.datetimeFormats[locale2])); } if (options.numberFormats) { Object.keys(options.numberFormats).forEach((locale2) => g.mergeNumberFormat(locale2, options.numberFormats[locale2])); } return g; } const I18nInjectionKey = /* @__PURE__ */ makeSymbol("global-vue-i18n"); function createI18n(options = {}, VueI18nLegacy) { const __legacyMode = __VUE_I18N_LEGACY_API__ && isBoolean(options.legacy) ? options.legacy : __VUE_I18N_LEGACY_API__; const __globalInjection = isBoolean(options.globalInjection) ? options.globalInjection : true; const __allowComposition = __VUE_I18N_LEGACY_API__ && __legacyMode ? !!options.allowComposition : true; const __instances = /* @__PURE__ */ new Map(); const [globalScope, __global] = createGlobal(options, __legacyMode); const symbol = /* @__PURE__ */ makeSymbol(""); function __getInstance(component) { return __instances.get(component) || null; } function __setInstance(component, instance) { __instances.set(component, instance); } function __deleteInstance(component) { __instances.delete(component); } { const i18n2 = { get mode() { return __VUE_I18N_LEGACY_API__ && __legacyMode ? "legacy" : "composition"; }, get allowComposition() { return __allowComposition; }, async install(app2, ...options2) { app2.__VUE_I18N_SYMBOL__ = symbol; app2.provide(app2.__VUE_I18N_SYMBOL__, i18n2); if (isPlainObject(options2[0])) { const opts = options2[0]; i18n2.__composerExtend = opts.__composerExtend; i18n2.__vueI18nExtend = opts.__vueI18nExtend; } let globalReleaseHandler = null; if (!__legacyMode && __globalInjection) { globalReleaseHandler = injectGlobalFields(app2, i18n2.global); } if (__VUE_I18N_FULL_INSTALL__) { apply(app2, i18n2, ...options2); } if (__VUE_I18N_LEGACY_API__ && __legacyMode) { app2.mixin(defineMixin(__global, __global.__composer, i18n2)); } const unmountApp = app2.unmount; app2.unmount = () => { globalReleaseHandler && globalReleaseHandler(); i18n2.dispose(); unmountApp(); }; }, get global() { return __global; }, dispose() { globalScope.stop(); }, __instances, __getInstance, __setInstance, __deleteInstance }; return i18n2; } } function useI18n(options = {}) { const instance = getCurrentInstance(); if (instance == null) { throw createI18nError(I18nErrorCodes.MUST_BE_CALL_SETUP_TOP); } if (!instance.isCE && instance.appContext.app != null && !instance.appContext.app.__VUE_I18N_SYMBOL__) { throw createI18nError(I18nErrorCodes.NOT_INSTALLED); } const i18n2 = getI18nInstance(instance); const gl = getGlobalComposer(i18n2); const componentOptions = getComponentOptions(instance); const scope = getScope(options, componentOptions); if (__VUE_I18N_LEGACY_API__) { if (i18n2.mode === "legacy" && !options.__useComponent) { if (!i18n2.allowComposition) { throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_IN_LEGACY_MODE); } return useI18nForLegacy(instance, scope, gl, options); } } if (scope === "global") { adjustI18nResources(gl, options, componentOptions); return gl; } if (scope === "parent") { let composer2 = getComposer(i18n2, instance, options.__useComponent); if (composer2 == null) { composer2 = gl; } return composer2; } const i18nInternal = i18n2; let composer = i18nInternal.__getInstance(instance); if (composer == null) { const composerOptions = assign$1({}, options); if ("__i18n" in componentOptions) { composerOptions.__i18n = componentOptions.__i18n; } if (gl) { composerOptions.__root = gl; } composer = createComposer(composerOptions); if (i18nInternal.__composerExtend) { composer[DisposeSymbol] = i18nInternal.__composerExtend(composer); } setupLifeCycle(i18nInternal, instance, composer); i18nInternal.__setInstance(instance, composer); } return composer; } function createGlobal(options, legacyMode, VueI18nLegacy) { const scope = effectScope(); { const obj = __VUE_I18N_LEGACY_API__ && legacyMode ? scope.run(() => createVueI18n(options)) : scope.run(() => createComposer(options)); if (obj == null) { throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR); } return [scope, obj]; } } function getI18nInstance(instance) { { const i18n2 = inject(!instance.isCE ? instance.appContext.app.__VUE_I18N_SYMBOL__ : I18nInjectionKey); if (!i18n2) { throw createI18nError(!instance.isCE ? I18nErrorCodes.UNEXPECTED_ERROR : I18nErrorCodes.NOT_INSTALLED_WITH_PROVIDE); } return i18n2; } } function getScope(options, componentOptions) { return isEmptyObject(options) ? "__i18n" in componentOptions ? "local" : "global" : !options.useScope ? "local" : options.useScope; } function getGlobalComposer(i18n2) { return i18n2.mode === "composition" ? i18n2.global : i18n2.global.__composer; } function getComposer(i18n2, target, useComponent = false) { let composer = null; const root2 = target.root; let current = getParentComponentInstance(target, useComponent); while (current != null) { const i18nInternal = i18n2; if (i18n2.mode === "composition") { composer = i18nInternal.__getInstance(current); } else { if (__VUE_I18N_LEGACY_API__) { const vueI18n = i18nInternal.__getInstance(current); if (vueI18n != null) { composer = vueI18n.__composer; if (useComponent && composer && !composer[InejctWithOptionSymbol]) { composer = null; } } } } if (composer != null) { break; } if (root2 === current) { break; } current = current.parent; } return composer; } function getParentComponentInstance(target, useComponent = false) { if (target == null) { return null; } { return !useComponent ? target.parent : target.vnode.ctx || target.parent; } } function setupLifeCycle(i18n2, target, composer) { { onMounted(() => { }, target); onUnmounted(() => { const _composer = composer; i18n2.__deleteInstance(target); const dispose = _composer[DisposeSymbol]; if (dispose) { dispose(); delete _composer[DisposeSymbol]; } }, target); } } function useI18nForLegacy(instance, scope, root2, options = {}) { const isLocalScope = scope === "local"; const _composer = shallowRef(null); if (isLocalScope && instance.proxy && !(instance.proxy.$options.i18n || instance.proxy.$options.__i18n)) { throw createI18nError(I18nErrorCodes.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION); } const _inheritLocale = isBoolean(options.inheritLocale) ? options.inheritLocale : !isString$1(options.locale); const _locale = ref( !isLocalScope || _inheritLocale ? root2.locale.value : isString$1(options.locale) ? options.locale : DEFAULT_LOCALE ); const _fallbackLocale = ref( !isLocalScope || _inheritLocale ? root2.fallbackLocale.value : isString$1(options.fallbackLocale) || isArray(options.fallbackLocale) || isPlainObject(options.fallbackLocale) || options.fallbackLocale === false ? options.fallbackLocale : _locale.value ); const _messages = ref(getLocaleMessages(_locale.value, options)); const _datetimeFormats = ref(isPlainObject(options.datetimeFormats) ? options.datetimeFormats : { [_locale.value]: {} }); const _numberFormats = ref(isPlainObject(options.numberFormats) ? options.numberFormats : { [_locale.value]: {} }); const _missingWarn = isLocalScope ? root2.missingWarn : isBoolean(options.missingWarn) || isRegExp(options.missingWarn) ? options.missingWarn : true; const _fallbackWarn = isLocalScope ? root2.fallbackWarn : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn) ? options.fallbackWarn : true; const _fallbackRoot = isLocalScope ? root2.fallbackRoot : isBoolean(options.fallbackRoot) ? options.fallbackRoot : true; const _fallbackFormat = !!options.fallbackFormat; const _missing = isFunction(options.missing) ? options.missing : null; const _postTranslation = isFunction(options.postTranslation) ? options.postTranslation : null; const _warnHtmlMessage = isLocalScope ? root2.warnHtmlMessage : isBoolean(options.warnHtmlMessage) ? options.warnHtmlMessage : true; const _escapeParameter = !!options.escapeParameter; const _modifiers = isLocalScope ? root2.modifiers : isPlainObject(options.modifiers) ? options.modifiers : {}; const _pluralRules = options.pluralRules || isLocalScope && root2.pluralRules; function trackReactivityValues() { return [ _locale.value, _fallbackLocale.value, _messages.value, _datetimeFormats.value, _numberFormats.value ]; } const locale2 = computed({ get: () => { return _composer.value ? _composer.value.locale.value : _locale.value; }, set: (val) => { if (_composer.value) { _composer.value.locale.value = val; } _locale.value = val; } }); const fallbackLocale = computed({ get: () => { return _composer.value ? _composer.value.fallbackLocale.value : _fallbackLocale.value; }, set: (val) => { if (_composer.value) { _composer.value.fallbackLocale.value = val; } _fallbackLocale.value = val; } }); const messages = computed(() => { if (_composer.value) { return _composer.value.messages.value; } else { return _messages.value; } }); const datetimeFormats = computed(() => _datetimeFormats.value); const numberFormats = computed(() => _numberFormats.value); function getPostTranslationHandler() { return _composer.value ? _composer.value.getPostTranslationHandler() : _postTranslation; } function setPostTranslationHandler(handler) { if (_composer.value) { _composer.value.setPostTranslationHandler(handler); } } function getMissingHandler() { return _composer.value ? _composer.value.getMissingHandler() : _missing; } function setMissingHandler(handler) { if (_composer.value) { _composer.value.setMissingHandler(handler); } } function warpWithDeps(fn) { trackReactivityValues(); return fn(); } function t2(...args) { return _composer.value ? warpWithDeps(() => Reflect.apply(_composer.value.t, null, [...args])) : warpWithDeps(() => ""); } function rt(...args) { return _composer.value ? Reflect.apply(_composer.value.rt, null, [...args]) : ""; } function d(...args) { return _composer.value ? warpWithDeps(() => Reflect.apply(_composer.value.d, null, [...args])) : warpWithDeps(() => ""); } function n2(...args) { return _composer.value ? warpWithDeps(() => Reflect.apply(_composer.value.n, null, [...args])) : warpWithDeps(() => ""); } function tm(key) { return _composer.value ? _composer.value.tm(key) : {}; } function te(key, locale3) { return _composer.value ? _composer.value.te(key, locale3) : false; } function getLocaleMessage(locale3) { return _composer.value ? _composer.value.getLocaleMessage(locale3) : {}; } function setLocaleMessage(locale3, message) { if (_composer.value) { _composer.value.setLocaleMessage(locale3, message); _messages.value[locale3] = message; } } function mergeLocaleMessage(locale3, message) { if (_composer.value) { _composer.value.mergeLocaleMessage(locale3, message); } } function getDateTimeFormat(locale3) { return _composer.value ? _composer.value.getDateTimeFormat(locale3) : {}; } function setDateTimeFormat(locale3, format2) { if (_composer.value) { _composer.value.setDateTimeFormat(locale3, format2); _datetimeFormats.value[locale3] = format2; } } function mergeDateTimeFormat(locale3, format2) { if (_composer.value) { _composer.value.mergeDateTimeFormat(locale3, format2); } } function getNumberFormat(locale3) { return _composer.value ? _composer.value.getNumberFormat(locale3) : {}; } function setNumberFormat(locale3, format2) { if (_composer.value) { _composer.value.setNumberFormat(locale3, format2); _numberFormats.value[locale3] = format2; } } function mergeNumberFormat(locale3, format2) { if (_composer.value) { _composer.value.mergeNumberFormat(locale3, format2); } } const wrapper = { get id() { return _composer.value ? _composer.value.id : -1; }, locale: locale2, fallbackLocale, messages, datetimeFormats, numberFormats, get inheritLocale() { return _composer.value ? _composer.value.inheritLocale : _inheritLocale; }, set inheritLocale(val) { if (_composer.value) { _composer.value.inheritLocale = val; } }, get availableLocales() { return _composer.value ? _composer.value.availableLocales : Object.keys(_messages.value); }, get modifiers() { return _composer.value ? _composer.value.modifiers : _modifiers; }, get pluralRules() { return _composer.value ? _composer.value.pluralRules : _pluralRules; }, get isGlobal() { return _composer.value ? _composer.value.isGlobal : false; }, get missingWarn() { return _composer.value ? _composer.value.missingWarn : _missingWarn; }, set missingWarn(val) { if (_composer.value) { _composer.value.missingWarn = val; } }, get fallbackWarn() { return _composer.value ? _composer.value.fallbackWarn : _fallbackWarn; }, set fallbackWarn(val) { if (_composer.value) { _composer.value.missingWarn = val; } }, get fallbackRoot() { return _composer.value ? _composer.value.fallbackRoot : _fallbackRoot; }, set fallbackRoot(val) { if (_composer.value) { _composer.value.fallbackRoot = val; } }, get fallbackFormat() { return _composer.value ? _composer.value.fallbackFormat : _fallbackFormat; }, set fallbackFormat(val) { if (_composer.value) { _composer.value.fallbackFormat = val; } }, get warnHtmlMessage() { return _composer.value ? _composer.value.warnHtmlMessage : _warnHtmlMessage; }, set warnHtmlMessage(val) { if (_composer.value) { _composer.value.warnHtmlMessage = val; } }, get escapeParameter() { return _composer.value ? _composer.value.escapeParameter : _escapeParameter; }, set escapeParameter(val) { if (_composer.value) { _composer.value.escapeParameter = val; } }, t: t2, getPostTranslationHandler, setPostTranslationHandler, getMissingHandler, setMissingHandler, rt, d, n: n2, tm, te, getLocaleMessage, setLocaleMessage, mergeLocaleMessage, getDateTimeFormat, setDateTimeFormat, mergeDateTimeFormat, getNumberFormat, setNumberFormat, mergeNumberFormat }; function sync(composer) { composer.locale.value = _locale.value; composer.fallbackLocale.value = _fallbackLocale.value; Object.keys(_messages.value).forEach((locale3) => { composer.mergeLocaleMessage(locale3, _messages.value[locale3]); }); Object.keys(_datetimeFormats.value).forEach((locale3) => { composer.mergeDateTimeFormat(locale3, _datetimeFormats.value[locale3]); }); Object.keys(_numberFormats.value).forEach((locale3) => { composer.mergeNumberFormat(locale3, _numberFormats.value[locale3]); }); composer.escapeParameter = _escapeParameter; composer.fallbackFormat = _fallbackFormat; composer.fallbackRoot = _fallbackRoot; composer.fallbackWarn = _fallbackWarn; composer.missingWarn = _missingWarn; composer.warnHtmlMessage = _warnHtmlMessage; } onBeforeMount(() => { if (instance.proxy == null || instance.proxy.$i18n == null) { throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY); } const composer = _composer.value = instance.proxy.$i18n.__composer; if (scope === "global") { _locale.value = composer.locale.value; _fallbackLocale.value = composer.fallbackLocale.value; _messages.value = composer.messages.value; _datetimeFormats.value = composer.datetimeFormats.value; _numberFormats.value = composer.numberFormats.value; } else if (isLocalScope) { sync(composer); } }); return wrapper; } const globalExportProps = [ "locale", "fallbackLocale", "availableLocales" ]; const globalExportMethods = ["t", "rt", "d", "n", "tm", "te"]; function injectGlobalFields(app2, composer) { const i18n2 = /* @__PURE__ */ Object.create(null); globalExportProps.forEach((prop) => { const desc = Object.getOwnPropertyDescriptor(composer, prop); if (!desc) { throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR); } const wrap2 = isRef(desc.value) ? { get() { return desc.value.value; }, set(val) { desc.value.value = val; } } : { get() { return desc.get && desc.get(); } }; Object.defineProperty(i18n2, prop, wrap2); }); app2.config.globalProperties.$i18n = i18n2; globalExportMethods.forEach((method) => { const desc = Object.getOwnPropertyDescriptor(composer, method); if (!desc || !desc.value) { throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR); } Object.defineProperty(app2.config.globalProperties, `$${method}`, desc); }); const dispose = () => { delete app2.config.globalProperties.$i18n; globalExportMethods.forEach((method) => { delete app2.config.globalProperties[`$${method}`]; }); }; return dispose; } { initFeatureFlags(); } if (__INTLIFY_JIT_COMPILATION__) { registerMessageCompiler(compile); } else { registerMessageCompiler(compileToFunction); } registerMessageResolver(resolveValue$1); registerLocaleFallbacker(fallbackWithLocaleChain); if (__INTLIFY_PROD_DEVTOOLS__) { const target = getGlobalThis(); target.__INTLIFY__ = true; setDevToolsHook(target.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__); } const en = { canIHelpYouWithSomething: "Can I help you with something?", city: "City", email: "Email", identifyMe: "Identify me", letsTalk: "Let's talk!", names: "Names", fullName: "Full Name", lastNames: "Last Name", name: "Name", idDocument: "Identity Document", phone: "Phone", landlinePhone: "Landline Phone", weWillComeBackLater: "We will come back later...", whoAreYou: "Who are you?", writeYourMessageHere: "Write your message here...", clickOnYourFileTypeOrDragHere: "Click to upload file or drag it here", allowRecorder: "No input devices found or you must give permissions in the browser", iAgreeWithThe: "I agree with the", dataManagementPolicy: "Data management policy", errorName: "Your name must contain only letters", errorLastName: "Your lastName must contain only letters", errorEmail: "Verify your email", errorPhone: "Oh oh! your phone number is not written correctly", errorLandlinePhone: "Verify your landline phone number", emptyName: "Don't forget to enter your name", emptyIdDocument: "Don't forget to enter your identity document", emptyIdentificationType: "Don't forget to enter your identification type", emptyLastName: "Don't forget to enter your LastName", emptyEmail: "Don't forget to enter your email", emptyPhone: "Oh oh! your phone number is not written correctly. Try again.", emptyLandlinePhone: "Enter your landline phone", emptyCity: "Enter the city where you live", emptyPolicy: "You must accept the policy of data management", cancel: "Cancel", image: "Image", send: "Send", changeLanguage: "Change language", leaveChat: "Leave chat", hideChat: "Hide chat", loseMessage: "Losed message", sendedMessage: "Sended message", passport: "Passport", identification_card: "Identity Card", citizen_card: "Citizen Card", ssn: "SSN", nit: "NIT", ein: "EIN", identificationType: "Tipo de Identificaci\xF3n", acceptTerms: "I accept the TERMS OF USE and PRIVACY POLICY of", contactUsNumbers: "Contact us to the following numbers", and: "and" }; const es = { canIHelpYouWithSomething: "\xBFPuedo ayudarte en algo?", city: "Ciudad", email: "Correo electr\xF3nico", identifyMe: "Identificarme", letsTalk: "\xA1Conversemos!", names: "Nombres", fullName: "Nombre Completo", lastNames: "Apellido", name: "Nombre", idDocument: "Documento de Identidad", phone: "Celular", landlinePhone: "Tel\xE9fono Fijo", weWillComeBackLater: "Volveremos luego...", whoAreYou: "\xBFQui\xE9n eres?", writeYourMessageHere: "Escribe tu mensaje aqu\xED...", clickOnYourFileTypeOrDragHere: "Click para cargar tus archivos o arrastra aqu\xED", allowRecorder: "No se encontraron dispositivos de entrada o debes dar permisos en el navegador", iAgreeWithThe: "Estoy de acuerdo con la", dataManagementPolicy: "Politica de manejo de datos", errorName: "Su nombre debe tener solo letras", errorLastName: "Su apellido debe tener solo letras", errorEmail: "Verifique su correo electr\xF3nico", errorPhone: "Oh oh! tu celular no est\xE1 bien escrito, intenta nuevamente", errorLandlinePhone: "Verifique su n\xFAmero de tel\xE9fono fijo", emptyName: "No olvides escribir tu nombre", emptyIdDocument: "No olvides escribir tu documento de identidad", emptyIdentificationType: "No olvides escribir el tipo de documento de identidad", emptyLastName: "No olvides escribir tu apellido", emptyEmail: "No olvides escribir tu correo electr\xF3nico", emptyPhone: "Oh oh! tu celular no est\xE1 bien escrito, intenta nuevamente", emptyLandlinePhone: "No olvides escribir tu tel\xE9fono fijo", emptyCity: "No olvides escribir la ciudad donde vives", emptyPolicy: "Debes aceptar la pol\xEDtica de manejo de datos", cancel: "Cancelar", image: "Imagen", send: "Enviar", changeLanguage: "Cambiar idioma", leaveChat: "Abandonar chat", hideChat: "Ocultar chat", loseMessage: "Mensaje perdido", sendedMessage: "Mensaje enviado", passport: "Pasaporte", identification_card: "Tarjeta de Identidad", citizen_card: "C\xE9dula", ssn: "SSN", nit: "NIT", ein: "EIN", identificationType: "Tipo de Identificaci\xF3n", acceptTerms: "Acepto los ACUERDOS LEGALES y de PRIVACIDAD de", contactUsNumbers: "Cont\xE1ctanos en los siguientes n\xFAmeros", and: "y" }; const i18n = createI18n({ locale: "es", fallbackLocale: "es", globalInjection: true, messages: { en, es } }); var vue3Youtube_umd = { exports: {} }; const require$$0 = /* @__PURE__ */ getAugmentedNamespace(vue_runtime_esmBundler); (function(module2, exports2) { (function webpackUniversalModuleDefinition(root2, factory2) { module2.exports = factory2(require$$0); })(typeof self !== "undefined" ? self : commonjsGlobal, function(__WEBPACK_EXTERNAL_MODULE__8bbf__) { return function(modules) { var installedModules = {}; function __webpack_require__2(moduleId) { if (installedModules[moduleId]) { return installedModules[moduleId].exports; } var module3 = installedModules[moduleId] = { i: moduleId, l: false, exports: {} }; modules[moduleId].call(module3.exports, module3, module3.exports, __webpack_require__2); module3.l = true; return module3.exports; } __webpack_require__2.m = modules; __webpack_require__2.c = installedModules; __webpack_require__2.d = function(exports3, name, getter) { if (!__webpack_require__2.o(exports3, name)) { Object.defineProperty(exports3, name, { enumerable: true, get: getter }); } }; __webpack_require__2.r = function(exports3) { if (typeof Symbol !== "undefined" && Symbol.toStringTag) { Object.defineProperty(exports3, Symbol.toStringTag, { value: "Module" }); } Object.defineProperty(exports3, "__esModule", { value: true }); }; __webpack_require__2.t = function(value, mode) { if (mode & 1) value = __webpack_require__2(value); if (mode & 8) return value; if (mode & 4 && typeof value === "object" && value && value.__esModule) return value; var ns = /* @__PURE__ */ Object.create(null); __webpack_require__2.r(ns); Object.defineProperty(ns, "default", { enumerable: true, value }); if (mode & 2 && typeof value != "string") for (var key in value) __webpack_require__2.d(ns, key, function(key2) { return value[key2]; }.bind(null, key)); return ns; }; __webpack_require__2.n = function(module3) { var getter = module3 && module3.__esModule ? function getDefault2() { return module3["default"]; } : function getModuleExports() { return module3; }; __webpack_require__2.d(getter, "a", getter); return getter; }; __webpack_require__2.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; __webpack_require__2.p = ""; return __webpack_require__2(__webpack_require__2.s = "fb15"); }({ "00ee": function(module3, exports3, __webpack_require__2) { var wellKnownSymbol = __webpack_require__2("b622"); var TO_STRING_TAG = wellKnownSymbol("toStringTag"); var test = {}; test[TO_STRING_TAG] = "z"; module3.exports = String(test) === "[object z]"; }, "0366": function(module3, exports3, __webpack_require__2) { var aFunction = __webpack_require__2("1c0b"); module3.exports = function(fn, that, length) { aFunction(fn); if (that === void 0) return fn; switch (length) { case 0: return function() { return fn.call(that); }; case 1: return function(a2) { return fn.call(that, a2); }; case 2: return function(a2, b) { return fn.call(that, a2, b); }; case 3: return function(a2, b, c2) { return fn.call(that, a2, b, c2); }; } return function() { return fn.apply(that, arguments); }; }; }, "06cf": function(module3, exports3, __webpack_require__2) { var DESCRIPTORS = __webpack_require__2("83ab"); var propertyIsEnumerableModule = __webpack_require__2("d1e7"); var createPropertyDescriptor = __webpack_require__2("5c6c"); var toIndexedObject = __webpack_require__2("fc6a"); var toPrimitive = __webpack_require__2("c04e"); var has = __webpack_require__2("5135"); var IE8_DOM_DEFINE = __webpack_require__2("0cfb"); var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; exports3.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { O = toIndexedObject(O); P = toPrimitive(P, true); if (IE8_DOM_DEFINE) try { return nativeGetOwnPropertyDescriptor(O, P); } catch (error) { } if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]); }; }, "0cfb": function(module3, exports3, __webpack_require__2) { var DESCRIPTORS = __webpack_require__2("83ab"); var fails = __webpack_require__2("d039"); var createElement = __webpack_require__2("cc12"); module3.exports = !DESCRIPTORS && !fails(function() { return Object.defineProperty(createElement("div"), "a", { get: function() { return 7; } }).a != 7; }); }, "159b": function(module3, exports3, __webpack_require__2) { var global2 = __webpack_require__2("da84"); var DOMIterables = __webpack_require__2("fdbc"); var forEach2 = __webpack_require__2("17c2"); var createNonEnumerableProperty = __webpack_require__2("9112"); for (var COLLECTION_NAME in DOMIterables) { var Collection = global2[COLLECTION_NAME]; var CollectionPrototype = Collection && Collection.prototype; if (CollectionPrototype && CollectionPrototype.forEach !== forEach2) try { createNonEnumerableProperty(CollectionPrototype, "forEach", forEach2); } catch (error) { CollectionPrototype.forEach = forEach2; } } }, "17c2": function(module3, exports3, __webpack_require__2) { var $forEach = __webpack_require__2("b727").forEach; var arrayMethodIsStrict = __webpack_require__2("a640"); var arrayMethodUsesToLength = __webpack_require__2("ae40"); var STRICT_METHOD = arrayMethodIsStrict("forEach"); var USES_TO_LENGTH = arrayMethodUsesToLength("forEach"); module3.exports = !STRICT_METHOD || !USES_TO_LENGTH ? function forEach2(callbackfn) { return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : void 0); } : [].forEach; }, "19aa": function(module3, exports3) { module3.exports = function(it, Constructor, name) { if (!(it instanceof Constructor)) { throw TypeError("Incorrect " + (name ? name + " " : "") + "invocation"); } return it; }; }, "1be4": function(module3, exports3, __webpack_require__2) { var getBuiltIn = __webpack_require__2("d066"); module3.exports = getBuiltIn("document", "documentElement"); }, "1c0b": function(module3, exports3) { module3.exports = function(it) { if (typeof it != "function") { throw TypeError(String(it) + " is not a function"); } return it; }; }, "1c7e": function(module3, exports3, __webpack_require__2) { var wellKnownSymbol = __webpack_require__2("b622"); var ITERATOR = wellKnownSymbol("iterator"); var SAFE_CLOSING = false; try { var called = 0; var iteratorWithReturn = { next: function() { return { done: !!called++ }; }, "return": function() { SAFE_CLOSING = true; } }; iteratorWithReturn[ITERATOR] = function() { return this; }; Array.from(iteratorWithReturn, function() { throw 2; }); } catch (error) { } module3.exports = function(exec, SKIP_CLOSING) { if (!SKIP_CLOSING && !SAFE_CLOSING) return false; var ITERATION_SUPPORT = false; try { var object = {}; object[ITERATOR] = function() { return { next: function() { return { done: ITERATION_SUPPORT = true }; } }; }; exec(object); } catch (error) { } return ITERATION_SUPPORT; }; }, "1cdc": function(module3, exports3, __webpack_require__2) { var userAgent = __webpack_require__2("342f"); module3.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent); }, "1d80": function(module3, exports3) { module3.exports = function(it) { if (it == void 0) throw TypeError("Can't call method on " + it); return it; }; }, "2266": function(module3, exports3, __webpack_require__2) { var anObject = __webpack_require__2("825a"); var isArrayIteratorMethod = __webpack_require__2("e95a"); var toLength = __webpack_require__2("50c4"); var bind2 = __webpack_require__2("0366"); var getIteratorMethod = __webpack_require__2("35a1"); var callWithSafeIterationClosing = __webpack_require__2("9bdd"); var Result = function(stopped, result2) { this.stopped = stopped; this.result = result2; }; var iterate = module3.exports = function(iterable, fn, that, AS_ENTRIES, IS_ITERATOR) { var boundFunction = bind2(fn, that, AS_ENTRIES ? 2 : 1); var iterator2, iterFn, index2, length, result2, next, step; if (IS_ITERATOR) { iterator2 = iterable; } else { iterFn = getIteratorMethod(iterable); if (typeof iterFn != "function") throw TypeError("Target is not iterable"); if (isArrayIteratorMethod(iterFn)) { for (index2 = 0, length = toLength(iterable.length); length > index2; index2++) { result2 = AS_ENTRIES ? boundFunction(anObject(step = iterable[index2])[0], step[1]) : boundFunction(iterable[index2]); if (result2 && result2 instanceof Result) return result2; } return new Result(false); } iterator2 = iterFn.call(iterable); } next = iterator2.next; while (!(step = next.call(iterator2)).done) { result2 = callWithSafeIterationClosing(iterator2, boundFunction, step.value, AS_ENTRIES); if (typeof result2 == "object" && result2 && result2 instanceof Result) return result2; } return new Result(false); }; iterate.stop = function(result2) { return new Result(true, result2); }; }, "23cb": function(module3, exports3, __webpack_require__2) { var toInteger = __webpack_require__2("a691"); var max2 = Math.max; var min2 = Math.min; module3.exports = function(index2, length) { var integer = toInteger(index2); return integer < 0 ? max2(integer + length, 0) : min2(integer, length); }; }, "23e7": function(module3, exports3, __webpack_require__2) { var global2 = __webpack_require__2("da84"); var getOwnPropertyDescriptor = __webpack_require__2("06cf").f; var createNonEnumerableProperty = __webpack_require__2("9112"); var redefine = __webpack_require__2("6eeb"); var setGlobal = __webpack_require__2("ce4e"); var copyConstructorProperties = __webpack_require__2("e893"); var isForced = __webpack_require__2("94ca"); module3.exports = function(options, source) { var TARGET = options.target; var GLOBAL = options.global; var STATIC = options.stat; var FORCED, target, key, targetProperty, sourceProperty, descriptor; if (GLOBAL) { target = global2; } else if (STATIC) { target = global2[TARGET] || setGlobal(TARGET, {}); } else { target = (global2[TARGET] || {}).prototype; } if (target) for (key in source) { sourceProperty = source[key]; if (options.noTargetGet) { descriptor = getOwnPropertyDescriptor(target, key); targetProperty = descriptor && descriptor.value; } else targetProperty = target[key]; FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? "." : "#") + key, options.forced); if (!FORCED && targetProperty !== void 0) { if (typeof sourceProperty === typeof targetProperty) continue; copyConstructorProperties(sourceProperty, targetProperty); } if (options.sham || targetProperty && targetProperty.sham) { createNonEnumerableProperty(sourceProperty, "sham", true); } redefine(target, key, sourceProperty, options); } }; }, "241c": function(module3, exports3, __webpack_require__2) { var internalObjectKeys = __webpack_require__2("ca84"); var enumBugKeys = __webpack_require__2("7839"); var hiddenKeys = enumBugKeys.concat("length", "prototype"); exports3.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { return internalObjectKeys(O, hiddenKeys); }; }, "2626": function(module3, exports3, __webpack_require__2) { var getBuiltIn = __webpack_require__2("d066"); var definePropertyModule = __webpack_require__2("9bf2"); var wellKnownSymbol = __webpack_require__2("b622"); var DESCRIPTORS = __webpack_require__2("83ab"); var SPECIES = wellKnownSymbol("species"); module3.exports = function(CONSTRUCTOR_NAME) { var Constructor = getBuiltIn(CONSTRUCTOR_NAME); var defineProperty = definePropertyModule.f; if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) { defineProperty(Constructor, SPECIES, { configurable: true, get: function() { return this; } }); } }; }, "2cf4": function(module3, exports3, __webpack_require__2) { var global2 = __webpack_require__2("da84"); var fails = __webpack_require__2("d039"); var classof = __webpack_require__2("c6b6"); var bind2 = __webpack_require__2("0366"); var html = __webpack_require__2("1be4"); var createElement = __webpack_require__2("cc12"); var IS_IOS = __webpack_require__2("1cdc"); var location2 = global2.location; var set2 = global2.setImmediate; var clear = global2.clearImmediate; var process2 = global2.process; var MessageChannel = global2.MessageChannel; var Dispatch = global2.Dispatch; var counter = 0; var queue2 = {}; var ONREADYSTATECHANGE = "onreadystatechange"; var defer, channel, port; var run = function(id) { if (queue2.hasOwnProperty(id)) { var fn = queue2[id]; delete queue2[id]; fn(); } }; var runner = function(id) { return function() { run(id); }; }; var listener = function(event) { run(event.data); }; var post = function(id) { global2.postMessage(id + "", location2.protocol + "//" + location2.host); }; if (!set2 || !clear) { set2 = function setImmediate(fn) { var args = []; var i2 = 1; while (arguments.length > i2) args.push(arguments[i2++]); queue2[++counter] = function() { (typeof fn == "function" ? fn : Function(fn)).apply(void 0, args); }; defer(counter); return counter; }; clear = function clearImmediate(id) { delete queue2[id]; }; if (classof(process2) == "process") { defer = function(id) { process2.nextTick(runner(id)); }; } else if (Dispatch && Dispatch.now) { defer = function(id) { Dispatch.now(runner(id)); }; } else if (MessageChannel && !IS_IOS) { channel = new MessageChannel(); port = channel.port2; channel.port1.onmessage = listener; defer = bind2(port.postMessage, port, 1); } else if (global2.addEventListener && typeof postMessage == "function" && !global2.importScripts && !fails(post) && location2.protocol !== "file:") { defer = post; global2.addEventListener("message", listener, false); } else if (ONREADYSTATECHANGE in createElement("script")) { defer = function(id) { html.appendChild(createElement("script"))[ONREADYSTATECHANGE] = function() { html.removeChild(this); run(id); }; }; } else { defer = function(id) { setTimeout(runner(id), 0); }; } } module3.exports = { set: set2, clear }; }, "2d00": function(module3, exports3, __webpack_require__2) { var global2 = __webpack_require__2("da84"); var userAgent = __webpack_require__2("342f"); var process2 = global2.process; var versions = process2 && process2.versions; var v8 = versions && versions.v8; var match, version2; if (v8) { match = v8.split("."); version2 = match[0] + match[1]; } else if (userAgent) { match = userAgent.match(/Edge\/(\d+)/); if (!match || match[1] >= 74) { match = userAgent.match(/Chrome\/(\d+)/); if (match) version2 = match[1]; } } module3.exports = version2 && +version2; }, "342f": function(module3, exports3, __webpack_require__2) { var getBuiltIn = __webpack_require__2("d066"); module3.exports = getBuiltIn("navigator", "userAgent") || ""; }, "35a1": function(module3, exports3, __webpack_require__2) { var classof = __webpack_require__2("f5df"); var Iterators = __webpack_require__2("3f8c"); var wellKnownSymbol = __webpack_require__2("b622"); var ITERATOR = wellKnownSymbol("iterator"); module3.exports = function(it) { if (it != void 0) return it[ITERATOR] || it["@@iterator"] || Iterators[classof(it)]; }; }, "37e8": function(module3, exports3, __webpack_require__2) { var DESCRIPTORS = __webpack_require__2("83ab"); var definePropertyModule = __webpack_require__2("9bf2"); var anObject = __webpack_require__2("825a"); var objectKeys = __webpack_require__2("df75"); module3.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) { anObject(O); var keys2 = objectKeys(Properties); var length = keys2.length; var index2 = 0; var key; while (length > index2) definePropertyModule.f(O, key = keys2[index2++], Properties[key]); return O; }; }, "3bbe": function(module3, exports3, __webpack_require__2) { var isObject2 = __webpack_require__2("861d"); module3.exports = function(it) { if (!isObject2(it) && it !== null) { throw TypeError("Can't set " + String(it) + " as a prototype"); } return it; }; }, "3f8c": function(module3, exports3) { module3.exports = {}; }, "4160": function(module3, exports3, __webpack_require__2) { var $ = __webpack_require__2("23e7"); var forEach2 = __webpack_require__2("17c2"); $({ target: "Array", proto: true, forced: [].forEach != forEach2 }, { forEach: forEach2 }); }, "428f": function(module3, exports3, __webpack_require__2) { var global2 = __webpack_require__2("da84"); module3.exports = global2; }, "44ad": function(module3, exports3, __webpack_require__2) { var fails = __webpack_require__2("d039"); var classof = __webpack_require__2("c6b6"); var split2 = "".split; module3.exports = fails(function() { return !Object("z").propertyIsEnumerable(0); }) ? function(it) { return classof(it) == "String" ? split2.call(it, "") : Object(it); } : Object; }, "44de": function(module3, exports3, __webpack_require__2) { var global2 = __webpack_require__2("da84"); module3.exports = function(a2, b) { var console2 = global2.console; if (console2 && console2.error) { arguments.length === 1 ? console2.error(a2) : console2.error(a2, b); } }; }, "4840": function(module3, exports3, __webpack_require__2) { var anObject = __webpack_require__2("825a"); var aFunction = __webpack_require__2("1c0b"); var wellKnownSymbol = __webpack_require__2("b622"); var SPECIES = wellKnownSymbol("species"); module3.exports = function(O, defaultConstructor) { var C = anObject(O).constructor; var S; return C === void 0 || (S = anObject(C)[SPECIES]) == void 0 ? defaultConstructor : aFunction(S); }; }, "4930": function(module3, exports3, __webpack_require__2) { var fails = __webpack_require__2("d039"); module3.exports = !!Object.getOwnPropertySymbols && !fails(function() { return !String(Symbol()); }); }, "4d64": function(module3, exports3, __webpack_require__2) { var toIndexedObject = __webpack_require__2("fc6a"); var toLength = __webpack_require__2("50c4"); var toAbsoluteIndex = __webpack_require__2("23cb"); var createMethod = function(IS_INCLUDES) { return function($this, el, fromIndex) { var O = toIndexedObject($this); var length = toLength(O.length); var index2 = toAbsoluteIndex(fromIndex, length); var value; if (IS_INCLUDES && el != el) while (length > index2) { value = O[index2++]; if (value != value) return true; } else for (; length > index2; index2++) { if ((IS_INCLUDES || index2 in O) && O[index2] === el) return IS_INCLUDES || index2 || 0; } return !IS_INCLUDES && -1; }; }; module3.exports = { includes: createMethod(true), indexOf: createMethod(false) }; }, "50c4": function(module3, exports3, __webpack_require__2) { var toInteger = __webpack_require__2("a691"); var min2 = Math.min; module3.exports = function(argument) { return argument > 0 ? min2(toInteger(argument), 9007199254740991) : 0; }; }, "5135": function(module3, exports3) { var hasOwnProperty2 = {}.hasOwnProperty; module3.exports = function(it, key) { return hasOwnProperty2.call(it, key); }; }, "5692": function(module3, exports3, __webpack_require__2) { var IS_PURE = __webpack_require__2("c430"); var store2 = __webpack_require__2("c6cd"); (module3.exports = function(key, value) { return store2[key] || (store2[key] = value !== void 0 ? value : {}); })("versions", []).push({ version: "3.6.5", mode: IS_PURE ? "pure" : "global", copyright: "\xA9 2020 Denis Pushkarev (zloirock.ru)" }); }, "56ef": function(module3, exports3, __webpack_require__2) { var getBuiltIn = __webpack_require__2("d066"); var getOwnPropertyNamesModule = __webpack_require__2("241c"); var getOwnPropertySymbolsModule = __webpack_require__2("7418"); var anObject = __webpack_require__2("825a"); module3.exports = getBuiltIn("Reflect", "ownKeys") || function ownKeys2(it) { var keys2 = getOwnPropertyNamesModule.f(anObject(it)); var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; return getOwnPropertySymbols ? keys2.concat(getOwnPropertySymbols(it)) : keys2; }; }, "5899": function(module3, exports3) { module3.exports = " \n\v\f\r \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF"; }, "58a8": function(module3, exports3, __webpack_require__2) { var requireObjectCoercible = __webpack_require__2("1d80"); var whitespaces = __webpack_require__2("5899"); var whitespace = "[" + whitespaces + "]"; var ltrim = RegExp("^" + whitespace + whitespace + "*"); var rtrim = RegExp(whitespace + whitespace + "*$"); var createMethod = function(TYPE) { return function($this) { var string = String(requireObjectCoercible($this)); if (TYPE & 1) string = string.replace(ltrim, ""); if (TYPE & 2) string = string.replace(rtrim, ""); return string; }; }; module3.exports = { start: createMethod(1), end: createMethod(2), trim: createMethod(3) }; }, "5c6c": function(module3, exports3) { module3.exports = function(bitmap, value) { return { enumerable: !(bitmap & 1), configurable: !(bitmap & 2), writable: !(bitmap & 4), value }; }; }, "65f0": function(module3, exports3, __webpack_require__2) { var isObject2 = __webpack_require__2("861d"); var isArray2 = __webpack_require__2("e8b5"); var wellKnownSymbol = __webpack_require__2("b622"); var SPECIES = wellKnownSymbol("species"); module3.exports = function(originalArray, length) { var C; if (isArray2(originalArray)) { C = originalArray.constructor; if (typeof C == "function" && (C === Array || isArray2(C.prototype))) C = void 0; else if (isObject2(C)) { C = C[SPECIES]; if (C === null) C = void 0; } } return new (C === void 0 ? Array : C)(length === 0 ? 0 : length); }; }, "69f3": function(module3, exports3, __webpack_require__2) { var NATIVE_WEAK_MAP = __webpack_require__2("7f9a"); var global2 = __webpack_require__2("da84"); var isObject2 = __webpack_require__2("861d"); var createNonEnumerableProperty = __webpack_require__2("9112"); var objectHas = __webpack_require__2("5135"); var sharedKey = __webpack_require__2("f772"); var hiddenKeys = __webpack_require__2("d012"); var WeakMap2 = global2.WeakMap; var set2, get2, has; var enforce = function(it) { return has(it) ? get2(it) : set2(it, {}); }; var getterFor = function(TYPE) { return function(it) { var state2; if (!isObject2(it) || (state2 = get2(it)).type !== TYPE) { throw TypeError("Incompatible receiver, " + TYPE + " required"); } return state2; }; }; if (NATIVE_WEAK_MAP) { var store2 = new WeakMap2(); var wmget = store2.get; var wmhas = store2.has; var wmset = store2.set; set2 = function(it, metadata2) { wmset.call(store2, it, metadata2); return metadata2; }; get2 = function(it) { return wmget.call(store2, it) || {}; }; has = function(it) { return wmhas.call(store2, it); }; } else { var STATE = sharedKey("state"); hiddenKeys[STATE] = true; set2 = function(it, metadata2) { createNonEnumerableProperty(it, STATE, metadata2); return metadata2; }; get2 = function(it) { return objectHas(it, STATE) ? it[STATE] : {}; }; has = function(it) { return objectHas(it, STATE); }; } module3.exports = { set: set2, get: get2, has, enforce, getterFor }; }, "6eeb": function(module3, exports3, __webpack_require__2) { var global2 = __webpack_require__2("da84"); var createNonEnumerableProperty = __webpack_require__2("9112"); var has = __webpack_require__2("5135"); var setGlobal = __webpack_require__2("ce4e"); var inspectSource = __webpack_require__2("8925"); var InternalStateModule = __webpack_require__2("69f3"); var getInternalState = InternalStateModule.get; var enforceInternalState = InternalStateModule.enforce; var TEMPLATE = String(String).split("String"); (module3.exports = function(O, key, value, options) { var unsafe = options ? !!options.unsafe : false; var simple = options ? !!options.enumerable : false; var noTargetGet = options ? !!options.noTargetGet : false; if (typeof value == "function") { if (typeof key == "string" && !has(value, "name")) createNonEnumerableProperty(value, "name", key); enforceInternalState(value).source = TEMPLATE.join(typeof key == "string" ? key : ""); } if (O === global2) { if (simple) O[key] = value; else setGlobal(key, value); return; } else if (!unsafe) { delete O[key]; } else if (!noTargetGet && O[key]) { simple = true; } if (simple) O[key] = value; else createNonEnumerableProperty(O, key, value); })(Function.prototype, "toString", function toString2() { return typeof this == "function" && getInternalState(this).source || inspectSource(this); }); }, "7156": function(module3, exports3, __webpack_require__2) { var isObject2 = __webpack_require__2("861d"); var setPrototypeOf2 = __webpack_require__2("d2bb"); module3.exports = function($this, dummy, Wrapper) { var NewTarget, NewTargetPrototype; if (setPrototypeOf2 && typeof (NewTarget = dummy.constructor) == "function" && NewTarget !== Wrapper && isObject2(NewTargetPrototype = NewTarget.prototype) && NewTargetPrototype !== Wrapper.prototype) setPrototypeOf2($this, NewTargetPrototype); return $this; }; }, "7418": function(module3, exports3) { exports3.f = Object.getOwnPropertySymbols; }, "7839": function(module3, exports3) { module3.exports = [ "constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf" ]; }, "7b0b": function(module3, exports3, __webpack_require__2) { var requireObjectCoercible = __webpack_require__2("1d80"); module3.exports = function(argument) { return Object(requireObjectCoercible(argument)); }; }, "7c73": function(module3, exports3, __webpack_require__2) { var anObject = __webpack_require__2("825a"); var defineProperties = __webpack_require__2("37e8"); var enumBugKeys = __webpack_require__2("7839"); var hiddenKeys = __webpack_require__2("d012"); var html = __webpack_require__2("1be4"); var documentCreateElement = __webpack_require__2("cc12"); var sharedKey = __webpack_require__2("f772"); var GT = ">"; var LT = "<"; var PROTOTYPE = "prototype"; var SCRIPT = "script"; var IE_PROTO = sharedKey("IE_PROTO"); var EmptyConstructor = function() { }; var scriptTag = function(content) { return LT + SCRIPT + GT + content + LT + "/" + SCRIPT + GT; }; var NullProtoObjectViaActiveX = function(activeXDocument2) { activeXDocument2.write(scriptTag("")); activeXDocument2.close(); var temp = activeXDocument2.parentWindow.Object; activeXDocument2 = null; return temp; }; var NullProtoObjectViaIFrame = function() { var iframe = documentCreateElement("iframe"); var JS = "java" + SCRIPT + ":"; var iframeDocument; iframe.style.display = "none"; html.appendChild(iframe); iframe.src = String(JS); iframeDocument = iframe.contentWindow.document; iframeDocument.open(); iframeDocument.write(scriptTag("document.F=Object")); iframeDocument.close(); return iframeDocument.F; }; var activeXDocument; var NullProtoObject = function() { try { activeXDocument = document.domain && new ActiveXObject("htmlfile"); } catch (error) { } NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame(); var length = enumBugKeys.length; while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; return NullProtoObject(); }; hiddenKeys[IE_PROTO] = true; module3.exports = Object.create || function create2(O, Properties) { var result2; if (O !== null) { EmptyConstructor[PROTOTYPE] = anObject(O); result2 = new EmptyConstructor(); EmptyConstructor[PROTOTYPE] = null; result2[IE_PROTO] = O; } else result2 = NullProtoObject(); return Properties === void 0 ? result2 : defineProperties(result2, Properties); }; }, "7f9a": function(module3, exports3, __webpack_require__2) { var global2 = __webpack_require__2("da84"); var inspectSource = __webpack_require__2("8925"); var WeakMap2 = global2.WeakMap; module3.exports = typeof WeakMap2 === "function" && /native code/.test(inspectSource(WeakMap2)); }, "825a": function(module3, exports3, __webpack_require__2) { var isObject2 = __webpack_require__2("861d"); module3.exports = function(it) { if (!isObject2(it)) { throw TypeError(String(it) + " is not an object"); } return it; }; }, "83ab": function(module3, exports3, __webpack_require__2) { var fails = __webpack_require__2("d039"); module3.exports = !fails(function() { return Object.defineProperty({}, 1, { get: function() { return 7; } })[1] != 7; }); }, "861d": function(module3, exports3) { module3.exports = function(it) { return typeof it === "object" ? it !== null : typeof it === "function"; }; }, "8875": function(module3, exports3, __webpack_require__2) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; (function(root2, factory2) { { !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = factory2, __WEBPACK_AMD_DEFINE_RESULT__ = typeof __WEBPACK_AMD_DEFINE_FACTORY__ === "function" ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports3, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module3.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } })(typeof self !== "undefined" ? self : this, function() { function getCurrentScript() { var descriptor = Object.getOwnPropertyDescriptor(document, "currentScript"); if (!descriptor && "currentScript" in document && document.currentScript) { return document.currentScript; } if (descriptor && descriptor.get !== getCurrentScript && document.currentScript) { return document.currentScript; } try { throw new Error(); } catch (err) { var ieStackRegExp = /.*at [^(]*\((.*):(.+):(.+)\)$/ig, ffStackRegExp = /@([^@]*):(\d+):(\d+)\s*$/ig, stackDetails = ieStackRegExp.exec(err.stack) || ffStackRegExp.exec(err.stack), scriptLocation = stackDetails && stackDetails[1] || false, line = stackDetails && stackDetails[2] || false, currentLocation = document.location.href.replace(document.location.hash, ""), pageSource, inlineScriptSourceRegExp, inlineScriptSource, scripts = document.getElementsByTagName("script"); if (scriptLocation === currentLocation) { pageSource = document.documentElement.outerHTML; inlineScriptSourceRegExp = new RegExp("(?:[^\\n]+?\\n){0," + (line - 2) + "}[^<]*