import{A as m,b as f,a as l}from"./messages-Dg4m4-ox.js";import{A as c,a as o,C as p,r as y,f as A,s as d}from"./fillExtract-BapijGrv.js";import"./formatExtractHtml-Dev9W6Dj.js";function i(e){return((e==null?void 0:e.textContent)??"").replace(/\s+/g," ").trim()}function h(e){const t={};if(!e)return t;let r=null;for(const n of Array.from(e.children)){if(n.tagName==="HEADER"){r=i(n);continue}r&&(n.tagName==="SPAN"||n.tagName==="A")&&(t[r]=i(n),r=null)}return t}function I(e,t){var a,s;const r=(a=e.match(/\/animals\/history\/id:(\d+)/))==null?void 0:a[1];if(r)return r;const n=t.querySelector(`#${c} input#id`);return((s=n==null?void 0:n.value)==null?void 0:s.trim())??""}function u(e){var a;const t=e.querySelector(".animal-block .profile span"),r=i(t);if(r&&/^\d+$/.test(r))return r;const n=e.querySelector("[data-post-animal]");return((a=n==null?void 0:n.getAttribute("data-post-animal"))==null?void 0:a.trim())??""}function b(e){var n;const t=e.querySelector('.animal-block a.user-profile[href*="/owners/"]');return((n=((t==null?void 0:t.getAttribute("href"))??"").match(/\/owners\/id:(\d+)/))==null?void 0:n[1])??""}function k(e){var n;const t=h(e.querySelector(".animal-block .details")),r=e.querySelector(".animal-block > header span > span");return{name:i(r),patientId:t["№ пациента"]??u(e),species:t.Вид??"",breed:t.Порода??"",sex:t.Пол??"",age:t.Возраст??"",weight:((n=t.Вес)==null?void 0:n.replace(/\s*\d{1,2}\s+\w+\s+\d{4}.*$/,"").trim())??"",sterilization:t.Стерилизация??"",ownerName:i(e.querySelector(".animal-block a.user-profile .name")),ownerId:b(e)}}function S(e,t){const r=e.querySelector(".visit-block .status-block"),n=i(r).replace(/^№\s*/i,"");return{visitId:I(t,e),visitNumber:n,visitDate:i(e.querySelector(".visit-block .date span:last-child")),title:o(e,"title"),animalId:u(e),employeeName:i(e.querySelector(".employee-block .name"))}}function g(e){const t={anamnesis:"",examination:"",manipulation:"",comment:"",treatment:"",recommendation:"",symptom:o(e,"symptom"),weight:o(e,"weight"),temperature:o(e,"temperature")};for(const r of p)t[r]=y(e,r);return t}function E(e,t){var n,a;return!(t.getElementById(c)||t.querySelector(".animal-block"))?!1:((a=(n=t.body)==null?void 0:n.dataset)==null?void 0:a.tailyMisTest)==="animalface"?!0:m.test(e)||f(e)}function w(e,t){if(!E(t,e))throw new Error("Откройте страницу приёма AnimalFace или тестовую страницу MIS (/public/extension-mis-test.html)");const r=S(e,t);if(!r.visitId)throw new Error("Не удалось определить ID приёма на странице");return{capturedAt:new Date().toISOString(),pageUrl:t,patient:k(e),visit:r,form:g(e)}}function x(){try{return{ok:!0,context:w(document,window.location.href)}}catch(e){return{ok:!1,error:e instanceof Error?e.message:"Не удалось захватить данные страницы"}}}function F(e){try{const t=A(document,e.extract,e.agentVersion);if(!t.ok){const r=d(t);return{ok:!1,error:r&&r!=="Нечего подставлять"?r:"Нет полей для подстановки (все секции пустые или н/д). Дождитесь анализа протокола или проверьте версию протокола v1/v2."}}return{ok:!0,report:t}}catch(t){return{ok:!1,error:t instanceof Error?t.message:"Не удалось подставить данные"}}}chrome.runtime.onMessage.addListener((e,t,r)=>{if(!e||typeof e!="object")return!1;if(e.type===l.SCRAPE_CONTEXT)return r(x()),!1;if(e.type===l.FILL_EXTRACT){const n=e.payload;return n!=null&&n.extract?(r(F(n)),!1):(r({ok:!1,error:"Нет данных анализа для подстановки"}),!1)}return!1});
