| @@ -0,0 +1,6 @@ | |||
| API_URL=#STRAPI URL# | |||
| API_GRAPHQL_URI=#STRAPI URL#/graphql | |||
| BACKEND_SERVER_URI =#STRAPI URL# | |||
| PORT=#PORT# | |||
| NODE_ENV = production | |||
| @@ -0,0 +1,24 @@ | |||
| import apollo from "../../lib/apollo.js"; | |||
| async function AddBooking(content, token = "") { | |||
| var res = await apollo.mutation( | |||
| ` | |||
| mutation($input: BookingInput!) { | |||
| createBooking(input: { data: $input }) { | |||
| booking { | |||
| id | |||
| } | |||
| } | |||
| } | |||
| `, | |||
| token, | |||
| { | |||
| input: content, | |||
| } | |||
| ); | |||
| return res; | |||
| } | |||
| module.exports = { | |||
| AddBooking: AddBooking, | |||
| }; | |||
| @@ -0,0 +1,61 @@ | |||
| import apollo from "../../lib/apollo.js"; | |||
| async function GetKamar(token = "") { | |||
| var res = await apollo.query( | |||
| ` | |||
| query { | |||
| jenisKamars { | |||
| id | |||
| namaKamar | |||
| hargaKamar | |||
| jumlahKamar | |||
| imgKamar { | |||
| url | |||
| } | |||
| fasilitas_kamars { | |||
| namaFasilitas | |||
| hargaFasilitas | |||
| } | |||
| } | |||
| } | |||
| `, | |||
| token | |||
| ); | |||
| return res; | |||
| } | |||
| async function GetDetailKamar(id, token="") { | |||
| var res = await apollo.query( | |||
| ` | |||
| query($input: ID!) { | |||
| jenisKamars(where:{id:$input}) { | |||
| id | |||
| namaKamar | |||
| hargaKamar | |||
| jumlahKamar | |||
| imgKamar { | |||
| url | |||
| } | |||
| fasilitas_kamars { | |||
| namaFasilitas | |||
| hargaFasilitas | |||
| } | |||
| } | |||
| } | |||
| `, | |||
| token, | |||
| { | |||
| "input": id | |||
| } | |||
| ); | |||
| return res; | |||
| } | |||
| module.exports = { | |||
| GetKamar: GetKamar, | |||
| //detail | |||
| GetDetailKamar: GetDetailKamar, | |||
| }; | |||
| @@ -0,0 +1,372 @@ | |||
| import React, { useState } from 'react'; | |||
| import * as Icon from 'react-feather'; | |||
| import NumberFormat from 'react-number-format'; | |||
| //sweet alert | |||
| import swal from 'sweetalert'; | |||
| const Checkout = function ({ backend, checkoutItem, ...props }) { | |||
| // const [HargaFasilitas, setHargaFasilitas] = useState(''); | |||
| // const [NamaFasilitas, setNamaFasilitas] = useState(''); | |||
| const [formValue, setFormValue] = React.useState({ | |||
| namaPemesan: "", | |||
| emailPemesan: "", | |||
| teleponPemesan: "", | |||
| pemesan: "", | |||
| checkIn: "", | |||
| checkOut: "", | |||
| jumlahPengunjung: "", | |||
| requestKamar: "", | |||
| catatan: "", | |||
| hargaKamar: "", | |||
| namaKamar: "", | |||
| ppnKamar: 0.1, | |||
| hargaTotal: checkoutItem[0].hargaKamar + checkoutItem[0].hargaKamar * 0.1, | |||
| }); | |||
| const disablePastDate = () => { | |||
| const today = new Date(); | |||
| const dd = String(today.getDate() + 1).padStart(2, "0"); | |||
| const mm = String(today.getMonth() + 1).padStart(2, "0"); //January is 0! | |||
| const yyyy = today.getFullYear(); | |||
| return yyyy + "-" + mm + "-" + dd; | |||
| }; | |||
| const CheckoutKamar = checkoutItem.map((data) => { | |||
| return ( | |||
| <div className="row"> | |||
| <div className="col-lg-4 col-md-6"> | |||
| <img style={{ borderRadius: "10px" }} src={`${backend}${data.imgKamar["url"]}`} height="120px" /> | |||
| </div> | |||
| <div className="col-lg-8 col-md-6"> | |||
| <h3 className="title">Catania {data.namaKamar}</h3> | |||
| <div className="row"> | |||
| <div className="col-lg-3 col-md-6"> | |||
| <p>Fasilitas : </p> | |||
| </div> | |||
| <div className="col-lg-4 col-md-6"> | |||
| <p><Icon.Wifi /> Free Wifi</p> | |||
| </div> | |||
| <div className="col-lg-4 col-md-6"> | |||
| <p><Icon.Phone /> Telepon</p> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| ) | |||
| }) | |||
| const CheckoutHarga = checkoutItem.map((data) => { | |||
| return ( | |||
| <div className="order-table table-responsive"> | |||
| <table className="table table-bordered"> | |||
| <thead> | |||
| <tr> | |||
| <th scope="col">Jenis Kamar</th> | |||
| <th scope="col">Total</th> | |||
| </tr> | |||
| </thead> | |||
| <tbody> | |||
| <tr> | |||
| <td className="product-name"> | |||
| <span href="#">Catania {data.namaKamar}</span> | |||
| </td> | |||
| <td className="product-total"> | |||
| <span className="subtotal-amount"><NumberFormat value={data.hargaKamar} displayType={'text'} thousandSeparator={true} prefix={'Rp.'} /></span> | |||
| </td> | |||
| </tr> | |||
| <tr> | |||
| <td className="product-name"> | |||
| <span href="#">Pajak 10%</span> | |||
| </td> | |||
| <td className="product-total"> | |||
| <span type="disable" className="subtotal-amount"><NumberFormat value={data.hargaKamar + data.hargaKamar * 0.1} displayType={'text'} thousandSeparator={true} prefix={'Rp.'} /></span> | |||
| </td> | |||
| </tr> | |||
| </tbody> | |||
| </table> | |||
| </div> | |||
| ) | |||
| }) | |||
| return ( | |||
| <> | |||
| <div className="checkout-area ptb-80"> | |||
| <div className="container"> | |||
| <div className="row"> | |||
| <div className="col-lg-12 col-md-12"> | |||
| <div className="user-actions" style={{ backgroundColor: "#eb1928" }}> | |||
| <h4 style={{ color: 'white' }}><Icon.Edit style={{ color: 'white' }} width="50px" /> Important Notice</h4><br /> | |||
| <p style={{ color: 'white' }}> | |||
| <b>As COVID-19 situation evolves, make sure the cancellation policy suits your needs.</b><br /> | |||
| In reference to the circular letter by the government regarding the spread control of Covid-19, please ensure that you are aware of your booking's refund, cancellation, and reschedule policy. | |||
| </p> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <form | |||
| onSubmit={async (e) => { | |||
| e.preventDefault(); | |||
| var newformValue = { | |||
| ...formValue, | |||
| namaKamar: checkoutItem[0].namaKamar, | |||
| hargaKamar: checkoutItem[0].hargaKamar, | |||
| } | |||
| setFormValue(newformValue) | |||
| console.log(JSON.stringify(newformValue)); | |||
| const response = await fetch( | |||
| "/api/Booking/CreateBooking", | |||
| { | |||
| method: "POST", | |||
| headers: { | |||
| 'Content-Type': 'application/json' | |||
| }, | |||
| body: JSON.stringify(newformValue), | |||
| } | |||
| ); | |||
| console.log("response :", response); | |||
| if (response.ok) { | |||
| var res = await response.json(); | |||
| console.log("cek response :", res); | |||
| if (res["STATUS"] === 1) { | |||
| res["DATA"]["booking"]; | |||
| swal("Produk Berhasil Ditambah ke Keranjang", "Silahkan Cek Keranjang Belanja Anda", "success"); | |||
| router.push("/review"); | |||
| } | |||
| else { | |||
| swal("Produk Gagal Ditambah ke Keranjang", "Silahkan Coba Lagi", "error"); | |||
| } | |||
| } else { | |||
| swal("Transaksi Gagal", "Silahkan Coba Lagi", "error"); | |||
| } | |||
| return false; | |||
| }} | |||
| > | |||
| <div className="row"> | |||
| <div className="col-lg-6 col-md-6"> | |||
| <div className="billing-details"> | |||
| <h3 className="title">Masukan Informasi Pemesan</h3> | |||
| <div className="row"> | |||
| <div className="col-lg-12 col-md-12"> | |||
| <div className="form-group"> | |||
| <label>Nama Lengkap <span className="required">*</span></label> | |||
| <input | |||
| name="namaPemesan" | |||
| type="text" | |||
| className="form-control" | |||
| onInput={(e) => { | |||
| setFormValue({ | |||
| ...formValue, | |||
| namaPemesan: e.target.value.toString(), | |||
| }) | |||
| }} | |||
| /> | |||
| </div> | |||
| </div> | |||
| <div className="col-lg-6 col-md-6"> | |||
| <div className="form-group"> | |||
| <label>Alamat Email <span className="required">*</span></label> | |||
| <input | |||
| name="email" | |||
| type="email" | |||
| className="form-control" | |||
| onInput={(e) => { | |||
| setFormValue({ | |||
| ...formValue, | |||
| emailPemesan: e.target.value.toString(), | |||
| }) | |||
| }} | |||
| /> | |||
| </div> | |||
| </div> | |||
| <div className="col-lg-6 col-md-6"> | |||
| <div className="form-group"> | |||
| <label>Masukan Ulang Alamat Email <span className="required">*</span></label> | |||
| <input type="email" className="form-control" /> | |||
| </div> | |||
| </div> | |||
| <div className="col-lg-6 col-md-6"> | |||
| <div className="form-group"> | |||
| <label>Nomer Telepon <span className="required">*</span></label> | |||
| <input | |||
| name="teleponPemesan" | |||
| type="text" | |||
| className="form-control" | |||
| onInput={(e) => { | |||
| setFormValue({ | |||
| ...formValue, | |||
| teleponPemesan: e.target.value.toString(), | |||
| }) | |||
| }} | |||
| /> | |||
| </div> | |||
| </div> | |||
| <div className="col-lg-6 col-md-6"> | |||
| <div className="form-group"> | |||
| <label>Saya Memesan Untuk ? <span className="required">*</span></label> | |||
| <div className="select-box"> | |||
| <select | |||
| name="pemesan" | |||
| className="form-select" | |||
| onInput={(e) => { | |||
| setFormValue({ | |||
| ...formValue, | |||
| pemesan: e.target.value.toString(), | |||
| }) | |||
| }} | |||
| > | |||
| <option value="0">- Pilih Salah Satu -</option> | |||
| <option value="Saya Sendiri">Saya Sendiri</option> | |||
| <option value="Orang Lain">Orang Lain</option> | |||
| </select> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div className="col-lg-6 col-md-6"> | |||
| <div className="billing-details"> | |||
| {CheckoutKamar} | |||
| <br /> | |||
| <div className="row"> | |||
| <div className="col-lg-6 col-md-6"> | |||
| <div className="form-group"> | |||
| <label>Check In<span className="required">*</span></label> | |||
| <input | |||
| name="checkIn" | |||
| type="date" | |||
| min={disablePastDate()} | |||
| className="form-control" | |||
| onInput={(e) => { | |||
| setFormValue({ | |||
| ...formValue, | |||
| checkIn: e.target.value, | |||
| }) | |||
| }} | |||
| /> | |||
| </div> | |||
| </div> | |||
| <div className="col-lg-6 col-md-6"> | |||
| <div className="form-group"> | |||
| <label>Check Out <span className="required">*</span></label> | |||
| <input | |||
| data-date-format="DD MMMM YYYY" | |||
| name="checkOut" | |||
| type="date" | |||
| min={disablePastDate()} | |||
| className="form-control" | |||
| onInput={(e) => { | |||
| setFormValue({ | |||
| ...formValue, | |||
| checkOut: e.target.value, | |||
| }) | |||
| }} | |||
| /> | |||
| </div> | |||
| </div> | |||
| <div className="col-lg-12 col-md-6"> | |||
| <div className="form-group"> | |||
| <label>Jumlah Pengunjung <span className="required">*</span></label> | |||
| <div className="select-box"> | |||
| <select | |||
| name="jumlahPengunjung" | |||
| className="form-select" | |||
| onInput={(e) => { | |||
| setFormValue({ | |||
| ...formValue, | |||
| jumlahPengunjung: e.target.value.toString(), | |||
| }) | |||
| }} | |||
| > | |||
| <option value="0">- Pilih Salah Satu -</option> | |||
| <option value="1">1 Orang</option> | |||
| <option value="2">2 Orang</option> | |||
| </select> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div className="col-lg-6 col-md-6" style={{ marginTop: "50px" }}> | |||
| <div className="billing-details"> | |||
| <h3 className="title">Permintaan Khusus Untuk Kamar</h3> | |||
| <div className="row"> | |||
| {checkoutItem[0]["fasilitas_kamars"].map((option) => ( | |||
| <div className="col-lg-4 col-md-4"> | |||
| <div className="form-check"> | |||
| <input | |||
| name="requestKamar" | |||
| type="checkbox" | |||
| className="form-check-input" | |||
| value={option.namaFasilitas} | |||
| onInput={(e) => { | |||
| setFormValue({ | |||
| ...formValue, | |||
| requestKamar: e.target.value.toString(), | |||
| }) | |||
| }} | |||
| /> | |||
| <label className="form-check-label" value={option.namaFasilitas}>{option.namaFasilitas}</label> | |||
| </div> | |||
| </div> | |||
| ))} | |||
| <div className="col-lg-12 col-md-12"> | |||
| <div className="form-group"> | |||
| <textarea | |||
| name="catatan" | |||
| id="notes" | |||
| cols="30" | |||
| rows="4" | |||
| placeholder="Catatan" | |||
| className="form-control" | |||
| onInput={(e) => { | |||
| setFormValue({ | |||
| ...formValue, | |||
| catatan: e.target.value.toString(), | |||
| }) | |||
| }} | |||
| ></textarea> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div className="col-lg-6 col-md-6" style={{ marginTop: "50px" }}> | |||
| <div className="order-details"> | |||
| <h3 className="title">Total Pesanan</h3> | |||
| {CheckoutHarga} | |||
| <button type="submit" className="btn btn-primary order-btn">Book</button> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </form> | |||
| </div> | |||
| </div> | |||
| </> | |||
| ) | |||
| } | |||
| export default Checkout; | |||
| @@ -0,0 +1,154 @@ | |||
| import React, { useState } from 'react'; | |||
| import * as Icon from 'react-feather'; | |||
| const Checkout = () => { | |||
| return ( | |||
| <> | |||
| <div className="checkout-area ptb-80"> | |||
| <div className="container"> | |||
| <div className="row"> | |||
| <div className="col-lg-12 col-md-12"> | |||
| <div className="user-actions"> | |||
| <h4><Icon.Edit width="50px" /> Mohon Periksa Ulang Pesanan Anda</h4><br /> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <form> | |||
| <div className="row"> | |||
| <div className="col-lg-12 col-md-6"> | |||
| <div className="billing-details"> | |||
| <div className="row"> | |||
| <div className="col-lg-4 col-md-6"> | |||
| <img style={{ borderRadius: "10px" }} src="https://origin.pegipegi.com/jalan/images/pictM/Y4/Y972594/Y972594002.jpg" width="100%" /> | |||
| </div> | |||
| <div className="col-lg-6 col-md-6"> | |||
| <h2 className="title">Catania Double Room</h2> | |||
| <div className="row"> | |||
| <div className="col-lg-3 col-md-6"> | |||
| <p>Fasilitas : </p> | |||
| </div> | |||
| </div> | |||
| <div className="row"> | |||
| <div className="col-lg-3 col-md-6"> | |||
| <p><Icon.Wifi /> Free Wifi</p> | |||
| </div> | |||
| <div className="col-lg-3 col-md-6"> | |||
| <p><Icon.Phone /> Telepon</p> | |||
| </div> | |||
| </div><br /><br /> | |||
| <div className="row"> | |||
| <div className="col-lg-3 col-md-6"> | |||
| <h6>Check In </h6> | |||
| <h6><p>25 Nov 2021</p></h6> | |||
| <h6><p>From 14:00</p></h6> | |||
| </div> | |||
| <div className="col-lg-3 col-md-6"> | |||
| <h6>Check Out </h6> | |||
| <h6><p>25 Nov 2021</p></h6> | |||
| <h6><p>Before 14:00</p></h6> | |||
| </div> | |||
| <div className="col-lg-3 col-md-6"> | |||
| <h6>Durasi Hari </h6> | |||
| <h6><p>1 Hari</p></h6> | |||
| </div> | |||
| <div className="col-lg-2 col-md-6"> | |||
| <h6>Pengunjung </h6> | |||
| <h6><p>1 Orang</p></h6> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div><br /> | |||
| </div> | |||
| </div> | |||
| <div className="col-lg-12 col-md-6" style={{ marginTop: "50px" }}> | |||
| <div className="billing-details"> | |||
| <h3 className="title">Informasi Pemesan</h3> | |||
| <div className="row"> | |||
| <div className="col-lg-7 col-md-4"> | |||
| <div className="row"> | |||
| <div className="col-lg-12 col-md-4"> | |||
| <h6>Nama Pemesan : Yusmardianto</h6> | |||
| </div> | |||
| <div className="col-lg-12 col-md-4"> | |||
| <h6>Nomer HP Pemesan : 087797315685 </h6> | |||
| </div> | |||
| <div className="col-lg-12 col-md-4"> | |||
| <h6>Alamat Email Pemesan : yusmardianto@thamrin.co.id</h6> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div className="col-lg-5 col-md-4"> | |||
| <div className="row"> | |||
| <div className="col-lg-12 col-md-4"> | |||
| <h6>Pesan Khusus : Yusmardianto</h6> | |||
| </div> | |||
| <div className="col-lg-7 col-md-4"> | |||
| <h6> </h6> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div className="col-lg-12 col-md-6" style={{ marginTop: "50px" }}> | |||
| <div className="order-details"> | |||
| <h3 className="title">Total Pesanan</h3> | |||
| <div className="order-table table-responsive"> | |||
| <table className="table table-bordered"> | |||
| <thead> | |||
| <tr> | |||
| <th scope="col">Jenis Kamar</th> | |||
| <th scope="col">Total</th> | |||
| </tr> | |||
| </thead> | |||
| <tbody> | |||
| <tr> | |||
| <td className="product-name"> | |||
| <a href="#">Double Room</a> | |||
| </td> | |||
| <td className="product-total"> | |||
| <span className="subtotal-amount">Rp.180.000</span> | |||
| </td> | |||
| </tr> | |||
| <tr> | |||
| <td className="product-name"> | |||
| <a href="#">Extra Bed</a> | |||
| </td> | |||
| <td className="product-total"> | |||
| <span className="subtotal-amount">Rp.50.000</span> | |||
| </td> | |||
| </tr> | |||
| <tr> | |||
| <td className="product-name"> | |||
| <a href="#">Pajak 10%</a> | |||
| </td> | |||
| <td className="product-total"> | |||
| <span className="subtotal-amount">Rp.23.000</span> | |||
| </td> | |||
| </tr> | |||
| </tbody> | |||
| </table> | |||
| </div> | |||
| <a href="#" className="btn btn-primary order-btn">Bayar Pesanan</a> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </form> | |||
| </div> | |||
| </div> | |||
| </> | |||
| ) | |||
| } | |||
| export default Checkout; | |||
| @@ -2,7 +2,33 @@ import React from 'react'; | |||
| import Link from 'next/link'; | |||
| import * as Icon from 'react-feather'; | |||
| const MainBanner = () => { | |||
| import NumberFormat from 'react-number-format'; | |||
| const MainBanner = function ({ backend, kamar, ...props }) { | |||
| const kamarContent = kamar.map((data) => { | |||
| return ( | |||
| <div className="col-lg-5 offset-lg-1"> | |||
| <div className="agency-services-box"> | |||
| <img src={`${backend}${data.imgKamar["url"]}`} alt="image" /> | |||
| <div className="content"> | |||
| <h3> | |||
| <Link href={"/checkout?s=" + data.id}> | |||
| <a>{data.namaKamar}<br /><NumberFormat value={data.hargaKamar} displayType={'text'} thousandSeparator={true} prefix={'Rp.'} /></a> | |||
| </Link> | |||
| </h3> | |||
| <Link href={"/checkout?s=" + data.id}> | |||
| <a className="read-more-btn"> | |||
| Booking Now <Icon.PlusCircle /> | |||
| </a> | |||
| </Link> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| ) | |||
| }) | |||
| return ( | |||
| <div className="main-banner" style={{ marginTop: "-50px" }}> | |||
| <div className="d-table"> | |||
| @@ -20,25 +46,7 @@ const MainBanner = () => { | |||
| </div> | |||
| </div> | |||
| <div className="col-lg-5 offset-lg-1"> | |||
| <div className="agency-services-box"> | |||
| <img src="/images/agency-image/agency-services-img1.jpg" alt="image" /> | |||
| <div className="content"> | |||
| <h3> | |||
| <Link href="/checkout"> | |||
| <a>Double Room<br/>Rp.180.000</a> | |||
| </Link> | |||
| </h3> | |||
| <Link href="/checkout"> | |||
| <a className="read-more-btn"> | |||
| Booking Now <Icon.PlusCircle /> | |||
| </a> | |||
| </Link> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| {kamarContent} | |||
| </div> | |||
| </div> | |||
| </div> | |||
| @@ -10,12 +10,15 @@ | |||
| }, | |||
| "author": "EnvyTheme.com", | |||
| "dependencies": { | |||
| "@apollo/client": "^3.3.11", | |||
| "@emotion/react": "^11.6.0", | |||
| "@emotion/styled": "^11.6.0", | |||
| "@mui/material": "^5.1.1", | |||
| "animate.css": "^4.1.1", | |||
| "axios": "^0.21.1", | |||
| "cross-fetch": "^3.1.4", | |||
| "dotenv": "^10.0.0", | |||
| "graphql": "^16.0.1", | |||
| "next": "^10.0.7", | |||
| "nodemailer": "^6.5.0", | |||
| "nodemailer-sendgrid-transport": "^0.2.0", | |||
| @@ -26,6 +29,7 @@ | |||
| "react-hook-form": "^6.15.4", | |||
| "react-icons": "^4.3.1", | |||
| "react-masonry-component": "^6.2.1", | |||
| "react-number-format": "^4.8.0", | |||
| "react-owl-carousel3": "^2.2.5", | |||
| "react-redux": "^7.1.0", | |||
| "react-slick": "^0.28.0", | |||
| @@ -35,6 +39,7 @@ | |||
| "redux": "^3.6.0", | |||
| "redux-devtools-extension": "^2.13.2", | |||
| "sass": "^1.32.7", | |||
| "sweetalert": "^2.1.2", | |||
| "sweetalert2": "^10.15.5", | |||
| "sweetalert2-react-content": "^3.3.1" | |||
| }, | |||
| @@ -0,0 +1,7 @@ | |||
| import Booking from "api/Booking/booking"; | |||
| export default async function handler(req, resp) { | |||
| var input = req.body; | |||
| var res = await Booking.AddBooking(input); | |||
| resp.status(200).json(res); | |||
| } | |||
| @@ -1,223 +1,36 @@ | |||
| import React, { useState } from 'react'; | |||
| import Navbar from "@/components/_App/NavbarHome"; | |||
| import Footer from "@/components/_App/Footer"; | |||
| import PageBanner from '@/components/Common/PageBanner'; | |||
| import CheckoutContent from "@/components/Booking/checkout"; | |||
| import * as Icon from 'react-feather'; | |||
| const Checkout = () => { | |||
| import GetCheckoutItem from "api/Kamar/kamar"; | |||
| const Checkout = function ({ backend, checkoutItem, ...props }) { | |||
| return ( | |||
| <> | |||
| <Navbar /><br /><br /> | |||
| <div className="checkout-area ptb-80"> | |||
| <div className="container"> | |||
| <div className="row"> | |||
| <div className="col-lg-12 col-md-12"> | |||
| <div className="user-actions" style={{backgroundColor:"#eb1928"}}> | |||
| <h4 style={{ color: 'white' }}><Icon.Edit style={{ color: 'white' }} width="50px" /> Important Notice</h4><br/> | |||
| <p style={{ color: 'white' }}> | |||
| <b>As COVID-19 situation evolves, make sure the cancellation policy suits your needs.</b><br/> | |||
| In reference to the circular letter by the government regarding the spread control of Covid-19, please ensure that you are aware of your booking's refund, cancellation, and reschedule policy. | |||
| </p> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <form> | |||
| <div className="row"> | |||
| <div className="col-lg-6 col-md-6"> | |||
| <div className="billing-details"> | |||
| <h3 className="title">Masukan Informasi Pemesan</h3> | |||
| <div className="row"> | |||
| <div className="col-lg-12 col-md-12"> | |||
| <div className="form-group"> | |||
| <label>Nama Lengkap <span className="required">*</span></label> | |||
| <input type="text" className="form-control" /> | |||
| </div> | |||
| </div> | |||
| <div className="col-lg-6 col-md-6"> | |||
| <div className="form-group"> | |||
| <label>Alamat Email <span className="required">*</span></label> | |||
| <input type="email" className="form-control" /> | |||
| </div> | |||
| </div> | |||
| <div className="col-lg-6 col-md-6"> | |||
| <div className="form-group"> | |||
| <label>Masukan Ulang Alamat Email <span className="required">*</span></label> | |||
| <input type="email" className="form-control" /> | |||
| </div> | |||
| </div> | |||
| <div className="col-lg-6 col-md-6"> | |||
| <div className="form-group"> | |||
| <label>Nomer Telepon <span className="required">*</span></label> | |||
| <input type="text" className="form-control" /> | |||
| </div> | |||
| </div> | |||
| <div className="col-lg-6 col-md-6"> | |||
| <div className="form-group"> | |||
| <label>Saya Memesan Untuk ? <span className="required">*</span></label> | |||
| <div className="select-box"> | |||
| <select className="form-select"> | |||
| <option value="1">Saya Sendiri</option> | |||
| <option value="2">Orang Lain</option> | |||
| </select> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div className="col-lg-6 col-md-6"> | |||
| <div className="billing-details"> | |||
| <div className="row"> | |||
| <div className="col-lg-4 col-md-6"> | |||
| <img style={{ borderRadius:"10px" }} src="https://origin.pegipegi.com/jalan/images/pictM/Y4/Y972594/Y972594002.jpg" height="120px" /> | |||
| </div> | |||
| <div className="col-lg-8 col-md-6"> | |||
| <h3 className="title">Catania Double Room</h3> | |||
| <div className="row"> | |||
| <div className="col-lg-3 col-md-6"> | |||
| <p>Fasilitas : </p> | |||
| </div> | |||
| <div className="col-lg-4 col-md-6"> | |||
| <p><Icon.Wifi /> Free Wifi</p> | |||
| </div> | |||
| <div className="col-lg-4 col-md-6"> | |||
| <p><Icon.Phone /> Telepon</p> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div><br /> | |||
| <div className="row"> | |||
| <div className="col-lg-6 col-md-6"> | |||
| <div className="form-group"> | |||
| <label>Check In<span className="required">*</span></label> | |||
| <input type="date" className="form-control" /> | |||
| </div> | |||
| </div> | |||
| <div className="col-lg-6 col-md-6"> | |||
| <div className="form-group"> | |||
| <label>Check Out <span className="required">*</span></label> | |||
| <input type="date" className="form-control" /> | |||
| </div> | |||
| </div> | |||
| <div className="col-lg-12 col-md-6"> | |||
| <div className="form-group"> | |||
| <label>Jumlah Pengunjung <span className="required">*</span></label> | |||
| <div className="select-box"> | |||
| <select className="form-select"> | |||
| <option value="1">1 Orang</option> | |||
| <option value="2">2 Orang</option> | |||
| </select> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div className="col-lg-6 col-md-6" style={{ marginTop: "50px" }}> | |||
| <div className="billing-details"> | |||
| <h3 className="title">Permintaan Khusus Untuk Kamar</h3> | |||
| <div className="row"> | |||
| <div className="col-lg-4 col-md-4"> | |||
| <div className="form-check"> | |||
| <input type="checkbox" className="form-check-input" id="1-large-bed" /> | |||
| <label className="form-check-label" htmlFor="1-large-bed">1 Kasur Besar</label> | |||
| </div> | |||
| </div> | |||
| <div className="col-lg-4 col-md-4"> | |||
| <div className="form-check"> | |||
| <input type="checkbox" className="form-check-input" id="2-single-bed" /> | |||
| <label className="form-check-label" htmlFor="2-single-bed">2 Kasur Single</label> | |||
| </div> | |||
| </div> | |||
| <div className="col-lg-4 col-md-4"> | |||
| <div className="form-check"> | |||
| <input type="checkbox" className="form-check-input" id="extra-bed" /> | |||
| <label className="form-check-label" htmlFor="extra-bed">Extra Kasur</label> | |||
| </div> | |||
| </div> | |||
| <div className="col-lg-12 col-md-12"> | |||
| <div className="form-group"> | |||
| <textarea name="notes" id="notes" cols="30" rows="4" placeholder="Catatan" className="form-control"></textarea> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div className="col-lg-6 col-md-6" style={{ marginTop: "50px" }}> | |||
| <div className="order-details"> | |||
| <h3 className="title">Total Pesanan</h3> | |||
| <div className="order-table table-responsive"> | |||
| <table className="table table-bordered"> | |||
| <thead> | |||
| <tr> | |||
| <th scope="col">Jenis Kamar</th> | |||
| <th scope="col">Total</th> | |||
| </tr> | |||
| </thead> | |||
| <tbody> | |||
| <tr> | |||
| <td className="product-name"> | |||
| <a href="#">Double Room</a> | |||
| </td> | |||
| <td className="product-total"> | |||
| <span className="subtotal-amount">Rp.180.000</span> | |||
| </td> | |||
| </tr> | |||
| <tr> | |||
| <td className="product-name"> | |||
| <a href="#">Extra Bed</a> | |||
| </td> | |||
| <td className="product-total"> | |||
| <span className="subtotal-amount">Rp.50.000</span> | |||
| </td> | |||
| </tr> | |||
| <tr> | |||
| <td className="product-name"> | |||
| <a href="#">Pajak 10%</a> | |||
| </td> | |||
| <td className="product-total"> | |||
| <span className="subtotal-amount">Rp.23.000</span> | |||
| </td> | |||
| </tr> | |||
| </tbody> | |||
| </table> | |||
| </div> | |||
| <a href="/review" className="btn btn-primary order-btn">Book</a> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </form> | |||
| </div> | |||
| </div> | |||
| <CheckoutContent checkoutItem={checkoutItem} backend={backend} /> | |||
| <Footer /> | |||
| </> | |||
| ) | |||
| } | |||
| export default Checkout; | |||
| export default Checkout; | |||
| export async function getServerSideProps(context) { | |||
| var {query} = context; | |||
| var checkoutItem = []; | |||
| const backend = process.env.BACKEND_SERVER_URI; | |||
| var res = await GetCheckoutItem.GetDetailKamar(query.s||0); | |||
| if (res["STATUS"] === 1) { | |||
| checkoutItem = res["DATA"]["jenisKamars"]; | |||
| } | |||
| return { | |||
| props: { checkoutItem, backend }, // will be passed to the page component as props | |||
| }; | |||
| } | |||
| @@ -6,12 +6,14 @@ import Facilities from "@/components/Home/Facilities"; | |||
| import PromoCarousel from "@/components/Home/PromoCarousel"; | |||
| import Footer from "@/components/_App/Footer"; | |||
| const Index = () => { | |||
| import GetKamar from "api/Kamar/kamar.js" | |||
| const Index = function ({ backend, kamar, ...props }) { | |||
| return ( | |||
| <> | |||
| <Navbar /> | |||
| {/* <PromoCarousel /> */} | |||
| <MainBanner /> | |||
| <MainBanner kamar={kamar} backend={backend} /> | |||
| <Facilities /> | |||
| <Nearby /> | |||
| <Footer /> | |||
| @@ -19,4 +21,33 @@ const Index = () => { | |||
| ) | |||
| } | |||
| export default Index; | |||
| export default Index; | |||
| export async function getServerSideProps() { | |||
| var kamar = []; | |||
| const backend = process.env.BACKEND_SERVER_URI; | |||
| // var { req, resp } = context; | |||
| // const cookies = new Cookies(req, resp); | |||
| // var user = ""; | |||
| // var userObj = (await cookies.get("user")) | |||
| // ? JSON.parse(await cookies.get("user")) | |||
| // : null; | |||
| // if (userObj) { | |||
| // let sessionId = userObj["partners_login_states"].filter(function (i) { | |||
| // return ( | |||
| // i.business_partner && i.business_partner.name.toUpperCase() == "YAMAHA" | |||
| // ); | |||
| // }); | |||
| // if (sessionId.length != 0) user = userObj["username"]; | |||
| // } | |||
| var res = await GetKamar.GetKamar(); | |||
| if (res["STATUS"] === 1) { | |||
| kamar = res["DATA"]["jenisKamars"]; | |||
| } | |||
| return { | |||
| props: { kamar, backend }, // will be passed to the page component as props | |||
| }; | |||
| } | |||
| @@ -1,157 +1,14 @@ | |||
| import React, { useState } from 'react'; | |||
| import Navbar from "@/components/_App/NavbarHome"; | |||
| import Footer from "@/components/_App/Footer"; | |||
| import PageBanner from '@/components/Common/PageBanner'; | |||
| import * as Icon from 'react-feather'; | |||
| import ReviewContent from '@/components/Booking/review'; | |||
| const Checkout = () => { | |||
| return ( | |||
| <> | |||
| <Navbar /><br /><br /> | |||
| <div className="checkout-area ptb-80"> | |||
| <div className="container"> | |||
| <div className="row"> | |||
| <div className="col-lg-12 col-md-12"> | |||
| <div className="user-actions"> | |||
| <h4><Icon.Edit width="50px" /> Mohon Periksa Ulang Pesanan Anda</h4><br /> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <form> | |||
| <div className="row"> | |||
| <div className="col-lg-12 col-md-6"> | |||
| <div className="billing-details"> | |||
| <div className="row"> | |||
| <div className="col-lg-4 col-md-6"> | |||
| <img style={{ borderRadius: "10px" }} src="https://origin.pegipegi.com/jalan/images/pictM/Y4/Y972594/Y972594002.jpg" width="100%" /> | |||
| </div> | |||
| <div className="col-lg-6 col-md-6"> | |||
| <h2 className="title">Catania Double Room</h2> | |||
| <div className="row"> | |||
| <div className="col-lg-3 col-md-6"> | |||
| <p>Fasilitas : </p> | |||
| </div> | |||
| </div> | |||
| <div className="row"> | |||
| <div className="col-lg-3 col-md-6"> | |||
| <p><Icon.Wifi /> Free Wifi</p> | |||
| </div> | |||
| <div className="col-lg-3 col-md-6"> | |||
| <p><Icon.Phone /> Telepon</p> | |||
| </div> | |||
| </div><br /><br /> | |||
| <div className="row"> | |||
| <div className="col-lg-3 col-md-6"> | |||
| <h6>Check In </h6> | |||
| <h6><p>25 Nov 2021</p></h6> | |||
| <h6><p>From 14:00</p></h6> | |||
| </div> | |||
| <div className="col-lg-3 col-md-6"> | |||
| <h6>Check Out </h6> | |||
| <h6><p>25 Nov 2021</p></h6> | |||
| <h6><p>Before 14:00</p></h6> | |||
| </div> | |||
| <div className="col-lg-3 col-md-6"> | |||
| <h6>Durasi Hari </h6> | |||
| <h6><p>1 Hari</p></h6> | |||
| </div> | |||
| <div className="col-lg-2 col-md-6"> | |||
| <h6>Pengunjung </h6> | |||
| <h6><p>1 Orang</p></h6> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div><br /> | |||
| </div> | |||
| </div> | |||
| <div className="col-lg-12 col-md-6" style={{ marginTop: "50px" }}> | |||
| <div className="billing-details"> | |||
| <h3 className="title">Informasi Pemesan</h3> | |||
| <div className="row"> | |||
| <div className="col-lg-7 col-md-4"> | |||
| <div className="row"> | |||
| <div className="col-lg-12 col-md-4"> | |||
| <h6>Nama Pemesan : Yusmardianto</h6> | |||
| </div> | |||
| <div className="col-lg-12 col-md-4"> | |||
| <h6>Nomer HP Pemesan : 087797315685 </h6> | |||
| </div> | |||
| <div className="col-lg-12 col-md-4"> | |||
| <h6>Alamat Email Pemesan : yusmardianto@thamrin.co.id</h6> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div className="col-lg-5 col-md-4"> | |||
| <div className="row"> | |||
| <div className="col-lg-12 col-md-4"> | |||
| <h6>Pesan Khusus : Yusmardianto</h6> | |||
| </div> | |||
| <div className="col-lg-7 col-md-4"> | |||
| <h6> </h6> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div className="col-lg-12 col-md-6" style={{ marginTop: "50px" }}> | |||
| <div className="order-details"> | |||
| <h3 className="title">Total Pesanan</h3> | |||
| <div className="order-table table-responsive"> | |||
| <table className="table table-bordered"> | |||
| <thead> | |||
| <tr> | |||
| <th scope="col">Jenis Kamar</th> | |||
| <th scope="col">Total</th> | |||
| </tr> | |||
| </thead> | |||
| <tbody> | |||
| <tr> | |||
| <td className="product-name"> | |||
| <a href="#">Double Room</a> | |||
| </td> | |||
| <td className="product-total"> | |||
| <span className="subtotal-amount">Rp.180.000</span> | |||
| </td> | |||
| </tr> | |||
| <tr> | |||
| <td className="product-name"> | |||
| <a href="#">Extra Bed</a> | |||
| </td> | |||
| <td className="product-total"> | |||
| <span className="subtotal-amount">Rp.50.000</span> | |||
| </td> | |||
| </tr> | |||
| <tr> | |||
| <td className="product-name"> | |||
| <a href="#">Pajak 10%</a> | |||
| </td> | |||
| <td className="product-total"> | |||
| <span className="subtotal-amount">Rp.23.000</span> | |||
| </td> | |||
| </tr> | |||
| </tbody> | |||
| </table> | |||
| </div> | |||
| <a href="#" className="btn btn-primary order-btn">Bayar Pesanan</a> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </form> | |||
| </div> | |||
| </div> | |||
| <ReviewContent /> | |||
| <Footer /> | |||
| </> | |||
| @@ -2,6 +2,24 @@ | |||
| # yarn lockfile v1 | |||
| "@apollo/client@^3.3.11": | |||
| version "3.5.5" | |||
| resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.5.5.tgz#ce331403ee5f099e595430890f9b510c8435c932" | |||
| integrity sha512-EiQstc8VjeqosS2h21bwY9fhL3MCRRmACtRrRh2KYpp9vkDyx5pUfMnN3swgiBVYw1twdXg9jHmyZa1gZlvlog== | |||
| dependencies: | |||
| "@graphql-typed-document-node/core" "^3.0.0" | |||
| "@wry/context" "^0.6.0" | |||
| "@wry/equality" "^0.5.0" | |||
| "@wry/trie" "^0.3.0" | |||
| graphql-tag "^2.12.3" | |||
| hoist-non-react-statics "^3.3.2" | |||
| optimism "^0.16.1" | |||
| prop-types "^15.7.2" | |||
| symbol-observable "^4.0.0" | |||
| ts-invariant "^0.9.0" | |||
| tslib "^2.3.0" | |||
| zen-observable-ts "^1.2.0" | |||
| "@babel/code-frame@7.12.11": | |||
| version "7.12.11" | |||
| resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" | |||
| @@ -243,6 +261,11 @@ | |||
| resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46" | |||
| integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA== | |||
| "@graphql-typed-document-node/core@^3.0.0": | |||
| version "3.1.1" | |||
| resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.1.1.tgz#076d78ce99822258cf813ecc1e7fa460fa74d052" | |||
| integrity sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg== | |||
| "@hapi/accept@5.0.2": | |||
| version "5.0.2" | |||
| resolved "https://registry.yarnpkg.com/@hapi/accept/-/accept-5.0.2.tgz#ab7043b037e68b722f93f376afb05e85c0699523" | |||
| @@ -452,6 +475,27 @@ | |||
| resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" | |||
| integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== | |||
| "@wry/context@^0.6.0": | |||
| version "0.6.1" | |||
| resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.6.1.tgz#c3c29c0ad622adb00f6a53303c4f965ee06ebeb2" | |||
| integrity sha512-LOmVnY1iTU2D8tv4Xf6MVMZZ+juIJ87Kt/plMijjN20NMAXGmH4u8bS1t0uT74cZ5gwpocYueV58YwyI8y+GKw== | |||
| dependencies: | |||
| tslib "^2.3.0" | |||
| "@wry/equality@^0.5.0": | |||
| version "0.5.2" | |||
| resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.5.2.tgz#72c8a7a7d884dff30b612f4f8464eba26c080e73" | |||
| integrity sha512-oVMxbUXL48EV/C0/M7gLVsoK6qRHPS85x8zECofEZOVvxGmIPLA9o5Z27cc2PoAyZz1S2VoM2A7FLAnpfGlneA== | |||
| dependencies: | |||
| tslib "^2.3.0" | |||
| "@wry/trie@^0.3.0": | |||
| version "0.3.1" | |||
| resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.3.1.tgz#2279b790f15032f8bcea7fc944d27988e5b3b139" | |||
| integrity sha512-WwB53ikYudh9pIorgxrkHKrQZcCqNM/Q/bDzZBffEaGUKGuHrRb3zZUT9Sh2qw9yogC7SsdRmQ1ER0pqvd3bfw== | |||
| dependencies: | |||
| tslib "^2.3.0" | |||
| abab@^1.0.0: | |||
| version "1.0.4" | |||
| resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e" | |||
| @@ -1136,6 +1180,13 @@ create-react-class@^15.6.2: | |||
| loose-envify "^1.3.1" | |||
| object-assign "^4.1.1" | |||
| cross-fetch@^3.1.4: | |||
| version "3.1.4" | |||
| resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.4.tgz#9723f3a3a247bf8b89039f3a380a9244e8fa2f39" | |||
| integrity sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ== | |||
| dependencies: | |||
| node-fetch "2.6.1" | |||
| crypto-browserify@3.12.0, crypto-browserify@^3.11.0: | |||
| version "3.12.0" | |||
| resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" | |||
| @@ -1746,6 +1797,18 @@ graceful-fs@^4.1.2, graceful-fs@^4.1.6: | |||
| resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" | |||
| integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== | |||
| graphql-tag@^2.12.3: | |||
| version "2.12.6" | |||
| resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1" | |||
| integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== | |||
| dependencies: | |||
| tslib "^2.1.0" | |||
| graphql@^16.0.1: | |||
| version "16.0.1" | |||
| resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.0.1.tgz#93a13cd4e0e38ca8d0832e79614c8578bfd34f10" | |||
| integrity sha512-oPvCuu6dlLdiz8gZupJ47o1clgb72r1u8NDBcQYjcV6G/iEdmE11B1bBlkhXRvV0LisP/SXRFP7tT6AgaTjpzg== | |||
| har-schema@^2.0.0: | |||
| version "2.0.0" | |||
| resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" | |||
| @@ -2583,6 +2646,14 @@ object.assign@^4.1.2: | |||
| has-symbols "^1.0.1" | |||
| object-keys "^1.1.1" | |||
| optimism@^0.16.1: | |||
| version "0.16.1" | |||
| resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.16.1.tgz#7c8efc1f3179f18307b887e18c15c5b7133f6e7d" | |||
| integrity sha512-64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg== | |||
| dependencies: | |||
| "@wry/context" "^0.6.0" | |||
| "@wry/trie" "^0.3.0" | |||
| optionator@^0.8.1: | |||
| version "0.8.3" | |||
| resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" | |||
| @@ -2776,6 +2847,11 @@ process@0.11.10, process@^0.11.10: | |||
| resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" | |||
| integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= | |||
| promise-polyfill@^6.0.2: | |||
| version "6.1.0" | |||
| resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-6.1.0.tgz#dfa96943ea9c121fca4de9b5868cb39d3472e057" | |||
| integrity sha1-36lpQ+qcEh/KTem1hoyznTRy4Fc= | |||
| prop-types@15.7.2, prop-types@^15.5.0, prop-types@^15.5.10, prop-types@^15.5.8, prop-types@^15.6.2, prop-types@^15.7.2: | |||
| version "15.7.2" | |||
| resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" | |||
| @@ -2915,6 +2991,13 @@ react-masonry-component@^6.2.1: | |||
| masonry-layout "^4.2.0" | |||
| prop-types "^15.5.8" | |||
| react-number-format@^4.8.0: | |||
| version "4.8.0" | |||
| resolved "https://registry.yarnpkg.com/react-number-format/-/react-number-format-4.8.0.tgz#2ec5efbe7f45c4b1b8951d34774f30e4c69040a4" | |||
| integrity sha512-oGGiQpqzvKTR5PD2/AJbyUsci8jyupaoKxpuSPevjpWHMhFkUtmo390t+EIpJOgnuAHZogLu6PHiXgb/OXETKA== | |||
| dependencies: | |||
| prop-types "^15.7.2" | |||
| react-owl-carousel3@^2.2.5: | |||
| version "2.2.5" | |||
| resolved "https://registry.yarnpkg.com/react-owl-carousel3/-/react-owl-carousel3-2.2.5.tgz#0083128cdb44758fdfb1a8b6054e2df2a66a3c9e" | |||
| @@ -3437,11 +3520,24 @@ sweetalert2@^10.15.5: | |||
| resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-10.16.9.tgz#8ed86f2fa811a136667a48357e204348705be8c9" | |||
| integrity sha512-oNe+md5tmmS3fGfVHa7gVPlun7Td2oANSacnZCeghnrr3OHBi6UPVPU+GFrymwaDqwQspACilLRmRnM7aTjNPA== | |||
| sweetalert@^2.1.2: | |||
| version "2.1.2" | |||
| resolved "https://registry.yarnpkg.com/sweetalert/-/sweetalert-2.1.2.tgz#010baaa80d0dbdc86f96bfcaa96b490728594b79" | |||
| integrity sha512-iWx7X4anRBNDa/a+AdTmvAzQtkN1+s4j/JJRWlHpYE8Qimkohs8/XnFcWeYHH2lMA8LRCa5tj2d244If3S/hzA== | |||
| dependencies: | |||
| es6-object-assign "^1.1.0" | |||
| promise-polyfill "^6.0.2" | |||
| symbol-observable@^1.0.3: | |||
| version "1.2.0" | |||
| resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" | |||
| integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== | |||
| symbol-observable@^4.0.0: | |||
| version "4.0.0" | |||
| resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-4.0.0.tgz#5b425f192279e87f2f9b937ac8540d1984b39205" | |||
| integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== | |||
| "symbol-tree@>= 3.1.0 < 4.0.0": | |||
| version "3.2.4" | |||
| resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" | |||
| @@ -3511,11 +3607,23 @@ trim-right@^1.0.1: | |||
| resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" | |||
| integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= | |||
| ts-invariant@^0.9.0: | |||
| version "0.9.3" | |||
| resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.9.3.tgz#4b41e0a80c2530a56ce4b8fd4e14183aaac0efa8" | |||
| integrity sha512-HinBlTbFslQI0OHP07JLsSXPibSegec6r9ai5xxq/qHYCsIQbzpymLpDhAUsnXcSrDEcd0L62L8vsOEdzM0qlA== | |||
| dependencies: | |||
| tslib "^2.1.0" | |||
| ts-pnp@^1.1.6: | |||
| version "1.2.0" | |||
| resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" | |||
| integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== | |||
| tslib@^2.1.0, tslib@^2.3.0: | |||
| version "2.3.1" | |||
| resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" | |||
| integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== | |||
| tty-browserify@0.0.0: | |||
| version "0.0.0" | |||
| resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" | |||
| @@ -3740,3 +3848,15 @@ yocto-queue@^0.1.0: | |||
| version "0.1.0" | |||
| resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" | |||
| integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== | |||
| zen-observable-ts@^1.2.0: | |||
| version "1.2.3" | |||
| resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-1.2.3.tgz#c2f5ccebe812faf0cfcde547e6004f65b1a6d769" | |||
| integrity sha512-hc/TGiPkAWpByykMwDcem3SdUgA4We+0Qb36bItSuJC9xD0XVBZoFHYoadAomDSNf64CG8Ydj0Qb8Od8BUWz5g== | |||
| dependencies: | |||
| zen-observable "0.8.15" | |||
| zen-observable@0.8.15: | |||
| version "0.8.15" | |||
| resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" | |||
| integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== | |||