@aglyn/plugins-commerce 1.0.0-beta.143
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/LICENSE +201 -0
- package/README.md +10 -0
- package/package.json +57 -0
- package/src/index.d.ts +38 -0
- package/src/index.js +38 -0
- package/src/index.js.map +1 -0
- package/src/lib/components/account.d.ts +31 -0
- package/src/lib/components/account.js +645 -0
- package/src/lib/components/account.js.map +1 -0
- package/src/lib/components/cart.d.ts +38 -0
- package/src/lib/components/cart.js +851 -0
- package/src/lib/components/cart.js.map +1 -0
- package/src/lib/components/commerce-console-page.d.ts +32 -0
- package/src/lib/components/commerce-console-page.js +296 -0
- package/src/lib/components/commerce-console-page.js.map +1 -0
- package/src/lib/components/commerce-console-sections.d.ts +34 -0
- package/src/lib/components/commerce-console-sections.js +62 -0
- package/src/lib/components/commerce-console-sections.js.map +1 -0
- package/src/lib/components/console/catalog-organization-card.component.d.ts +14 -0
- package/src/lib/components/console/catalog-organization-card.component.js +1087 -0
- package/src/lib/components/console/catalog-organization-card.component.js.map +1 -0
- package/src/lib/components/console/commerce-analytics-card.component.d.ts +27 -0
- package/src/lib/components/console/commerce-analytics-card.component.js +310 -0
- package/src/lib/components/console/commerce-analytics-card.component.js.map +1 -0
- package/src/lib/components/console/commerce-glance-card.component.d.ts +20 -0
- package/src/lib/components/console/commerce-glance-card.component.js +340 -0
- package/src/lib/components/console/commerce-glance-card.component.js.map +1 -0
- package/src/lib/components/console/commerce-stat-tile.component.d.ts +37 -0
- package/src/lib/components/console/commerce-stat-tile.component.js +72 -0
- package/src/lib/components/console/commerce-stat-tile.component.js.map +1 -0
- package/src/lib/components/console/discounts-card.component.d.ts +14 -0
- package/src/lib/components/console/discounts-card.component.js +443 -0
- package/src/lib/components/console/discounts-card.component.js.map +1 -0
- package/src/lib/components/console/entitlement-gate.component.d.ts +76 -0
- package/src/lib/components/console/entitlement-gate.component.js +115 -0
- package/src/lib/components/console/entitlement-gate.component.js.map +1 -0
- package/src/lib/components/console/gift-cards-card.component.d.ts +29 -0
- package/src/lib/components/console/gift-cards-card.component.js +379 -0
- package/src/lib/components/console/gift-cards-card.component.js.map +1 -0
- package/src/lib/components/console/host-coupons-card.component.d.ts +14 -0
- package/src/lib/components/console/host-coupons-card.component.js +252 -0
- package/src/lib/components/console/host-coupons-card.component.js.map +1 -0
- package/src/lib/components/console/host-orders-card.component.d.ts +13 -0
- package/src/lib/components/console/host-orders-card.component.js +861 -0
- package/src/lib/components/console/host-orders-card.component.js.map +1 -0
- package/src/lib/components/console/locations-card.component.d.ts +14 -0
- package/src/lib/components/console/locations-card.component.js +256 -0
- package/src/lib/components/console/locations-card.component.js.map +1 -0
- package/src/lib/components/console/member-posts-card.component.d.ts +8 -0
- package/src/lib/components/console/member-posts-card.component.js +283 -0
- package/src/lib/components/console/member-posts-card.component.js.map +1 -0
- package/src/lib/components/console/newest-site-users-card.component.d.ts +36 -0
- package/src/lib/components/console/newest-site-users-card.component.js +126 -0
- package/src/lib/components/console/newest-site-users-card.component.js.map +1 -0
- package/src/lib/components/console/order-detail-dialog.component.d.ts +28 -0
- package/src/lib/components/console/order-detail-dialog.component.js +976 -0
- package/src/lib/components/console/order-detail-dialog.component.js.map +1 -0
- package/src/lib/components/console/paid-media.d.ts +127 -0
- package/src/lib/components/console/paid-media.js +397 -0
- package/src/lib/components/console/paid-media.js.map +1 -0
- package/src/lib/components/console/payments-settings-card.component.d.ts +13 -0
- package/src/lib/components/console/payments-settings-card.component.js +295 -0
- package/src/lib/components/console/payments-settings-card.component.js.map +1 -0
- package/src/lib/components/console/pos-page.component.d.ts +13 -0
- package/src/lib/components/console/pos-page.component.js +916 -0
- package/src/lib/components/console/pos-page.component.js.map +1 -0
- package/src/lib/components/console/product-editor-dialog.component.d.ts +32 -0
- package/src/lib/components/console/product-editor-dialog.component.js +1374 -0
- package/src/lib/components/console/product-editor-dialog.component.js.map +1 -0
- package/src/lib/components/console/products-hub-card.component.d.ts +16 -0
- package/src/lib/components/console/products-hub-card.component.js +1280 -0
- package/src/lib/components/console/products-hub-card.component.js.map +1 -0
- package/src/lib/components/console/products-hub-zone.component.d.ts +50 -0
- package/src/lib/components/console/products-hub-zone.component.js +200 -0
- package/src/lib/components/console/products-hub-zone.component.js.map +1 -0
- package/src/lib/components/console/recovery-queue-card.component.d.ts +39 -0
- package/src/lib/components/console/recovery-queue-card.component.js +262 -0
- package/src/lib/components/console/recovery-queue-card.component.js.map +1 -0
- package/src/lib/components/console/registers-card.component.d.ts +21 -0
- package/src/lib/components/console/registers-card.component.js +296 -0
- package/src/lib/components/console/registers-card.component.js.map +1 -0
- package/src/lib/components/console/reservations-card.component.d.ts +14 -0
- package/src/lib/components/console/reservations-card.component.js +650 -0
- package/src/lib/components/console/reservations-card.component.js.map +1 -0
- package/src/lib/components/console/reviews-moderation-card.component.d.ts +8 -0
- package/src/lib/components/console/reviews-moderation-card.component.js +235 -0
- package/src/lib/components/console/reviews-moderation-card.component.js.map +1 -0
- package/src/lib/components/console/shipping-settings-card.component.d.ts +38 -0
- package/src/lib/components/console/shipping-settings-card.component.js +560 -0
- package/src/lib/components/console/shipping-settings-card.component.js.map +1 -0
- package/src/lib/components/console/stock-movements-card.component.d.ts +31 -0
- package/src/lib/components/console/stock-movements-card.component.js +333 -0
- package/src/lib/components/console/stock-movements-card.component.js.map +1 -0
- package/src/lib/components/console/store-settings-card.component.d.ts +14 -0
- package/src/lib/components/console/store-settings-card.component.js +300 -0
- package/src/lib/components/console/store-settings-card.component.js.map +1 -0
- package/src/lib/components/console/storefront-tax-summary-card.component.d.ts +73 -0
- package/src/lib/components/console/storefront-tax-summary-card.component.js +408 -0
- package/src/lib/components/console/storefront-tax-summary-card.component.js.map +1 -0
- package/src/lib/components/console/suppliers-card.component.d.ts +8 -0
- package/src/lib/components/console/suppliers-card.component.js +328 -0
- package/src/lib/components/console/suppliers-card.component.js.map +1 -0
- package/src/lib/components/console/tax-settings-card.component.d.ts +14 -0
- package/src/lib/components/console/tax-settings-card.component.js +473 -0
- package/src/lib/components/console/tax-settings-card.component.js.map +1 -0
- package/src/lib/components/gate.d.ts +39 -0
- package/src/lib/components/gate.js +202 -0
- package/src/lib/components/gate.js.map +1 -0
- package/src/lib/components/gated-video.d.ts +40 -0
- package/src/lib/components/gated-video.js +366 -0
- package/src/lib/components/gated-video.js.map +1 -0
- package/src/lib/components/member-feed.d.ts +32 -0
- package/src/lib/components/member-feed.js +198 -0
- package/src/lib/components/member-feed.js.map +1 -0
- package/src/lib/components/member-recovery.d.ts +35 -0
- package/src/lib/components/member-recovery.js +313 -0
- package/src/lib/components/member-recovery.js.map +1 -0
- package/src/lib/components/member-signin.d.ts +35 -0
- package/src/lib/components/member-signin.js +257 -0
- package/src/lib/components/member-signin.js.map +1 -0
- package/src/lib/components/member-signup.d.ts +34 -0
- package/src/lib/components/member-signup.js +287 -0
- package/src/lib/components/member-signup.js.map +1 -0
- package/src/lib/components/newsletter-signup.d.ts +39 -0
- package/src/lib/components/newsletter-signup.js +229 -0
- package/src/lib/components/newsletter-signup.js.map +1 -0
- package/src/lib/components/product-detail.d.ts +38 -0
- package/src/lib/components/product-detail.js +1022 -0
- package/src/lib/components/product-detail.js.map +1 -0
- package/src/lib/components/product-grid.d.ts +67 -0
- package/src/lib/components/product-grid.js +909 -0
- package/src/lib/components/product-grid.js.map +1 -0
- package/src/lib/components/product-reviews.d.ts +32 -0
- package/src/lib/components/product-reviews.js +349 -0
- package/src/lib/components/product-reviews.js.map +1 -0
- package/src/lib/components/related-products.d.ts +33 -0
- package/src/lib/components/related-products.js +232 -0
- package/src/lib/components/related-products.js.map +1 -0
- package/src/lib/components/reservation-widget.d.ts +33 -0
- package/src/lib/components/reservation-widget.js +418 -0
- package/src/lib/components/reservation-widget.js.map +1 -0
- package/src/lib/components/storefront-payment-element-fallback.d.ts +18 -0
- package/src/lib/components/storefront-payment-element-fallback.js +51 -0
- package/src/lib/components/storefront-payment-element-fallback.js.map +1 -0
- package/src/lib/components/storefront-payment-element.d.ts +78 -0
- package/src/lib/components/storefront-payment-element.js +156 -0
- package/src/lib/components/storefront-payment-element.js.map +1 -0
- package/src/lib/components/wishlist.d.ts +46 -0
- package/src/lib/components/wishlist.js +304 -0
- package/src/lib/components/wishlist.js.map +1 -0
- package/src/lib/constants/bundle-common.d.ts +18 -0
- package/src/lib/constants/bundle-common.js +18 -0
- package/src/lib/constants/bundle-common.js.map +1 -0
- package/src/lib/constants/product-filters.d.ts +35 -0
- package/src/lib/constants/product-filters.js +109 -0
- package/src/lib/constants/product-filters.js.map +1 -0
- package/src/lib/model/commerce-cart.d.ts +52 -0
- package/src/lib/model/commerce-cart.js +102 -0
- package/src/lib/model/commerce-cart.js.map +1 -0
- package/src/lib/model/commerce-connect-transfer.d.ts +243 -0
- package/src/lib/model/commerce-connect-transfer.js +231 -0
- package/src/lib/model/commerce-connect-transfer.js.map +1 -0
- package/src/lib/model/commerce-discounts.d.ts +164 -0
- package/src/lib/model/commerce-discounts.js +231 -0
- package/src/lib/model/commerce-discounts.js.map +1 -0
- package/src/lib/model/commerce-dispute.d.ts +124 -0
- package/src/lib/model/commerce-dispute.js +225 -0
- package/src/lib/model/commerce-dispute.js.map +1 -0
- package/src/lib/model/commerce-gift-cards.d.ts +107 -0
- package/src/lib/model/commerce-gift-cards.js +121 -0
- package/src/lib/model/commerce-gift-cards.js.map +1 -0
- package/src/lib/model/commerce-io.d.ts +36 -0
- package/src/lib/model/commerce-io.js +245 -0
- package/src/lib/model/commerce-io.js.map +1 -0
- package/src/lib/model/commerce-orders.d.ts +1040 -0
- package/src/lib/model/commerce-orders.js +1022 -0
- package/src/lib/model/commerce-orders.js.map +1 -0
- package/src/lib/model/commerce-promotions.d.ts +188 -0
- package/src/lib/model/commerce-promotions.js +199 -0
- package/src/lib/model/commerce-promotions.js.map +1 -0
- package/src/lib/model/commerce-reservations.d.ts +175 -0
- package/src/lib/model/commerce-reservations.js +157 -0
- package/src/lib/model/commerce-reservations.js.map +1 -0
- package/src/lib/model/commerce-shipping.d.ts +316 -0
- package/src/lib/model/commerce-shipping.js +484 -0
- package/src/lib/model/commerce-shipping.js.map +1 -0
- package/src/lib/model/commerce-stock-holds.d.ts +199 -0
- package/src/lib/model/commerce-stock-holds.js +190 -0
- package/src/lib/model/commerce-stock-holds.js.map +1 -0
- package/src/lib/model/commerce-subscription-status.d.ts +67 -0
- package/src/lib/model/commerce-subscription-status.js +76 -0
- package/src/lib/model/commerce-subscription-status.js.map +1 -0
- package/src/lib/model/commerce-tax-decision.d.ts +222 -0
- package/src/lib/model/commerce-tax-decision.js +165 -0
- package/src/lib/model/commerce-tax-decision.js.map +1 -0
- package/src/lib/model/commerce-tax.d.ts +176 -0
- package/src/lib/model/commerce-tax.js +92 -0
- package/src/lib/model/commerce-tax.js.map +1 -0
- package/src/lib/model/commerce.d.ts +551 -0
- package/src/lib/model/commerce.js +739 -0
- package/src/lib/model/commerce.js.map +1 -0
- package/src/lib/model/index.d.ts +40 -0
- package/src/lib/model/index.js +40 -0
- package/src/lib/model/index.js.map +1 -0
- package/src/lib/model/order-figures.d.ts +48 -0
- package/src/lib/model/order-figures.js +74 -0
- package/src/lib/model/order-figures.js.map +1 -0
- package/src/lib/model/plugin-permissions.d.ts +23 -0
- package/src/lib/model/plugin-permissions.js +34 -0
- package/src/lib/model/plugin-permissions.js.map +1 -0
- package/src/lib/model/purchase-analytics.d.ts +186 -0
- package/src/lib/model/purchase-analytics.js +216 -0
- package/src/lib/model/purchase-analytics.js.map +1 -0
- package/src/lib/plugin-config.d.ts +62 -0
- package/src/lib/plugin-config.js +78 -0
- package/src/lib/plugin-config.js.map +1 -0
- package/src/lib/plugin.d.ts +28 -0
- package/src/lib/plugin.js +147 -0
- package/src/lib/plugin.js.map +1 -0
- package/src/lib/server/billing-webhook.d.ts +26 -0
- package/src/lib/server/billing-webhook.js +4011 -0
- package/src/lib/server/billing-webhook.js.map +1 -0
- package/src/lib/server/cancel-order.d.ts +87 -0
- package/src/lib/server/cancel-order.js +368 -0
- package/src/lib/server/cancel-order.js.map +1 -0
- package/src/lib/server/cart-checkout.d.ts +25 -0
- package/src/lib/server/cart-checkout.js +976 -0
- package/src/lib/server/cart-checkout.js.map +1 -0
- package/src/lib/server/cart-cookie.d.ts +32 -0
- package/src/lib/server/cart-cookie.js +77 -0
- package/src/lib/server/cart-cookie.js.map +1 -0
- package/src/lib/server/cart.d.ts +34 -0
- package/src/lib/server/cart.js +181 -0
- package/src/lib/server/cart.js.map +1 -0
- package/src/lib/server/catalog.d.ts +127 -0
- package/src/lib/server/catalog.js +277 -0
- package/src/lib/server/catalog.js.map +1 -0
- package/src/lib/server/checkout.d.ts +36 -0
- package/src/lib/server/checkout.js +915 -0
- package/src/lib/server/checkout.js.map +1 -0
- package/src/lib/server/connect.d.ts +26 -0
- package/src/lib/server/connect.js +238 -0
- package/src/lib/server/connect.js.map +1 -0
- package/src/lib/server/contact-refund.d.ts +117 -0
- package/src/lib/server/contact-refund.js +196 -0
- package/src/lib/server/contact-refund.js.map +1 -0
- package/src/lib/server/download.d.ts +39 -0
- package/src/lib/server/download.js +206 -0
- package/src/lib/server/download.js.map +1 -0
- package/src/lib/server/draft-order.d.ts +26 -0
- package/src/lib/server/draft-order.js +706 -0
- package/src/lib/server/draft-order.js.map +1 -0
- package/src/lib/server/feed.d.ts +24 -0
- package/src/lib/server/feed.js +59 -0
- package/src/lib/server/feed.js.map +1 -0
- package/src/lib/server/fulfill-order.d.ts +97 -0
- package/src/lib/server/fulfill-order.js +235 -0
- package/src/lib/server/fulfill-order.js.map +1 -0
- package/src/lib/server/gate.d.ts +36 -0
- package/src/lib/server/gate.js +112 -0
- package/src/lib/server/gate.js.map +1 -0
- package/src/lib/server/gift-cards.d.ts +42 -0
- package/src/lib/server/gift-cards.js +219 -0
- package/src/lib/server/gift-cards.js.map +1 -0
- package/src/lib/server/low-stock.d.ts +49 -0
- package/src/lib/server/low-stock.js +60 -0
- package/src/lib/server/low-stock.js.map +1 -0
- package/src/lib/server/manual-tax-rate.d.ts +82 -0
- package/src/lib/server/manual-tax-rate.js +113 -0
- package/src/lib/server/manual-tax-rate.js.map +1 -0
- package/src/lib/server/member-feed.d.ts +24 -0
- package/src/lib/server/member-feed.js +72 -0
- package/src/lib/server/member-feed.js.map +1 -0
- package/src/lib/server/member-name-search.d.ts +37 -0
- package/src/lib/server/member-name-search.js +42 -0
- package/src/lib/server/member-name-search.js.map +1 -0
- package/src/lib/server/member-post.d.ts +23 -0
- package/src/lib/server/member-post.js +166 -0
- package/src/lib/server/member-post.js.map +1 -0
- package/src/lib/server/membership-account.d.ts +37 -0
- package/src/lib/server/membership-account.js +148 -0
- package/src/lib/server/membership-account.js.map +1 -0
- package/src/lib/server/membership-admin-password.d.ts +33 -0
- package/src/lib/server/membership-admin-password.js +202 -0
- package/src/lib/server/membership-admin-password.js.map +1 -0
- package/src/lib/server/membership-content.d.ts +23 -0
- package/src/lib/server/membership-content.js +105 -0
- package/src/lib/server/membership-content.js.map +1 -0
- package/src/lib/server/membership-login.d.ts +19 -0
- package/src/lib/server/membership-login.js +137 -0
- package/src/lib/server/membership-login.js.map +1 -0
- package/src/lib/server/membership-logout.d.ts +19 -0
- package/src/lib/server/membership-logout.js +35 -0
- package/src/lib/server/membership-logout.js.map +1 -0
- package/src/lib/server/membership-recover.d.ts +60 -0
- package/src/lib/server/membership-recover.js +244 -0
- package/src/lib/server/membership-recover.js.map +1 -0
- package/src/lib/server/membership-register.d.ts +22 -0
- package/src/lib/server/membership-register.js +241 -0
- package/src/lib/server/membership-register.js.map +1 -0
- package/src/lib/server/membership-reset.d.ts +26 -0
- package/src/lib/server/membership-reset.js +88 -0
- package/src/lib/server/membership-reset.js.map +1 -0
- package/src/lib/server/membership-wishlist.d.ts +23 -0
- package/src/lib/server/membership-wishlist.js +89 -0
- package/src/lib/server/membership-wishlist.js.map +1 -0
- package/src/lib/server/membership.d.ts +96 -0
- package/src/lib/server/membership.js +222 -0
- package/src/lib/server/membership.js.map +1 -0
- package/src/lib/server/native-checkout.d.ts +170 -0
- package/src/lib/server/native-checkout.js +193 -0
- package/src/lib/server/native-checkout.js.map +1 -0
- package/src/lib/server/newsletter.d.ts +23 -0
- package/src/lib/server/newsletter.js +323 -0
- package/src/lib/server/newsletter.js.map +1 -0
- package/src/lib/server/notify-restock.d.ts +22 -0
- package/src/lib/server/notify-restock.js +84 -0
- package/src/lib/server/notify-restock.js.map +1 -0
- package/src/lib/server/order-analytics.d.ts +134 -0
- package/src/lib/server/order-analytics.js +263 -0
- package/src/lib/server/order-analytics.js.map +1 -0
- package/src/lib/server/order-figures.d.ts +33 -0
- package/src/lib/server/order-figures.js +220 -0
- package/src/lib/server/order-figures.js.map +1 -0
- package/src/lib/server/paid-media-delivery.d.ts +173 -0
- package/src/lib/server/paid-media-delivery.js +212 -0
- package/src/lib/server/paid-media-delivery.js.map +1 -0
- package/src/lib/server/pos-order.d.ts +54 -0
- package/src/lib/server/pos-order.js +1137 -0
- package/src/lib/server/pos-order.js.map +1 -0
- package/src/lib/server/process-abandoned.d.ts +54 -0
- package/src/lib/server/process-abandoned.js +222 -0
- package/src/lib/server/process-abandoned.js.map +1 -0
- package/src/lib/server/process-restock.d.ts +42 -0
- package/src/lib/server/process-restock.js +219 -0
- package/src/lib/server/process-restock.js.map +1 -0
- package/src/lib/server/product-card.d.ts +29 -0
- package/src/lib/server/product-card.js +54 -0
- package/src/lib/server/product-card.js.map +1 -0
- package/src/lib/server/product.d.ts +70 -0
- package/src/lib/server/product.js +105 -0
- package/src/lib/server/product.js.map +1 -0
- package/src/lib/server/promotion-hold.d.ts +144 -0
- package/src/lib/server/promotion-hold.js +174 -0
- package/src/lib/server/promotion-hold.js.map +1 -0
- package/src/lib/server/reconcile-stock.d.ts +106 -0
- package/src/lib/server/reconcile-stock.js +349 -0
- package/src/lib/server/reconcile-stock.js.map +1 -0
- package/src/lib/server/refund.d.ts +45 -0
- package/src/lib/server/refund.js +607 -0
- package/src/lib/server/refund.js.map +1 -0
- package/src/lib/server/related.d.ts +24 -0
- package/src/lib/server/related.js +104 -0
- package/src/lib/server/related.js.map +1 -0
- package/src/lib/server/reservation-availability.d.ts +23 -0
- package/src/lib/server/reservation-availability.js +111 -0
- package/src/lib/server/reservation-availability.js.map +1 -0
- package/src/lib/server/reserve-stock.d.ts +156 -0
- package/src/lib/server/reserve-stock.js +146 -0
- package/src/lib/server/reserve-stock.js.map +1 -0
- package/src/lib/server/reserve.d.ts +25 -0
- package/src/lib/server/reserve.js +426 -0
- package/src/lib/server/reserve.js.map +1 -0
- package/src/lib/server/restock-flag.d.ts +202 -0
- package/src/lib/server/restock-flag.js +449 -0
- package/src/lib/server/restock-flag.js.map +1 -0
- package/src/lib/server/reviews.d.ts +51 -0
- package/src/lib/server/reviews.js +132 -0
- package/src/lib/server/reviews.js.map +1 -0
- package/src/lib/server/site-page-enricher.d.ts +42 -0
- package/src/lib/server/site-page-enricher.js +149 -0
- package/src/lib/server/site-page-enricher.js.map +1 -0
- package/src/lib/server/site-page-resolver.d.ts +26 -0
- package/src/lib/server/site-page-resolver.js +223 -0
- package/src/lib/server/site-page-resolver.js.map +1 -0
- package/src/lib/server/stock-hold.d.ts +127 -0
- package/src/lib/server/stock-hold.js +258 -0
- package/src/lib/server/stock-hold.js.map +1 -0
- package/src/lib/server/storefront-tax-record.d.ts +22 -0
- package/src/lib/server/storefront-tax-record.js +218 -0
- package/src/lib/server/storefront-tax-record.js.map +1 -0
- package/src/lib/server/storefront-tax.d.ts +197 -0
- package/src/lib/server/storefront-tax.js +245 -0
- package/src/lib/server/storefront-tax.js.map +1 -0
- package/src/lib/server/stream.d.ts +25 -0
- package/src/lib/server/stream.js +191 -0
- package/src/lib/server/stream.js.map +1 -0
- package/src/lib/server/subscription-portal.d.ts +24 -0
- package/src/lib/server/subscription-portal.js +91 -0
- package/src/lib/server/subscription-portal.js.map +1 -0
- package/src/lib/server/supplier-outbox.d.ts +190 -0
- package/src/lib/server/supplier-outbox.js +342 -0
- package/src/lib/server/supplier-outbox.js.map +1 -0
- package/src/lib/server/supplier-update.d.ts +23 -0
- package/src/lib/server/supplier-update.js +289 -0
- package/src/lib/server/supplier-update.js.map +1 -0
- package/src/lib/server/tax-profile.d.ts +29 -0
- package/src/lib/server/tax-profile.js +40 -0
- package/src/lib/server/tax-profile.js.map +1 -0
- package/src/lib/server.d.ts +32 -0
- package/src/lib/server.js +311 -0
- package/src/lib/server.js.map +1 -0
- package/src/lib/site.d.ts +27 -0
- package/src/lib/site.js +134 -0
- package/src/lib/site.js.map +1 -0
- package/src/lib/utils/escape-html.d.ts +41 -0
- package/src/lib/utils/escape-html.js +41 -0
- package/src/lib/utils/escape-html.js.map +1 -0
- package/src/lib/utils/generate-preset-id.d.ts +19 -0
- package/src/lib/utils/generate-preset-id.js +25 -0
- package/src/lib/utils/generate-preset-id.js.map +1 -0
- package/src/lib/utils/member-continue.d.ts +45 -0
- package/src/lib/utils/member-continue.js +49 -0
- package/src/lib/utils/member-continue.js.map +1 -0
- package/src/lib/utils/use-storefront-purchase-event.d.ts +60 -0
- package/src/lib/utils/use-storefront-purchase-event.js +142 -0
- package/src/lib/utils/use-storefront-purchase-event.js.map +1 -0
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Aglyn LLC
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/ 'use client';
|
|
17
|
+
import { _ as _extends } from "@swc/helpers/_/_extends";
|
|
18
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
19
|
+
import * as CommerceModel from "../../model/index.js";
|
|
20
|
+
import { CardDisplay } from "@aglyn/shared-ui-jsx";
|
|
21
|
+
import { ListPagination } from "@aglyn/shared-ui-jsx/components/list-pagination.component";
|
|
22
|
+
import { useSnackbar } from "@aglyn/shared-ui-snackstack";
|
|
23
|
+
import { Timestamp } from "@aglyn/shared-util-timestamp";
|
|
24
|
+
import { Button, Dialog, DialogActions, DialogContent, DialogTitle, Stack, TextField, Typography } from "@mui/material";
|
|
25
|
+
import { collection, doc, limit, query, setDoc, updateDoc } from "firebase/firestore";
|
|
26
|
+
import { useCallback, useState } from "react";
|
|
27
|
+
import { useFirestore } from "@aglyn/tenant-feature-instance";
|
|
28
|
+
import { usePagedCollection } from "@aglyn/tenant-feature-instance";
|
|
29
|
+
import { PLATFORM_BRAND_NAME, pluginDocsHelp } from "@aglyn/aglyn";
|
|
30
|
+
/**
|
|
31
|
+
* Coupon codes (AGL-96), extracted from the retired Commerce Starter
|
|
32
|
+
* card when the products hub landed (AGL-279). Percent-off codes at
|
|
33
|
+
* `hosts/{hostId}/coupons/{CODE}`; the discounts engine (AGL-305)
|
|
34
|
+
* supersedes these.
|
|
35
|
+
*/ export function HostCouponsCard(props) {
|
|
36
|
+
var _ref, _ref1, _ref2, _ref3;
|
|
37
|
+
const { hostId } = props;
|
|
38
|
+
const firestore = useFirestore();
|
|
39
|
+
const { enqueueSnackbar } = useSnackbar();
|
|
40
|
+
/*
|
|
41
|
+
* A growing window rather than a hard hundred, which a shop with more
|
|
42
|
+
* codes than that could not see past.
|
|
43
|
+
*
|
|
44
|
+
* No `orderBy`: a coupon's document ID is its CODE, and document-ID order
|
|
45
|
+
* is what Firestore returns by default — so the window is already the
|
|
46
|
+
* alphabetical front of the list, which is what the sort below wants. The
|
|
47
|
+
* sort is kept because it makes that dependency explicit rather than
|
|
48
|
+
* relying on the default holding.
|
|
49
|
+
*/ const { rows: couponDocs, hasMore, page, setPage, pageSize, setPageSize } = usePagedCollection((pageLimit)=>query(collection(firestore, 'hosts', hostId, 'coupons'), limit(pageLimit)), [
|
|
50
|
+
firestore,
|
|
51
|
+
hostId
|
|
52
|
+
], {
|
|
53
|
+
idField: '$id'
|
|
54
|
+
});
|
|
55
|
+
const coupons = [
|
|
56
|
+
...couponDocs
|
|
57
|
+
].sort((a, b)=>String(a.$id).localeCompare(String(b.$id)));
|
|
58
|
+
const [couponDraft, setCouponDraft] = useState(null);
|
|
59
|
+
const handleCouponSave = useCallback(async ()=>{
|
|
60
|
+
if (!couponDraft) return;
|
|
61
|
+
const code = couponDraft.code.trim().toUpperCase().replace(/[^A-Z0-9_-]/g, '').slice(0, 40);
|
|
62
|
+
const percentOff = Math.round(Number(couponDraft.percentOff));
|
|
63
|
+
if (!code || !(percentOff > 0 && percentOff <= 100)) return;
|
|
64
|
+
// An unparseable value is dropped rather than written: a NaN here would
|
|
65
|
+
// be a coupon that never expires or one that is born dead, depending on
|
|
66
|
+
// how the server coerced it, and neither is what anyone typed.
|
|
67
|
+
const expiresOn = couponDraft.expiresOn.trim();
|
|
68
|
+
const parsedExpiry = expiresOn ? Date.parse(`${expiresOn}T23:59:59.999`) : NaN;
|
|
69
|
+
const expiresAtMs = Number.isFinite(parsedExpiry) ? parsedExpiry : null;
|
|
70
|
+
await setDoc(doc(firestore, 'hosts', hostId, 'coupons', code), _extends({
|
|
71
|
+
percentOff,
|
|
72
|
+
enabled: true,
|
|
73
|
+
redemptions: 0
|
|
74
|
+
}, couponDraft.maxRedemptions.trim() ? {
|
|
75
|
+
maxRedemptions: Math.max(1, Math.round(Number(couponDraft.maxRedemptions)))
|
|
76
|
+
} : {}, expiresAtMs != null ? {
|
|
77
|
+
expiresAtMs
|
|
78
|
+
} : {}, {
|
|
79
|
+
createdAt: Timestamp.now()
|
|
80
|
+
}));
|
|
81
|
+
setCouponDraft(null);
|
|
82
|
+
enqueueSnackbar(`Coupon ${code} created`, {
|
|
83
|
+
variant: 'success',
|
|
84
|
+
persist: false
|
|
85
|
+
});
|
|
86
|
+
}, [
|
|
87
|
+
couponDraft,
|
|
88
|
+
firestore,
|
|
89
|
+
hostId,
|
|
90
|
+
enqueueSnackbar
|
|
91
|
+
]);
|
|
92
|
+
const handleCouponToggle = useCallback((coupon)=>()=>updateDoc(doc(firestore, 'hosts', hostId, 'coupons', coupon.$id), {
|
|
93
|
+
enabled: coupon.enabled === false
|
|
94
|
+
}), [
|
|
95
|
+
firestore,
|
|
96
|
+
hostId
|
|
97
|
+
]);
|
|
98
|
+
return /*#__PURE__*/ _jsxs(CardDisplay, {
|
|
99
|
+
header: 'Coupons',
|
|
100
|
+
help: pluginDocsHelp('commerceEndToEnd', {
|
|
101
|
+
anchor: '#4-what-checkout-does',
|
|
102
|
+
excerpt: 'Coupons redeemable at your storefront checkout, separate from ' + `any coupon ${PLATFORM_BRAND_NAME} applies to your own subscription.`
|
|
103
|
+
}),
|
|
104
|
+
contentGutterX: true,
|
|
105
|
+
contentGutterY: true,
|
|
106
|
+
children: [
|
|
107
|
+
/*#__PURE__*/ _jsxs(Stack, {
|
|
108
|
+
spacing: 1,
|
|
109
|
+
children: [
|
|
110
|
+
coupons.length === 0 ? /*#__PURE__*/ _jsx(Typography, {
|
|
111
|
+
variant: "body2",
|
|
112
|
+
color: "text.secondary",
|
|
113
|
+
children: 'Percent-off codes buyers can enter at checkout.'
|
|
114
|
+
}) : coupons.map((coupon)=>/*#__PURE__*/ _jsxs(Stack, {
|
|
115
|
+
direction: "row",
|
|
116
|
+
spacing: 1,
|
|
117
|
+
sx: {
|
|
118
|
+
alignItems: 'center'
|
|
119
|
+
},
|
|
120
|
+
children: [
|
|
121
|
+
/*#__PURE__*/ _jsx(Typography, {
|
|
122
|
+
variant: "body2",
|
|
123
|
+
sx: {
|
|
124
|
+
flex: 1
|
|
125
|
+
},
|
|
126
|
+
noWrap: true,
|
|
127
|
+
children: `${coupon.$id} · ${coupon.percentOff}% off · ` + // Held slots are named separately (AGL-2453) — see the
|
|
128
|
+
// discounts card for why the used figure alone now misleads.
|
|
129
|
+
CommerceModel.promotionUsageLabel(coupon, Date.now()) + // An expiry nobody can see is one the merchant cannot act
|
|
130
|
+
// on, and an EXPIRED coupon still listed as live is the
|
|
131
|
+
// question this card exists to answer.
|
|
132
|
+
(coupon.expiresAtMs != null ? Number(coupon.expiresAtMs) < Date.now() ? ' · expired' : ` · expires ${new Date(Number(coupon.expiresAtMs)).toLocaleDateString()}` : '') + (coupon.enabled === false ? ' · disabled' : '')
|
|
133
|
+
}),
|
|
134
|
+
/*#__PURE__*/ _jsx(Button, {
|
|
135
|
+
size: "small",
|
|
136
|
+
onClick: handleCouponToggle(coupon),
|
|
137
|
+
children: coupon.enabled === false ? 'Enable' : 'Disable'
|
|
138
|
+
})
|
|
139
|
+
]
|
|
140
|
+
}, coupon.$id)),
|
|
141
|
+
/*#__PURE__*/ _jsx(ListPagination, {
|
|
142
|
+
page: page,
|
|
143
|
+
pageSize: pageSize,
|
|
144
|
+
rowCount: coupons.length,
|
|
145
|
+
hasMore: hasMore,
|
|
146
|
+
onPageChange: setPage,
|
|
147
|
+
onPageSizeChange: setPageSize
|
|
148
|
+
}),
|
|
149
|
+
/*#__PURE__*/ _jsx(Button, {
|
|
150
|
+
size: "small",
|
|
151
|
+
sx: {
|
|
152
|
+
alignSelf: 'flex-start'
|
|
153
|
+
},
|
|
154
|
+
onClick: ()=>setCouponDraft({
|
|
155
|
+
code: '',
|
|
156
|
+
percentOff: '',
|
|
157
|
+
maxRedemptions: '',
|
|
158
|
+
expiresOn: ''
|
|
159
|
+
}),
|
|
160
|
+
children: 'Add coupon'
|
|
161
|
+
})
|
|
162
|
+
]
|
|
163
|
+
}),
|
|
164
|
+
/*#__PURE__*/ _jsxs(Dialog, {
|
|
165
|
+
open: Boolean(couponDraft),
|
|
166
|
+
onClose: ()=>setCouponDraft(null),
|
|
167
|
+
maxWidth: "xs",
|
|
168
|
+
fullWidth: true,
|
|
169
|
+
children: [
|
|
170
|
+
/*#__PURE__*/ _jsx(DialogTitle, {
|
|
171
|
+
children: 'New coupon'
|
|
172
|
+
}),
|
|
173
|
+
/*#__PURE__*/ _jsxs(DialogContent, {
|
|
174
|
+
sx: {
|
|
175
|
+
display: 'flex',
|
|
176
|
+
flexDirection: 'column',
|
|
177
|
+
gap: 2
|
|
178
|
+
},
|
|
179
|
+
children: [
|
|
180
|
+
/*#__PURE__*/ _jsx(TextField, {
|
|
181
|
+
label: "Code",
|
|
182
|
+
value: (_ref = couponDraft == null ? void 0 : couponDraft.code) != null ? _ref : '',
|
|
183
|
+
onChange: (event)=>setCouponDraft((prev)=>prev ? _extends({}, prev, {
|
|
184
|
+
code: event.target.value
|
|
185
|
+
}) : prev),
|
|
186
|
+
size: "small",
|
|
187
|
+
autoFocus: true,
|
|
188
|
+
sx: {
|
|
189
|
+
mt: 1
|
|
190
|
+
},
|
|
191
|
+
helperText: "Letters/numbers; stored uppercase, e.g. LAUNCH20"
|
|
192
|
+
}),
|
|
193
|
+
/*#__PURE__*/ _jsx(TextField, {
|
|
194
|
+
label: "Percent off",
|
|
195
|
+
type: "number",
|
|
196
|
+
value: (_ref1 = couponDraft == null ? void 0 : couponDraft.percentOff) != null ? _ref1 : '',
|
|
197
|
+
onChange: (event)=>setCouponDraft((prev)=>prev ? _extends({}, prev, {
|
|
198
|
+
percentOff: event.target.value
|
|
199
|
+
}) : prev),
|
|
200
|
+
size: "small"
|
|
201
|
+
}),
|
|
202
|
+
/*#__PURE__*/ _jsx(TextField, {
|
|
203
|
+
label: "Max redemptions",
|
|
204
|
+
type: "number",
|
|
205
|
+
placeholder: "Blank = unlimited",
|
|
206
|
+
value: (_ref2 = couponDraft == null ? void 0 : couponDraft.maxRedemptions) != null ? _ref2 : '',
|
|
207
|
+
onChange: (event)=>setCouponDraft((prev)=>prev ? _extends({}, prev, {
|
|
208
|
+
maxRedemptions: event.target.value
|
|
209
|
+
}) : prev),
|
|
210
|
+
size: "small"
|
|
211
|
+
}),
|
|
212
|
+
/*#__PURE__*/ _jsx(TextField, {
|
|
213
|
+
label: "Expires",
|
|
214
|
+
type: "date",
|
|
215
|
+
value: (_ref3 = couponDraft == null ? void 0 : couponDraft.expiresOn) != null ? _ref3 : '',
|
|
216
|
+
onChange: (event)=>setCouponDraft((prev)=>prev ? _extends({}, prev, {
|
|
217
|
+
expiresOn: event.target.value
|
|
218
|
+
}) : prev),
|
|
219
|
+
size: "small",
|
|
220
|
+
slotProps: {
|
|
221
|
+
inputLabel: {
|
|
222
|
+
shrink: true
|
|
223
|
+
}
|
|
224
|
+
},
|
|
225
|
+
helperText: "Blank = never expires. The code works through this day."
|
|
226
|
+
})
|
|
227
|
+
]
|
|
228
|
+
}),
|
|
229
|
+
/*#__PURE__*/ _jsxs(DialogActions, {
|
|
230
|
+
children: [
|
|
231
|
+
/*#__PURE__*/ _jsx(Button, {
|
|
232
|
+
onClick: ()=>setCouponDraft(null),
|
|
233
|
+
children: 'Cancel'
|
|
234
|
+
}),
|
|
235
|
+
/*#__PURE__*/ _jsx(Button, {
|
|
236
|
+
variant: "contained",
|
|
237
|
+
color: "primary",
|
|
238
|
+
disabled: !(couponDraft == null ? void 0 : couponDraft.code.trim()) || !(Number(couponDraft == null ? void 0 : couponDraft.percentOff) > 0) || Number(couponDraft == null ? void 0 : couponDraft.percentOff) > 100,
|
|
239
|
+
onClick: handleCouponSave,
|
|
240
|
+
children: 'Create'
|
|
241
|
+
})
|
|
242
|
+
]
|
|
243
|
+
})
|
|
244
|
+
]
|
|
245
|
+
})
|
|
246
|
+
]
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
HostCouponsCard.displayName = 'HostCouponsCard';
|
|
250
|
+
export default HostCouponsCard;
|
|
251
|
+
|
|
252
|
+
//# sourceMappingURL=host-coupons-card.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../libs/plugins/commerce/src/lib/components/console/host-coupons-card.component.tsx"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use client'\n\nimport * as CommerceModel from '../../model'\nimport { CardDisplay } from '@aglyn/shared-ui-jsx'\nimport { ListPagination } from '@aglyn/shared-ui-jsx/components/list-pagination.component'\nimport { useSnackbar } from '@aglyn/shared-ui-snackstack'\nimport { Timestamp } from '@aglyn/shared-util-timestamp'\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n Stack,\n TextField,\n Typography,\n} from '@mui/material'\nimport { collection, doc, limit, query, setDoc, updateDoc } from 'firebase/firestore'\nimport { useCallback, useState } from 'react'\nimport { useFirestore } from '@aglyn/tenant-feature-instance'\nimport { usePagedCollection } from '@aglyn/tenant-feature-instance'\nimport { PLATFORM_BRAND_NAME, pluginDocsHelp } from '@aglyn/aglyn'\n\nexport interface HostCouponsCardProps {\n hostId: string\n}\n\n/**\n * Coupon codes (AGL-96), extracted from the retired Commerce Starter\n * card when the products hub landed (AGL-279). Percent-off codes at\n * `hosts/{hostId}/coupons/{CODE}`; the discounts engine (AGL-305)\n * supersedes these.\n */\nexport function HostCouponsCard(props: HostCouponsCardProps) {\n const { hostId } = props\n const firestore = useFirestore()\n const { enqueueSnackbar } = useSnackbar()\n /*\n * A growing window rather than a hard hundred, which a shop with more\n * codes than that could not see past.\n *\n * No `orderBy`: a coupon's document ID is its CODE, and document-ID order\n * is what Firestore returns by default — so the window is already the\n * alphabetical front of the list, which is what the sort below wants. The\n * sort is kept because it makes that dependency explicit rather than\n * relying on the default holding.\n */\n const {\n rows: couponDocs,\n hasMore,\n page,\n setPage,\n pageSize,\n setPageSize,\n } = usePagedCollection<any>(\n (pageLimit) =>\n query(collection(firestore, 'hosts', hostId, 'coupons'), limit(pageLimit)),\n [firestore, hostId],\n { idField: '$id' },\n )\n const coupons = [...couponDocs].sort((a: any, b: any) =>\n String(a.$id).localeCompare(String(b.$id)),\n )\n const [couponDraft, setCouponDraft] = useState<{\n code: string\n percentOff: string\n maxRedemptions: string\n /** `YYYY-MM-DD` from a native date input, or '' for no expiry. */\n expiresOn: string\n } | null>(null)\n\n const handleCouponSave = useCallback(async () => {\n if (!couponDraft) return\n const code = couponDraft.code\n .trim()\n .toUpperCase()\n .replace(/[^A-Z0-9_-]/g, '')\n .slice(0, 40)\n const percentOff = Math.round(Number(couponDraft.percentOff))\n if (!code || !(percentOff > 0 && percentOff <= 100)) return\n // An unparseable value is dropped rather than written: a NaN here would\n // be a coupon that never expires or one that is born dead, depending on\n // how the server coerced it, and neither is what anyone typed.\n const expiresOn = couponDraft.expiresOn.trim()\n const parsedExpiry = expiresOn\n ? Date.parse(`${expiresOn}T23:59:59.999`)\n : NaN\n const expiresAtMs = Number.isFinite(parsedExpiry) ? parsedExpiry : null\n await setDoc(doc(firestore, 'hosts', hostId, 'coupons', code), {\n percentOff,\n enabled: true,\n redemptions: 0,\n ...(couponDraft.maxRedemptions.trim()\n ? {\n maxRedemptions: Math.max(\n 1,\n Math.round(Number(couponDraft.maxRedemptions)),\n ),\n }\n : {}),\n // THE FIELD THE CHECKOUTS ALREADY GATE ON.\n //\n // `checkout.ts` and `cart-checkout.ts` both refuse a coupon whose\n // `expiresAtMs` has passed, and nothing wrote it — so the gate read as\n // enforcement while every coupon ever created was immortal. A launch\n // code stays redeemable forever, which is a discount the merchant\n // believed they had withdrawn.\n //\n // The END of the chosen day, in the merchant's own timezone: \"expires\n // September 5th\" has to mean the 5th still works. The comparison on the\n // server is absolute epoch, so the local end-of-day is what carries that\n // meaning across.\n ...(expiresAtMs != null ? { expiresAtMs } : {}),\n createdAt: Timestamp.now(),\n })\n setCouponDraft(null)\n enqueueSnackbar(`Coupon ${code} created`, {\n variant: 'success',\n persist: false,\n })\n }, [couponDraft, firestore, hostId, enqueueSnackbar])\n\n const handleCouponToggle = useCallback(\n (coupon: any) => () =>\n updateDoc(doc(firestore, 'hosts', hostId, 'coupons', coupon.$id), {\n enabled: coupon.enabled === false,\n }),\n [firestore, hostId],\n )\n\n return (\n <CardDisplay\n header={'Coupons'}\n help={pluginDocsHelp('commerceEndToEnd', {\n anchor: '#4-what-checkout-does',\n excerpt:\n 'Coupons redeemable at your storefront checkout, separate from ' +\n `any coupon ${PLATFORM_BRAND_NAME} applies to your own subscription.`,\n })}\n contentGutterX\n contentGutterY\n >\n <Stack spacing={1}>\n {coupons.length === 0 ? (\n <Typography variant=\"body2\" color=\"text.secondary\">\n {'Percent-off codes buyers can enter at checkout.'}\n </Typography>\n ) : (\n coupons.map((coupon: any) => (\n <Stack\n key={coupon.$id}\n direction=\"row\"\n spacing={1}\n sx={{ alignItems: 'center' }}\n >\n <Typography variant=\"body2\" sx={{ flex: 1 }} noWrap>\n {`${coupon.$id} · ${coupon.percentOff}% off · ` +\n // Held slots are named separately (AGL-2453) — see the\n // discounts card for why the used figure alone now misleads.\n CommerceModel.promotionUsageLabel(coupon, Date.now()) +\n // An expiry nobody can see is one the merchant cannot act\n // on, and an EXPIRED coupon still listed as live is the\n // question this card exists to answer.\n (coupon.expiresAtMs != null\n ? Number(coupon.expiresAtMs) < Date.now()\n ? ' · expired'\n : ` · expires ${new Date(\n Number(coupon.expiresAtMs),\n ).toLocaleDateString()}`\n : '') +\n (coupon.enabled === false ? ' · disabled' : '')}\n </Typography>\n <Button size=\"small\" onClick={handleCouponToggle(coupon)}>\n {coupon.enabled === false ? 'Enable' : 'Disable'}\n </Button>\n </Stack>\n ))\n )}\n <ListPagination\n page={page}\n pageSize={pageSize}\n rowCount={coupons.length}\n hasMore={hasMore}\n onPageChange={setPage}\n onPageSizeChange={setPageSize}\n />\n <Button\n size=\"small\"\n sx={{ alignSelf: 'flex-start' }}\n onClick={() =>\n setCouponDraft({\n code: '',\n percentOff: '',\n maxRedemptions: '',\n expiresOn: '',\n })\n }\n >\n {'Add coupon'}\n </Button>\n </Stack>\n <Dialog\n open={Boolean(couponDraft)}\n onClose={() => setCouponDraft(null)}\n maxWidth=\"xs\"\n fullWidth\n >\n <DialogTitle>{'New coupon'}</DialogTitle>\n <DialogContent sx={{ display: 'flex', flexDirection: 'column', gap: 2 }}>\n <TextField\n label=\"Code\"\n value={couponDraft?.code ?? ''}\n onChange={(event) =>\n setCouponDraft((prev) =>\n prev ? { ...prev, code: event.target.value } : prev,\n )\n }\n size=\"small\"\n autoFocus\n sx={{ mt: 1 }}\n helperText=\"Letters/numbers; stored uppercase, e.g. LAUNCH20\"\n />\n <TextField\n label=\"Percent off\"\n type=\"number\"\n value={couponDraft?.percentOff ?? ''}\n onChange={(event) =>\n setCouponDraft((prev) =>\n prev ? { ...prev, percentOff: event.target.value } : prev,\n )\n }\n size=\"small\"\n />\n <TextField\n label=\"Max redemptions\"\n type=\"number\"\n placeholder=\"Blank = unlimited\"\n value={couponDraft?.maxRedemptions ?? ''}\n onChange={(event) =>\n setCouponDraft((prev) =>\n prev ? { ...prev, maxRedemptions: event.target.value } : prev,\n )\n }\n size=\"small\"\n />\n <TextField\n label=\"Expires\"\n type=\"date\"\n value={couponDraft?.expiresOn ?? ''}\n onChange={(event) =>\n setCouponDraft((prev) =>\n prev ? { ...prev, expiresOn: event.target.value } : prev,\n )\n }\n size=\"small\"\n slotProps={{ inputLabel: { shrink: true } }}\n helperText=\"Blank = never expires. The code works through this day.\"\n />\n </DialogContent>\n <DialogActions>\n <Button onClick={() => setCouponDraft(null)}>{'Cancel'}</Button>\n <Button\n variant=\"contained\"\n color=\"primary\"\n disabled={\n !couponDraft?.code.trim() ||\n !(Number(couponDraft?.percentOff) > 0) ||\n Number(couponDraft?.percentOff) > 100\n }\n onClick={handleCouponSave}\n >\n {'Create'}\n </Button>\n </DialogActions>\n </Dialog>\n </CardDisplay>\n )\n}\nHostCouponsCard.displayName = 'HostCouponsCard'\n\nexport default HostCouponsCard\n"],"names":["CommerceModel","CardDisplay","ListPagination","useSnackbar","Timestamp","Button","Dialog","DialogActions","DialogContent","DialogTitle","Stack","TextField","Typography","collection","doc","limit","query","setDoc","updateDoc","useCallback","useState","useFirestore","usePagedCollection","PLATFORM_BRAND_NAME","pluginDocsHelp","HostCouponsCard","props","hostId","firestore","enqueueSnackbar","rows","couponDocs","hasMore","page","setPage","pageSize","setPageSize","pageLimit","idField","coupons","sort","a","b","String","$id","localeCompare","couponDraft","setCouponDraft","handleCouponSave","code","trim","toUpperCase","replace","slice","percentOff","Math","round","Number","expiresOn","parsedExpiry","Date","parse","NaN","expiresAtMs","isFinite","enabled","redemptions","maxRedemptions","max","createdAt","now","variant","persist","handleCouponToggle","coupon","header","help","anchor","excerpt","contentGutterX","contentGutterY","spacing","length","color","map","direction","sx","alignItems","flex","noWrap","promotionUsageLabel","toLocaleDateString","size","onClick","rowCount","onPageChange","onPageSizeChange","alignSelf","open","Boolean","onClose","maxWidth","fullWidth","display","flexDirection","gap","label","value","onChange","event","prev","target","autoFocus","mt","helperText","type","placeholder","slotProps","inputLabel","shrink","disabled","displayName"],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface HostOrdersCardProps {
|
|
2
|
+
hostId: string;
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* Orders console (AGL-287): filterable list over webhook-written order
|
|
6
|
+
* docs with a detail dialog (timeline, fulfill, refund, cancel, notes,
|
|
7
|
+
* packing slip) and draft orders that send the buyer a payment link.
|
|
8
|
+
*/
|
|
9
|
+
export declare function HostOrdersCard(props: HostOrdersCardProps): import("react").JSX.Element;
|
|
10
|
+
export declare namespace HostOrdersCard {
|
|
11
|
+
var displayName: string;
|
|
12
|
+
}
|
|
13
|
+
export default HostOrdersCard;
|