{"version":3,"file":"accommodation.Dmft7gna.js","sources":["../../../../../../../node_modules/@babylon/ui-kit-forms/helpers/accommodation.js"],"sourcesContent":["import { PersonRoomType } from '../components/inputs/accommodation/components/panel-accommodation/types.js';\n\nconst transformAccommodationValueToText = (value, literals)=>{\n    if (!value || !literals) return '';\n    const { seniorAmountInfo = '', seniorsAmountInfo = '', adultAmountInfo = '', adultsAmountInfo = '', childAmountInfo = '', childrenAmountInfo = '', roomInfo = '', roomsInfo = '', passengerAmountInfo = '', passengersAmountInfo = '' } = literals || {};\n    let totalSeniors = 0;\n    let totalAdults = 0;\n    let totalChildren = 0;\n    let totalRooms = value.rooms?.length ?? 0;\n    for (const room of value.rooms ?? []){\n        totalSeniors += room.seniors ?? 0;\n        totalAdults += room.adults ?? 0;\n        totalChildren += room.children ?? 0;\n    }\n    const roomsTemplate = totalRooms === 1 ? roomInfo : roomsInfo;\n    const seniorsTemplate = totalSeniors === 1 ? seniorAmountInfo : seniorsAmountInfo;\n    const adultsTemplate = totalAdults === 1 ? adultAmountInfo : adultsAmountInfo;\n    const childrenTemplate = totalChildren === 1 ? childAmountInfo : childrenAmountInfo;\n    const passengersTemplate = totalAdults + totalChildren === 1 ? passengerAmountInfo : passengersAmountInfo;\n    const seniorsStringPartial = totalAdults !== 0 ? seniorsTemplate.toString().concat(',') : seniorsTemplate;\n    const seniorsString = seniorsStringPartial.replace('#number#', totalSeniors.toString());\n    const adultsString = adultsTemplate.replace('#number#', totalAdults.toString());\n    const childrenString = childrenTemplate.replace('#number#', totalChildren.toString());\n    const passengersString = passengersTemplate.replace('#number#', (totalAdults + totalChildren).toString());\n    const roomsString = roomsTemplate.replace('#seniors#', totalSeniors > 0 ? seniorsString : '').replace('#adults#', totalAdults > 0 ? adultsString : '').replace('#children#', totalChildren > 0 ? childrenString : '').replace('#number#', totalRooms.toString()).replace('#passengers#', passengersString).replace(/ +(?= )/g, '');\n    return roomsString;\n};\nconst accommodationToRooms = (rooms = [])=>rooms.map((room)=>{\n        const people = [];\n        if (typeof room.seniors !== 'undefined') people.push({\n            value: room.seniors,\n            type: PersonRoomType.Senior\n        });\n        if (typeof room.adults !== 'undefined') people.push({\n            value: room.adults,\n            type: PersonRoomType.Adult\n        });\n        if (typeof room.children !== 'undefined') people.push({\n            value: room.children,\n            selectedOptions: room.childrenAges ?? [],\n            type: PersonRoomType.Child\n        });\n        return {\n            people\n        };\n    });\nconst convertNumberToSelectOption = (number, defaultValue)=>({\n        label: String(number),\n        value: String(number),\n        selected: number === defaultValue\n    });\nconst initialOptions = (range, defaultValue = 0)=>Array.from({\n        length: range + 1\n    }, (_, i)=>convertNumberToSelectOption(i, defaultValue));\nconst roomsToAccommodation = (rooms)=>rooms.map((room)=>{\n        const seniors = room.people.find((person)=>person.type === PersonRoomType.Senior);\n        const adults = room.people.find((person)=>person.type === PersonRoomType.Adult);\n        const children = room.people.find((person)=>person.type === PersonRoomType.Child);\n        const finalRoom = {\n            adults: adults?.value ?? 0,\n            adultsAges: adults?.selectedOptions?.map((x)=>Number(x)),\n            children: children?.value ?? 0,\n            childrenAges: children?.selectedOptions?.map((x)=>Number(x))\n        };\n        if (seniors) finalRoom.seniors = seniors.value ?? 0;\n        return finalRoom;\n    });\nconst subtractToZero = (value, subtract)=>{\n    if (value > 0 && subtract > 0) {\n        return subtractToZero(value - 1, subtract - 1);\n    }\n    return {\n        value,\n        subtract: subtract\n    };\n};\nconst createAccommodationRoom = (maxPeople, totalPeople, defaultAccommodationRoom)=>{\n    const totalPeopleNewRoom = (defaultAccommodationRoom.adults ?? 0) + (defaultAccommodationRoom.children ?? 0);\n    const accommodation = {\n        seniors: 0,\n        adults: 0,\n        children: 0\n    };\n    let peopleSubtract = totalPeople + totalPeopleNewRoom - maxPeople;\n    const accommodationRoom = Object.entries(defaultAccommodationRoom).reverse();\n    accommodationRoom.forEach(([key, itemValue])=>{\n        if (Number.isInteger(itemValue) && key in accommodation) {\n            const { value, subtract } = subtractToZero(itemValue, peopleSubtract);\n            accommodation[key] = value;\n            peopleSubtract = subtract;\n        }\n    });\n    return accommodation;\n};\n// eslint-disable-next-line sonarjs/cognitive-complexity\nconst getValidAccommodation = (accommodation)=>{\n    if (accommodation?.rooms?.length) {\n        if (accommodation.rooms.some((room)=>'adults' in room) && !accommodation.adults) {\n            accommodation.adults = {\n                max: 9,\n                min: 1,\n                value: 2\n            };\n        }\n        if (accommodation.rooms.some((room)=>'children' in room) && !accommodation.children) {\n            accommodation.children = {\n                max: 9,\n                min: 0,\n                value: 0\n            };\n        }\n        if (accommodation.rooms.some((room)=>'seniors' in room) && !accommodation.seniors) {\n            accommodation.seniors = {\n                max: 9,\n                min: 0,\n                value: 0\n            };\n            if (accommodation.adults) accommodation.adults.min = 0;\n        }\n        return accommodation;\n    }\n    if (accommodation?.adults && accommodation?.children) {\n        const { seniors, adults, children } = accommodation;\n        let childrenAges = [];\n        if (children.value && children.defaultAge && children.value > 0) {\n            for(let i = 0; i < children.value; i++){\n                childrenAges.push(children.defaultAge);\n            }\n        }\n        return {\n            ...accommodation,\n            rooms: [\n                {\n                    seniors: seniors?.value ?? 0,\n                    adults: adults.value ?? 1,\n                    children: children.value ?? 0,\n                    childrenAges\n                }\n            ]\n        };\n    }\n    return {\n        adults: {\n            max: 9,\n            min: 1,\n            value: 2\n        },\n        children: {\n            max: 9,\n            min: 0,\n            value: 0\n        },\n        rooms: [\n            {\n                seniors: 0,\n                adults: 2,\n                children: 0,\n                childrenAges: []\n            }\n        ]\n    };\n};\nconst getValidFormAccommodationProps = (accommodationProps)=>{\n    const { literals } = accommodationProps ?? {};\n    const { accommodationTitle = '', accommodationLabel = '', childLabel = '' } = literals ?? {};\n    const finalProps = {\n        name: 'accommodation',\n        ...accommodationProps\n    };\n    if (accommodationProps?.residents) {\n        finalProps.resident = {\n            name: 'resident',\n            value: accommodationProps?.residents?.items?.[0]\n        };\n    }\n    if (accommodationProps?.discounts) {\n        finalProps.discount = {\n            name: 'discount',\n            value: accommodationProps.discounts.items?.[0]\n        };\n    }\n    return {\n        ...finalProps,\n        literals: {\n            accommodationTitle: accommodationTitle || accommodationLabel,\n            agePersonLabel: `${childLabel} #number#`,\n            ...literals\n        }\n    };\n};\n\nexport { accommodationToRooms, convertNumberToSelectOption, createAccommodationRoom, getValidAccommodation, getValidFormAccommodationProps, initialOptions, roomsToAccommodation, transformAccommodationValueToText };\n//# sourceMappingURL=accommodation.js.map\n"],"names":["transformAccommodationValueToText","value","literals","seniorAmountInfo","seniorsAmountInfo","adultAmountInfo","adultsAmountInfo","childAmountInfo","childrenAmountInfo","roomInfo","roomsInfo","passengerAmountInfo","passengersAmountInfo","totalSeniors","totalAdults","totalChildren","totalRooms","_a","room","roomsTemplate","seniorsTemplate","adultsTemplate","childrenTemplate","passengersTemplate","seniorsString","adultsString","childrenString","passengersString","accommodationToRooms","rooms","people","PersonRoomType","convertNumberToSelectOption","number","defaultValue","initialOptions","range","_","i","roomsToAccommodation","seniors","person","adults","children","finalRoom","x","_b","subtractToZero","subtract","createAccommodationRoom","maxPeople","totalPeople","defaultAccommodationRoom","totalPeopleNewRoom","accommodation","peopleSubtract","key","itemValue","getValidAccommodation","childrenAges","getValidFormAccommodationProps","accommodationProps","accommodationTitle","accommodationLabel","childLabel","finalProps","_c"],"mappings":"yCAEK,MAACA,EAAoC,CAACC,EAAOC,IAAW,OACzD,GAAI,CAACD,GAAS,CAACC,EAAU,MAAO,GAChC,KAAM,CAAE,iBAAAC,EAAmB,GAAI,kBAAAC,EAAoB,GAAI,gBAAAC,EAAkB,GAAI,iBAAAC,EAAmB,GAAI,gBAAAC,EAAkB,GAAI,mBAAAC,EAAqB,GAAI,SAAAC,EAAW,GAAI,UAAAC,EAAY,GAAI,oBAAAC,EAAsB,GAAI,qBAAAC,EAAuB,EAAI,EAAGV,GAAY,CAAE,EACxP,IAAIW,EAAe,EACfC,EAAc,EACdC,EAAgB,EAChBC,IAAaC,EAAAhB,EAAM,QAAN,YAAAgB,EAAa,SAAU,EACxC,UAAWC,KAAQjB,EAAM,OAAS,CAAA,EAC9BY,GAAgBK,EAAK,SAAW,EAChCJ,GAAeI,EAAK,QAAU,EAC9BH,GAAiBG,EAAK,UAAY,EAEtC,MAAMC,EAAgBH,IAAe,EAAIP,EAAWC,EAC9CU,EAAkBP,IAAiB,EAAIV,EAAmBC,EAC1DiB,EAAiBP,IAAgB,EAAIT,EAAkBC,EACvDgB,EAAmBP,IAAkB,EAAIR,EAAkBC,EAC3De,EAAqBT,EAAcC,IAAkB,EAAIJ,EAAsBC,EAE/EY,GADuBV,IAAgB,EAAIM,EAAgB,WAAW,OAAO,GAAG,EAAIA,GAC/C,QAAQ,WAAYP,EAAa,UAAU,EAChFY,EAAeJ,EAAe,QAAQ,WAAYP,EAAY,UAAU,EACxEY,EAAiBJ,EAAiB,QAAQ,WAAYP,EAAc,UAAU,EAC9EY,EAAmBJ,EAAmB,QAAQ,YAAaT,EAAcC,GAAe,UAAU,EAExG,OADoBI,EAAc,QAAQ,YAAaN,EAAe,EAAIW,EAAgB,EAAE,EAAE,QAAQ,WAAYV,EAAc,EAAIW,EAAe,EAAE,EAAE,QAAQ,aAAcV,EAAgB,EAAIW,EAAiB,EAAE,EAAE,QAAQ,WAAYV,EAAW,SAAQ,CAAE,EAAE,QAAQ,eAAgBW,CAAgB,EAAE,QAAQ,WAAY,EAAE,CAErU,EACMC,EAAuB,CAACC,EAAQ,CAAA,IAAKA,EAAM,IAAKX,GAAO,CACrD,MAAMY,EAAS,CAAE,EACjB,OAAI,OAAOZ,EAAK,QAAY,KAAaY,EAAO,KAAK,CACjD,MAAOZ,EAAK,QACZ,KAAMa,EAAe,MACjC,CAAS,EACG,OAAOb,EAAK,OAAW,KAAaY,EAAO,KAAK,CAChD,MAAOZ,EAAK,OACZ,KAAMa,EAAe,KACjC,CAAS,EACG,OAAOb,EAAK,SAAa,KAAaY,EAAO,KAAK,CAClD,MAAOZ,EAAK,SACZ,gBAAiBA,EAAK,cAAgB,CAAE,EACxC,KAAMa,EAAe,KACjC,CAAS,EACM,CACH,OAAAD,CACH,CACJ,CAAA,EACCE,EAA8B,CAACC,EAAQC,KAAgB,CACrD,MAAO,OAAOD,CAAM,EACpB,MAAO,OAAOA,CAAM,EACpB,SAAUA,IAAWC,CAC7B,GACMC,EAAiB,CAACC,EAAOF,EAAe,IAAI,MAAM,KAAK,CACrD,OAAQE,EAAQ,CACnB,EAAE,CAACC,EAAGC,IAAIN,EAA4BM,EAAGJ,CAAY,CAAC,EACrDK,EAAwBV,GAAQA,EAAM,IAAKX,GAAO,SAChD,MAAMsB,EAAUtB,EAAK,OAAO,KAAMuB,GAASA,EAAO,OAASV,EAAe,MAAM,EAC1EW,EAASxB,EAAK,OAAO,KAAMuB,GAASA,EAAO,OAASV,EAAe,KAAK,EACxEY,EAAWzB,EAAK,OAAO,KAAMuB,GAASA,EAAO,OAASV,EAAe,KAAK,EAC1Ea,EAAY,CACd,QAAQF,GAAA,YAAAA,EAAQ,QAAS,EACzB,YAAYzB,EAAAyB,GAAA,YAAAA,EAAQ,kBAAR,YAAAzB,EAAyB,IAAK4B,GAAI,OAAOA,CAAC,GACtD,UAAUF,GAAA,YAAAA,EAAU,QAAS,EAC7B,cAAcG,EAAAH,GAAA,YAAAA,EAAU,kBAAV,YAAAG,EAA2B,IAAKD,GAAI,OAAOA,CAAC,EAC7D,EACD,OAAIL,IAASI,EAAU,QAAUJ,EAAQ,OAAS,GAC3CI,CACV,CAAA,EACCG,EAAiB,CAAC9C,EAAO+C,IACvB/C,EAAQ,GAAK+C,EAAW,EACjBD,EAAe9C,EAAQ,EAAG+C,EAAW,CAAC,EAE1C,CACH,MAAA/C,EACA,SAAU+C,CACb,EAECC,EAA0B,CAACC,EAAWC,EAAaC,IAA2B,CAChF,MAAMC,EAAsBD,EAAyB,OAAgBA,EAAyB,SACxFE,EAAgB,CAClB,QAAS,EACT,OAAQ,EACR,SAAU,CACb,EACD,IAAIC,EAAiBJ,EAAcE,EAAqBH,EAExD,OAD0B,OAAO,QAAQE,CAAwB,EAAE,QAAS,EAC1D,QAAQ,CAAC,CAACI,EAAKC,CAAS,IAAI,CAC1C,GAAI,OAAO,UAAUA,CAAS,GAAKD,KAAOF,EAAe,CACrD,KAAM,CAAE,MAAArD,EAAO,SAAA+C,CAAQ,EAAKD,EAAeU,EAAWF,CAAc,EACpED,EAAcE,CAAG,EAAIvD,EACrBsD,EAAiBP,CAC7B,CACA,CAAK,EACMM,CACX,EAEMI,EAAyBJ,GAAgB,OAC3C,IAAIrC,EAAAqC,GAAA,YAAAA,EAAe,QAAf,MAAArC,EAAsB,OACtB,OAAIqC,EAAc,MAAM,KAAMpC,GAAO,WAAYA,CAAI,GAAK,CAACoC,EAAc,SACrEA,EAAc,OAAS,CACnB,IAAK,EACL,IAAK,EACL,MAAO,CACV,GAEDA,EAAc,MAAM,KAAMpC,GAAO,aAAcA,CAAI,GAAK,CAACoC,EAAc,WACvEA,EAAc,SAAW,CACrB,IAAK,EACL,IAAK,EACL,MAAO,CACV,GAEDA,EAAc,MAAM,KAAMpC,GAAO,YAAaA,CAAI,GAAK,CAACoC,EAAc,UACtEA,EAAc,QAAU,CACpB,IAAK,EACL,IAAK,EACL,MAAO,CACV,EACGA,EAAc,SAAQA,EAAc,OAAO,IAAM,IAElDA,EAEX,GAAIA,GAAA,MAAAA,EAAe,SAAUA,GAAA,MAAAA,EAAe,UAAU,CAClD,KAAM,CAAE,QAAAd,EAAS,OAAAE,EAAQ,SAAAC,CAAU,EAAGW,EACtC,IAAIK,EAAe,CAAE,EACrB,GAAIhB,EAAS,OAASA,EAAS,YAAcA,EAAS,MAAQ,EAC1D,QAAQL,EAAI,EAAGA,EAAIK,EAAS,MAAOL,IAC/BqB,EAAa,KAAKhB,EAAS,UAAU,EAG7C,MAAO,CACH,GAAGW,EACH,MAAO,CACH,CACI,SAASd,GAAA,YAAAA,EAAS,QAAS,EAC3B,OAAQE,EAAO,OAAS,EACxB,SAAUC,EAAS,OAAS,EAC5B,aAAAgB,CACpB,CACA,CACS,CACT,CACI,MAAO,CACH,OAAQ,CACJ,IAAK,EACL,IAAK,EACL,MAAO,CACV,EACD,SAAU,CACN,IAAK,EACL,IAAK,EACL,MAAO,CACV,EACD,MAAO,CACH,CACI,QAAS,EACT,OAAQ,EACR,SAAU,EACV,aAAc,CAAA,CAC9B,CACA,CACK,CACL,EACMC,EAAkCC,GAAqB,WACzD,KAAM,CAAE,SAAA3D,GAAa2D,GAAsB,CAAE,EACvC,CAAE,mBAAAC,EAAqB,GAAI,mBAAAC,EAAqB,GAAI,WAAAC,EAAa,IAAO9D,GAAY,CAAE,EACtF+D,EAAa,CACf,KAAM,gBACN,GAAGJ,CACN,EACD,OAAIA,GAAA,MAAAA,EAAoB,YACpBI,EAAW,SAAW,CAClB,KAAM,WACN,OAAOnB,GAAA7B,EAAA4C,GAAA,YAAAA,EAAoB,YAApB,YAAA5C,EAA+B,QAA/B,YAAA6B,EAAuC,EACjD,GAEDe,GAAA,MAAAA,EAAoB,YACpBI,EAAW,SAAW,CAClB,KAAM,WACN,OAAOC,EAAAL,EAAmB,UAAU,QAA7B,YAAAK,EAAqC,EAC/C,GAEE,CACH,GAAGD,EACH,SAAU,CACN,mBAAoBH,GAAsBC,EAC1C,eAAgB,GAAGC,CAAU,YAC7B,GAAG9D,CACf,CACK,CACL","x_google_ignoreList":[0]}