@odynn/awayz-hotels 0.6.27 → 0.8.0
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.
- package/dist/assets/_styles.css +1 -1
- package/dist/components/HotelResult/HotelResult.js +86 -73
- package/dist/hooks/useHotelDetails/useHotelDetails.js +61 -60
- package/dist/lib/utilities/hotelUtils/hotelUtils.d.ts +4 -0
- package/dist/utilities/hotelUtils/hotelUtils.js +47 -46
- package/package.json +1 -1
package/dist/assets/_styles.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@import"https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap";*{font-family:Inter,sans-serif!important;margin:0;padding:0;box-sizing:border-box}:root{font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}p,input{line-height:normal;margin:0;color:var(--text, #252e34);background-color:transparent}a{text-decoration:none}hr{border:none;border-top:1px solid var(--border, #e7eef3);width:100%}@keyframes slide-in-right{0%{opacity:0;transform:translate(0)}50%{transform:translate(-100vw);opacity:0}50.001%{opacity:0;transform:translate(105vw)}50.002%{opacity:1;transform:translate(100vw)}to{transform:translate(0)}}@keyframes slide-in-left{0%{opacity:0;transform:translate(0)}50%{transform:translate(100vw);opacity:0}50.001%{opacity:0;transform:translate(-100vw)}50.002%{opacity:1;transform:translate(-100vw)}to{transform:translate(0)}}@keyframes slide-out-right{0%{transform:translate(0)}to{transform:translate(100vw);opacity:1}}@keyframes slide-out-left{0%{transform:translate(0)}to{transform:translate(-100vw);opacity:1}}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:translate(0);opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes fade-in{0%{opacity:0;scale:.9}to{opacity:1;scale:1}}@keyframes scale-out{0%{transform:scale(1)}to{transform:scale(0)}}@keyframes scale-in{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes no-no{0%{transform:translate(0)}20%{transform:translate(-20px)}40%{transform:translate(15px)}60%{transform:translate(-10px)}80%{transform:translate(5px)}to{transform:translate(0)}}@keyframes loading-track{0%{transform:translate(-100%);opacity:0}25%{opacity:1}75%{opacity:1}to{opacity:0;transform:translate(100%)}}@keyframes loading-in{0%{height:0}to{height:5px}}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shine{0%{background-position:right}}@keyframes text-pulse{0%{opacity:.75}35%{opacity:1}65%{opacity:1}to{opacity:.75}}@keyframes pulse{0%{opacity:.85}35%{opacity:1}65%{opacity:1}to{opacity:.85}}@keyframes shimmer{0%{opacity:.5}50%{opacity:1}to{opacity:.5}}@keyframes fade-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-down{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-right{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes spring-in{0%{opacity:0;transform:scale(.8)}70%{opacity:1;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes ripple{0%{transform:scale(1)}to{transform:scale(1.1,1.4)}}@keyframes tip-fade-right{0%{opacity:0;transform:translate(-20px,-50%)}to{opacity:1;transform:translateY(-50%)}}@keyframes tip-fade-left{0%{opacity:0;transform:translate(20px,-50%)}to{opacity:1;transform:translateY(-50%)}}@keyframes tip-fade-down{0%{opacity:0;transform:translate(-50%,-20px)}to{opacity:1;transform:translate(-50%)}}@keyframes tip-fade-up{0%{opacity:0;transform:translate(-50%,5px)}to{opacity:1;transform:translate(-50%)}}@keyframes slide-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slide-out{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}@keyframes scale-fade-in{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes scroll-horizontally{0%{transform:translate(0)}to{transform:translate(-50%)}}.awayz-hotel-result{background-color:var(--foreground, #fff);border:1px solid var(--border, #e7eef3);border-radius:.5rem;display:flex;overflow:hidden;cursor:pointer;animation:spring-in .5s ease-in-out both}.awayz-hotel-result:nth-child(1){animation-delay:.1s}.awayz-hotel-result:nth-child(2){animation-delay:.2s}.awayz-hotel-result:nth-child(3){animation-delay:.3s}.awayz-hotel-result:nth-child(4){animation-delay:.4s}.awayz-hotel-result:nth-child(5){animation-delay:.5s}.awayz-hotel-result:nth-child(6){animation-delay:.6s}.awayz-hotel-result:nth-child(7){animation-delay:.7s}.awayz-hotel-result:nth-child(8){animation-delay:.8s}.awayz-hotel-result:nth-child(9){animation-delay:.9s}.awayz-hotel-result:nth-child(10){animation-delay:1s}.awayz-hotel-result.search-skeleton .content .hotel-data{display:flex;flex-direction:column;gap:.5rem}.awayz-hotel-result.search-skeleton .content .hotel-image{background-color:var(--border, #e7eef3);background-size:300%;background-position:100% 0;animation:shimmer 2s infinite;color:transparent}.awayz-hotel-result.search-skeleton .content .hotel-name{background-color:var(--border, #e7eef3);background-size:300%;background-position:100% 0;animation:shimmer 2s infinite;color:transparent;height:20px;width:75%;border-radius:4px}.awayz-hotel-result.search-skeleton .content .hotel-address{background-color:var(--border, #e7eef3);background-size:300%;background-position:100% 0;animation:shimmer 2s infinite;color:transparent;height:15px;width:95%;border-radius:4px}.awayz-hotel-result.search-skeleton .content .hotel-dates{background-color:var(--border, #e7eef3);background-size:300%;background-position:100% 0;animation:shimmer 2s infinite;color:transparent;height:15px;width:45%;border-radius:4px}.awayz-hotel-result.search-skeleton .content .payments>div{background-color:var(--border, #e7eef3);background-size:300%;background-position:100% 0;animation:shimmer 2s infinite;color:transparent;height:40px;width:100%;border-radius:4px;border-color:var(--border, #e7eef3)}.awayz-hotel-result.search-skeleton .content .payments>div:first-of-type{width:25%}.awayz-hotel-result.skeleton{animation:spring-in .5s ease-in-out both}.awayz-hotel-result.skeleton:nth-child(1){animation-delay:.1s}.awayz-hotel-result.skeleton:nth-child(2){animation-delay:.2s}.awayz-hotel-result.skeleton:nth-child(3){animation-delay:.3s}.awayz-hotel-result.skeleton:nth-child(4){animation-delay:.4s}.awayz-hotel-result.skeleton:nth-child(5){animation-delay:.5s}.awayz-hotel-result.skeleton .content .hotel-image{background-color:var(--text-light, rgba(37, 46, 52, .2509803922));background-color:var(--border, #e7eef3);background-size:300%;background-position:100% 0;animation:shimmer 2s infinite;color:transparent}.awayz-hotel-result.skeleton .content .info{display:flex;flex-direction:column;gap:10px}.awayz-hotel-result.skeleton .content .info .hotel-name{background-color:var(--border, #e7eef3);background-size:300%;background-position:100% 0;animation:shimmer 2s infinite;color:transparent;height:20px;width:75%;border-radius:4px}.awayz-hotel-result.skeleton .content .info .hotel-address{background-color:var(--border, #e7eef3);background-size:300%;background-position:100% 0;animation:shimmer 2s infinite;color:transparent;height:15px;width:95%;border-radius:4px}.awayz-hotel-result.skeleton .content .info .hotel-dates{background-color:var(--border, #e7eef3);background-size:300%;background-position:100% 0;animation:shimmer 2s infinite;color:transparent;height:15px;width:45%;border-radius:4px}.awayz-hotel-result.skeleton .content .payments>div{background-color:var(--border, #e7eef3);background-size:300%;background-position:100% 0;animation:shimmer 2s infinite;color:transparent;height:40px;width:100%;border-radius:4px;border-color:var(--border, #e7eef3)}.awayz-hotel-result.skeleton .content .payments>div:first-of-type{width:25%}.awayz-hotel-result .no-point-availability{display:flex;gap:8px;color:#ff7f2f;flex-direction:row;background-color:#ff7f2f20;border:1px solid #ff7f2f;padding:5px 8px;border-radius:4px;align-items:center;margin-top:5px}.awayz-hotel-result .no-point-availability p{font-size:.6rem;text-transform:uppercase;font-weight:500}.awayz-hotel-result .content{padding:1rem;flex:1;display:flex;flex-direction:column;gap:.5rem}.awayz-hotel-result .content .details{display:flex;gap:.5rem}.awayz-hotel-result .content .details .hotel-image{min-width:150px;width:150px;min-height:100px;background-position:center;background-size:cover;border-radius:.25rem;padding:.5rem;display:flex;flex-direction:row;align-items:flex-start;gap:.4rem}@media screen and (max-width: 1024px){.awayz-hotel-result .content .details{flex-direction:column}.awayz-hotel-result .content .details .hotel-image{width:100%;min-width:100%;min-height:150px}}.awayz-hotel-result .content .details .hotel-chain{background-color:var(--foreground, #fff);padding:.2rem .5em;display:flex;gap:.5rem;align-items:center;border-radius:.25rem;font-size:.8rem;max-width:fit-content}.awayz-hotel-result .content .details .hotel-live-tag{background-color:var(--foreground, #fff);color:var(--primary, #1495f2);padding:.2rem .5em;display:flex;gap:.5rem;align-items:center;border-radius:.25rem;font-size:.8rem;max-width:fit-content}.awayz-hotel-result .content .details .info{display:flex;flex-direction:column;width:100%}.awayz-hotel-result .content .details .info .hotel-data{flex:1}.awayz-hotel-result .content .details .info .hotel-data .hotel-name{font-weight:500}.awayz-hotel-result .content .details .info .hotel-data .hotel-address{font-size:.8rem;opacity:.6}.awayz-hotel-result .content .details .info .best-value{display:flex;flex-direction:column}.awayz-hotel-result .content .details .info .best-value p{margin:0}.awayz-hotel-result .content .details .info .best-value p:first-child{font-size:.6rem;opacity:.6;margin-top:2px}.awayz-hotel-result .content .details .info .best-value p span{font-size:.6rem;opacity:.6}.awayz-hotel-result .content .details .info .best-value p:last-child{font-size:1.4rem;font-weight:500}.awayz-hotel-result .content .payments{display:flex;align-items:center;gap:1rem}.awayz-hotel-result .content .payments .payment-details{background-color:var(--foreground, #fff);padding:.4rem .5rem;border-radius:.25rem;display:flex;flex-direction:column;border:1px solid var(--border, #e7eef3);flex:1;position:relative;gap:.1rem}.awayz-hotel-result .content .payments .payment-details .best-value{background-color:var(--primary, #1495f2);color:var(--foreground, #fff);padding:.2rem .5rem;border-radius:.25rem;text-align:center;font-size:.6rem;font-weight:500;width:fit-content;position:absolute;right:4px;top:4px}.awayz-hotel-result .content .payments .payment-details p{margin:0;font-weight:500}.awayz-hotel-result .content .payments .payment-details p:first-child{color:var(--primary, #1495f2);font-size:.7rem}.awayz-hotel-result .content .payments .payment-details p>span:not(.currency-conversion){opacity:.4;font-size:.8rem}.awayz-hotel-result button{margin:0;background-color:var(--primary, #1495f2);color:var(--foreground, #fff);border:none;overflow:hidden;width:0;padding:0;display:flex;align-items:center;justify-content:center;transition:all .2s ease-in-out}.awayz-hotel-result .hotel-information{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center;font-size:x-small;color:var(--primary, #1495f2);margin-bottom:5px}.awayz-hotel-result .hotel-information>div:last-child{margin-left:auto}.awayz-hotel-result .hotel-information>div{display:flex;align-items:center;gap:5px;border-radius:.5rem;padding:5px;border:1px solid var(--border, #e7eef3)}.awayz-hotel-result .hotel-information>div p{color:var(--text, #252e34)}.awayz-hotel-result .insufficient-points{opacity:.6;transition:all .2s ease-in-out}.awayz-hotel-result .insufficient-points:hover{opacity:1}.awayz-hotel-result .go-to-journey-button button{width:30px}.awayz-hotel-result .go-to-journey-button b{min-width:30px;white-space:nowrap;overflow:hidden;max-lines:1;text-overflow:ellipsis}.awayz-hotel-result .go-to-journey-button :hover{cursor:pointer}
|
|
1
|
+
@import"https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap";*{font-family:Inter,sans-serif!important;margin:0;padding:0;box-sizing:border-box}:root{font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}p,input{line-height:normal;margin:0;color:var(--text, #252e34);background-color:transparent}a{text-decoration:none}hr{border:none;border-top:1px solid var(--border, #e7eef3);width:100%}@keyframes slide-in-right{0%{opacity:0;transform:translate(0)}50%{transform:translate(-100vw);opacity:0}50.001%{opacity:0;transform:translate(105vw)}50.002%{opacity:1;transform:translate(100vw)}to{transform:translate(0)}}@keyframes slide-in-left{0%{opacity:0;transform:translate(0)}50%{transform:translate(100vw);opacity:0}50.001%{opacity:0;transform:translate(-100vw)}50.002%{opacity:1;transform:translate(-100vw)}to{transform:translate(0)}}@keyframes slide-out-right{0%{transform:translate(0)}to{transform:translate(100vw);opacity:1}}@keyframes slide-out-left{0%{transform:translate(0)}to{transform:translate(-100vw);opacity:1}}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:translate(0);opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes fade-in{0%{opacity:0;scale:.9}to{opacity:1;scale:1}}@keyframes scale-out{0%{transform:scale(1)}to{transform:scale(0)}}@keyframes scale-in{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes no-no{0%{transform:translate(0)}20%{transform:translate(-20px)}40%{transform:translate(15px)}60%{transform:translate(-10px)}80%{transform:translate(5px)}to{transform:translate(0)}}@keyframes loading-track{0%{transform:translate(-100%);opacity:0}25%{opacity:1}75%{opacity:1}to{opacity:0;transform:translate(100%)}}@keyframes loading-in{0%{height:0}to{height:5px}}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shine{0%{background-position:right}}@keyframes text-pulse{0%{opacity:.75}35%{opacity:1}65%{opacity:1}to{opacity:.75}}@keyframes pulse{0%{opacity:.85}35%{opacity:1}65%{opacity:1}to{opacity:.85}}@keyframes shimmer{0%{opacity:.5}50%{opacity:1}to{opacity:.5}}@keyframes fade-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-down{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-right{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes spring-in{0%{opacity:0;transform:scale(.8)}70%{opacity:1;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes ripple{0%{transform:scale(1)}to{transform:scale(1.1,1.4)}}@keyframes tip-fade-right{0%{opacity:0;transform:translate(-20px,-50%)}to{opacity:1;transform:translateY(-50%)}}@keyframes tip-fade-left{0%{opacity:0;transform:translate(20px,-50%)}to{opacity:1;transform:translateY(-50%)}}@keyframes tip-fade-down{0%{opacity:0;transform:translate(-50%,-20px)}to{opacity:1;transform:translate(-50%)}}@keyframes tip-fade-up{0%{opacity:0;transform:translate(-50%,5px)}to{opacity:1;transform:translate(-50%)}}@keyframes slide-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slide-out{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}@keyframes scale-fade-in{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes scroll-horizontally{0%{transform:translate(0)}to{transform:translate(-50%)}}.awayz-hotel-result{background-color:var(--foreground, #fff);border:1px solid var(--border, #e7eef3);border-radius:.5rem;display:flex;overflow:hidden;cursor:pointer;animation:spring-in .5s ease-in-out both}.awayz-hotel-result:nth-child(1){animation-delay:.1s}.awayz-hotel-result:nth-child(2){animation-delay:.2s}.awayz-hotel-result:nth-child(3){animation-delay:.3s}.awayz-hotel-result:nth-child(4){animation-delay:.4s}.awayz-hotel-result:nth-child(5){animation-delay:.5s}.awayz-hotel-result:nth-child(6){animation-delay:.6s}.awayz-hotel-result:nth-child(7){animation-delay:.7s}.awayz-hotel-result:nth-child(8){animation-delay:.8s}.awayz-hotel-result:nth-child(9){animation-delay:.9s}.awayz-hotel-result:nth-child(10){animation-delay:1s}.awayz-hotel-result.hotel-skeleton .content .hotel-data{display:flex;flex-direction:column;gap:.5rem}.awayz-hotel-result.hotel-skeleton .content .hotel-image{background-color:var(--border, #e7eef3);background-size:300%;background-position:100% 0;animation:shimmer 2s infinite;color:transparent}.awayz-hotel-result.hotel-skeleton .content .hotel-name{background-color:var(--border, #e7eef3);background-size:300%;background-position:100% 0;animation:shimmer 2s infinite;color:transparent;height:20px;width:75%;border-radius:4px}.awayz-hotel-result.hotel-skeleton .content .hotel-address{background-color:var(--border, #e7eef3);background-size:300%;background-position:100% 0;animation:shimmer 2s infinite;color:transparent;height:15px;width:95%;border-radius:4px}.awayz-hotel-result.hotel-skeleton .content .hotel-dates{background-color:var(--border, #e7eef3);background-size:300%;background-position:100% 0;animation:shimmer 2s infinite;color:transparent;height:15px;width:45%;border-radius:4px}.awayz-hotel-result.hotel-skeleton .content .payments>div{background-color:var(--border, #e7eef3);background-size:300%;background-position:100% 0;animation:shimmer 2s infinite;color:transparent;height:40px;width:100%;border-radius:4px;border-color:var(--border, #e7eef3)}.awayz-hotel-result.hotel-skeleton .content .payments>div:first-of-type{width:25%}.awayz-hotel-result.skeleton{animation:spring-in .5s ease-in-out both}.awayz-hotel-result.skeleton:nth-child(1){animation-delay:.1s}.awayz-hotel-result.skeleton:nth-child(2){animation-delay:.2s}.awayz-hotel-result.skeleton:nth-child(3){animation-delay:.3s}.awayz-hotel-result.skeleton:nth-child(4){animation-delay:.4s}.awayz-hotel-result.skeleton:nth-child(5){animation-delay:.5s}.awayz-hotel-result.skeleton .content .hotel-image{background-color:var(--border, #e7eef3);background-size:300%;background-position:100% 0;animation:shimmer 2s infinite;color:transparent}.awayz-hotel-result.skeleton .content .info{display:flex;flex-direction:column;gap:10px}.awayz-hotel-result.skeleton .content .info .hotel-name{background-color:var(--border, #e7eef3);background-size:300%;background-position:100% 0;animation:shimmer 2s infinite;color:transparent;height:20px;width:75%;border-radius:4px}.awayz-hotel-result.skeleton .content .info .hotel-address{background-color:var(--border, #e7eef3);background-size:300%;background-position:100% 0;animation:shimmer 2s infinite;color:transparent;height:15px;width:95%;border-radius:4px}.awayz-hotel-result.skeleton .content .info .hotel-dates{background-color:var(--border, #e7eef3);background-size:300%;background-position:100% 0;animation:shimmer 2s infinite;color:transparent;height:15px;width:45%;border-radius:4px}.awayz-hotel-result.skeleton .content .payments>div{background-color:var(--border, #e7eef3);background-size:300%;background-position:100% 0;animation:shimmer 2s infinite;color:transparent;height:40px;width:100%;border-radius:4px;border-color:#fff}.awayz-hotel-result.skeleton .content .payments>div:first-of-type{width:25%}.awayz-hotel-result .no-point-availability{display:flex;gap:8px;color:#ff7f2f;flex-direction:row;background-color:#ff7f2f20;border:1px solid #ff7f2f;padding:5px 8px;border-radius:4px;align-items:center;margin-top:5px}.awayz-hotel-result .no-point-availability p{font-size:.6rem;text-transform:uppercase;font-weight:500}.awayz-hotel-result .content{padding:1rem;flex:1;display:flex;flex-direction:column;gap:.5rem}.awayz-hotel-result .content .details{display:flex;gap:.5rem}.awayz-hotel-result .content .details .hotel-image{min-width:150px;width:150px;min-height:100px;background-position:center;background-size:cover;border-radius:.25rem;padding:.5rem;display:flex;flex-direction:row;align-items:flex-start;gap:.4rem}@media screen and (max-width: 1024px){.awayz-hotel-result .content .details{flex-direction:column}.awayz-hotel-result .content .details .hotel-image{width:100%;min-width:100%;min-height:150px}}.awayz-hotel-result .content .details .hotel-chain{background-color:var(--foreground, #fff);padding:.2rem .5em;display:flex;gap:.5rem;align-items:center;border-radius:.25rem;font-size:.8rem;max-width:fit-content}@media screen and (min-width: 1024px){.awayz-hotel-result .content .details .hotel-chain>p{max-width:100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.awayz-hotel-result .content .details .hotel-live-tag{background-color:var(--foreground, #fff);color:var(--primary, #1495f2);padding:.2rem .5em;display:flex;gap:.5rem;align-items:center;border-radius:.25rem;font-size:.8rem;max-width:fit-content}.awayz-hotel-result .content .details .info{display:flex;flex-direction:column;width:100%}.awayz-hotel-result .content .details .info .hotel-data{flex:1}.awayz-hotel-result .content .details .info .hotel-data .hotel-name{font-weight:500}.awayz-hotel-result .content .details .info .hotel-data .hotel-address{font-size:.8rem;opacity:.6}.awayz-hotel-result .content .details .info .best-value{display:flex;flex-direction:column}.awayz-hotel-result .content .details .info .best-value p{margin:0}.awayz-hotel-result .content .details .info .best-value p:first-child{font-size:.6rem;opacity:.6;margin-top:2px}.awayz-hotel-result .content .details .info .best-value p span{font-size:.6rem;opacity:.6}.awayz-hotel-result .content .details .info .best-value p:last-child{font-size:1.4rem;font-weight:500}.awayz-hotel-result .content .payments{display:flex;align-items:center;gap:1rem}.awayz-hotel-result .content .payments .payment-details{background-color:var(--foreground, #fff);padding:.4rem .5rem;border-radius:.25rem;display:flex;flex-direction:column;border:1px solid var(--border, #e7eef3);flex:1;position:relative;gap:.1rem}.awayz-hotel-result .content .payments .payment-details .best-value{background-color:var(--primary, #1495f2);color:var(--foreground, #fff);padding:.2rem .5rem;border-radius:.25rem;text-align:center;font-size:.6rem;font-weight:500;width:fit-content;position:absolute;right:4px;top:4px}.awayz-hotel-result .content .payments .payment-details p{margin:0;font-weight:500}.awayz-hotel-result .content .payments .payment-details p:first-child{color:var(--primary, #1495f2);font-size:.7rem}.awayz-hotel-result .content .payments .payment-details p>span:not(.currency-conversion){opacity:.4;font-size:.8rem}.awayz-hotel-result .content .payments .payment-details span{display:flex;gap:.25rem}.awayz-hotel-result button{margin:0;background-color:var(--primary, #1495f2);color:var(--foreground, #fff);border:none;overflow:hidden;width:0;padding:0;display:flex;align-items:center;justify-content:center;transition:all .2s ease-in-out}.awayz-hotel-result .hotel-information{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center;font-size:x-small;color:var(--primary, #1495f2);margin-bottom:5px}.awayz-hotel-result .hotel-information>div:last-child{margin-left:auto}.awayz-hotel-result .hotel-information>div{display:flex;align-items:center;gap:5px;border-radius:.5rem;padding:5px;border:1px solid var(--border, #e7eef3)}.awayz-hotel-result .hotel-information>div p{color:var(--text, #252e34)}.awayz-hotel-result .insufficient-points{opacity:.6;transition:all .2s ease-in-out}.awayz-hotel-result .insufficient-points:hover{opacity:1}.go-to-journey-button button{width:30px}.go-to-journey-button :hover{cursor:pointer}
|
|
@@ -1,74 +1,74 @@
|
|
|
1
|
-
import { jsxs as C, jsx as Q } from "react/jsx-runtime";
|
|
2
|
-
import { CashValue as
|
|
3
|
-
import { o as
|
|
1
|
+
import { jsxs as C, jsx as Q, Fragment as K } from "react/jsx-runtime";
|
|
2
|
+
import { useFeatureFlags as R, EAmountsDisplayFeature as l, CashValue as k, ClientPointsValue as G } from "@odynn/awayz-core";
|
|
3
|
+
import { o as m } from "../../stringUtils-DFhHh7H1.js";
|
|
4
4
|
import "../../moment-BGjjqtLQ.js";
|
|
5
5
|
import "../../arrayExtensions-CFEBYUok.js";
|
|
6
|
-
import { useState as
|
|
7
|
-
import { e as
|
|
8
|
-
import { HotelChains as
|
|
9
|
-
import { EHotelSortOption as
|
|
10
|
-
import { getHotelImageUrls as
|
|
11
|
-
import { Ratings as
|
|
12
|
-
import { UnavailableDate as
|
|
6
|
+
import { useState as q, useRef as J, useEffect as o } from "react";
|
|
7
|
+
import { e as x, f as V, d as y, g as b, h as z, i as M } from "../../index-5WzIR8j6.js";
|
|
8
|
+
import { HotelChains as Z } from "../../definitions/HotelChains.js";
|
|
9
|
+
import { EHotelSortOption as _ } from "../../enums/index.js";
|
|
10
|
+
import { getHotelImageUrls as $, getBookingOptions as AA, isDuffelHotelId as QA, loadImageWithFallback as CA } from "../../utilities/hotelUtils/hotelUtils.js";
|
|
11
|
+
import { Ratings as gA, ERatingColor as IA } from "../Banners/Ratings/Ratings.js";
|
|
12
|
+
import { UnavailableDate as BA } from "../Banners/UnavailableDate/UnavailableDate.js";
|
|
13
13
|
import '../../assets/_styles.css';/* empty css */
|
|
14
|
-
const
|
|
15
|
-
function
|
|
14
|
+
const EA = (...A) => A.join(" ");
|
|
15
|
+
function eA(A) {
|
|
16
16
|
if (!A || isNaN(A) || A < 0) return "N/A";
|
|
17
17
|
let g = A == null ? void 0 : A.toString().split(".")[0];
|
|
18
18
|
return g == null ? void 0 : g.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
|
19
19
|
}
|
|
20
|
-
const CA = "data:image/png;base64,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", fA = ({
|
|
20
|
+
const tA = "data:image/png;base64,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", iA = ({
|
|
21
21
|
details: A,
|
|
22
22
|
onHotelSelect: g,
|
|
23
|
-
onViewDetails:
|
|
23
|
+
onViewDetails: U,
|
|
24
24
|
onViewCalendar: E,
|
|
25
|
-
customStyling:
|
|
25
|
+
customStyling: u = !1,
|
|
26
26
|
isSelected: I,
|
|
27
|
-
showBookableTag:
|
|
28
|
-
showNightsFreeTag:
|
|
29
|
-
customBookableTag:
|
|
30
|
-
customFallbackImage: j =
|
|
31
|
-
showBestValueTag:
|
|
27
|
+
showBookableTag: D = !1,
|
|
28
|
+
showNightsFreeTag: N = !0,
|
|
29
|
+
customBookableTag: F = _.BOOKABLE,
|
|
30
|
+
customFallbackImage: j = tA,
|
|
31
|
+
showBestValueTag: v = !0
|
|
32
32
|
}) => {
|
|
33
|
-
var
|
|
34
|
-
const [B,
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
var i, w, S, p;
|
|
34
|
+
const [B, d] = q(I), f = J(null), [L, O] = q(""), { featureFlags: e } = R(), s = $(A.images)[0], P = ((S = (w = (i = A.cashBookingOffers) == null ? void 0 : i.photos) == null ? void 0 : w[0]) == null ? void 0 : S.url) ?? "", X = async () => {
|
|
35
|
+
const n = await CA(
|
|
36
|
+
s,
|
|
37
|
+
P,
|
|
38
38
|
j
|
|
39
39
|
);
|
|
40
|
-
|
|
40
|
+
O(n);
|
|
41
41
|
};
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}, [
|
|
42
|
+
o(() => {
|
|
43
|
+
X();
|
|
44
|
+
}, [s, P]);
|
|
45
45
|
const {
|
|
46
|
-
bestBookingOption:
|
|
47
|
-
alternateBookingOption:
|
|
48
|
-
hasPoints:
|
|
49
|
-
isHotelChain:
|
|
50
|
-
cashAmount:
|
|
51
|
-
cashCurrency:
|
|
52
|
-
} =
|
|
53
|
-
|
|
54
|
-
I !== void 0 &&
|
|
55
|
-
}, [I]),
|
|
56
|
-
B &&
|
|
46
|
+
bestBookingOption: t,
|
|
47
|
+
alternateBookingOption: a,
|
|
48
|
+
hasPoints: T,
|
|
49
|
+
isHotelChain: W,
|
|
50
|
+
cashAmount: r,
|
|
51
|
+
cashCurrency: c
|
|
52
|
+
} = AA(A), H = (t == null ? void 0 : t.value) > 0 || (a == null ? void 0 : a.value) > 0 || r > 0;
|
|
53
|
+
o(() => {
|
|
54
|
+
I !== void 0 && d(I);
|
|
55
|
+
}, [I]), o(() => {
|
|
56
|
+
B && f.current.scrollIntoView({
|
|
57
57
|
behavior: "smooth",
|
|
58
58
|
block: "center"
|
|
59
59
|
});
|
|
60
60
|
}, [B]);
|
|
61
|
-
const
|
|
62
|
-
if (
|
|
61
|
+
const Y = (n) => {
|
|
62
|
+
if (n.stopPropagation(), E) E(A);
|
|
63
63
|
else
|
|
64
64
|
throw new Error("Could not display availability calendar.");
|
|
65
|
-
},
|
|
65
|
+
}, h = typeof A.nthNightFree == "number" && A.nthNightFree > 0;
|
|
66
66
|
return /* @__PURE__ */ C(
|
|
67
67
|
"div",
|
|
68
68
|
{
|
|
69
|
-
ref:
|
|
70
|
-
className:
|
|
71
|
-
|
|
69
|
+
ref: f,
|
|
70
|
+
className: EA(
|
|
71
|
+
u ? "hotel-result" : "awayz-hotel-result",
|
|
72
72
|
// insufficient_points ? 'insufficient-points' : '',
|
|
73
73
|
B ? "go-to-journey-button" : ""
|
|
74
74
|
),
|
|
@@ -79,7 +79,7 @@ const CA = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAGiCAYAAAAfl6KSAA
|
|
|
79
79
|
{
|
|
80
80
|
className: "content",
|
|
81
81
|
onClick: () => {
|
|
82
|
-
|
|
82
|
+
d(!B), g(A);
|
|
83
83
|
},
|
|
84
84
|
children: [
|
|
85
85
|
/* @__PURE__ */ C("div", { className: "details", children: [
|
|
@@ -88,51 +88,51 @@ const CA = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAGiCAYAAAAfl6KSAA
|
|
|
88
88
|
{
|
|
89
89
|
className: "hotel-image",
|
|
90
90
|
style: {
|
|
91
|
-
backgroundImage: `url(${
|
|
91
|
+
backgroundImage: `url(${L})`
|
|
92
92
|
},
|
|
93
93
|
children: /* @__PURE__ */ C("div", { className: "hotel-chain", children: [
|
|
94
|
-
/* @__PURE__ */ Q(
|
|
95
|
-
/* @__PURE__ */ Q("p", { children:
|
|
94
|
+
/* @__PURE__ */ Q(x, {}),
|
|
95
|
+
/* @__PURE__ */ Q("p", { children: Z.toString(A.hotelGroup) })
|
|
96
96
|
] })
|
|
97
97
|
}
|
|
98
98
|
),
|
|
99
99
|
/* @__PURE__ */ C("div", { className: "info", children: [
|
|
100
100
|
/* @__PURE__ */ C("div", { className: "hotel-data", children: [
|
|
101
101
|
/* @__PURE__ */ C("div", { className: "hotel-information", children: [
|
|
102
|
-
!!((
|
|
103
|
-
/* @__PURE__ */ Q(
|
|
104
|
-
/* @__PURE__ */ Q("p", { children:
|
|
102
|
+
!!((p = A.cashBookingOffers) != null && p.accommodationId) && D && /* @__PURE__ */ C("div", { children: [
|
|
103
|
+
/* @__PURE__ */ Q(V, {}),
|
|
104
|
+
/* @__PURE__ */ Q("p", { children: F })
|
|
105
105
|
] }),
|
|
106
106
|
/* @__PURE__ */ Q(
|
|
107
|
-
|
|
107
|
+
gA,
|
|
108
108
|
{
|
|
109
109
|
starRating: A.chainRating ?? 0,
|
|
110
|
-
starColor:
|
|
110
|
+
starColor: IA.PRIMARY,
|
|
111
111
|
userRating: A.reviewRating ?? "",
|
|
112
112
|
fill: !0
|
|
113
113
|
}
|
|
114
114
|
),
|
|
115
115
|
A.freeNight && /* @__PURE__ */ C("div", { children: [
|
|
116
|
-
/* @__PURE__ */ Q(
|
|
116
|
+
/* @__PURE__ */ Q(y, {}),
|
|
117
117
|
/* @__PURE__ */ Q("p", { children: "Free Night" })
|
|
118
118
|
] }),
|
|
119
|
-
|
|
120
|
-
/* @__PURE__ */ Q(
|
|
119
|
+
N && h && /* @__PURE__ */ C("div", { children: [
|
|
120
|
+
/* @__PURE__ */ Q(b, {}),
|
|
121
121
|
/* @__PURE__ */ C("p", { children: [
|
|
122
|
-
|
|
122
|
+
m(A.nthNightFree),
|
|
123
123
|
" Night Free"
|
|
124
124
|
] })
|
|
125
125
|
] }),
|
|
126
|
-
E && /* @__PURE__ */ Q("div", { onClick:
|
|
126
|
+
E && /* @__PURE__ */ Q("div", { onClick: Y, children: /* @__PURE__ */ Q(z, {}) })
|
|
127
127
|
] }),
|
|
128
128
|
/* @__PURE__ */ Q("p", { className: "hotel-name", children: A.name }),
|
|
129
129
|
/* @__PURE__ */ Q("p", { className: "hotel-address", children: A.address })
|
|
130
130
|
] }),
|
|
131
131
|
/* @__PURE__ */ Q(
|
|
132
|
-
|
|
132
|
+
BA,
|
|
133
133
|
{
|
|
134
|
-
hasPoints:
|
|
135
|
-
isAvailable:
|
|
134
|
+
hasPoints: T,
|
|
135
|
+
isAvailable: H,
|
|
136
136
|
selectedHotel: () => {
|
|
137
137
|
},
|
|
138
138
|
chainName: A.hotelGroup
|
|
@@ -140,18 +140,31 @@ const CA = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAGiCAYAAAAfl6KSAA
|
|
|
140
140
|
)
|
|
141
141
|
] })
|
|
142
142
|
] }),
|
|
143
|
-
|
|
144
|
-
|
|
143
|
+
H && /* @__PURE__ */ C("div", { className: "payments", children: [
|
|
144
|
+
W && !QA(A.hotelId) && e.amountsDisplayFeature === l.CASH_AND_TRAVEL_PARTNER_POINTS && /* @__PURE__ */ C("div", { className: "payment-details", children: [
|
|
145
145
|
/* @__PURE__ */ Q("p", { children: "POINTS" }),
|
|
146
|
-
/* @__PURE__ */ Q("p", { children:
|
|
147
|
-
|
|
146
|
+
/* @__PURE__ */ Q("p", { children: eA(
|
|
147
|
+
h ? A.awardPoints : A.points
|
|
148
148
|
) }),
|
|
149
|
-
A.bestValue === "points" &&
|
|
149
|
+
A.bestValue === "points" && v && /* @__PURE__ */ Q("p", { className: "best-value", children: "Best Value" })
|
|
150
150
|
] }),
|
|
151
151
|
/* @__PURE__ */ C("div", { className: "payment-details", children: [
|
|
152
152
|
/* @__PURE__ */ Q("p", { children: "CASH" }),
|
|
153
|
-
/* @__PURE__ */
|
|
154
|
-
|
|
153
|
+
/* @__PURE__ */ C("span", { children: [
|
|
154
|
+
/* @__PURE__ */ Q(k, { amount: r, currency: c }),
|
|
155
|
+
e.amountsDisplayFeature === l.CASH_AND_CLIENT_POINTS && /* @__PURE__ */ C(K, { children: [
|
|
156
|
+
"/",
|
|
157
|
+
" ",
|
|
158
|
+
/* @__PURE__ */ Q(
|
|
159
|
+
G,
|
|
160
|
+
{
|
|
161
|
+
currency: c,
|
|
162
|
+
cashAmount: r
|
|
163
|
+
}
|
|
164
|
+
)
|
|
165
|
+
] })
|
|
166
|
+
] }),
|
|
167
|
+
A.bestValue === "cash" && v && e.amountsDisplayFeature === l.CASH_AND_TRAVEL_PARTNER_POINTS && /* @__PURE__ */ Q("p", { className: "best-value", children: "Best Value" })
|
|
155
168
|
] })
|
|
156
169
|
] })
|
|
157
170
|
]
|
|
@@ -162,9 +175,9 @@ const CA = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAGiCAYAAAAfl6KSAA
|
|
|
162
175
|
{
|
|
163
176
|
"data-testid": "go-to-journey-button",
|
|
164
177
|
onClick: () => {
|
|
165
|
-
|
|
178
|
+
U(A);
|
|
166
179
|
},
|
|
167
|
-
children: /* @__PURE__ */ Q(
|
|
180
|
+
children: /* @__PURE__ */ Q(M, {})
|
|
168
181
|
}
|
|
169
182
|
)
|
|
170
183
|
]
|
|
@@ -172,5 +185,5 @@ const CA = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAGiCAYAAAAfl6KSAA
|
|
|
172
185
|
);
|
|
173
186
|
};
|
|
174
187
|
export {
|
|
175
|
-
|
|
188
|
+
iA as HotelResult
|
|
176
189
|
};
|
|
@@ -1,25 +1,26 @@
|
|
|
1
|
-
import { g as
|
|
2
|
-
import { b as
|
|
3
|
-
import { E as
|
|
1
|
+
import { g as oe } from "../../dateUtils-C1hKW8MF.js";
|
|
2
|
+
import { b as ae } from "../../index-CJj9N0Xq.js";
|
|
3
|
+
import { E as N } from "../../DateFormats-DZD30Nea.js";
|
|
4
4
|
import "../../arrayExtensions-CFEBYUok.js";
|
|
5
|
-
import { useState as
|
|
6
|
-
import
|
|
7
|
-
import { isPartialHotelDetails as
|
|
8
|
-
import { useAwayzContext as
|
|
5
|
+
import { useState as ce, useMemo as D } from "react";
|
|
6
|
+
import se from "../../stores/useHotelsStore.js";
|
|
7
|
+
import { isPartialHotelDetails as ie, fetchTransferPartners as re, fetchPointsCheck as ne, fetchAvailableRooms as le, combineUpdatedHotelData as T, fallbackBestCheckout as he, fetchBestCheckout as ue } from "./useHotelDetails.api.js";
|
|
8
|
+
import { useAwayzContext as De, useWallet as fe } from "@odynn/awayz-core";
|
|
9
9
|
import { useQuery as r } from "@tanstack/react-query";
|
|
10
10
|
import { h as n } from "../../moment-BGjjqtLQ.js";
|
|
11
|
-
import { livePointsCheckTimeout as
|
|
12
|
-
import { HotelChains as
|
|
13
|
-
import { IhgFreeNightCards as
|
|
14
|
-
import { HotelService as
|
|
15
|
-
import { calculatePointsAsCash as
|
|
16
|
-
|
|
17
|
-
|
|
11
|
+
import { livePointsCheckTimeout as me } from "../../configs/defaults.js";
|
|
12
|
+
import { HotelChains as ke } from "../../definitions/HotelChains.js";
|
|
13
|
+
import { IhgFreeNightCards as de } from "../../definitions/IhgFreeNightCards.js";
|
|
14
|
+
import { HotelService as pe } from "../../services/hotel/HotelService.js";
|
|
15
|
+
import { calculatePointsAsCash as ge } from "../../utilities/pointsAsCashUtils.js";
|
|
16
|
+
import { isDuffelHotelId as ye } from "../../utilities/hotelUtils/hotelUtils.js";
|
|
17
|
+
const Ee = (a) => {
|
|
18
|
+
var H, R, O, q, A, S, G, _, B, w, K, P, E;
|
|
18
19
|
if (!a)
|
|
19
20
|
throw new Error(
|
|
20
21
|
"Hotel is required in order to initiate the hotel details flow"
|
|
21
22
|
);
|
|
22
|
-
const { user: f, config: m } =
|
|
23
|
+
const { user: f, config: m } = De(), { updateHotel: g, searchParams: o } = se(), s = ie(a), [e, U] = ce({
|
|
23
24
|
checkinDate: s ? n(a.checkinDate) : o == null ? void 0 : o.checkinDate,
|
|
24
25
|
checkoutDate: s ? n(a.checkoutDate) : o == null ? void 0 : o.checkoutDate
|
|
25
26
|
}), {
|
|
@@ -36,18 +37,18 @@ const Pe = (a) => {
|
|
|
36
37
|
],
|
|
37
38
|
queryFn: () => {
|
|
38
39
|
var c;
|
|
39
|
-
return
|
|
40
|
+
return pe.searchByHotelId({
|
|
40
41
|
hotel_group: a.hotelGroup,
|
|
41
42
|
hotel_id: a.hotelId,
|
|
42
43
|
check_in_date: n(e.checkinDate).format(
|
|
43
|
-
|
|
44
|
+
N.ServerDate
|
|
44
45
|
),
|
|
45
46
|
check_out_date: n(e.checkoutDate).format(
|
|
46
|
-
|
|
47
|
+
N.ServerDate
|
|
47
48
|
),
|
|
48
49
|
guests: a.guests,
|
|
49
50
|
rooms: a.rooms,
|
|
50
|
-
currency: ((c = f == null ? void 0 : f.userRegion) == null ? void 0 : c.currency) ||
|
|
51
|
+
currency: ((c = f == null ? void 0 : f.userRegion) == null ? void 0 : c.currency) || ae,
|
|
51
52
|
cash_or_points: ["cash", "points"],
|
|
52
53
|
use_duffel: m == null ? void 0 : m.supportsDuffel
|
|
53
54
|
});
|
|
@@ -57,22 +58,22 @@ const Pe = (a) => {
|
|
|
57
58
|
}), t = D(() => {
|
|
58
59
|
var c;
|
|
59
60
|
return s ? i != null && i.success && ((c = i.data) != null && c[0]) ? i.data[0] : {} : a;
|
|
60
|
-
}, [s, i, a]), h = D(() =>
|
|
61
|
-
|
|
61
|
+
}, [s, i, a]), h = D(() => oe(e.checkinDate, e.checkoutDate), [e]), I = (c, l) => {
|
|
62
|
+
U({
|
|
62
63
|
checkinDate: n(c),
|
|
63
64
|
checkoutDate: n(l)
|
|
64
65
|
});
|
|
65
|
-
}, { userCards: u } =
|
|
66
|
+
}, { userCards: u } = fe(), y = D(() => (t == null ? void 0 : t.hotelGroup) === ke.IHG ? de.some(
|
|
66
67
|
(c) => u == null ? void 0 : u.some((l) => l.name === c)
|
|
67
|
-
) : !0, [u]), { data:
|
|
68
|
+
) : !0, [u]), { data: L, isFetching: W } = r({
|
|
68
69
|
queryKey: ["transferPartners", t.hotelGroup],
|
|
69
|
-
queryFn: () =>
|
|
70
|
+
queryFn: () => re(t.hotelGroup),
|
|
70
71
|
enabled: !!t.hotelGroup,
|
|
71
72
|
placeholderData: []
|
|
72
73
|
}), {
|
|
73
|
-
data:
|
|
74
|
+
data: z,
|
|
74
75
|
isFetching: v,
|
|
75
|
-
isFetched:
|
|
76
|
+
isFetched: M
|
|
76
77
|
} = r({
|
|
77
78
|
queryKey: [
|
|
78
79
|
"hotelPointsCheck",
|
|
@@ -82,13 +83,13 @@ const Pe = (a) => {
|
|
|
82
83
|
(q = e == null ? void 0 : e.checkoutDate) == null ? void 0 : q.valueOf()
|
|
83
84
|
],
|
|
84
85
|
queryFn: ({ signal: c }) => {
|
|
85
|
-
const l = AbortSignal.timeout(
|
|
86
|
-
return
|
|
86
|
+
const l = AbortSignal.timeout(me), te = AbortSignal.any([c, l]);
|
|
87
|
+
return ne({
|
|
87
88
|
hotel: t,
|
|
88
89
|
checkinDate: e.checkinDate,
|
|
89
90
|
checkoutDate: e.checkoutDate,
|
|
90
91
|
updateHotel: g,
|
|
91
|
-
signal:
|
|
92
|
+
signal: te
|
|
92
93
|
});
|
|
93
94
|
},
|
|
94
95
|
enabled: !!e.checkinDate && !!e.checkoutDate && !!t.liveScrapingCheckNeeded && (!s || k),
|
|
@@ -100,23 +101,23 @@ const Pe = (a) => {
|
|
|
100
101
|
pointsHotelDetails: t,
|
|
101
102
|
pointsRooms: t.rooms ?? []
|
|
102
103
|
}
|
|
103
|
-
}), { pointsRooms:
|
|
104
|
+
}), { pointsRooms: Q, pointsHotelDetails: d } = z || {
|
|
104
105
|
pointsHotelDetails: t,
|
|
105
106
|
pointsRooms: []
|
|
106
107
|
}, {
|
|
107
|
-
data:
|
|
108
|
+
data: Y,
|
|
108
109
|
isFetching: C,
|
|
109
|
-
isFetched:
|
|
110
|
+
isFetched: j
|
|
110
111
|
} = r({
|
|
111
112
|
queryKey: [
|
|
112
113
|
"fetchAvailableRooms",
|
|
113
114
|
(A = t.cashBookingOffers) == null ? void 0 : A.accommodationId,
|
|
114
115
|
(S = e == null ? void 0 : e.checkinDate) == null ? void 0 : S.valueOf(),
|
|
115
|
-
(
|
|
116
|
+
(G = e == null ? void 0 : e.checkoutDate) == null ? void 0 : G.valueOf(),
|
|
116
117
|
o == null ? void 0 : o.guests,
|
|
117
118
|
o == null ? void 0 : o.rooms
|
|
118
119
|
],
|
|
119
|
-
queryFn: () =>
|
|
120
|
+
queryFn: () => le({
|
|
120
121
|
hotel: t,
|
|
121
122
|
checkinDate: e.checkinDate,
|
|
122
123
|
checkoutDate: e.checkoutDate,
|
|
@@ -125,22 +126,22 @@ const Pe = (a) => {
|
|
|
125
126
|
updateHotel: g,
|
|
126
127
|
numberOfNights: h
|
|
127
128
|
}),
|
|
128
|
-
enabled: !!e.checkinDate && !!e.checkoutDate && !!((
|
|
129
|
+
enabled: !!e.checkinDate && !!e.checkoutDate && !!((_ = t.cashBookingOffers) != null && _.accommodationId) && (!s || k),
|
|
129
130
|
retry: !1,
|
|
130
131
|
placeholderData: {
|
|
131
132
|
cashHotelDetails: t,
|
|
132
133
|
cashRooms: []
|
|
133
134
|
}
|
|
134
|
-
}), { cashRooms:
|
|
135
|
+
}), { cashRooms: J, cashHotelDetails: p } = Y || {
|
|
135
136
|
cashHotelDetails: t,
|
|
136
137
|
cashRooms: []
|
|
137
|
-
},
|
|
138
|
-
() =>
|
|
138
|
+
}, V = D(
|
|
139
|
+
() => T(t, d, p),
|
|
139
140
|
[t, d, p]
|
|
140
141
|
), {
|
|
141
|
-
data:
|
|
142
|
-
isFetching:
|
|
143
|
-
isFetched:
|
|
142
|
+
data: X,
|
|
143
|
+
isFetching: Z,
|
|
144
|
+
isFetched: $
|
|
144
145
|
} = r({
|
|
145
146
|
queryKey: [
|
|
146
147
|
"bestCheckout",
|
|
@@ -150,57 +151,57 @@ const Pe = (a) => {
|
|
|
150
151
|
(w = e == null ? void 0 : e.checkoutDate) == null ? void 0 : w.valueOf(),
|
|
151
152
|
y
|
|
152
153
|
],
|
|
153
|
-
queryFn: () =>
|
|
154
|
-
|
|
154
|
+
queryFn: () => ue(
|
|
155
|
+
V,
|
|
155
156
|
h,
|
|
156
157
|
y
|
|
157
158
|
),
|
|
158
|
-
enabled: !(
|
|
159
|
+
enabled: !ye(t.hotelId) && !v && (t.liveScrapingCheckNeeded ? M : !0) && !C && ((K = t.cashBookingOffers) != null && K.accommodationId ? j : !0) && h > 0 && t.points >= 0 && (!s || k),
|
|
159
160
|
retry: !1,
|
|
160
161
|
placeholderData: {
|
|
161
|
-
bestCheckout:
|
|
162
|
+
bestCheckout: he(t, h),
|
|
162
163
|
isAvailable: !1
|
|
163
164
|
}
|
|
164
|
-
}), { bestCheckout: F, isAvailable: b } =
|
|
165
|
+
}), { bestCheckout: F, isAvailable: b } = X || {
|
|
165
166
|
isAvailable: !1
|
|
166
|
-
}, { data:
|
|
167
|
+
}, { data: ee } = r({
|
|
167
168
|
queryKey: [
|
|
168
169
|
"pointsAsCash",
|
|
169
170
|
t.hotelId,
|
|
170
171
|
t.hotelGroup,
|
|
171
|
-
(
|
|
172
|
-
(
|
|
172
|
+
(P = e == null ? void 0 : e.checkinDate) == null ? void 0 : P.valueOf(),
|
|
173
|
+
(E = e == null ? void 0 : e.checkoutDate) == null ? void 0 : E.valueOf()
|
|
173
174
|
],
|
|
174
|
-
queryFn: () =>
|
|
175
|
-
enabled:
|
|
175
|
+
queryFn: () => ge(F.totalCashCost),
|
|
176
|
+
enabled: $ && b,
|
|
176
177
|
retry: !1
|
|
177
178
|
});
|
|
178
179
|
return {
|
|
179
|
-
transferPartners:
|
|
180
|
-
loadingTransferPartners:
|
|
180
|
+
transferPartners: L || [],
|
|
181
|
+
loadingTransferPartners: W,
|
|
181
182
|
// Hotel Details
|
|
182
183
|
loadingHotelDetails: x,
|
|
183
184
|
// Points Check
|
|
184
|
-
pointsRooms:
|
|
185
|
+
pointsRooms: Q || [],
|
|
185
186
|
loadingLivePointsCheck: v,
|
|
186
187
|
// Cash Rooms
|
|
187
|
-
cashRooms:
|
|
188
|
+
cashRooms: J || [],
|
|
188
189
|
loadingCashRooms: C,
|
|
189
190
|
// Best Checkout
|
|
190
191
|
bestCheckout: F,
|
|
191
|
-
loadingBestCheckout:
|
|
192
|
+
loadingBestCheckout: Z,
|
|
192
193
|
// Combined availability
|
|
193
194
|
isAvailable: b,
|
|
194
195
|
// Points as Cash
|
|
195
|
-
pointsAsCash:
|
|
196
|
-
hotelDetails:
|
|
196
|
+
pointsAsCash: ee,
|
|
197
|
+
hotelDetails: T(
|
|
197
198
|
t,
|
|
198
199
|
d,
|
|
199
200
|
p
|
|
200
201
|
),
|
|
201
|
-
updateDates:
|
|
202
|
+
updateDates: I
|
|
202
203
|
};
|
|
203
204
|
};
|
|
204
205
|
export {
|
|
205
|
-
|
|
206
|
+
Ee as useHotelDetails
|
|
206
207
|
};
|
|
@@ -56,6 +56,10 @@ export declare function getHotelImageUrls(images?: ImageData[] | null): string[]
|
|
|
56
56
|
*/
|
|
57
57
|
export declare const loadImageWithFallback: (priorityImage: string, secondaryImage: string, customFallbackImage: string) => Promise<string>;
|
|
58
58
|
export declare const calculateStringSimilarity: (searchQuery: string, searchText: string) => number;
|
|
59
|
+
/**
|
|
60
|
+
* Returns true if the hotel ID belongs to a Duffel hotel
|
|
61
|
+
*/
|
|
62
|
+
export declare const isDuffelHotelId: (hotelId?: string) => boolean;
|
|
59
63
|
/**
|
|
60
64
|
* Sorts search results based on their relevance to the user query and predefined search types
|
|
61
65
|
* Used primarily for sorting location results in the autocomplete search
|
|
@@ -1,88 +1,88 @@
|
|
|
1
|
-
import { HotelChains as
|
|
2
|
-
var
|
|
3
|
-
static initParams(
|
|
4
|
-
return [
|
|
1
|
+
import { HotelChains as y } from "../../definitions/HotelChains.js";
|
|
2
|
+
var h = class u {
|
|
3
|
+
static initParams(e, r) {
|
|
4
|
+
return [e.replace(/\s+/g, "").toLowerCase(), r.replace(/\s+/g, "").toLowerCase()];
|
|
5
5
|
}
|
|
6
|
-
static checkThanosType(
|
|
7
|
-
if (typeof
|
|
6
|
+
static checkThanosType(e) {
|
|
7
|
+
if (typeof e != "string") throw new Error("first argument should be a string");
|
|
8
8
|
}
|
|
9
|
-
static checkRivalType(
|
|
10
|
-
if (typeof
|
|
9
|
+
static checkRivalType(e) {
|
|
10
|
+
if (typeof e != "string") throw new Error("second argument should be a string");
|
|
11
11
|
}
|
|
12
|
-
static checkAvengersType(
|
|
13
|
-
if (!Array.isArray(
|
|
14
|
-
if (
|
|
12
|
+
static checkAvengersType(e) {
|
|
13
|
+
if (!Array.isArray(e)) throw new Error("second argument should be an array of strings");
|
|
14
|
+
if (e.find((r) => typeof r != "string")) throw new Error("second argument should be an array of strings");
|
|
15
15
|
}
|
|
16
|
-
sortMatch(
|
|
17
|
-
return u.checkThanosType(
|
|
16
|
+
sortMatch(e, r) {
|
|
17
|
+
return u.checkThanosType(e), u.checkAvengersType(r), r.map((s, o) => ({ member: s, index: o, rating: this.similarity(e, s) })).sort((s, o) => s.rating - o.rating);
|
|
18
18
|
}
|
|
19
|
-
}, g = class extends
|
|
20
|
-
similarity(
|
|
21
|
-
|
|
22
|
-
let [r, s] =
|
|
19
|
+
}, g = class extends h {
|
|
20
|
+
similarity(t, e) {
|
|
21
|
+
h.checkThanosType(t), h.checkRivalType(e);
|
|
22
|
+
let [r, s] = h.initParams(t, e), [o, a] = [r.length, s.length];
|
|
23
23
|
if (!r.length && !s.length || r === s) return 1;
|
|
24
24
|
if (o < 2 || a < 2) return 0;
|
|
25
25
|
let c = /* @__PURE__ */ new Map();
|
|
26
26
|
for (let n = 0; n < o - 1; n++) {
|
|
27
|
-
let i = r.slice(n, n + 2),
|
|
28
|
-
c.set(i,
|
|
27
|
+
let i = r.slice(n, n + 2), p = c.has(i) ? c.get(i) + 1 : 1;
|
|
28
|
+
c.set(i, p);
|
|
29
29
|
}
|
|
30
30
|
let l = 0;
|
|
31
31
|
for (let n = 0; n < a - 1; n++) {
|
|
32
|
-
let i = s.slice(n, n + 2),
|
|
33
|
-
|
|
32
|
+
let i = s.slice(n, n + 2), p = c.has(i) ? c.get(i) : 0;
|
|
33
|
+
p > 0 && (c.set(i, p - 1), ++l);
|
|
34
34
|
}
|
|
35
35
|
return 2 * l / (o + a - 2);
|
|
36
36
|
}
|
|
37
|
-
distance(
|
|
38
|
-
return 1 - this.similarity(
|
|
37
|
+
distance(t, e) {
|
|
38
|
+
return 1 - this.similarity(t, e);
|
|
39
39
|
}
|
|
40
40
|
}, m = new g(), w = { diceCoefficient: m }, v = w;
|
|
41
|
-
const d = (
|
|
42
|
-
var
|
|
43
|
-
const
|
|
41
|
+
const d = (t) => {
|
|
42
|
+
var p;
|
|
43
|
+
const e = t.freeNight || t.nthNightFree !== 0 ? t.awardPoints : t.points, r = {
|
|
44
44
|
type: "",
|
|
45
45
|
value: -1
|
|
46
|
-
}, s = typeof
|
|
47
|
-
return
|
|
48
|
-
transferPartners: ((
|
|
49
|
-
...
|
|
50
|
-
value:
|
|
46
|
+
}, s = typeof t.cashValue.amount == "number" ? t.cashValue.amount : parseFloat(t.cashValue.amount), o = { ...r }, { cashBookingOffers: a } = t, c = (a == null ? void 0 : a.cheapestRateCurrency) || t.cashValue.currency, l = a == null ? void 0 : a.cheapestRateTotalAmount, n = l && l > 0 ? l : s, i = y.isHotelChain(t.hotelGroup);
|
|
47
|
+
return t.bestValue === "cash" ? (r.type = "cash", r.value = n, o.type = "points", o.value = e || -1) : t.bestValue === "points" && (r.type = "points", r.value = e || -1, o.type = "cash", o.value = n), {
|
|
48
|
+
transferPartners: ((p = t.partners) == null ? void 0 : p.map((f) => ({
|
|
49
|
+
...f,
|
|
50
|
+
value: e ? Math.ceil(e * f.ratio) : -1
|
|
51
51
|
}))) || [],
|
|
52
52
|
bestBookingOption: r,
|
|
53
53
|
alternateBookingOption: o,
|
|
54
|
-
points:
|
|
55
|
-
hasPoints: typeof
|
|
54
|
+
points: e || -1,
|
|
55
|
+
hasPoints: typeof e == "number" && e > 0,
|
|
56
56
|
cashAmount: n,
|
|
57
57
|
cashCurrency: c,
|
|
58
58
|
duffelCashBookingOffers: a,
|
|
59
59
|
isHotelChain: i
|
|
60
60
|
};
|
|
61
|
-
}, C = (
|
|
62
|
-
function k(
|
|
63
|
-
return !
|
|
61
|
+
}, C = (t) => (t == null ? void 0 : t.hotelGroup) === y.IHG ? t.freeNight || t.nthNightFree ? t.awardPoints : t.points : t.awardPoints;
|
|
62
|
+
function k(t) {
|
|
63
|
+
return !t || !Array.isArray(t) || t.length === 0 ? [] : t.map((e) => typeof e == "string" ? e : e && typeof e == "object" && "url" in e ? e.url : "").filter((e) => e !== "");
|
|
64
64
|
}
|
|
65
|
-
const A = async (
|
|
65
|
+
const A = async (t, e, r) => {
|
|
66
66
|
const s = (o) => new Promise((a, c) => {
|
|
67
67
|
const l = new Image();
|
|
68
68
|
l.src = o, l.onload = () => a(o), l.onerror = () => c();
|
|
69
69
|
});
|
|
70
|
-
return
|
|
71
|
-
}, T = (
|
|
72
|
-
const r =
|
|
70
|
+
return t && await s(t).catch(() => !1) ? t : e && await s(e).catch(() => !1) ? e : r;
|
|
71
|
+
}, T = (t, e) => {
|
|
72
|
+
const r = t.toLowerCase().trim(), s = e.toLowerCase().trim();
|
|
73
73
|
return v.diceCoefficient.similarity(r, s) * 100;
|
|
74
|
-
}, P = (
|
|
75
|
-
const o =
|
|
74
|
+
}, P = (t) => (t == null ? void 0 : t.startsWith("duff_")) ?? !1, L = (t, e, r, s) => {
|
|
75
|
+
const o = t.toLowerCase().trim(), a = s.map((n) => {
|
|
76
76
|
const i = n.description.toLowerCase().trim();
|
|
77
77
|
return {
|
|
78
78
|
...n,
|
|
79
|
-
score: T(
|
|
79
|
+
score: T(t, n.description),
|
|
80
80
|
startsWithText: i
|
|
81
81
|
};
|
|
82
82
|
}), c = a.filter(
|
|
83
|
-
(n) => n.startsWithText.startsWith(o) && n.score >=
|
|
83
|
+
(n) => n.startsWithText.startsWith(o) && n.score >= e
|
|
84
84
|
), l = a.filter(
|
|
85
|
-
(n) => n.score <
|
|
85
|
+
(n) => n.score < e
|
|
86
86
|
);
|
|
87
87
|
return c.sort((n, i) => i.score - n.score), l.sort(
|
|
88
88
|
(n, i) => r[n.searchType] - r[i.searchType]
|
|
@@ -93,6 +93,7 @@ export {
|
|
|
93
93
|
d as getBookingOptions,
|
|
94
94
|
k as getHotelImageUrls,
|
|
95
95
|
C as getPointsValue,
|
|
96
|
+
P as isDuffelHotelId,
|
|
96
97
|
A as loadImageWithFallback,
|
|
97
|
-
|
|
98
|
+
L as sortLocationResults
|
|
98
99
|
};
|