/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/@doctorassistant/daai-summarization@1.1.1/dist/DaaiSummarization.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
import{applyThemeAttributes,parseThemeAttribute}from"./scripts/ComponentProps.js";import{formatAnalysisPeriod,formatMarkdown}from"./scripts/FormatFunctions.js";class DaaiSummarization extends HTMLElement{constructor(){super(),this.textsToSumarize="",this.summarizedText="",this.apiKey="",this.texts="",this.onSuccess=null,this.onError=null;this.attachShadow({mode:"open"}).innerHTML='\n    <style>\n      :host {\n        display: block;\n        font-family: sans-serif;\n      }\n      .container {\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        font-family: "Inter", sans-serif;\n      }\n      .container-content {\n        display: flex;\n        align-items: center;\n        justify-content: space-between;\n        padding: 1rem;\n        border: 1px solid #009CB1;\n        box-shadow: 2px 2px 1px 1px #c9c9c9;\n        border-radius: 10px;\n        background-color: #ffffff;\n        height:30px;\n        min-width: 360px;\n        font-family: "Inter", sans-serif;\n        font-weight: 600;\n        position: relative;\n        transition: background-color 0.3s, border-color 0.3s;\n        color: var(--text-badge-color, #B0BEC5);\n        @media (max-width: 600px) {\n          max-width: 330px;\n          }\n      }\n      .sumary-text-button {\n        min-width:100px;\n        height: 40px;\n        padding: 8px 16px;\n        font-size: 12px;\n        border-radius: 6px;\n        background-color: #009CB1;\n        color: white;\n        border: none;\n        cursor: pointer;\n      }\n\n      .sumary-text-button:disabled {\n        height: 40px;\n        padding: 8px 16px;\n        font-size: 12px;\n        border-radius: 6px;\n        border: none;\n        cursor: pointer;\n        background-color: #B0BEC5 !important;\n        color: #475569;\n        cursor: not-allowed;\n        opacity: 0.6;\n      }\n      .sumary-button {\n        height: 40px;\n        padding: 8px 16px;\n        font-size: 12px;\n        border-radius: 6px;\n        background-color: #009CB1;\n        color: white;\n        border: none;\n        cursor: pointer;\n      }\n      .sumary-button:disabled {\n          background-color: #B0BEC5 !important;\n          color: #FFFFFF;\n          cursor: not-allowed;\n          opacity: 0.6;\n      }\n      .close-button{\n        height: 40px;\n        width: 100px;\n        font-size: 12px;\n        border-radius: 8px;\n        background-color:  var(--button-close-color, #F43F5E);\n        color: white;\n        border: none;\n        cursor: pointer;\n      }\n      .copy-button{\n       height: 40px;\n        width: 100px;\n        font-size: 12px;\n        border-radius: 8px;\n        background-color:  var(--button-copy-color, #F43F5E);\n        color: white;\n        border: none;\n        cursor: pointer;\n      }\n      .copy-button.copied {\n        background-color: #4CAF50;\n      }\n      .modal {\n        color:#475569;\n        position: fixed;\n        top: 50%;\n        left: 50%;\n        transform: translate(-50%, -50%);\n        background-color: white;\n        padding: 20px;\n        border-radius: 8px;\n        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);\n        z-index: 1000;\n        width: 600px;\n        font-weight:600;\n        @media (max-width: 600px) {\n         width: 80%;\n      }\n      }\n      .overlay {\n        position: fixed;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n        background-color: rgba(0, 0, 0, 0.5);\n        z-index: 999;\n      }\n      .period-container{\n        display: flex;\n        gap: 3px;\n        align-items: center;\n        font-weight: 600;\n        justify-content: center;\n        border: 3px solid  var(--modal-colors, #475569);\n        color: var(--border-color, #475569);\n        border-radius: 10px;\n        height: 60px;\n        width:97%;\n        padding:4px;\n       @media (max-width: 600px) {\n         font-size:12px;\n      }\n      }\n\n    .sumary-container{\n        display: flex;\n        font-weight: 500;\n        align-items: flex-start;\n        justify-content: flex-start;\n        flex-direction: column;\n        border: 3px solid  var(--modal-colors, #475569);\n        border-radius: 10px;\n        height: 300px;\n        width:96%;\n        overflow-y: auto;\n        padding:8px;\n        font-size: 12px;\n      }\n      .sumary-content{\n        display: flex;\n        gap: 10px;\n        align-items: start;\n        justify-content: center;\n        flex-direction:column;\n      }\n      .container-buttons{\n        width:100%;\n        display: flex;\n        align-items: center;\n        justify-content: space-between;\n      }\n        .sumary-text{\n          font-size:14px\n        }\n    </style>\n    <div class="container">\n      <div class="container-content">\n        <p class=\'sumary-text\'>Sumário Clínico</p>\n        <div>\n        <button class="sumary-text-button" id="generate">Gerar sumário</button>\n        <button class="sumary-button" id="sumary" disabled>\n          Ver sumário\n        </button>\n        </div>\n      </div>\n    </div>\n    ',this.shadowRoot.querySelector("#generate").addEventListener("click",(()=>{this.summarizeTexts()})),this.shadowRoot.querySelector("#sumary").addEventListener("click",(()=>{this.showModal()}))}showModal(){const t=document.createElement("div");t.classList.add("modal");const n=formatMarkdown(this.summarizeTexts.summary||"Resumo não disponível"),o=formatAnalysisPeriod(this.texts);t.innerHTML=`\n      <div class='sumary-content'>\n        <p>Sumário clínico do paciente</p>\n        <span class='period-container'>${o}</span>\n        <span class='sumary-container' id='teste'>\n          ${n}\n        </span>\n        <div class='container-buttons'>\n          <button class="copy-button" id='copyText'>Copiar</button>\n          <button class="close-button" id="closeModal">Fechar</button>\n        </div>\n      </div>\n    `;const e=document.createElement("div");e.classList.add("overlay"),this.shadowRoot.appendChild(e),this.shadowRoot.appendChild(t),this.shadowRoot.querySelector("#closeModal").addEventListener("click",(()=>this.closeModal(t,e))),e.addEventListener("click",(()=>this.closeModal(t,e))),this.shadowRoot.querySelector("#copyText").addEventListener("click",(()=>this.copySumaryText()))}enableSummaryButton(){this.shadowRoot.querySelector("#sumary").disabled=!1}disableSummaryButton(){this.shadowRoot.querySelector("#sumary").disabled=!0}formatText(t){try{const n=JSON.parse(t);if(Array.isArray(n)){return JSON.stringify({texts:n})}return t}catch(t){return console.error("Erro ao fazer parse da string JSON:",t),null}}copySumaryText(){const t=this.shadowRoot.querySelector(".sumary-container").innerText,n=this.shadowRoot.querySelector("#copyText");navigator.clipboard.writeText(t).then((()=>{n.classList.add("copied"),n.innerText="Copiado!",setTimeout((()=>{n.classList.remove("copied"),n.innerText="Copiar"}),3e3)})).catch((t=>{console.error("Erro ao copiar o texto: ",t)}))}closeModal(t,n){this.shadowRoot.removeChild(t),this.shadowRoot.removeChild(n)}async summarization(t,n,o,e){const r="dev"===this.modeApi?"https://apim.doctorassistant.ai/api/sandbox/summary":"https://apim.doctorassistant.ai/api/production/summary",i=this.shadowRoot.querySelector("#generate");i.innerText="Gerando",i.style.color="#fffff";try{const e=await fetch(r,{method:"POST",headers:{"x-daai-api-key":t,"Content-Type":"application/json"},body:n});if(e){const t=await e.json();i.innerText="Concluído",i.style.color="#fffff",i.disabled=!0,setTimeout((()=>{i.innerText="Gerar Sumário",i.style.color="#fffff",i.disabled=!0}),5e3),t&&this.enableSummaryButton(),this.summarizeTexts=t,"function"==typeof o&&o(t)}}catch(t){i.innerText="Gerar sumário",i.style.color="#FFFFFF",this.disableSummaryButton(),console.error("Erro ao enviar os textos:",t),"function"==typeof e&&e("erro na requisição",t)}}async summarizeTexts(){try{this.summarization(this.apiKey,this.textsToSumarize,this.onSuccess,this.onError)}catch(t){console.error("Erro na sumarização:",t)}}static get observedAttributes(){return["theme","onSuccess","onError","apiKey","texts"]}connectedCallback(){const t=this.getAttribute("onSuccess"),n=this.getAttribute("onError");t&&"function"==typeof window[t]&&(this.onSuccess=window[t].bind(this)),n&&"function"==typeof window[n]&&(this.onError=window[n].bind(this));const o={borderColor:"#009CB1",textBadgeColor:"#009CB1",modalColors:"#009CB1",buttonGenerateColor:"#009CB1",buttonSeeSummaryColor:"#009CB1",buttonCopyColor:"#009CB1",buttonCloseColor:"#F43F5E",textBadgeColor:"#475569"},e=this.getAttribute("theme");this.theme=e?{...o,...parseThemeAttribute(e)}:o,applyThemeAttributes(this.theme,this),this.apiKey=this.getAttribute("apikey");const r=this.getAttribute("apikey");this.modeApi=r&&r.startsWith("PRODUCTION")?"prod":"dev",this.onSuccess=this.getAttribute("onSuccess"),this.textsToSumarize=this.formatText(this.getAttribute("texts")),this.texts=this.getAttribute("texts"),this.onSuccess=this.getAttribute("onSuccess")?new Function("return "+this.getAttribute("onSuccess"))():null,this.onError=this.getAttribute("onError")?new Function("return "+this.getAttribute("onError"))():null}triggerSuccess(...t){"function"==typeof this.onSuccess&&this.onSuccess(...t)}triggerError(...t){"function"==typeof this.onError&&this.onError(...t)}}customElements.define("daai-summarization",DaaiSummarization);
//# sourceMappingURL=/sm/6ef925e91244facbebfc493db851d14120193d75197508b3975b77de757ff810.map