@iaforged/context-code 2.3.6 → 2.3.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- import{feature as e}from"../../../recovery/bunBundleShim.js";import{jsx as t,jsxs as o,Fragment as n}from"react/jsx-runtime";import{createRequire as a}from"module";const r=a(import.meta.url);import i from"figures";import{useCallback as s,useEffect as l,useLayoutEffect as c,useMemo as d,useRef as p,useState as m}from"react";import{useNotifications as u}from"../../../context/notifications.js";import{logEvent as h}from"../../../services/analytics/index.js";import{useAppState as g,useAppStateStore as f,useSetAppState as C}from"../../../state/AppState.js";import{getSdkBetas as b,getSessionId as x,isSessionPersistenceDisabled as y,setHasExitedPlanMode as P,setNeedsAutoModeExitAttachment as v,setNeedsPlanModeExitAttachment as S}from"../../../bootstrap/state.js";import{generateSessionName as A}from"../../../commands/rename/generateSessionName.js";import{launchUltraplan as R}from"../../../commands/ultraplan.js";import{Box as _,Text as j}from"../../../ink.js";import{AGENT_TOOL_NAME as w}from"../../../tools/AgentTool/constants.js";import{EXIT_PLAN_MODE_V2_TOOL_NAME as k}from"../../../tools/ExitPlanModeTool/constants.js";import{TEAM_CREATE_TOOL_NAME as I}from"../../../tools/TeamCreateTool/constants.js";import{isAgentSwarmsEnabled as T}from"../../../utils/agentSwarmsEnabled.js";import{calculateContextPercentages as M,getContextWindowForModel as E}from"../../../utils/context.js";import{getExternalEditor as L}from"../../../utils/editor.js";import{getDisplayPath as F}from"../../../utils/file.js";import{toIDEDisplayName as D}from"../../../utils/ide.js";import{logError as N}from"../../../utils/log.js";import{enqueuePendingNotification as U}from"../../../utils/messageQueueManager.js";import{createUserMessage as $}from"../../../utils/messages.js";import{getMainLoopModel as B,getRuntimeMainLoopModel as V}from"../../../utils/model/model.js";import{createPromptRuleContent as X,isClassifierPermissionsEnabled as q,PROMPT_PREFIX as O}from"../../../utils/permissions/bashClassifier.js";import{toExternalPermissionMode as z}from"../../../utils/permissions/PermissionMode.js";import{isAutoModeGateEnabled as K,restoreDangerousPermissions as Q,stripDangerousPermissionsForAutoMode as G}from"../../../utils/permissions/permissionSetup.js";import{getPewterLedgerVariant as H,isPlanModeInterviewPhaseEnabled as J}from"../../../utils/planModeV2.js";import{getPlan as W,getPlanFilePath as Y}from"../../../utils/plans.js";import{editFileInEditor as Z,editPromptInEditor as ee}from"../../../utils/promptEditor.js";import{getCurrentSessionTitle as te,getTranscriptPath as oe,saveAgentName as ne,saveCustomTitle as ae}from"../../../utils/sessionStorage.js";import{getSettings_DEPRECATED as re}from"../../../utils/settings/settings.js";import{Select as ie}from"../../CustomSelect/index.js";import{Markdown as se}from"../../Markdown.js";import{PermissionDialog as le}from"../PermissionDialog.js";import{PermissionRuleExplanation as ce}from"../PermissionRuleExplanation.js";const de=e("TRANSCRIPT_CLASSIFIER")?r("../../../utils/permissions/autoModeState.js"):null;import{maybeResizeAndDownsampleImageBlock as pe}from"../../../utils/imageResizer.js";import{cacheImagePath as me,storeImage as ue}from"../../../utils/imageStore.js";export function buildPermissionUpdates(e,t){const o=[{type:"setMode",mode:z(e),destination:"session"}];return q()&&t&&t.length>0&&o.push({type:"addRules",rules:t.map(e=>({toolName:e.tool,ruleContent:X(e.prompt)})),behavior:"allow",destination:"session"}),o}export function autoNameSessionFromPlan(e,t,o){y()||0===re()?.cleanupPeriodDays||!o&&te(x())||A([$({content:e.slice(0,1e3)})],(new AbortController).signal).then(async e=>{if(!e||te(x()))return;const o=x(),n=oe();await ae(o,e,n,"auto"),await ne(o,e,n,"auto"),t(t=>t.standaloneAgentContext?.name===e?t:{...t,standaloneAgentContext:{...t.standaloneAgentContext,name:e}})}).catch(N)}export function ExitPlanModePermissionRequest({toolUseConfirm:a,onDone:r,onReject:b,workerBadge:x,setStickyFooter:y}){const A=g(e=>e.toolPermissionContext),w=C(),M=f(),{addNotification:E}=u(),[B,V]=m(""),[X,z]=m({}),te=p(0),ne=g(e=>e.settings.showClearContextOnPlanAccept)??!1,ae=g(e=>e.ultraplanSessionUrl),re=g(e=>e.ultraplanLaunching),he=!!e("ULTRAPLAN")&&(!ae&&!re),ge=a.assistantMessage.message.usage,{mode:fe,isAutoModeAvailable:Ce,isBypassPermissionsModeAvailable:be}=A,xe=d(()=>buildPlanApprovalOptions({showClearContext:ne,showUltraplan:he,usedPercent:ne?getContextUsedPercent(ge,fe):null,isAutoModeAvailable:Ce,isBypassPermissionsModeAvailable:be,onFeedbackChange:V}),[ne,he,ge,fe,Ce,be]);function onImagePaste(e,t,o,n,a){const r=te.current++,i={id:r,type:"image",content:e,mediaType:t||"image/png",filename:o||"Pasted image",dimensions:n};me(i),ue(i),z(e=>({...e,[r]:i}))}const ye=s(e=>{z(t=>{const o={...t};return delete o[e],o})},[]),Pe=Object.values(X).filter(e=>"image"===e.type),ve=Pe.length>0,Se=a.tool.name===k,Ae=Se?void 0:a.input.plan,Re=Se?Y():void 0,_e=a.input.allowedPrompts,je=Ae??W(),we=!je||""===je.trim(),[ke]=m(()=>H()??void 0),[Ie,Te]=m(()=>Ae||(plan??"No se encontró ningún plan. Por favor, escribe tu plan en el archivo de plan primero.")),[Me,Ee]=m(!1),[Le,Fe]=m(!1);l(()=>{if(Me){const e=setTimeout(Ee,5e3,!1);return()=>clearTimeout(e)}},[Me]);async function handleResponse(t){const o=B.trim(),n=o||void 0;if("ultraplan"===t)return h("tengu_plan_exit",{planLengthChars:Ie.length,outcome:"ultraplan",interviewPhaseEnabled:J(),planStructureVariant:ke}),r(),b(),a.onReject("Plan siendo refinado a través de Ultraplan; por favor, espera el resultado."),void R({blurb:"",seedPlan:Ie,getAppState:M.getState,setAppState:M.setState,signal:(new AbortController).signal}).then(e=>U({value:e,mode:"task-notification"})).catch(N);const i=Se&&!Le?{}:{plan:Ie};if(e("TRANSCRIPT_CLASSIFIER")){const e=("yes-resume-auto-mode"===t||"yes-auto-clear-context"===t)&&K(),o=de?.isAutoModeActive()??!1;"no"!==t&&!e&&o&&(de?.setAutoModeActive(!1),v(!0),w(e=>({...e,toolPermissionContext:{...Q(e.toolPermissionContext),prePlanMode:void 0}})))}const s=!!e("TRANSCRIPT_CLASSIFIER")&&"yes-resume-auto-mode"===t,l="yes-accept-edits-keep-context"===t||"yes-default-keep-context"===t||s;if("no"!==t&&autoNameSessionFromPlan(Ie,w,!l),"no"!==t&&!l){let o="default";"yes-bypass-permissions"===t?o="bypassPermissions":"yes-accept-edits"===t?o="acceptEdits":e("TRANSCRIPT_CLASSIFIER")&&"yes-auto-clear-context"===t&&K()&&(o="auto",de?.setAutoModeActive(!0)),h("tengu_plan_exit",{planLengthChars:Ie.length,outcome:t,clearContext:!0,interviewPhaseEnabled:J(),planStructureVariant:ke,hasFeedback:!!n});const i="",s=`\n\nIf you need specific details from before exiting plan mode (like exact code snippets, error messages, or content you generated), read the full transcript at: ${oe()}`,l=T()?`\n\nIf this plan can be broken down into multiple independent tasks, consider using the ${I} tool to create a team and parallelize the work.`:"",c=n?`\n\nUser feedback on this plan: ${n}`:"";return w(e=>({...e,initialMessage:{message:{...$({content:`Implementa el siguiente plan:\n\n${Ie}${i}${s}${l}${c}`}),planContent:Ie},clearContext:!0,mode:o,allowedPrompts:_e}})),P(!0),r(),b(),void a.onReject()}if(e("TRANSCRIPT_CLASSIFIER")&&"yes-resume-auto-mode"===t&&K())return h("tengu_plan_exit",{planLengthChars:Ie.length,outcome:t,clearContext:!1,interviewPhaseEnabled:J(),planStructureVariant:ke,hasFeedback:!!n}),P(!0),S(!0),de?.setAutoModeActive(!0),w(e=>({...e,toolPermissionContext:G({...e.toolPermissionContext,mode:"auto",prePlanMode:void 0})})),r(),void a.onAllow(i,[],n);const c={"yes-accept-edits-keep-context":A.isBypassPermissionsModeAvailable?"bypassPermissions":"acceptEdits","yes-default-keep-context":"default",...e("TRANSCRIPT_CLASSIFIER")?{"yes-resume-auto-mode":"default"}:{}}[t];if(c)return h("tengu_plan_exit",{planLengthChars:Ie.length,outcome:t,clearContext:!1,interviewPhaseEnabled:J(),planStructureVariant:ke,hasFeedback:!!n}),P(!0),S(!0),r(),void a.onAllow(i,buildPermissionUpdates(c,_e),n);const d={"yes-bypass-permissions":"bypassPermissions","yes-accept-edits":"acceptEdits"}[t];if(d)return h("tengu_plan_exit",{planLengthChars:Ie.length,outcome:t,interviewPhaseEnabled:J(),planStructureVariant:ke,hasFeedback:!!n}),P(!0),S(!0),r(),void a.onAllow(i,buildPermissionUpdates(d,_e),n);if("no"===t){if(!o&&!ve)return;let e;h("tengu_plan_exit",{planLengthChars:Ie.length,outcome:"no",interviewPhaseEnabled:J(),planStructureVariant:ke}),ve&&(e=await Promise.all(Pe.map(async e=>{const t={type:"image",source:{type:"base64",media_type:e.mediaType||"image/png",data:e.content}};return(await pe(t)).block}))),r(),b(),a.onReject(o||(ve?"(See attached image)":void 0),e&&e.length>0?e:void 0)}}const De=L(),Ne=De?D(De):null,Ue=p(handleResponse);Ue.current=handleResponse;const $e=p(void 0);$e.current=()=>{h("tengu_plan_exit",{planLengthChars:Ie.length,outcome:"no",interviewPhaseEnabled:J(),planStructureVariant:ke}),r(),b(),a.onReject()};const Be=!we&&!!y;if(c(()=>{if(Be)return y(o(_,{flexDirection:"column",borderStyle:"round",borderColor:"planMode",borderLeft:!1,borderRight:!1,borderBottom:!1,paddingX:1,children:[t(j,{dimColor:!0,children:"¿Deseas continuar?"}),t(_,{marginTop:1,children:t(ie,{options:xe,onChange:e=>{Ue.current(e)},onCancel:()=>$e.current?.(),onImagePaste,pastedContents:X,onRemoveImage:ye})}),Ne&&o(_,{flexDirection:"row",gap:1,marginTop:1,children:[t(j,{dimColor:!0,children:"ctrl-g para editar en "}),t(j,{bold:!0,dimColor:!0,children:Ne}),Se&&Re&&o(j,{dimColor:!0,children:[" · ",F(Re)]}),Me&&o(n,{children:[t(j,{dimColor:!0,children:" · "}),o(j,{color:"success",children:[i.tick,"¡Plan guardado!"]})]})]})]})),()=>y(null)},[Be,y,xe,X,Ne,Se,Re,Me]),we){function handleEmptyPlanResponse(t){if("yes"===t){if(h("tengu_plan_exit",{planLengthChars:0,outcome:"yes-default",interviewPhaseEnabled:J(),planStructureVariant:ke}),e("TRANSCRIPT_CLASSIFIER")){(de?.isAutoModeActive()??!1)&&(de?.setAutoModeActive(!1),v(!0),w(e=>({...e,toolPermissionContext:{...Q(e.toolPermissionContext),prePlanMode:void 0}})))}P(!0),S(!0),r(),a.onAllow({},[{type:"setMode",mode:"default",destination:"session"}])}else h("tengu_plan_exit",{planLengthChars:0,outcome:"no",interviewPhaseEnabled:J(),planStructureVariant:ke}),r(),b(),a.onReject()}return t(le,{color:"planMode",title:"¿Salir del modo plan?",workerBadge:x,children:o(_,{flexDirection:"column",paddingX:1,marginTop:1,children:[t(j,{children:"Context quiere salir del modo plan"}),t(_,{marginTop:1,children:t(ie,{options:[{label:"Sí",value:"yes"},{label:"No",value:"no"}],onChange:handleEmptyPlanResponse,onCancel:()=>{h("tengu_plan_exit",{planLengthChars:0,outcome:"no",interviewPhaseEnabled:J(),planStructureVariant:ke}),r(),b(),a.onReject()}})})]})})}return o(_,{flexDirection:"column",tabIndex:0,autoFocus:!0,onKeyDown:e=>e.ctrl&&"g"===e.key?(e.preventDefault(),h("tengu_plan_external_editor_used",{}),void(async()=>{if(Se&&Re){const e=await Z(Re);e.error&&E({key:"external-editor-error",text:e.error,color:"warning",priority:"high"}),null!==e.content&&(e.content!==Ie&&Fe(!0),Te(e.content),Ee(!0))}else{const e=await ee(Ie);e.error&&E({key:"external-editor-error",text:e.error,color:"warning",priority:"high"}),null!==e.content&&e.content!==Ie&&(Te(e.content),Ee(!0))}})()):e.shift&&"tab"===e.key?(e.preventDefault(),void handleResponse(ne?"yes-accept-edits":"yes-accept-edits-keep-context")):void 0,children:[t(le,{color:"planMode",title:"¿Listo para programar?",innerPaddingX:0,workerBadge:x,children:o(_,{flexDirection:"column",marginTop:1,children:[t(_,{paddingX:1,flexDirection:"column",children:t(j,{children:"Aquí está el plan de Context:"})}),t(_,{borderColor:"subtle",borderStyle:"dashed",flexDirection:"column",borderLeft:!1,borderRight:!1,paddingX:1,marginBottom:1,overflow:"hidden",children:t(se,{children:Ie})}),o(_,{flexDirection:"column",paddingX:1,children:[t(ce,{permissionResult:a.permissionResult,toolType:"tool"}),q()&&_e&&_e.length>0&&o(_,{flexDirection:"column",marginBottom:1,children:[t(j,{bold:!0,children:"Permisos solicitados:"}),_e.map((e,t)=>o(j,{dimColor:!0,children:[" ","· ",e.tool,"(",O," ",e.prompt,")"]},t))]}),!Be&&o(n,{children:[t(j,{dimColor:!0,children:"Context ha elaborado un plan y está listo para ejecutarlo. ¿Deseas continuar?"}),t(_,{marginTop:1,children:t(ie,{options:xe,onChange:handleResponse,onCancel:()=>$e.current?.(),onImagePaste,pastedContents:X,onRemoveImage:ye})})]})]})]})}),!Be&&Ne&&o(_,{flexDirection:"row",gap:1,paddingX:1,marginTop:1,children:[o(_,{children:[t(j,{dimColor:!0,children:"ctrl-g para editar en "}),t(j,{bold:!0,dimColor:!0,children:Ne}),Se&&Re&&o(j,{dimColor:!0,children:[" · ",F(Re)]})]}),Me&&o(_,{children:[t(j,{dimColor:!0,children:" · "}),o(j,{color:"success",children:[i.tick,"¡Plan guardado!"]})]})]})]})}export function buildPlanApprovalOptions({showClearContext:t,showUltraplan:o,usedPercent:n,isAutoModeAvailable:a,isBypassPermissionsModeAvailable:r,onFeedbackChange:i}){const s=[],l=null!==n?` (${n}% usado)`:"";return t&&(e("TRANSCRIPT_CLASSIFIER")&&a?s.push({label:`Sí, borrar contexto${l} y usar modo automático`,value:"yes-auto-clear-context"}):r?s.push({label:`Sí, borrar contexto${l} y omitir permisos`,value:"yes-bypass-permissions"}):s.push({label:`Sí, borrar contexto${l} y auto-aceptar ediciones`,value:"yes-accept-edits"})),e("TRANSCRIPT_CLASSIFIER")&&a?s.push({label:"Sí, y usar modo automático",value:"yes-resume-auto-mode"}):r?s.push({label:"Sí, y omitir permisos",value:"yes-accept-edits-keep-context"}):s.push({label:"Sí, auto-aceptar ediciones",value:"yes-accept-edits-keep-context"}),s.push({label:"Sí, aprobar ediciones manualmente",value:"yes-default-keep-context"}),o&&s.push({label:"No, refinar con Ultraplan en Context Code en la web",value:"ultraplan"}),s.push({type:"input",label:"No, seguir planificando",value:"no",placeholder:"Dile a Context qué cambiar",description:"shift+tab para aprobar con este comentario",onChange:i}),s}function getContextUsedPercent(e,t){if(!e)return null;const o=V({permissionMode:t,mainLoopModel:B(),exceeds200kTokens:!1}),n=E(o,b()),{used:a}=M({input_tokens:e.input_tokens,cache_creation_input_tokens:e.cache_creation_input_tokens??0,cache_read_input_tokens:e.cache_read_input_tokens??0},n);return a}
1
+ import{feature as e}from"../../../recovery/bunBundleShim.js";import{jsx as t,jsxs as o,Fragment as n}from"react/jsx-runtime";import{createRequire as a}from"module";const r=a(import.meta.url);import i from"figures";import{useCallback as s,useEffect as l,useLayoutEffect as c,useMemo as d,useRef as p,useState as m}from"react";import{useNotifications as u}from"../../../context/notifications.js";import{logEvent as h}from"../../../services/analytics/index.js";import{useAppState as g,useAppStateStore as f,useSetAppState as C}from"../../../state/AppState.js";import{getSdkBetas as b,getSessionId as x,isSessionPersistenceDisabled as y,setHasExitedPlanMode as P,setNeedsAutoModeExitAttachment as v,setNeedsPlanModeExitAttachment as S}from"../../../bootstrap/state.js";import{generateSessionName as A}from"../../../commands/rename/generateSessionName.js";import{launchUltraplan as R}from"../../../commands/ultraplan.js";import{Box as _,Text as j}from"../../../ink.js";import{AGENT_TOOL_NAME as w}from"../../../tools/AgentTool/constants.js";import{EXIT_PLAN_MODE_V2_TOOL_NAME as k}from"../../../tools/ExitPlanModeTool/constants.js";import{TEAM_CREATE_TOOL_NAME as I}from"../../../tools/TeamCreateTool/constants.js";import{isAgentSwarmsEnabled as T}from"../../../utils/agentSwarmsEnabled.js";import{calculateContextPercentages as M,getContextWindowForModel as E}from"../../../utils/context.js";import{getExternalEditor as L}from"../../../utils/editor.js";import{getDisplayPath as F}from"../../../utils/file.js";import{toIDEDisplayName as D}from"../../../utils/ide.js";import{logError as N}from"../../../utils/log.js";import{enqueuePendingNotification as U}from"../../../utils/messageQueueManager.js";import{createUserMessage as $}from"../../../utils/messages.js";import{getMainLoopModel as B,getRuntimeMainLoopModel as V}from"../../../utils/model/model.js";import{createPromptRuleContent as X,isClassifierPermissionsEnabled as q,PROMPT_PREFIX as O}from"../../../utils/permissions/bashClassifier.js";import{toExternalPermissionMode as z}from"../../../utils/permissions/PermissionMode.js";import{isAutoModeGateEnabled as K,restoreDangerousPermissions as Q,stripDangerousPermissionsForAutoMode as G}from"../../../utils/permissions/permissionSetup.js";import{getPewterLedgerVariant as H,isPlanModeInterviewPhaseEnabled as J}from"../../../utils/planModeV2.js";import{getPlan as W,getPlanFilePath as Y}from"../../../utils/plans.js";import{editFileInEditor as Z,editPromptInEditor as ee}from"../../../utils/promptEditor.js";import{getCurrentSessionTitle as te,getTranscriptPath as oe,saveAgentName as ne,saveCustomTitle as ae}from"../../../utils/sessionStorage.js";import{getSettings_DEPRECATED as re}from"../../../utils/settings/settings.js";import{Select as ie}from"../../CustomSelect/index.js";import{Markdown as se}from"../../Markdown.js";import{PermissionDialog as le}from"../PermissionDialog.js";import{PermissionRuleExplanation as ce}from"../PermissionRuleExplanation.js";const de=e("TRANSCRIPT_CLASSIFIER")?r("../../../utils/permissions/autoModeState.js"):null;import{maybeResizeAndDownsampleImageBlock as pe}from"../../../utils/imageResizer.js";import{cacheImagePath as me,storeImage as ue}from"../../../utils/imageStore.js";export function buildPermissionUpdates(e,t){const o=[{type:"setMode",mode:z(e),destination:"session"}];return q()&&t&&t.length>0&&o.push({type:"addRules",rules:t.map(e=>({toolName:e.tool,ruleContent:X(e.prompt)})),behavior:"allow",destination:"session"}),o}export function autoNameSessionFromPlan(e,t,o){y()||0===re()?.cleanupPeriodDays||!o&&te(x())||A([$({content:e.slice(0,1e3)})],(new AbortController).signal).then(async e=>{if(!e||te(x()))return;const o=x(),n=oe();await ae(o,e,n,"auto"),await ne(o,e,n,"auto"),t(t=>t.standaloneAgentContext?.name===e?t:{...t,standaloneAgentContext:{...t.standaloneAgentContext,name:e}})}).catch(N)}export function ExitPlanModePermissionRequest({toolUseConfirm:a,onDone:r,onReject:b,workerBadge:x,setStickyFooter:y}){const A=g(e=>e.toolPermissionContext),w=C(),M=f(),{addNotification:E}=u(),[B,V]=m(""),[X,z]=m({}),te=p(0),ne=g(e=>e.settings.showClearContextOnPlanAccept)??!1,ae=g(e=>e.ultraplanSessionUrl),re=g(e=>e.ultraplanLaunching),he=!!e("ULTRAPLAN")&&(!ae&&!re),ge=a.assistantMessage.message.usage,{mode:fe,isAutoModeAvailable:Ce,isBypassPermissionsModeAvailable:be}=A,xe=d(()=>buildPlanApprovalOptions({showClearContext:ne,showUltraplan:he,usedPercent:ne?getContextUsedPercent(ge,fe):null,isAutoModeAvailable:Ce,isBypassPermissionsModeAvailable:be,onFeedbackChange:V}),[ne,he,ge,fe,Ce,be]);function onImagePaste(e,t,o,n,a){const r=te.current++,i={id:r,type:"image",content:e,mediaType:t||"image/png",filename:o||"Pasted image",dimensions:n};me(i),ue(i),z(e=>({...e,[r]:i}))}const ye=s(e=>{z(t=>{const o={...t};return delete o[e],o})},[]),Pe=Object.values(X).filter(e=>"image"===e.type),ve=Pe.length>0,Se=a.tool.name===k,Ae=Se?void 0:a.input.plan,Re=Se?Y():void 0,_e=a.input.allowedPrompts,je=Ae??W(),we=!je||""===je.trim(),[ke]=m(()=>H()??void 0),[Ie,Te]=m(()=>Ae||(je??"No se encontró ningún plan. Por favor, escribe tu plan en el archivo de plan primero.")),[Me,Ee]=m(!1),[Le,Fe]=m(!1);l(()=>{if(Me){const e=setTimeout(Ee,5e3,!1);return()=>clearTimeout(e)}},[Me]);async function handleResponse(t){const o=B.trim(),n=o||void 0;if("ultraplan"===t)return h("tengu_plan_exit",{planLengthChars:Ie.length,outcome:"ultraplan",interviewPhaseEnabled:J(),planStructureVariant:ke}),r(),b(),a.onReject("Plan siendo refinado a través de Ultraplan; por favor, espera el resultado."),void R({blurb:"",seedPlan:Ie,getAppState:M.getState,setAppState:M.setState,signal:(new AbortController).signal}).then(e=>U({value:e,mode:"task-notification"})).catch(N);const i=Se&&!Le?{}:{plan:Ie};if(e("TRANSCRIPT_CLASSIFIER")){const e=("yes-resume-auto-mode"===t||"yes-auto-clear-context"===t)&&K(),o=de?.isAutoModeActive()??!1;"no"!==t&&!e&&o&&(de?.setAutoModeActive(!1),v(!0),w(e=>({...e,toolPermissionContext:{...Q(e.toolPermissionContext),prePlanMode:void 0}})))}const s=!!e("TRANSCRIPT_CLASSIFIER")&&"yes-resume-auto-mode"===t,l="yes-accept-edits-keep-context"===t||"yes-default-keep-context"===t||s;if("no"!==t&&autoNameSessionFromPlan(Ie,w,!l),"no"!==t&&!l){let o="default";"yes-bypass-permissions"===t?o="bypassPermissions":"yes-accept-edits"===t?o="acceptEdits":e("TRANSCRIPT_CLASSIFIER")&&"yes-auto-clear-context"===t&&K()&&(o="auto",de?.setAutoModeActive(!0)),h("tengu_plan_exit",{planLengthChars:Ie.length,outcome:t,clearContext:!0,interviewPhaseEnabled:J(),planStructureVariant:ke,hasFeedback:!!n});const i="",s=`\n\nIf you need specific details from before exiting plan mode (like exact code snippets, error messages, or content you generated), read the full transcript at: ${oe()}`,l=T()?`\n\nIf this plan can be broken down into multiple independent tasks, consider using the ${I} tool to create a team and parallelize the work.`:"",c=n?`\n\nUser feedback on this plan: ${n}`:"";return w(e=>({...e,initialMessage:{message:{...$({content:`Implementa el siguiente plan:\n\n${Ie}${i}${s}${l}${c}`}),planContent:Ie},clearContext:!0,mode:o,allowedPrompts:_e}})),P(!0),r(),b(),void a.onReject()}if(e("TRANSCRIPT_CLASSIFIER")&&"yes-resume-auto-mode"===t&&K())return h("tengu_plan_exit",{planLengthChars:Ie.length,outcome:t,clearContext:!1,interviewPhaseEnabled:J(),planStructureVariant:ke,hasFeedback:!!n}),P(!0),S(!0),de?.setAutoModeActive(!0),w(e=>({...e,toolPermissionContext:G({...e.toolPermissionContext,mode:"auto",prePlanMode:void 0})})),r(),void a.onAllow(i,[],n);const c={"yes-accept-edits-keep-context":A.isBypassPermissionsModeAvailable?"bypassPermissions":"acceptEdits","yes-default-keep-context":"default",...e("TRANSCRIPT_CLASSIFIER")?{"yes-resume-auto-mode":"default"}:{}}[t];if(c)return h("tengu_plan_exit",{planLengthChars:Ie.length,outcome:t,clearContext:!1,interviewPhaseEnabled:J(),planStructureVariant:ke,hasFeedback:!!n}),P(!0),S(!0),r(),void a.onAllow(i,buildPermissionUpdates(c,_e),n);const d={"yes-bypass-permissions":"bypassPermissions","yes-accept-edits":"acceptEdits"}[t];if(d)return h("tengu_plan_exit",{planLengthChars:Ie.length,outcome:t,interviewPhaseEnabled:J(),planStructureVariant:ke,hasFeedback:!!n}),P(!0),S(!0),r(),void a.onAllow(i,buildPermissionUpdates(d,_e),n);if("no"===t){if(!o&&!ve)return;let e;h("tengu_plan_exit",{planLengthChars:Ie.length,outcome:"no",interviewPhaseEnabled:J(),planStructureVariant:ke}),ve&&(e=await Promise.all(Pe.map(async e=>{const t={type:"image",source:{type:"base64",media_type:e.mediaType||"image/png",data:e.content}};return(await pe(t)).block}))),r(),b(),a.onReject(o||(ve?"(See attached image)":void 0),e&&e.length>0?e:void 0)}}const De=L(),Ne=De?D(De):null,Ue=p(handleResponse);Ue.current=handleResponse;const $e=p(void 0);$e.current=()=>{h("tengu_plan_exit",{planLengthChars:Ie.length,outcome:"no",interviewPhaseEnabled:J(),planStructureVariant:ke}),r(),b(),a.onReject()};const Be=!we&&!!y;if(c(()=>{if(Be)return y(o(_,{flexDirection:"column",borderStyle:"round",borderColor:"planMode",borderLeft:!1,borderRight:!1,borderBottom:!1,paddingX:1,children:[t(j,{dimColor:!0,children:"¿Deseas continuar?"}),t(_,{marginTop:1,children:t(ie,{options:xe,onChange:e=>{Ue.current(e)},onCancel:()=>$e.current?.(),onImagePaste,pastedContents:X,onRemoveImage:ye})}),Ne&&o(_,{flexDirection:"row",gap:1,marginTop:1,children:[t(j,{dimColor:!0,children:"ctrl-g para editar en "}),t(j,{bold:!0,dimColor:!0,children:Ne}),Se&&Re&&o(j,{dimColor:!0,children:[" · ",F(Re)]}),Me&&o(n,{children:[t(j,{dimColor:!0,children:" · "}),o(j,{color:"success",children:[i.tick,"¡Plan guardado!"]})]})]})]})),()=>y(null)},[Be,y,xe,X,Ne,Se,Re,Me]),we){function handleEmptyPlanResponse(t){if("yes"===t){if(h("tengu_plan_exit",{planLengthChars:0,outcome:"yes-default",interviewPhaseEnabled:J(),planStructureVariant:ke}),e("TRANSCRIPT_CLASSIFIER")){(de?.isAutoModeActive()??!1)&&(de?.setAutoModeActive(!1),v(!0),w(e=>({...e,toolPermissionContext:{...Q(e.toolPermissionContext),prePlanMode:void 0}})))}P(!0),S(!0),r(),a.onAllow({},[{type:"setMode",mode:"default",destination:"session"}])}else h("tengu_plan_exit",{planLengthChars:0,outcome:"no",interviewPhaseEnabled:J(),planStructureVariant:ke}),r(),b(),a.onReject()}return t(le,{color:"planMode",title:"¿Salir del modo plan?",workerBadge:x,children:o(_,{flexDirection:"column",paddingX:1,marginTop:1,children:[t(j,{children:"Context quiere salir del modo plan"}),t(_,{marginTop:1,children:t(ie,{options:[{label:"Sí",value:"yes"},{label:"No",value:"no"}],onChange:handleEmptyPlanResponse,onCancel:()=>{h("tengu_plan_exit",{planLengthChars:0,outcome:"no",interviewPhaseEnabled:J(),planStructureVariant:ke}),r(),b(),a.onReject()}})})]})})}return o(_,{flexDirection:"column",tabIndex:0,autoFocus:!0,onKeyDown:e=>e.ctrl&&"g"===e.key?(e.preventDefault(),h("tengu_plan_external_editor_used",{}),void(async()=>{if(Se&&Re){const e=await Z(Re);e.error&&E({key:"external-editor-error",text:e.error,color:"warning",priority:"high"}),null!==e.content&&(e.content!==Ie&&Fe(!0),Te(e.content),Ee(!0))}else{const e=await ee(Ie);e.error&&E({key:"external-editor-error",text:e.error,color:"warning",priority:"high"}),null!==e.content&&e.content!==Ie&&(Te(e.content),Ee(!0))}})()):e.shift&&"tab"===e.key?(e.preventDefault(),void handleResponse(ne?"yes-accept-edits":"yes-accept-edits-keep-context")):void 0,children:[t(le,{color:"planMode",title:"¿Listo para programar?",innerPaddingX:0,workerBadge:x,children:o(_,{flexDirection:"column",marginTop:1,children:[t(_,{paddingX:1,flexDirection:"column",children:t(j,{children:"Aquí está el plan de Context:"})}),t(_,{borderColor:"subtle",borderStyle:"dashed",flexDirection:"column",borderLeft:!1,borderRight:!1,paddingX:1,marginBottom:1,overflow:"hidden",children:t(se,{children:Ie})}),o(_,{flexDirection:"column",paddingX:1,children:[t(ce,{permissionResult:a.permissionResult,toolType:"tool"}),q()&&_e&&_e.length>0&&o(_,{flexDirection:"column",marginBottom:1,children:[t(j,{bold:!0,children:"Permisos solicitados:"}),_e.map((e,t)=>o(j,{dimColor:!0,children:[" ","· ",e.tool,"(",O," ",e.prompt,")"]},t))]}),!Be&&o(n,{children:[t(j,{dimColor:!0,children:"Context ha elaborado un plan y está listo para ejecutarlo. ¿Deseas continuar?"}),t(_,{marginTop:1,children:t(ie,{options:xe,onChange:handleResponse,onCancel:()=>$e.current?.(),onImagePaste,pastedContents:X,onRemoveImage:ye})})]})]})]})}),!Be&&Ne&&o(_,{flexDirection:"row",gap:1,paddingX:1,marginTop:1,children:[o(_,{children:[t(j,{dimColor:!0,children:"ctrl-g para editar en "}),t(j,{bold:!0,dimColor:!0,children:Ne}),Se&&Re&&o(j,{dimColor:!0,children:[" · ",F(Re)]})]}),Me&&o(_,{children:[t(j,{dimColor:!0,children:" · "}),o(j,{color:"success",children:[i.tick,"¡Plan guardado!"]})]})]})]})}export function buildPlanApprovalOptions({showClearContext:t,showUltraplan:o,usedPercent:n,isAutoModeAvailable:a,isBypassPermissionsModeAvailable:r,onFeedbackChange:i}){const s=[],l=null!==n?` (${n}% usado)`:"";return t&&(e("TRANSCRIPT_CLASSIFIER")&&a?s.push({label:`Sí, borrar contexto${l} y usar modo automático`,value:"yes-auto-clear-context"}):r?s.push({label:`Sí, borrar contexto${l} y omitir permisos`,value:"yes-bypass-permissions"}):s.push({label:`Sí, borrar contexto${l} y auto-aceptar ediciones`,value:"yes-accept-edits"})),e("TRANSCRIPT_CLASSIFIER")&&a?s.push({label:"Sí, y usar modo automático",value:"yes-resume-auto-mode"}):r?s.push({label:"Sí, y omitir permisos",value:"yes-accept-edits-keep-context"}):s.push({label:"Sí, auto-aceptar ediciones",value:"yes-accept-edits-keep-context"}),s.push({label:"Sí, aprobar ediciones manualmente",value:"yes-default-keep-context"}),o&&s.push({label:"No, refinar con Ultraplan en Context Code en la web",value:"ultraplan"}),s.push({type:"input",label:"No, seguir planificando",value:"no",placeholder:"Dile a Context qué cambiar",description:"shift+tab para aprobar con este comentario",onChange:i}),s}function getContextUsedPercent(e,t){if(!e)return null;const o=V({permissionMode:t,mainLoopModel:B(),exceeds200kTokens:!1}),n=E(o,b()),{used:a}=M({input_tokens:e.input_tokens,cache_creation_input_tokens:e.cache_creation_input_tokens??0,cache_read_input_tokens:e.cache_read_input_tokens??0},n);return a}
@@ -1 +1 @@
1
- import{B as e,D as s,E as i,H as a,I as o,K as l,L as h,M as u,O as d,U as c,a as _,b as p,ca as g,d as y,e as m,f as v,g as V,n as f,oa as C,p as A,q as b,qa as w,ra as D,sa as S,ta as O,u as k,va as P,z as x}from"./chunk-VAB2VXFI.js";var T=(()=>{class n{_renderer;_elementRef;onChange=e=>{};onTouched=()=>{};constructor(e,s){this._renderer=e,this._elementRef=s}setProperty(e,s){this._renderer.setProperty(this._elementRef.nativeElement,e,s)}registerOnTouched(e){this.onTouched=e}registerOnChange(e){this.onChange=e}setDisabledState(e){this.setProperty("disabled",e)}static ɵfac=function(e){return new(e||n)(o(a),o(s))};static ɵdir=h({type:n})}return n})(),M=(()=>{class n extends T{static ɵfac=(()=>{let e;return function(s){return(e||(e=x(n)))(s||n)}})();static ɵdir=h({type:n,features:[u]})}return n})(),F=new b(""),R={provide:F,useExisting:f(()=>N),multi:!0};var U=new b(""),N=(()=>{class n extends T{_compositionMode;_composing=!1;constructor(e,s,i){super(e,s),this._compositionMode=i,null==this._compositionMode&&(this._compositionMode=!function(){let e=P()?P().getUserAgent():"";return/android (\d+)/.test(e.toLowerCase())}())}writeValue(e){let s=e??"";this.setProperty("value",s)}_handleInput(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}_compositionStart(){this._composing=!0}_compositionEnd(e){this._composing=!1,this._compositionMode&&this.onChange(e)}static ɵfac=function(e){return new(e||n)(o(a),o(s),o(U,8))};static ɵdir=h({type:n,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(e,s){1&e&&g("input",function(e){return s._handleInput(e.target.value)})("blur",function(){return s.onTouched()})("compositionstart",function(){return s._compositionStart()})("compositionend",function(e){return s._compositionEnd(e.target.value)})},standalone:!1,features:[C([R]),u]})}return n})(),j=new b(""),H=new b("");function ue(e){return null!=e}function de(e){return d(e)?m(e):e}function ce(e){let s={};return e.forEach(e=>{s=null!=e?_(_({},s),e):s}),0===Object.keys(s).length?null:s}function he(e,s){return s.map(s=>s(e))}function fe(e){return e.map(e=>function(e){return!e.validate}(e)?e:s=>e.validate(s))}function ge(e){return null!=e?function(e){if(!e)return null;let s=e.filter(ue);return 0==s.length?null:function(e){return ce(he(e,s))}}(fe(e)):null}function pe(e){return null!=e?function(e){if(!e)return null;let s=e.filter(ue);return 0==s.length?null:function(e){let i=he(e,s).map(de);return V(i).pipe(v(ce))}}(fe(e)):null}function Q(e,s){return null===e?[s]:Array.isArray(e)?[...e,s]:[e,s]}function G(e){return e?Array.isArray(e)?e:[e]:[]}function E(e,s){return Array.isArray(e)?e.includes(s):e===s}function ee(e,s){let i=G(s);return G(e).forEach(e=>{E(i,e)||i.push(e)}),i}function te(e,s){return G(s).filter(s=>!E(e,s))}var B=class{get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators=[];_rawAsyncValidators=[];_setValidators(e){this._rawValidators=e||[],this._composedValidatorFn=ge(this._rawValidators)}_setAsyncValidators(e){this._rawAsyncValidators=e||[],this._composedAsyncValidatorFn=pe(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_onDestroyCallbacks=[];_registerOnDestroy(e){this._onDestroyCallbacks.push(e)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(e=>e()),this._onDestroyCallbacks=[]}reset(e=void 0){this.control&&this.control.reset(e)}hasError(e,s){return!!this.control&&this.control.hasError(e,s)}getError(e,s){return this.control?this.control.getError(e,s):null}},L=class extends B{name;get formDirective(){return null}get path(){return null}},q=class extends B{_parent=null;name=null;valueAccessor=null},$=class{_cd;constructor(e){this._cd=e}get isTouched(){return this._cd?.control?._touched?.(),!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return this._cd?.control?._pristine?.(),!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return this._cd?.control?._status?.(),!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return this._cd?._submitted?.(),!!this._cd?.submitted}},K=(p(_({},{"[class.ng-untouched]":"isUntouched","[class.ng-touched]":"isTouched","[class.ng-pristine]":"isPristine","[class.ng-dirty]":"isDirty","[class.ng-valid]":"isValid","[class.ng-invalid]":"isInvalid","[class.ng-pending]":"isPending"}),{"[class.ng-submitted]":"isSubmitted"}),(()=>{class n extends ${constructor(e){super(e)}static ɵfac=function(e){return new(e||n)(o(q,2))};static ɵdir=h({type:n,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(e,s){2&e&&c("ng-untouched",s.isUntouched)("ng-touched",s.isTouched)("ng-pristine",s.isPristine)("ng-dirty",s.isDirty)("ng-valid",s.isValid)("ng-invalid",s.isInvalid)("ng-pending",s.isPending)},standalone:!1,features:[u]})}return n})()),X="VALID",z="INVALID",J="PENDING",W="DISABLED",Y=class{},Z=class extends Y{value;source;constructor(e,s){super(),this.value=e,this.source=s}},tt=class extends Y{pristine;source;constructor(e,s){super(),this.pristine=e,this.source=s}},et=class extends Y{touched;source;constructor(e,s){super(),this.touched=e,this.source=s}},st=class extends Y{status;source;constructor(e,s){super(),this.status=e,this.source=s}};function I(e){return null!=e&&!Array.isArray(e)&&"object"==typeof e}var nt=class{_pendingDirty=!1;_hasOwnPendingAsyncValidator=null;_pendingTouched=!1;_onCollectionChange=()=>{};_updateOn;_parent=null;_asyncValidationSubscription;_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators;_rawAsyncValidators;value;constructor(e,s){this._assignValidators(e),this._assignAsyncValidators(s)}get validator(){return this._composedValidatorFn}set validator(e){this._rawValidators=this._composedValidatorFn=e}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(e){this._rawAsyncValidators=this._composedAsyncValidatorFn=e}get parent(){return this._parent}get status(){return S(this.statusReactive)}set status(e){S(()=>this.statusReactive.set(e))}_status=O(()=>this.statusReactive());statusReactive=i(void 0);get valid(){return this.status===X}get invalid(){return this.status===z}get pending(){return this.status==J}get disabled(){return this.status===W}get enabled(){return this.status!==W}errors;get pristine(){return S(this.pristineReactive)}set pristine(e){S(()=>this.pristineReactive.set(e))}_pristine=O(()=>this.pristineReactive());pristineReactive=i(!0);get dirty(){return!this.pristine}get touched(){return S(this.touchedReactive)}set touched(e){S(()=>this.touchedReactive.set(e))}_touched=O(()=>this.touchedReactive());touchedReactive=i(!1);get untouched(){return!this.touched}_events=new y;events=this._events.asObservable();valueChanges;statusChanges;get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(e){this._assignValidators(e)}setAsyncValidators(e){this._assignAsyncValidators(e)}addValidators(e){this.setValidators(ee(e,this._rawValidators))}addAsyncValidators(e){this.setAsyncValidators(ee(e,this._rawAsyncValidators))}removeValidators(e){this.setValidators(te(e,this._rawValidators))}removeAsyncValidators(e){this.setAsyncValidators(te(e,this._rawAsyncValidators))}hasValidator(e){return E(this._rawValidators,e)}hasAsyncValidator(e){return E(this._rawAsyncValidators,e)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(e={}){let s=!1===this.touched;this.touched=!0;let i=e.sourceControl??this;this._parent&&!e.onlySelf&&this._parent.markAsTouched(p(_({},e),{sourceControl:i})),s&&!1!==e.emitEvent&&this._events.next(new et(!0,i))}markAllAsTouched(e={}){this.markAsTouched({onlySelf:!0,emitEvent:e.emitEvent,sourceControl:this}),this._forEachChild(s=>s.markAllAsTouched(e))}markAsUntouched(e={}){let s=!0===this.touched;this.touched=!1,this._pendingTouched=!1;let i=e.sourceControl??this;this._forEachChild(s=>{s.markAsUntouched({onlySelf:!0,emitEvent:e.emitEvent,sourceControl:i})}),this._parent&&!e.onlySelf&&this._parent._updateTouched(e,i),s&&!1!==e.emitEvent&&this._events.next(new et(!1,i))}markAsDirty(e={}){let s=!0===this.pristine;this.pristine=!1;let i=e.sourceControl??this;this._parent&&!e.onlySelf&&this._parent.markAsDirty(p(_({},e),{sourceControl:i})),s&&!1!==e.emitEvent&&this._events.next(new tt(!1,i))}markAsPristine(e={}){let s=!1===this.pristine;this.pristine=!0,this._pendingDirty=!1;let i=e.sourceControl??this;this._forEachChild(s=>{s.markAsPristine({onlySelf:!0,emitEvent:e.emitEvent})}),this._parent&&!e.onlySelf&&this._parent._updatePristine(e,i),s&&!1!==e.emitEvent&&this._events.next(new tt(!0,i))}markAsPending(e={}){this.status=J;let s=e.sourceControl??this;!1!==e.emitEvent&&(this._events.next(new st(this.status,s)),this.statusChanges.emit(this.status)),this._parent&&!e.onlySelf&&this._parent.markAsPending(p(_({},e),{sourceControl:s}))}disable(e={}){let s=this._parentMarkedDirty(e.onlySelf);this.status=W,this.errors=null,this._forEachChild(s=>{s.disable(p(_({},e),{onlySelf:!0}))}),this._updateValue();let i=e.sourceControl??this;!1!==e.emitEvent&&(this._events.next(new Z(this.value,i)),this._events.next(new st(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(p(_({},e),{skipPristineCheck:s}),this),this._onDisabledChange.forEach(e=>e(!0))}enable(e={}){let s=this._parentMarkedDirty(e.onlySelf);this.status=X,this._forEachChild(s=>{s.enable(p(_({},e),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent}),this._updateAncestors(p(_({},e),{skipPristineCheck:s}),this),this._onDisabledChange.forEach(e=>e(!1))}_updateAncestors(e,s){this._parent&&!e.onlySelf&&(this._parent.updateValueAndValidity(e),e.skipPristineCheck||this._parent._updatePristine({},s),this._parent._updateTouched({},s))}setParent(e){this._parent=e}getRawValue(){return this.value}updateValueAndValidity(e={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){let s=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===X||this.status===J)&&this._runAsyncValidator(s,e.emitEvent)}let s=e.sourceControl??this;!1!==e.emitEvent&&(this._events.next(new Z(this.value,s)),this._events.next(new st(this.status,s)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!e.onlySelf&&this._parent.updateValueAndValidity(p(_({},e),{sourceControl:s}))}_updateTreeValidity(e={emitEvent:!0}){this._forEachChild(s=>s._updateTreeValidity(e)),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?W:X}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(e,s){if(this.asyncValidator){this.status=J,this._hasOwnPendingAsyncValidator={emitEvent:!1!==s};let i=de(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(i=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(i,{emitEvent:s,shouldHaveEmitted:e})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();let e=this._hasOwnPendingAsyncValidator?.emitEvent??!1;return this._hasOwnPendingAsyncValidator=null,e}return!1}setErrors(e,s={}){this.errors=e,this._updateControlsErrors(!1!==s.emitEvent,this,s.shouldHaveEmitted)}get(e){let s=e;return null==s||(Array.isArray(s)||(s=s.split(".")),0===s.length)?null:s.reduce((e,s)=>e&&e._find(s),this)}getError(e,s){let i=s?this.get(s):this;return i&&i.errors?i.errors[e]:null}hasError(e,s){return!!this.getError(e,s)}get root(){let e=this;for(;e._parent;)e=e._parent;return e}_updateControlsErrors(e,s,i){this.status=this._calculateStatus(),e&&this.statusChanges.emit(this.status),(e||i)&&this._events.next(new st(this.status,s)),this._parent&&this._parent._updateControlsErrors(e,s,i)}_initObservables(){this.valueChanges=new e,this.statusChanges=new e}_calculateStatus(){return this._allControlsDisabled()?W:this.errors?z:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(J)?J:this._anyControlsHaveStatus(z)?z:X}_anyControlsHaveStatus(e){return this._anyControls(s=>s.status===e)}_anyControlsDirty(){return this._anyControls(e=>e.dirty)}_anyControlsTouched(){return this._anyControls(e=>e.touched)}_updatePristine(e,s){let i=!this._anyControlsDirty(),a=this.pristine!==i;this.pristine=i,this._parent&&!e.onlySelf&&this._parent._updatePristine(e,s),a&&this._events.next(new tt(this.pristine,s))}_updateTouched(e={},s){this.touched=this._anyControlsTouched(),this._events.next(new et(this.touched,s)),this._parent&&!e.onlySelf&&this._parent._updateTouched(e,s)}_onDisabledChange=[];_registerOnCollectionChange(e){this._onCollectionChange=e}_setUpdateStrategy(e){I(e)&&null!=e.updateOn&&(this._updateOn=e.updateOn)}_parentMarkedDirty(e){let s=this._parent&&this._parent.dirty;return!e&&!!s&&!this._parent._anyControlsDirty()}_find(e){return null}_assignValidators(e){var s;this._rawValidators=Array.isArray(e)?e.slice():e,this._composedValidatorFn=(s=this._rawValidators,Array.isArray(s)?ge(s):s||null)}_assignAsyncValidators(e){var s;this._rawAsyncValidators=Array.isArray(e)?e.slice():e,this._composedAsyncValidatorFn=(s=this._rawAsyncValidators,Array.isArray(s)?pe(s):s||null)}},it=new b("",{providedIn:"root",factory:()=>rt}),rt="always";function Re(e,s,i=rt){(function(e,s){let i=function(e){return e._rawValidators}(e);null!==s.validator?e.setValidators(Q(i,s.validator)):"function"==typeof i&&e.setValidators([i]);let a=function(e){return e._rawAsyncValidators}(e);null!==s.asyncValidator?e.setAsyncValidators(Q(a,s.asyncValidator)):"function"==typeof a&&e.setAsyncValidators([a]);let r=()=>e.updateValueAndValidity();ne(s._rawValidators,r),ne(s._rawAsyncValidators,r)})(e,s),s.valueAccessor.writeValue(e.value),(e.disabled||"always"===i)&&s.valueAccessor.setDisabledState?.(e.disabled),function(e,s){s.valueAccessor.registerOnChange(i=>{e._pendingValue=i,e._pendingChange=!0,e._pendingDirty=!0,"change"===e.updateOn&&_e(e,s)})}(e,s),function(e,s){let t=(e,i)=>{s.valueAccessor.writeValue(e),i&&s.viewToModelUpdate(e)};e.registerOnChange(t),s._registerOnDestroy(()=>{e._unregisterOnChange(t)})}(e,s),function(e,s){s.valueAccessor.registerOnTouched(()=>{e._pendingTouched=!0,"blur"===e.updateOn&&e._pendingChange&&_e(e,s),"submit"!==e.updateOn&&e.markAsTouched()})}(e,s),function(e,s){if(s.valueAccessor.setDisabledState){let t=e=>{s.valueAccessor.setDisabledState(e)};e.registerOnDisabledChange(t),s._registerOnDestroy(()=>{e._unregisterOnDisabledChange(t)})}}(e,s)}function ne(e,s){e.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(s)})}function _e(e,s){e._pendingDirty&&e.markAsDirty(),e.setValue(e._pendingValue,{emitModelToViewChange:!1}),s.viewToModelUpdate(e._pendingValue),e._pendingChange=!1}function $e(e,s){if(!s)return null;let i,a,o;return Array.isArray(s),s.forEach(e=>{e.constructor===N?i=e:function(e){return Object.getPrototypeOf(e.constructor)===M}(e)?a=e:o=e}),o||a||i||null}function ie(e,s){let i=e.indexOf(s);i>-1&&e.splice(i,1)}function re(e){return"object"==typeof e&&null!==e&&2===Object.keys(e).length&&"value"in e&&"disabled"in e}var at=class extends nt{defaultValue=null;_onChange=[];_pendingValue;_pendingChange=!1;constructor(e=null,s,i){var a;super((I(a=s)?a.validators:a)||null,function(e,s){return(I(s)?s.asyncValidators:e)||null}(i,s)),this._applyFormState(e),this._setUpdateStrategy(s),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),I(s)&&(s.nonNullable||s.initialValueIsDefault)&&(re(e)?this.defaultValue=e.value:this.defaultValue=e)}setValue(e,s={}){this.value=this._pendingValue=e,this._onChange.length&&!1!==s.emitModelToViewChange&&this._onChange.forEach(e=>e(this.value,!1!==s.emitViewToModelChange)),this.updateValueAndValidity(s)}patchValue(e,s={}){this.setValue(e,s)}reset(e=this.defaultValue,s={}){this._applyFormState(e),this.markAsPristine(s),this.markAsUntouched(s),this.setValue(this.value,s),this._pendingChange=!1}_updateValue(){}_anyControls(e){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(e){this._onChange.push(e)}_unregisterOnChange(e){ie(this._onChange,e)}registerOnDisabledChange(e){this._onDisabledChange.push(e)}_unregisterOnDisabledChange(e){ie(this._onDisabledChange,e)}_forEachChild(e){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange))&&(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),!0)}_applyFormState(e){re(e)?(this.value=this._pendingValue=e.value,e.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=e}},ot={provide:q,useExisting:f(()=>ht)},lt=Promise.resolve(),ht=(()=>{class n extends q{_changeDetectorRef;callSetDisabledState;control=new at;static ngAcceptInputType_isDisabled;_registered=!1;viewModel;name="";isDisabled;model;options;update=new e;constructor(e,s,i,a,o,l){super(),this._changeDetectorRef=o,this.callSetDisabledState=l,this._parent=e,this._setValidators(s),this._setAsyncValidators(i),this.valueAccessor=$e(0,a)}ngOnChanges(e){if(this._checkForErrors(),!this._registered||"name"in e){if(this._registered&&(this._checkName(),this.formDirective)){let s=e.name.previousValue;this.formDirective.removeControl({name:s,path:this._getPath(s)})}this._setUpControl()}"isDisabled"in e&&this._updateDisabled(e),function(e,s){if(!e.hasOwnProperty("model"))return!1;let i=e.model;return!!i.isFirstChange()||!Object.is(s,i.currentValue)}(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){Re(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._checkName()}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),!this._isStandalone()&&this.name}_updateValue(e){lt.then(()=>{this.control.setValue(e,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(e){let s=e.isDisabled.currentValue,i=0!==s&&D(s);lt.then(()=>{i&&!this.control.disabled?this.control.disable():!i&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(e){return this._parent?function(e,s){return[...s.path,e]}(e,this._parent):[e]}static ɵfac=function(e){return new(e||n)(o(L,9),o(j,10),o(H,10),o(F,10),o(w,8),o(it,8))};static ɵdir=h({type:n,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],standalone:!1,features:[C([ot]),u,k]})}return n})(),ut=(()=>{class n{static ɵfac=function(e){return new(e||n)};static ɵmod=l({type:n});static ɵinj=A({})}return n})(),dt=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:it,useValue:e.callSetDisabledState??rt}]}}static ɵfac=function(e){return new(e||n)};static ɵmod=l({type:n});static ɵinj=A({imports:[ut]})}return n})();export{N as a,K as b,ht as c,dt as d};
1
+ import{B as e,D as s,E as i,H as a,I as o,K as l,L as h,M as u,O as d,U as c,a as _,b as p,ca as g,d as y,e as m,f as v,g as V,n as f,oa as C,p as A,q as b,qa as w,ra as D,sa as S,ta as O,u as k,va as P,z as x}from"./chunk-VAB2VXFI.js";var T=(()=>{class n{_renderer;_elementRef;onChange=e=>{};onTouched=()=>{};constructor(e,s){this._renderer=e,this._elementRef=s}setProperty(e,s){this._renderer.setProperty(this._elementRef.nativeElement,e,s)}registerOnTouched(e){this.onTouched=e}registerOnChange(e){this.onChange=e}setDisabledState(e){this.setProperty("disabled",e)}static ɵfac=function(e){return new(e||n)(o(a),o(s))};static ɵdir=h({type:n})}return n})(),M=(()=>{class n extends T{static ɵfac=(()=>{let e;return function(s){return(e||(e=x(n)))(s||n)}})();static ɵdir=h({type:n,features:[u]})}return n})(),F=new b(""),R={provide:F,useExisting:f(()=>N),multi:!0},U=new b(""),N=(()=>{class n extends T{_compositionMode;_composing=!1;constructor(e,s,i){super(e,s),this._compositionMode=i,null==this._compositionMode&&(this._compositionMode=!function(){let e=P()?P().getUserAgent():"";return/android (\d+)/.test(e.toLowerCase())}())}writeValue(e){let s=e??"";this.setProperty("value",s)}_handleInput(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}_compositionStart(){this._composing=!0}_compositionEnd(e){this._composing=!1,this._compositionMode&&this.onChange(e)}static ɵfac=function(e){return new(e||n)(o(a),o(s),o(U,8))};static ɵdir=h({type:n,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(e,s){1&e&&g("input",function(e){return s._handleInput(e.target.value)})("blur",function(){return s.onTouched()})("compositionstart",function(){return s._compositionStart()})("compositionend",function(e){return s._compositionEnd(e.target.value)})},standalone:!1,features:[C([R]),u]})}return n})(),j=new b(""),H=new b("");function ue(e){return null!=e}function de(e){return d(e)?m(e):e}function ce(e){let s={};return e.forEach(e=>{s=null!=e?_(_({},s),e):s}),0===Object.keys(s).length?null:s}function he(e,s){return s.map(s=>s(e))}function fe(e){return e.map(e=>function(e){return!e.validate}(e)?e:s=>e.validate(s))}function ge(e){return null!=e?function(e){if(!e)return null;let s=e.filter(ue);return 0==s.length?null:function(e){return ce(he(e,s))}}(fe(e)):null}function pe(e){return null!=e?function(e){if(!e)return null;let s=e.filter(ue);return 0==s.length?null:function(e){let i=he(e,s).map(de);return V(i).pipe(v(ce))}}(fe(e)):null}function Q(e,s){return null===e?[s]:Array.isArray(e)?[...e,s]:[e,s]}function G(e){return e?Array.isArray(e)?e:[e]:[]}function E(e,s){return Array.isArray(e)?e.includes(s):e===s}function ee(e,s){let i=G(s);return G(e).forEach(e=>{E(i,e)||i.push(e)}),i}function te(e,s){return G(s).filter(s=>!E(e,s))}var B=class{get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators=[];_rawAsyncValidators=[];_setValidators(e){this._rawValidators=e||[],this._composedValidatorFn=ge(this._rawValidators)}_setAsyncValidators(e){this._rawAsyncValidators=e||[],this._composedAsyncValidatorFn=pe(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_onDestroyCallbacks=[];_registerOnDestroy(e){this._onDestroyCallbacks.push(e)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(e=>e()),this._onDestroyCallbacks=[]}reset(e=void 0){this.control&&this.control.reset(e)}hasError(e,s){return!!this.control&&this.control.hasError(e,s)}getError(e,s){return this.control?this.control.getError(e,s):null}},L=class extends B{name;get formDirective(){return null}get path(){return null}},q=class extends B{_parent=null;name=null;valueAccessor=null},z=class{_cd;constructor(e){this._cd=e}get isTouched(){return this._cd?.control?._touched?.(),!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return this._cd?.control?._pristine?.(),!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return this._cd?.control?._status?.(),!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return this._cd?._submitted?.(),!!this._cd?.submitted}},K=(p(_({},{"[class.ng-untouched]":"isUntouched","[class.ng-touched]":"isTouched","[class.ng-pristine]":"isPristine","[class.ng-dirty]":"isDirty","[class.ng-valid]":"isValid","[class.ng-invalid]":"isInvalid","[class.ng-pending]":"isPending"}),{"[class.ng-submitted]":"isSubmitted"}),(()=>{class n extends z{constructor(e){super(e)}static ɵfac=function(e){return new(e||n)(o(q,2))};static ɵdir=h({type:n,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(e,s){2&e&&c("ng-untouched",s.isUntouched)("ng-touched",s.isTouched)("ng-pristine",s.isPristine)("ng-dirty",s.isDirty)("ng-valid",s.isValid)("ng-invalid",s.isInvalid)("ng-pending",s.isPending)},standalone:!1,features:[u]})}return n})()),X="VALID",J="INVALID",W="PENDING",Y="DISABLED",Z=class{},$=class extends Z{value;source;constructor(e,s){super(),this.value=e,this.source=s}},tt=class extends Z{pristine;source;constructor(e,s){super(),this.pristine=e,this.source=s}},et=class extends Z{touched;source;constructor(e,s){super(),this.touched=e,this.source=s}},st=class extends Z{status;source;constructor(e,s){super(),this.status=e,this.source=s}};function I(e){return null!=e&&!Array.isArray(e)&&"object"==typeof e}var nt=class{_pendingDirty=!1;_hasOwnPendingAsyncValidator=null;_pendingTouched=!1;_onCollectionChange=()=>{};_updateOn;_parent=null;_asyncValidationSubscription;_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators;_rawAsyncValidators;value;constructor(e,s){this._assignValidators(e),this._assignAsyncValidators(s)}get validator(){return this._composedValidatorFn}set validator(e){this._rawValidators=this._composedValidatorFn=e}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(e){this._rawAsyncValidators=this._composedAsyncValidatorFn=e}get parent(){return this._parent}get status(){return S(this.statusReactive)}set status(e){S(()=>this.statusReactive.set(e))}_status=O(()=>this.statusReactive());statusReactive=i(void 0);get valid(){return this.status===X}get invalid(){return this.status===J}get pending(){return this.status==W}get disabled(){return this.status===Y}get enabled(){return this.status!==Y}errors;get pristine(){return S(this.pristineReactive)}set pristine(e){S(()=>this.pristineReactive.set(e))}_pristine=O(()=>this.pristineReactive());pristineReactive=i(!0);get dirty(){return!this.pristine}get touched(){return S(this.touchedReactive)}set touched(e){S(()=>this.touchedReactive.set(e))}_touched=O(()=>this.touchedReactive());touchedReactive=i(!1);get untouched(){return!this.touched}_events=new y;events=this._events.asObservable();valueChanges;statusChanges;get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(e){this._assignValidators(e)}setAsyncValidators(e){this._assignAsyncValidators(e)}addValidators(e){this.setValidators(ee(e,this._rawValidators))}addAsyncValidators(e){this.setAsyncValidators(ee(e,this._rawAsyncValidators))}removeValidators(e){this.setValidators(te(e,this._rawValidators))}removeAsyncValidators(e){this.setAsyncValidators(te(e,this._rawAsyncValidators))}hasValidator(e){return E(this._rawValidators,e)}hasAsyncValidator(e){return E(this._rawAsyncValidators,e)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(e={}){let s=!1===this.touched;this.touched=!0;let i=e.sourceControl??this;this._parent&&!e.onlySelf&&this._parent.markAsTouched(p(_({},e),{sourceControl:i})),s&&!1!==e.emitEvent&&this._events.next(new et(!0,i))}markAllAsTouched(e={}){this.markAsTouched({onlySelf:!0,emitEvent:e.emitEvent,sourceControl:this}),this._forEachChild(s=>s.markAllAsTouched(e))}markAsUntouched(e={}){let s=!0===this.touched;this.touched=!1,this._pendingTouched=!1;let i=e.sourceControl??this;this._forEachChild(s=>{s.markAsUntouched({onlySelf:!0,emitEvent:e.emitEvent,sourceControl:i})}),this._parent&&!e.onlySelf&&this._parent._updateTouched(e,i),s&&!1!==e.emitEvent&&this._events.next(new et(!1,i))}markAsDirty(e={}){let s=!0===this.pristine;this.pristine=!1;let i=e.sourceControl??this;this._parent&&!e.onlySelf&&this._parent.markAsDirty(p(_({},e),{sourceControl:i})),s&&!1!==e.emitEvent&&this._events.next(new tt(!1,i))}markAsPristine(e={}){let s=!1===this.pristine;this.pristine=!0,this._pendingDirty=!1;let i=e.sourceControl??this;this._forEachChild(s=>{s.markAsPristine({onlySelf:!0,emitEvent:e.emitEvent})}),this._parent&&!e.onlySelf&&this._parent._updatePristine(e,i),s&&!1!==e.emitEvent&&this._events.next(new tt(!0,i))}markAsPending(e={}){this.status=W;let s=e.sourceControl??this;!1!==e.emitEvent&&(this._events.next(new st(this.status,s)),this.statusChanges.emit(this.status)),this._parent&&!e.onlySelf&&this._parent.markAsPending(p(_({},e),{sourceControl:s}))}disable(e={}){let s=this._parentMarkedDirty(e.onlySelf);this.status=Y,this.errors=null,this._forEachChild(s=>{s.disable(p(_({},e),{onlySelf:!0}))}),this._updateValue();let i=e.sourceControl??this;!1!==e.emitEvent&&(this._events.next(new $(this.value,i)),this._events.next(new st(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(p(_({},e),{skipPristineCheck:s}),this),this._onDisabledChange.forEach(e=>e(!0))}enable(e={}){let s=this._parentMarkedDirty(e.onlySelf);this.status=X,this._forEachChild(s=>{s.enable(p(_({},e),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent}),this._updateAncestors(p(_({},e),{skipPristineCheck:s}),this),this._onDisabledChange.forEach(e=>e(!1))}_updateAncestors(e,s){this._parent&&!e.onlySelf&&(this._parent.updateValueAndValidity(e),e.skipPristineCheck||this._parent._updatePristine({},s),this._parent._updateTouched({},s))}setParent(e){this._parent=e}getRawValue(){return this.value}updateValueAndValidity(e={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){let s=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===X||this.status===W)&&this._runAsyncValidator(s,e.emitEvent)}let s=e.sourceControl??this;!1!==e.emitEvent&&(this._events.next(new $(this.value,s)),this._events.next(new st(this.status,s)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!e.onlySelf&&this._parent.updateValueAndValidity(p(_({},e),{sourceControl:s}))}_updateTreeValidity(e={emitEvent:!0}){this._forEachChild(s=>s._updateTreeValidity(e)),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?Y:X}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(e,s){if(this.asyncValidator){this.status=W,this._hasOwnPendingAsyncValidator={emitEvent:!1!==s};let i=de(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(i=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(i,{emitEvent:s,shouldHaveEmitted:e})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();let e=this._hasOwnPendingAsyncValidator?.emitEvent??!1;return this._hasOwnPendingAsyncValidator=null,e}return!1}setErrors(e,s={}){this.errors=e,this._updateControlsErrors(!1!==s.emitEvent,this,s.shouldHaveEmitted)}get(e){let s=e;return null==s||(Array.isArray(s)||(s=s.split(".")),0===s.length)?null:s.reduce((e,s)=>e&&e._find(s),this)}getError(e,s){let i=s?this.get(s):this;return i&&i.errors?i.errors[e]:null}hasError(e,s){return!!this.getError(e,s)}get root(){let e=this;for(;e._parent;)e=e._parent;return e}_updateControlsErrors(e,s,i){this.status=this._calculateStatus(),e&&this.statusChanges.emit(this.status),(e||i)&&this._events.next(new st(this.status,s)),this._parent&&this._parent._updateControlsErrors(e,s,i)}_initObservables(){this.valueChanges=new e,this.statusChanges=new e}_calculateStatus(){return this._allControlsDisabled()?Y:this.errors?J:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(W)?W:this._anyControlsHaveStatus(J)?J:X}_anyControlsHaveStatus(e){return this._anyControls(s=>s.status===e)}_anyControlsDirty(){return this._anyControls(e=>e.dirty)}_anyControlsTouched(){return this._anyControls(e=>e.touched)}_updatePristine(e,s){let i=!this._anyControlsDirty(),a=this.pristine!==i;this.pristine=i,this._parent&&!e.onlySelf&&this._parent._updatePristine(e,s),a&&this._events.next(new tt(this.pristine,s))}_updateTouched(e={},s){this.touched=this._anyControlsTouched(),this._events.next(new et(this.touched,s)),this._parent&&!e.onlySelf&&this._parent._updateTouched(e,s)}_onDisabledChange=[];_registerOnCollectionChange(e){this._onCollectionChange=e}_setUpdateStrategy(e){I(e)&&null!=e.updateOn&&(this._updateOn=e.updateOn)}_parentMarkedDirty(e){let s=this._parent&&this._parent.dirty;return!e&&!!s&&!this._parent._anyControlsDirty()}_find(e){return null}_assignValidators(e){var s;this._rawValidators=Array.isArray(e)?e.slice():e,this._composedValidatorFn=(s=this._rawValidators,Array.isArray(s)?ge(s):s||null)}_assignAsyncValidators(e){var s;this._rawAsyncValidators=Array.isArray(e)?e.slice():e,this._composedAsyncValidatorFn=(s=this._rawAsyncValidators,Array.isArray(s)?pe(s):s||null)}},it=new b("",{providedIn:"root",factory:()=>rt}),rt="always";function ne(e,s){e.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(s)})}function _e(e,s){e._pendingDirty&&e.markAsDirty(),e.setValue(e._pendingValue,{emitModelToViewChange:!1}),s.viewToModelUpdate(e._pendingValue),e._pendingChange=!1}function ie(e,s){let i=e.indexOf(s);i>-1&&e.splice(i,1)}function re(e){return"object"==typeof e&&null!==e&&2===Object.keys(e).length&&"value"in e&&"disabled"in e}var at=class extends nt{defaultValue=null;_onChange=[];_pendingValue;_pendingChange=!1;constructor(e=null,s,i){var a;super((I(a=s)?a.validators:a)||null,function(e,s){return(I(s)?s.asyncValidators:e)||null}(i,s)),this._applyFormState(e),this._setUpdateStrategy(s),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),I(s)&&(s.nonNullable||s.initialValueIsDefault)&&(re(e)?this.defaultValue=e.value:this.defaultValue=e)}setValue(e,s={}){this.value=this._pendingValue=e,this._onChange.length&&!1!==s.emitModelToViewChange&&this._onChange.forEach(e=>e(this.value,!1!==s.emitViewToModelChange)),this.updateValueAndValidity(s)}patchValue(e,s={}){this.setValue(e,s)}reset(e=this.defaultValue,s={}){this._applyFormState(e),this.markAsPristine(s),this.markAsUntouched(s),this.setValue(this.value,s),this._pendingChange=!1}_updateValue(){}_anyControls(e){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(e){this._onChange.push(e)}_unregisterOnChange(e){ie(this._onChange,e)}registerOnDisabledChange(e){this._onDisabledChange.push(e)}_unregisterOnDisabledChange(e){ie(this._onDisabledChange,e)}_forEachChild(e){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(e){re(e)?(this.value=this._pendingValue=e.value,e.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=e}},ot={provide:q,useExisting:f(()=>ht)},lt=Promise.resolve(),ht=(()=>{class n extends q{_changeDetectorRef;callSetDisabledState;control=new at;static ngAcceptInputType_isDisabled;_registered=!1;viewModel;name="";isDisabled;model;options;update=new e;constructor(e,s,i,a,o,l){super(),this._changeDetectorRef=o,this.callSetDisabledState=l,this._parent=e,this._setValidators(s),this._setAsyncValidators(i),this.valueAccessor=function(e,s){if(!s)return null;let i,a,o;return Array.isArray(s),s.forEach(e=>{e.constructor===N?i=e:function(e){return Object.getPrototypeOf(e.constructor)===M}(e)?a=e:o=e}),o||a||i||null}(0,a)}ngOnChanges(e){if(this._checkForErrors(),!this._registered||"name"in e){if(this._registered&&(this._checkName(),this.formDirective)){let s=e.name.previousValue;this.formDirective.removeControl({name:s,path:this._getPath(s)})}this._setUpControl()}"isDisabled"in e&&this._updateDisabled(e),function(e,s){if(!e.hasOwnProperty("model"))return!1;let i=e.model;return!!i.isFirstChange()||!Object.is(s,i.currentValue)}(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){(function(e,s,i=rt){(function(e,s){let i=function(e){return e._rawValidators}(e);null!==s.validator?e.setValidators(Q(i,s.validator)):"function"==typeof i&&e.setValidators([i]);let a=function(e){return e._rawAsyncValidators}(e);null!==s.asyncValidator?e.setAsyncValidators(Q(a,s.asyncValidator)):"function"==typeof a&&e.setAsyncValidators([a]);let r=()=>e.updateValueAndValidity();ne(s._rawValidators,r),ne(s._rawAsyncValidators,r)})(e,s),s.valueAccessor.writeValue(e.value),(e.disabled||"always"===i)&&s.valueAccessor.setDisabledState?.(e.disabled),function(e,s){s.valueAccessor.registerOnChange(i=>{e._pendingValue=i,e._pendingChange=!0,e._pendingDirty=!0,"change"===e.updateOn&&_e(e,s)})}(e,s),function(e,s){let t=(e,i)=>{s.valueAccessor.writeValue(e),i&&s.viewToModelUpdate(e)};e.registerOnChange(t),s._registerOnDestroy(()=>{e._unregisterOnChange(t)})}(e,s),function(e,s){s.valueAccessor.registerOnTouched(()=>{e._pendingTouched=!0,"blur"===e.updateOn&&e._pendingChange&&_e(e,s),"submit"!==e.updateOn&&e.markAsTouched()})}(e,s),function(e,s){if(s.valueAccessor.setDisabledState){let t=e=>{s.valueAccessor.setDisabledState(e)};e.registerOnDisabledChange(t),s._registerOnDestroy(()=>{e._unregisterOnDisabledChange(t)})}}(e,s)})(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._checkName()}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),!this._isStandalone()&&this.name}_updateValue(e){lt.then(()=>{this.control.setValue(e,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(e){let s=e.isDisabled.currentValue,i=0!==s&&D(s);lt.then(()=>{i&&!this.control.disabled?this.control.disable():!i&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(e){return this._parent?function(e,s){return[...s.path,e]}(e,this._parent):[e]}static ɵfac=function(e){return new(e||n)(o(L,9),o(j,10),o(H,10),o(F,10),o(w,8),o(it,8))};static ɵdir=h({type:n,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],standalone:!1,features:[C([ot]),u,k]})}return n})(),ut=(()=>{class n{static ɵfac=function(e){return new(e||n)};static ɵmod=l({type:n});static ɵinj=A({})}return n})(),dt=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:it,useValue:e.callSetDisabledState??rt}]}}static ɵfac=function(e){return new(e||n)};static ɵmod=l({type:n});static ɵinj=A({imports:[ut]})}return n})();export{N as a,K as b,ht as c,dt as d};