@voyantjs/pricing-ui 0.35.0 → 0.37.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/dropoff-price-rule-dialog.d.ts.map +1 -1
- package/dist/components/dropoff-price-rule-dialog.js +5 -1
- package/dist/components/extra-price-rule-dialog.d.ts.map +1 -1
- package/dist/components/extra-price-rule-dialog.js +5 -1
- package/dist/components/option-start-time-rule-dialog.d.ts.map +1 -1
- package/dist/components/option-start-time-rule-dialog.js +5 -1
- package/dist/components/option-unit-combobox.d.ts +11 -0
- package/dist/components/option-unit-combobox.d.ts.map +1 -0
- package/dist/components/option-unit-combobox.js +53 -0
- package/dist/components/option-unit-price-rule-combobox.d.ts +9 -0
- package/dist/components/option-unit-price-rule-combobox.d.ts.map +1 -0
- package/dist/components/option-unit-price-rule-combobox.js +56 -0
- package/dist/components/option-unit-price-rule-dialog.d.ts.map +1 -1
- package/dist/components/option-unit-price-rule-dialog.js +15 -3
- package/dist/components/option-unit-tier-dialog.d.ts.map +1 -1
- package/dist/components/option-unit-tier-dialog.js +6 -2
- package/dist/components/pickup-price-rule-dialog.d.ts.map +1 -1
- package/dist/components/pickup-price-rule-dialog.js +5 -1
- package/dist/components/product-option-combobox.d.ts +2 -1
- package/dist/components/product-option-combobox.d.ts.map +1 -1
- package/dist/components/product-option-combobox.js +4 -4
- package/dist/i18n/en.d.ts +16 -9
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +22 -15
- package/dist/i18n/messages.d.ts +16 -9
- package/dist/i18n/messages.d.ts.map +1 -1
- package/dist/i18n/provider.d.ts +32 -18
- package/dist/i18n/provider.d.ts.map +1 -1
- package/dist/i18n/ro.d.ts +16 -9
- package/dist/i18n/ro.d.ts.map +1 -1
- package/dist/i18n/ro.js +22 -15
- package/package.json +11 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropoff-price-rule-dialog.d.ts","sourceRoot":"","sources":["../../src/components/dropoff-price-rule-dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,sBAAsB,EAA+B,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"dropoff-price-rule-dialog.d.ts","sourceRoot":"","sources":["../../src/components/dropoff-price-rule-dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,sBAAsB,EAA+B,MAAM,yBAAyB,CAAA;AA6DlG,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,IAAI,CAAC,EAAE,sBAAsB,CAAA;IAC7B,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,sBAAsB,KAAK,IAAI,CAAA;CACnD,CAAA;AAKD,wBAAgB,sBAAsB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,2CA2MpF"}
|
|
@@ -9,6 +9,7 @@ import { useForm } from "react-hook-form";
|
|
|
9
9
|
import { z } from "zod/v4";
|
|
10
10
|
import { usePricingUiMessagesOrDefault } from "../i18n/provider.js";
|
|
11
11
|
import { OptionPriceRuleCombobox } from "./option-price-rule-combobox.js";
|
|
12
|
+
import { ProductOptionCombobox } from "./product-option-combobox.js";
|
|
12
13
|
const ADDON_PRICING_MODES = [
|
|
13
14
|
"included",
|
|
14
15
|
"per_person",
|
|
@@ -104,7 +105,10 @@ export function DropoffPriceRuleDialog({ open, onOpenChange, rule, onSuccess })
|
|
|
104
105
|
: messages.locationPriceRuleDialog.dropoff.titles.create }) }), _jsxs("form", { onSubmit: form.handleSubmit(onSubmit), children: [_jsxs(DialogBody, { className: "grid gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.locationPriceRuleDialog.fields.optionPriceRule }), _jsx(OptionPriceRuleCombobox, { value: form.watch("optionPriceRuleId"), onChange: (value) => form.setValue("optionPriceRuleId", value ?? "", {
|
|
105
106
|
shouldDirty: true,
|
|
106
107
|
shouldValidate: true,
|
|
107
|
-
}), disabled: isEditing }), form.formState.errors.optionPriceRuleId ? (_jsx("p", { className: "text-xs text-destructive", children: form.formState.errors.optionPriceRuleId.message })) : null] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.locationPriceRuleDialog.fields.optionId }), _jsx(
|
|
108
|
+
}), disabled: isEditing }), form.formState.errors.optionPriceRuleId ? (_jsx("p", { className: "text-xs text-destructive", children: form.formState.errors.optionPriceRuleId.message })) : null] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.locationPriceRuleDialog.fields.optionId }), _jsx(ProductOptionCombobox, { value: form.watch("optionId"), onChange: (value) => form.setValue("optionId", value ?? "", {
|
|
109
|
+
shouldDirty: true,
|
|
110
|
+
shouldValidate: true,
|
|
111
|
+
}), requireProduct: false })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.locationPriceRuleDialog.fields.facilityId }), _jsx(Input, { ...form.register("facilityId"), placeholder: messages.locationPriceRuleDialog.placeholders.facilityId })] })] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.locationPriceRuleDialog.fields.dropoffName }), _jsx(Input, { ...form.register("dropoffName") })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.locationPriceRuleDialog.fields.dropoffCode }), _jsx(Input, { ...form.register("dropoffCode") })] })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.locationPriceRuleDialog.fields.pricingMode }), _jsxs(Select, { items: ADDON_PRICING_MODES.map((mode) => ({
|
|
108
112
|
label: messages.common.addonPricingModeLabels[mode],
|
|
109
113
|
value: mode,
|
|
110
114
|
})), value: form.watch("pricingMode"), onValueChange: (value) => form.setValue("pricingMode", value), children: [_jsx(SelectTrigger, { className: "w-full", children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: ADDON_PRICING_MODES.map((mode) => (_jsx(SelectItem, { value: mode, children: messages.common.addonPricingModeLabels[mode] }, mode))) })] })] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.locationPriceRuleDialog.fields.sellAmount }), _jsx(Input, { ...form.register("sellAmount"), type: "number", step: "0.01", min: "0" })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.locationPriceRuleDialog.fields.costAmount }), _jsx(Input, { ...form.register("costAmount"), type: "number", step: "0.01", min: "0" })] })] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.locationPriceRuleDialog.fields.sortOrder }), _jsx(Input, { ...form.register("sortOrder"), type: "number" })] }), _jsxs("div", { className: "flex items-center gap-3 pt-6", children: [_jsx(Switch, { checked: form.watch("active"), onCheckedChange: (checked) => form.setValue("active", checked) }), _jsx(Label, { children: messages.locationPriceRuleDialog.fields.active })] })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.locationPriceRuleDialog.fields.notes }), _jsx(Textarea, { ...form.register("notes") })] })] }), _jsxs(DialogFooter, { children: [_jsx(Button, { type: "button", variant: "ghost", onClick: () => onOpenChange(false), children: messages.common.cancel }), _jsxs(Button, { type: "submit", disabled: isSubmitting, children: [isSubmitting ? _jsx(Loader2, { className: "mr-2 h-4 w-4 animate-spin" }) : null, isEditing
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extra-price-rule-dialog.d.ts","sourceRoot":"","sources":["../../src/components/extra-price-rule-dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,oBAAoB,EAA6B,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"extra-price-rule-dialog.d.ts","sourceRoot":"","sources":["../../src/components/extra-price-rule-dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,oBAAoB,EAA6B,MAAM,yBAAyB,CAAA;AAyD9F,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,IAAI,CAAC,EAAE,oBAAoB,CAAA;IAC3B,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,CAAA;CACjD,CAAA;AAKD,wBAAgB,oBAAoB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,2CAuMlF"}
|
|
@@ -9,6 +9,7 @@ import { useForm } from "react-hook-form";
|
|
|
9
9
|
import { z } from "zod/v4";
|
|
10
10
|
import { usePricingUiMessagesOrDefault } from "../i18n/provider.js";
|
|
11
11
|
import { OptionPriceRuleCombobox } from "./option-price-rule-combobox.js";
|
|
12
|
+
import { ProductOptionCombobox } from "./product-option-combobox.js";
|
|
12
13
|
const ADDON_PRICING_MODES = [
|
|
13
14
|
"included",
|
|
14
15
|
"per_person",
|
|
@@ -97,7 +98,10 @@ export function ExtraPriceRuleDialog({ open, onOpenChange, rule, onSuccess }) {
|
|
|
97
98
|
: messages.locationPriceRuleDialog.extra.titles.create }) }), _jsxs("form", { onSubmit: form.handleSubmit(onSubmit), children: [_jsxs(DialogBody, { className: "grid gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.locationPriceRuleDialog.fields.optionPriceRule }), _jsx(OptionPriceRuleCombobox, { value: form.watch("optionPriceRuleId"), onChange: (value) => form.setValue("optionPriceRuleId", value ?? "", {
|
|
98
99
|
shouldDirty: true,
|
|
99
100
|
shouldValidate: true,
|
|
100
|
-
}), disabled: isEditing }), form.formState.errors.optionPriceRuleId ? (_jsx("p", { className: "text-xs text-destructive", children: form.formState.errors.optionPriceRuleId.message })) : null] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.locationPriceRuleDialog.fields.optionId }), _jsx(
|
|
101
|
+
}), disabled: isEditing }), form.formState.errors.optionPriceRuleId ? (_jsx("p", { className: "text-xs text-destructive", children: form.formState.errors.optionPriceRuleId.message })) : null] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.locationPriceRuleDialog.fields.optionId }), _jsx(ProductOptionCombobox, { value: form.watch("optionId"), onChange: (value) => form.setValue("optionId", value ?? "", {
|
|
102
|
+
shouldDirty: true,
|
|
103
|
+
shouldValidate: true,
|
|
104
|
+
}), requireProduct: false })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.locationPriceRuleDialog.extra.fields.productExtraId }), _jsx(Input, { ...form.register("productExtraId"), placeholder: messages.locationPriceRuleDialog.extra.placeholders.productExtraId })] })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.locationPriceRuleDialog.extra.fields.optionExtraConfigId }), _jsx(Input, { ...form.register("optionExtraConfigId"), placeholder: messages.locationPriceRuleDialog.extra.placeholders.optionExtraConfigId })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.locationPriceRuleDialog.fields.pricingMode }), _jsxs(Select, { items: ADDON_PRICING_MODES.map((mode) => ({
|
|
101
105
|
label: messages.common.addonPricingModeLabels[mode],
|
|
102
106
|
value: mode,
|
|
103
107
|
})), value: form.watch("pricingMode"), onValueChange: (value) => form.setValue("pricingMode", value), children: [_jsx(SelectTrigger, { className: "w-full", children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: ADDON_PRICING_MODES.map((mode) => (_jsx(SelectItem, { value: mode, children: messages.common.addonPricingModeLabels[mode] }, mode))) })] })] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.locationPriceRuleDialog.fields.sellAmount }), _jsx(Input, { ...form.register("sellAmount"), type: "number", step: "0.01", min: "0" })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.locationPriceRuleDialog.fields.costAmount }), _jsx(Input, { ...form.register("costAmount"), type: "number", step: "0.01", min: "0" })] })] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.locationPriceRuleDialog.fields.sortOrder }), _jsx(Input, { ...form.register("sortOrder"), type: "number" })] }), _jsxs("div", { className: "flex items-center gap-3 pt-6", children: [_jsx(Switch, { checked: form.watch("active"), onCheckedChange: (checked) => form.setValue("active", checked) }), _jsx(Label, { children: messages.locationPriceRuleDialog.fields.active })] })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.locationPriceRuleDialog.fields.notes }), _jsx(Textarea, { ...form.register("notes") })] })] }), _jsxs(DialogFooter, { children: [_jsx(Button, { type: "button", variant: "ghost", onClick: () => onOpenChange(false), children: messages.common.cancel }), _jsxs(Button, { type: "submit", disabled: isSubmitting, children: [isSubmitting ? _jsx(Loader2, { className: "mr-2 h-4 w-4 animate-spin" }) : null, isEditing
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"option-start-time-rule-dialog.d.ts","sourceRoot":"","sources":["../../src/components/option-start-time-rule-dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,yBAAyB,EAE/B,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"option-start-time-rule-dialog.d.ts","sourceRoot":"","sources":["../../src/components/option-start-time-rule-dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,yBAAyB,EAE/B,MAAM,yBAAyB,CAAA;AA0DhC,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,IAAI,CAAC,EAAE,yBAAyB,CAAA;IAChC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,yBAAyB,KAAK,IAAI,CAAA;CACtD,CAAA;AAOD,wBAAgB,yBAAyB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,2CAsOvF"}
|
|
@@ -9,6 +9,7 @@ import { useForm } from "react-hook-form";
|
|
|
9
9
|
import { z } from "zod/v4";
|
|
10
10
|
import { usePricingUiMessagesOrDefault } from "../i18n/provider.js";
|
|
11
11
|
import { OptionPriceRuleCombobox } from "./option-price-rule-combobox.js";
|
|
12
|
+
import { ProductOptionCombobox } from "./product-option-combobox.js";
|
|
12
13
|
const RULE_MODES = ["included", "excluded", "override", "adjustment"];
|
|
13
14
|
const ADJUSTMENT_TYPES = ["fixed", "percentage"];
|
|
14
15
|
function createFormSchema(messages) {
|
|
@@ -97,7 +98,10 @@ export function OptionStartTimeRuleDialog({ open, onOpenChange, rule, onSuccess
|
|
|
97
98
|
: messages.optionStartTimeRuleDialog.titles.create }) }), _jsxs("form", { onSubmit: form.handleSubmit(onSubmit), children: [_jsxs(DialogBody, { className: "grid gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.optionStartTimeRuleDialog.fields.optionPriceRule }), _jsx(OptionPriceRuleCombobox, { value: form.watch("optionPriceRuleId"), onChange: (value) => form.setValue("optionPriceRuleId", value ?? "", {
|
|
98
99
|
shouldDirty: true,
|
|
99
100
|
shouldValidate: true,
|
|
100
|
-
}), disabled: isEditing }), form.formState.errors.optionPriceRuleId ? (_jsx("p", { className: "text-xs text-destructive", children: form.formState.errors.optionPriceRuleId.message })) : null] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.optionStartTimeRuleDialog.fields.optionId }), _jsx(
|
|
101
|
+
}), disabled: isEditing }), form.formState.errors.optionPriceRuleId ? (_jsx("p", { className: "text-xs text-destructive", children: form.formState.errors.optionPriceRuleId.message })) : null] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.optionStartTimeRuleDialog.fields.optionId }), _jsx(ProductOptionCombobox, { value: form.watch("optionId"), onChange: (value) => form.setValue("optionId", value ?? "", {
|
|
102
|
+
shouldDirty: true,
|
|
103
|
+
shouldValidate: true,
|
|
104
|
+
}), requireProduct: false })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.optionStartTimeRuleDialog.fields.startTimeId }), _jsx(Input, { ...form.register("startTimeId"), placeholder: messages.optionStartTimeRuleDialog.placeholders.startTimeId })] })] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.optionStartTimeRuleDialog.fields.ruleMode }), _jsxs(Select, { items: RULE_MODES.map((mode) => ({
|
|
101
105
|
label: messages.common.startTimeRuleModeLabels[mode],
|
|
102
106
|
value: mode,
|
|
103
107
|
})), value: form.watch("ruleMode"), onValueChange: (value) => form.setValue("ruleMode", value), children: [_jsx(SelectTrigger, { className: "w-full", children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: RULE_MODES.map((mode) => (_jsx(SelectItem, { value: mode, children: messages.common.startTimeRuleModeLabels[mode] }, mode))) })] })] }), showAdjustment ? (_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.optionStartTimeRuleDialog.fields.adjustmentType }), _jsxs(Select, { items: ADJUSTMENT_TYPES.map((type) => ({
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
type Props = {
|
|
2
|
+
optionId?: string | null;
|
|
3
|
+
value: string | null | undefined;
|
|
4
|
+
onChange: (value: string | null) => void;
|
|
5
|
+
placeholder?: string;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
requireOption?: boolean;
|
|
8
|
+
};
|
|
9
|
+
export declare function OptionUnitCombobox({ optionId, value, onChange, placeholder, disabled, requireOption, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=option-unit-combobox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"option-unit-combobox.d.ts","sourceRoot":"","sources":["../../src/components/option-unit-combobox.tsx"],"names":[],"mappings":"AAcA,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IACxC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,CAAA;AAID,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,aAAoB,GACrB,EAAE,KAAK,2CAgFP"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useOptionUnit, useOptionUnits } from "@voyantjs/products-react";
|
|
3
|
+
import { Combobox, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxInput, ComboboxItem, ComboboxList, } from "@voyantjs/ui/components/combobox";
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
import { usePricingUiMessagesOrDefault } from "../i18n/provider.js";
|
|
6
|
+
const PAGE_SIZE = 100;
|
|
7
|
+
export function OptionUnitCombobox({ optionId, value, onChange, placeholder, disabled, requireOption = true, }) {
|
|
8
|
+
const messages = usePricingUiMessagesOrDefault();
|
|
9
|
+
const [search, setSearch] = React.useState("");
|
|
10
|
+
const listQuery = useOptionUnits({
|
|
11
|
+
optionId: optionId || undefined,
|
|
12
|
+
limit: PAGE_SIZE,
|
|
13
|
+
enabled: !requireOption || !!optionId,
|
|
14
|
+
});
|
|
15
|
+
const selectedQuery = useOptionUnit(value ?? undefined, { enabled: !!value });
|
|
16
|
+
const items = React.useMemo(() => {
|
|
17
|
+
const map = new Map();
|
|
18
|
+
for (const item of listQuery.data?.data ?? []) {
|
|
19
|
+
if (!search || item.name.toLowerCase().includes(search.toLowerCase()))
|
|
20
|
+
map.set(item.id, item);
|
|
21
|
+
}
|
|
22
|
+
if (selectedQuery.data)
|
|
23
|
+
map.set(selectedQuery.data.id, selectedQuery.data);
|
|
24
|
+
return Array.from(map.values());
|
|
25
|
+
}, [listQuery.data?.data, search, selectedQuery.data]);
|
|
26
|
+
const itemMap = React.useMemo(() => new Map(items.map((item) => [item.id, item])), [items]);
|
|
27
|
+
const selected = value ? itemMap.get(value) : undefined;
|
|
28
|
+
const selectedLabel = selected ? selected.name : "";
|
|
29
|
+
const [inputValue, setInputValue] = React.useState(selectedLabel);
|
|
30
|
+
React.useEffect(() => {
|
|
31
|
+
if (selectedLabel)
|
|
32
|
+
setInputValue(selectedLabel);
|
|
33
|
+
}, [selectedLabel]);
|
|
34
|
+
return (_jsxs(Combobox, { items: items.map((item) => item.id), value: value ?? null, inputValue: inputValue, autoHighlight: true, disabled: disabled || (requireOption && !optionId), itemToStringValue: (id) => itemMap.get(id)?.name ?? "", onInputValueChange: (next) => {
|
|
35
|
+
setInputValue(next);
|
|
36
|
+
setSearch(next);
|
|
37
|
+
if (!next)
|
|
38
|
+
onChange(null);
|
|
39
|
+
}, onValueChange: (next) => {
|
|
40
|
+
const id = next ?? null;
|
|
41
|
+
onChange(id);
|
|
42
|
+
setInputValue(id ? (itemMap.get(id)?.name ?? "") : "");
|
|
43
|
+
}, children: [_jsx(ComboboxInput, { placeholder: placeholder ?? messages.comboboxes.optionUnit.placeholder, showClear: !!value }), _jsxs(ComboboxContent, { children: [_jsx(ComboboxEmpty, { children: listQuery.isPending || selectedQuery.isPending
|
|
44
|
+
? messages.common.loading
|
|
45
|
+
: optionId || !requireOption
|
|
46
|
+
? messages.comboboxes.optionUnit.empty
|
|
47
|
+
: messages.comboboxes.optionUnit.missingParent }), _jsx(ComboboxList, { children: _jsx(ComboboxCollection, { children: (id) => {
|
|
48
|
+
const item = itemMap.get(id);
|
|
49
|
+
if (!item)
|
|
50
|
+
return null;
|
|
51
|
+
return (_jsx(ComboboxItem, { value: item.id, children: _jsxs("div", { className: "flex min-w-0 flex-col", children: [_jsx("span", { className: "truncate font-medium", children: item.name }), _jsx("span", { className: "truncate text-xs text-muted-foreground", children: [item.code, item.unitType].filter(Boolean).join(" / ") })] }) }, item.id));
|
|
52
|
+
} }) })] })] }));
|
|
53
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
type Props = {
|
|
2
|
+
value: string | null | undefined;
|
|
3
|
+
onChange: (value: string | null) => void;
|
|
4
|
+
placeholder?: string;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export declare function OptionUnitPriceRuleCombobox({ value, onChange, placeholder, disabled }: Props): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=option-unit-price-rule-combobox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"option-unit-price-rule-combobox.d.ts","sourceRoot":"","sources":["../../src/components/option-unit-price-rule-combobox.tsx"],"names":[],"mappings":"AAkBA,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IACxC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAUD,wBAAgB,2BAA2B,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,KAAK,2CAmF5F"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useOptionUnitPriceRule, useOptionUnitPriceRules, } from "@voyantjs/pricing-react";
|
|
3
|
+
import { Combobox, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxInput, ComboboxItem, ComboboxList, } from "@voyantjs/ui/components/combobox";
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
import { usePricingUiMessagesOrDefault } from "../i18n/provider.js";
|
|
6
|
+
const PAGE_SIZE = 100;
|
|
7
|
+
function formatOptionUnitPriceRuleLabel(item) {
|
|
8
|
+
return `${item.optionId} / ${item.unitId}`; // i18n-literal-ok: joins stable identifiers.
|
|
9
|
+
}
|
|
10
|
+
export function OptionUnitPriceRuleCombobox({ value, onChange, placeholder, disabled }) {
|
|
11
|
+
const messages = usePricingUiMessagesOrDefault();
|
|
12
|
+
const [search, setSearch] = React.useState("");
|
|
13
|
+
const listQuery = useOptionUnitPriceRules({ limit: PAGE_SIZE });
|
|
14
|
+
const selectedQuery = useOptionUnitPriceRule(value, { enabled: !!value });
|
|
15
|
+
const items = React.useMemo(() => {
|
|
16
|
+
const map = new Map();
|
|
17
|
+
for (const item of listQuery.data?.data ?? []) {
|
|
18
|
+
const searchableText = formatOptionUnitPriceRuleLabel(item);
|
|
19
|
+
if (!search || searchableText.toLowerCase().includes(search.toLowerCase())) {
|
|
20
|
+
map.set(item.id, item);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
if (selectedQuery.data)
|
|
24
|
+
map.set(selectedQuery.data.id, selectedQuery.data);
|
|
25
|
+
return Array.from(map.values());
|
|
26
|
+
}, [listQuery.data?.data, search, selectedQuery.data]);
|
|
27
|
+
const itemMap = React.useMemo(() => new Map(items.map((item) => [item.id, item])), [items]);
|
|
28
|
+
const selected = value ? itemMap.get(value) : undefined;
|
|
29
|
+
const selectedLabel = selected ? formatOptionUnitPriceRuleLabel(selected) : "";
|
|
30
|
+
const [inputValue, setInputValue] = React.useState(selectedLabel);
|
|
31
|
+
React.useEffect(() => {
|
|
32
|
+
if (selectedLabel)
|
|
33
|
+
setInputValue(selectedLabel);
|
|
34
|
+
}, [selectedLabel]);
|
|
35
|
+
return (_jsxs(Combobox, { items: items.map((item) => item.id), value: value ?? null, inputValue: inputValue, autoHighlight: true, disabled: disabled, itemToStringValue: (id) => {
|
|
36
|
+
const item = itemMap.get(id);
|
|
37
|
+
return item ? formatOptionUnitPriceRuleLabel(item) : "";
|
|
38
|
+
}, onInputValueChange: (next) => {
|
|
39
|
+
setInputValue(next);
|
|
40
|
+
setSearch(next);
|
|
41
|
+
if (!next)
|
|
42
|
+
onChange(null);
|
|
43
|
+
}, onValueChange: (next) => {
|
|
44
|
+
const id = next ?? null;
|
|
45
|
+
onChange(id);
|
|
46
|
+
const item = id ? itemMap.get(id) : undefined;
|
|
47
|
+
setInputValue(item ? formatOptionUnitPriceRuleLabel(item) : "");
|
|
48
|
+
}, children: [_jsx(ComboboxInput, { placeholder: placeholder ?? messages.comboboxes.optionUnitPriceRule.placeholder, showClear: !!value }), _jsxs(ComboboxContent, { children: [_jsx(ComboboxEmpty, { children: listQuery.isPending || selectedQuery.isPending
|
|
49
|
+
? messages.common.loading
|
|
50
|
+
: messages.comboboxes.optionUnitPriceRule.empty }), _jsx(ComboboxList, { children: _jsx(ComboboxCollection, { children: (id) => {
|
|
51
|
+
const item = itemMap.get(id);
|
|
52
|
+
if (!item)
|
|
53
|
+
return null;
|
|
54
|
+
return (_jsx(ComboboxItem, { value: item.id, children: _jsxs("div", { className: "flex min-w-0 flex-col", children: [_jsxs("span", { className: "truncate font-medium", children: [item.optionId, " / ", item.unitId] }), _jsx("span", { className: "truncate text-xs text-muted-foreground", children: item.pricingMode })] }) }, item.id));
|
|
55
|
+
} }) })] })] }));
|
|
56
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"option-unit-price-rule-dialog.d.ts","sourceRoot":"","sources":["../../src/components/option-unit-price-rule-dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,yBAAyB,EAE/B,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"option-unit-price-rule-dialog.d.ts","sourceRoot":"","sources":["../../src/components/option-unit-price-rule-dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,yBAAyB,EAE/B,MAAM,yBAAyB,CAAA;AAiEhC,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,IAAI,CAAC,EAAE,yBAAyB,CAAA;IAChC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,yBAAyB,KAAK,IAAI,CAAA;CACtD,CAAA;AAOD,wBAAgB,yBAAyB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,2CA8NvF"}
|
|
@@ -9,7 +9,9 @@ import { useForm } from "react-hook-form";
|
|
|
9
9
|
import { z } from "zod/v4";
|
|
10
10
|
import { usePricingUiMessagesOrDefault } from "../i18n/provider.js";
|
|
11
11
|
import { OptionPriceRuleCombobox } from "./option-price-rule-combobox.js";
|
|
12
|
+
import { OptionUnitCombobox } from "./option-unit-combobox.js";
|
|
12
13
|
import { PricingCategoryCombobox } from "./pricing-category-combobox.js";
|
|
14
|
+
import { ProductOptionCombobox } from "./product-option-combobox.js";
|
|
13
15
|
const PRICING_MODES = [
|
|
14
16
|
"per_unit",
|
|
15
17
|
"per_person",
|
|
@@ -23,8 +25,8 @@ function createFormSchema(messages) {
|
|
|
23
25
|
optionPriceRuleId: z
|
|
24
26
|
.string()
|
|
25
27
|
.min(1, messages.optionUnitPriceRuleDialog.validation.optionPriceRuleRequired),
|
|
26
|
-
optionId: z.string().min(1, messages.optionUnitPriceRuleDialog.validation.
|
|
27
|
-
unitId: z.string().min(1, messages.optionUnitPriceRuleDialog.validation.
|
|
28
|
+
optionId: z.string().min(1, messages.optionUnitPriceRuleDialog.validation.optionRequired),
|
|
29
|
+
unitId: z.string().min(1, messages.optionUnitPriceRuleDialog.validation.unitRequired),
|
|
28
30
|
pricingCategoryId: z.string().optional().nullable(),
|
|
29
31
|
pricingMode: z.enum(PRICING_MODES),
|
|
30
32
|
sellAmount: z.coerce.number().min(0).optional().or(z.literal("")).nullable(),
|
|
@@ -103,12 +105,22 @@ export function OptionUnitPriceRuleDialog({ open, onOpenChange, rule, onSuccess
|
|
|
103
105
|
onOpenChange(false);
|
|
104
106
|
};
|
|
105
107
|
const isSubmitting = create.isPending || update.isPending;
|
|
108
|
+
const selectedOptionId = form.watch("optionId");
|
|
106
109
|
return (_jsx(Dialog, { open: open, onOpenChange: onOpenChange, children: _jsxs(DialogContent, { size: "lg", children: [_jsx(DialogHeader, { children: _jsx(DialogTitle, { children: isEditing
|
|
107
110
|
? messages.optionUnitPriceRuleDialog.titles.edit
|
|
108
111
|
: messages.optionUnitPriceRuleDialog.titles.create }) }), _jsxs("form", { onSubmit: form.handleSubmit(onSubmit), children: [_jsxs(DialogBody, { className: "grid gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.optionUnitPriceRuleDialog.fields.optionPriceRule }), _jsx(OptionPriceRuleCombobox, { value: form.watch("optionPriceRuleId"), onChange: (value) => form.setValue("optionPriceRuleId", value ?? "", {
|
|
109
112
|
shouldDirty: true,
|
|
110
113
|
shouldValidate: true,
|
|
111
|
-
}), disabled: isEditing }), form.formState.errors.optionPriceRuleId ? (_jsx("p", { className: "text-xs text-destructive", children: form.formState.errors.optionPriceRuleId.message })) : null] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.optionUnitPriceRuleDialog.fields.
|
|
114
|
+
}), disabled: isEditing }), form.formState.errors.optionPriceRuleId ? (_jsx("p", { className: "text-xs text-destructive", children: form.formState.errors.optionPriceRuleId.message })) : null] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.optionUnitPriceRuleDialog.fields.option }), _jsx(ProductOptionCombobox, { value: selectedOptionId, onChange: (value) => {
|
|
115
|
+
form.setValue("optionId", value ?? "", {
|
|
116
|
+
shouldDirty: true,
|
|
117
|
+
shouldValidate: true,
|
|
118
|
+
});
|
|
119
|
+
form.setValue("unitId", "", { shouldDirty: true, shouldValidate: true });
|
|
120
|
+
}, requireProduct: false })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.optionUnitPriceRuleDialog.fields.unit }), _jsx(OptionUnitCombobox, { optionId: selectedOptionId, value: form.watch("unitId"), onChange: (value) => form.setValue("unitId", value ?? "", {
|
|
121
|
+
shouldDirty: true,
|
|
122
|
+
shouldValidate: true,
|
|
123
|
+
}) })] })] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.optionUnitPriceRuleDialog.fields.pricingCategory }), _jsx(PricingCategoryCombobox, { value: form.watch("pricingCategoryId"), onChange: (value) => form.setValue("pricingCategoryId", value ?? "", { shouldDirty: true }), placeholder: messages.optionUnitPriceRuleDialog.placeholders.pricingCategory })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.optionUnitPriceRuleDialog.fields.pricingMode }), _jsxs(Select, { items: PRICING_MODES.map((mode) => ({
|
|
112
124
|
label: messages.common.unitPricingModeLabels[mode],
|
|
113
125
|
value: mode,
|
|
114
126
|
})), value: form.watch("pricingMode"), onValueChange: (value) => form.setValue("pricingMode", value), children: [_jsx(SelectTrigger, { className: "w-full", children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: PRICING_MODES.map((mode) => (_jsx(SelectItem, { value: mode, children: messages.common.unitPricingModeLabels[mode] }, mode))) })] })] })] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.optionUnitPriceRuleDialog.fields.sellAmount }), _jsx(Input, { ...form.register("sellAmount"), type: "number", step: "0.01", min: "0" })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.optionUnitPriceRuleDialog.fields.costAmount }), _jsx(Input, { ...form.register("costAmount"), type: "number", step: "0.01", min: "0" })] })] }), _jsxs("div", { className: "grid grid-cols-3 gap-3", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.optionUnitPriceRuleDialog.fields.minQuantity }), _jsx(Input, { ...form.register("minQuantity"), type: "number", min: "0" })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.optionUnitPriceRuleDialog.fields.maxQuantity }), _jsx(Input, { ...form.register("maxQuantity"), type: "number", min: "0" })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.optionUnitPriceRuleDialog.fields.sortOrder }), _jsx(Input, { ...form.register("sortOrder"), type: "number" })] })] }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Switch, { checked: form.watch("active"), onCheckedChange: (checked) => form.setValue("active", checked) }), _jsx(Label, { children: messages.optionUnitPriceRuleDialog.fields.active })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.optionUnitPriceRuleDialog.fields.notes }), _jsx(Textarea, { ...form.register("notes") })] })] }), _jsxs(DialogFooter, { children: [_jsx(Button, { type: "button", variant: "ghost", onClick: () => onOpenChange(false), children: messages.common.cancel }), _jsxs(Button, { type: "submit", disabled: isSubmitting, children: [isSubmitting ? _jsx(Loader2, { className: "mr-2 h-4 w-4 animate-spin" }) : null, isEditing
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"option-unit-tier-dialog.d.ts","sourceRoot":"","sources":["../../src/components/option-unit-tier-dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,oBAAoB,EAA6B,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"option-unit-tier-dialog.d.ts","sourceRoot":"","sources":["../../src/components/option-unit-tier-dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,oBAAoB,EAA6B,MAAM,yBAAyB,CAAA;AA2C9F,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,IAAI,CAAC,EAAE,oBAAoB,CAAA;IAC3B,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,CAAA;CACjD,CAAA;AAOD,wBAAgB,oBAAoB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,2CAwJlF"}
|
|
@@ -8,11 +8,12 @@ import { useEffect } from "react";
|
|
|
8
8
|
import { useForm } from "react-hook-form";
|
|
9
9
|
import { z } from "zod/v4";
|
|
10
10
|
import { usePricingUiMessagesOrDefault } from "../i18n/provider.js";
|
|
11
|
+
import { OptionUnitPriceRuleCombobox } from "./option-unit-price-rule-combobox.js";
|
|
11
12
|
function createFormSchema(messages) {
|
|
12
13
|
return z.object({
|
|
13
14
|
optionUnitPriceRuleId: z
|
|
14
15
|
.string()
|
|
15
|
-
.min(1, messages.optionUnitTierDialog.validation.
|
|
16
|
+
.min(1, messages.optionUnitTierDialog.validation.optionUnitPriceRuleRequired),
|
|
16
17
|
minQuantity: z.coerce
|
|
17
18
|
.number()
|
|
18
19
|
.int()
|
|
@@ -86,7 +87,10 @@ export function OptionUnitTierDialog({ open, onOpenChange, tier, onSuccess }) {
|
|
|
86
87
|
const isSubmitting = create.isPending || update.isPending;
|
|
87
88
|
return (_jsx(Dialog, { open: open, onOpenChange: onOpenChange, children: _jsxs(DialogContent, { children: [_jsx(DialogHeader, { children: _jsx(DialogTitle, { children: isEditing
|
|
88
89
|
? messages.optionUnitTierDialog.titles.edit
|
|
89
|
-
: messages.optionUnitTierDialog.titles.create }) }), _jsxs("form", { onSubmit: form.handleSubmit(onSubmit), children: [_jsxs(DialogBody, { className: "grid gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.optionUnitTierDialog.fields.
|
|
90
|
+
: messages.optionUnitTierDialog.titles.create }) }), _jsxs("form", { onSubmit: form.handleSubmit(onSubmit), children: [_jsxs(DialogBody, { className: "grid gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.optionUnitTierDialog.fields.optionUnitPriceRule }), _jsx(OptionUnitPriceRuleCombobox, { value: form.watch("optionUnitPriceRuleId"), onChange: (value) => form.setValue("optionUnitPriceRuleId", value ?? "", {
|
|
91
|
+
shouldDirty: true,
|
|
92
|
+
shouldValidate: true,
|
|
93
|
+
}), placeholder: messages.optionUnitTierDialog.placeholders.optionUnitPriceRule, disabled: isEditing }), form.formState.errors.optionUnitPriceRuleId ? (_jsx("p", { className: "text-xs text-destructive", children: form.formState.errors.optionUnitPriceRuleId.message })) : null] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.optionUnitTierDialog.fields.minQuantity }), _jsx(Input, { ...form.register("minQuantity"), type: "number", min: "1" }), form.formState.errors.minQuantity ? (_jsx("p", { className: "text-xs text-destructive", children: form.formState.errors.minQuantity.message })) : null] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.optionUnitTierDialog.fields.maxQuantity }), _jsx(Input, { ...form.register("maxQuantity"), type: "number", min: "1" })] })] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.optionUnitTierDialog.fields.sellAmount }), _jsx(Input, { ...form.register("sellAmount"), type: "number", step: "0.01", min: "0" })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.optionUnitTierDialog.fields.costAmount }), _jsx(Input, { ...form.register("costAmount"), type: "number", step: "0.01", min: "0" })] })] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.optionUnitTierDialog.fields.sortOrder }), _jsx(Input, { ...form.register("sortOrder"), type: "number" })] }), _jsxs("div", { className: "flex items-center gap-3 pt-6", children: [_jsx(Switch, { checked: form.watch("active"), onCheckedChange: (checked) => form.setValue("active", checked) }), _jsx(Label, { children: messages.optionUnitTierDialog.fields.active })] })] })] }), _jsxs(DialogFooter, { children: [_jsx(Button, { type: "button", variant: "ghost", onClick: () => onOpenChange(false), children: messages.common.cancel }), _jsxs(Button, { type: "submit", disabled: isSubmitting, children: [isSubmitting ? _jsx(Loader2, { className: "mr-2 h-4 w-4 animate-spin" }) : null, isEditing
|
|
90
94
|
? messages.common.saveChanges
|
|
91
95
|
: messages.optionUnitTierDialog.actions.create] })] })] })] }) }));
|
|
92
96
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pickup-price-rule-dialog.d.ts","sourceRoot":"","sources":["../../src/components/pickup-price-rule-dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,qBAAqB,EAA8B,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"pickup-price-rule-dialog.d.ts","sourceRoot":"","sources":["../../src/components/pickup-price-rule-dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,qBAAqB,EAA8B,MAAM,yBAAyB,CAAA;AA0DhG,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,IAAI,CAAC,EAAE,qBAAqB,CAAA;IAC5B,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAA;CAClD,CAAA;AAKD,wBAAgB,qBAAqB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,2CA0LnF"}
|
|
@@ -9,6 +9,7 @@ import { useForm } from "react-hook-form";
|
|
|
9
9
|
import { z } from "zod/v4";
|
|
10
10
|
import { usePricingUiMessagesOrDefault } from "../i18n/provider.js";
|
|
11
11
|
import { OptionPriceRuleCombobox } from "./option-price-rule-combobox.js";
|
|
12
|
+
import { ProductOptionCombobox } from "./product-option-combobox.js";
|
|
12
13
|
const ADDON_PRICING_MODES = [
|
|
13
14
|
"included",
|
|
14
15
|
"per_person",
|
|
@@ -95,7 +96,10 @@ export function PickupPriceRuleDialog({ open, onOpenChange, rule, onSuccess }) {
|
|
|
95
96
|
: messages.locationPriceRuleDialog.pickup.titles.create }) }), _jsxs("form", { onSubmit: form.handleSubmit(onSubmit), children: [_jsxs(DialogBody, { className: "grid gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.locationPriceRuleDialog.fields.optionPriceRule }), _jsx(OptionPriceRuleCombobox, { value: form.watch("optionPriceRuleId"), onChange: (value) => form.setValue("optionPriceRuleId", value ?? "", {
|
|
96
97
|
shouldDirty: true,
|
|
97
98
|
shouldValidate: true,
|
|
98
|
-
}), disabled: isEditing }), form.formState.errors.optionPriceRuleId ? (_jsx("p", { className: "text-xs text-destructive", children: form.formState.errors.optionPriceRuleId.message })) : null] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.locationPriceRuleDialog.fields.optionId }), _jsx(
|
|
99
|
+
}), disabled: isEditing }), form.formState.errors.optionPriceRuleId ? (_jsx("p", { className: "text-xs text-destructive", children: form.formState.errors.optionPriceRuleId.message })) : null] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.locationPriceRuleDialog.fields.optionId }), _jsx(ProductOptionCombobox, { value: form.watch("optionId"), onChange: (value) => form.setValue("optionId", value ?? "", {
|
|
100
|
+
shouldDirty: true,
|
|
101
|
+
shouldValidate: true,
|
|
102
|
+
}), requireProduct: false })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.locationPriceRuleDialog.fields.pickupPointId }), _jsx(Input, { ...form.register("pickupPointId"), placeholder: messages.locationPriceRuleDialog.placeholders.pickupPointId })] })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.locationPriceRuleDialog.fields.pricingMode }), _jsxs(Select, { items: ADDON_PRICING_MODES.map((mode) => ({
|
|
99
103
|
label: messages.common.addonPricingModeLabels[mode],
|
|
100
104
|
value: mode,
|
|
101
105
|
})), value: form.watch("pricingMode"), onValueChange: (value) => form.setValue("pricingMode", value), children: [_jsx(SelectTrigger, { className: "w-full", children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: ADDON_PRICING_MODES.map((mode) => (_jsx(SelectItem, { value: mode, children: messages.common.addonPricingModeLabels[mode] }, mode))) })] })] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.locationPriceRuleDialog.fields.sellAmount }), _jsx(Input, { ...form.register("sellAmount"), type: "number", step: "0.01", min: "0" })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.locationPriceRuleDialog.fields.costAmount }), _jsx(Input, { ...form.register("costAmount"), type: "number", step: "0.01", min: "0" })] })] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.locationPriceRuleDialog.fields.sortOrder }), _jsx(Input, { ...form.register("sortOrder"), type: "number" })] }), _jsxs("div", { className: "flex items-center gap-3 pt-6", children: [_jsx(Switch, { checked: form.watch("active"), onCheckedChange: (checked) => form.setValue("active", checked) }), _jsx(Label, { children: messages.locationPriceRuleDialog.fields.active })] })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.locationPriceRuleDialog.fields.notes }), _jsx(Textarea, { ...form.register("notes") })] })] }), _jsxs(DialogFooter, { children: [_jsx(Button, { type: "button", variant: "ghost", onClick: () => onOpenChange(false), children: messages.common.cancel }), _jsxs(Button, { type: "submit", disabled: isSubmitting, children: [isSubmitting ? _jsx(Loader2, { className: "mr-2 h-4 w-4 animate-spin" }) : null, isEditing
|
|
@@ -4,7 +4,8 @@ type Props = {
|
|
|
4
4
|
onChange: (value: string | null) => void;
|
|
5
5
|
placeholder?: string;
|
|
6
6
|
disabled?: boolean;
|
|
7
|
+
requireProduct?: boolean;
|
|
7
8
|
};
|
|
8
|
-
export declare function ProductOptionCombobox({ productId, value, onChange, placeholder, disabled, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export declare function ProductOptionCombobox({ productId, value, onChange, placeholder, disabled, requireProduct, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
9
10
|
export {};
|
|
10
11
|
//# sourceMappingURL=product-option-combobox.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-option-combobox.d.ts","sourceRoot":"","sources":["../../src/components/product-option-combobox.tsx"],"names":[],"mappings":"AAkBA,KAAK,KAAK,GAAG;IACX,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IACxC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"product-option-combobox.d.ts","sourceRoot":"","sources":["../../src/components/product-option-combobox.tsx"],"names":[],"mappings":"AAkBA,KAAK,KAAK,GAAG;IACX,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IACxC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAID,wBAAgB,qBAAqB,CAAC,EACpC,SAAS,EACT,KAAK,EACL,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,cAAqB,GACtB,EAAE,KAAK,2CAgFP"}
|
|
@@ -4,13 +4,13 @@ import { Combobox, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxI
|
|
|
4
4
|
import * as React from "react";
|
|
5
5
|
import { usePricingUiMessagesOrDefault } from "../i18n/provider.js";
|
|
6
6
|
const PAGE_SIZE = 100;
|
|
7
|
-
export function ProductOptionCombobox({ productId, value, onChange, placeholder, disabled, }) {
|
|
7
|
+
export function ProductOptionCombobox({ productId, value, onChange, placeholder, disabled, requireProduct = true, }) {
|
|
8
8
|
const messages = usePricingUiMessagesOrDefault();
|
|
9
9
|
const [search, setSearch] = React.useState("");
|
|
10
10
|
const listQuery = useProductOptions({
|
|
11
11
|
productId: productId || undefined,
|
|
12
12
|
limit: PAGE_SIZE,
|
|
13
|
-
enabled: !!productId,
|
|
13
|
+
enabled: !requireProduct || !!productId,
|
|
14
14
|
});
|
|
15
15
|
const selectedQuery = useProductOption(value, { enabled: !!value });
|
|
16
16
|
const items = React.useMemo(() => {
|
|
@@ -31,7 +31,7 @@ export function ProductOptionCombobox({ productId, value, onChange, placeholder,
|
|
|
31
31
|
if (selectedLabel)
|
|
32
32
|
setInputValue(selectedLabel);
|
|
33
33
|
}, [selectedLabel]);
|
|
34
|
-
return (_jsxs(Combobox, { items: items.map((item) => item.id), value: value ?? null, inputValue: inputValue, autoHighlight: true, disabled: disabled || !productId, itemToStringValue: (id) => itemMap.get(id)?.name ?? "", onInputValueChange: (next) => {
|
|
34
|
+
return (_jsxs(Combobox, { items: items.map((item) => item.id), value: value ?? null, inputValue: inputValue, autoHighlight: true, disabled: disabled || (requireProduct && !productId), itemToStringValue: (id) => itemMap.get(id)?.name ?? "", onInputValueChange: (next) => {
|
|
35
35
|
setInputValue(next);
|
|
36
36
|
setSearch(next);
|
|
37
37
|
if (!next)
|
|
@@ -42,7 +42,7 @@ export function ProductOptionCombobox({ productId, value, onChange, placeholder,
|
|
|
42
42
|
setInputValue(id ? (itemMap.get(id)?.name ?? "") : "");
|
|
43
43
|
}, children: [_jsx(ComboboxInput, { placeholder: placeholder ?? messages.comboboxes.productOption.placeholder, showClear: !!value }), _jsxs(ComboboxContent, { children: [_jsx(ComboboxEmpty, { children: listQuery.isPending || selectedQuery.isPending
|
|
44
44
|
? messages.common.loading
|
|
45
|
-
: productId
|
|
45
|
+
: productId || !requireProduct
|
|
46
46
|
? messages.comboboxes.productOption.empty
|
|
47
47
|
: messages.comboboxes.productOption.missingParent }), _jsx(ComboboxList, { children: _jsx(ComboboxCollection, { children: (id) => {
|
|
48
48
|
const item = itemMap.get(id);
|
package/dist/i18n/en.d.ts
CHANGED
|
@@ -96,6 +96,15 @@ export declare const pricingUiEn: {
|
|
|
96
96
|
empty: string;
|
|
97
97
|
missingParent: string;
|
|
98
98
|
};
|
|
99
|
+
optionUnit: {
|
|
100
|
+
placeholder: string;
|
|
101
|
+
empty: string;
|
|
102
|
+
missingParent: string;
|
|
103
|
+
};
|
|
104
|
+
optionUnitPriceRule: {
|
|
105
|
+
placeholder: string;
|
|
106
|
+
empty: string;
|
|
107
|
+
};
|
|
99
108
|
};
|
|
100
109
|
pricingCategoriesPage: {
|
|
101
110
|
title: string;
|
|
@@ -417,8 +426,8 @@ export declare const pricingUiEn: {
|
|
|
417
426
|
};
|
|
418
427
|
fields: {
|
|
419
428
|
optionPriceRule: string;
|
|
420
|
-
|
|
421
|
-
|
|
429
|
+
option: string;
|
|
430
|
+
unit: string;
|
|
422
431
|
pricingCategory: string;
|
|
423
432
|
pricingMode: string;
|
|
424
433
|
sellAmount: string;
|
|
@@ -430,14 +439,12 @@ export declare const pricingUiEn: {
|
|
|
430
439
|
notes: string;
|
|
431
440
|
};
|
|
432
441
|
placeholders: {
|
|
433
|
-
optionId: string;
|
|
434
|
-
unitId: string;
|
|
435
442
|
pricingCategory: string;
|
|
436
443
|
};
|
|
437
444
|
validation: {
|
|
438
445
|
optionPriceRuleRequired: string;
|
|
439
|
-
|
|
440
|
-
|
|
446
|
+
optionRequired: string;
|
|
447
|
+
unitRequired: string;
|
|
441
448
|
};
|
|
442
449
|
actions: {
|
|
443
450
|
create: string;
|
|
@@ -449,7 +456,7 @@ export declare const pricingUiEn: {
|
|
|
449
456
|
edit: string;
|
|
450
457
|
};
|
|
451
458
|
fields: {
|
|
452
|
-
|
|
459
|
+
optionUnitPriceRule: string;
|
|
453
460
|
minQuantity: string;
|
|
454
461
|
maxQuantity: string;
|
|
455
462
|
sellAmount: string;
|
|
@@ -458,10 +465,10 @@ export declare const pricingUiEn: {
|
|
|
458
465
|
active: string;
|
|
459
466
|
};
|
|
460
467
|
placeholders: {
|
|
461
|
-
|
|
468
|
+
optionUnitPriceRule: string;
|
|
462
469
|
};
|
|
463
470
|
validation: {
|
|
464
|
-
|
|
471
|
+
optionUnitPriceRuleRequired: string;
|
|
465
472
|
minQuantityMin: string;
|
|
466
473
|
};
|
|
467
474
|
actions: {
|
package/dist/i18n/en.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8dK,CAAA"}
|
package/dist/i18n/en.js
CHANGED
|
@@ -96,6 +96,15 @@ export const pricingUiEn = {
|
|
|
96
96
|
empty: "No product options found.",
|
|
97
97
|
missingParent: "Select a product first.",
|
|
98
98
|
},
|
|
99
|
+
optionUnit: {
|
|
100
|
+
placeholder: "Select option unit...",
|
|
101
|
+
empty: "No option units found.",
|
|
102
|
+
missingParent: "Select an option first.",
|
|
103
|
+
},
|
|
104
|
+
optionUnitPriceRule: {
|
|
105
|
+
placeholder: "Select option unit price rule...",
|
|
106
|
+
empty: "No option unit price rules found.",
|
|
107
|
+
},
|
|
99
108
|
},
|
|
100
109
|
pricingCategoriesPage: {
|
|
101
110
|
title: "Pricing Categories",
|
|
@@ -325,7 +334,7 @@ export const pricingUiEn = {
|
|
|
325
334
|
locationPriceRuleDialog: {
|
|
326
335
|
fields: {
|
|
327
336
|
optionPriceRule: "Option price rule",
|
|
328
|
-
optionId: "Option
|
|
337
|
+
optionId: "Option",
|
|
329
338
|
facilityId: "Facility ID (optional)",
|
|
330
339
|
pickupPointId: "Pickup point ID",
|
|
331
340
|
dropoffName: "Dropoff name",
|
|
@@ -338,13 +347,13 @@ export const pricingUiEn = {
|
|
|
338
347
|
notes: "Notes",
|
|
339
348
|
},
|
|
340
349
|
placeholders: {
|
|
341
|
-
optionId: "
|
|
350
|
+
optionId: "Select option...",
|
|
342
351
|
facilityId: "fac_…",
|
|
343
352
|
pickupPointId: "ppnt_…",
|
|
344
353
|
},
|
|
345
354
|
validation: {
|
|
346
355
|
optionPriceRuleRequired: "Option price rule is required",
|
|
347
|
-
optionIdRequired: "Option
|
|
356
|
+
optionIdRequired: "Option is required",
|
|
348
357
|
pickupPointIdRequired: "Pickup point is required",
|
|
349
358
|
dropoffNameRequired: "Dropoff name is required",
|
|
350
359
|
},
|
|
@@ -386,7 +395,7 @@ export const pricingUiEn = {
|
|
|
386
395
|
},
|
|
387
396
|
fields: {
|
|
388
397
|
optionPriceRule: "Option price rule",
|
|
389
|
-
optionId: "Option
|
|
398
|
+
optionId: "Option",
|
|
390
399
|
startTimeId: "Start time ID",
|
|
391
400
|
ruleMode: "Rule mode",
|
|
392
401
|
adjustmentType: "Adjustment type",
|
|
@@ -397,13 +406,13 @@ export const pricingUiEn = {
|
|
|
397
406
|
notes: "Notes",
|
|
398
407
|
},
|
|
399
408
|
placeholders: {
|
|
400
|
-
optionId: "
|
|
409
|
+
optionId: "Select option...",
|
|
401
410
|
startTimeId: "pst_…",
|
|
402
411
|
select: "Select...",
|
|
403
412
|
},
|
|
404
413
|
validation: {
|
|
405
414
|
optionPriceRuleRequired: "Option price rule is required",
|
|
406
|
-
optionIdRequired: "Option
|
|
415
|
+
optionIdRequired: "Option is required",
|
|
407
416
|
startTimeIdRequired: "Start time ID is required",
|
|
408
417
|
},
|
|
409
418
|
actions: {
|
|
@@ -417,8 +426,8 @@ export const pricingUiEn = {
|
|
|
417
426
|
},
|
|
418
427
|
fields: {
|
|
419
428
|
optionPriceRule: "Option price rule",
|
|
420
|
-
|
|
421
|
-
|
|
429
|
+
option: "Option",
|
|
430
|
+
unit: "Unit",
|
|
422
431
|
pricingCategory: "Pricing category (optional)",
|
|
423
432
|
pricingMode: "Pricing mode",
|
|
424
433
|
sellAmount: "Sell amount",
|
|
@@ -430,14 +439,12 @@ export const pricingUiEn = {
|
|
|
430
439
|
notes: "Notes",
|
|
431
440
|
},
|
|
432
441
|
placeholders: {
|
|
433
|
-
optionId: "popt_…",
|
|
434
|
-
unitId: "punit_…",
|
|
435
442
|
pricingCategory: "Search pricing categories...",
|
|
436
443
|
},
|
|
437
444
|
validation: {
|
|
438
445
|
optionPriceRuleRequired: "Option price rule is required",
|
|
439
|
-
|
|
440
|
-
|
|
446
|
+
optionRequired: "Option is required",
|
|
447
|
+
unitRequired: "Unit is required",
|
|
441
448
|
},
|
|
442
449
|
actions: {
|
|
443
450
|
create: "Add rule",
|
|
@@ -449,7 +456,7 @@ export const pricingUiEn = {
|
|
|
449
456
|
edit: "Edit unit tier",
|
|
450
457
|
},
|
|
451
458
|
fields: {
|
|
452
|
-
|
|
459
|
+
optionUnitPriceRule: "Option unit price rule",
|
|
453
460
|
minQuantity: "Min quantity",
|
|
454
461
|
maxQuantity: "Max quantity",
|
|
455
462
|
sellAmount: "Sell amount",
|
|
@@ -458,10 +465,10 @@ export const pricingUiEn = {
|
|
|
458
465
|
active: "Active",
|
|
459
466
|
},
|
|
460
467
|
placeholders: {
|
|
461
|
-
|
|
468
|
+
optionUnitPriceRule: "Select option unit price rule...",
|
|
462
469
|
},
|
|
463
470
|
validation: {
|
|
464
|
-
|
|
471
|
+
optionUnitPriceRuleRequired: "Option unit price rule is required",
|
|
465
472
|
minQuantityMin: "Min quantity must be at least 1",
|
|
466
473
|
},
|
|
467
474
|
actions: {
|
package/dist/i18n/messages.d.ts
CHANGED
|
@@ -62,6 +62,15 @@ export type PricingUiMessages = {
|
|
|
62
62
|
empty: string;
|
|
63
63
|
missingParent: string;
|
|
64
64
|
};
|
|
65
|
+
optionUnit: {
|
|
66
|
+
placeholder: string;
|
|
67
|
+
empty: string;
|
|
68
|
+
missingParent: string;
|
|
69
|
+
};
|
|
70
|
+
optionUnitPriceRule: {
|
|
71
|
+
placeholder: string;
|
|
72
|
+
empty: string;
|
|
73
|
+
};
|
|
65
74
|
};
|
|
66
75
|
pricingCategoriesPage: {
|
|
67
76
|
title: string;
|
|
@@ -375,8 +384,8 @@ export type PricingUiMessages = {
|
|
|
375
384
|
};
|
|
376
385
|
fields: {
|
|
377
386
|
optionPriceRule: string;
|
|
378
|
-
|
|
379
|
-
|
|
387
|
+
option: string;
|
|
388
|
+
unit: string;
|
|
380
389
|
pricingCategory: string;
|
|
381
390
|
pricingMode: string;
|
|
382
391
|
sellAmount: string;
|
|
@@ -388,14 +397,12 @@ export type PricingUiMessages = {
|
|
|
388
397
|
notes: string;
|
|
389
398
|
};
|
|
390
399
|
placeholders: {
|
|
391
|
-
optionId: string;
|
|
392
|
-
unitId: string;
|
|
393
400
|
pricingCategory: string;
|
|
394
401
|
};
|
|
395
402
|
validation: {
|
|
396
403
|
optionPriceRuleRequired: string;
|
|
397
|
-
|
|
398
|
-
|
|
404
|
+
optionRequired: string;
|
|
405
|
+
unitRequired: string;
|
|
399
406
|
};
|
|
400
407
|
actions: {
|
|
401
408
|
create: string;
|
|
@@ -407,7 +414,7 @@ export type PricingUiMessages = {
|
|
|
407
414
|
edit: string;
|
|
408
415
|
};
|
|
409
416
|
fields: {
|
|
410
|
-
|
|
417
|
+
optionUnitPriceRule: string;
|
|
411
418
|
minQuantity: string;
|
|
412
419
|
maxQuantity: string;
|
|
413
420
|
sellAmount: string;
|
|
@@ -416,10 +423,10 @@ export type PricingUiMessages = {
|
|
|
416
423
|
active: string;
|
|
417
424
|
};
|
|
418
425
|
placeholders: {
|
|
419
|
-
|
|
426
|
+
optionUnitPriceRule: string;
|
|
420
427
|
};
|
|
421
428
|
validation: {
|
|
422
|
-
|
|
429
|
+
optionUnitPriceRuleRequired: string;
|
|
423
430
|
minQuantityMin: string;
|
|
424
431
|
};
|
|
425
432
|
actions: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/i18n/messages.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/i18n/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,+BAA+B,EAC/B,qBAAqB,EACtB,MAAM,yBAAyB,CAAA;AAEhC,MAAM,MAAM,mBAAmB,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAA;AACvE,MAAM,MAAM,qBAAqB,GAAG,+BAA+B,CAAC,gBAAgB,CAAC,CAAA;AACrF,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAA;AAChE,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,YAAY,CAAA;AACzD,MAAM,MAAM,gBAAgB,GACxB,UAAU,GACV,YAAY,GACZ,aAAa,GACb,YAAY,GACZ,aAAa,CAAA;AACjB,MAAM,MAAM,0BAA0B,GAClC,YAAY,GACZ,aAAa,GACb,eAAe,GACf,MAAM,GACN,YAAY,CAAA;AAChB,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,YAAY,CAAA;AACnF,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,YAAY,CAAA;AACnD,MAAM,MAAM,eAAe,GACvB,UAAU,GACV,YAAY,GACZ,aAAa,GACb,UAAU,GACV,MAAM,GACN,YAAY,CAAA;AAEhB,eAAO,MAAM,oBAAoB,iGAUvB,CAAA;AAEV,eAAO,MAAM,sBAAsB,sEAKzB,CAAA;AAEV,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAA;QACd,WAAW,EAAE,MAAM,CAAA;QACnB,MAAM,EAAE,MAAM,CAAA;QACd,GAAG,EAAE,MAAM,CAAA;QACX,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;QACd,QAAQ,EAAE,MAAM,CAAA;QAChB,kBAAkB,EAAE,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAA;QACvD,oBAAoB,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAA;QAC3D,gBAAgB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;QAC5C,sBAAsB,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAA;QACxD,gCAAgC,EAAE,MAAM,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAA;QAC5E,uBAAuB,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAA;QAC1D,oBAAoB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;QACpD,qBAAqB,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;KACvD,CAAA;IACD,UAAU,EAAE;QACV,eAAe,EAAE;YACf,WAAW,EAAE,MAAM,CAAA;YACnB,KAAK,EAAE,MAAM,CAAA;SACd,CAAA;QACD,YAAY,EAAE;YACZ,WAAW,EAAE,MAAM,CAAA;YACnB,KAAK,EAAE,MAAM,CAAA;SACd,CAAA;QACD,aAAa,EAAE;YACb,WAAW,EAAE,MAAM,CAAA;YACnB,KAAK,EAAE,MAAM,CAAA;SACd,CAAA;QACD,kBAAkB,EAAE;YAClB,WAAW,EAAE,MAAM,CAAA;YACnB,KAAK,EAAE,MAAM,CAAA;SACd,CAAA;QACD,eAAe,EAAE;YACf,WAAW,EAAE,MAAM,CAAA;YACnB,KAAK,EAAE,MAAM,CAAA;SACd,CAAA;QACD,OAAO,EAAE;YACP,WAAW,EAAE,MAAM,CAAA;YACnB,KAAK,EAAE,MAAM,CAAA;SACd,CAAA;QACD,aAAa,EAAE;YACb,WAAW,EAAE,MAAM,CAAA;YACnB,KAAK,EAAE,MAAM,CAAA;YACb,aAAa,EAAE,MAAM,CAAA;SACtB,CAAA;QACD,UAAU,EAAE;YACV,WAAW,EAAE,MAAM,CAAA;YACnB,KAAK,EAAE,MAAM,CAAA;YACb,aAAa,EAAE,MAAM,CAAA;SACtB,CAAA;QACD,mBAAmB,EAAE;YACnB,WAAW,EAAE,MAAM,CAAA;YACnB,KAAK,EAAE,MAAM,CAAA;SACd,CAAA;KACF,CAAA;IACD,qBAAqB,EAAE;QACrB,KAAK,EAAE,MAAM,CAAA;QACb,WAAW,EAAE,MAAM,CAAA;KACpB,CAAA;IACD,iBAAiB,EAAE;QACjB,KAAK,EAAE,MAAM,CAAA;QACb,WAAW,EAAE,MAAM,CAAA;QACnB,UAAU,EAAE,MAAM,CAAA;QAClB,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;QACd,aAAa,EAAE,MAAM,CAAA;QACrB,cAAc,EAAE,MAAM,CAAA;QACtB,yBAAyB,EAAE,MAAM,CAAA;QACjC,iBAAiB,EAAE,MAAM,CAAA;QACzB,cAAc,EAAE,MAAM,CAAA;QACtB,aAAa,EAAE,MAAM,CAAA;QACrB,SAAS,EAAE,MAAM,CAAA;QACjB,eAAe,EAAE,MAAM,CAAA;QACvB,SAAS,EAAE,MAAM,CAAA;QACjB,eAAe,EAAE,MAAM,CAAA;QACvB,aAAa,EAAE,MAAM,CAAA;QACrB,SAAS,EAAE,MAAM,CAAA;QACjB,mBAAmB,EAAE,MAAM,CAAA;QAC3B,WAAW,EAAE,MAAM,CAAA;QACnB,UAAU,EAAE,MAAM,CAAA;QAClB,gBAAgB,EAAE,MAAM,CAAA;QACxB,MAAM,EAAE,MAAM,CAAA;QACd,WAAW,EAAE,MAAM,CAAA;QACnB,aAAa,EAAE,MAAM,CAAA;QACrB,iBAAiB,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAA;QACnD,UAAU,EAAE;YACV,YAAY,EAAE,MAAM,CAAA;YACpB,YAAY,EAAE,MAAM,CAAA;YACpB,cAAc,EAAE,MAAM,CAAA;SACvB,CAAA;KACF,CAAA;IACD,qBAAqB,EAAE;QACrB,MAAM,EAAE;YACN,MAAM,EAAE,MAAM,CAAA;YACd,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;QACD,YAAY,EAAE;YACZ,MAAM,EAAE,MAAM,CAAA;YACd,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;KACF,CAAA;IACD,mBAAmB,EAAE;QACnB,MAAM,EAAE;YACN,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,EAAE,MAAM,CAAA;YACZ,aAAa,EAAE,MAAM,CAAA;YACrB,YAAY,EAAE,MAAM,CAAA;YACpB,MAAM,EAAE,MAAM,CAAA;YACd,MAAM,EAAE,MAAM,CAAA;YACd,SAAS,EAAE,MAAM,CAAA;YACjB,MAAM,EAAE,MAAM,CAAA;SACf,CAAA;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;QACD,UAAU,EAAE;YACV,YAAY,EAAE,MAAM,CAAA;YACpB,UAAU,EAAE,MAAM,CAAA;SACnB,CAAA;QACD,OAAO,EAAE;YACP,MAAM,EAAE,MAAM,CAAA;SACf,CAAA;KACF,CAAA;IACD,mBAAmB,EAAE;QACnB,iBAAiB,EAAE,MAAM,CAAA;QACzB,GAAG,EAAE,MAAM,CAAA;QACX,OAAO,EAAE;YACP,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,EAAE,MAAM,CAAA;YACZ,GAAG,EAAE,MAAM,CAAA;YACX,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,EAAE,MAAM,CAAA;YACZ,MAAM,EAAE,MAAM,CAAA;YACd,OAAO,EAAE,MAAM,CAAA;SAChB,CAAA;QACD,YAAY,EAAE,MAAM,CAAA;QACpB,KAAK,EAAE,MAAM,CAAA;QACb,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;QACd,aAAa,EAAE,MAAM,CAAA;QACrB,cAAc,EAAE,MAAM,CAAA;KACvB,CAAA;IACD,+BAA+B,EAAE;QAC/B,MAAM,EAAE;YACN,MAAM,EAAE,MAAM,CAAA;YACd,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;QACD,WAAW,EAAE,MAAM,CAAA;KACpB,CAAA;IACD,6BAA6B,EAAE;QAC7B,MAAM,EAAE;YACN,cAAc,EAAE,MAAM,CAAA;YACtB,iBAAiB,EAAE,MAAM,CAAA;YACzB,cAAc,EAAE,MAAM,CAAA;YACtB,YAAY,EAAE,MAAM,CAAA;YACpB,eAAe,EAAE,MAAM,CAAA;YACvB,MAAM,EAAE,MAAM,CAAA;YACd,KAAK,EAAE,MAAM,CAAA;SACd,CAAA;QACD,YAAY,EAAE;YACZ,cAAc,EAAE,MAAM,CAAA;SACvB,CAAA;QACD,UAAU,EAAE;YACV,kBAAkB,EAAE,MAAM,CAAA;YAC1B,UAAU,EAAE,MAAM,CAAA;SACnB,CAAA;QACD,OAAO,EAAE;YACP,MAAM,EAAE,MAAM,CAAA;SACf,CAAA;KACF,CAAA;IACD,mBAAmB,EAAE;QACnB,MAAM,EAAE;YACN,MAAM,EAAE,MAAM,CAAA;YACd,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;QACD,MAAM,EAAE;YACN,OAAO,EAAE,MAAM,CAAA;YACf,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,EAAE,MAAM,CAAA;YACZ,cAAc,EAAE,MAAM,CAAA;YACtB,SAAS,EAAE,MAAM,CAAA;YACjB,OAAO,EAAE,MAAM,CAAA;YACf,QAAQ,EAAE,MAAM,CAAA;YAChB,QAAQ,EAAE,MAAM,CAAA;YAChB,MAAM,EAAE,MAAM,CAAA;YACd,KAAK,EAAE,MAAM,CAAA;SACd,CAAA;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,MAAM,CAAA;YACf,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,EAAE,MAAM,CAAA;YACZ,cAAc,EAAE,MAAM,CAAA;YACtB,SAAS,EAAE,MAAM,CAAA;YACjB,OAAO,EAAE,MAAM,CAAA;YACf,QAAQ,EAAE,MAAM,CAAA;SACjB,CAAA;QACD,UAAU,EAAE;YACV,eAAe,EAAE,MAAM,CAAA;YACvB,YAAY,EAAE,MAAM,CAAA;YACpB,sBAAsB,EAAE,MAAM,CAAA;SAC/B,CAAA;QACD,QAAQ,EAAE;YACR,qBAAqB,EAAE,MAAM,CAAA;SAC9B,CAAA;QACD,OAAO,EAAE;YACP,MAAM,EAAE,MAAM,CAAA;SACf,CAAA;KACF,CAAA;IACD,4BAA4B,EAAE;QAC5B,MAAM,EAAE;YACN,MAAM,EAAE,MAAM,CAAA;YACd,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;QACD,MAAM,EAAE;YACN,mBAAmB,EAAE,MAAM,CAAA;YAC3B,SAAS,EAAE,MAAM,CAAA;YACjB,UAAU,EAAE,MAAM,CAAA;YAClB,YAAY,EAAE,MAAM,CAAA;YACpB,aAAa,EAAE,MAAM,CAAA;YACrB,MAAM,EAAE,MAAM,CAAA;YACd,KAAK,EAAE,MAAM,CAAA;SACd,CAAA;QACD,YAAY,EAAE;YACZ,mBAAmB,EAAE,MAAM,CAAA;YAC3B,aAAa,EAAE,MAAM,CAAA;SACtB,CAAA;QACD,QAAQ,EAAE;YACR,mBAAmB,EAAE,MAAM,CAAA;SAC5B,CAAA;QACD,OAAO,EAAE;YACP,MAAM,EAAE,MAAM,CAAA;SACf,CAAA;KACF,CAAA;IACD,qBAAqB,EAAE;QACrB,MAAM,EAAE;YACN,MAAM,EAAE,MAAM,CAAA;YACd,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;QACD,MAAM,EAAE;YACN,OAAO,EAAE,MAAM,CAAA;YACf,MAAM,EAAE,MAAM,CAAA;YACd,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,EAAE,MAAM,CAAA;YACZ,OAAO,EAAE,MAAM,CAAA;YACf,QAAQ,EAAE,MAAM,CAAA;YAChB,kBAAkB,EAAE,MAAM,CAAA;YAC1B,WAAW,EAAE,MAAM,CAAA;YACnB,QAAQ,EAAE,MAAM,CAAA;YAChB,QAAQ,EAAE,MAAM,CAAA;YAChB,aAAa,EAAE,MAAM,CAAA;YACrB,aAAa,EAAE,MAAM,CAAA;YACrB,WAAW,EAAE,MAAM,CAAA;YACnB,oBAAoB,EAAE,MAAM,CAAA;YAC5B,WAAW,EAAE,MAAM,CAAA;YACnB,MAAM,EAAE,MAAM,CAAA;YACd,KAAK,EAAE,MAAM,CAAA;SACd,CAAA;QACD,UAAU,EAAE;YACV,eAAe,EAAE,MAAM,CAAA;YACvB,cAAc,EAAE,MAAM,CAAA;YACtB,eAAe,EAAE,MAAM,CAAA;YACvB,YAAY,EAAE,MAAM,CAAA;SACrB,CAAA;QACD,OAAO,EAAE;YACP,MAAM,EAAE,MAAM,CAAA;SACf,CAAA;KACF,CAAA;IACD,uBAAuB,EAAE;QACvB,MAAM,EAAE;YACN,eAAe,EAAE,MAAM,CAAA;YACvB,QAAQ,EAAE,MAAM,CAAA;YAChB,UAAU,EAAE,MAAM,CAAA;YAClB,aAAa,EAAE,MAAM,CAAA;YACrB,WAAW,EAAE,MAAM,CAAA;YACnB,WAAW,EAAE,MAAM,CAAA;YACnB,WAAW,EAAE,MAAM,CAAA;YACnB,UAAU,EAAE,MAAM,CAAA;YAClB,UAAU,EAAE,MAAM,CAAA;YAClB,SAAS,EAAE,MAAM,CAAA;YACjB,MAAM,EAAE,MAAM,CAAA;YACd,KAAK,EAAE,MAAM,CAAA;SACd,CAAA;QACD,YAAY,EAAE;YACZ,QAAQ,EAAE,MAAM,CAAA;YAChB,UAAU,EAAE,MAAM,CAAA;YAClB,aAAa,EAAE,MAAM,CAAA;SACtB,CAAA;QACD,UAAU,EAAE;YACV,uBAAuB,EAAE,MAAM,CAAA;YAC/B,gBAAgB,EAAE,MAAM,CAAA;YACxB,qBAAqB,EAAE,MAAM,CAAA;YAC7B,mBAAmB,EAAE,MAAM,CAAA;SAC5B,CAAA;QACD,OAAO,EAAE;YACP,UAAU,EAAE,MAAM,CAAA;YAClB,QAAQ,EAAE,MAAM,CAAA;SACjB,CAAA;QACD,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,MAAM,EAAE,MAAM,CAAA;gBACd,IAAI,EAAE,MAAM,CAAA;aACb,CAAA;SACF,CAAA;QACD,OAAO,EAAE;YACP,MAAM,EAAE;gBACN,MAAM,EAAE,MAAM,CAAA;gBACd,IAAI,EAAE,MAAM,CAAA;aACb,CAAA;SACF,CAAA;QACD,KAAK,EAAE;YACL,MAAM,EAAE;gBACN,MAAM,EAAE,MAAM,CAAA;gBACd,IAAI,EAAE,MAAM,CAAA;aACb,CAAA;YACD,MAAM,EAAE;gBACN,cAAc,EAAE,MAAM,CAAA;gBACtB,mBAAmB,EAAE,MAAM,CAAA;aAC5B,CAAA;YACD,YAAY,EAAE;gBACZ,cAAc,EAAE,MAAM,CAAA;gBACtB,mBAAmB,EAAE,MAAM,CAAA;aAC5B,CAAA;SACF,CAAA;KACF,CAAA;IACD,yBAAyB,EAAE;QACzB,MAAM,EAAE;YACN,MAAM,EAAE,MAAM,CAAA;YACd,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;QACD,MAAM,EAAE;YACN,eAAe,EAAE,MAAM,CAAA;YACvB,QAAQ,EAAE,MAAM,CAAA;YAChB,WAAW,EAAE,MAAM,CAAA;YACnB,QAAQ,EAAE,MAAM,CAAA;YAChB,cAAc,EAAE,MAAM,CAAA;YACtB,cAAc,EAAE,MAAM,CAAA;YACtB,cAAc,EAAE,MAAM,CAAA;YACtB,iBAAiB,EAAE,MAAM,CAAA;YACzB,MAAM,EAAE,MAAM,CAAA;YACd,KAAK,EAAE,MAAM,CAAA;SACd,CAAA;QACD,YAAY,EAAE;YACZ,QAAQ,EAAE,MAAM,CAAA;YAChB,WAAW,EAAE,MAAM,CAAA;YACnB,MAAM,EAAE,MAAM,CAAA;SACf,CAAA;QACD,UAAU,EAAE;YACV,uBAAuB,EAAE,MAAM,CAAA;YAC/B,gBAAgB,EAAE,MAAM,CAAA;YACxB,mBAAmB,EAAE,MAAM,CAAA;SAC5B,CAAA;QACD,OAAO,EAAE;YACP,MAAM,EAAE,MAAM,CAAA;SACf,CAAA;KACF,CAAA;IACD,yBAAyB,EAAE;QACzB,MAAM,EAAE;YACN,MAAM,EAAE,MAAM,CAAA;YACd,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;QACD,MAAM,EAAE;YACN,eAAe,EAAE,MAAM,CAAA;YACvB,MAAM,EAAE,MAAM,CAAA;YACd,IAAI,EAAE,MAAM,CAAA;YACZ,eAAe,EAAE,MAAM,CAAA;YACvB,WAAW,EAAE,MAAM,CAAA;YACnB,UAAU,EAAE,MAAM,CAAA;YAClB,UAAU,EAAE,MAAM,CAAA;YAClB,WAAW,EAAE,MAAM,CAAA;YACnB,WAAW,EAAE,MAAM,CAAA;YACnB,SAAS,EAAE,MAAM,CAAA;YACjB,MAAM,EAAE,MAAM,CAAA;YACd,KAAK,EAAE,MAAM,CAAA;SACd,CAAA;QACD,YAAY,EAAE;YACZ,eAAe,EAAE,MAAM,CAAA;SACxB,CAAA;QACD,UAAU,EAAE;YACV,uBAAuB,EAAE,MAAM,CAAA;YAC/B,cAAc,EAAE,MAAM,CAAA;YACtB,YAAY,EAAE,MAAM,CAAA;SACrB,CAAA;QACD,OAAO,EAAE;YACP,MAAM,EAAE,MAAM,CAAA;SACf,CAAA;KACF,CAAA;IACD,oBAAoB,EAAE;QACpB,MAAM,EAAE;YACN,MAAM,EAAE,MAAM,CAAA;YACd,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;QACD,MAAM,EAAE;YACN,mBAAmB,EAAE,MAAM,CAAA;YAC3B,WAAW,EAAE,MAAM,CAAA;YACnB,WAAW,EAAE,MAAM,CAAA;YACnB,UAAU,EAAE,MAAM,CAAA;YAClB,UAAU,EAAE,MAAM,CAAA;YAClB,SAAS,EAAE,MAAM,CAAA;YACjB,MAAM,EAAE,MAAM,CAAA;SACf,CAAA;QACD,YAAY,EAAE;YACZ,mBAAmB,EAAE,MAAM,CAAA;SAC5B,CAAA;QACD,UAAU,EAAE;YACV,2BAA2B,EAAE,MAAM,CAAA;YACnC,cAAc,EAAE,MAAM,CAAA;SACvB,CAAA;QACD,OAAO,EAAE;YACP,MAAM,EAAE,MAAM,CAAA;SACf,CAAA;KACF,CAAA;CACF,CAAA"}
|
package/dist/i18n/provider.d.ts
CHANGED
|
@@ -100,6 +100,15 @@ export declare const pricingUiMessageDefinitions: {
|
|
|
100
100
|
empty: string;
|
|
101
101
|
missingParent: string;
|
|
102
102
|
};
|
|
103
|
+
optionUnit: {
|
|
104
|
+
placeholder: string;
|
|
105
|
+
empty: string;
|
|
106
|
+
missingParent: string;
|
|
107
|
+
};
|
|
108
|
+
optionUnitPriceRule: {
|
|
109
|
+
placeholder: string;
|
|
110
|
+
empty: string;
|
|
111
|
+
};
|
|
103
112
|
};
|
|
104
113
|
pricingCategoriesPage: {
|
|
105
114
|
title: string;
|
|
@@ -421,8 +430,8 @@ export declare const pricingUiMessageDefinitions: {
|
|
|
421
430
|
};
|
|
422
431
|
fields: {
|
|
423
432
|
optionPriceRule: string;
|
|
424
|
-
|
|
425
|
-
|
|
433
|
+
option: string;
|
|
434
|
+
unit: string;
|
|
426
435
|
pricingCategory: string;
|
|
427
436
|
pricingMode: string;
|
|
428
437
|
sellAmount: string;
|
|
@@ -434,14 +443,12 @@ export declare const pricingUiMessageDefinitions: {
|
|
|
434
443
|
notes: string;
|
|
435
444
|
};
|
|
436
445
|
placeholders: {
|
|
437
|
-
optionId: string;
|
|
438
|
-
unitId: string;
|
|
439
446
|
pricingCategory: string;
|
|
440
447
|
};
|
|
441
448
|
validation: {
|
|
442
449
|
optionPriceRuleRequired: string;
|
|
443
|
-
|
|
444
|
-
|
|
450
|
+
optionRequired: string;
|
|
451
|
+
unitRequired: string;
|
|
445
452
|
};
|
|
446
453
|
actions: {
|
|
447
454
|
create: string;
|
|
@@ -453,7 +460,7 @@ export declare const pricingUiMessageDefinitions: {
|
|
|
453
460
|
edit: string;
|
|
454
461
|
};
|
|
455
462
|
fields: {
|
|
456
|
-
|
|
463
|
+
optionUnitPriceRule: string;
|
|
457
464
|
minQuantity: string;
|
|
458
465
|
maxQuantity: string;
|
|
459
466
|
sellAmount: string;
|
|
@@ -462,10 +469,10 @@ export declare const pricingUiMessageDefinitions: {
|
|
|
462
469
|
active: string;
|
|
463
470
|
};
|
|
464
471
|
placeholders: {
|
|
465
|
-
|
|
472
|
+
optionUnitPriceRule: string;
|
|
466
473
|
};
|
|
467
474
|
validation: {
|
|
468
|
-
|
|
475
|
+
optionUnitPriceRuleRequired: string;
|
|
469
476
|
minQuantityMin: string;
|
|
470
477
|
};
|
|
471
478
|
actions: {
|
|
@@ -571,6 +578,15 @@ export declare const pricingUiMessageDefinitions: {
|
|
|
571
578
|
empty: string;
|
|
572
579
|
missingParent: string;
|
|
573
580
|
};
|
|
581
|
+
optionUnit: {
|
|
582
|
+
placeholder: string;
|
|
583
|
+
empty: string;
|
|
584
|
+
missingParent: string;
|
|
585
|
+
};
|
|
586
|
+
optionUnitPriceRule: {
|
|
587
|
+
placeholder: string;
|
|
588
|
+
empty: string;
|
|
589
|
+
};
|
|
574
590
|
};
|
|
575
591
|
pricingCategoriesPage: {
|
|
576
592
|
title: string;
|
|
@@ -892,8 +908,8 @@ export declare const pricingUiMessageDefinitions: {
|
|
|
892
908
|
};
|
|
893
909
|
fields: {
|
|
894
910
|
optionPriceRule: string;
|
|
895
|
-
|
|
896
|
-
|
|
911
|
+
option: string;
|
|
912
|
+
unit: string;
|
|
897
913
|
pricingCategory: string;
|
|
898
914
|
pricingMode: string;
|
|
899
915
|
sellAmount: string;
|
|
@@ -905,14 +921,12 @@ export declare const pricingUiMessageDefinitions: {
|
|
|
905
921
|
notes: string;
|
|
906
922
|
};
|
|
907
923
|
placeholders: {
|
|
908
|
-
optionId: string;
|
|
909
|
-
unitId: string;
|
|
910
924
|
pricingCategory: string;
|
|
911
925
|
};
|
|
912
926
|
validation: {
|
|
913
927
|
optionPriceRuleRequired: string;
|
|
914
|
-
|
|
915
|
-
|
|
928
|
+
optionRequired: string;
|
|
929
|
+
unitRequired: string;
|
|
916
930
|
};
|
|
917
931
|
actions: {
|
|
918
932
|
create: string;
|
|
@@ -924,7 +938,7 @@ export declare const pricingUiMessageDefinitions: {
|
|
|
924
938
|
edit: string;
|
|
925
939
|
};
|
|
926
940
|
fields: {
|
|
927
|
-
|
|
941
|
+
optionUnitPriceRule: string;
|
|
928
942
|
minQuantity: string;
|
|
929
943
|
maxQuantity: string;
|
|
930
944
|
sellAmount: string;
|
|
@@ -933,10 +947,10 @@ export declare const pricingUiMessageDefinitions: {
|
|
|
933
947
|
active: string;
|
|
934
948
|
};
|
|
935
949
|
placeholders: {
|
|
936
|
-
|
|
950
|
+
optionUnitPriceRule: string;
|
|
937
951
|
};
|
|
938
952
|
validation: {
|
|
939
|
-
|
|
953
|
+
optionUnitPriceRuleRequired: string;
|
|
940
954
|
minQuantityMin: string;
|
|
941
955
|
};
|
|
942
956
|
actions: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/i18n/provider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EAEtB,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAKtD,eAAO,MAAM,2BAA2B
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/i18n/provider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EAEtB,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAKtD,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGe,CAAA;AAEvD,MAAM,MAAM,yBAAyB,GAAG,sBAAsB,CAAC,iBAAiB,CAAC,CAAA;AASjF,wBAAgB,wBAAwB,CAAC,EACvC,MAAM,EACN,SAAS,GACV,EAAE;IACD,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACjC,SAAS,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAAA;CAC7C,qBAOA;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,SAAS,GACV,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IAClC,SAAS,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAAA;CAC7C,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAStC;AAED,wBAAgB,yBAAyB,CAAC,EACxC,QAAQ,EACR,MAAM,EACN,SAAS,GACV,EAAE;IACD,QAAQ,EAAE,SAAS,CAAA;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACjC,SAAS,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAAA;CAC7C,2CAWA;AAED,eAAO,MAAM,gBAAgB,2CAA2B,CAAA;AACxD,eAAO,MAAM,oBAAoB,yBAA+B,CAAA;AAEhE,wBAAgB,yBAAyB,wCAExC;AAED,wBAAgB,6BAA6B,sBAE5C"}
|
package/dist/i18n/ro.d.ts
CHANGED
|
@@ -96,6 +96,15 @@ export declare const pricingUiRo: {
|
|
|
96
96
|
empty: string;
|
|
97
97
|
missingParent: string;
|
|
98
98
|
};
|
|
99
|
+
optionUnit: {
|
|
100
|
+
placeholder: string;
|
|
101
|
+
empty: string;
|
|
102
|
+
missingParent: string;
|
|
103
|
+
};
|
|
104
|
+
optionUnitPriceRule: {
|
|
105
|
+
placeholder: string;
|
|
106
|
+
empty: string;
|
|
107
|
+
};
|
|
99
108
|
};
|
|
100
109
|
pricingCategoriesPage: {
|
|
101
110
|
title: string;
|
|
@@ -417,8 +426,8 @@ export declare const pricingUiRo: {
|
|
|
417
426
|
};
|
|
418
427
|
fields: {
|
|
419
428
|
optionPriceRule: string;
|
|
420
|
-
|
|
421
|
-
|
|
429
|
+
option: string;
|
|
430
|
+
unit: string;
|
|
422
431
|
pricingCategory: string;
|
|
423
432
|
pricingMode: string;
|
|
424
433
|
sellAmount: string;
|
|
@@ -430,14 +439,12 @@ export declare const pricingUiRo: {
|
|
|
430
439
|
notes: string;
|
|
431
440
|
};
|
|
432
441
|
placeholders: {
|
|
433
|
-
optionId: string;
|
|
434
|
-
unitId: string;
|
|
435
442
|
pricingCategory: string;
|
|
436
443
|
};
|
|
437
444
|
validation: {
|
|
438
445
|
optionPriceRuleRequired: string;
|
|
439
|
-
|
|
440
|
-
|
|
446
|
+
optionRequired: string;
|
|
447
|
+
unitRequired: string;
|
|
441
448
|
};
|
|
442
449
|
actions: {
|
|
443
450
|
create: string;
|
|
@@ -449,7 +456,7 @@ export declare const pricingUiRo: {
|
|
|
449
456
|
edit: string;
|
|
450
457
|
};
|
|
451
458
|
fields: {
|
|
452
|
-
|
|
459
|
+
optionUnitPriceRule: string;
|
|
453
460
|
minQuantity: string;
|
|
454
461
|
maxQuantity: string;
|
|
455
462
|
sellAmount: string;
|
|
@@ -458,10 +465,10 @@ export declare const pricingUiRo: {
|
|
|
458
465
|
active: string;
|
|
459
466
|
};
|
|
460
467
|
placeholders: {
|
|
461
|
-
|
|
468
|
+
optionUnitPriceRule: string;
|
|
462
469
|
};
|
|
463
470
|
validation: {
|
|
464
|
-
|
|
471
|
+
optionUnitPriceRuleRequired: string;
|
|
465
472
|
minQuantityMin: string;
|
|
466
473
|
};
|
|
467
474
|
actions: {
|
package/dist/i18n/ro.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ro.d.ts","sourceRoot":"","sources":["../../src/i18n/ro.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"ro.d.ts","sourceRoot":"","sources":["../../src/i18n/ro.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgeK,CAAA"}
|
package/dist/i18n/ro.js
CHANGED
|
@@ -96,6 +96,15 @@ export const pricingUiRo = {
|
|
|
96
96
|
empty: "Nu au fost gasite optiuni de produs.",
|
|
97
97
|
missingParent: "Selecteaza mai intai un produs.",
|
|
98
98
|
},
|
|
99
|
+
optionUnit: {
|
|
100
|
+
placeholder: "Selecteaza unitatea optiunii...",
|
|
101
|
+
empty: "Nu au fost gasite unitati de optiune.",
|
|
102
|
+
missingParent: "Selecteaza mai intai o optiune.",
|
|
103
|
+
},
|
|
104
|
+
optionUnitPriceRule: {
|
|
105
|
+
placeholder: "Selecteaza regula de pret pe unitate...",
|
|
106
|
+
empty: "Nu au fost gasite reguli de pret pe unitate.",
|
|
107
|
+
},
|
|
99
108
|
},
|
|
100
109
|
pricingCategoriesPage: {
|
|
101
110
|
title: "Categorii de tarifare",
|
|
@@ -325,7 +334,7 @@ export const pricingUiRo = {
|
|
|
325
334
|
locationPriceRuleDialog: {
|
|
326
335
|
fields: {
|
|
327
336
|
optionPriceRule: "Regula de pret pentru optiune",
|
|
328
|
-
optionId: "
|
|
337
|
+
optionId: "Optiune",
|
|
329
338
|
facilityId: "ID facilitate (optional)",
|
|
330
339
|
pickupPointId: "ID punct preluare",
|
|
331
340
|
dropoffName: "Nume dropoff",
|
|
@@ -338,13 +347,13 @@ export const pricingUiRo = {
|
|
|
338
347
|
notes: "Note",
|
|
339
348
|
},
|
|
340
349
|
placeholders: {
|
|
341
|
-
optionId: "
|
|
350
|
+
optionId: "Selecteaza optiunea...",
|
|
342
351
|
facilityId: "fac_…",
|
|
343
352
|
pickupPointId: "ppnt_…",
|
|
344
353
|
},
|
|
345
354
|
validation: {
|
|
346
355
|
optionPriceRuleRequired: "Regula de pret pentru optiune este obligatorie",
|
|
347
|
-
optionIdRequired: "
|
|
356
|
+
optionIdRequired: "Optiunea este obligatorie",
|
|
348
357
|
pickupPointIdRequired: "Punctul de preluare este obligatoriu",
|
|
349
358
|
dropoffNameRequired: "Numele dropoff este obligatoriu",
|
|
350
359
|
},
|
|
@@ -386,7 +395,7 @@ export const pricingUiRo = {
|
|
|
386
395
|
},
|
|
387
396
|
fields: {
|
|
388
397
|
optionPriceRule: "Regula de pret pentru optiune",
|
|
389
|
-
optionId: "
|
|
398
|
+
optionId: "Optiune",
|
|
390
399
|
startTimeId: "ID ora start",
|
|
391
400
|
ruleMode: "Mod regula",
|
|
392
401
|
adjustmentType: "Tip ajustare",
|
|
@@ -397,13 +406,13 @@ export const pricingUiRo = {
|
|
|
397
406
|
notes: "Note",
|
|
398
407
|
},
|
|
399
408
|
placeholders: {
|
|
400
|
-
optionId: "
|
|
409
|
+
optionId: "Selecteaza optiunea...",
|
|
401
410
|
startTimeId: "pst_…",
|
|
402
411
|
select: "Selecteaza...",
|
|
403
412
|
},
|
|
404
413
|
validation: {
|
|
405
414
|
optionPriceRuleRequired: "Regula de pret pentru optiune este obligatorie",
|
|
406
|
-
optionIdRequired: "
|
|
415
|
+
optionIdRequired: "Optiunea este obligatorie",
|
|
407
416
|
startTimeIdRequired: "ID-ul orei de start este obligatoriu",
|
|
408
417
|
},
|
|
409
418
|
actions: {
|
|
@@ -417,8 +426,8 @@ export const pricingUiRo = {
|
|
|
417
426
|
},
|
|
418
427
|
fields: {
|
|
419
428
|
optionPriceRule: "Regula de pret pentru optiune",
|
|
420
|
-
|
|
421
|
-
|
|
429
|
+
option: "Optiune",
|
|
430
|
+
unit: "Unitate",
|
|
422
431
|
pricingCategory: "Categorie de pret (optional)",
|
|
423
432
|
pricingMode: "Mod tarifare",
|
|
424
433
|
sellAmount: "Pret vanzare",
|
|
@@ -430,14 +439,12 @@ export const pricingUiRo = {
|
|
|
430
439
|
notes: "Note",
|
|
431
440
|
},
|
|
432
441
|
placeholders: {
|
|
433
|
-
optionId: "popt_…",
|
|
434
|
-
unitId: "punit_…",
|
|
435
442
|
pricingCategory: "Cauta categorii de pret...",
|
|
436
443
|
},
|
|
437
444
|
validation: {
|
|
438
445
|
optionPriceRuleRequired: "Regula de pret pentru optiune este obligatorie",
|
|
439
|
-
|
|
440
|
-
|
|
446
|
+
optionRequired: "Optiunea este obligatorie",
|
|
447
|
+
unitRequired: "Unitatea este obligatorie",
|
|
441
448
|
},
|
|
442
449
|
actions: {
|
|
443
450
|
create: "Adauga regula",
|
|
@@ -449,7 +456,7 @@ export const pricingUiRo = {
|
|
|
449
456
|
edit: "Editeaza tier-ul de unitate",
|
|
450
457
|
},
|
|
451
458
|
fields: {
|
|
452
|
-
|
|
459
|
+
optionUnitPriceRule: "Regula de pret pe unitate",
|
|
453
460
|
minQuantity: "Cantitate minima",
|
|
454
461
|
maxQuantity: "Cantitate maxima",
|
|
455
462
|
sellAmount: "Pret vanzare",
|
|
@@ -458,10 +465,10 @@ export const pricingUiRo = {
|
|
|
458
465
|
active: "Activ",
|
|
459
466
|
},
|
|
460
467
|
placeholders: {
|
|
461
|
-
|
|
468
|
+
optionUnitPriceRule: "Selecteaza regula de pret pe unitate...",
|
|
462
469
|
},
|
|
463
470
|
validation: {
|
|
464
|
-
|
|
471
|
+
optionUnitPriceRuleRequired: "Regula de pret pe unitate este obligatorie",
|
|
465
472
|
minQuantityMin: "Cantitatea minima trebuie sa fie cel putin 1",
|
|
466
473
|
},
|
|
467
474
|
actions: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voyantjs/pricing-ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.37.1",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -46,13 +46,13 @@
|
|
|
46
46
|
"react-dom": "^19.0.0",
|
|
47
47
|
"react-hook-form": "^7.60.0",
|
|
48
48
|
"zod": "^4.3.6",
|
|
49
|
-
"@voyantjs/pricing-react": "0.
|
|
50
|
-
"@voyantjs/products-react": "0.
|
|
51
|
-
"@voyantjs/ui": "0.
|
|
52
|
-
"@voyantjs/utils": "0.
|
|
49
|
+
"@voyantjs/pricing-react": "0.37.1",
|
|
50
|
+
"@voyantjs/products-react": "0.37.1",
|
|
51
|
+
"@voyantjs/ui": "0.37.1",
|
|
52
|
+
"@voyantjs/utils": "0.37.1"
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@voyantjs/i18n": "0.
|
|
55
|
+
"@voyantjs/i18n": "0.37.1"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"@tanstack/react-query": "^5.96.2",
|
|
@@ -66,12 +66,12 @@
|
|
|
66
66
|
"typescript": "^6.0.2",
|
|
67
67
|
"vitest": "^4.1.2",
|
|
68
68
|
"zod": "^4.3.6",
|
|
69
|
-
"@voyantjs/i18n": "0.
|
|
70
|
-
"@voyantjs/pricing-react": "0.
|
|
71
|
-
"@voyantjs/products-react": "0.
|
|
69
|
+
"@voyantjs/i18n": "0.37.1",
|
|
70
|
+
"@voyantjs/pricing-react": "0.37.1",
|
|
71
|
+
"@voyantjs/products-react": "0.37.1",
|
|
72
72
|
"@voyantjs/voyant-typescript-config": "0.1.0",
|
|
73
|
-
"@voyantjs/ui": "0.
|
|
74
|
-
"@voyantjs/utils": "0.
|
|
73
|
+
"@voyantjs/ui": "0.37.1",
|
|
74
|
+
"@voyantjs/utils": "0.37.1"
|
|
75
75
|
},
|
|
76
76
|
"files": [
|
|
77
77
|
"dist",
|