PageSourceSearch

https://app.fylehq.com/app/chunk-6YECOJEB.js

js fylehq.com collected 2026-10-01 11:25:40 UTC 50,716 bytes, 3 lines download raw bytes

1import{a as it}from"./chunk-JF6K5UEV.js";import{a as tt}from"./chunk-2LERPDEX.js";import{a as et}from"./chunk-IUVR5KKL.js";import{a as Ze}from"./chunk-T5FDMXWQ.js";import"./chunk-4GWFPCI7.js";import{a as Ke}from"./chunk-HOPSHUBJ.js";import{c as ie}from"./chunk-DGRJCINX.js";import{a as Qe}from"./chunk-LA4GZFHB.js";import{a as Je}from"./chunk-Y2PVJROX.js";import{a as Y}from"./chunk-JXXGEORH.js";import"./chunk-OJ3PPYHB.js";import{a as Xe}from"./chunk-7WDZTK25.js";import{a as Ye}from"./chunk-Y67DPIUC.js";import"./chunk-WTFC2ZCQ.js";import"./chunk-3JESLW5X.js";import"./chunk-Z2NYEZ6M.js";import"./chunk-CG3JJIIC.js";import"./chunk-UZ7BOQAX.js";import"./chunk-6L7ZHOIB.js";import"./chunk-2TT2W2QJ.js";import"./chunk-537TI2QE.js";import"./chunk-VXC4ISOG.js";import"./chunk-4FZHKMBF.js";import"./chunk-BSY7GAJZ.js";import"./chunk-AET5CL3L.js";import"./chunk-JTNNO5MY.js";import{a as He,b as We}from"./chunk-RE4URFUG.js";import{a as ze}from"./chunk-OGTIZ5XW.js";import{c as Ce}from"./chunk-LCTT3CXO.js";import"./chunk-WMX4XLTS.js";import"./chunk-KNXSWGR2.js";import{a as J}from"./chunk-VHEKEBKZ.js";import"./chunk-EGRKITF5.js";import{a as ke}from"./chunk-J367VTCS.js";import"./chunk-RQJM5YXQ.js";import{a as je}from"./chunk-K7LU5EP5.js";import{a as be}from"./chunk-TFMPY3ZK.js";import"./chunk-U46GHHQU.js";import"./chunk-5KFZRJE5.js";import{a as Ge}from"./chunk-W27Y7QUQ.js";import"./chunk-O3GGC5YS.js";import"./chunk-TIBQBFJA.js";import"./chunk-VAS2JVRV.js";import"./chunk-WXWEVNII.js";import{a as $e,b as Ue}from"./chunk-RSBEUDL3.js";import"./chunk-RNQMMWEC.js";import"./chunk-ECZL26C5.js";import"./chunk-OTZ2GYQO.js";import"./chunk-CAVH7CEE.js";import"./chunk-ULGA26WS.js";import"./chunk-2MPHJFTA.js";import"./chunk-G7KR66MF.js";import{e as Oe}from"./chunk-UO2KZQPH.js";import{a as Re}from"./chunk-Y5RRPE3B.js";import"./chunk-7UBXSZOY.js";import"./chunk-P52AOK2G.js";import"./chunk-RNJSETGD.js";import"./chunk-J2737D6V.js";import{b as ye}from"./chunk-LZT2V666.js";import"./chunk-4A7R5BB7.js";import{Ae as he,B as pe,Ed as j,Fd as $,Id as Ve,Ke as Pe,Ld as U,Md as G,Nd as z,Ne as qe,V as me,ae as ge,be as K,ce as Q,ja as w,kd as te,l as ue,ld as Le,nd as M,qd as O,rd as q,wd as ce,yd as k}from"./chunk-YXROKL4T.js";import"./chunk-MT6FXMKE.js";import{$b as C,Aa as v,Ac as Me,Ba as S,Bc as ne,Cc as ae,F as re,Fa as Ae,Gc as De,H as _e,Hb as P,Lc as N,Ma as b,Mc as D,Nb as H,Nc as W,O as Ne,S as xe,W as Fe,ad as ee,bc as _,cd as le,f as R,ga as h,gc as a,hc as d,ia as Be,ic as u,jc as m,kd as l,ld as s,nd as Ie,oa as Z,pd as V,qc as L,rb as n,s as X,ua as f,uc as T,ud as B,wc as c,xd as se,yd as de,z as oe}from"./chunk-5VQKZTJF.js";import{a as x,b as F}from"./chunk-OKNOHCUX.js";var nt=o=>({"tw:cursor-not-allowed":o});function at(o,g){if(o&1&&(d(0,"div",8)(1,"span",9),N(2),u(),d(3,"span",10),N(4),u()()),o&2){let e=g.$implicit;n(2),D(e.label),n(2),D(e.description)}}function lt(o,g){o&1&&(m(0,"ui-input-error",6),l(1,"transloco")),o&2&&a("message",s(1,1,"budgetNature.budgetTypeRequiredError"))}function st(o,g){if(o&1&&(d(0,"span"),N(1),u()),o&2){let e=g.$implicit;n(),D(e.label)}}function dt(o,g){o&1&&(m(0,"ui-input-error",6),l(1,"transloco")),o&2&&a("message",s(1,1,"budgetNature.projectRequiredError"))}function ut(o,g){if(o&1){let e=L();d(0,"div",12),m(1,"ui-input-label",4),l(2,"transloco"),d(3,"ui-autocomplete",14),l(4,"transloco"),T("completeMethod",function(i){v(e);let r=c(2);return S(r.searchProjects(i))})("selectSuggestion",function(){v(e);let i=c(2);return S(i.onSingleEntityChange())}),H(5,st,2,1,"ng-template",null,1,V),u(),C(7,dt,2,3,"ui-input-error",6),u()}if(o&2){let e,t=c(2);a("ngClass",t.dualInputSelected()?"tw:mb-spacing-24":"tw:mb-spacing-12"),n(),a("label",s(2,9,t.projectMultipleSelected()?"budgetNature.projectsLabel":"budgetNature.projectLabel"))("isMandatory",!0),n(2),a("suggestions",t.projectSuggestions())("placeholder",s(4,11,t.projectMultipleSelected()?"budgetNature.projectsPlaceholder":"budgetNature.projectPlaceholder"))("multiple",t.projectMultipleSelected())("minLength",0)("delay",300),n(4),_((e=t.budgetNatureForm.get("projects"))!=null&&e.invali
1d&&((e=t.budgetNatureForm.get("projects"))!=null&&e.touched)?7:-1)}}function pt(o,g){if(o&1&&(d(0,"span"),N(1),u()),o&2){let e=g.$implicit;n(),D(e.label)}}function mt(o,g){o&1&&(m(0,"ui-input-error",6),l(1,"transloco")),o&2&&a("message",s(1,1,"budgetNature.departmentRequiredError"))}function ct(o,g){if(o&1){let e=L();d(0,"div",12),m(1,"ui-input-label",4),l(2,"transloco"),d(3,"ui-autocomplete",15),l(4,"transloco"),T("completeMethod",function(i){v(e);let r=c(2);return S(r.searchDepartments(i))})("selectSuggestion",function(){v(e);let i=c(2);return S(i.onSingleEntityChange())}),H(5,pt,2,1,"ng-template",null,1,V),u(),C(7,mt,2,3,"ui-input-error",6),u()}if(o&2){let e,t=c(2);a("ngClass",t.dualInputSelected()?"tw:mb-spacing-24":"tw:mb-spacing-12"),n(),a("label",s(2,9,t.departmentMultipleSelected()?"budgetNature.departmentsLabel":"budgetNature.departmentLabel"))("isMandatory",!0),n(2),a("suggestions",t.departmentSuggestions())("placeholder",s(4,11,t.departmentMultipleSelected()?"budgetNature.departmentsPlaceholder":"budgetNature.departmentPlaceholder"))("multiple",t.departmentMultipleSelected())("minLength",0)("delay",300),n(4),_((e=t.budgetNatureForm.get("departments"))!=null&&e.invalid&&((e=t.budgetNatureForm.get("departments"))!=null&&e.touched)?7:-1)}}function gt(o,g){if(o&1&&(d(0,"span"),N(1),u()),o&2){let e=g.$implicit;n(),D(e.label)}}function ht(o,g){o&1&&(m(0,"ui-input-error",6),l(1,"transloco")),o&2&&a("message",s(1,1,"budgetNature.costCenterRequiredError"))}function yt(o,g){if(o&1){let e=L();d(0,"div",12),m(1,"ui-input-label",4),l(2,"transloco"),d(3,"ui-autocomplete",16),l(4,"transloco"),T("completeMethod",function(i){v(e);let r=c(2);return S(r.searchCostCenters(i))})("selectSuggestion",function(){v(e);let i=c(2);return S(i.onSingleEntityChange())}),H(5,gt,2,1,"ng-template",null,1,V),u(),C(7,ht,2,3,"ui-input-error",6),u()}if(o&2){let e,t=c(2);a("ngClass",t.dualInputSelected()?"tw:mb-spacing-24":"tw:mb-spacing-12"),n(),a("label",s(2,9,t.costCenterMultipleSelected()?"budgetNature.costCentersLabel":"budgetNature.costCenterLabel"))("isMandatory",!0),n(2),a("suggestions",t.costCenterSuggestions())("placeholder",s(4,11,t.costCenterMultipleSelected()?"budgetNature.costCentersPlaceholder":"budgetNature.costCenterPlaceholder"))("multiple",t.costCenterMultipleSelected())("minLength",0)("delay",300),n(4),_((e=t.budgetNatureForm.get("costCenters"))!=null&&e.invalid&&((e=t.budgetNatureForm.get("costCenters"))!=null&&e.touched)?7:-1)}}function bt(o,g){o&1&&(m(0,"ui-input-error",6),l(1,"transloco")),o&2&&a("message",s(1,1,"budgetNature.categoryRequiredError"))}function Ct(o,g){if(o&1&&(d(0,"div",13),m(1,"ui-input-label",4),l(2,"transloco"),m(3,"ui-multi-select",17),l(4,"transloco"),l(5,"transloco"),C(6,bt,2,3,"ui-input-error",6),u()),o&2){let e,t=c(2);n(),a("label",s(2,13,"budgetNature.categoriesLabel"))("isMandatory",!0),n(2),a("options",t.categoryOptions())("optionLabel","label")("dataKey","id")("placeholder",s(4,15,"budgetNature.categoriesPlaceholder"))("ariaLabel",s(5,17,"budgetNature.categoriesLabel"))("showSearch",!0)("searchByKeys","label")("showSelectAll",!0)("virtualScroll",!0)("maxVisibleChips",5),n(3),_((e=t.budgetNatureForm.get("categories"))!=null&&e.invalid&&((e=t.budgetNatureForm.get("categories"))!=null&&e.touched)?6:-1)}}function _t(o,g){if(o&1&&(d(0,"div",7),m(1,"span",11),C(2,ut,8,13,"div",12),C(3,ct,8,13,"div",12),C(4,yt,8,13,"div",12),C(5,Ct,7,19,"div",13),u()),o&2){let e=c();n(2),_(e.projectSelected()?2:-1),n(),_(e.departmentSelected()?3:-1),n(),_(e.costCenterSelected()?4:-1),n(),_(e.categoriesSelected()?5:-1)}}var Te=(()=>{class o{isDisabled=!1;budgetNatureForm;budgetTypes=b(["CATEGORIES","COST_CENTER_AND_CATEGORIES","COST_CENTERS","DEPARTMENT_AND_CATEGORIES","DEPARTMENTS","PROJECT_AND_CATEGORIES","PROJECTS"]);categoryOptions=b([]);translocoService=f(ge);budgetTypeTranslationKeys={CATEGORIES:{labelKey:"budgetNature.categoriesTypeLabel",descriptionKey:"budgetNature.categoriesTypeDescription"},COST_CENTER_AND_CATEGORIES:{labelKey:"budgetNature.costCenterAndCategoriesTypeLabel",descriptionKey:"budgetNature.costCenterAndCategoriesTypeDescription"},COST_CENTERS:{labelKey:"budgetNature.costCentersTypeLabel",descriptionKey:"budgetNature.costCentersTypeDescription"},DEPARTMENT_AND_CATEGORIES:{labelKey:"budgetNature.departmentAndCategoriesTypeLabel",descriptionKey:"budgetNature.departmentAndCategoriesTypeDescription"},DEPARTMENTS:{labelKey:"budgetNature.departmentsTypeLabel",descriptionKey:"budgetNature.departmentsTypeDescription"},PROJECT_AND_CATEGORIES:{labelKey:"budgetNature.projectAndCategoriesTypeLabel",descriptionKey:"budgetNature.projectAndCategoriesTypeDescription"},PROJECTS:{labelKey:"budgetNature.projectsTypeLabel",descriptionKey:"budgetNature.projectsTypeDescription"}};budgetTypeOptions=B(()=>this.budgetTypes().map(e=>({label:this.translocoService.translate(this.budgetTypeTranslationKeys[e].labelKey),description:this.translocoService.translate(this.budgetTypeTranslationKeys[e].descriptionKey),value:e})));selectedBudgetType=b("");formValue=b({});departmentSuggestions=b([]);projectSuggestions=b([]);costCenterSuggestions=b([]);projectSelected=B(()=>{let e=this.selectedBudgetType();return e==="PROJECT_AND_CATEGORIES"||e==="PROJECTS"});departmentSelected=B(()=>{let e=this.selectedBudgetType();return e==="DEPARTMENT_AND_CATEGORIES"||e==="DEPARTMENTS"});costCenterSelected=B(()=>{let e=this.selectedBudgetType();return e==="COST_CENTER_AND_CATEGORIES"||e==="COST_CENTERS"});categoriesSelected=B(()=>{let e=this.selectedBudgetType();return e==="CATEGORIES"||e==="PROJECT_AND_CATEGORIES"||e==="DEPARTMENT_AND_CATEGORIES"||e==="COST_CENTER_AND_CATEGORIES"});projectMultipleSelected=B(()=>this.selectedBudgetType()==="PROJECTS");departmentMultipleSelected=B(()=>this.selectedBudgetType()==="DEPARTMENTS");costCenterMultipleSelected=B(()=>this.selectedBudgetType()==="COST_CENTERS");dualInputSelected=B(()=>{let e=this.selectedBudgetType();return e==="PROJECT_AND_CATEGORIES"||e==="DEPARTMENT_AND_CATEGORIES"||e==="COST_CENTER_AND_CATEGORIES"});categoriesLoaded=!1;fb=f(U);categoriesService=f(Qe);departmentsService=f(Ke);projectsService=f(Ye);costCentersService=f(Je);destroy$=new R;constructor(){this.budgetNatureForm=this.fb.group({budgetType:["",M.required],categories:[[],this.categoriesValidator.bind(this)],departments:[[],this.departmentsValidator.bind(this)],projects:[[],this.projectsValidator.bind(this)],costCenters:[[],this.costCentersValidator.bind(this)]}),this.formValue.set(this.budgetNatureForm.value),this.budgetNatureForm.valueChanges.pipe(h(this.destroy$)).subscribe(e=>{this.formValue.set(e),this.onChange(e),this.onTouched()})}onChange=()=>{};onTouched=()=>{};categoriesValidator(e){if(!this.budgetNatureForm)return null;let t=this.budgetNatureForm.get("budgetType")?.value;return["CATEGORIES","PROJECT_AND_CATEGORIES","DEPARTMENT_AND_CATEGORIES","COST_CENTER_AND_CATEGORIES"].includes(t)&&(!e.value||e.value.length===0)?{required:!0}:null}departmentsValidator(e){if(!this.budgetNatureForm)return null;let t=this.budgetNatureForm.get("budgetType")?.value;return["DEPARTMENTS","DEPARTMENT_AND_CATEGORIES"].includes(t)&&(!e.value||e.value.length===0)?{required:!0}:null}projectsValidator(e){if(!this.budgetNatureForm)return null;let t=this.budgetNatureForm.get("budgetType")?.value;return["PROJECTS","PROJECT_AND_CATEGORIES"].includes(t)&&(!e.value||e.value.length===0)?{required:!0}:null}costCentersValidator(e){if(!this.budgetNatureForm)return null;let t=this.budgetNatureForm.get("budgetType")?.value;return["COST_CENTERS","COST_CENTER_AND_CATEGORIES"].includes(t)&&(!e.value||e.value.length===0)?{required:!0}:null}filterUnselected(e,t,i=!0){if(!i)return t;let r=this.budgetNatureForm.get(e)?.value||[],p=new Set(r.map(y=>String(y.id)));return t.filter(y=>!p.has(String(y.id)))}loadCategories(){if(this.categoriesLoaded)return;this.categoriesLoaded=!0;let e={order:"name.asc",is_enabled:"eq.true"};this.categoriesService.getAll(w.ADMIN,e).pipe(Ne(()=>(this.categoriesLoaded=!1,X([]))),Be(t=>{this.categoryOptions.set((t||[]).map(i=>F(x({},i),{label:i.display_name||i.name})))}),h(this.destroy$)).subscribe()}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}onBudgetTypeChange(){let e=this.budgetNatureForm.get("budgetType")?.value;this.selectedBudgetType.set(e),this.budgetNatureForm.patchValue({categories:[],departments:[],projects:[],costCenters:[]},{emitEvent:!1}),this.budgetNatureForm.get("categories")?.updateValueAndValidity(),this.budgetNatureForm.get("departments")?.updateValueAndValidity(),this.budgetNatureForm.get("projects")?.updateValueAndValidity(),this.budgetNatureForm.get("costCenters")?.updateValueAndValidity(),this.categoriesSelected()&&this.loadCategories(),this.onChange(this.budgetNatureForm.value)}onSingleEntityChange(){let e=this.budgetNatureForm.value;this.formValue.set(e),this.onChange(e)}searchDepartments(e){let t=e.query?.trim(),i=this.departmentMultipleSelected()&&this.budgetNatureForm.get("departments")?.value?.length||0,p={limit:Math.max(10,10+i).toString(),order:"display_name.asc",is_enabled:"eq.true"};t&&(p.display_name=`ilike.%${t}%`),this.budgetNatureForm.get("departments")?.markAsTouched(),this.departmentsService.getByParams(p,w.ADMIN).pipe(h(this.destroy$)).subscribe(y=>{let E=this.filterSelectedDepartments(y||[]);this.departmentSuggestions.set(E.map(A=>F(x({},A),{label:A.display_name})))})}searchProjects(e){let t=e.query?.trim(),i=this.projectMultipleSelected()&&this.budgetNatureForm.get("projects")?.value?.length||0,p={limit:Math.max(10,10+i).toString(),order:"display_name.asc",is_enabled:"eq.true"};t&&(p.display_name=`ilike.%${t}%`),this.budgetNatureForm.get("projects")?.markAsTouched(),this.projectsService.getByParams(w.ADMIN,p).pipe(h(this.destroy$)).subscribe(y=>{let E=this.filterSelectedProjects(y.data||[]);this.projectSuggestions.set(E.map(A=>F(x({},A),{label:A.display_name})))})}searchCostCenters(e){let t=e.query?.trim(),i=this.costCenterMultipleSelected()&&this.budgetNatureForm.get("costCenters")?.value?.length||0,r=Math.max(10,10+i),p={limit:r.toString(),order:"name.asc",is_enabled:"eq.true"};t&&(p.name=`ilike.%${t}%`),this.budgetNatureForm.get("costCenters")?.markAsTouched(),this.costCentersService.getDataInChunk(w.ADMIN,p,r).pipe(h(this.destroy$)).subscribe(y=>{let E=this.filterSelectedCostCenters(y.data||[]);this.costCenterSuggestions.set(E.map(A=>F(x({},A),{label:A.name})))})}filterSelectedDepartments(e){return this.filterUnselected("departments",e,this.departmentMultipleSelected())}filterSelectedProjects(e){return this.filterUnselected("projects",e,this.projectMultipleSelected())}filterSelectedCostCenters(e){return this.filterUnselected("costCenters",e,this.costCenterMultipleSelected())}writeValue(e){e&&(this.selectedBudgetType.set(e.budgetType||""),this.formValue.set(e),this.budgetNatureForm.patchValue(e,{emitEvent:!1}),this.categoriesSelected()&&this.loadCategories(),this.isDisabled&&this.budgetNatureForm.get("budgetType")?.disable())}populateEntityDataFromIds(e,t,i,r){re({categories:this.fetchCategoriesByIds(e),departments:this.fetchDepartmentsByIds(t),projects:this.fetchProjectsByIds(i),costCenters:this.fetchCostCentersByIds(r)}).pipe(h(this.destroy$)).subscribe({next:p=>{let y=this.budgetNatureForm.value,E=F(x({},y),{categories:p.categories,departments:this.departmentMultipleSelected()?p.departments:p.departments[0]||null,projects:this.projectMultipleSelected()?p.projects:p.projects[0]||null,costCenters:this.costCenterMultipleSelected()?p.costCenters:p.costCenters[0]||null});this.budgetNatureForm.patchValue(E,{emitEvent:!1}),this.formValue.set(E),this.onChange(E),this.isDisabled&&this.budgetNatureForm.get("budgetType")?.disable()}})}fetchCategoriesByIds(e){if(!e||e.length===0)return X([]);let t={id:`in.(${e.join(",")})`};return this.categoriesService.getAll(w.ADMIN,t).pipe(h(this.destroy$),oe(i=>(i||[]).map(r=>F(x({},r),{label:r.display_name||r.name}))))}fetchDepartmentsByIds(e){if(!e||e.length===0)return X([]);let t={id:`in.(${e.join(",")})`};return this.departmentsService.getByParams(t,w.ADMIN).pipe(h(this.destroy$),oe(i=>(i||[]).map(r=>F(x({},r),{label:r.display_name||r.name}))))}fetchProjectsByIds(e){if(!e||e.length===0)return X([]);let t={id:`in.(${e.join(",")})`};return this.projectsService.getByParams(w.ADMIN,t).pipe(h(this.destroy$),oe(i=>(i?.data||[]).map(r=>F(x({},r),{label:r.display_name||r.name}))))}fetchCostCentersByIds(e){if(!e||e.length===0)return X([]);let t={id:`in.(${e.join(",")})`};return this.costCentersService.getAll(w.ADMIN,t).pipe(h(this.destroy$),oe(i=>(i||[]).map(r=>F(x({},r),{label:r.name}))))}registerOnChange(e){this.onChange=e}registerOnTouched(e){this.onTouched=e}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=P({type:o,selectors:[["feature-budget-nature"]],inputs:{isDisabled:"isDisabled"},features:[ee([{provide:te,useExisting:Z(()=>o),multi:!0}])],decls:10,vars:17,consts:[["itemTemplate",""],["item",""],[1,"budget-nature-form",3,"formGroup","ngClass"],[1,"tw:pb-spacing-20"],[3,"label","isMandatory"],["formControlName","budgetType",3,"ngModelChange","options","optionLabel","optionValue","placeholder","scrollHeight"],[3,"message"],[1,"input-container"],[1,"tw:flex","tw:flex-col","tw:gap-spacing-2"],[1,"tw:text-text-secondary","tw:text-base"],[1,"tw:text-text-muted","tw:text-sm"],[1,"tooltip-arrow-y","top-left"],[3,"ngClass"],[1,"tw:mb-spacing-12"],["formControlName","projects",1,"tw:w-full",3,"completeMethod","selectSuggestion","suggestions","placeholder","multiple","minLength","delay"],["formControlName","departments",1,"tw:w-full",3,"completeMethod","selectSuggestion","suggestions","placeholder","multiple","minLength","delay"],["formControlName","costCenters",1,"tw:w-full",3,"completeMethod","selectSuggestion","suggestions","placeholder","multiple","minLength","delay"],["formControlName","categories",1,"tw:w-full",3,"options","optionLabel","dataKey","placeholder","ariaLabel","showSearch","searchByKeys","showSelectAll","virtualScroll","maxVisibleChips"]],template:function(t,i){if(t&1&&(d(0,"form",2)(1,"div",3),m(2,"ui-input-label",4),l(3,"transloco"),d(4,"ui-select",5),l(5,"transloco"),T("ngModelChange",function(){return i.onBudgetTypeChange()}),H(6,at,5,2,"ng-template",null,0,V),u(),C(8,lt,2,3,"ui-input-error",6),u(),C(9,_t,6,4,"div",7),u()),t&2){let r;a("formGroup",i.budgetNatureForm)("ngClass",le(15,nt,i.isDisabled)),n(2),a("label",s(3,11,"budgetNature.budgetForLabel"))("isMandatory",!0),n(2),a("options",i.budgetTypeOptions())("optionLabel","label")("optionValue","value")("placeholder",s(5,13,"budgetNature.budgetForPlaceholder"))("scrollHeight","340px"),n(4),_((r=i.budgetNatureForm.get("budgetType"))!=null&&r.invalid&&((r=i.budgetNatureForm.get("budgetType"))!=null&&r.touched)?8:-1),n(),_(i.selectedBudgetType()?9:-1)}},dependencies:[pe,ue,z,k,O,q,$,j,G,Y,Xe,ie,be,J,Q,K],styles:[`.input-container[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;border-radius:var(--tw-radius-md, .375rem);background-color:var(--tw-color-bg-tertiary-dark, var(--bg-tertiary-dark));padding:var(--tw-padding-spacing-20, var(--size-20))}.input-container[_ngcontent-%COMP%]   .tooltip-arrow-y[_ngcontent-%COMP%]{position:absolute;height:var(--tw-height-16-px, var(--size-16));width:var(--tw-width-28-px, var(--size-28));overflow:visible;background-color:var(--tw-color-neutral-100, oklch(97% 0 0));clip-path:polygon(50% 0,0 100%,100% 100%)}.input-container[_ngcontent-%COMP%]   .tooltip-arrow-y.top-left[_ngcontent-%COMP%]{top:calc(var(--tw-spacing, .25rem) * -2);left:calc(var(--tw-spacing, .25rem) * 2)}
2`]})}return o}
2)();function ft(o,g){o&1&&(m(0,"ui-input-error",5),l(1,"transloco")),o&2&&a("message",s(1,1,"budgetEmailAlert.thresholdRequiredError"))}function vt(o,g){o&1&&(m(0,"ui-input-error",5),l(1,"transloco")),o&2&&a("message",s(1,1,"budgetEmailAlert.recipientsRequiredError"))}var Ee=(()=>{class o{budgetEmailAlertForm;recipientOptions=b([]);fb=f(U);employeesService=f(he);destroy$=new R;constructor(){this.budgetEmailAlertForm=this.fb.group({thresholdAmountLimitPercent:[null,M.required],recipients:[[],M.required]}),this.budgetEmailAlertForm.valueChanges.pipe(h(this.destroy$)).subscribe(e=>{this.onChange(e),this.onTouched()})}onChange=()=>{};onTouched=()=>{};ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}onRecipientPanelShow(){this.loadRecipients()}onRecipientSearch(e){let t=e.target?.value?.trim()??"";this.loadRecipients(t)}loadRecipients(e=""){let t=this.budgetEmailAlertForm.get("recipients")?.value?.length||0,r={is_enabled:"eq.true",has_accepted_invite:"eq.true",limit:Math.max(10,10+t).toString(),order:"user->full_name.asc"};e&&(r.q=`${e}:*`),this.budgetEmailAlertForm.get("recipients")?.markAsTouched(),this.employeesService.getByParams(w.ADMIN,r).pipe(h(this.destroy$)).subscribe(p=>{let y=(p||[]).map(I=>({id:I.user.id,full_name:I.user.full_name,email:I.user.email,label:`${I.user.full_name} (${I.user.email})`})),E=this.budgetEmailAlertForm.get("recipients")?.value||[],A=new Set(y.map(I=>I.id)),ot=[...E.filter(I=>!A.has(I.id)),...y];this.recipientOptions.set(ot)})}populateRecipientsFromIds(e){if(!e||e.length===0)return;let t={is_enabled:"eq.true",has_accepted_invite:"eq.true",user_id:`in.(${e.join(",")})`,limit:"50",order:"user->full_name.asc"};this.employeesService.getByParams(w.ADMIN,t).pipe(h(this.destroy$)).subscribe(i=>{let r=(i||[]).map(p=>({id:p.user.id,full_name:p.user.full_name,email:p.user.email,label:`${p.user.full_name} (${p.user.email})`}));this.recipientOptions.set(r),this.budgetEmailAlertForm.patchValue({recipients:r},{emitEvent:!1}),this.onChange(this.budgetEmailAlertForm.getRawValue())})}writeValue(e){e&&this.budgetEmailAlertForm.patchValue(e,{emitEvent:!1})}registerOnChange(e){this.onChange=e}registerOnTouched(e){this.onTouched=e}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=P({type:o,selectors:[["feature-budget-email-alert"]],features:[ee([{provide:te,useExisting:Z(()=>o),multi:!0}])],decls:17,vars:32,consts:[[3,"formGroup"],[1,"tw:mb-spacing-24"],[3,"label","isMandatory","infoButtonTooltipText"],[1,"tw:flex","tw:flex-row","tw:justify-start","tw:items-center","tw:relative"],["formControlName","thresholdAmountLimitPercent","mode","decimal",1,"tw:w-full",3,"placeholder"],[3,"message"],[1,"tw:mb-spacing-8"],["formControlName","recipients",1,"tw:w-full",3,"dropdownPanelShow","search","options","optionLabel","dataKey","showSearch","useApiForSearch","searchByKeys","placeholder","ariaLabel"]],template:function(t,i){if(t&1&&(d(0,"form",0)(1,"div",1),m(2,"ui-input-label",2),l(3,"transloco"),l(4,"transloco"),d(5,"div",3),m(6,"p-inputnumber",4),l(7,"transloco"),u(),C(8,ft,2,3,"ui-input-error",5),u(),d(9,"div",6),m(10,"ui-input-label",2),l(11,"transloco"),l(12,"transloco"),d(13,"ui-multi-select",7),l(14,"transloco"),l(15,"transloco"),T("dropdownPanelShow",function(){return i.onRecipientPanelShow()})("search",function(p){return i.onRecipientSearch(p)}),u(),C(16,vt,2,3,"ui-input-error",5),u()()),t&2){let r,p;a("formGroup",i.budgetEmailAlertForm),n(2),a("label",s(3,18,"budgetEmailAlert.thresholdLabel"))("isMandatory",!0)("infoButtonTooltipText",s(4,20,"budgetEmailAlert.thresholdTooltip")),n(4),a("placeholder",s(7,22,"budgetEmailAlert.thresholdPlaceholder")),n(2),_((r=i.budgetEmailAlertForm.get("thresholdAmountLimitPercent"))!=null&&r.invalid&&((r=i.budgetEmailAlertForm.get("thresholdAmountLimitPercent"))!=null&&r.touched)?8:-1),n(2),a("label",s(11,24,"budgetEmailAlert.recipientsLabel"))("isMandatory",!0)("infoButtonTooltipText",s(12,26,"budgetEmailAlert.recipientsTooltip")),n(3),a("options",i.recipientOptions())("optionLabel","label")("dataKey","id")("showSearch",!0)("useApiForSearch",!0)("searchByKeys","label")("placeholder",s(14,28,"budgetEmailAlert.recipientsPlaceholder"))("ariaLabel",s(15,30,"budgetEmailAlert.recipientsLabel")),n(3),_((p=i.budgetEmailAlertForm.get("recipients"))!=null&&p.invalid&&((p=i.budgetEmailAlertForm.get("recipients"))!=null&&p.touched)?16:-1)}},dependencies:[z,k,O,q,$,j,G,Y,J,Q,Ce,ie,K],encapsulation:2})}return o}
2)();var St=o=>({"tw:cursor-not-allowed":o});function Tt(o,g){o&1&&(m(0,"ui-input-error",8),l(1,"transloco")),o&2&&a("message",s(1,1,"budgetType.budgetTypeRequiredError"))}function Et(o,g){if(o&1&&(d(0,"div",11),N(1),u()),o&2){let e=c();n(),W(" ",e.homeCurrency," ")}}function wt(o,g){o&1&&(m(0,"ui-input-error",8),l(1,"transloco")),o&2&&a("message",s(1,1,"budgetType.amountLimitRequiredError"))}function Nt(o,g){if(o&1&&(d(0,"div",23)(1,"span"),N(2),u(),d(3,"span",24),N(4),u()()),o&2){let e=g.$implicit;n(2),D(e.user==null?null:e.user.full_name),n(2),D(e.user==null?null:e.user.email)}}function xt(o,g){if(o&1&&(d(0,"span"),N(1),l(2,"ellipsis"),u()),o&2){let e=c().$implicit,t=c(2);n(),D(Ie(2,1,t.getSelectedEmployeesCsv(e),80,!0))}}function Ft(o,g){if(o&1&&C(0,xt,3,5,"span"),o&2){let e,t=g.$implicit,i=c(2);_((t==null?null:t.length)>0&&((e=i.budgetTypeForm.get("userIds"))==null||e.value==null?null:e.value.length)>0?0:-1)}}function Bt(o,g){if(o&1){let e=L();d(0,"ui-button",25),l(1,"transloco"),T("buttonClick",function(i){v(e),c();let r=De(4),p=c();return S(p.applyEmployeeSelection(r,i.event))}),u()}if(o&2){let e=c(2);a("buttonType",e.buttonType.PRIMARY)("label",s(1,3,"budgetType.applyButton"))("customClasses","tw:rounded-lg! tw:w-full")}}function At(o,g){o&1&&(m(0,"ui-input-error",8),l(1,"transloco")),o&2&&a("message",s(1,1,"budgetType.employeesRequiredError"))}function Mt(o,g){if(o&1){let e=L();d(0,"div",9),m(1,"ui-input-label",6),l(2,"transloco"),d(3,"ui-multi-select",22,0),l(5,"transloco"),l(6,"transloco"),T("search",function(i){v(e);let r=c();return S(r.onEmployeeSearch(i))})("clear",function(){v(e);let i=c();return S(i.onClearEmployeeSearch())})("lazyLoad",function(i){v(e);let r=c();return S(r.onEmployeeLazyLoad(i))}),H(7,Nt,5,2,"ng-template",null,1,V)(9,Ft,1,1,"ng-template",null,2,V)(11,Bt,2,5,"ng-template",null,3,V),u(),C(13,At,2,3,"ui-input-error",8),u()}if(o&2){let e,t=c();n(),a("label",s(2,16,"budgetType.employeesLabel"))("isMandatory",!0),n(2),a("options",t.employees())("optionLabel","user.full_name")("optionValue","user_id")("placeholder",s(5,18,"budgetType.employeesPlaceholder"))("showSearch",!0)("useApiForSearch",!0)("searchResultsLoading",t.employeesLoading())("dropdownSearchPlaceholder",s(6,20,"budgetType.employeesSearchPlaceholder"))("lazy",!0)("totalCount",t.employeesCount())("virtualScroll",!0)("virtualScrollItemSize",48)("itemsRemainingThreshold",5),n(10),_((e=t.budgetTypeForm.get("userIds"))!=null&&e.invalid&&((e=t.budgetTypeForm.get("userIds"))!=null&&e.touched)?13:-1)}}var we=(()=>{class o{isDisabled=!1;homeCurrency="";employees=de([]);employeesCount=de(0);employeesLoading=de(!1);employeeSearch=se();employeeClearSearch=se();employeeLazyLoad=se();budgetTypeForm;budgetFrequencyTypes=b(["MONTHLY","QUARTERLY","YEARLY","ONE_TIME"]);budgetFrequencyTypeOptions=B(()=>this.budgetFrequencyTypes().map(e=>({label:e.replace(/_/g," ").toLowerCase().replace(/\b\w/g,t=>t.toUpperCase()),value:e})));selectedFrequency=b("");buttonType=me;showEmployeesDropdown=B(()=>this.budgetTypeForm?.get("visibility")?.value==="SPECIFIC_EMPLOYEES");fb=f(U);destroy$=new R;constructor(){this.budgetTypeForm=this.fb.group({budgetFrequencyType:["",M.required],amountLimit:[null,[M.required]],visibility:["ONLY_ADMINS",M.required],userIds:[[]]}),this.budgetTypeForm.valueChanges.pipe(h(this.destroy$)).subscribe(()=>{let e=this.budgetTypeForm.getRawValue();this.onChange(e),this.onTouched()})}onChange=()=>{};onTouched=()=>{};ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}onBudgetFrequencyTypeChange(){let e=this.budgetTypeForm.get("budgetFrequencyType")?.value;this.selectedFrequency.set(e),this.onChange(this.budgetTypeForm.getRawValue())}onVisibilityChange(){let e=this.budgetTypeForm.get("visibility")?.value,t=this.budgetTypeForm.get("userIds");e==="SPECIFIC_EMPLOYEES"?t?.setValidators([M.required]):(t?.clearValidators(),t?.setValue([])),t?.updateValueAndValidity()}writeValue(e){e&&(this.selectedFrequency.set(e.budgetFrequencyType||""),this.budgetTypeForm.patchValue(e,{emitEvent:!1}),this.isDisabled&&this.budgetTypeForm.get("budgetFrequencyType")?.disable(),this.onChange(this.budgetTypeForm.getRawValue()))}registerOnChange(e){this.onChange=e}registerOnTouched(e){this.onTouched=e}onEmployeeSearch(e){let t=e.target.value;this.employeeSearch.emit(t)}onClearEmployeeSearch(){this.employeeClearSearch.emit()}onEmployeeLazyLoad(e){this.employeeLazyLoad.emit(e)}getSelectedEmployeesCsv(e){return!e||e.length===0?"":e.map(t=>t?.user?.full_name||"").filter(t=>t.trim().length>0).join(", ")}
2applyEmployeeSelection(e,t){e.close(t)}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=P({type:o,selectors:[["ui-budget-type"]],inputs:{isDisabled:"isDisabled",homeCurrency:"homeCurrency",employees:[1,"employees"],employeesCount:[1,"employeesCount"],employeesLoading:[1,"employeesLoading"]},outputs:{employeeSearch:"employeeSearch",employeeClearSearch:"employeeClearSearch",employeeLazyLoad:"employeeLazyLoad"},features:[ee([{provide:te,useExisting:Z(()=>o),multi:!0}])],decls:36,vars:43,consts:[["employeeMultiSelect",""],["itemTemplate",""],["selectedItemsTemplate",""],["footerTemplate",""],[1,"budget-type-form",3,"formGroup"],[1,"tw:pt-spacing-8","tw:pb-spacing-10"],[3,"label","isMandatory"],["formControlName","budgetFrequencyType",3,"ngModelChange","options","optionLabel","optionValue","placeholder","ngClass"],[3,"message"],[1,"tw:py-spacing-10"],[1,"budget-amount-container","tw:flex","tw:flex-row","tw:border","tw:rounded-md","tw:overflow-hidden"],[1,"currency-label","tw:p-spacing-8","tw:border-r","tw:bg-neutral-100","tw:flex","tw:items-center"],["formControlName","amountLimit","mode","decimal",1,"budget-amount-input","tw:w-full",3,"placeholder","min"],[3,"label","isMandatory","infoButtonTooltipText","containerClasses"],[1,"tw:flex","tw:flex-wrap","tw:gap-spacing-24","tw:mt-spacing-8"],[1,"tw:flex","tw:items-center"],["name","budgetVisibility","value","ONLY_ADMINS","formControlName","visibility","inputId","visibility-admins",3,"onClick"],["for","visibility-admins",1,"tw:text-size-14","tw:ml-spacing-8","tw:text-text-label","tw:cursor-pointer"],["name","budgetVisibility","value","ALL_CONTRIBUTING_EMPLOYEES","formControlName","visibility","inputId","visibility-contributors",3,"onClick"],["for","visibility-contributors",1,"tw:text-size-14","tw:ml-spacing-8","tw:text-text-label","tw:cursor-pointer"],["name","budgetVisibility","value","SPECIFIC_EMPLOYEES","formControlName","visibility","inputId","visibility-specific",3,"onClick"],["for","visibility-specific",1,"tw:text-size-14","tw:ml-spacing-8","tw:text-text-label","tw:cursor-pointer"],["formControlName","userIds",3,"search","clear","lazyLoad","options","optionLabel","optionValue","placeholder","showSearch","useApiForSearch","searchResultsLoading","dropdownSearchPlaceholder","lazy","totalCount","virtualScroll","virtualScrollItemSize","itemsRemainingThreshold"],[1,"tw:flex","tw:flex-col"],[1,"tw:text-text-secondary","tw:text-size-12"],[3,"buttonClick","buttonType","label","customClasses"]],template:function(t,i){if(t&1&&(d(0,"form",4)(1,"div",5),m(2,"ui-input-label",6),l(3,"transloco"),d(4,"ui-select",7),l(5,"transloco"),T("ngModelChange",function(){return i.onBudgetFrequencyTypeChange()}),u(),C(6,Tt,2,3,"ui-input-error",8),u(),d(7,"div",9),m(8,"ui-input-label",6),l(9,"transloco"),d(10,"div",10),C(11,Et,2,1,"div",11),m(12,"p-inputnumber",12),l(13,"transloco"),u(),C(14,wt,2,3,"ui-input-error",8),u(),d(15,"div",9),m(16,"ui-input-label",13),l(17,"transloco"),l(18,"transloco"),d(19,"div",14)(20,"div",15)(21,"p-radioButton",16),T("onClick",function(){return i.onVisibilityChange()}),u(),d(22,"label",17),N(23),l(24,"transloco"),u()(),d(25,"div",15)(26,"p-radioButton",18),T("onClick",function(){return i.onVisibilityChange()}),u(),d(27,"label",19),N(28),l(29,"transloco"),u()(),d(30,"div",15)(31,"p-radioButton",20),T("onClick",function(){return i.onVisibilityChange()}),u(),d(32,"label",21),N(33),l(34,"transloco"),u()()()(),C(35,Mt,14,22,"div",9),u()),t&2){let r,p,y,E;a("formGroup",i.budgetTypeForm),n(2),a("label",s(3,23,"budgetType.budgetTypeSelectLabel"))("isMandatory",!0),n(2),a("options",i.budgetFrequencyTypeOptions())("optionLabel","label")("optionValue","value")("placeholder",s(5,25,"budgetType.budgetFrequencyPlaceholder"))("ngClass",le(41,St,i.isDisabled||((r=i.budgetTypeForm.get("budgetFrequencyType"))==null?null:r.disabled))),n(2),_((p=i.budgetTypeForm.get("budgetFrequencyType"))!=null&&p.invalid&&((p=i.budgetTypeForm.get("budgetFrequencyType"))!=null&&p.touched)?6:-1),n(2),a("label",s(9,27,"budgetType.budgetAmountLabel"))("isMandatory",!0),n(3),_(i.homeCurrency?11:-1),n(),a("placeholder",s(13,29,"budgetType.budgetAmountPlaceholder"))("min",0),n(2),_((y=i.budgetTypeForm.get("amountLimit"))!=null&&y.invalid&&((y=i.budgetTypeForm.get("amountLimit"))!=null&&y.touched)?14:-1),n(2),a("label",s(17,31,"budgetType.whoCanSeeBudgetLabel"))("isMandatory",!0)("infoButtonTooltipText",s(18,33,"budgetType.whoCanSeeBudgetTooltip"))("containerClasses","tw:mb-spacing-12"),n(7),W(" ",s(24,35,"budgetType.onlyAdmins")," "),n(5),W(" ",s(29,37,"budgetType.allContributingEmployees")," "),n(5),W(" ",s(34,39,"budgetType.specificEmployees")," "),n(2),_(((E=i.budgetTypeForm.get("visibility"))==null?null:E.value)==="SPECIFIC_EMPLOYEES"?35:-1)}},dependencies:[pe,ue,z,k,O,q,$,j,G,Y,be,ie,J,We,He,Q,Ce,ye,K,ze],styles:[`@layer properties;.budget-amount-container[_ngcontent-%COMP%]{border-color:var(--tw-color-slate-blue-grey, var(--slate-blue-grey))}.budget-amount-container[_ngcontent-%COMP%]   .currency-label[_ngcontent-%COMP%]{border-color:var(--tw-color-slate-blue-grey, var(--slate-blue-grey));background-color:var(--tw-color-bg-tertiary-dark, var(--bg-tertiary-dark))}.budget-amount-container[_ngcontent-%COMP%]   .budget-amount-input[_ngcontent-%COMP%]     .p-inputnumber-input{border-radius:0;border-style:var(--tw-border-style);border-width:0px;--tw-shadow: 0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-sha
2dow)}.budget-amount-container[_ngcontent-%COMP%]   .budget-amount-input[_ngcontent-%COMP%]     .p-inputnumber-input:focus{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-outline-style: none;outline-style:none}@property --tw-border-style{syntax: "*"; inherits: false; initial-value: solid;}@property --tw-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: "*"; inherits: false;}@property --tw-shadow-alpha{syntax: "<percentage>"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: "*"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: "<percentage>"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: "*"; inherits: false;}@property --tw-ring-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: "*"; inherits: false;}@property --tw-inset-ring-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: "*"; inherits: false;}@property --tw-ring-offset-width{syntax: "<length>"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: "*"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*[_ngcontent-%COMP%], [_ngcontent-%COMP%]:before, [_ngcontent-%COMP%]:after, [_ngcontent-%COMP%]::backdrop{--tw-border-style: solid;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000}}}
3`]})}return o})();function Dt(o,g){o&1&&(m(0,"ui-input-error",18),l(1,"transloco")),o&2&&a("message",s(1,1,"addEditBudget.budgetNameRequiredError"))}function It(o,g){if(o&1){let e=L();d(0,"div",1)(1,"ui-page-header",2),l(2,"transloco"),l(3,"transloco"),l(4,"transloco"),T("closeClicked",function(){v(e);let i=c();return S(i.onClose())}),u()(),d(5,"div",3)(6,"form",4)(7,"div",5)(8,"ui-section-box",6),l(9,"transloco"),T("mouseenter",function(){v(e);let i=c();return S(i.setSummarySectionAsActive("budget-nature"))}),m(10,"feature-budget-nature",7),u(),d(11,"div",8),m(12,"ui-svg-sprite",9),u(),d(13,"ui-section-box",10),l(14,"transloco"),T("mouseenter",function(){v(e);let i=c();return S(i.setSummarySectionAsActive("budget-type"))}),d(15,"ui-budget-type",11),T("employeeSearch",function(i){v(e);let r=c();return S(r.onEmployeeSearch(i))})("employeeClearSearch",function(){v(e);let i=c();return S(i.onClearEmployeeSearch())})("employeeLazyLoad",function(i){v(e);let r=c();return S(r.onEmployeeLazyLoad(i))}
3),u()(),d(16,"div",8),m(17,"ui-svg-sprite",9),u(),d(18,"ui-section-box",12),l(19,"transloco"),T("mouseenter",function(){v(e);let i=c();return S(i.setSummarySectionAsActive("budget-email-alert"))}),m(20,"feature-budget-email-alert",13),u(),d(21,"div",8),m(22,"ui-svg-sprite",9),u(),d(23,"ui-section-box",14),l(24,"transloco"),T("mouseenter",function(){v(e);let i=c();return S(i.setSummarySectionAsActive("budget-name"))}),d(25,"div",15),m(26,"ui-input-label",16),l(27,"transloco"),m(28,"input",17),l(29,"transloco"),C(30,Dt,2,3,"ui-input-error",18),u()(),d(31,"div",19)(32,"ui-button",20),l(33,"transloco"),l(34,"transloco"),T("click",function(){v(e);let i=c();return S(i.onSave())}),u()()()(),d(35,"div",21)(36,"ui-navigation-summary",22),T("scrollTo",function(i){v(e);let r=c();return S(r.scrollToChild(i))}),u()()()}if(o&2){let e,t=c();n(),a("title",s(2,40,"addEditBudget.title"))("description",s(3,42,"addEditBudget.description"))("url",s(4,44,"addEditBudget.helpUrl"))("showCloseIcon",!0),n(5),a("formGroup",t.budgetForm),n(2),a("header",s(9,46,"addEditBudget.natureOfBudgetHeader"))("showDarkIcon",!0)("showIconOnTitle",!0)("precedingIcon","tag"),n(2),a("isDisabled",t.isBudgetEdit()),n(2),a("classes","tw:h-48-px tw:fill-meta-text"),n(),a("header",s(14,48,"addEditBudget.budgetTypeHeader"))("showDarkIcon",!0)("showIconOnTitle",!0)("precedingIcon","cash"),n(2),a("isDisabled",t.isBudgetEdit())("homeCurrency",t.homeCurrency())("employees",t.employees())("employeesCount",t.employeesCount())("employeesLoading",t.employeesLoading()),n(2),a("classes","tw:h-48-px tw:fill-meta-text"),n(),a("header",s(19,50,"addEditBudget.budgetEmailAlertHeader"))("showDarkIcon",!0)("showIconOnTitle",!0)("precedingIcon","envelope"),n(4),a("classes","tw:h-48-px tw:fill-meta-text"),n(),a("header",s(24,52,"addEditBudget.budgetNameHeader"))("showDarkIcon",!0)("showIconOnTitle",!0)("precedingIcon","edit"),n(3),a("label",s(27,54,"addEditBudget.budgetNameLabel"))("isMandatory",!0),n(2),a("formControlName","name")("placeholder",s(29,56,"addEditBudget.budgetNamePlaceholder")),n(2),_((e=t.budgetForm.get("name"))!=null&&e.invalid&&((e=t.budgetForm.get("name"))!=null&&e.touched)?30:-1),n(2),a("buttonType",t.ButtonType.PRIMARY)("label",s(33,58,"addEditBudget.saveButton"))("isLoading",t.isBudgetSaving())("loadingText",s(34,60,"addEditBudget.savingText")),n(4),a("summary",t.summary())}}function Rt(o,g){o&1&&(d(0,"div",0)(1,"ui-spinner-loader",23),N(2),l(3,"transloco"),u()()),o&2&&(n(),a("styleClass","spinner-50"),n(),W(" ",s(3,2,"addEditBudget.loadingText")," "))}var po=(()=>{class o{budgetNatureComponent;budgetTypeComponent;budgetEmailAlertComponent;isLoading=b(!1);budget=b(null);isBudgetEdit=b(!1);homeCurrency=b("");budgetForm;ButtonType=me;budgetSaving=b(!1);summary=b([]);hasAttemptedSave=b(!1);employees=b([]);employeesCount=b(0);employeesLoading=b(!1);employeeSearchQuery=b("");employeeSearchEvent$=new R;fb=f(U);routingService=f(Re);budgetsService=f(et);currencyService=f(Ge);document=f(Ae);toastMessageService=f(je);translocoService=f(ge);trackingService=f(Oe);employeesService=f(he);utilityService=f(Pe);destroy$=new R;constructor(){this.budgetForm=this.fb.group({budgetNature:ce,budgetType:ce,budgetEmailAlert:ce,name:["",M.required]})}getEmployeeQueryParams(){let e={is_enabled:"eq.true",order:"user->full_name.asc,user->email.asc"};if(this.employeeSearchQuery()){let t=this.employeeSearchQuery();e.or=`(user->full_name.ilike."%${t}%",user->email.ilike."%${t}%")`}return e}initializeEmployeeSearchHandler(){this.employeeSearchEvent$.pipe(xe(300),Fe(),h(this.destroy$)).subscribe(e=>this.handleEmployeeSearch(e))}handleEmployeeSearch(e){if(this.employeeSearchQuery.set(e),e===""){this.loadInitialEmployees();return}let t=F(x({},this.getEmployeeQueryParams()),{limit:100,offset:0});this.employeesService.getByParams(w.ADMIN,t).pipe(h(this.destroy$)).subscribe(i=>{let r=this.mergeWithSelectedEmployees(i);this.employees.set(r),this.employeesCount.set(i.length)})}loadInitialEmployees(){this.employeesLoading.set(!0);let e=F(x({},this.getEmployeeQueryParams()),{limit:10,offset:0});re({employees:this.employeesService.getByParams(w.ADMIN,e),count:this.employeesService.getCount(w.ADMIN,this.getEmployeeQueryParams())}).pipe(h(this.destroy$)).subscribe(({employees:t,count:i})=>{let r=this.mergeWithSelectedEmployees(t);this.employees.set(r),this.employeesCount.set(i),this.employeesLoading.set(!1)})}mergeWithSelectedEmployees(e){let t=this.budgetTypeComponent?.budgetTypeForm?.get("userIds")?.value||[];if(t.length===0)return e;let r=[...this.employees().filter(p=>t.includes(p.user_id||""))];for(let p of e)r.some(y=>
3y.user_id===p.user_id)||r.push(p);return r}getSelectedEmployeesForSummary(e){if(!(!e||e.length===0))return this.employees().filter(t=>e.includes(t.user_id||""))}populateEmployeesFromIds(e){if(!e||e.length===0)return;let t={user_id:`in.(${e.join(",")})`,is_enabled:"eq.true"};this.employeesService.getByParams(w.ADMIN,t).pipe(h(this.destroy$)).subscribe(i=>{let r=this.employees(),p=[...i];for(let y of r)p.some(E=>E.user_id===y.user_id)||p.push(y);this.employees.set(p)})}ngOnInit(){this.getHomeCurrency(),this.checkForBudgetEdit(),this.initializeEmployeeSearchHandler(),this.loadInitialEmployees(),this.summary.set(this.budgetsService.getDefaultSummary()),this.budgetForm.valueChanges.pipe(h(this.destroy$)).subscribe(e=>{this.updateSummary(e)})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}checkForBudgetEdit(){let e=this.routingService.getQueryParams().id;e&&(this.isBudgetEdit.set(!0),this.loadBudget(e))}loadBudget(e){let t={limit:1,offset:0,order:"name.asc",id:`eq.${e}`};this.budgetsService.getBudgetsByParams(t).pipe(h(this.destroy$)).subscribe({next:i=>{if(i.data&&i.data.length>0){let r=i.data[0];this.budget.set(r),this.populateFormWithBudget(r)}this.isLoading.set(!1)},error:i=>{this.toastMessageService.showErrorToast(this.translocoService.translate("addEditBudget.errorMessage")),this.isLoading.set(!1)}})}populateFormWithBudget(e){let i={budgetType:this.budgetsService.getBudgetType(e),categories:[],departments:[],projects:[],costCenters:[]},r={budgetFrequencyType:e.type,amountLimit:e.amount_limit,visibility:e.visibility||"ONLY_ADMINS",userIds:e.user_ids||[]},y={thresholdAmountLimitPercent:this.budgetsService.getBudgetThresholdPercentageFromAmount(e.alert_threshold,e.amount_limit),recipients:[]},E={budgetNature:i,budgetType:r,budgetEmailAlert:y,name:e.name};this.budgetForm.patchValue(E),e.user_ids&&e.user_ids.length>0&&this.populateEmployeesFromIds(e.user_ids),_e(100).pipe(h(this.destroy$)).subscribe(()=>{this.budgetNatureComponent&&this.budgetNatureComponent.populateEntityDataFromIds(e.category_ids||[],e.department_ids||[],e.project_ids||[],e.cost_center_ids||[]),this.budgetEmailAlertComponent&&e.observer_ids&&e.observer_ids.length>0&&this.budgetEmailAlertComponent.populateRecipientsFromIds(e.observer_ids),this.updateSummary(this.budgetForm.getRawValue())})}isFormValid(){return!(!this.budgetForm.valid||!(t=>t?t.disabled||t.valid:!0)(this.budgetNatureComponent?.budgetNatureForm)||this.budgetTypeComponent&&!this.budgetTypeComponent.budgetTypeForm.valid||this.budgetEmailAlertComponent&&!this.budgetEmailAlertComponent.budgetEmailAlertForm.valid)}onSave(){if(this.isFormValid()){let e=this.buildBudgetPayload();this.budgetSaving.set(!0),this.budgetsService.post(e).pipe(h(this.destroy$)).subscribe({next:t=>{let i=this.isBudgetEdit()?"updated":"added";this.toastMessageService.showSuccessToast(this.translocoService.translate("addEditBudget.successMessage",{action:i})),this.trackingService.eventTrack("Budget saved",{budgetId:t.id,isEdit:this.isBudgetEdit()}),this.budgetSaving.set(!1),this.hasAttemptedSave.set(!1),this.onClose()},error:t=>{this.toastMessageService.showErrorToast(this.translocoService.translate("addEditBudget.errorMessage")),this.budgetSaving.set(!1)}})}else this.hasAttemptedSave.set(!0),this.markAllFormControlsAsTouched(),this.updateNavigationSummaryErrors(),this.scrollToFirstError()}buildBudgetPayload(){let e=this.budgetForm.getRawValue(),t=this.isBudgetEdit()&&this.budget()?.id?this.budget().id:void 0;return this.budgetsService.buildBudgetPayload(e,t)}markAllFormControlsAsTouched(){this.budgetForm.markAllAsTouched(),this.budgetNatureComponent&&this.budgetNatureComponent.budgetNatureForm.markAllAsTouched(),this.budgetTypeComponent&&this.budgetTypeComponent.budgetTypeForm.markAllAsTouched(),this.budgetEmailAlertComponent&&this.budgetEmailAlertComponent.budgetEmailAlertForm.markAllAsTouched()}scrollToFirstError(){let e="";this.budgetNatureComponent&&this.budgetNatureComponent.budgetNatureForm.invalid?e="budget-nature":this.budgetTypeComponent&&this.budgetTypeComponent.budgetTypeForm.invali
3d?e="budget-type":this.budgetEmailAlertComponent&&this.budgetEmailAlertComponent.budgetEmailAlertForm.invalid?e="budget-email-alert":this.budgetForm.get("name")?.invalid&&(e="budget-name"),e&&_e(0).pipe(h(this.destroy$)).subscribe(()=>{let t=this.document.getElementById(e);t&&t.scrollIntoView({behavior:"smooth",block:"start"})})}isBudgetSaving(){return this.budgetSaving()}onClose(){this.routingService.navigate("settings/expenses/budgets",{},{reload:!0})}getHomeCurrency(){this.currencyService.getHomeCurrency().pipe(h(this.destroy$)).subscribe({next:e=>{this.homeCurrency.set(e)}})}updateSummary(e){let t=this.budgetTypeComponent?.budgetTypeForm?.getRawValue(),i=this.getSelectedEmployeesForSummary(t?.userIds),r=this.budgetsService.updateSummary(e,this.homeCurrency(),t,i);this.hasAttemptedSave()&&this.updateNavigationSummaryErrorStates(r),this.summary.set(r)}updateNavigationSummaryErrorStates(e){for(let t of e)switch(t.id){case"budget-nature":t.isError=this.budgetNatureComponent?.budgetNatureForm?.invalid&&this.budgetNatureComponent?.budgetNatureForm?.touched||!1;break;case"budget-type":t.isError=this.budgetTypeComponent?.budgetTypeForm?.invalid&&this.budgetTypeComponent?.budgetTypeForm?.touched||!1;break;case"budget-email-alert":t.isError=this.budgetEmailAlertComponent?.budgetEmailAlertForm?.invalid&&this.budgetEmailAlertComponent?.budgetEmailAlertForm?.touched||!1;break;case"budget-name":let i=this.budgetForm.get("name");t.isError=i?.invalid&&i?.touched||!1;break;default:t.isError=!1}}setSummarySectionAsActive(e){this.summary.set(this.summary().map(t=>F(x({},t),{isActive:t.id===e})))}scrollToChild(e){let t=this.document.getElementById(e);t&&t.scrollIntoView({behavior:"smooth",block:"start"}),this.setSummarySectionAsActive(e)}updateNavigationSummaryErrors(){let e=this.summary();this.updateNavigationSummaryErrorStates(e),this.summary.set([...e])}onEmployeeSearch(e){let t=this.utilityService.sanitizeSearchQuery(e);this.employeeSearchEvent$.next(t)}onClearEmployeeSearch(){this.employeeSearchEvent$.next("")}onEmployeeLazyLoad(e){this.employeesLoading.set(!0);let t=F(x({},this.getEmployeeQueryParams()),{limit:10,offset:e});this.employeesService.getByParams(w.ADMIN,t).pipe(h(this.destroy$)).subscribe(i=>{let r=[...this.employees(),...i].filter((p,y,E)=>y===E.findIndex(A=>A.user_id===p.user_id));this.employees.set(r),this.employeesLoading.set(!1)})}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=P({type:o,selectors:[["feature-add-edit-budget"]],viewQuery:function(t,i){if(t&1&&Me(Te,5)(we,5)(Ee,5),t&2){let r;ne(r=ae())&&(i.budgetNatureComponent=r.first),ne(r=ae())&&(i.budgetTypeComponent=r.first),ne(r=ae())&&(i.budgetEmailAlertComponent=r.first)}},decls:2,vars:2,consts:[[1,"tw:flex","tw:flex-col","tw:items-center","tw:justify-center","tw:h-full"],[1,"tw:flex","tw:border-b","tw:border-border-secondary","tw:mb-spacing-8"],[3,"closeClicked","title","description","url","showCloseIcon"],[1,"tw:flex","tw:justify-start","tw:flex-row","tw:w-full"],[1,"tw:w-2/3",3,"formGroup"],[1,"tw:flex","tw:flex-col","tw:py-spacing-16","tw:px-spacing-24","tw:align-left","tw:w-full"],["id","budget-nature",3,"mouseenter","header","showDarkIcon","showIconOnTitle","precedingIcon"],["formControlName","budgetNature",3,"isDisabled"],[1,"tw:flex","tw:flex-row","tw:justify-center","tw:items-center"],["icon","down-arrow",3,"classes"],["id","budget-type",3,"mouseenter","header","showDarkIcon","showIconOnTitle","precedingIcon"],["formControlName","budgetType",3,"employeeSearch","employeeClearSearch","employeeLazyLoad","isDisabled","homeCurrency","employees","employeesCount","employeesLoading"],["id","budget-email-alert",3,"mouseenter","header","showDarkIcon","showIconOnTitle","precedingIcon"],["formControlName","budgetEmailAlert"],["id","budget-name",3,"mouseenter","header","showDarkIcon","showIconOnTitle","precedingIcon"],[1,"tw:px-spacing-4","tw:pb-spacing-12"],[3,"label","isMandatory"],["pInputText","","type","text","required","",1,"tw:w-full",3,"formControlName","placeholder"],[3,"message"],[1,"tw:mt-spacing-16"],[3,"click","buttonType","label","isLoading","loadingText"],[1,"tw:sticky","tw:top-spacing-16","tw:right-0","tw:mt-sp
3acing-16","tw:z-50","tw:h-full","tw:max-w-[32%]","tw:min-w-[30%]"],[3,"scrollTo","summary"],[3,"styleClass"]],template:function(t,i){t&1&&(C(0,It,37,62),C(1,Rt,4,4,"div",0)),t&2&&(_(i.isLoading()?-1:0),n(),_(i.isLoading()?1:-1))},dependencies:[tt,z,k,Le,O,q,Ve,$,j,G,Q,Te,we,Ze,qe,Ee,J,Y,ye,Ue,$e,it,ke,K],encapsulation:2})}return o})();export{po as FeatureAddEditBudgetComponent};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.