@nextblock-cms/ecom 0.18.8 → 0.19.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.cjs.js +1 -1
- package/index.es.js +26 -25
- package/lib/CurrencyProvider.cjs.js +1 -1
- package/lib/CurrencyProvider.es.js +41 -45
- package/lib/PaymentReadinessProvider.cjs.js +1 -1
- package/lib/PaymentReadinessProvider.es.js +15 -19
- package/lib/cart-store.cjs.js +1 -1
- package/lib/cart-store.d.ts +4 -0
- package/lib/cart-store.es.js +77 -69
- package/lib/components/AccountNavigationMenu.cjs.js +1 -1
- package/lib/components/AccountNavigationMenu.es.js +44 -62
- package/lib/components/AddToCartButton.cjs.js +1 -1
- package/lib/components/AddToCartButton.es.js +50 -78
- package/lib/components/Cart.cjs.js +1 -1
- package/lib/components/Cart.es.js +154 -381
- package/lib/components/CartDrawer.cjs.js +1 -1
- package/lib/components/CartDrawer.es.js +143 -297
- package/lib/components/CartIcon.cjs.js +1 -1
- package/lib/components/CartIcon.es.js +21 -47
- package/lib/components/Checkout.cjs.js +1 -1
- package/lib/components/Checkout.es.js +814 -1614
- package/lib/components/CouponForm.cjs.js +1 -1
- package/lib/components/CouponForm.es.js +104 -155
- package/lib/components/CurrencySwitcher.cjs.js +1 -1
- package/lib/components/CurrencySwitcher.es.js +14 -33
- package/lib/components/CustomerProfileForm.cjs.js +1 -1
- package/lib/components/CustomerProfileForm.es.js +264 -672
- package/lib/components/FeaturedProduct.cjs.js +1 -1
- package/lib/components/FeaturedProduct.es.js +46 -125
- package/lib/components/FreemiusLicensePanel.cjs.js +1 -1
- package/lib/components/FreemiusLicensePanel.es.js +45 -125
- package/lib/components/InvoiceDocument.cjs.js +1 -1
- package/lib/components/InvoiceDocument.es.js +148 -487
- package/lib/components/InvoiceViewerShell.cjs.js +2 -2
- package/lib/components/InvoiceViewerShell.d.ts +4 -1
- package/lib/components/InvoiceViewerShell.es.js +59 -142
- package/lib/components/ProductCard.cjs.js +1 -1
- package/lib/components/ProductCard.d.ts +3 -1
- package/lib/components/ProductCard.es.js +128 -242
- package/lib/components/ProductDetailsLayout.cjs.js +1 -1
- package/lib/components/ProductDetailsLayout.es.js +311 -652
- package/lib/components/ProductGallery.cjs.js +1 -1
- package/lib/components/ProductGallery.d.ts +2 -0
- package/lib/components/ProductGallery.es.js +37 -66
- package/lib/components/ProductGrid.cjs.js +1 -1
- package/lib/components/ProductGrid.es.js +23 -32
- package/lib/components/ShippingEstimator.cjs.js +1 -1
- package/lib/components/ShippingEstimator.es.js +118 -231
- package/lib/components/SimpleTiptapRenderer.cjs.js +1 -1
- package/lib/components/SimpleTiptapRenderer.es.js +111 -294
- package/lib/components/SubscriptionSelector.cjs.js +1 -1
- package/lib/components/SubscriptionSelector.es.js +120 -181
- package/lib/freemius-trial-provision.cjs.js +1 -0
- package/lib/freemius-trial-provision.d.ts +85 -0
- package/lib/freemius-trial-provision.es.js +136 -0
- package/lib/invoice.cjs.js +1 -1
- package/lib/invoice.d.ts +1 -1
- package/lib/invoice.es.js +6 -5
- package/lib/pages/cms/coupons/CouponEditorForm.cjs.js +1 -1
- package/lib/pages/cms/coupons/CouponEditorForm.es.js +115 -375
- package/lib/pages/cms/coupons/CouponsPage.cjs.js +2 -2
- package/lib/pages/cms/coupons/CouponsPage.es.js +116 -368
- package/lib/pages/cms/coupons/CreateCouponDialog.cjs.js +1 -1
- package/lib/pages/cms/coupons/CreateCouponDialog.es.js +26 -62
- package/lib/pages/cms/coupons/EditCouponPage.cjs.js +1 -1
- package/lib/pages/cms/coupons/EditCouponPage.es.js +35 -71
- package/lib/pages/cms/coupons/ProductScopePicker.cjs.js +1 -1
- package/lib/pages/cms/coupons/ProductScopePicker.es.js +72 -167
- package/lib/pages/cms/orders/ExportReportsDialog.cjs.js +1 -1
- package/lib/pages/cms/orders/ExportReportsDialog.es.js +87 -247
- package/lib/pages/cms/orders/OrderDetailPage.cjs.js +1 -1
- package/lib/pages/cms/orders/OrderDetailPage.es.js +95 -283
- package/lib/pages/cms/orders/OrderPrintButton.cjs.js +1 -1
- package/lib/pages/cms/orders/OrderPrintButton.es.js +9 -21
- package/lib/pages/cms/orders/OrderStatusForm.cjs.js +1 -1
- package/lib/pages/cms/orders/OrderStatusForm.es.js +46 -106
- package/lib/pages/cms/orders/OrdersPage.cjs.js +1 -1
- package/lib/pages/cms/orders/OrdersPage.es.js +78 -257
- package/lib/pages/cms/payments/PaymentsClient.cjs.js +1 -1
- package/lib/pages/cms/payments/PaymentsClient.es.js +192 -580
- package/lib/pages/cms/payments/PaymentsPage.cjs.js +1 -1
- package/lib/pages/cms/payments/PaymentsPage.es.js +14 -22
- package/lib/pages/cms/products/ProductsPage.cjs.js +1 -1
- package/lib/pages/cms/products/ProductsPage.es.js +47 -87
- package/lib/pages/cms/products/_id_/edit/EditProductPage.cjs.js +1 -1
- package/lib/pages/cms/products/_id_/edit/EditProductPage.es.js +97 -177
- package/lib/pages/cms/products/attributes/AttributeManagementPage.cjs.js +1 -1
- package/lib/pages/cms/products/attributes/AttributeManagementPage.es.js +40 -84
- package/lib/pages/cms/products/attributes/components/AttributeManager.cjs.js +1 -1
- package/lib/pages/cms/products/attributes/components/AttributeManager.es.js +192 -455
- package/lib/pages/cms/products/categories/CategoryManagementPage.cjs.js +1 -1
- package/lib/pages/cms/products/categories/CategoryManagementPage.es.js +28 -72
- package/lib/pages/cms/products/categories/components/CategoryManager.cjs.js +1 -1
- package/lib/pages/cms/products/categories/components/CategoryManager.es.js +183 -490
- package/lib/pages/cms/products/components/CopyProductFromLanguage.cjs.js +1 -1
- package/lib/pages/cms/products/components/CopyProductFromLanguage.es.js +69 -177
- package/lib/pages/cms/products/components/CurrencyPriceFields.cjs.js +1 -1
- package/lib/pages/cms/products/components/CurrencyPriceFields.es.js +102 -213
- package/lib/pages/cms/products/components/DeleteProductButton.cjs.js +1 -1
- package/lib/pages/cms/products/components/DeleteProductButton.es.js +25 -45
- package/lib/pages/cms/products/components/FreemiusPricingDashboard.cjs.js +1 -1
- package/lib/pages/cms/products/components/FreemiusPricingDashboard.es.js +58 -202
- package/lib/pages/cms/products/components/ProductCategorySelector.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductCategorySelector.es.js +89 -235
- package/lib/pages/cms/products/components/ProductForm.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductForm.es.js +526 -1110
- package/lib/pages/cms/products/components/ProductMediaManager.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductMediaManager.es.js +63 -154
- package/lib/pages/cms/products/components/ProductsBulkTable.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductsBulkTable.es.js +213 -544
- package/lib/pages/cms/products/components/SaleScheduleFields.cjs.js +1 -1
- package/lib/pages/cms/products/components/SaleScheduleFields.es.js +91 -207
- package/lib/pages/cms/products/components/SyncFreemiusButton.cjs.js +1 -1
- package/lib/pages/cms/products/components/SyncFreemiusButton.es.js +16 -28
- package/lib/pages/cms/products/components/SyncFreemiusPricingButton.cjs.js +2 -2
- package/lib/pages/cms/products/components/SyncFreemiusPricingButton.es.js +25 -37
- package/lib/pages/cms/products/components/VariationsEditor.cjs.js +1 -1
- package/lib/pages/cms/products/components/VariationsEditor.es.js +261 -492
- package/lib/pages/cms/products/inventory/InventoryPage.cjs.js +1 -1
- package/lib/pages/cms/products/inventory/InventoryPage.es.js +12 -32
- package/lib/pages/cms/products/inventory/InventoryTableClient.cjs.js +2 -2
- package/lib/pages/cms/products/inventory/InventoryTableClient.es.js +145 -365
- package/lib/pages/cms/products/new/NewProductPage.cjs.js +1 -1
- package/lib/pages/cms/products/new/NewProductPage.es.js +30 -42
- package/lib/pages/cms/shipping/ShippingPage.cjs.js +2 -2
- package/lib/pages/cms/shipping/ShippingPage.es.js +155 -507
- package/lib/pages/cms/shipping/components/RateForm.cjs.js +1 -1
- package/lib/pages/cms/shipping/components/RateForm.es.js +334 -717
- package/lib/pages/cms/shipping/components/ZoneForm.cjs.js +1 -1
- package/lib/pages/cms/shipping/components/ZoneForm.es.js +158 -392
- package/lib/pages/cms/taxes/TaxesPage.cjs.js +1 -1
- package/lib/pages/cms/taxes/TaxesPage.es.js +119 -447
- package/lib/pages/cms/taxes/components/TaxRateForm.cjs.js +1 -1
- package/lib/pages/cms/taxes/components/TaxRateForm.es.js +52 -156
- package/lib/product-context.cjs.js +1 -1
- package/lib/product-context.es.js +10 -14
- package/lib/trials.cjs.js +1 -1
- package/lib/trials.d.ts +10 -3
- package/lib/trials.es.js +28 -21
- package/lib/types.d.ts +2 -0
- package/lib/use-price-formatter.cjs.js +1 -0
- package/lib/use-price-formatter.d.ts +11 -0
- package/lib/use-price-formatter.es.js +13 -0
- package/lib/variation-utils.cjs.js +1 -1
- package/lib/variation-utils.d.ts +10 -0
- package/lib/variation-utils.es.js +139 -123
- package/package.json +4 -4
- package/server.cjs.js +1 -1
- package/server.d.ts +1 -0
- package/server.es.js +180 -172
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-dev-runtime"),a=require("react"),i=require("@nextblock-cms/ui"),j=require("lucide-react"),Z=require("../server-actions.cjs.js"),N=require("@nextblock-cms/utils"),y=require("../../../../currency.cjs.js"),z=require("../../../../shipping-rate-currency.cjs.js");function F(u,p){if(typeof u!="number")return"";const c=N.minorUnitAmountToMajor(u,p);return N.getCurrencyMinorUnitFactor(p)===1?c.toFixed(0):c.toFixed(2)}function re(u){return u.reduce((p,c)=>(p[c.code]=N.getCurrencyMinorUnitFactor(c.code)===1?"0":"0.00",p),{})}function D(u,p){const c=String(u||"").trim();if(!c)return null;const h=Number(c);return!Number.isFinite(h)||h<0?null:N.majorUnitAmountToMinor(h,p)}function J(u){return u.currencies.reduce((p,c)=>(p[c.code]=F(u.amounts[c.code],c.code),p),{})}function ie({zoneId:u,zoneName:p,languages:c,currencies:h=[],defaultCurrencyCode:K="USD",mode:Q="create",initialData:l}){const[S,_]=a.useState(!1),v=Q==="edit",I=a.useMemo(()=>c.find(s=>s.is_default)||c[0]||null,[c]),O=a.useMemo(()=>c.filter(s=>!s.is_default),[c]),E=N.normalizeCurrencyCode(K),n=a.useMemo(()=>{const s=y.normalizeCurrencyRecord({code:E,symbol:E,exchange_rate:1,is_default:!0,is_active:!0}),o=(h.length>0?h:[s]).map(r=>y.normalizeCurrencyRecord(r)).filter(r=>r.is_active!==!1).sort((r,m)=>r.is_default!==m.is_default?r.is_default?-1:1:r.code.localeCompare(m.code));return o.length>0?o:[s]},[h,E]),x=a.useMemo(()=>n.find(s=>s.is_default)||n[0],[n]),[U,L]=a.useState(l?.name||""),[q,$]=a.useState(l?.name_translations||{}),[g,P]=a.useState(l?.method_type||"flat_rate"),[d,G]=a.useState(z.normalizeShippingRateCurrencyMode(l?.currency_pricing_mode)),[t,A]=a.useState(N.normalizeCurrencyCode(l?.cost_currency||x?.code||E)),[f,C]=a.useState({}),[k,B]=a.useState({}),[M,V]=a.useState(!1),w=a.useMemo(()=>{if(d==="manual")return n.reduce((r,m)=>(r[m.code]=f[m.code]??"",r),{});const s=n.reduce((r,m)=>(r[m.code]=f[m.code]??(m.code===t,""),r),{}),o=D(f[t],t);if(o===null)return s;for(const r of n){if(r.code===t){s[r.code]=f[r.code]??F(o,r.code);continue}s[r.code]=F(y.convertMinorUnitAmount({amount:o,fromCurrencyCode:t,toCurrencyCode:r.code,currencies:n}),r.code)}return s},[n,f,d,t]),T=a.useMemo(()=>{if(d==="manual")return n.reduce((r,m)=>(r[m.code]=k[m.code]??"",r),{});const s=n.reduce((r,m)=>(r[m.code]=k[m.code]??"",r),{}),o=D(k[t],t);if(o===null)return s;for(const r of n){if(r.code===t){s[r.code]=k[r.code]??F(o,r.code);continue}s[r.code]=F(y.convertMinorUnitAmount({amount:o,fromCurrencyCode:t,toCurrencyCode:r.code,currencies:n}),r.code)}return s},[n,k,d,t]);a.useEffect(()=>{x&&(n.some(s=>s.code===t)||A(x.code))},[n,x,t]),a.useEffect(()=>{if(!S||!x)return;const s=z.normalizeShippingRateCurrencyMode(l?.currency_pricing_mode),o=z.sanitizeShippingRateAmountMaps({currencies:n,mode:s,sourceCurrencyCode:l?.cost_currency||x.code,costAmounts:l?.cost_amounts||void 0,minOrderAmounts:l?.min_order_amounts||void 0,fallbackCostAmount:l?.cost_amount,fallbackMinOrderAmount:l?.min_order_amount});L(l?.name||""),$(l?.name_translations||{}),P(l?.method_type||"flat_rate"),G(s),A(o.sourceCurrencyCode),C(J({amounts:o.costAmounts,currencies:n})),B(J({amounts:o.minOrderAmounts,currencies:n}))},[n,x,l,S]);const W=s=>{s!==d&&(s==="manual"&&(C(w),B(T)),G(s))},Y=s=>{const o=N.normalizeCurrencyCode(s);C(r=>({...r,[o]:w[o]??r[o]??""})),B(r=>({...r,[o]:T[o]??r[o]??""})),A(o)},ee=s=>{P(s),s==="free_shipping"&&C(re(n))},se=async s=>{s.preventDefault(),V(!0);const o={},r={};if(d==="manual")for(const H of n){const b=H.code;if(g==="free_shipping")o[b]=0;else{const X=D(f[b],b);if(X===null){V(!1),alert(`Enter a valid shipping cost for ${b}.`);return}o[b]=X}r[b]=D(k[b],b)??0}else{const H=g==="free_shipping"?0:D(f[t],t);if(H===null){V(!1),alert(`Enter a valid shipping cost for ${t}.`);return}o[t]=H,r[t]=D(k[t],t)??0}const m={name:U,nameTranslations:q,type:g,currencyPricingMode:d,sourceCurrencyCode:t,costAmounts:o,minOrderAmounts:r},R=v&&l?.id?await Z.updateShippingRate(l.id,m):await Z.createShippingRate(u,m);V(!1),R.success?_(!1):R.error&&alert(R.error)};return e.jsxDEV(i.Dialog,{open:S,onOpenChange:_,children:[e.jsxDEV(i.DialogTrigger,{asChild:!0,children:v?e.jsxDEV(i.Button,{variant:"ghost",size:"icon",className:"h-7 w-7 text-slate-400 hover:text-primary",children:e.jsxDEV(j.Edit2,{className:"h-3 w-3"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:450,columnNumber:25},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:449,columnNumber:21},this):e.jsxDEV(i.Button,{variant:"outline",size:"sm",className:"h-8 gap-1.5 border-dashed hover:border-solid shadow-sm",children:[e.jsxDEV(j.Plus,{className:"h-3.5 w-3.5"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:454,columnNumber:25},this),"Add Rate"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:453,columnNumber:21},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:447,columnNumber:13},this),e.jsxDEV(i.DialogContent,{className:"max-h-[85vh] max-w-4xl overflow-y-auto",children:e.jsxDEV("form",{onSubmit:se,children:[e.jsxDEV(i.DialogHeader,{children:[e.jsxDEV(i.DialogTitle,{children:v?"Edit Shipping Rate":"Add Shipping Rate"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:462,columnNumber:25},this),e.jsxDEV(i.DialogDescription,{children:["Configure shipping costs and localized labels for matching orders in ",e.jsxDEV("strong",{children:p},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:464,columnNumber:98},this),"."]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:463,columnNumber:25},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:461,columnNumber:21},this),e.jsxDEV("div",{className:"grid gap-5 py-6",children:[e.jsxDEV("div",{className:"space-y-2",children:[e.jsxDEV(i.Label,{htmlFor:"rate-name",children:["Rate Name",I?` (${I.name})`:""]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:470,columnNumber:29},this),e.jsxDEV(i.Input,{id:"rate-name",value:U,onChange:s=>L(s.target.value),placeholder:"e.g. Standard, Express, Free Shipping",required:!0},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:473,columnNumber:29},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:469,columnNumber:25},this),O.length>0&&e.jsxDEV("div",{className:"space-y-4 rounded-xl border bg-slate-50/70 p-4 dark:bg-slate-900/40",children:[e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV(j.Languages,{className:"h-4 w-4 text-slate-500"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:485,columnNumber:31},this),e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-sm font-medium",children:"Translations"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:487,columnNumber:33},this),e.jsxDEV("p",{className:"text-xs text-muted-foreground",children:"Add translated shipping rate labels for the active storefront languages."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:488,columnNumber:33},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:486,columnNumber:31},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:484,columnNumber:29},this),e.jsxDEV("div",{className:"grid gap-4 md:grid-cols-2",children:O.map(s=>e.jsxDEV("div",{className:"space-y-2",children:[e.jsxDEV(i.Label,{htmlFor:`rate-name-${s.code}`,children:s.name},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:497,columnNumber:35},this),e.jsxDEV(i.Input,{id:`rate-name-${s.code}`,value:q[s.code]||"",onChange:o=>$(r=>({...r,[s.code]:o.target.value})),placeholder:U||"Translated label"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:500,columnNumber:35},this)]},s.code,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:496,columnNumber:33},this))},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:494,columnNumber:29},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:483,columnNumber:27},this),e.jsxDEV("div",{className:"space-y-2",children:[e.jsxDEV(i.Label,{htmlFor:"type",children:"Method Type"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:518,columnNumber:29},this),e.jsxDEV(i.Select,{value:g,onValueChange:ee,children:[e.jsxDEV(i.SelectTrigger,{id:"type",className:"bg-slate-50/50 dark:bg-slate-900/50",children:e.jsxDEV(i.SelectValue,{placeholder:"Select type"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:527,columnNumber:37},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:523,columnNumber:33},this),e.jsxDEV(i.SelectContent,{children:[e.jsxDEV(i.SelectItem,{value:"flat_rate",children:e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV("div",{className:"p-1 min-w-5 h-5 rounded bg-emerald-100 dark:bg-emerald-900/30 text-emerald-600",children:e.jsxDEV(j.DollarSign,{className:"h-3 w-3"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:533,columnNumber:49},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:532,columnNumber:45},this),e.jsxDEV("span",{children:"Flat Rate"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:535,columnNumber:45},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:531,columnNumber:41},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:530,columnNumber:37},this),e.jsxDEV(i.SelectItem,{value:"free_shipping",children:e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV("div",{className:"p-1 min-w-5 h-5 rounded bg-amber-100 dark:bg-amber-900/30 text-amber-600",children:e.jsxDEV(j.Gift,{className:"h-3 w-3"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:541,columnNumber:49},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:540,columnNumber:45},this),e.jsxDEV("span",{children:"Free Shipping"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:543,columnNumber:45},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:539,columnNumber:41},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:538,columnNumber:37},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:529,columnNumber:33},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:519,columnNumber:29},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:517,columnNumber:25},this),e.jsxDEV("div",{className:"space-y-3 rounded-xl border bg-slate-50/70 p-4 dark:bg-slate-900/40",children:[e.jsxDEV("label",{className:"flex items-start gap-3",children:[e.jsxDEV("input",{type:"checkbox",checked:d==="auto",onChange:s=>W(s.target.checked?"auto":"manual"),className:"mt-1 h-4 w-4 rounded border-slate-300 text-primary focus:ring-primary"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:552,columnNumber:33},this),e.jsxDEV("span",{className:"space-y-1",children:[e.jsxDEV("span",{className:"block text-sm font-medium text-slate-900 dark:text-slate-100",children:"Auto-sync all currency rates from one source amount"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:563,columnNumber:37},this),e.jsxDEV("span",{className:"block text-xs text-muted-foreground",children:"Turn this off to set exact shipping costs and free-shipping thresholds for every active currency manually."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:566,columnNumber:37},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:562,columnNumber:33},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:551,columnNumber:29},this),d==="auto"?e.jsxDEV("div",{className:"space-y-2",children:[e.jsxDEV(i.Label,{htmlFor:"rate-currency",children:"Sync From Currency"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:574,columnNumber:37},this),e.jsxDEV(i.Select,{value:t,onValueChange:Y,children:[e.jsxDEV(i.SelectTrigger,{id:"rate-currency",className:"bg-background",children:e.jsxDEV(i.SelectValue,{placeholder:"Select currency"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:583,columnNumber:45},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:579,columnNumber:41},this),e.jsxDEV(i.SelectContent,{children:n.map(s=>e.jsxDEV(i.SelectItem,{value:s.code,children:[s.code,s.is_default?" (Default)":""]},s.code,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:587,columnNumber:49},this))},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:585,columnNumber:41},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:575,columnNumber:37},this),e.jsxDEV("p",{className:"text-[10px] text-slate-500",children:"Enter the source amount once and the other currencies will be derived automatically using the current FX rates."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:594,columnNumber:37},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:573,columnNumber:33},this):e.jsxDEV("p",{className:"text-[10px] text-slate-500",children:"Manual mode stores exact values per currency. This is the best choice when shipping should not follow exchange-rate math directly."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:599,columnNumber:33},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:550,columnNumber:25},this),e.jsxDEV("div",{className:"space-y-3",children:[e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-sm font-medium",children:"Currency Rates"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:607,columnNumber:33},this),e.jsxDEV("p",{className:"text-xs text-muted-foreground",children:g==="free_shipping"?"Free-shipping methods keep cost at zero, but you can still control the threshold per currency.":d==="auto"?`Only ${t} is editable. The rest are derived automatically.`:"Set the exact shopper-facing shipping price for each active currency."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:608,columnNumber:33},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:606,columnNumber:29},this),e.jsxDEV("div",{className:"grid gap-4 md:grid-cols-2 xl:grid-cols-3",children:n.map(s=>{const o=d==="auto"&&s.code!==t,r=N.getCurrencyMinorUnitFactor(s.code)===1?"1":"0.01";return e.jsxDEV("div",{className:"space-y-4 rounded-xl border bg-card/70 p-4 shadow-sm",children:[e.jsxDEV("div",{className:"flex items-center justify-between gap-2",children:[e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"font-medium",children:s.code},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:634,columnNumber:53},this),e.jsxDEV("p",{className:"text-xs text-muted-foreground",children:["Rate ",s.exchange_rate]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:635,columnNumber:53},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:633,columnNumber:49},this),e.jsxDEV("div",{className:"flex flex-wrap items-center gap-2",children:[s.is_default?e.jsxDEV(i.Badge,{variant:"outline",children:"Default"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:641,columnNumber:57},this):null,d==="auto"&&s.code===t?e.jsxDEV(i.Badge,{children:"Source"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:645,columnNumber:57},this):null,o?e.jsxDEV(i.Badge,{variant:"outline",children:"Derived"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:648,columnNumber:57},this):null]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:639,columnNumber:49},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:632,columnNumber:45},this),e.jsxDEV("div",{className:"space-y-2",children:[e.jsxDEV(i.Label,{htmlFor:`rate-cost-${s.code}`,children:["Cost (",s.code,")"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:654,columnNumber:49},this),e.jsxDEV("div",{className:"relative",children:[e.jsxDEV(j.DollarSign,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-slate-400"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:658,columnNumber:53},this),e.jsxDEV(i.Input,{id:`rate-cost-${s.code}`,type:"number",step:r,min:"0",value:w[s.code]??"",onChange:m=>C(R=>({...R,[s.code]:m.target.value})),className:"pl-9 bg-slate-50/50 dark:bg-slate-900/50 disabled:opacity-70",disabled:g==="free_shipping"||o,required:g!=="free_shipping"&&d==="manual"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:659,columnNumber:53},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:657,columnNumber:49},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:653,columnNumber:45},this),e.jsxDEV("div",{className:"space-y-2",children:[e.jsxDEV(i.Label,{htmlFor:`rate-threshold-${s.code}`,children:["Free-Shipping Threshold (",s.code,")"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:682,columnNumber:49},this),e.jsxDEV("div",{className:"relative",children:[e.jsxDEV(j.DollarSign,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-slate-400"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:686,columnNumber:53},this),e.jsxDEV(i.Input,{id:`rate-threshold-${s.code}`,type:"number",step:r,min:"0",value:T[s.code]??"",onChange:m=>B(R=>({...R,[s.code]:m.target.value})),className:"pl-9 bg-slate-50/50 dark:bg-slate-900/50 disabled:opacity-70",disabled:o,placeholder:N.getCurrencyMinorUnitFactor(s.code)===1?"0":"0.00"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:687,columnNumber:53},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:685,columnNumber:49},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:681,columnNumber:45},this),o?e.jsxDEV("p",{className:"text-[10px] text-muted-foreground",children:["This currency is synced automatically from ",t,"."]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:711,columnNumber:49},this):d==="manual"?e.jsxDEV("p",{className:"text-[10px] text-muted-foreground",children:"Enter the exact amount shoppers should see in this currency."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:715,columnNumber:49},this):null]},s.code,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:628,columnNumber:41},this)})},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:617,columnNumber:29},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:605,columnNumber:25},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:468,columnNumber:21},this),e.jsxDEV(i.DialogFooter,{className:"bg-slate-50 dark:bg-slate-900/50 -mx-6 -mb-6 p-4 border-t dark:border-slate-800",children:[e.jsxDEV(i.Button,{type:"button",variant:"ghost",onClick:()=>_(!1),disabled:M,children:"Cancel"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:727,columnNumber:25},this),e.jsxDEV(i.Button,{type:"submit",disabled:M||!U.trim(),children:M?v?"Saving...":"Adding...":v?"Save Changes":"Add Rate"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:728,columnNumber:25},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:726,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:460,columnNumber:17},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:459,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/shipping/components/RateForm.tsx",lineNumber:446,columnNumber:9},this)}exports.RateForm=ie;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),i=require("react"),r=require("@nextblock-cms/ui"),C=require("lucide-react"),Z=require("../server-actions.cjs.js"),p=require("@nextblock-cms/utils"),T=require("../../../../currency.cjs.js"),$=require("../../../../shipping-rate-currency.cjs.js");function A(h,m){if(typeof h!="number")return"";const d=p.minorUnitAmountToMajor(h,m);return p.getCurrencyMinorUnitFactor(m)===1?d.toFixed(0):d.toFixed(2)}function te(h){return h.reduce((m,d)=>(m[d.code]=p.getCurrencyMinorUnitFactor(d.code)===1?"0":"0.00",m),{})}function N(h,m){const d=String(h||"").trim();if(!d)return null;const g=Number(d);return!Number.isFinite(g)||g<0?null:p.majorUnitAmountToMinor(g,m)}function J(h){return h.currencies.reduce((m,d)=>(m[d.code]=A(h.amounts[d.code],d.code),m),{})}function re({zoneId:h,zoneName:m,languages:d,currencies:g=[],defaultCurrencyCode:K="USD",mode:Q="create",initialData:l}){const[z,I]=i.useState(!1),S=Q==="edit",U=i.useMemo(()=>d.find(s=>s.is_default)||d[0]||null,[d]),B=i.useMemo(()=>d.filter(s=>!s.is_default),[d]),M=p.normalizeCurrencyCode(K),a=i.useMemo(()=>{const s=T.normalizeCurrencyRecord({code:M,symbol:M,exchange_rate:1,is_default:!0,is_active:!0}),n=(g.length>0?g:[s]).map(t=>T.normalizeCurrencyRecord(t)).filter(t=>t.is_active!==!1).sort((t,c)=>t.is_default!==c.is_default?t.is_default?-1:1:t.code.localeCompare(c.code));return n.length>0?n:[s]},[g,M]),f=i.useMemo(()=>a.find(s=>s.is_default)||a[0],[a]),[F,P]=i.useState(l?.name||""),[V,D]=i.useState(l?.name_translations||{}),[j,G]=i.useState(l?.method_type||"flat_rate"),[u,H]=i.useState($.normalizeShippingRateCurrencyMode(l?.currency_pricing_mode)),[o,O]=i.useState(p.normalizeCurrencyCode(l?.cost_currency||f?.code||M)),[b,_]=i.useState({}),[v,w]=i.useState({}),[E,k]=i.useState(!1),L=i.useMemo(()=>{if(u==="manual")return a.reduce((t,c)=>(t[c.code]=b[c.code]??"",t),{});const s=a.reduce((t,c)=>(t[c.code]=b[c.code]??(c.code===o,""),t),{}),n=N(b[o],o);if(n===null)return s;for(const t of a){if(t.code===o){s[t.code]=b[t.code]??A(n,t.code);continue}s[t.code]=A(T.convertMinorUnitAmount({amount:n,fromCurrencyCode:o,toCurrencyCode:t.code,currencies:a}),t.code)}return s},[a,b,u,o]),q=i.useMemo(()=>{if(u==="manual")return a.reduce((t,c)=>(t[c.code]=v[c.code]??"",t),{});const s=a.reduce((t,c)=>(t[c.code]=v[c.code]??"",t),{}),n=N(v[o],o);if(n===null)return s;for(const t of a){if(t.code===o){s[t.code]=v[t.code]??A(n,t.code);continue}s[t.code]=A(T.convertMinorUnitAmount({amount:n,fromCurrencyCode:o,toCurrencyCode:t.code,currencies:a}),t.code)}return s},[a,v,u,o]);i.useEffect(()=>{f&&(a.some(s=>s.code===o)||O(f.code))},[a,f,o]),i.useEffect(()=>{if(!z||!f)return;const s=$.normalizeShippingRateCurrencyMode(l?.currency_pricing_mode),n=$.sanitizeShippingRateAmountMaps({currencies:a,mode:s,sourceCurrencyCode:l?.cost_currency||f.code,costAmounts:l?.cost_amounts||void 0,minOrderAmounts:l?.min_order_amounts||void 0,fallbackCostAmount:l?.cost_amount,fallbackMinOrderAmount:l?.min_order_amount});P(l?.name||""),D(l?.name_translations||{}),G(l?.method_type||"flat_rate"),H(s),O(n.sourceCurrencyCode),_(J({amounts:n.costAmounts,currencies:a})),w(J({amounts:n.minOrderAmounts,currencies:a}))},[a,f,l,z]);const W=s=>{s!==u&&(s==="manual"&&(_(L),w(q)),H(s))},Y=s=>{const n=p.normalizeCurrencyCode(s);_(t=>({...t,[n]:L[n]??t[n]??""})),w(t=>({...t,[n]:q[n]??t[n]??""})),O(n)},ee=s=>{G(s),s==="free_shipping"&&_(te(a))},se=async s=>{s.preventDefault(),k(!0);const n={},t={};if(u==="manual")for(const R of a){const x=R.code;if(j==="free_shipping")n[x]=0;else{const X=N(b[x],x);if(X===null){k(!1),alert(`Enter a valid shipping cost for ${x}.`);return}n[x]=X}t[x]=N(v[x],x)??0}else{const R=j==="free_shipping"?0:N(b[o],o);if(R===null){k(!1),alert(`Enter a valid shipping cost for ${o}.`);return}n[o]=R,t[o]=N(v[o],o)??0}const c={name:F,nameTranslations:V,type:j,currencyPricingMode:u,sourceCurrencyCode:o,costAmounts:n,minOrderAmounts:t},y=S&&l?.id?await Z.updateShippingRate(l.id,c):await Z.createShippingRate(h,c);k(!1),y.success?I(!1):y.error&&alert(y.error)};return e.jsxs(r.Dialog,{open:z,onOpenChange:I,children:[e.jsx(r.DialogTrigger,{asChild:!0,children:S?e.jsx(r.Button,{variant:"ghost",size:"icon",className:"h-7 w-7 text-slate-400 hover:text-primary",children:e.jsx(C.Edit2,{className:"h-3 w-3"})}):e.jsxs(r.Button,{variant:"outline",size:"sm",className:"h-8 gap-1.5 border-dashed hover:border-solid shadow-sm",children:[e.jsx(C.Plus,{className:"h-3.5 w-3.5"}),"Add Rate"]})}),e.jsx(r.DialogContent,{className:"max-h-[85vh] max-w-4xl overflow-y-auto",children:e.jsxs("form",{onSubmit:se,children:[e.jsxs(r.DialogHeader,{children:[e.jsx(r.DialogTitle,{children:S?"Edit Shipping Rate":"Add Shipping Rate"}),e.jsxs(r.DialogDescription,{children:["Configure shipping costs and localized labels for matching orders in ",e.jsx("strong",{children:m}),"."]})]}),e.jsxs("div",{className:"grid gap-5 py-6",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs(r.Label,{htmlFor:"rate-name",children:["Rate Name",U?` (${U.name})`:""]}),e.jsx(r.Input,{id:"rate-name",value:F,onChange:s=>P(s.target.value),placeholder:"e.g. Standard, Express, Free Shipping",required:!0})]}),B.length>0&&e.jsxs("div",{className:"space-y-4 rounded-xl border bg-slate-50/70 p-4 dark:bg-slate-900/40",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(C.Languages,{className:"h-4 w-4 text-slate-500"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:"Translations"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Add translated shipping rate labels for the active storefront languages."})]})]}),e.jsx("div",{className:"grid gap-4 md:grid-cols-2",children:B.map(s=>e.jsxs("div",{className:"space-y-2",children:[e.jsx(r.Label,{htmlFor:`rate-name-${s.code}`,children:s.name}),e.jsx(r.Input,{id:`rate-name-${s.code}`,value:V[s.code]||"",onChange:n=>D(t=>({...t,[s.code]:n.target.value})),placeholder:F||"Translated label"})]},s.code))})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(r.Label,{htmlFor:"type",children:"Method Type"}),e.jsxs(r.Select,{value:j,onValueChange:ee,children:[e.jsx(r.SelectTrigger,{id:"type",className:"bg-slate-50/50 dark:bg-slate-900/50",children:e.jsx(r.SelectValue,{placeholder:"Select type"})}),e.jsxs(r.SelectContent,{children:[e.jsx(r.SelectItem,{value:"flat_rate",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"p-1 min-w-5 h-5 rounded bg-emerald-100 dark:bg-emerald-900/30 text-emerald-600",children:e.jsx(C.DollarSign,{className:"h-3 w-3"})}),e.jsx("span",{children:"Flat Rate"})]})}),e.jsx(r.SelectItem,{value:"free_shipping",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"p-1 min-w-5 h-5 rounded bg-amber-100 dark:bg-amber-900/30 text-amber-600",children:e.jsx(C.Gift,{className:"h-3 w-3"})}),e.jsx("span",{children:"Free Shipping"})]})})]})]})]}),e.jsxs("div",{className:"space-y-3 rounded-xl border bg-slate-50/70 p-4 dark:bg-slate-900/40",children:[e.jsxs("label",{className:"flex items-start gap-3",children:[e.jsx("input",{type:"checkbox",checked:u==="auto",onChange:s=>W(s.target.checked?"auto":"manual"),className:"mt-1 h-4 w-4 rounded border-slate-300 text-primary focus:ring-primary"}),e.jsxs("span",{className:"space-y-1",children:[e.jsx("span",{className:"block text-sm font-medium text-slate-900 dark:text-slate-100",children:"Auto-sync all currency rates from one source amount"}),e.jsx("span",{className:"block text-xs text-muted-foreground",children:"Turn this off to set exact shipping costs and free-shipping thresholds for every active currency manually."})]})]}),u==="auto"?e.jsxs("div",{className:"space-y-2",children:[e.jsx(r.Label,{htmlFor:"rate-currency",children:"Sync From Currency"}),e.jsxs(r.Select,{value:o,onValueChange:Y,children:[e.jsx(r.SelectTrigger,{id:"rate-currency",className:"bg-background",children:e.jsx(r.SelectValue,{placeholder:"Select currency"})}),e.jsx(r.SelectContent,{children:a.map(s=>e.jsxs(r.SelectItem,{value:s.code,children:[s.code,s.is_default?" (Default)":""]},s.code))})]}),e.jsx("p",{className:"text-[10px] text-slate-500",children:"Enter the source amount once and the other currencies will be derived automatically using the current FX rates."})]}):e.jsx("p",{className:"text-[10px] text-slate-500",children:"Manual mode stores exact values per currency. This is the best choice when shipping should not follow exchange-rate math directly."})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:"Currency Rates"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:j==="free_shipping"?"Free-shipping methods keep cost at zero, but you can still control the threshold per currency.":u==="auto"?`Only ${o} is editable. The rest are derived automatically.`:"Set the exact shopper-facing shipping price for each active currency."})]}),e.jsx("div",{className:"grid gap-4 md:grid-cols-2 xl:grid-cols-3",children:a.map(s=>{const n=u==="auto"&&s.code!==o,t=p.getCurrencyMinorUnitFactor(s.code)===1?"1":"0.01";return e.jsxs("div",{className:"space-y-4 rounded-xl border bg-card/70 p-4 shadow-sm",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium",children:s.code}),e.jsxs("p",{className:"text-xs text-muted-foreground",children:["Rate ",s.exchange_rate]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[s.is_default?e.jsx(r.Badge,{variant:"outline",children:"Default"}):null,u==="auto"&&s.code===o?e.jsx(r.Badge,{children:"Source"}):null,n?e.jsx(r.Badge,{variant:"outline",children:"Derived"}):null]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(r.Label,{htmlFor:`rate-cost-${s.code}`,children:["Cost (",s.code,")"]}),e.jsxs("div",{className:"relative",children:[e.jsx(C.DollarSign,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-slate-400"}),e.jsx(r.Input,{id:`rate-cost-${s.code}`,type:"number",step:t,min:"0",value:L[s.code]??"",onChange:c=>_(y=>({...y,[s.code]:c.target.value})),className:"pl-9 bg-slate-50/50 dark:bg-slate-900/50 disabled:opacity-70",disabled:j==="free_shipping"||n,required:j!=="free_shipping"&&u==="manual"})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(r.Label,{htmlFor:`rate-threshold-${s.code}`,children:["Free-Shipping Threshold (",s.code,")"]}),e.jsxs("div",{className:"relative",children:[e.jsx(C.DollarSign,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-slate-400"}),e.jsx(r.Input,{id:`rate-threshold-${s.code}`,type:"number",step:t,min:"0",value:q[s.code]??"",onChange:c=>w(y=>({...y,[s.code]:c.target.value})),className:"pl-9 bg-slate-50/50 dark:bg-slate-900/50 disabled:opacity-70",disabled:n,placeholder:p.getCurrencyMinorUnitFactor(s.code)===1?"0":"0.00"})]})]}),n?e.jsxs("p",{className:"text-[10px] text-muted-foreground",children:["This currency is synced automatically from ",o,"."]}):u==="manual"?e.jsx("p",{className:"text-[10px] text-muted-foreground",children:"Enter the exact amount shoppers should see in this currency."}):null]},s.code)})})]})]}),e.jsxs(r.DialogFooter,{className:"bg-slate-50 dark:bg-slate-900/50 -mx-6 -mb-6 p-4 border-t dark:border-slate-800",children:[e.jsx(r.Button,{type:"button",variant:"ghost",onClick:()=>I(!1),disabled:E,children:"Cancel"}),e.jsx(r.Button,{type:"submit",disabled:E||!F.trim(),children:E?S?"Saving...":"Adding...":S?"Save Changes":"Add Rate"})]})]})})]})}exports.RateForm=re;
|