diff --git a/dashboard/src/layouts/components/Footer.jsx b/dashboard/src/layouts/components/Footer.jsx index 8f79f23..12b571d 100644 --- a/dashboard/src/layouts/components/Footer.jsx +++ b/dashboard/src/layouts/components/Footer.jsx @@ -4,6 +4,7 @@ import { NavLink, useNavigate } from "react-router-dom"; import Container from "@/components/Shared/Container"; import getNavLinks from "@/navLinks"; import { useCartStore } from "@/stores/useCartStore"; +import { isHotelAppInstalled } from "@/lib/utils"; const Footer = () => { const [navLinks, setNavLinks] = useState([]); @@ -26,33 +27,72 @@ const Footer = () => { } }; + const handleHotelClick = async (e) => { + e.preventDefault(); + try { + const installed = await isHotelAppInstalled(); + if (installed) { + window.location.href = "/app/hotel-dashboard"; + } else { + alert("Havano Hotel Management app is not installed."); + } + } catch (error) { + console.error("Error checking hotel app:", error); + alert("Unable to open Hotel Dashboard. Please contact your administrator."); + } + }; + return (

- {/* App Icon - Link to main Frappe app */} - - + {/* App Icon - Link to main Frappe app */} + - - - + + + + + {/* Hotel Icon - Link to Hotel Dashboard */} + + + + + +
{navLinks.map((link) => { if (!link.active) { return ( diff --git a/dashboard/src/lib/utils.js b/dashboard/src/lib/utils.js index 08a7d96..15f5cde 100644 --- a/dashboard/src/lib/utils.js +++ b/dashboard/src/lib/utils.js @@ -190,6 +190,27 @@ export async function getNumberOfItems(item_group = null) { } } +export async function isHotelAppInstalled() { + try { + const { message } = await call.get( + "havano_restaurant_pos.api.is_hotel_app_installed" + ); + + if (typeof message === "boolean") { + return message; + } + + if (message && typeof message === "object" && "installed" in message) { + return Boolean(message.installed); + } + + return false; + } catch (error) { + console.error("Error checking Havano Hotel app installation:", error); + return false; + } +} + export async function getNumberOfOrders(menuItem) { if (!menuItem) { console.warn("getNumberOfOrders called without a menu item identifier."); diff --git a/dashboard/src/pages/TableDetails.jsx b/dashboard/src/pages/TableDetails.jsx index 9c5d73a..29eecc2 100644 --- a/dashboard/src/pages/TableDetails.jsx +++ b/dashboard/src/pages/TableDetails.jsx @@ -37,12 +37,19 @@ import { } from "@/components/ui/table"; import { Textarea } from "@/components/ui/textarea"; import { Combobox } from "@/components/ui/combobox"; +import { + Dialog, + DialogContent, + DialogDescription, + DialogFooter, + DialogHeader, + DialogTitle, +} from "@/components/ui/dialog"; import { db } from "@/lib/frappeClient"; -import { formatCurrency, markTableAsPaid, getCustomers, getDefaultCustomer, processTablePayment } from "@/lib/utils"; +import { formatCurrency, markTableAsPaid, getCustomers, getDefaultCustomer, processTablePayment, getCurrentUser } from "@/lib/utils"; import { useCartStore } from "@/stores/useCartStore"; import { useOrderStore } from "@/stores/useOrderStore"; import { useTableStore } from "@/stores/useTableStore"; -import { useWaiterStore } from "@/stores/useWaiterStore"; import { ta } from "zod/v4/locales"; const TableDetails = () => { @@ -53,6 +60,9 @@ const TableDetails = () => { const [customers, setCustomers] = useState([]); const [loadingCustomers, setLoadingCustomers] = useState(true); const [isPaymentDialogOpen, setIsPaymentDialogOpen] = useState(false); + const [isWaiterNotConfiguredDialogOpen, setIsWaiterNotConfiguredDialogOpen] = useState(false); + const [waiters, setWaiters] = useState([]); + const [loadingWaiters, setLoadingWaiters] = useState(false); const navigate = useNavigate(); const { id } = useParams(); const { register, setValue, watch } = useForm({ @@ -62,8 +72,6 @@ const TableDetails = () => { remarks: "", }, }); - const { waiters, loadingWaiters, errorWaiters, fetchWaiters } = - useWaiterStore(); const { tableOrders, @@ -72,7 +80,6 @@ const TableDetails = () => { fetchTableOrders, } = useOrderStore(); - console.log("tableOrders", tableOrders); const { tableDetails, loadingTableDetails, @@ -91,8 +98,7 @@ const TableDetails = () => { useEffect(() => { if (!id) return; fetchTableOrders(id); - fetchWaiters(); - }, [id, fetchTableOrders, fetchWaiters]); + }, [id, fetchTableOrders]); useEffect(() => { const fetchCustomersData = async () => { @@ -156,10 +162,48 @@ const TableDetails = () => { }, [tableDetails, customers, loadingCustomers, setValue]); useEffect(() => { - if (tableDetails?.assigned_waiter) { - setValue("waiter", tableDetails.assigned_waiter); - } else { - setValue("waiter", ""); + const setWaiterFromUser = async () => { + // Always get waiter from logged in user, regardless of table status + setLoadingWaiters(true); + try { + const currentUser = await getCurrentUser(); + if (currentUser && currentUser.name) { + // Get waiter name from HA Waiter doctype where user matches logged in user + const waiterDocs = await db.getDocList("HA Waiter", { + fields: ["name", "user", "waiter_name"], + filters: { + user: currentUser.name + } + }); + if (waiterDocs && waiterDocs.length > 0) { + // Set the waiter in the select list (only the waiter for logged in user) + setWaiters(waiterDocs); + // Use the name field from HA Waiter doctype (document name, not waiter_name) + // This matches the SelectItem value which uses waiter.name + const waiterName = waiterDocs[0].name; + setValue("waiter", waiterName, { shouldValidate: true }); + } else { + // No waiter configured for this user + setWaiters([]); + setValue("waiter", "", { shouldValidate: true }); + // Show popup message + setIsWaiterNotConfiguredDialogOpen(true); + } + } + } catch (err) { + console.error("Error getting waiter from user:", err); + setWaiters([]); + setValue("waiter", "", { shouldValidate: true }); + // Show popup message on error + setIsWaiterNotConfiguredDialogOpen(true); + } finally { + setLoadingWaiters(false); + } + }; + + // Set waiter even if table is occupied + if (tableDetails) { + setWaiterFromUser(); } }, [tableDetails, setValue]); @@ -213,6 +257,27 @@ const TableDetails = () => { const waiter = watch("waiter"); if (!waiter) { + // Check if user is configured as waiter + try { + const currentUser = await getCurrentUser(); + if (currentUser && currentUser.name) { + const waiters = await db.getDocList("HA Waiter", { + fields: ["name", "user"], + filters: { + user: currentUser.name + } + }); + + if (!waiters || waiters.length === 0) { + // User is not configured as waiter, show popup + setIsWaiterNotConfiguredDialogOpen(true); + return; + } + } + } catch (err) { + console.error("Error checking waiter configuration:", err); + } + toast.error("Select a waiter before placing an order."); return; } @@ -420,11 +485,11 @@ const TableDetails = () => {
- {errorWaiters && ( -

{errorWaiters}

- )}
@@ -566,6 +628,26 @@ const TableDetails = () => { transactionDoctype={null} transactionName={null} /> + + + + Waiter Not Configured + + No available waiter, please contact admin. + + + + + + + ); }; diff --git a/havano_restaurant_pos/api.py b/havano_restaurant_pos/api.py index 5740c4f..a7090f0 100644 --- a/havano_restaurant_pos/api.py +++ b/havano_restaurant_pos/api.py @@ -70,6 +70,28 @@ def get_default_customer(): return None +def get_user_mapping_defaults(): + """Get cost_center and default_warehouse from HA POS Settings User Mapping for logged in user""" + user = frappe.session.user + + try: + settings = frappe.get_single("HA POS Settings") + if settings.user_mapping: + for row in settings.user_mapping: + if row.user == user: + return { + "cost_center": row.cost_center if hasattr(row, 'cost_center') else None, + "default_warehouse": row.default_warehouse if hasattr(row, 'default_warehouse') else None, + } + except Exception as e: + frappe.log_error(f"Error getting user mapping defaults: {str(e)}", "Get User Mapping Defaults Error") + + return { + "cost_center": None, + "default_warehouse": None, + } + + @frappe.whitelist() def create_customer(customer_name, mobile_no=None): """Create a new customer. @@ -96,6 +118,9 @@ def create_customer(customer_name, mobile_no=None): "customer": existing, } + # Get user mapping defaults (cost_center and default_warehouse) + user_defaults = get_user_mapping_defaults() + # Create new customer customer = frappe.new_doc("Customer") customer.customer_name = customer_name.strip() @@ -108,6 +133,25 @@ def create_customer(customer_name, mobile_no=None): frappe.db.get_single_value("Selling Settings", "territory") or "All Territories" ) + + # Set custom cost_center and default_warehouse if available from user mapping + customer_meta = frappe.get_meta("Customer") + + if user_defaults.get("cost_center"): + cost_center = user_defaults.get("cost_center") + # Try custom field first, then regular field + if customer_meta.has_field("custom_cost_center"): + customer.custom_cost_center = cost_center + elif customer_meta.has_field("cost_center"): + customer.cost_center = cost_center + + if user_defaults.get("default_warehouse"): + default_warehouse = user_defaults.get("default_warehouse") + # Try custom field first, then regular field + if customer_meta.has_field("custom_warehouse"): + customer.custom_warehouse = default_warehouse + elif customer_meta.has_field("warehouse"): + customer.default_warehouse = default_warehouse customer.insert(ignore_permissions=True) @@ -202,6 +246,25 @@ def get_price_lists(): return price_lists +@frappe.whitelist() +def is_hotel_app_installed(): + """ + Check if Havano Hotel Management app is installed. + Returns simple JSON so it is easy to consume from the POS dashboard. + """ + try: + installed = "havano_hotel_management" in frappe.get_installed_apps() + return {"installed": installed} + except Exception as e: + title = "Error checking Havano Hotel Management installation" + frappe.log_error(frappe.get_traceback(), title) + # Fail-safe: report not installed on error + return { + "installed": False, + "error": str(e), + } + + @frappe.whitelist() def search_items(search_term=None): """Search for items by name or code""" @@ -1219,7 +1282,11 @@ def safe(value): order.order_type = safe(payload.get("order_type")) order.customer_name = safe(payload.get("customer_name")) order.table = safe(payload.get("table")) - order.waiter = safe(payload.get("waiter")) + # Set waiter from payload, or auto-detect from logged in user if not provided + waiter_from_payload = safe(payload.get("waiter")) + if not waiter_from_payload: + waiter_from_payload = get_waiter_from_user() + order.waiter = waiter_from_payload order.order_status = "Closed" for item in payload.get("order_items", []): order.append( @@ -1609,7 +1676,11 @@ def safe(value): ha_order.order_type = safe(order_type) or "Take Away" ha_order.customer_name = safe(customer_name) or customer ha_order.table = safe(table) or "" - ha_order.waiter = safe(waiter) or "" + # Set waiter from parameter, or auto-detect from logged in user if not provided + waiter_from_param = safe(waiter) or "" + if not waiter_from_param: + waiter_from_param = get_waiter_from_user() + ha_order.waiter = waiter_from_param ha_order.order_status = "Open" ha_order.sales_invoice = sales_invoice_name @@ -1836,7 +1907,11 @@ def safe(value): ha_order.order_type = safe(order_type) or "Take Away" ha_order.customer_name = safe(customer_name) or customer ha_order.table = safe(table) or "" - ha_order.waiter = safe(waiter) or "" + # Set waiter from parameter, or auto-detect from logged in user if not provided + waiter_from_param = safe(waiter) or "" + if not waiter_from_param: + waiter_from_param = get_waiter_from_user() + ha_order.waiter = waiter_from_param ha_order.order_status = "Open" ha_order.sales_invoice = doc.name # Link to Sales Invoice @@ -3082,6 +3157,22 @@ def is_payment_method_credit(payment_method): return False +def get_waiter_from_user(user=None): + """Get HA Waiter name from logged in user""" + if not user: + user = frappe.session.user + + if not user or user == "Guest": + return None + + try: + waiter_name = frappe.db.get_value("HA Waiter", {"user": user}, "name") + return waiter_name + except Exception as e: + frappe.log_error(f"Error getting waiter from user {user}: {str(e)}") + return None + + @frappe.whitelist() def process_multi_currency_payment_background(customer, payments): """Background job to process multi-currency payment entries. @@ -4562,34 +4653,6 @@ def process_payment_entries( order_id = None if order_payload: try: - # Decide whether this is a credit payment (single or multi-payment). - # For credit payments we keep HA Order "Open" (not submitted). - def is_credit_payment(): - try: - # Multi-currency: {key: {mode, currency, amount}} - if multi_currency_payments and isinstance(multi_currency_payments, dict): - for _, info in multi_currency_payments.items(): - if isinstance(info, dict) and float(info.get("amount", 0) or 0) > 0: - if is_payment_method_credit(info.get("mode")): - return True - return False - - # Breakdown: [{"payment_method": "...", "amount": ...}, ...] - if payment_breakdown and isinstance(payment_breakdown, list): - for p in payment_breakdown: - if isinstance(p, dict) and float(p.get("amount", 0) or 0) > 0: - if is_payment_method_credit(p.get("payment_method")): - return True - return False - - # Single method - return bool(is_payment_method_credit(payment_method)) - except Exception: - # Be safe: default to non-credit if detection fails - return False - - credit_payment = is_credit_payment() - def safe(value): if not value: return "" @@ -4608,9 +4671,22 @@ def safe(value): ) if existing_order: - # Order already exists, skip creation + # Order already exists, update it to closed and submit if needed order_id = existing_order - frappe.logger().info(f"HA Order {order_id} already exists for invoice {invoice_name}, skipping creation") + try: + existing_order_doc = frappe.get_doc("HA Order", existing_order) + if existing_order_doc.order_status != "Closed" or existing_order_doc.docstatus == 0: + existing_order_doc.order_status = "Closed" + if existing_order_doc.docstatus == 0: + existing_order_doc.submit() + else: + existing_order_doc.save(ignore_permissions=True) + frappe.logger().info(f"Updated existing HA Order {order_id} to Closed and submitted for invoice {invoice_name}") + else: + frappe.logger().info(f"HA Order {order_id} already exists and is closed for invoice {invoice_name}") + except Exception as update_error: + frappe.log_error(f"Error updating existing HA Order {order_id}: {str(update_error)}\n{frappe.get_traceback()}", "Process Payment Entries - Update Existing Order Error") + frappe.logger().info(f"HA Order {order_id} already exists for invoice {invoice_name}, but update failed") else: # Create new order order = frappe.new_doc("HA Order") @@ -4640,8 +4716,13 @@ def safe(value): order.order_type = safe(order_payload.get("order_type")) order.customer_name = safe(order_payload.get("customer_name") or customer or "") order.table = safe(order_payload.get("table")) - order.waiter = safe(order_payload.get("waiter")) - order.order_status = "Open" if credit_payment else "Closed" + # Set waiter from payload, or auto-detect from logged in user if not provided + waiter_from_payload = safe(order_payload.get("waiter")) + if not waiter_from_payload: + waiter_from_payload = get_waiter_from_user() + order.waiter = waiter_from_payload + # For is_credit payment method, close and submit the order + order.order_status = "Closed" # Link to sales invoice to prevent duplicates (if field exists) if hasattr(order, 'sales_invoice'): # Only link if the invoice record exists (avoid link validation issues) @@ -4699,6 +4780,18 @@ def safe(value): if match: existing_order_name = match.group(1) order_id = existing_order_name + # Update existing order to closed and submit if needed + try: + existing_order_doc = frappe.get_doc("HA Order", existing_order_name) + if existing_order_doc.order_status != "Closed" or existing_order_doc.docstatus == 0: + existing_order_doc.order_status = "Closed" + if existing_order_doc.docstatus == 0: + existing_order_doc.submit() + else: + existing_order_doc.save(ignore_permissions=True) + frappe.logger().info(f"Updated existing HA Order {order_id} to Closed and submitted (from duplicate error)") + except Exception as update_error: + frappe.log_error(f"Error updating existing HA Order {order_id} from duplicate error: {str(update_error)}", "Process Payment Entries - Update Duplicate Order Error") frappe.logger().info(f"HA Order {order_id} already exists (found from error), using existing order") else: frappe.log_error( diff --git a/havano_restaurant_pos/commands.py b/havano_restaurant_pos/commands.py new file mode 100644 index 0000000..b46d3ca --- /dev/null +++ b/havano_restaurant_pos/commands.py @@ -0,0 +1,2 @@ +# Commands for havano_restaurant_pos app +# This file is required by Frappe's bench helper diff --git a/havano_restaurant_pos/havano_restaurant_pos/doctype/ha_user_mapping/ha_user_mapping.json b/havano_restaurant_pos/havano_restaurant_pos/doctype/ha_user_mapping/ha_user_mapping.json index 321b864..f54fe06 100644 --- a/havano_restaurant_pos/havano_restaurant_pos/doctype/ha_user_mapping/ha_user_mapping.json +++ b/havano_restaurant_pos/havano_restaurant_pos/doctype/ha_user_mapping/ha_user_mapping.json @@ -10,7 +10,8 @@ "type", "company", "cost_center", - "price_list" + "price_list", + "default_warehouse" ], "fields": [ { @@ -48,13 +49,21 @@ "label": "Price List", "options": "Price List", "reqd": 1 + }, + { + "fieldname": "default_warehouse", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Default Warehouse", + "options": "Warehouse", + "reqd": 1 } ], "grid_page_length": 50, "index_web_pages_for_search": 1, "istable": 1, "links": [], - "modified": "2026-01-15 13:09:53.312862", + "modified": "2026-01-25 02:58:43.040182", "modified_by": "Administrator", "module": "Havano Restaurant Pos", "name": "Ha User Mapping", diff --git a/havano_restaurant_pos/public/dashboard/assets/index-BGuEHsV2.js b/havano_restaurant_pos/public/dashboard/assets/index-BGuEHsV2.js new file mode 100644 index 0000000..069f7f7 --- /dev/null +++ b/havano_restaurant_pos/public/dashboard/assets/index-BGuEHsV2.js @@ -0,0 +1,213 @@ +var J_=Object.defineProperty,eC=Object.defineProperties;var tC=Object.getOwnPropertyDescriptors;var gd=Object.getOwnPropertySymbols;var Rb=Object.prototype.hasOwnProperty,Ab=Object.prototype.propertyIsEnumerable;var Wi=(e,n)=>(n=Symbol[e])?n:Symbol.for("Symbol."+e),nC=e=>{throw TypeError(e)};var Mb=(e,n,a)=>n in e?J_(e,n,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[n]=a,_=(e,n)=>{for(var a in n||(n={}))Rb.call(n,a)&&Mb(e,a,n[a]);if(gd)for(var a of gd(n))Ab.call(n,a)&&Mb(e,a,n[a]);return e},ee=(e,n)=>eC(e,tC(n));var Ce=(e,n)=>{var a={};for(var o in e)Rb.call(e,o)&&n.indexOf(o)<0&&(a[o]=e[o]);if(e!=null&&gd)for(var o of gd(e))n.indexOf(o)<0&&Ab.call(e,o)&&(a[o]=e[o]);return a};var rC=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports);var ve=(e,n,a)=>new Promise((o,i)=>{var l=h=>{try{d(a.next(h))}catch(f){i(f)}},u=h=>{try{d(a.throw(h))}catch(f){i(f)}},d=h=>h.done?o(h.value):Promise.resolve(h.value).then(l,u);d((a=a.apply(e,n)).next())}),Ys=function(e,n){this[0]=e,this[1]=n},vm=(e,n,a)=>{var o=(u,d,h,f)=>{try{var p=a[u](d),y=(d=p.value)instanceof Ys,x=p.done;Promise.resolve(y?d[0]:d).then(w=>y?o(u==="return"?u:"next",d[1]?{done:w.done,value:w.value}:w,h,f):h({value:w,done:x})).catch(w=>o("throw",w,h,f))}catch(w){f(w)}},i=u=>l[u]=d=>new Promise((h,f)=>o(u,d,h,f)),l={};return a=a.apply(e,n),l[Wi("asyncIterator")]=()=>l,i("next"),i("throw"),i("return"),l},bm=e=>{var n=e[Wi("asyncIterator")],a=!1,o,i={};return n==null?(n=e[Wi("iterator")](),o=l=>i[l]=u=>n[l](u)):(n=n.call(e),o=l=>i[l]=u=>{if(a){if(a=!1,l==="throw")throw u;return u}return a=!0,{done:!1,value:new Ys(new Promise(d=>{var h=n[l](u);h instanceof Object||nC("Object expected"),d(h)}),1)}}),i[Wi("iterator")]=()=>i,o("next"),"throw"in n?o("throw"):i.throw=l=>{throw l},"return"in n&&o("return"),i},jb=(e,n,a)=>(n=e[Wi("asyncIterator")])?n.call(e):(e=e[Wi("iterator")](),n={},a=(o,i)=>(i=e[o])&&(n[o]=l=>new Promise((u,d,h)=>(l=i.call(e,l),h=l.done,Promise.resolve(l.value).then(f=>u({value:f,done:h}),d)))),a("next"),a("return"),n);var fL=rC(vt=>{function aC(e,n){for(var a=0;ao[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))o(i);new MutationObserver(i=>{for(const l of i)if(l.type==="childList")for(const u of l.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&o(u)}).observe(document,{childList:!0,subtree:!0});function a(i){const l={};return i.integrity&&(l.integrity=i.integrity),i.referrerPolicy&&(l.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?l.credentials="include":i.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function o(i){if(i.ep)return;i.ep=!0;const l=a(i);fetch(i.href,l)}})();var oC=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function kx(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var xm={exports:{}},_c={};var kb;function sC(){if(kb)return _c;kb=1;var e=Symbol.for("react.transitional.element"),n=Symbol.for("react.fragment");function a(o,i,l){var u=null;if(l!==void 0&&(u=""+l),i.key!==void 0&&(u=""+i.key),"key"in i){l={};for(var d in i)d!=="key"&&(l[d]=i[d])}else l=i;return i=l.ref,{$$typeof:e,type:o,key:u,ref:i!==void 0?i:null,props:l}}return _c.Fragment=n,_c.jsx=a,_c.jsxs=a,_c}var Lb;function iC(){return Lb||(Lb=1,xm.exports=sC()),xm.exports}var g=iC(),wm={exports:{}},_t={};var zb;function lC(){if(zb)return _t;zb=1;var e=Symbol.for("react.transitional.element"),n=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),l=Symbol.for("react.consumer"),u=Symbol.for("react.context"),d=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),f=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),y=Symbol.iterator;function x(j){return j===null||typeof j!="object"?null:(j=y&&j[y]||j["@@iterator"],typeof j=="function"?j:null)}var w={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},S=Object.assign,N={};function T(j,ae,me){this.props=j,this.context=ae,this.refs=N,this.updater=me||w}T.prototype.isReactComponent={},T.prototype.setState=function(j,ae){if(typeof j!="object"&&typeof j!="function"&&j!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,j,ae,"setState")},T.prototype.forceUpdate=function(j){this.updater.enqueueForceUpdate(this,j,"forceUpdate")};function L(){}L.prototype=T.prototype;function k(j,ae,me){this.props=j,this.context=ae,this.refs=N,this.updater=me||w}var z=k.prototype=new L;z.constructor=k,S(z,T.prototype),z.isPureReactComponent=!0;var F=Array.isArray,M={H:null,A:null,T:null,S:null,V:null},O=Object.prototype.hasOwnProperty;function A(j,ae,me,V,ue,Ee){return me=Ee.ref,{$$typeof:e,type:j,key:ae,ref:me!==void 0?me:null,props:Ee}}function H(j,ae){return A(j.type,ae,void 0,void 0,void 0,j.props)}function q(j){return typeof j=="object"&&j!==null&&j.$$typeof===e}function ie(j){var ae={"=":"=0",":":"=2"};return"$"+j.replace(/[=:]/g,function(me){return ae[me]})}var oe=/\/+/g;function Y(j,ae){return typeof j=="object"&&j!==null&&j.key!=null?ie(""+j.key):ae.toString(36)}function X(){}function ge(j){switch(j.status){case"fulfilled":return j.value;case"rejected":throw j.reason;default:switch(typeof j.status=="string"?j.then(X,X):(j.status="pending",j.then(function(ae){j.status==="pending"&&(j.status="fulfilled",j.value=ae)},function(ae){j.status==="pending"&&(j.status="rejected",j.reason=ae)})),j.status){case"fulfilled":return j.value;case"rejected":throw j.reason}}throw j}function ne(j,ae,me,V,ue){var Ee=typeof j;(Ee==="undefined"||Ee==="boolean")&&(j=null);var Se=!1;if(j===null)Se=!0;else switch(Ee){case"bigint":case"string":case"number":Se=!0;break;case"object":switch(j.$$typeof){case e:case n:Se=!0;break;case p:return Se=j._init,ne(Se(j._payload),ae,me,V,ue)}}if(Se)return ue=ue(j),Se=V===""?"."+Y(j,0):V,F(ue)?(me="",Se!=null&&(me=Se.replace(oe,"$&/")+"/"),ne(ue,ae,me,"",function(Ae){return Ae})):ue!=null&&(q(ue)&&(ue=H(ue,me+(ue.key==null||j&&j.key===ue.key?"":(""+ue.key).replace(oe,"$&/")+"/")+Se)),ae.push(ue)),1;Se=0;var je=V===""?".":V+":";if(F(j))for(var te=0;te>>1,j=U[_e];if(0>>1;_ei(V,G))uei(Ee,V)?(U[_e]=Ee,U[ue]=G,_e=ue):(U[_e]=V,U[me]=G,_e=me);else if(uei(Ee,G))U[_e]=Ee,U[ue]=G,_e=ue;else break e}}return re}function i(U,re){var G=U.sortIndex-re.sortIndex;return G!==0?G:U.id-re.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var l=performance;e.unstable_now=function(){return l.now()}}else{var u=Date,d=u.now();e.unstable_now=function(){return u.now()-d}}var h=[],f=[],p=1,y=null,x=3,w=!1,S=!1,N=!1,T=!1,L=typeof setTimeout=="function"?setTimeout:null,k=typeof clearTimeout=="function"?clearTimeout:null,z=typeof setImmediate!="undefined"?setImmediate:null;function F(U){for(var re=a(f);re!==null;){if(re.callback===null)o(f);else if(re.startTime<=U)o(f),re.sortIndex=re.expirationTime,n(h,re);else break;re=a(f)}}function M(U){if(N=!1,F(U),!S)if(a(h)!==null)S=!0,O||(O=!0,Y());else{var re=a(f);re!==null&&ne(M,re.startTime-U)}}var O=!1,A=-1,H=5,q=-1;function ie(){return T?!0:!(e.unstable_now()-qU&&ie());){var _e=y.callback;if(typeof _e=="function"){y.callback=null,x=y.priorityLevel;var j=_e(y.expirationTime<=U);if(U=e.unstable_now(),typeof j=="function"){y.callback=j,F(U),re=!0;break t}y===a(h)&&o(h),F(U)}else o(h);y=a(h)}if(y!==null)re=!0;else{var ae=a(f);ae!==null&&ne(M,ae.startTime-U),re=!1}}break e}finally{y=null,x=G,w=!1}re=void 0}}finally{re?Y():O=!1}}}var Y;if(typeof z=="function")Y=function(){z(oe)};else if(typeof MessageChannel!="undefined"){var X=new MessageChannel,ge=X.port2;X.port1.onmessage=oe,Y=function(){ge.postMessage(null)}}else Y=function(){L(oe,0)};function ne(U,re){A=L(function(){U(e.unstable_now())},re)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(U){U.callback=null},e.unstable_forceFrameRate=function(U){0>U||125_e?(U.sortIndex=G,n(f,U),a(h)===null&&U===a(f)&&(N?(k(A),A=-1):N=!0,ne(M,G-_e))):(U.sortIndex=j,n(h,U),S||w||(S=!0,O||(O=!0,Y()))),U},e.unstable_shouldYield=ie,e.unstable_wrapCallback=function(U){var re=x;return function(){var G=x;x=re;try{return U.apply(this,arguments)}finally{x=G}}}})(_m)),_m}var Pb;function uC(){return Pb||(Pb=1,Em.exports=cC()),Em.exports}var Cm={exports:{}},fr={};var Hb;function dC(){if(Hb)return fr;Hb=1;var e=Cp();function n(h){var f="https://react.dev/errors/"+h;if(1j||(t.current=_e[j],_e[j]=null,j--)}function V(t,r){j++,_e[j]=t.current,t.current=r}var ue=ae(null),Ee=ae(null),Se=ae(null),je=ae(null);function te(t,r){switch(V(Se,r),V(Ee,t),V(ue,null),r.nodeType){case 9:case 11:t=(t=r.documentElement)&&(t=t.namespaceURI)?ab(t):0;break;default:if(t=r.tagName,r=r.namespaceURI)r=ab(r),t=ob(r,t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}me(ue),V(ue,t)}function Ae(){me(ue),me(Ee),me(Se)}function ke(t){t.memoizedState!==null&&V(je,t);var r=ue.current,s=ob(r,t.type);r!==s&&(V(Ee,t),V(ue,s))}function We(t){Ee.current===t&&(me(ue),me(Ee)),je.current===t&&(me(je),bc._currentValue=G)}var Ye=Object.prototype.hasOwnProperty,lt=e.unstable_scheduleCallback,St=e.unstable_cancelCallback,Ft=e.unstable_shouldYield,bn=e.unstable_requestPaint,Bt=e.unstable_now,Zn=e.unstable_getCurrentPriorityLevel,fn=e.unstable_ImmediatePriority,Q=e.unstable_UserBlockingPriority,fe=e.unstable_NormalPriority,xe=e.unstable_LowPriority,Fe=e.unstable_IdlePriority,Pe=e.log,Ue=e.unstable_setDisableYieldValue,K=null,Re=null;function nt(t){if(typeof Pe=="function"&&Ue(t),Re&&typeof Re.setStrictMode=="function")try{Re.setStrictMode(K,t)}catch(r){}}var yt=Math.clz32?Math.clz32:Xt,ln=Math.log,cn=Math.LN2;function Xt(t){return t>>>=0,t===0?32:31-(ln(t)/cn|0)|0}var hn=256,Jn=4194304;function Hn(t){var r=t&42;if(r!==0)return r;switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return t&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return t}}function Dn(t,r,s){var c=t.pendingLanes;if(c===0)return 0;var m=0,v=t.suspendedLanes,E=t.pingedLanes;t=t.warmLanes;var R=c&134217727;return R!==0?(c=R&~v,c!==0?m=Hn(c):(E&=R,E!==0?m=Hn(E):s||(s=R&~t,s!==0&&(m=Hn(s))))):(R=c&~v,R!==0?m=Hn(R):E!==0?m=Hn(E):s||(s=c&~t,s!==0&&(m=Hn(s)))),m===0?0:r!==0&&r!==m&&(r&v)===0&&(v=m&-m,s=r&-r,v>=s||v===32&&(s&4194048)!==0)?r:m}function er(t,r){return(t.pendingLanes&~(t.suspendedLanes&~t.pingedLanes)&r)===0}function Mn(t,r){switch(t){case 1:case 2:case 4:case 8:case 64:return r+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return r+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Rn(){var t=hn;return hn<<=1,(hn&4194048)===0&&(hn=256),t}function pt(){var t=Jn;return Jn<<=1,(Jn&62914560)===0&&(Jn=4194304),t}function zt(t){for(var r=[],s=0;31>s;s++)r.push(t);return r}function rt(t,r){t.pendingLanes|=r,r!==268435456&&(t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0)}function Lt(t,r,s,c,m,v){var E=t.pendingLanes;t.pendingLanes=s,t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0,t.expiredLanes&=s,t.entangledLanes&=s,t.errorRecoveryDisabledLanes&=s,t.shellSuspendCounter=0;var R=t.entanglements,$=t.expirationTimes,ye=t.hiddenUpdates;for(s=E&~s;0)":-1m||$[c]!==ye[m]){var Te=` +`+$[c].replace(" at new "," at ");return t.displayName&&Te.includes("")&&(Te=Te.replace("",t.displayName)),Te}while(1<=c&&0<=m);break}}}finally{Lr=!1,Error.prepareStackTrace=s}return(s=t?t.displayName||t.name:"")?cr(s):""}function Co(t){switch(t.tag){case 26:case 27:case 5:return cr(t.type);case 16:return cr("Lazy");case 13:return cr("Suspense");case 19:return cr("SuspenseList");case 0:case 15:return on(t.type,!1);case 11:return on(t.type.render,!1);case 1:return on(t.type,!0);case 31:return cr("Activity");default:return""}}function Ra(t){try{var r="";do r+=Co(t),t=t.return;while(t);return r}catch(s){return` +Error generating stack: `+s.message+` +`+s.stack}}function nr(t){switch(typeof t){case"bigint":case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function Nl(t){var r=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(r==="checkbox"||r==="radio")}function Ef(t){var r=Nl(t)?"checked":"value",s=Object.getOwnPropertyDescriptor(t.constructor.prototype,r),c=""+t[r];if(!t.hasOwnProperty(r)&&typeof s!="undefined"&&typeof s.get=="function"&&typeof s.set=="function"){var m=s.get,v=s.set;return Object.defineProperty(t,r,{configurable:!0,get:function(){return m.call(this)},set:function(E){c=""+E,v.call(this,E)}}),Object.defineProperty(t,r,{enumerable:s.enumerable}),{getValue:function(){return c},setValue:function(E){c=""+E},stopTracking:function(){t._valueTracker=null,delete t[r]}}}}function ii(t){t._valueTracker||(t._valueTracker=Ef(t))}function su(t){if(!t)return!1;var r=t._valueTracker;if(!r)return!0;var s=r.getValue(),c="";return t&&(c=Nl(t)?t.checked?"true":"false":t.value),t=c,t!==s?(r.setValue(t),!0):!1}function li(t){if(t=t||(typeof document!="undefined"?document:void 0),typeof t=="undefined")return null;try{return t.activeElement||t.body}catch(r){return t.body}}var iu=/[\n"\\]/g;function gr(t){return t.replace(iu,function(r){return"\\"+r.charCodeAt(0).toString(16)+" "})}function da(t,r,s,c,m,v,E,R){t.name="",E!=null&&typeof E!="function"&&typeof E!="symbol"&&typeof E!="boolean"?t.type=E:t.removeAttribute("type"),r!=null?E==="number"?(r===0&&t.value===""||t.value!=r)&&(t.value=""+nr(r)):t.value!==""+nr(r)&&(t.value=""+nr(r)):E!=="submit"&&E!=="reset"||t.removeAttribute("value"),r!=null?lu(t,E,nr(r)):s!=null?lu(t,E,nr(s)):c!=null&&t.removeAttribute("value"),m==null&&v!=null&&(t.defaultChecked=!!v),m!=null&&(t.checked=m&&typeof m!="function"&&typeof m!="symbol"),R!=null&&typeof R!="function"&&typeof R!="symbol"&&typeof R!="boolean"?t.name=""+nr(R):t.removeAttribute("name")}function Tl(t,r,s,c,m,v,E,R){if(v!=null&&typeof v!="function"&&typeof v!="symbol"&&typeof v!="boolean"&&(t.type=v),r!=null||s!=null){if(!(v!=="submit"&&v!=="reset"||r!=null))return;s=s!=null?""+nr(s):"",r=r!=null?""+nr(r):s,R||r===t.value||(t.value=r),t.defaultValue=r}c=c!=null?c:m,c=typeof c!="function"&&typeof c!="symbol"&&!!c,t.checked=R?t.checked:!!c,t.defaultChecked=!!c,E!=null&&typeof E!="function"&&typeof E!="symbol"&&typeof E!="boolean"&&(t.name=E)}function lu(t,r,s){r==="number"&&li(t.ownerDocument)===t||t.defaultValue===""+s||(t.defaultValue=""+s)}function No(t,r,s,c){if(t=t.options,r){r={};for(var m=0;m=Ur),jl=" ",ma=!1;function kl(t,r){switch(t){case"keyup":return pi.indexOf(r.keyCode)!==-1;case"keydown":return r.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function pu(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var vr=!1;function jo(t,r){switch(t){case"compositionend":return pu(r);case"keypress":return r.which!==32?null:(ma=!0,jl);case"textInput":return t=r.data,t===jl&&ma?null:t;default:return null}}function Ll(t,r){if(vr)return t==="compositionend"||!Za&&kl(t,r)?(t=du(),Cs=Ro=fa=null,vr=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(r.ctrlKey||r.altKey||r.metaKey)||r.ctrlKey&&r.altKey){if(r.char&&1=r)return{node:s,offset:r-t};t=c}e:{for(;s;){if(s.nextSibling){s=s.nextSibling;break e}s=s.parentNode}s=void 0}s=Cg(s)}}function Tg(t,r){return t&&r?t===r?!0:t&&t.nodeType===3?!1:r&&r.nodeType===3?Tg(t,r.parentNode):"contains"in t?t.contains(r):t.compareDocumentPosition?!!(t.compareDocumentPosition(r)&16):!1:!1}function Og(t){t=t!=null&&t.ownerDocument!=null&&t.ownerDocument.defaultView!=null?t.ownerDocument.defaultView:window;for(var r=li(t.document);r instanceof t.HTMLIFrameElement;){try{var s=typeof r.contentWindow.location.href=="string"}catch(c){s=!1}if(s)t=r.contentWindow;else break;r=li(t.document)}return r}function Mf(t){var r=t&&t.nodeName&&t.nodeName.toLowerCase();return r&&(r==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||r==="textarea"||t.contentEditable==="true")}var kE=Jr&&"documentMode"in document&&11>=document.documentMode,yi=null,Rf=null,Hl=null,Af=!1;function Dg(t,r,s){var c=s.window===s?s.document:s.nodeType===9?s:s.ownerDocument;Af||yi==null||yi!==li(c)||(c=yi,"selectionStart"in c&&Mf(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset}),Hl&&Pl(Hl,c)||(Hl=c,c=td(Rf,"onSelect"),0>=E,m-=E,eo=1<<32-yt(r)+m|s<v?v:8;var E=U.T,R={};U.T=R,yh(t,!1,r,s);try{var $=m(),ye=U.S;if(ye!==null&&ye(R,$),$!==null&&typeof $=="object"&&typeof $.then=="function"){var Te=qE($,c);tc(t,r,Te,Yr(t))}else tc(t,r,c,Yr(t))}catch(De){tc(t,r,{then:function(){},status:"rejected",reason:De},Yr())}finally{re.p=v,U.T=E}}function GE(){}function ph(t,r,s,c){if(t.tag!==5)throw Error(o(476));var m=My(t).queue;Dy(t,m,r,G,s===null?GE:function(){return Ry(t),s(c)})}function My(t){var r=t.memoizedState;if(r!==null)return r;r={memoizedState:G,baseState:G,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ao,lastRenderedState:G},next:null};var s={};return r.next={memoizedState:s,baseState:s,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ao,lastRenderedState:s},next:null},t.memoizedState=r,t=t.alternate,t!==null&&(t.memoizedState=r),r}function Ry(t){var r=My(t).next.queue;tc(t,r,{},Yr())}function gh(){return dr(bc)}function Ay(){return kn().memoizedState}function jy(){return kn().memoizedState}function XE(t){for(var r=t.return;r!==null;){switch(r.tag){case 24:case 3:var s=Yr();t=zo(s);var c=Uo(r,t,s);c!==null&&(Wr(c,r,s),Xl(c,r,s)),r={cache:If()},t.payload=r;return}r=r.return}}function QE(t,r,s){var c=Yr();s={lane:c,revertLane:0,action:s,hasEagerState:!1,eagerState:null,next:null},Lu(t)?Ly(r,s):(s=zf(t,r,s,c),s!==null&&(Wr(s,t,c),zy(s,r,c)))}function ky(t,r,s){var c=Yr();tc(t,r,s,c)}function tc(t,r,s,c){var m={lane:c,revertLane:0,action:s,hasEagerState:!1,eagerState:null,next:null};if(Lu(t))Ly(r,m);else{var v=t.alternate;if(t.lanes===0&&(v===null||v.lanes===0)&&(v=r.lastRenderedReducer,v!==null))try{var E=r.lastRenderedState,R=v(E,s);if(m.hasEagerState=!0,m.eagerState=R,Pr(R,E))return vu(t,r,m,0),an===null&&yu(),!1}catch($){}if(s=zf(t,r,m,c),s!==null)return Wr(s,t,c),zy(s,r,c),!0}return!1}function yh(t,r,s,c){if(c={lane:2,revertLane:Xh(),action:c,hasEagerState:!1,eagerState:null,next:null},Lu(t)){if(r)throw Error(o(479))}else r=zf(t,s,c,2),r!==null&&Wr(r,t,2)}function Lu(t){var r=t.alternate;return t===Tt||r!==null&&r===Tt}function Ly(t,r){Ti=Du=!0;var s=t.pending;s===null?r.next=r:(r.next=s.next,s.next=r),t.pending=r}function zy(t,r,s){if((s&4194048)!==0){var c=r.lanes;c&=t.pendingLanes,s|=c,r.lanes=s,Je(t,s)}}var zu={readContext:dr,use:Ru,useCallback:Nn,useContext:Nn,useEffect:Nn,useImperativeHandle:Nn,useLayoutEffect:Nn,useInsertionEffect:Nn,useMemo:Nn,useReducer:Nn,useRef:Nn,useState:Nn,useDebugValue:Nn,useDeferredValue:Nn,useTransition:Nn,useSyncExternalStore:Nn,useId:Nn,useHostTransitionStatus:Nn,useFormState:Nn,useActionState:Nn,useOptimistic:Nn,useMemoCache:Nn,useCacheRefresh:Nn},Uy={readContext:dr,use:Ru,useCallback:function(t,r){return Nr().memoizedState=[t,r===void 0?null:r],t},useContext:dr,useEffect:xy,useImperativeHandle:function(t,r,s){s=s!=null?s.concat([t]):null,ku(4194308,4,_y.bind(null,r,t),s)},useLayoutEffect:function(t,r){return ku(4194308,4,t,r)},useInsertionEffect:function(t,r){ku(4,2,t,r)},useMemo:function(t,r){var s=Nr();r=r===void 0?null:r;var c=t();if(Ps){nt(!0);try{t()}finally{nt(!1)}}return s.memoizedState=[c,r],c},useReducer:function(t,r,s){var c=Nr();if(s!==void 0){var m=s(r);if(Ps){nt(!0);try{s(r)}finally{nt(!1)}}}else m=r;return c.memoizedState=c.baseState=m,t={pending:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:m},c.queue=t,t=t.dispatch=QE.bind(null,Tt,t),[c.memoizedState,t]},useRef:function(t){var r=Nr();return t={current:t},r.memoizedState=t},useState:function(t){t=dh(t);var r=t.queue,s=ky.bind(null,Tt,r);return r.dispatch=s,[t.memoizedState,s]},useDebugValue:hh,useDeferredValue:function(t,r){var s=Nr();return mh(s,t,r)},useTransition:function(){var t=dh(!1);return t=Dy.bind(null,Tt,t.queue,!0,!1),Nr().memoizedState=t,[!1,t]},useSyncExternalStore:function(t,r,s){var c=Tt,m=Nr();if(Vt){if(s===void 0)throw Error(o(407));s=s()}else{if(s=r(),an===null)throw Error(o(349));(Ut&124)!==0||ay(c,r,s)}m.memoizedState=s;var v={value:s,getSnapshot:r};return m.queue=v,xy(sy.bind(null,c,v,t),[t]),c.flags|=2048,Di(9,ju(),oy.bind(null,c,v,s,r),null),s},useId:function(){var t=Nr(),r=an.identifierPrefix;if(Vt){var s=to,c=eo;s=(c&~(1<<32-yt(c)-1)).toString(32)+s,r="«"+r+"R"+s,s=Mu++,0ht?(Qn=tt,tt=null):Qn=tt.sibling;var Pt=be(ce,tt,he[ht],Oe);if(Pt===null){tt===null&&(tt=Qn);break}t&&tt&&Pt.alternate===null&&r(ce,tt),J=v(Pt,J,ht),Dt===null?Ge=Pt:Dt.sibling=Pt,Dt=Pt,tt=Qn}if(ht===he.length)return s(ce,tt),Vt&&js(ce,ht),Ge;if(tt===null){for(;htht?(Qn=tt,tt=null):Qn=tt.sibling;var es=be(ce,tt,Pt.value,Oe);if(es===null){tt===null&&(tt=Qn);break}t&&tt&&es.alternate===null&&r(ce,tt),J=v(es,J,ht),Dt===null?Ge=es:Dt.sibling=es,Dt=es,tt=Qn}if(Pt.done)return s(ce,tt),Vt&&js(ce,ht),Ge;if(tt===null){for(;!Pt.done;ht++,Pt=he.next())Pt=De(ce,Pt.value,Oe),Pt!==null&&(J=v(Pt,J,ht),Dt===null?Ge=Pt:Dt.sibling=Pt,Dt=Pt);return Vt&&js(ce,ht),Ge}for(tt=c(tt);!Pt.done;ht++,Pt=he.next())Pt=we(tt,ce,ht,Pt.value,Oe),Pt!==null&&(t&&Pt.alternate!==null&&tt.delete(Pt.key===null?ht:Pt.key),J=v(Pt,J,ht),Dt===null?Ge=Pt:Dt.sibling=Pt,Dt=Pt);return t&&tt.forEach(function(Z_){return r(ce,Z_)}),Vt&&js(ce,ht),Ge}function Jt(ce,J,he,Oe){if(typeof he=="object"&&he!==null&&he.type===S&&he.key===null&&(he=he.props.children),typeof he=="object"&&he!==null){switch(he.$$typeof){case x:e:{for(var Ge=he.key;J!==null;){if(J.key===Ge){if(Ge=he.type,Ge===S){if(J.tag===7){s(ce,J.sibling),Oe=m(J,he.props.children),Oe.return=ce,ce=Oe;break e}}else if(J.elementType===Ge||typeof Ge=="object"&&Ge!==null&&Ge.$$typeof===H&&Py(Ge)===J.type){s(ce,J.sibling),Oe=m(J,he.props),rc(Oe,he),Oe.return=ce,ce=Oe;break e}s(ce,J);break}else r(ce,J);J=J.sibling}he.type===S?(Oe=Rs(he.props.children,ce.mode,Oe,he.key),Oe.return=ce,ce=Oe):(Oe=xu(he.type,he.key,he.props,null,ce.mode,Oe),rc(Oe,he),Oe.return=ce,ce=Oe)}return E(ce);case w:e:{for(Ge=he.key;J!==null;){if(J.key===Ge)if(J.tag===4&&J.stateNode.containerInfo===he.containerInfo&&J.stateNode.implementation===he.implementation){s(ce,J.sibling),Oe=m(J,he.children||[]),Oe.return=ce,ce=Oe;break e}else{s(ce,J);break}else r(ce,J);J=J.sibling}Oe=Pf(he,ce.mode,Oe),Oe.return=ce,ce=Oe}return E(ce);case H:return Ge=he._init,he=Ge(he._payload),Jt(ce,J,he,Oe)}if(ne(he))return gt(ce,J,he,Oe);if(Y(he)){if(Ge=Y(he),typeof Ge!="function")throw Error(o(150));return he=Ge.call(he),dt(ce,J,he,Oe)}if(typeof he.then=="function")return Jt(ce,J,Uu(he),Oe);if(he.$$typeof===z)return Jt(ce,J,_u(ce,he),Oe);Bu(ce,he)}return typeof he=="string"&&he!==""||typeof he=="number"||typeof he=="bigint"?(he=""+he,J!==null&&J.tag===6?(s(ce,J.sibling),Oe=m(J,he),Oe.return=ce,ce=Oe):(s(ce,J),Oe=Bf(he,ce.mode,Oe),Oe.return=ce,ce=Oe),E(ce)):s(ce,J)}return function(ce,J,he,Oe){try{nc=0;var Ge=Jt(ce,J,he,Oe);return Mi=null,Ge}catch(tt){if(tt===$l||tt===Nu)throw tt;var Dt=Hr(29,tt,null,ce.mode);return Dt.lanes=Oe,Dt.return=ce,Dt}}}var Ri=Hy(!0),Fy=Hy(!1),aa=ae(null),ja=null;function Po(t){var r=t.alternate;V(Wn,Wn.current&1),V(aa,t),ja===null&&(r===null||Ni.current!==null||r.memoizedState!==null)&&(ja=t)}function Vy(t){if(t.tag===22){if(V(Wn,Wn.current),V(aa,t),ja===null){var r=t.alternate;r!==null&&r.memoizedState!==null&&(ja=t)}}else Ho()}function Ho(){V(Wn,Wn.current),V(aa,aa.current)}function oo(t){me(aa),ja===t&&(ja=null),me(Wn)}var Wn=ae(0);function Pu(t){for(var r=t;r!==null;){if(r.tag===13){var s=r.memoizedState;if(s!==null&&(s=s.dehydrated,s===null||s.data==="$?"||im(s)))return r}else if(r.tag===19&&r.memoizedProps.revealOrder!==void 0){if((r.flags&128)!==0)return r}else if(r.child!==null){r.child.return=r,r=r.child;continue}if(r===t)break;for(;r.sibling===null;){if(r.return===null||r.return===t)return null;r=r.return}r.sibling.return=r.return,r=r.sibling}return null}function vh(t,r,s,c){r=t.memoizedState,s=s(c,r),s=s==null?r:p({},r,s),t.memoizedState=s,t.lanes===0&&(t.updateQueue.baseState=s)}var bh={enqueueSetState:function(t,r,s){t=t._reactInternals;var c=Yr(),m=zo(c);m.payload=r,s!=null&&(m.callback=s),r=Uo(t,m,c),r!==null&&(Wr(r,t,c),Xl(r,t,c))},enqueueReplaceState:function(t,r,s){t=t._reactInternals;var c=Yr(),m=zo(c);m.tag=1,m.payload=r,s!=null&&(m.callback=s),r=Uo(t,m,c),r!==null&&(Wr(r,t,c),Xl(r,t,c))},enqueueForceUpdate:function(t,r){t=t._reactInternals;var s=Yr(),c=zo(s);c.tag=2,r!=null&&(c.callback=r),r=Uo(t,c,s),r!==null&&(Wr(r,t,s),Xl(r,t,s))}};function qy(t,r,s,c,m,v,E){return t=t.stateNode,typeof t.shouldComponentUpdate=="function"?t.shouldComponentUpdate(c,v,E):r.prototype&&r.prototype.isPureReactComponent?!Pl(s,c)||!Pl(m,v):!0}function Yy(t,r,s,c){t=r.state,typeof r.componentWillReceiveProps=="function"&&r.componentWillReceiveProps(s,c),typeof r.UNSAFE_componentWillReceiveProps=="function"&&r.UNSAFE_componentWillReceiveProps(s,c),r.state!==t&&bh.enqueueReplaceState(r,r.state,null)}function Hs(t,r){var s=r;if("ref"in r){s={};for(var c in r)c!=="ref"&&(s[c]=r[c])}if(t=t.defaultProps){s===r&&(s=p({},s));for(var m in t)s[m]===void 0&&(s[m]=t[m])}return s}var Hu=typeof reportError=="function"?reportError:function(t){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var r=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof t=="object"&&t!==null&&typeof t.message=="string"?String(t.message):String(t),error:t});if(!window.dispatchEvent(r))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",t);return}console.error(t)};function Wy(t){Hu(t)}function Iy(t){console.error(t)}function $y(t){Hu(t)}function Fu(t,r){try{var s=t.onUncaughtError;s(r.value,{componentStack:r.stack})}catch(c){setTimeout(function(){throw c})}}function Gy(t,r,s){try{var c=t.onCaughtError;c(s.value,{componentStack:s.stack,errorBoundary:r.tag===1?r.stateNode:null})}catch(m){setTimeout(function(){throw m})}}function xh(t,r,s){return s=zo(s),s.tag=3,s.payload={element:null},s.callback=function(){Fu(t,r)},s}function Xy(t){return t=zo(t),t.tag=3,t}function Qy(t,r,s,c){var m=s.type.getDerivedStateFromError;if(typeof m=="function"){var v=c.value;t.payload=function(){return m(v)},t.callback=function(){Gy(r,s,c)}}var E=s.stateNode;E!==null&&typeof E.componentDidCatch=="function"&&(t.callback=function(){Gy(r,s,c),typeof m!="function"&&(Io===null?Io=new Set([this]):Io.add(this));var R=c.stack;this.componentDidCatch(c.value,{componentStack:R!==null?R:""})})}function ZE(t,r,s,c,m){if(s.flags|=32768,c!==null&&typeof c=="object"&&typeof c.then=="function"){if(r=s.alternate,r!==null&&Yl(r,s,m,!0),s=aa.current,s!==null){switch(s.tag){case 13:return ja===null?Yh():s.alternate===null&&wn===0&&(wn=3),s.flags&=-257,s.flags|=65536,s.lanes=m,c===Xf?s.flags|=16384:(r=s.updateQueue,r===null?s.updateQueue=new Set([c]):r.add(c),Ih(t,c,m)),!1;case 22:return s.flags|=65536,c===Xf?s.flags|=16384:(r=s.updateQueue,r===null?(r={transitions:null,markerInstances:null,retryQueue:new Set([c])},s.updateQueue=r):(s=r.retryQueue,s===null?r.retryQueue=new Set([c]):s.add(c)),Ih(t,c,m)),!1}throw Error(o(435,s.tag))}return Ih(t,c,m),Yh(),!1}if(Vt)return r=aa.current,r!==null?((r.flags&65536)===0&&(r.flags|=256),r.flags|=65536,r.lanes=m,c!==Vf&&(t=Error(o(422),{cause:c}),ql(ea(t,s)))):(c!==Vf&&(r=Error(o(423),{cause:c}),ql(ea(r,s))),t=t.current.alternate,t.flags|=65536,m&=-m,t.lanes|=m,c=ea(c,s),m=xh(t.stateNode,c,m),Zf(t,m),wn!==4&&(wn=2)),!1;var v=Error(o(520),{cause:c});if(v=ea(v,s),uc===null?uc=[v]:uc.push(v),wn!==4&&(wn=2),r===null)return!0;c=ea(c,s),s=r;do{switch(s.tag){case 3:return s.flags|=65536,t=m&-m,s.lanes|=t,t=xh(s.stateNode,c,t),Zf(s,t),!1;case 1:if(r=s.type,v=s.stateNode,(s.flags&128)===0&&(typeof r.getDerivedStateFromError=="function"||v!==null&&typeof v.componentDidCatch=="function"&&(Io===null||!Io.has(v))))return s.flags|=65536,m&=-m,s.lanes|=m,m=Xy(m),Qy(m,t,s,c),Zf(s,m),!1}s=s.return}while(s!==null);return!1}var Ky=Error(o(461)),Gn=!1;function rr(t,r,s,c){r.child=t===null?Fy(r,null,s,c):Ri(r,t.child,s,c)}function Zy(t,r,s,c,m){s=s.render;var v=r.ref;if("ref"in c){var E={};for(var R in c)R!=="ref"&&(E[R]=c[R])}else E=c;return Us(r),c=rh(t,r,s,E,v,m),R=ah(),t!==null&&!Gn?(oh(t,r,m),so(t,r,m)):(Vt&&R&&Hf(r),r.flags|=1,rr(t,r,c,m),r.child)}function Jy(t,r,s,c,m){if(t===null){var v=s.type;return typeof v=="function"&&!Uf(v)&&v.defaultProps===void 0&&s.compare===null?(r.tag=15,r.type=v,ev(t,r,v,c,m)):(t=xu(s.type,null,c,r,r.mode,m),t.ref=r.ref,t.return=r,r.child=t)}if(v=t.child,!Oh(t,m)){var E=v.memoizedProps;if(s=s.compare,s=s!==null?s:Pl,s(E,c)&&t.ref===r.ref)return so(t,r,m)}return r.flags|=1,t=Ja(v,c),t.ref=r.ref,t.return=r,r.child=t}function ev(t,r,s,c,m){if(t!==null){var v=t.memoizedProps;if(Pl(v,c)&&t.ref===r.ref)if(Gn=!1,r.pendingProps=c=v,Oh(t,m))(t.flags&131072)!==0&&(Gn=!0);else return r.lanes=t.lanes,so(t,r,m)}return wh(t,r,s,c,m)}function tv(t,r,s){var c=r.pendingProps,m=c.children,v=t!==null?t.memoizedState:null;if(c.mode==="hidden"){if((r.flags&128)!==0){if(c=v!==null?v.baseLanes|s:s,t!==null){for(m=r.child=t.child,v=0;m!==null;)v=v|m.lanes|m.childLanes,m=m.sibling;r.childLanes=v&~c}else r.childLanes=0,r.child=null;return nv(t,r,c,s)}if((s&536870912)!==0)r.memoizedState={baseLanes:0,cachePool:null},t!==null&&Cu(r,v!==null?v.cachePool:null),v!==null?ey(r,v):eh(),Vy(r);else return r.lanes=r.childLanes=536870912,nv(t,r,v!==null?v.baseLanes|s:s,s)}else v!==null?(Cu(r,v.cachePool),ey(r,v),Ho(),r.memoizedState=null):(t!==null&&Cu(r,null),eh(),Ho());return rr(t,r,m,s),r.child}function nv(t,r,s,c){var m=Gf();return m=m===null?null:{parent:Yn._currentValue,pool:m},r.memoizedState={baseLanes:s,cachePool:m},t!==null&&Cu(r,null),eh(),Vy(r),t!==null&&Yl(t,r,c,!0),null}function Vu(t,r){var s=r.ref;if(s===null)t!==null&&t.ref!==null&&(r.flags|=4194816);else{if(typeof s!="function"&&typeof s!="object")throw Error(o(284));(t===null||t.ref!==s)&&(r.flags|=4194816)}}function wh(t,r,s,c,m){return Us(r),s=rh(t,r,s,c,void 0,m),c=ah(),t!==null&&!Gn?(oh(t,r,m),so(t,r,m)):(Vt&&c&&Hf(r),r.flags|=1,rr(t,r,s,m),r.child)}function rv(t,r,s,c,m,v){return Us(r),r.updateQueue=null,s=ny(r,c,s,m),ty(t),c=ah(),t!==null&&!Gn?(oh(t,r,v),so(t,r,v)):(Vt&&c&&Hf(r),r.flags|=1,rr(t,r,s,v),r.child)}function av(t,r,s,c,m){if(Us(r),r.stateNode===null){var v=wi,E=s.contextType;typeof E=="object"&&E!==null&&(v=dr(E)),v=new s(c,v),r.memoizedState=v.state!==null&&v.state!==void 0?v.state:null,v.updater=bh,r.stateNode=v,v._reactInternals=r,v=r.stateNode,v.props=c,v.state=r.memoizedState,v.refs={},Qf(r),E=s.contextType,v.context=typeof E=="object"&&E!==null?dr(E):wi,v.state=r.memoizedState,E=s.getDerivedStateFromProps,typeof E=="function"&&(vh(r,s,E,c),v.state=r.memoizedState),typeof s.getDerivedStateFromProps=="function"||typeof v.getSnapshotBeforeUpdate=="function"||typeof v.UNSAFE_componentWillMount!="function"&&typeof v.componentWillMount!="function"||(E=v.state,typeof v.componentWillMount=="function"&&v.componentWillMount(),typeof v.UNSAFE_componentWillMount=="function"&&v.UNSAFE_componentWillMount(),E!==v.state&&bh.enqueueReplaceState(v,v.state,null),Kl(r,c,v,m),Ql(),v.state=r.memoizedState),typeof v.componentDidMount=="function"&&(r.flags|=4194308),c=!0}else if(t===null){v=r.stateNode;var R=r.memoizedProps,$=Hs(s,R);v.props=$;var ye=v.context,Te=s.contextType;E=wi,typeof Te=="object"&&Te!==null&&(E=dr(Te));var De=s.getDerivedStateFromProps;Te=typeof De=="function"||typeof v.getSnapshotBeforeUpdate=="function",R=r.pendingProps!==R,Te||typeof v.UNSAFE_componentWillReceiveProps!="function"&&typeof v.componentWillReceiveProps!="function"||(R||ye!==E)&&Yy(r,v,c,E),Lo=!1;var be=r.memoizedState;v.state=be,Kl(r,c,v,m),Ql(),ye=r.memoizedState,R||be!==ye||Lo?(typeof De=="function"&&(vh(r,s,De,c),ye=r.memoizedState),($=Lo||qy(r,s,$,c,be,ye,E))?(Te||typeof v.UNSAFE_componentWillMount!="function"&&typeof v.componentWillMount!="function"||(typeof v.componentWillMount=="function"&&v.componentWillMount(),typeof v.UNSAFE_componentWillMount=="function"&&v.UNSAFE_componentWillMount()),typeof v.componentDidMount=="function"&&(r.flags|=4194308)):(typeof v.componentDidMount=="function"&&(r.flags|=4194308),r.memoizedProps=c,r.memoizedState=ye),v.props=c,v.state=ye,v.context=E,c=$):(typeof v.componentDidMount=="function"&&(r.flags|=4194308),c=!1)}else{v=r.stateNode,Kf(t,r),E=r.memoizedProps,Te=Hs(s,E),v.props=Te,De=r.pendingProps,be=v.context,ye=s.contextType,$=wi,typeof ye=="object"&&ye!==null&&($=dr(ye)),R=s.getDerivedStateFromProps,(ye=typeof R=="function"||typeof v.getSnapshotBeforeUpdate=="function")||typeof v.UNSAFE_componentWillReceiveProps!="function"&&typeof v.componentWillReceiveProps!="function"||(E!==De||be!==$)&&Yy(r,v,c,$),Lo=!1,be=r.memoizedState,v.state=be,Kl(r,c,v,m),Ql();var we=r.memoizedState;E!==De||be!==we||Lo||t!==null&&t.dependencies!==null&&Eu(t.dependencies)?(typeof R=="function"&&(vh(r,s,R,c),we=r.memoizedState),(Te=Lo||qy(r,s,Te,c,be,we,$)||t!==null&&t.dependencies!==null&&Eu(t.dependencies))?(ye||typeof v.UNSAFE_componentWillUpdate!="function"&&typeof v.componentWillUpdate!="function"||(typeof v.componentWillUpdate=="function"&&v.componentWillUpdate(c,we,$),typeof v.UNSAFE_componentWillUpdate=="function"&&v.UNSAFE_componentWillUpdate(c,we,$)),typeof v.componentDidUpdate=="function"&&(r.flags|=4),typeof v.getSnapshotBeforeUpdate=="function"&&(r.flags|=1024)):(typeof v.componentDidUpdate!="function"||E===t.memoizedProps&&be===t.memoizedState||(r.flags|=4),typeof v.getSnapshotBeforeUpdate!="function"||E===t.memoizedProps&&be===t.memoizedState||(r.flags|=1024),r.memoizedProps=c,r.memoizedState=we),v.props=c,v.state=we,v.context=$,c=Te):(typeof v.componentDidUpdate!="function"||E===t.memoizedProps&&be===t.memoizedState||(r.flags|=4),typeof v.getSnapshotBeforeUpdate!="function"||E===t.memoizedProps&&be===t.memoizedState||(r.flags|=1024),c=!1)}return v=c,Vu(t,r),c=(r.flags&128)!==0,v||c?(v=r.stateNode,s=c&&typeof s.getDerivedStateFromError!="function"?null:v.render(),r.flags|=1,t!==null&&c?(r.child=Ri(r,t.child,null,m),r.child=Ri(r,null,s,m)):rr(t,r,s,m),r.memoizedState=v.state,t=r.child):t=so(t,r,m),t}function ov(t,r,s,c){return Vl(),r.flags|=256,rr(t,r,s,c),r.child}var Sh={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Eh(t){return{baseLanes:t,cachePool:Ig()}}function _h(t,r,s){return t=t!==null?t.childLanes&~s:0,r&&(t|=oa),t}function sv(t,r,s){var c=r.pendingProps,m=!1,v=(r.flags&128)!==0,E;if((E=v)||(E=t!==null&&t.memoizedState===null?!1:(Wn.current&2)!==0),E&&(m=!0,r.flags&=-129),E=(r.flags&32)!==0,r.flags&=-33,t===null){if(Vt){if(m?Po(r):Ho(),Vt){var R=xn,$;if($=R){e:{for($=R,R=Aa;$.nodeType!==8;){if(!R){R=null;break e}if($=ya($.nextSibling),$===null){R=null;break e}}R=$}R!==null?(r.memoizedState={dehydrated:R,treeContext:As!==null?{id:eo,overflow:to}:null,retryLane:536870912,hydrationErrors:null},$=Hr(18,null,null,0),$.stateNode=R,$.return=r,r.child=$,br=r,xn=null,$=!0):$=!1}$||Ls(r)}if(R=r.memoizedState,R!==null&&(R=R.dehydrated,R!==null))return im(R)?r.lanes=32:r.lanes=536870912,null;oo(r)}return R=c.children,c=c.fallback,m?(Ho(),m=r.mode,R=qu({mode:"hidden",children:R},m),c=Rs(c,m,s,null),R.return=r,c.return=r,R.sibling=c,r.child=R,m=r.child,m.memoizedState=Eh(s),m.childLanes=_h(t,E,s),r.memoizedState=Sh,c):(Po(r),Ch(r,R))}if($=t.memoizedState,$!==null&&(R=$.dehydrated,R!==null)){if(v)r.flags&256?(Po(r),r.flags&=-257,r=Nh(t,r,s)):r.memoizedState!==null?(Ho(),r.child=t.child,r.flags|=128,r=null):(Ho(),m=c.fallback,R=r.mode,c=qu({mode:"visible",children:c.children},R),m=Rs(m,R,s,null),m.flags|=2,c.return=r,m.return=r,c.sibling=m,r.child=c,Ri(r,t.child,null,s),c=r.child,c.memoizedState=Eh(s),c.childLanes=_h(t,E,s),r.memoizedState=Sh,r=m);else if(Po(r),im(R)){if(E=R.nextSibling&&R.nextSibling.dataset,E)var ye=E.dgst;E=ye,c=Error(o(419)),c.stack="",c.digest=E,ql({value:c,source:null,stack:null}),r=Nh(t,r,s)}else if(Gn||Yl(t,r,s,!1),E=(s&t.childLanes)!==0,Gn||E){if(E=an,E!==null&&(c=s&-s,c=(c&42)!==0?1:Wt(c),c=(c&(E.suspendedLanes|s))!==0?0:c,c!==0&&c!==$.retryLane))throw $.retryLane=c,xi(t,c),Wr(E,t,c),Ky;R.data==="$?"||Yh(),r=Nh(t,r,s)}else R.data==="$?"?(r.flags|=192,r.child=t.child,r=null):(t=$.treeContext,xn=ya(R.nextSibling),br=r,Vt=!0,ks=null,Aa=!1,t!==null&&(na[ra++]=eo,na[ra++]=to,na[ra++]=As,eo=t.id,to=t.overflow,As=r),r=Ch(r,c.children),r.flags|=4096);return r}return m?(Ho(),m=c.fallback,R=r.mode,$=t.child,ye=$.sibling,c=Ja($,{mode:"hidden",children:c.children}),c.subtreeFlags=$.subtreeFlags&65011712,ye!==null?m=Ja(ye,m):(m=Rs(m,R,s,null),m.flags|=2),m.return=r,c.return=r,c.sibling=m,r.child=c,c=m,m=r.child,R=t.child.memoizedState,R===null?R=Eh(s):($=R.cachePool,$!==null?(ye=Yn._currentValue,$=$.parent!==ye?{parent:ye,pool:ye}:$):$=Ig(),R={baseLanes:R.baseLanes|s,cachePool:$}),m.memoizedState=R,m.childLanes=_h(t,E,s),r.memoizedState=Sh,c):(Po(r),s=t.child,t=s.sibling,s=Ja(s,{mode:"visible",children:c.children}),s.return=r,s.sibling=null,t!==null&&(E=r.deletions,E===null?(r.deletions=[t],r.flags|=16):E.push(t)),r.child=s,r.memoizedState=null,s)}function Ch(t,r){return r=qu({mode:"visible",children:r},t.mode),r.return=t,t.child=r}function qu(t,r){return t=Hr(22,t,null,r),t.lanes=0,t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null},t}function Nh(t,r,s){return Ri(r,t.child,null,s),t=Ch(r,r.pendingProps.children),t.flags|=2,r.memoizedState=null,t}function iv(t,r,s){t.lanes|=r;var c=t.alternate;c!==null&&(c.lanes|=r),Yf(t.return,r,s)}function Th(t,r,s,c,m){var v=t.memoizedState;v===null?t.memoizedState={isBackwards:r,rendering:null,renderingStartTime:0,last:c,tail:s,tailMode:m}:(v.isBackwards=r,v.rendering=null,v.renderingStartTime=0,v.last=c,v.tail=s,v.tailMode=m)}function lv(t,r,s){var c=r.pendingProps,m=c.revealOrder,v=c.tail;if(rr(t,r,c.children,s),c=Wn.current,(c&2)!==0)c=c&1|2,r.flags|=128;else{if(t!==null&&(t.flags&128)!==0)e:for(t=r.child;t!==null;){if(t.tag===13)t.memoizedState!==null&&iv(t,s,r);else if(t.tag===19)iv(t,s,r);else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===r)break e;for(;t.sibling===null;){if(t.return===null||t.return===r)break e;t=t.return}t.sibling.return=t.return,t=t.sibling}c&=1}switch(V(Wn,c),m){case"forwards":for(s=r.child,m=null;s!==null;)t=s.alternate,t!==null&&Pu(t)===null&&(m=s),s=s.sibling;s=m,s===null?(m=r.child,r.child=null):(m=s.sibling,s.sibling=null),Th(r,!1,m,s,v);break;case"backwards":for(s=null,m=r.child,r.child=null;m!==null;){if(t=m.alternate,t!==null&&Pu(t)===null){r.child=m;break}t=m.sibling,m.sibling=s,s=m,m=t}Th(r,!0,s,null,v);break;case"together":Th(r,!1,null,null,void 0);break;default:r.memoizedState=null}return r.child}function so(t,r,s){if(t!==null&&(r.dependencies=t.dependencies),Wo|=r.lanes,(s&r.childLanes)===0)if(t!==null){if(Yl(t,r,s,!1),(s&r.childLanes)===0)return null}else return null;if(t!==null&&r.child!==t.child)throw Error(o(153));if(r.child!==null){for(t=r.child,s=Ja(t,t.pendingProps),r.child=s,s.return=r;t.sibling!==null;)t=t.sibling,s=s.sibling=Ja(t,t.pendingProps),s.return=r;s.sibling=null}return r.child}function Oh(t,r){return(t.lanes&r)!==0?!0:(t=t.dependencies,!!(t!==null&&Eu(t)))}function JE(t,r,s){switch(r.tag){case 3:te(r,r.stateNode.containerInfo),ko(r,Yn,t.memoizedState.cache),Vl();break;case 27:case 5:ke(r);break;case 4:te(r,r.stateNode.containerInfo);break;case 10:ko(r,r.type,r.memoizedProps.value);break;case 13:var c=r.memoizedState;if(c!==null)return c.dehydrated!==null?(Po(r),r.flags|=128,null):(s&r.child.childLanes)!==0?sv(t,r,s):(Po(r),t=so(t,r,s),t!==null?t.sibling:null);Po(r);break;case 19:var m=(t.flags&128)!==0;if(c=(s&r.childLanes)!==0,c||(Yl(t,r,s,!1),c=(s&r.childLanes)!==0),m){if(c)return lv(t,r,s);r.flags|=128}if(m=r.memoizedState,m!==null&&(m.rendering=null,m.tail=null,m.lastEffect=null),V(Wn,Wn.current),c)break;return null;case 22:case 23:return r.lanes=0,tv(t,r,s);case 24:ko(r,Yn,t.memoizedState.cache)}return so(t,r,s)}function cv(t,r,s){if(t!==null)if(t.memoizedProps!==r.pendingProps)Gn=!0;else{if(!Oh(t,s)&&(r.flags&128)===0)return Gn=!1,JE(t,r,s);Gn=(t.flags&131072)!==0}else Gn=!1,Vt&&(r.flags&1048576)!==0&&Pg(r,Su,r.index);switch(r.lanes=0,r.tag){case 16:e:{t=r.pendingProps;var c=r.elementType,m=c._init;if(c=m(c._payload),r.type=c,typeof c=="function")Uf(c)?(t=Hs(c,t),r.tag=1,r=av(null,r,c,t,s)):(r.tag=0,r=wh(null,r,c,t,s));else{if(c!=null){if(m=c.$$typeof,m===F){r.tag=11,r=Zy(null,r,c,t,s);break e}else if(m===A){r.tag=14,r=Jy(null,r,c,t,s);break e}}throw r=ge(c)||c,Error(o(306,r,""))}}return r;case 0:return wh(t,r,r.type,r.pendingProps,s);case 1:return c=r.type,m=Hs(c,r.pendingProps),av(t,r,c,m,s);case 3:e:{if(te(r,r.stateNode.containerInfo),t===null)throw Error(o(387));c=r.pendingProps;var v=r.memoizedState;m=v.element,Kf(t,r),Kl(r,c,null,s);var E=r.memoizedState;if(c=E.cache,ko(r,Yn,c),c!==v.cache&&Wf(r,[Yn],s,!0),Ql(),c=E.element,v.isDehydrated)if(v={element:c,isDehydrated:!1,cache:E.cache},r.updateQueue.baseState=v,r.memoizedState=v,r.flags&256){r=ov(t,r,c,s);break e}else if(c!==m){m=ea(Error(o(424)),r),ql(m),r=ov(t,r,c,s);break e}else for(t=r.stateNode.containerInfo,t.nodeType===9?t=t.body:t=t.nodeName==="HTML"?t.ownerDocument.body:t,xn=ya(t.firstChild),br=r,Vt=!0,ks=null,Aa=!0,s=Fy(r,null,c,s),r.child=s;s;)s.flags=s.flags&-3|4096,s=s.sibling;else{if(Vl(),c===m){r=so(t,r,s);break e}rr(t,r,c,s)}r=r.child}return r;case 26:return Vu(t,r),t===null?(s=hb(r.type,null,r.pendingProps,null))?r.memoizedState=s:Vt||(s=r.type,t=r.pendingProps,c=rd(Se.current).createElement(s),c[pe]=r,c[Ne]=t,or(c,s,t),Rt(c),r.stateNode=c):r.memoizedState=hb(r.type,t.memoizedProps,r.pendingProps,t.memoizedState),null;case 27:return ke(r),t===null&&Vt&&(c=r.stateNode=ub(r.type,r.pendingProps,Se.current),br=r,Aa=!0,m=xn,Xo(r.type)?(lm=m,xn=ya(c.firstChild)):xn=m),rr(t,r,r.pendingProps.children,s),Vu(t,r),t===null&&(r.flags|=4194304),r.child;case 5:return t===null&&Vt&&((m=c=xn)&&(c=T_(c,r.type,r.pendingProps,Aa),c!==null?(r.stateNode=c,br=r,xn=ya(c.firstChild),Aa=!1,m=!0):m=!1),m||Ls(r)),ke(r),m=r.type,v=r.pendingProps,E=t!==null?t.memoizedProps:null,c=v.children,am(m,v)?c=null:E!==null&&am(m,E)&&(r.flags|=32),r.memoizedState!==null&&(m=rh(t,r,WE,null,null,s),bc._currentValue=m),Vu(t,r),rr(t,r,c,s),r.child;case 6:return t===null&&Vt&&((t=s=xn)&&(s=O_(s,r.pendingProps,Aa),s!==null?(r.stateNode=s,br=r,xn=null,t=!0):t=!1),t||Ls(r)),null;case 13:return sv(t,r,s);case 4:return te(r,r.stateNode.containerInfo),c=r.pendingProps,t===null?r.child=Ri(r,null,c,s):rr(t,r,c,s),r.child;case 11:return Zy(t,r,r.type,r.pendingProps,s);case 7:return rr(t,r,r.pendingProps,s),r.child;case 8:return rr(t,r,r.pendingProps.children,s),r.child;case 12:return rr(t,r,r.pendingProps.children,s),r.child;case 10:return c=r.pendingProps,ko(r,r.type,c.value),rr(t,r,c.children,s),r.child;case 9:return m=r.type._context,c=r.pendingProps.children,Us(r),m=dr(m),c=c(m),r.flags|=1,rr(t,r,c,s),r.child;case 14:return Jy(t,r,r.type,r.pendingProps,s);case 15:return ev(t,r,r.type,r.pendingProps,s);case 19:return lv(t,r,s);case 31:return c=r.pendingProps,s=r.mode,c={mode:c.mode,children:c.children},t===null?(s=qu(c,s),s.ref=r.ref,r.child=s,s.return=r,r=s):(s=Ja(t.child,c),s.ref=r.ref,r.child=s,s.return=r,r=s),r;case 22:return tv(t,r,s);case 24:return Us(r),c=dr(Yn),t===null?(m=Gf(),m===null&&(m=an,v=If(),m.pooledCache=v,v.refCount++,v!==null&&(m.pooledCacheLanes|=s),m=v),r.memoizedState={parent:c,cache:m},Qf(r),ko(r,Yn,m)):((t.lanes&s)!==0&&(Kf(t,r),Kl(r,null,null,s),Ql()),m=t.memoizedState,v=r.memoizedState,m.parent!==c?(m={parent:c,cache:c},r.memoizedState=m,r.lanes===0&&(r.memoizedState=r.updateQueue.baseState=m),ko(r,Yn,c)):(c=v.cache,ko(r,Yn,c),c!==m.cache&&Wf(r,[Yn],s,!0))),rr(t,r,r.pendingProps.children,s),r.child;case 29:throw r.pendingProps}throw Error(o(156,r.tag))}function io(t){t.flags|=4}function uv(t,r){if(r.type!=="stylesheet"||(r.state.loading&4)!==0)t.flags&=-16777217;else if(t.flags|=16777216,!vb(r)){if(r=aa.current,r!==null&&((Ut&4194048)===Ut?ja!==null:(Ut&62914560)!==Ut&&(Ut&536870912)===0||r!==ja))throw Gl=Xf,$g;t.flags|=8192}}function Yu(t,r){r!==null&&(t.flags|=4),t.flags&16384&&(r=t.tag!==22?pt():536870912,t.lanes|=r,Li|=r)}function ac(t,r){if(!Vt)switch(t.tailMode){case"hidden":r=t.tail;for(var s=null;r!==null;)r.alternate!==null&&(s=r),r=r.sibling;s===null?t.tail=null:s.sibling=null;break;case"collapsed":s=t.tail;for(var c=null;s!==null;)s.alternate!==null&&(c=s),s=s.sibling;c===null?r||t.tail===null?t.tail=null:t.tail.sibling=null:c.sibling=null}}function gn(t){var r=t.alternate!==null&&t.alternate.child===t.child,s=0,c=0;if(r)for(var m=t.child;m!==null;)s|=m.lanes|m.childLanes,c|=m.subtreeFlags&65011712,c|=m.flags&65011712,m.return=t,m=m.sibling;else for(m=t.child;m!==null;)s|=m.lanes|m.childLanes,c|=m.subtreeFlags,c|=m.flags,m.return=t,m=m.sibling;return t.subtreeFlags|=c,t.childLanes=s,r}function e_(t,r,s){var c=r.pendingProps;switch(Ff(r),r.tag){case 31:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return gn(r),null;case 1:return gn(r),null;case 3:return s=r.stateNode,c=null,t!==null&&(c=t.memoizedState.cache),r.memoizedState.cache!==c&&(r.flags|=2048),ro(Yn),Ae(),s.pendingContext&&(s.context=s.pendingContext,s.pendingContext=null),(t===null||t.child===null)&&(Fl(r)?io(r):t===null||t.memoizedState.isDehydrated&&(r.flags&256)===0||(r.flags|=1024,Vg())),gn(r),null;case 26:return s=r.memoizedState,t===null?(io(r),s!==null?(gn(r),uv(r,s)):(gn(r),r.flags&=-16777217)):s?s!==t.memoizedState?(io(r),gn(r),uv(r,s)):(gn(r),r.flags&=-16777217):(t.memoizedProps!==c&&io(r),gn(r),r.flags&=-16777217),null;case 27:We(r),s=Se.current;var m=r.type;if(t!==null&&r.stateNode!=null)t.memoizedProps!==c&&io(r);else{if(!c){if(r.stateNode===null)throw Error(o(166));return gn(r),null}t=ue.current,Fl(r)?Hg(r):(t=ub(m,c,s),r.stateNode=t,io(r))}return gn(r),null;case 5:if(We(r),s=r.type,t!==null&&r.stateNode!=null)t.memoizedProps!==c&&io(r);else{if(!c){if(r.stateNode===null)throw Error(o(166));return gn(r),null}if(t=ue.current,Fl(r))Hg(r);else{switch(m=rd(Se.current),t){case 1:t=m.createElementNS("http://www.w3.org/2000/svg",s);break;case 2:t=m.createElementNS("http://www.w3.org/1998/Math/MathML",s);break;default:switch(s){case"svg":t=m.createElementNS("http://www.w3.org/2000/svg",s);break;case"math":t=m.createElementNS("http://www.w3.org/1998/Math/MathML",s);break;case"script":t=m.createElement("div"),t.innerHTML=" - + +
diff --git a/havano_restaurant_pos/www/dashboard.html b/havano_restaurant_pos/www/dashboard.html index 5926662..1c70511 100644 --- a/havano_restaurant_pos/www/dashboard.html +++ b/havano_restaurant_pos/www/dashboard.html @@ -5,8 +5,8 @@ dashboard - - + +