{"version":3,"file":"CostCheckbox.VmAXswLU.mjs","names":["React.useRef","React.useMemo","React.useState","subscribeToPrice"],"sources":["https:/framerusercontent.com/modules/19K7D3RLjHB8Si1Pd5W4/PY5nOATkLaJOUbYVeE5V/CostCheckbox.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{calculatorStore,setCartItem,removeCartItem,subscribeToCalc,getMultiplier}from\"https://framerusercontent.com/modules/uQNF3MjqAXSmdDpsul7P/j9h69GtyCt0zxJCLkqt1/CalculatorStore.js\";import{priceData,subscribe as subscribeToPrice}from\"https://framerusercontent.com/modules/4YOZYtUnHpMfvTWCPE8e/P5ATA0Wth6xQbXtA6q08/PriceStore.js\";import{aggregationStore,subscribeToAggregation,registerHouseItem}from\"https://framerusercontent.com/modules/cH7dneSCDWa1JtDbf5Hx/ss5GVItcLp91vvF0sdDh/AggregationStore.js\";export default function CostCheckbox(props){const{itemId,groupName,pricingMode,itemType,priceCurve,defaultChecked,hidePrice,accentColor,houseSlug,calculationMode,cmsQuantity,unitLabel,isIncluded}=props;// REF PRE GAP FIX\nconst containerRef=React.useRef(null);const cmsItem=priceData.items[String(itemId)];const isQuantityMode=calculationMode===\"quantity\";const unitToPass=isQuantityMode&&unitLabel?unitLabel:\"\";const isFixed=React.useMemo(()=>{if(pricingMode===\"fixed\")return true;if(pricingMode===\"dynamic\")return false;if(cmsItem)return!cmsItem.dynamicPrice;return false;},[pricingMode,cmsItem]);const smartCurve=React.useMemo(()=>{if(isFixed)return\"discount\";const val=(cmsItem?.discount||\"\").trim();if(val===\"Lite\")return\"discountLite\";if(val===\"Extra Charge\")return\"surcharge\";if(val===\"Standard\")return\"discount\";return priceCurve;},[cmsItem,isFixed,priceCurve]);const getItemTitle=id=>cmsItem?cmsItem.title:id;const[_,setTick]=React.useState(0);const forceUpdate=()=>setTick(t=>t+1);// --- 1. GAP FIX (DOM MANIPULÁCIA) ---\nReact.useLayoutEffect(()=>{if(!isIncluded&&containerRef.current){const parent=containerRef.current.parentElement;if(parent){parent.style.display=\"none\";}}},[isIncluded]);// --- 2. LOGIKA AKTIVITY (CLEANUP) ---\nReact.useEffect(()=>{if(!itemId)return;if(!isIncluded){if(calculatorStore.cart[itemId])removeCartItem(itemId);if(houseSlug)registerHouseItem(houseSlug,String(itemId),false,-1,true);}},[itemId,isIncluded,houseSlug]);// --- 3. PÔVODNÉ EFEKTY ---\nReact.useEffect(()=>{if(!isIncluded)return;const handleUpdate=()=>{if(itemType===\"mandatory\"&&itemId){if(!calculatorStore.cart[itemId]){setCartItem(itemId,itemId,isFixed,smartCurve,groupName,getItemTitle(itemId),isQuantityMode?cmsQuantity||0:undefined,unitToPass);}}forceUpdate();};const unsubPrice=subscribeToPrice(handleUpdate);const unsubCalc=subscribeToCalc(handleUpdate);const unsubAggr=subscribeToAggregation(handleUpdate);handleUpdate();return()=>{unsubPrice();unsubCalc();unsubAggr();};},[itemType,itemId,isFixed,smartCurve,groupName,cmsQuantity,isQuantityMode,unitToPass,isIncluded]);React.useEffect(()=>{if(!isIncluded)return;if(houseSlug&&itemId){const qtyToSend=isQuantityMode?cmsQuantity||0:-1;registerHouseItem(houseSlug,String(itemId),false,qtyToSend,true);}},[houseSlug,itemId,cmsQuantity,isQuantityMode,isIncluded]);const isInCMS=React.useMemo(()=>{if(houseSlug&&itemId&&aggregationStore.houses[houseSlug]){return aggregationStore.houses[houseSlug].includes(String(itemId));}return false;},[houseSlug,itemId,aggregationStore.houses,_]);React.useEffect(()=>{if(!isIncluded)return;const isCanvas=RenderTarget.current()===RenderTarget.canvas;const category=groupName||\"Doplnky\";const title=getItemTitle(itemId);const shouldBeChecked=defaultChecked||isInCMS;const quantityToPass=isQuantityMode?cmsQuantity||0:undefined;if(itemType===\"mandatory\"&&itemId){setCartItem(itemId,itemId,isFixed,smartCurve,category,title,quantityToPass,unitToPass);}else if(itemType===\"optional\"&&itemId){if(shouldBeChecked){if(isCanvas||!calculatorStore.cart[itemId]){setCartItem(itemId,itemId,isFixed,smartCurve,category,title,quantityToPass,unitToPass);}}else{if(isCanvas)removeCartItem(itemId);}}},[itemType,itemId,isFixed,smartCurve,defaultChecked,isInCMS,groupName,priceData.items,cmsQuantity,isQuantityMode,unitToPass,isIncluded]);const currentArea=calculatorStore.area;const isChecked=!!calculatorStore.cart[itemId];const handleChange=e=>{if(!isIncluded)return;const quantityToPass=isQuantityMode?cmsQuantity||0:undefined;if(itemType===\"optional\"){if(e.target.checked){setCartItem(itemId,itemId,isFixed,smartCurve,groupName,getItemTitle(itemId),quantityToPass,unitToPass);}else{removeCartItem(itemId);}}};// --- 4. RENDER PRE NEAKTÍVNY STAV ---\nif(!isIncluded){return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{display:\"none\"}});}if(!cmsItem)return /*#__PURE__*/_jsxs(\"div\",{style:{opacity:.5,fontSize:12,padding:\"5px 0\"},children:[\"Nač\\xedtavam... (\",itemId,\")\"]});let finalPrice=0;const qty=isQuantityMode?cmsQuantity||0:1;if(isFixed){finalPrice=cmsItem.price*qty;}else{const multiplier=getMultiplier(currentArea,smartCurve);if(isQuantityMode){finalPrice=cmsItem.price*multiplier*qty;}else{finalPrice=cmsItem.price*currentArea*multiplier;}}const isMandatory=itemType===\"mandatory\";const cursorStyle=isMandatory?\"default\":\"pointer\";let titleSuffix=\"\";if(isQuantityMode){const suffix=unitLabel?` ${unitLabel}`:\"\";const val=typeof cmsQuantity===\"number\"?cmsQuantity:0;titleSuffix=` (${val.toLocaleString(\"sk-SK\")}${suffix})`;}const displayTitle=`${cmsItem.title}${titleSuffix}`;const cssStyles=`\n        .custom-checkbox {\n            appearance: none;\n            -webkit-appearance: none;\n            display: inline-block;\n            box-sizing: border-box;\n            width: 20px;\n            height: 20px;\n            min-width: 20px;\n            min-height: 20px;\n            max-width: 20px;\n            max-height: 20px;\n            margin: 0;\n            padding: 0;\n            line-height: 0;\n            margin-right: 12px;\n            flex-shrink: 0;\n            border-radius: 4px; \n            background-color: #fff;\n            border: 2px solid rgba(0, 0, 0, 0.15); \n            cursor: pointer;\n            transition: none;\n        }\n        .custom-checkbox:hover:not(:checked):not(:disabled) {\n            border-color: var(--active-color); \n        }\n        .custom-checkbox:checked {\n            background-color: var(--active-color);\n            border-color: var(--active-color);\n            background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E\");\n            background-size: 80%;\n            background-position: center center;\n            background-repeat: no-repeat;\n        }\n        .custom-checkbox:disabled {\n            background-color: rgba(0, 0, 0, 0.3); \n            border-color: rgba(0, 0, 0, 0.05);     \n            cursor: default;\n        }\n    `;const containerStyles={...rowStyle,cursor:cursorStyle,\"--active-color\":accentColor};return /*#__PURE__*/_jsxs(\"label\",{style:containerStyles,children:[/*#__PURE__*/_jsx(\"style\",{children:cssStyles}),/*#__PURE__*/_jsx(\"input\",{type:\"checkbox\",className:\"custom-checkbox\",checked:isChecked,onChange:handleChange,disabled:isMandatory}),/*#__PURE__*/_jsxs(\"div\",{style:{flex:1,display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\",lineHeight:\"1.2\",pointerEvents:\"none\"},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontWeight:400},children:displayTitle}),!hidePrice&&/*#__PURE__*/_jsxs(\"span\",{style:{fontWeight:600,color:\"#333\",whiteSpace:\"nowrap\"},children:[finalPrice.toLocaleString(\"sk-SK\",{maximumFractionDigits:0}),\" \",\"€\"]})]})]});}addPropertyControls(CostCheckbox,{houseSlug:{type:ControlType.String,title:\"Slug Domu (CMS)\",description:\"Prepojte so Slugom aktu\\xe1lneho domu.\"},isIncluded:{type:ControlType.Boolean,title:\"Je akt\\xedvny?\",defaultValue:true,description:\"Prepojte na t\\xfa ist\\xfa podmienku (variable), ktorou skr\\xfdvate tento komponent.\"},itemId:{type:ControlType.String,title:\"Price_ID\",placeholder:\"napr. strecha-zaklad\",description:\"Mus\\xed sa presne zhodovať s Price_ID v CMS Cenn\\xedku.\"},groupName:{type:ControlType.String,title:\"N\\xe1zov skupiny\",defaultValue:\"Doplnky\"},calculationMode:{type:ControlType.Enum,title:\"Režim v\\xfdpočtu\",options:[\"area\",\"quantity\"],optionTitles:[\"Plocha domu\",\"CMS Počet\"],defaultValue:\"area\",displaySegmentedControl:true},cmsQuantity:{type:ControlType.Number,title:\"↳ CMS Počet\",defaultValue:0,description:\"Prepojte s č\\xedseln\\xfdm poľom v CMS.\",hidden:props=>props.calculationMode===\"area\"},unitLabel:{type:ControlType.String,title:\"↳ Jednotka\",placeholder:\"napr. m\\xb2, ks\",defaultValue:\"\",hidden:props=>props.calculationMode===\"area\"},itemType:{type:ControlType.Enum,title:\"Typ položky\",options:[\"optional\",\"mandatory\"],optionTitles:[\"Voliteľn\\xe1\",\"Povinn\\xe1\"],defaultValue:\"optional\",displaySegmentedControl:true},defaultChecked:{type:ControlType.Boolean,title:\"Predvolene zapnut\\xe9\",defaultValue:false,hidden:props=>props.itemType===\"mandatory\"},pricingMode:{type:ControlType.Enum,title:\"Režim ceny\",options:[\"cms\",\"fixed\",\"dynamic\"],optionTitles:[\"Podľa CMS\",\"Fixn\\xe1 cena\",\"Dynamick\\xe1 cena\"],defaultValue:\"cms\",description:\"Určuje, či sa cena r\\xe1ta fixne alebo cez m\\xb2.\"},priceCurve:{type:ControlType.Enum,title:\"Krivka (Fallback)\",options:[\"discount\",\"discountLite\",\"surcharge\"],optionTitles:[\"Zľava (Štandard)\",\"Zľava menšia\",\"Pr\\xedplatok\"],defaultValue:\"discount\",description:\"Fallback krivka, ak je položka dynamick\\xe1.\",hidden:props=>props.pricingMode===\"fixed\"},accentColor:{type:ControlType.Color,title:\"Farba (Active)\",defaultValue:\"#007F80\"},hidePrice:{type:ControlType.Boolean,title:\"Iba n\\xe1zov\",defaultValue:false}});const rowStyle={display:\"flex\",width:\"100%\",minWidth:\"100%\",height:\"auto\",boxSizing:\"border-box\",alignItems:\"center\",justifyContent:\"flex-start\",position:\"relative\",isolation:\"isolate\",zIndex:1,padding:\"0px 0\",fontFamily:\"Archivo, sans-serif\",fontSize:14,color:\"#333\",borderBottom:\"0px solid rgba(0,0,0,0.05)\"};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CostCheckbox\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}