import{B as e,L as t}from"./Card-Cxq4Ee-X.js";import{S as n,T as r,j as i,x as a}from"./supplements-DUypwbGQ.js";import{c as o,l as s,v as c}from"./supplementLabRetakePolicy-DYFjnA-6.js";import{a as l,c as u,f as d,i as f,o as p,s as m}from"./supplementKnowledgeContentCoverage-QijmrXnh.js";function h(e){if(!e||e.status===`not_applicable`)return{canAddBasePlan:!0,requiresExtraConfirmation:!1,shouldSuggestLabsFirst:!1,severity:`info`,title:`Нет правил анализов`,message:`Для этого БАДа пока нет правил анализов. Будет использована базовая справочная схема.`,primaryActionLabel:`Добавить в план`,warnings:e?.warnings??[]};switch(e.status){case`ready`:return{canAddBasePlan:!0,requiresExtraConfirmation:!1,shouldSuggestLabsFirst:!1,severity:`safe`,title:`Данных достаточно`,message:`Анализы не блокируют добавление справочной схемы.`,primaryActionLabel:`Добавить в план`,warnings:e.warnings};case`missing_labs`:return{canAddBasePlan:!0,requiresExtraConfirmation:!0,shouldSuggestLabsFirst:!0,severity:`warning`,title:`Не хватает анализов`,message:`Для персональной справочной схемы не хватает анализов. Можно добавить базовую схему, но лучше заполнить показатели.`,primaryActionLabel:`Добавить базовую схему`,secondaryActionLabel:`Отмена`,labsActionLabel:`Сначала заполнить анализы`,warnings:e.warnings};case`caution`:return{canAddBasePlan:!0,requiresExtraConfirmation:!0,shouldSuggestLabsFirst:!0,severity:`warning`,title:`Нужна осторожность`,message:`Есть показатели, требующие осторожности. Перед регулярным приёмом желательно проверить данные или проконсультироваться.`,primaryActionLabel:`Добавить базовую схему`,secondaryActionLabel:`Отмена`,labsActionLabel:`Перейти к анализам`,warnings:e.warnings};case`blocked`:return{canAddBasePlan:!1,requiresExtraConfirmation:!0,shouldSuggestLabsFirst:!0,severity:`danger`,title:`Добавление заблокировано`,message:e.warnings.find(e=>e.includes(`в норме`)||e.includes(`выше референса`)||e.includes(`передозировк`))??e.explanation,primaryActionLabel:`Перейти к анализам`,secondaryActionLabel:`Отмена`,warnings:e.warnings};case`missing_profile`:return{canAddBasePlan:!1,requiresExtraConfirmation:!0,shouldSuggestLabsFirst:!0,severity:`warning`,title:`Заполните профиль`,message:`Сначала заполните данные о себе в профиле БАДов: пол, возраст, вес.`,primaryActionLabel:`К профилю`,secondaryActionLabel:`Отмена`,warnings:e.warnings};default:return{canAddBasePlan:!0,requiresExtraConfirmation:!1,shouldSuggestLabsFirst:!1,severity:`info`,title:`Нет данных`,message:`Будет использована базовая справочная схема.`,primaryActionLabel:`Добавить в план`,warnings:[]}}}var g=[...Object.freeze([{pattern:`25(oh)d`,biomarkerIds:[`vitamin_d_25oh`],confidence:`exact`},{pattern:`витамин d`,biomarkerIds:[`vitamin_d_25oh`],confidence:`exact`},{pattern:`vitamin d`,biomarkerIds:[`vitamin_d_25oh`],confidence:`exact`},{pattern:`кальций общий`,biomarkerIds:[`calcium_total`],confidence:`exact`},{pattern:`calcium total`,biomarkerIds:[`calcium_total`],confidence:`exact`},{pattern:`кальций ионизированный`,biomarkerIds:[`calcium_ionized`],confidence:`exact`},{pattern:`ca++`,biomarkerIds:[`calcium_ionized`],confidence:`likely`},{pattern:`кальций`,biomarkerIds:[`calcium_total`],confidence:`likely`},{pattern:`calcium`,biomarkerIds:[`calcium_total`],confidence:`likely`},{pattern:`ферритин`,biomarkerIds:[`ferritin`],confidence:`exact`},{pattern:`ferritin`,biomarkerIds:[`ferritin`],confidence:`exact`},{pattern:`гемоглобин`,biomarkerIds:[`cbc_hemoglobin`],confidence:`exact`},{pattern:`железо сывороточное`,biomarkerIds:[`serum_iron`],confidence:`exact`},{pattern:`serum iron`,biomarkerIds:[`serum_iron`],confidence:`exact`},{pattern:`трансферрин`,biomarkerIds:[`transferrin_saturation`],confidence:`likely`},{pattern:`гликированный`,biomarkerIds:[`hba1c`],confidence:`likely`},{pattern:`триглицерид`,biomarkerIds:[`triglycerides`],confidence:`exact`},{pattern:`холестерин`,biomarkerIds:[`total_cholesterol`],confidence:`likely`},{pattern:`кобаламин`,biomarkerIds:[`b12`],confidence:`exact`},{pattern:`креатинин`,biomarkerIds:[`creatinine`],confidence:`exact`},{pattern:`creatinine`,biomarkerIds:[`creatinine`],confidence:`exact`},{pattern:`глюкоза`,biomarkerIds:[`glucose_fasting`],confidence:`likely`},{pattern:`glucose`,biomarkerIds:[`glucose_fasting`],confidence:`likely`},{pattern:`ожсс`,biomarkerIds:[`transferrin_saturation`],confidence:`manual_review`,notes:`ОЖСС может не совпадать с TSAT`},{pattern:`гомоцистеин`,biomarkerIds:[`homocysteine`],confidence:`exact`},{pattern:`homocysteine`,biomarkerIds:[`homocysteine`],confidence:`exact`},{pattern:`hcy`,biomarkerIds:[`homocysteine`],confidence:`likely`},{pattern:`methylmalonic`,biomarkerIds:[],confidence:`manual_review`},{pattern:`антител`,biomarkerIds:[],confidence:`manual_review`},{pattern:`anti-tpo`,biomarkerIds:[`anti_tpo`],confidence:`exact`},{pattern:`ат-тпо`,biomarkerIds:[`anti_tpo`],confidence:`exact`},{pattern:`anti-tg`,biomarkerIds:[`anti_tg`],confidence:`exact`},{pattern:`ат-тг`,biomarkerIds:[`anti_tg`],confidence:`exact`},{pattern:`свободный т4`,biomarkerIds:[`free_t4`],confidence:`exact`},{pattern:`free t4`,biomarkerIds:[`free_t4`],confidence:`exact`},{pattern:`ft4`,biomarkerIds:[`free_t4`],confidence:`exact`},{pattern:`свободный т3`,biomarkerIds:[`free_t3`],confidence:`exact`},{pattern:`free t3`,biomarkerIds:[`free_t3`],confidence:`exact`},{pattern:`ft3`,biomarkerIds:[`free_t3`],confidence:`exact`},{pattern:`инсулин`,biomarkerIds:[`insulin_fasting`],confidence:`likely`},{pattern:`insulin`,biomarkerIds:[`insulin_fasting`],confidence:`likely`},{pattern:`ггт`,biomarkerIds:[`ggt`],confidence:`exact`},{pattern:`ggt`,biomarkerIds:[`ggt`],confidence:`exact`},{pattern:`гамма-гт`,biomarkerIds:[`ggt`],confidence:`exact`},{pattern:`щелочная фосфатаза`,biomarkerIds:[`alp`],confidence:`exact`},{pattern:`alkaline phosphatase`,biomarkerIds:[`alp`],confidence:`exact`},{pattern:`билирубин`,biomarkerIds:[`bilirubin_total`],confidence:`likely`},{pattern:`bilirubin`,biomarkerIds:[`bilirubin_total`],confidence:`likely`},{pattern:`мочевая кислота`,biomarkerIds:[`uric_acid`],confidence:`exact`},{pattern:`uric acid`,biomarkerIds:[`uric_acid`],confidence:`exact`},{pattern:`фосфор`,biomarkerIds:[`phosphate`],confidence:`likely`},{pattern:`phosphate`,biomarkerIds:[`phosphate`],confidence:`likely`},{pattern:`пиридоксин`,biomarkerIds:[`vitamin_b6`],confidence:`likely`},{pattern:`vitamin b6`,biomarkerIds:[`vitamin_b6`],confidence:`likely`},{pattern:`печеночн`,biomarkerIds:[],confidence:`manual_review`},{pattern:`коагулограмм`,biomarkerIds:[],confidence:`manual_review`},{pattern:`ретинол`,biomarkerIds:[],confidence:`manual_review`},{pattern:`hb`,biomarkerIds:[`cbc_hemoglobin`],confidence:`likely`},{pattern:`оак`,biomarkerIds:[`cbc_hemoglobin`],confidence:`manual_review`,notes:`ОАК — составной показатель`},{pattern:`железо`,biomarkerIds:[`serum_iron`],confidence:`likely`},{pattern:`ттг`,biomarkerIds:[`tsh`],confidence:`exact`},{pattern:`tsh`,biomarkerIds:[`tsh`],confidence:`exact`},{pattern:`b12`,biomarkerIds:[`b12`],confidence:`exact`},{pattern:`фолат`,biomarkerIds:[`folate`],confidence:`exact`},{pattern:`folate`,biomarkerIds:[`folate`],confidence:`exact`},{pattern:`b9`,biomarkerIds:[`folate`],confidence:`exact`},{pattern:`цинк`,biomarkerIds:[`zinc`],confidence:`exact`},{pattern:`zinc`,biomarkerIds:[`zinc`],confidence:`exact`},{pattern:`медь`,biomarkerIds:[`copper`],confidence:`exact`},{pattern:`copper`,biomarkerIds:[`copper`],confidence:`exact`},{pattern:`egfr`,biomarkerIds:[`egfr`],confidence:`exact`},{pattern:`рсскф`,biomarkerIds:[`egfr`],confidence:`exact`},{pattern:`скф`,biomarkerIds:[`egfr`],confidence:`exact`},{pattern:`hba1c`,biomarkerIds:[`hba1c`],confidence:`exact`},{pattern:`лпнп`,biomarkerIds:[`ldl`],confidence:`exact`},{pattern:`ldl`,biomarkerIds:[`ldl`],confidence:`exact`},{pattern:`лпвп`,biomarkerIds:[`hdl`],confidence:`exact`},{pattern:`hdl`,biomarkerIds:[`hdl`],confidence:`exact`},{pattern:`тг`,biomarkerIds:[`triglycerides`],confidence:`likely`},{pattern:`липид`,biomarkerIds:[`total_cholesterol`,`ldl`,`hdl`,`triglycerides`],confidence:`manual_review`},{pattern:`мма`,biomarkerIds:[],confidence:`manual_review`},{pattern:`т4`,biomarkerIds:[],confidence:`manual_review`},{pattern:`t4`,biomarkerIds:[],confidence:`manual_review`},{pattern:`птг`,biomarkerIds:[],confidence:`manual_review`},{pattern:`pth`,biomarkerIds:[],confidence:`manual_review`},{pattern:`калий`,biomarkerIds:[`potassium`],confidence:`exact`},{pattern:`potassium`,biomarkerIds:[`potassium`],confidence:`exact`},{pattern:`натрий`,biomarkerIds:[],confidence:`manual_review`},{pattern:`селен`,biomarkerIds:[],confidence:`manual_review`},{pattern:`tsat`,biomarkerIds:[`transferrin_saturation`],confidence:`likely`}])].sort((e,t)=>t.pattern.length-e.pattern.length);function _(e){return e.trim().toLowerCase().replace(/ё/g,`е`).replace(/\s+/g,` `)}function v(e){return!!c(e)}function y(e){let t=new Set,n=[];for(let r of e)!r||!v(r)||t.has(r)||(t.add(r),n.push(r));return n}function b(e){let t=e.map(e=>e.pattern);return e.filter(e=>!t.some(t=>t!==e.pattern&&t.length>e.pattern.length&&t.includes(e.pattern)))}function x(e){let t=[],n=new Set;for(let r of g)e.includes(r.pattern)&&(n.has(r.pattern)||(n.add(r.pattern),t.push({text:e,biomarkerIds:[...r.biomarkerIds],confidence:r.confidence,pattern:r.pattern,notes:r.notes})));return b(t).sort((e,t)=>t.pattern.length-e.pattern.length)}function S(e){if(!e?.length)return{mapped:[],unmapped:[],allBiomarkerIds:[]};let t=[],n=[],r=[];for(let i of e){let e=i.trim();if(!e)continue;let a=x(_(e));if(a.length===0){n.push(e);continue}for(let n of a){t.push({...n,text:e});for(let e of n.biomarkerIds)r.includes(e)||r.push(e)}}return{mapped:t,unmapped:n,allBiomarkerIds:y(r)}}function C(e){return e.unmapped.length>0?!0:e.mapped.some(e=>e.biomarkerIds.length===0)}var w={true_gap:!0,deferred_research:!0,needs_biomarker_expansion:!0,needs_safety_profile:!1,needs_product_label:!1,doctor_only_no_rule:!1,weak_lab_link:!1,intentionally_not_applicable:!1};function T(e,t,n,r,i){return{supplementKnowledgeId:e,classification:t,reasons:n,displaySummary:r,recommendedNextCycle:i,affectsReadiness:w[t]}}var E=Object.freeze([T(`knowledge_5_htp`,`doctor_only_no_rule`,[`high_risk_denylist`,`requires_medication_flags`],`High-risk: универсальная structured lab rule не поддерживается.`,`safety_profile_flags`),T(`knowledge_alpha_gpc`,`intentionally_not_applicable`,[`no_relevant_routine_biomarker`],`Рутинные анализы не требуются.`,`none`),T(`knowledge_arginine`,`weak_lab_link`,[`lab_relation_too_weak`],`Связь с рутинными анализами слабая; риски давления и лекарств покрыты профилем безопасности.`,`none`),T(`knowledge_bcaa`,`intentionally_not_applicable`,[`no_relevant_routine_biomarker`],`Спортивные аминокислоты: рутинные анализы не требуются.`,`none`),T(`knowledge_beta_alanine`,`intentionally_not_applicable`,[`no_relevant_routine_biomarker`],`Рутинные анализы не требуются.`,`none`),T(`knowledge_bilberry_anthocyanins`,`intentionally_not_applicable`,[`no_relevant_routine_biomarker`],`Зрение/wellness: подходящих routine biomarkerId нет.`,`none`),T(`knowledge_boron`,`intentionally_not_applicable`,[`no_relevant_routine_biomarker`],`Рутинного анализа статуса бора нет; lab-гайд неприменим.`,`none`),T(`knowledge_caffeine`,`weak_lab_link`,[`lab_relation_too_weak`,`no_relevant_routine_biomarker`],`Стимулятор без рутинного маркера; риски покрыты профилем безопасности.`,`none`),T(`knowledge_choline`,`weak_lab_link`,[`lab_relation_too_weak`],`Связь с рутинными анализами слабая; правило намеренно не добавлено.`,`none`),T(`knowledge_citicoline`,`intentionally_not_applicable`,[`no_relevant_routine_biomarker`],`Рутинные анализы не требуются.`,`none`),T(`knowledge_citrulline_malate`,`intentionally_not_applicable`,[`no_relevant_routine_biomarker`],`Спортивная добавка: рутинные анализы не требуются.`,`none`),T(`knowledge_colostrum`,`weak_lab_link`,[`lab_relation_too_weak`],`Иммунный контекст слишком широк для routine biomarkerId.`,`none`),T(`knowledge_digestive_enzymes`,`intentionally_not_applicable`,[`symptom_or_context_based`],`Зависит от симптомов ЖКТ, а не от рутинных анализов.`,`none`),T(`knowledge_eaa`,`intentionally_not_applicable`,[`no_relevant_routine_biomarker`],`Спортивные аминокислоты: рутинные анализы не требуются.`,`none`),T(`knowledge_gaba`,`intentionally_not_applicable`,[`no_relevant_routine_biomarker`],`Сон/успокоение: рутинные анализы не требуются.`,`none`),T(`knowledge_glutamine`,`intentionally_not_applicable`,[`no_relevant_routine_biomarker`],`Спортивная добавка: рутинные анализы не требуются.`,`none`),T(`knowledge_glycine`,`intentionally_not_applicable`,[`no_relevant_routine_biomarker`],`Сон: рутинные анализы не требуются.`,`none`),T(`knowledge_hmb`,`intentionally_not_applicable`,[`no_relevant_routine_biomarker`],`Спортивная добавка: рутинные анализы не требуются.`,`none`),T(`knowledge_hyaluronic_acid`,`intentionally_not_applicable`,[`no_relevant_routine_biomarker`],`Кожа: подходящих routine biomarkerId нет.`,`none`),T(`knowledge_l_glutamine_gut`,`intentionally_not_applicable`,[`symptom_or_context_based`],`ЖКТ-контекст симптомный; рутинных biomarkerId нет.`,`none`),T(`knowledge_l_theanine`,`intentionally_not_applicable`,[`no_relevant_routine_biomarker`],`Сон/успокоение: рутинные анализы не требуются.`,`none`),T(`knowledge_lactase`,`intentionally_not_applicable`,[`symptom_or_context_based`],`Зависит от симптомов, не от рутинных анализов.`,`none`),T(`knowledge_lions_mane`,`weak_lab_link`,[`lab_relation_too_weak`,`no_relevant_routine_biomarker`],`Для Lion’s Mane нет надёжного routine biomarkerId; риски покрываются профилем безопасности и текстом справочника.`,`none`),T(`knowledge_lutein`,`intentionally_not_applicable`,[`no_relevant_routine_biomarker`],`Зрение: подходящих routine biomarkerId нет.`,`none`),T(`knowledge_melatonin`,`intentionally_not_applicable`,[`no_relevant_routine_biomarker`],`Сон: рутинные анализы не требуются.`,`none`),T(`knowledge_multivitamin`,`weak_lab_link`,[`requires_product_composition`],`Мультивитамин зависит от состава этикетки; универсальная structured lab rule невозможна без конкретного продукта.`,`none`),T(`knowledge_phosphatidylserine`,`intentionally_not_applicable`,[`no_relevant_routine_biomarker`],`Ноотроп: рутинные анализы не требуются.`,`none`),T(`knowledge_pre_workout_complex`,`doctor_only_no_rule`,[`high_risk_denylist`,`requires_product_composition`,`requires_new_biomarker_definition`],`High-risk комплекс: универсальная structured lab rule не поддерживается.`,`safety_profile_flags`),T(`knowledge_prebiotic`,`weak_lab_link`,[`lab_relation_too_weak`],`Связь с рутинными анализами слабая; правило намеренно не добавлено.`,`none`),T(`knowledge_probiotic`,`intentionally_not_applicable`,[`symptom_or_context_based`,`no_relevant_routine_biomarker`],`Микробиом не оценивается рутинными анализами; зависит от симптомов.`,`none`),T(`knowledge_silicon`,`intentionally_not_applicable`,[`no_relevant_routine_biomarker`],`Кожа/волосы: подходящих routine biomarkerId нет.`,`none`),T(`knowledge_taurine`,`weak_lab_link`,[`lab_relation_too_weak`],`Сердечный контекст без маркеров давления в справочнике.`,`none`),T(`knowledge_tryptophan`,`weak_lab_link`,[`lab_relation_too_weak`],`Серотонергический контекст; риск лекарств покрыт профилем безопасности.`,`none`),T(`knowledge_vitamin_a_retinol`,`doctor_only_no_rule`,[`high_risk_denylist`,`requires_new_biomarker_definition`],`High-risk ретинол: универсальная structured lab rule не поддерживается.`,`none`),T(`knowledge_vitamin_e`,`weak_lab_link`,[`lab_relation_too_weak`],`Спец. анализ нерутинный; антикоагулянты покрыты профилем безопасности.`,`none`),T(`knowledge_zeaxanthin`,`intentionally_not_applicable`,[`no_relevant_routine_biomarker`],`Зрение: подходящих routine biomarkerId нет.`,`none`)]),D=new Map(E.map(e=>[e.supplementKnowledgeId,e])),O=new Set([`true_gap`,`needs_biomarker_expansion`,`needs_safety_profile`,`needs_product_label`,`deferred_research`]),k=new Set([`intentionally_not_applicable`,`weak_lab_link`,`doctor_only_no_rule`]),A=`Для этого БАДа есть структурированная связь с анализами.`,j=`Для этого БАДа ещё не описана структурированная связь с анализами.`;function M(e){return O.has(e)}function N(e){return k.has(e)}function P(e){return{supplementKnowledgeId:e,classification:`has_structured_rule`,reasons:[],displaySummary:A,recommendedNextCycle:`none`,affectsReadiness:!1}}function F(e){return{supplementKnowledgeId:e,classification:`true_gap`,reasons:[`rule_should_be_added_later`],displaySummary:j,recommendedNextCycle:`rule_expansion`,affectsReadiness:!0}}function I(e){return D.get(e)||(a(e)?P(e):F(e))}function L(e){return a(e)?!1:N(I(e).classification)}function R(e){return a(e)?!1:M(I(e).classification)}var z=`knowledge_magnesium_glycinate`,B=[`egfr`,`creatinine`],V=new Set([`knowledge_vitamin_a_retinol`,`knowledge_5_htp`,`knowledge_pre_workout_complex`]),H=[`missing_structured_lab_rule`,`needs_biomarker_expansion`,`needs_safety_profile`,`needs_product_label`,`deferred_rule_research`],U=[`rule_intentionally_not_applicable`,`weak_lab_link`,`doctor_only_no_structured_rule`];function W(e){switch(e){case`has_structured_rule`:return null;case`intentionally_not_applicable`:return`rule_intentionally_not_applicable`;case`weak_lab_link`:return`weak_lab_link`;case`needs_biomarker_expansion`:return`needs_biomarker_expansion`;case`needs_safety_profile`:return`needs_safety_profile`;case`needs_product_label`:return`needs_product_label`;case`doctor_only_no_rule`:return`doctor_only_no_structured_rule`;case`deferred_research`:return`deferred_rule_research`;case`true_gap`:return`missing_structured_lab_rule`;default:return`missing_structured_lab_rule`}}function G(e,t,n){if(n)return;let r=W(I(t).classification);r&&e.push(r)}function K(e){return H.some(t=>e.includes(t))}new Set([`missing_weight`,`missing_sex`,`missing_age`,`missing_required_labs`,`outdated_required_labs`,`blocking_labs`,`caution_labs`,`missing_kidney_labs`,`safety_profile_warning`,`safety_profile_strong_warning`,`safety_profile_blocks_personalized_apply`]),new Set([`missing_serving_dose_text`,`missing_structured_lab_rule`,`rule_intentionally_not_applicable`,`weak_lab_link`,`needs_biomarker_expansion`,`needs_safety_profile`,`needs_product_label`,`doctor_only_no_structured_rule`,`deferred_rule_research`,`missing_pde_model`,`pde_not_enabled_for_apply`,`catalog_lab_tests_unmapped`,`catalog_requires_labs_or_doctor`,`tier4_blocked`,`denylist`,`unknown_tier0`]);function q(e){return typeof e==`number`&&Number.isFinite(e)&&e>0}function J(e){return typeof e==`number`&&Number.isFinite(e)&&e>0}function Y(e){return e===`male`||e===`female`}function X(e){if(e)return{sex:e.sex===`male`||e.sex===`female`?e.sex:`unknown`,ageYears:e.ageYears}}function Z(e,t,n,r){let i=c(e);if(!i)return!1;let a=s(t,e);if(!a)return!1;let l=o({definition:i,result:a,profile:X(n),nowISO:r});return l.status!==`missing`&&l.status!==`outdated`}function Q(e,t,n){return B.some(r=>Z(r,e,t,n))}function $(e,t,n){let r=[],i=m(e.id);if(i?.model.kind===`profile_weight_band`)for(let e of i.model.requiredProfileFields)e===`weightKg`&&!q(t.weightKg)&&r.push(`weightKg`);return n===`profile_required`&&(q(t.weightKg)||r.push(`weightKg`),Y(t.sex)||r.push(`sex`),J(t.ageYears)||r.push(`ageYears`)),[...new Set(r)]}function ee(e,t){let n=t=>e.includes(t);return n(`tier4_blocked`)||t.tier===4||n(`catalog_requires_labs_or_doctor`)?`doctor_only`:t.labStatus===`blocked`||t.pdeStatus===`blocked`||n(`blocking_labs`)?`blocked`:n(`denylist`)?`not_supported`:n(`missing_weight`)||n(`missing_sex`)||n(`missing_age`)?`missing_profile`:n(`missing_required_labs`)||n(`missing_kidney_labs`)?`missing_labs`:n(`outdated_required_labs`)?`outdated_labs`:K(e)?`no_structured_rules`:n(`missing_serving_dose_text`)?`no_serving_content`:n(`missing_pde_model`)||n(`pde_not_enabled_for_apply`)?`no_personalized_model`:`ready`}function te(n){let r=`supplements.display.coverage.itemStatus.${n.status}`,i=e(r,void 0,t());return i===r?e(`supplements.display.coverage.itemStatus.ready`,void 0,t()):i}function ne(e){let t=[],{item:n,profile:r,labResults:i,nowISO:a}=e,o=$(n,r,e.servingStatus);return o.includes(`weightKg`)&&t.push(`missing_weight`),o.includes(`sex`)&&t.push(`missing_sex`),o.includes(`ageYears`)&&t.push(`missing_age`),e.labGuidance.missingLabIds.length>0&&t.push(`missing_required_labs`),e.labGuidance.outdatedLabIds.length>0&&t.push(`outdated_required_labs`),e.labGuidance.blockingLabIds.length>0&&t.push(`blocking_labs`),e.labGuidance.cautionLabIds.length>0&&t.push(`caution_labs`),n.id===z&&e.pdeEnabledForEngine&&q(r.weightKg)&&!e.canPersonalizedApply&&!Q(i,r,a)&&t.push(`missing_kidney_labs`),e.hasCatalogDoseText||t.push(`missing_serving_dose_text`),G(t,n.id,e.hasStructuredLabRule),e.hasPdeModel?e.pdeEnabledForEngine||t.push(`pde_not_enabled_for_apply`):t.push(`missing_pde_model`),e.mappingUnmapped&&t.push(`catalog_lab_tests_unmapped`),(n.labRequirement===`required`||n.riskLevel===`high`)&&t.push(`catalog_requires_labs_or_doctor`),e.pdeSafetyTier===4&&t.push(`tier4_blocked`),V.has(n.id)&&t.push(`denylist`),e.hasExplicitTier||t.push(`unknown_tier0`),t}function re(e,t,n){t===`caution`&&e.push(`safety_profile_warning`),t===`strong_caution`&&e.push(`safety_profile_strong_warning`),n&&e.push(`safety_profile_blocks_personalized_apply`)}function ie(e,t,r,i,o){let s=!!a(e.id),c=!!e.serving,g=!!e.serving?.doseText,_=Array.isArray(e.labTests)&&e.labTests.length>0,v=e.labRequirement??`not_required`,y=e.riskLevel??`low`,b=d({supplementKnowledgeId:e.id,profile:t,labResults:r,nowISO:i}),x=h(b),w=l(e.id),T=m(e.id),E=f({supplementKnowledgeId:e.id,profile:t,labGuidance:b,labResults:r,nowISO:i}),D=u(e,t),O=S(e.labTests),k=[...O.unmapped,...O.mapped.filter(e=>e.biomarkerIds.length===0).map(e=>e.text)].filter((e,t,n)=>n.indexOf(e)===t),A=p(e.id),j=I(e.id),M=!s,N=!s&&R(e.id),P=L(e.id),F=n({supplementKnowledgeId:e.id,safetyProfile:o}),z=E.canApplyToNewPlanItem,B=F.blocksPersonalizedApply,V=z&&B,H=z&&!B,U=F.status===`caution`||F.status===`strong_caution`,W=ne({item:e,profile:t,labResults:r,nowISO:i,hasStructuredLabRule:s,hasCatalogDoseText:g,hasPdeModel:!!T,pdeEnabledForEngine:T?.enabledForEngine??!1,pdeSafetyTier:w.safetyTier,hasExplicitTier:A,canPersonalizedApply:z,labGuidance:b,servingStatus:D.status,mappingUnmapped:C(O)});re(W,F.status,B);let G=ee(W,{tier:w.safetyTier,labStatus:b.status,pdeStatus:E.status,catalogRiskLevel:y}),K={supplementKnowledgeId:e.id,name:e.name,mainSection:e.mainSection,hasCatalogServing:c,hasCatalogDoseText:g,hasCatalogLabTestsText:_,catalogLabRequirement:v,catalogRiskLevel:y,hasStructuredLabRule:s,hasPdeTierPolicy:A,pdeSafetyTier:w.safetyTier,hasPdeModel:!!T,pdeModelKind:T?.model.kind,pdeEnabledForEngine:T?.enabledForEngine??!1,labGuidanceStatus:b.status,labAddPolicySeverity:x.severity,personalizedDoseStatus:E.status,canPersonalizedApplyBeforeSafety:z,canPersonalizedApply:H,personalizedApplyBlockedBySafety:V,safetyGuidanceStatus:F.status,safetyMatchedFlagIds:[...F.matchedFlagIds],safetyWarningCount:F.warnings.length,safetyBlocksPersonalizedApply:B,hasSafetyProfileWarnings:U,requiredLabIds:[...b.requiredLabIds],usefulLabIds:[...b.usefulLabIds],missingRequiredLabIds:[...b.missingLabIds],outdatedLabIds:[...b.outdatedLabIds],blockingLabIds:[...b.blockingLabIds],cautionLabIds:[...b.cautionLabIds],missingProfileFields:$(e,t,D.status),catalogLabTestsText:[...e.labTests??[]],mappedCatalogLabTestIds:[...O.allBiomarkerIds],unmappedCatalogLabTests:k,issues:W,status:G,summary:``,ruleClassification:j,hasClassifiedRuleGap:M,hasActionableRuleGap:N,isRuleIntentionallyNotApplicable:P};return K.summary=te(K),K}function ae(e,t,n,a){let o=new Set(n.map(e=>e.biomarkerId));return{total:e.length,withStructuredLabRules:e.filter(e=>e.hasStructuredLabRule).length,withoutStructuredLabRules:e.filter(e=>!e.hasStructuredLabRule).length,withCatalogDoseText:e.filter(e=>e.hasCatalogDoseText).length,withoutCatalogDoseText:e.filter(e=>!e.hasCatalogDoseText).length,withCatalogLabTestsText:e.filter(e=>e.hasCatalogLabTestsText).length,withPdeModel:e.filter(e=>e.hasPdeModel).length,withoutPdeModel:e.filter(e=>!e.hasPdeModel).length,pdeEnabledForEngineCount:e.filter(e=>e.pdeEnabledForEngine).length,personalizedApplyReady:e.filter(e=>e.canPersonalizedApply).length,blockedOrDoctorOnly:e.filter(e=>[`blocked`,`doctor_only`,`not_supported`].includes(e.status)).length,catalogHighRiskCount:e.filter(e=>e.catalogRiskLevel===`high`).length,profileComplete:q(t.weightKg)&&!!t.sex&&J(t.ageYears),labResultsCount:o.size,missingProfileCount:e.filter(e=>e.status===`missing_profile`?!0:e.issues.includes(`missing_weight`)||e.issues.includes(`missing_sex`)||e.issues.includes(`missing_age`)).length,missingLabsCount:e.filter(e=>e.issues.some(e=>e===`missing_required_labs`||e===`missing_kidney_labs`)).length,outdatedLabsCount:e.filter(e=>e.issues.includes(`outdated_required_labs`)).length,unmappedCatalogLabTestsCount:e.filter(e=>e.issues.includes(`catalog_lab_tests_unmapped`)).length,classifiedNoRuleCount:e.filter(e=>!e.hasStructuredLabRule).length,actionableMissingRuleCount:e.filter(e=>e.hasActionableRuleGap).length,intentionallyNotApplicableRuleCount:e.filter(e=>e.ruleClassification.classification===`intentionally_not_applicable`).length,weakLabLinkRuleCount:e.filter(e=>e.ruleClassification.classification===`weak_lab_link`).length,needsBiomarkerExpansionCount:e.filter(e=>e.ruleClassification.classification===`needs_biomarker_expansion`).length,needsSafetyProfileCount:e.filter(e=>e.ruleClassification.classification===`needs_safety_profile`).length,needsProductLabelCount:e.filter(e=>e.ruleClassification.classification===`needs_product_label`).length,doctorOnlyNoRuleCount:e.filter(e=>e.ruleClassification.classification===`doctor_only_no_rule`).length,deferredRuleResearchCount:e.filter(e=>e.ruleClassification.classification===`deferred_research`).length,trueMissingRuleCount:e.filter(e=>e.issues.includes(`missing_structured_lab_rule`)).length,safetyProfileActiveFlagCount:r(a),safetyProfileHasNotes:!!a?.notes?.trim(),safetyProfileIsEmpty:i(a),safetyWarningsCount:e.filter(e=>e.safetyGuidanceStatus===`caution`).length,safetyStrongWarningsCount:e.filter(e=>e.safetyGuidanceStatus===`strong_caution`).length,safetyPersonalizedApplyBlocksCount:e.filter(e=>e.safetyBlocksPersonalizedApply).length,itemsWithSafetyWarningsCount:e.filter(e=>e.hasSafetyProfileWarnings).length,itemsWithSafetyBlocksCount:e.filter(e=>e.safetyBlocksPersonalizedApply).length}}function oe(e){let t=e.profile??{},n=e.labResults??[],r=e.nowISO??new Date().toISOString(),i=[...e.knowledgeItems].sort((e,t)=>e.id.localeCompare(t.id)).map(i=>ie(i,t,n,r,e.safetyProfile));return{items:i,summary:ae(i,t,n,e.safetyProfile)}}function se(e,t){let n=[...e].sort((e,t)=>e.supplementKnowledgeId.localeCompare(t.supplementKnowledgeId));return t===`all`?n:n.filter(e=>{switch(t){case`ready`:return e.status===`ready`;case`missing_profile`:return e.status===`missing_profile`||e.issues.some(e=>e===`missing_weight`||e===`missing_sex`||e===`missing_age`);case`missing_labs`:return e.issues.some(e=>e===`missing_required_labs`||e===`missing_kidney_labs`);case`outdated_labs`:return e.issues.includes(`outdated_required_labs`);case`no_structured_rules`:return K(e.issues);case`rule_not_applicable`:return U.some(t=>e.issues.includes(t));case`rule_action_required`:return e.hasActionableRuleGap;case`needs_biomarker_expansion`:return e.issues.includes(`needs_biomarker_expansion`);case`needs_safety_profile`:return e.issues.includes(`needs_safety_profile`);case`no_serving_content`:return e.issues.includes(`missing_serving_dose_text`);case`no_personalized_model`:return e.issues.includes(`missing_pde_model`)||e.issues.includes(`pde_not_enabled_for_apply`);case`apply_ready`:return e.canPersonalizedApply;case`blocked_or_doctor`:return[`blocked`,`doctor_only`,`not_supported`].includes(e.status)||e.issues.includes(`tier4_blocked`)||e.issues.includes(`denylist`)||e.issues.includes(`catalog_requires_labs_or_doctor`);case`unmapped_lab_tests`:return e.issues.includes(`catalog_lab_tests_unmapped`);case`safety_warnings`:return e.hasSafetyProfileWarnings;case`safety_blocks_personalized_apply`:return e.safetyBlocksPersonalizedApply;default:return!0}})}export{se as n,h as r,oe as t};