@voyantjs/products-ui 0.22.0 → 0.23.0
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/product-day-media-tray.d.ts +11 -0
- package/dist/components/product-day-media-tray.d.ts.map +1 -0
- package/dist/components/product-day-media-tray.js +74 -0
- package/dist/components/product-day-service-form.d.ts +44 -0
- package/dist/components/product-day-service-form.d.ts.map +1 -0
- package/dist/components/product-day-service-form.js +151 -0
- package/dist/components/product-itinerary-day-row.d.ts +22 -0
- package/dist/components/product-itinerary-day-row.d.ts.map +1 -0
- package/dist/components/product-itinerary-day-row.js +17 -0
- package/dist/i18n/en.d.ts +51 -0
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +51 -0
- package/dist/i18n/messages.d.ts +51 -0
- package/dist/i18n/messages.d.ts.map +1 -1
- package/dist/i18n/provider.d.ts +102 -0
- package/dist/i18n/provider.d.ts.map +1 -1
- package/dist/i18n/ro.d.ts +51 -0
- package/dist/i18n/ro.d.ts.map +1 -1
- package/dist/i18n/ro.js +51 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/package.json +19 -19
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { ProductMediaUploadHandler } from "./product-media-section";
|
|
3
|
+
export interface ProductDayMediaTrayProps {
|
|
4
|
+
productId: string;
|
|
5
|
+
dayId: string;
|
|
6
|
+
uploadMedia?: ProductMediaUploadHandler;
|
|
7
|
+
uploadAccept?: string;
|
|
8
|
+
emptyState?: React.ReactNode;
|
|
9
|
+
}
|
|
10
|
+
export declare function ProductDayMediaTray({ productId, dayId, uploadMedia, uploadAccept, emptyState, }: ProductDayMediaTrayProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
//# sourceMappingURL=product-day-media-tray.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-day-media-tray.d.ts","sourceRoot":"","sources":["../../src/components/product-day-media-tray.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAExE,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,yBAAyB,CAAA;IACvC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC7B;AAED,wBAAgB,mBAAmB,CAAC,EAClC,SAAS,EACT,KAAK,EACL,WAAW,EACX,YAAgD,EAChD,UAAU,GACX,EAAE,wBAAwB,2CAqM1B"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { useProductMedia, useProductMediaMutation, } from "@voyantjs/products-react";
|
|
4
|
+
import { Badge } from "@voyantjs/ui/components/badge";
|
|
5
|
+
import { Button } from "@voyantjs/ui/components/button";
|
|
6
|
+
import { ImageIcon, Loader2, Pencil, Plus, Star, Trash2, Upload } from "lucide-react";
|
|
7
|
+
import * as React from "react";
|
|
8
|
+
import { useProductsUiMessagesOrDefault } from "../i18n/provider";
|
|
9
|
+
import { ProductMediaDialog } from "./product-media-dialog";
|
|
10
|
+
export function ProductDayMediaTray({ productId, dayId, uploadMedia, uploadAccept = "image/*,video/*,application/pdf", emptyState, }) {
|
|
11
|
+
const messages = useProductsUiMessagesOrDefault();
|
|
12
|
+
const [dialogOpen, setDialogOpen] = React.useState(false);
|
|
13
|
+
const [editingMedia, setEditingMedia] = React.useState();
|
|
14
|
+
const [isUploading, setIsUploading] = React.useState(false);
|
|
15
|
+
const [uploadError, setUploadError] = React.useState(null);
|
|
16
|
+
const fileInputRef = React.useRef(null);
|
|
17
|
+
const { data, isPending, isError } = useProductMedia(productId, { dayId, limit: 50 });
|
|
18
|
+
const { create, remove, setCover } = useProductMediaMutation();
|
|
19
|
+
const media = React.useMemo(() => (data?.data ?? [])
|
|
20
|
+
.slice()
|
|
21
|
+
.sort((left, right) => Number(right.isCover) - Number(left.isCover) || left.sortOrder - right.sortOrder), [data?.data]);
|
|
22
|
+
const handleUpload = async (file) => {
|
|
23
|
+
if (!uploadMedia)
|
|
24
|
+
return;
|
|
25
|
+
setUploadError(null);
|
|
26
|
+
setIsUploading(true);
|
|
27
|
+
try {
|
|
28
|
+
const uploaded = await uploadMedia(file, { productId, dayId });
|
|
29
|
+
const mimeType = uploaded.mimeType?.trim() || file.type || null;
|
|
30
|
+
const mediaType = uploaded.mediaType ??
|
|
31
|
+
(mimeType?.startsWith("video/")
|
|
32
|
+
? "video"
|
|
33
|
+
: mimeType?.startsWith("image/")
|
|
34
|
+
? "image"
|
|
35
|
+
: "document");
|
|
36
|
+
await create.mutateAsync({
|
|
37
|
+
productId,
|
|
38
|
+
dayId,
|
|
39
|
+
mediaType,
|
|
40
|
+
name: uploaded.name?.trim() || file.name,
|
|
41
|
+
url: uploaded.url,
|
|
42
|
+
storageKey: uploaded.storageKey ?? null,
|
|
43
|
+
mimeType,
|
|
44
|
+
fileSize: uploaded.fileSize ?? (file.size || null),
|
|
45
|
+
altText: uploaded.altText ?? null,
|
|
46
|
+
sortOrder: uploaded.sortOrder ?? media.length,
|
|
47
|
+
isCover: uploaded.isCover ?? media.length === 0,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
setUploadError(error instanceof Error ? error.message : messages.productMediaSection.uploadFailed);
|
|
52
|
+
}
|
|
53
|
+
finally {
|
|
54
|
+
setIsUploading(false);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
return (_jsxs("div", { "data-slot": "product-day-media-tray", className: "flex flex-col gap-2", children: [_jsxs("div", { className: "flex items-center justify-between gap-2", children: [_jsx("div", { className: "text-sm font-medium", children: messages.productMediaSection.titles.dayMedia }), _jsxs("div", { className: "flex items-center gap-1", children: [uploadMedia ? (_jsxs(_Fragment, { children: [_jsxs(Button, { type: "button", variant: "outline", size: "sm", disabled: isUploading, onClick: () => fileInputRef.current?.click(), children: [isUploading ? (_jsx(Loader2, { className: "mr-2 size-4 animate-spin", "aria-hidden": "true" })) : (_jsx(Upload, { className: "mr-2 size-4", "aria-hidden": "true" })), messages.productMediaSection.actions.upload] }), _jsx("input", { ref: fileInputRef, type: "file", accept: uploadAccept, className: "hidden", onChange: (event) => {
|
|
58
|
+
const file = event.target.files?.[0];
|
|
59
|
+
if (file) {
|
|
60
|
+
void handleUpload(file);
|
|
61
|
+
event.target.value = "";
|
|
62
|
+
}
|
|
63
|
+
} })] })) : null, _jsxs(Button, { type: "button", variant: "outline", size: "sm", onClick: () => {
|
|
64
|
+
setEditingMedia(undefined);
|
|
65
|
+
setDialogOpen(true);
|
|
66
|
+
}, children: [_jsx(Plus, { className: "mr-2 size-4", "aria-hidden": "true" }), messages.productMediaSection.actions.addMedia] })] })] }), uploadError ? _jsx("p", { className: "text-sm text-destructive", children: uploadError }) : null, isPending ? (_jsx("div", { className: "flex min-h-20 items-center justify-center rounded-md border border-dashed", children: _jsx(Loader2, { className: "size-4 animate-spin text-muted-foreground" }) })) : isError ? (_jsx("p", { className: "text-sm text-destructive", children: messages.productMediaSection.loadingError })) : media.length === 0 ? (_jsx("div", { className: "rounded-md border border-dashed p-3 text-sm text-muted-foreground", children: emptyState ?? messages.productMediaSection.empty })) : (_jsx("div", { className: "flex gap-2 overflow-x-auto pb-1", children: media.map((item) => (_jsxs("div", { className: "w-36 shrink-0 rounded-md border bg-background", children: [item.mediaType === "image" ? (_jsx("img", { src: item.url, alt: item.altText ?? item.name, className: "h-20 w-full rounded-t-md object-cover" })) : (_jsx("div", { className: "flex h-20 w-full items-center justify-center rounded-t-md bg-muted text-muted-foreground", children: _jsx(ImageIcon, { className: "size-5", "aria-hidden": "true" }) })), _jsxs("div", { className: "space-y-2 p-2", children: [_jsx("div", { className: "truncate text-xs font-medium", children: item.name }), _jsxs("div", { className: "flex items-center justify-between gap-1", children: [item.isCover ? (_jsx(Badge, { className: "text-[10px]", children: messages.productMediaSection.coverBadge })) : (_jsx(Button, { type: "button", variant: "ghost", size: "icon-sm", onClick: () => setCover.mutate(item.id), "aria-label": messages.productMediaSection.actions.markCover, children: _jsx(Star, { className: "size-4", "aria-hidden": "true" }) })), _jsxs("div", { className: "flex items-center gap-1", children: [_jsx(Button, { type: "button", variant: "ghost", size: "icon-sm", onClick: () => {
|
|
67
|
+
setEditingMedia(item);
|
|
68
|
+
setDialogOpen(true);
|
|
69
|
+
}, "aria-label": messages.productMediaSection.actions.edit, children: _jsx(Pencil, { className: "size-4", "aria-hidden": "true" }) }), _jsx(Button, { type: "button", variant: "ghost", size: "icon-sm", onClick: () => {
|
|
70
|
+
if (confirm(messages.productMediaSection.deleteConfirm)) {
|
|
71
|
+
remove.mutate(item.id);
|
|
72
|
+
}
|
|
73
|
+
}, "aria-label": messages.productMediaSection.actions.delete, children: _jsx(Trash2, { className: "size-4", "aria-hidden": "true" }) })] })] })] })] }, item.id))) })), _jsx(ProductMediaDialog, { open: dialogOpen, onOpenChange: setDialogOpen, productId: productId, dayId: dayId, media: editingMedia, onSuccess: () => setEditingMedia(undefined) })] }));
|
|
74
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { type ProductDayServiceRecord } from "@voyantjs/products-react";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
type ProductDayServiceType = ProductDayServiceRecord["serviceType"];
|
|
4
|
+
type Mode = {
|
|
5
|
+
kind: "create";
|
|
6
|
+
productId: string;
|
|
7
|
+
dayId: string;
|
|
8
|
+
sortOrder?: number;
|
|
9
|
+
} | {
|
|
10
|
+
kind: "edit";
|
|
11
|
+
productId: string;
|
|
12
|
+
dayId: string;
|
|
13
|
+
service: ProductDayServiceRecord;
|
|
14
|
+
};
|
|
15
|
+
export interface ProductDayServiceSupplierServiceOption {
|
|
16
|
+
id: string;
|
|
17
|
+
name: string;
|
|
18
|
+
serviceType?: ProductDayServiceType;
|
|
19
|
+
description?: string | null;
|
|
20
|
+
costCurrency?: string;
|
|
21
|
+
costAmountCents?: number | null;
|
|
22
|
+
}
|
|
23
|
+
export interface ProductDayServiceFormHelpers {
|
|
24
|
+
setName: (value: string) => void;
|
|
25
|
+
setServiceType: (value: ProductDayServiceType) => void;
|
|
26
|
+
setDescription: (value: string | null) => void;
|
|
27
|
+
setCostCurrency: (value: string) => void;
|
|
28
|
+
setCostAmountCents: (value: number | null) => void;
|
|
29
|
+
}
|
|
30
|
+
export interface ProductDayServiceSupplierServiceFieldProps {
|
|
31
|
+
value: string | null;
|
|
32
|
+
disabled: boolean;
|
|
33
|
+
onChange: (supplierServiceId: string | null, option?: ProductDayServiceSupplierServiceOption | null) => void;
|
|
34
|
+
}
|
|
35
|
+
export interface ProductDayServiceFormProps {
|
|
36
|
+
mode: Mode;
|
|
37
|
+
onSuccess?: (service: ProductDayServiceRecord) => void;
|
|
38
|
+
onCancel?: () => void;
|
|
39
|
+
renderSupplierServiceField?: (props: ProductDayServiceSupplierServiceFieldProps) => React.ReactNode;
|
|
40
|
+
onSupplierServiceSelected?: (option: ProductDayServiceSupplierServiceOption, helpers: ProductDayServiceFormHelpers) => void;
|
|
41
|
+
}
|
|
42
|
+
export declare function ProductDayServiceForm({ mode, onSuccess, onCancel, renderSupplierServiceField, onSupplierServiceSelected, }: ProductDayServiceFormProps): import("react/jsx-runtime").JSX.Element;
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=product-day-service-form.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-day-service-form.d.ts","sourceRoot":"","sources":["../../src/components/product-day-service-form.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,0BAA0B,CAAA;AAajC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,KAAK,qBAAqB,GAAG,uBAAuB,CAAC,aAAa,CAAC,CAAA;AAEnE,KAAK,IAAI,GACL;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACxE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,uBAAuB,CAAA;CAAE,CAAA;AAExF,MAAM,WAAW,sCAAsC;IACrD,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,qBAAqB,CAAA;IACnC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAChC;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC,cAAc,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAA;IACtD,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IAC9C,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;CACnD;AAED,MAAM,WAAW,0CAA0C;IACzD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,CACR,iBAAiB,EAAE,MAAM,GAAG,IAAI,EAChC,MAAM,CAAC,EAAE,sCAAsC,GAAG,IAAI,KACnD,IAAI,CAAA;CACV;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,IAAI,CAAA;IACV,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,IAAI,CAAA;IACtD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,0BAA0B,CAAC,EAAE,CAC3B,KAAK,EAAE,0CAA0C,KAC9C,KAAK,CAAC,SAAS,CAAA;IACpB,yBAAyB,CAAC,EAAE,CAC1B,MAAM,EAAE,sCAAsC,EAC9C,OAAO,EAAE,4BAA4B,KAClC,IAAI,CAAA;CACV;AA6CD,wBAAgB,qBAAqB,CAAC,EACpC,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,0BAA0B,EAC1B,yBAAyB,GAC1B,EAAE,0BAA0B,2CA4R5B"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useProductDayServiceMutation, } from "@voyantjs/products-react";
|
|
4
|
+
import { Button } from "@voyantjs/ui/components/button";
|
|
5
|
+
import { Input } from "@voyantjs/ui/components/input";
|
|
6
|
+
import { Label } from "@voyantjs/ui/components/label";
|
|
7
|
+
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@voyantjs/ui/components/select";
|
|
8
|
+
import { Textarea } from "@voyantjs/ui/components/textarea";
|
|
9
|
+
import { Loader2 } from "lucide-react";
|
|
10
|
+
import * as React from "react";
|
|
11
|
+
import { useProductsUiMessagesOrDefault } from "../i18n/provider";
|
|
12
|
+
function initialState(mode) {
|
|
13
|
+
if (mode.kind === "edit") {
|
|
14
|
+
return {
|
|
15
|
+
serviceType: mode.service.serviceType,
|
|
16
|
+
name: mode.service.name,
|
|
17
|
+
description: mode.service.description ?? "",
|
|
18
|
+
countryCode: mode.service.countryCode ?? "",
|
|
19
|
+
supplierServiceId: mode.service.supplierServiceId ?? "",
|
|
20
|
+
costCurrency: mode.service.costCurrency,
|
|
21
|
+
costAmount: String(mode.service.costAmountCents / 100),
|
|
22
|
+
quantity: String(mode.service.quantity),
|
|
23
|
+
sortOrder: mode.service.sortOrder == null ? "" : String(mode.service.sortOrder),
|
|
24
|
+
notes: mode.service.notes ?? "",
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
serviceType: "accommodation",
|
|
29
|
+
name: "",
|
|
30
|
+
description: "",
|
|
31
|
+
countryCode: "",
|
|
32
|
+
supplierServiceId: "",
|
|
33
|
+
costCurrency: "EUR",
|
|
34
|
+
costAmount: "0",
|
|
35
|
+
quantity: "1",
|
|
36
|
+
sortOrder: mode.sortOrder == null ? "" : String(mode.sortOrder),
|
|
37
|
+
notes: "",
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export function ProductDayServiceForm({ mode, onSuccess, onCancel, renderSupplierServiceField, onSupplierServiceSelected, }) {
|
|
41
|
+
const messages = useProductsUiMessagesOrDefault();
|
|
42
|
+
const serviceMessages = messages.productDayServiceForm;
|
|
43
|
+
const [state, setState] = React.useState(() => initialState(mode));
|
|
44
|
+
const [error, setError] = React.useState(null);
|
|
45
|
+
const { create, update } = useProductDayServiceMutation();
|
|
46
|
+
React.useEffect(() => {
|
|
47
|
+
setState(initialState(mode));
|
|
48
|
+
setError(null);
|
|
49
|
+
}, [mode]);
|
|
50
|
+
const isSubmitting = create.isPending || update.isPending;
|
|
51
|
+
const serviceTypes = [
|
|
52
|
+
{ value: "accommodation", label: serviceMessages.serviceTypes.accommodation },
|
|
53
|
+
{ value: "transfer", label: serviceMessages.serviceTypes.transfer },
|
|
54
|
+
{ value: "experience", label: serviceMessages.serviceTypes.experience },
|
|
55
|
+
{ value: "guide", label: serviceMessages.serviceTypes.guide },
|
|
56
|
+
{ value: "meal", label: serviceMessages.serviceTypes.meal },
|
|
57
|
+
{ value: "other", label: serviceMessages.serviceTypes.other },
|
|
58
|
+
];
|
|
59
|
+
const field = (key) => (value) => {
|
|
60
|
+
setState((previous) => ({ ...previous, [key]: value }));
|
|
61
|
+
};
|
|
62
|
+
const helpers = {
|
|
63
|
+
setName: field("name"),
|
|
64
|
+
setServiceType: field("serviceType"),
|
|
65
|
+
setDescription: (value) => field("description")(value ?? ""),
|
|
66
|
+
setCostCurrency: field("costCurrency"),
|
|
67
|
+
setCostAmountCents: (value) => {
|
|
68
|
+
field("costAmount")(value == null ? "0" : String(value / 100));
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
const handleSupplierServiceChange = (supplierServiceId, option) => {
|
|
72
|
+
field("supplierServiceId")(supplierServiceId ?? "");
|
|
73
|
+
if (!option)
|
|
74
|
+
return;
|
|
75
|
+
if (onSupplierServiceSelected) {
|
|
76
|
+
onSupplierServiceSelected(option, helpers);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
field("name")(option.name);
|
|
80
|
+
if (option.serviceType)
|
|
81
|
+
field("serviceType")(option.serviceType);
|
|
82
|
+
if (option.description != null)
|
|
83
|
+
field("description")(option.description);
|
|
84
|
+
if (option.costCurrency)
|
|
85
|
+
field("costCurrency")(option.costCurrency);
|
|
86
|
+
if (option.costAmountCents != null)
|
|
87
|
+
field("costAmount")(String(option.costAmountCents / 100));
|
|
88
|
+
};
|
|
89
|
+
const handleSubmit = async (event) => {
|
|
90
|
+
event.preventDefault();
|
|
91
|
+
setError(null);
|
|
92
|
+
const costAmount = Number.parseFloat(state.costAmount || "0");
|
|
93
|
+
const quantity = Number.parseInt(state.quantity || "0", 10);
|
|
94
|
+
const sortOrder = state.sortOrder.trim() ? Number.parseInt(state.sortOrder, 10) : null;
|
|
95
|
+
if (!state.name.trim()) {
|
|
96
|
+
setError(serviceMessages.validation.nameRequired);
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
if (!state.costCurrency.trim() || state.costCurrency.trim().length !== 3) {
|
|
100
|
+
setError(serviceMessages.validation.currencyRequired);
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
if (!Number.isFinite(costAmount) || costAmount < 0) {
|
|
104
|
+
setError(serviceMessages.validation.costNonNegative);
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
if (!Number.isFinite(quantity) || quantity < 1) {
|
|
108
|
+
setError(serviceMessages.validation.quantityMin);
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
const payload = {
|
|
112
|
+
serviceType: state.serviceType,
|
|
113
|
+
name: state.name.trim(),
|
|
114
|
+
description: state.description.trim() ? state.description.trim() : null,
|
|
115
|
+
countryCode: state.countryCode.trim() ? state.countryCode.trim().toUpperCase() : null,
|
|
116
|
+
supplierServiceId: state.supplierServiceId.trim() ? state.supplierServiceId.trim() : null,
|
|
117
|
+
costCurrency: state.costCurrency.trim().toUpperCase(),
|
|
118
|
+
costAmountCents: Math.round(costAmount * 100),
|
|
119
|
+
quantity,
|
|
120
|
+
sortOrder: Number.isFinite(sortOrder) ? sortOrder : null,
|
|
121
|
+
notes: state.notes.trim() ? state.notes.trim() : null,
|
|
122
|
+
};
|
|
123
|
+
try {
|
|
124
|
+
const service = mode.kind === "create"
|
|
125
|
+
? await create.mutateAsync({
|
|
126
|
+
productId: mode.productId,
|
|
127
|
+
dayId: mode.dayId,
|
|
128
|
+
...payload,
|
|
129
|
+
})
|
|
130
|
+
: await update.mutateAsync({
|
|
131
|
+
productId: mode.productId,
|
|
132
|
+
dayId: mode.dayId,
|
|
133
|
+
serviceId: mode.service.id,
|
|
134
|
+
input: payload,
|
|
135
|
+
});
|
|
136
|
+
onSuccess?.(service.data);
|
|
137
|
+
}
|
|
138
|
+
catch (submissionError) {
|
|
139
|
+
setError(submissionError instanceof Error
|
|
140
|
+
? submissionError.message
|
|
141
|
+
: serviceMessages.validation.saveFailed);
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
return (_jsxs("form", { "data-slot": "product-day-service-form", onSubmit: handleSubmit, className: "flex flex-col gap-4", children: [renderSupplierServiceField ? (renderSupplierServiceField({
|
|
145
|
+
value: state.supplierServiceId || null,
|
|
146
|
+
disabled: isSubmitting,
|
|
147
|
+
onChange: handleSupplierServiceChange,
|
|
148
|
+
})) : (_jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "product-day-service-supplier-service", children: serviceMessages.fields.supplierService }), _jsx(Input, { id: "product-day-service-supplier-service", value: state.supplierServiceId, onChange: (event) => handleSupplierServiceChange(event.target.value || null), placeholder: serviceMessages.placeholders.supplierService, disabled: isSubmitting })] })), _jsxs("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2", children: [_jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { children: serviceMessages.fields.serviceType }), _jsxs(Select, { value: state.serviceType, onValueChange: (value) => field("serviceType")(value), items: serviceTypes, disabled: isSubmitting, children: [_jsx(SelectTrigger, { className: "w-full", children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: serviceTypes.map((type) => (_jsx(SelectItem, { value: type.value, children: type.label }, type.value))) })] })] }), _jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "product-day-service-country", children: serviceMessages.fields.countryCode }), _jsx(Input, { id: "product-day-service-country", value: state.countryCode, maxLength: 2, onChange: (event) => field("countryCode")(event.target.value), placeholder: serviceMessages.placeholders.countryCode, disabled: isSubmitting })] })] }), _jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "product-day-service-name", children: serviceMessages.fields.name }), _jsx(Input, { id: "product-day-service-name", value: state.name, onChange: (event) => field("name")(event.target.value), placeholder: serviceMessages.placeholders.name, required: true, disabled: isSubmitting })] }), _jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "product-day-service-description", children: serviceMessages.fields.description }), _jsx(Textarea, { id: "product-day-service-description", value: state.description, onChange: (event) => field("description")(event.target.value), placeholder: serviceMessages.placeholders.description, disabled: isSubmitting })] }), _jsxs("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-4", children: [_jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "product-day-service-currency", children: serviceMessages.fields.costCurrency }), _jsx(Input, { id: "product-day-service-currency", value: state.costCurrency, maxLength: 3, onChange: (event) => field("costCurrency")(event.target.value), disabled: isSubmitting })] }), _jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "product-day-service-cost", children: serviceMessages.fields.costAmount }), _jsx(Input, { id: "product-day-service-cost", type: "number", min: "0", step: "0.01", value: state.costAmount, onChange: (event) => field("costAmount")(event.target.value), disabled: isSubmitting })] }), _jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "product-day-service-quantity", children: serviceMessages.fields.quantity }), _jsx(Input, { id: "product-day-service-quantity", type: "number", min: "1", value: state.quantity, onChange: (event) => field("quantity")(event.target.value), disabled: isSubmitting })] }), _jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "product-day-service-sort", children: serviceMessages.fields.sortOrder }), _jsx(Input, { id: "product-day-service-sort", type: "number", value: state.sortOrder, onChange: (event) => field("sortOrder")(event.target.value), disabled: isSubmitting })] })] }), _jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "product-day-service-notes", children: serviceMessages.fields.notes }), _jsx(Textarea, { id: "product-day-service-notes", value: state.notes, onChange: (event) => field("notes")(event.target.value), placeholder: serviceMessages.placeholders.notes, disabled: isSubmitting })] }), error ? _jsx("p", { className: "text-sm text-destructive", children: error }) : null, _jsxs("div", { className: "flex items-center justify-end gap-2", children: [onCancel ? (_jsx(Button, { type: "button", variant: "ghost", onClick: onCancel, disabled: isSubmitting, children: messages.common.cancel })) : null, _jsxs(Button, { type: "submit", disabled: isSubmitting, children: [isSubmitting ? (_jsx(Loader2, { className: "mr-2 size-4 animate-spin", "aria-hidden": "true" })) : null, mode.kind === "create"
|
|
149
|
+
? serviceMessages.actions.addService
|
|
150
|
+
: serviceMessages.actions.saveService] })] })] }));
|
|
151
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type ProductDayRecord, type ProductDayServiceRecord } from "@voyantjs/products-react";
|
|
2
|
+
import type * as React from "react";
|
|
3
|
+
export interface ProductItineraryDayRowRenderContext {
|
|
4
|
+
productId: string;
|
|
5
|
+
day: ProductDayRecord;
|
|
6
|
+
expanded: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface ProductItineraryDayRowProps {
|
|
9
|
+
productId: string;
|
|
10
|
+
day: ProductDayRecord;
|
|
11
|
+
expanded: boolean;
|
|
12
|
+
onToggle: () => void;
|
|
13
|
+
onEdit?: () => void;
|
|
14
|
+
onDelete?: () => void;
|
|
15
|
+
onAddService?: () => void;
|
|
16
|
+
onEditService?: (service: ProductDayServiceRecord) => void;
|
|
17
|
+
onDeleteService?: (service: ProductDayServiceRecord) => void;
|
|
18
|
+
renderDayDetails?: (context: ProductItineraryDayRowRenderContext) => React.ReactNode;
|
|
19
|
+
renderServiceActions?: (service: ProductDayServiceRecord) => React.ReactNode;
|
|
20
|
+
}
|
|
21
|
+
export declare function ProductItineraryDayRow({ productId, day, expanded, onToggle, onEdit, onDelete, onAddService, onEditService, onDeleteService, renderDayDetails, renderServiceActions, }: ProductItineraryDayRowProps): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
//# sourceMappingURL=product-itinerary-day-row.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-itinerary-day-row.d.ts","sourceRoot":"","sources":["../../src/components/product-itinerary-day-row.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAE7B,MAAM,0BAA0B,CAAA;AAIjC,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAA;AAInC,MAAM,WAAW,mCAAmC;IAClD,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,gBAAgB,CAAA;IACrB,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,gBAAgB,CAAA;IACrB,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,IAAI,CAAA;IAC1D,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,IAAI,CAAA;IAC5D,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,mCAAmC,KAAK,KAAK,CAAC,SAAS,CAAA;IACpF,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,KAAK,CAAC,SAAS,CAAA;CAC7E;AASD,wBAAgB,sBAAsB,CAAC,EACrC,SAAS,EACT,GAAG,EACH,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,oBAAoB,GACrB,EAAE,2BAA2B,2CA+H7B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useProductDayServices, } from "@voyantjs/products-react";
|
|
4
|
+
import { Badge } from "@voyantjs/ui/components/badge";
|
|
5
|
+
import { Button } from "@voyantjs/ui/components/button";
|
|
6
|
+
import { ChevronDown, ChevronRight, Pencil, Plus, Trash2 } from "lucide-react";
|
|
7
|
+
import { useProductsUiMessagesOrDefault } from "../i18n/provider";
|
|
8
|
+
function formatServiceType(serviceType, messages) {
|
|
9
|
+
return messages.serviceTypes[serviceType];
|
|
10
|
+
}
|
|
11
|
+
export function ProductItineraryDayRow({ productId, day, expanded, onToggle, onEdit, onDelete, onAddService, onEditService, onDeleteService, renderDayDetails, renderServiceActions, }) {
|
|
12
|
+
const messages = useProductsUiMessagesOrDefault();
|
|
13
|
+
const rowMessages = messages.productItineraryDayRow;
|
|
14
|
+
const servicesQuery = useProductDayServices(productId, day.id, { enabled: expanded });
|
|
15
|
+
const services = servicesQuery.data?.data ?? [];
|
|
16
|
+
return (_jsxs("div", { "data-slot": "product-itinerary-day-row", className: "rounded-md border bg-background", children: [_jsxs("div", { className: "flex items-center gap-3 px-4 py-3", children: [_jsx(Button, { type: "button", variant: "ghost", size: "icon-sm", onClick: onToggle, children: expanded ? (_jsx(ChevronDown, { className: "size-4", "aria-hidden": "true" })) : (_jsx(ChevronRight, { className: "size-4", "aria-hidden": "true" })) }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "truncate text-sm font-medium", children: [rowMessages.dayLabel.replace("{dayNumber}", String(day.dayNumber)), day.title ? `: ${day.title}` : ""] }), day.location ? (_jsx("div", { className: "truncate text-xs text-muted-foreground", children: day.location })) : null] }), _jsxs("div", { className: "flex items-center gap-1", children: [onAddService ? (_jsx(Button, { type: "button", variant: "ghost", size: "icon-sm", onClick: onAddService, children: _jsx(Plus, { className: "size-4", "aria-hidden": "true" }) })) : null, onEdit ? (_jsx(Button, { type: "button", variant: "ghost", size: "icon-sm", onClick: onEdit, children: _jsx(Pencil, { className: "size-4", "aria-hidden": "true" }) })) : null, onDelete ? (_jsx(Button, { type: "button", variant: "ghost", size: "icon-sm", onClick: onDelete, children: _jsx(Trash2, { className: "size-4", "aria-hidden": "true" }) })) : null] })] }), expanded ? (_jsxs("div", { className: "border-t", children: [renderDayDetails ? (_jsx("div", { className: "border-b p-4", children: renderDayDetails({ productId, day, expanded }) })) : null, servicesQuery.isPending ? (_jsx("p", { className: "p-4 text-center text-sm text-muted-foreground", children: messages.common.loading })) : servicesQuery.isError ? (_jsx("p", { className: "p-4 text-center text-sm text-destructive", children: rowMessages.servicesLoadingError })) : services.length === 0 ? (_jsx("p", { className: "p-4 text-center text-sm text-muted-foreground", children: rowMessages.emptyServices })) : (_jsx("div", { className: "overflow-x-auto", children: _jsxs("table", { className: "w-full text-sm", children: [_jsx("thead", { children: _jsxs("tr", { className: "border-b bg-muted/30 text-muted-foreground", children: [_jsx("th", { className: "px-4 py-2 text-left font-medium", children: rowMessages.columns.name }), _jsx("th", { className: "px-3 py-2 text-left font-medium", children: rowMessages.columns.type }), _jsx("th", { className: "px-3 py-2 text-left font-medium", children: rowMessages.columns.cost }), _jsx("th", { className: "px-3 py-2 text-left font-medium", children: rowMessages.columns.quantity }), _jsx("th", { className: "w-24 px-3 py-2" })] }) }), _jsx("tbody", { children: services.map((service) => (_jsxs("tr", { className: "border-b last:border-b-0", children: [_jsx("td", { className: "px-4 py-2", children: service.name }), _jsx("td", { className: "px-3 py-2", children: _jsx(Badge, { variant: "outline", children: formatServiceType(service.serviceType, messages.productDayServiceForm) }) }), _jsxs("td", { className: "px-3 py-2 font-mono text-xs", children: [(service.costAmountCents / 100).toFixed(2), " ", service.costCurrency] }), _jsx("td", { className: "px-3 py-2", children: service.quantity }), _jsx("td", { className: "px-3 py-2", children: renderServiceActions ? (renderServiceActions(service)) : (_jsxs("div", { className: "flex items-center justify-end gap-1", children: [onEditService ? (_jsx(Button, { type: "button", variant: "ghost", size: "icon-sm", onClick: () => onEditService(service), children: _jsx(Pencil, { className: "size-4", "aria-hidden": "true" }) })) : null, onDeleteService ? (_jsx(Button, { type: "button", variant: "ghost", size: "icon-sm", onClick: () => onDeleteService(service), children: _jsx(Trash2, { className: "size-4", "aria-hidden": "true" }) })) : null] })) })] }, service.id))) })] }) }))] })) : null] }));
|
|
17
|
+
}
|
package/dist/i18n/en.d.ts
CHANGED
|
@@ -227,6 +227,57 @@ export declare const productsUiEn: {
|
|
|
227
227
|
saveDay: string;
|
|
228
228
|
};
|
|
229
229
|
};
|
|
230
|
+
productDayServiceForm: {
|
|
231
|
+
fields: {
|
|
232
|
+
supplierService: string;
|
|
233
|
+
serviceType: string;
|
|
234
|
+
countryCode: string;
|
|
235
|
+
name: string;
|
|
236
|
+
description: string;
|
|
237
|
+
costCurrency: string;
|
|
238
|
+
costAmount: string;
|
|
239
|
+
quantity: string;
|
|
240
|
+
sortOrder: string;
|
|
241
|
+
notes: string;
|
|
242
|
+
};
|
|
243
|
+
placeholders: {
|
|
244
|
+
supplierService: string;
|
|
245
|
+
countryCode: string;
|
|
246
|
+
name: string;
|
|
247
|
+
description: string;
|
|
248
|
+
notes: string;
|
|
249
|
+
};
|
|
250
|
+
serviceTypes: {
|
|
251
|
+
accommodation: string;
|
|
252
|
+
transfer: string;
|
|
253
|
+
experience: string;
|
|
254
|
+
guide: string;
|
|
255
|
+
meal: string;
|
|
256
|
+
other: string;
|
|
257
|
+
};
|
|
258
|
+
validation: {
|
|
259
|
+
nameRequired: string;
|
|
260
|
+
currencyRequired: string;
|
|
261
|
+
costNonNegative: string;
|
|
262
|
+
quantityMin: string;
|
|
263
|
+
saveFailed: string;
|
|
264
|
+
};
|
|
265
|
+
actions: {
|
|
266
|
+
addService: string;
|
|
267
|
+
saveService: string;
|
|
268
|
+
};
|
|
269
|
+
};
|
|
270
|
+
productItineraryDayRow: {
|
|
271
|
+
dayLabel: string;
|
|
272
|
+
emptyServices: string;
|
|
273
|
+
servicesLoadingError: string;
|
|
274
|
+
columns: {
|
|
275
|
+
name: string;
|
|
276
|
+
type: string;
|
|
277
|
+
cost: string;
|
|
278
|
+
quantity: string;
|
|
279
|
+
};
|
|
280
|
+
};
|
|
230
281
|
productItineraryDialog: {
|
|
231
282
|
titles: {
|
|
232
283
|
create: string;
|
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,YAAY
|
|
1
|
+
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAocK,CAAA"}
|
package/dist/i18n/en.js
CHANGED
|
@@ -227,6 +227,57 @@ export const productsUiEn = {
|
|
|
227
227
|
saveDay: "Save day",
|
|
228
228
|
},
|
|
229
229
|
},
|
|
230
|
+
productDayServiceForm: {
|
|
231
|
+
fields: {
|
|
232
|
+
supplierService: "Supplier service",
|
|
233
|
+
serviceType: "Service type",
|
|
234
|
+
countryCode: "Country code",
|
|
235
|
+
name: "Name",
|
|
236
|
+
description: "Description",
|
|
237
|
+
costCurrency: "Currency",
|
|
238
|
+
costAmount: "Cost",
|
|
239
|
+
quantity: "Quantity",
|
|
240
|
+
sortOrder: "Sort order",
|
|
241
|
+
notes: "Notes",
|
|
242
|
+
},
|
|
243
|
+
placeholders: {
|
|
244
|
+
supplierService: "Optional supplier service id",
|
|
245
|
+
countryCode: "RO",
|
|
246
|
+
name: "Hotel stay",
|
|
247
|
+
description: "Operational service details",
|
|
248
|
+
notes: "Internal notes",
|
|
249
|
+
},
|
|
250
|
+
serviceTypes: {
|
|
251
|
+
accommodation: "Accommodation",
|
|
252
|
+
transfer: "Transfer",
|
|
253
|
+
experience: "Experience",
|
|
254
|
+
guide: "Guide",
|
|
255
|
+
meal: "Meal",
|
|
256
|
+
other: "Other",
|
|
257
|
+
},
|
|
258
|
+
validation: {
|
|
259
|
+
nameRequired: "Service name is required.",
|
|
260
|
+
currencyRequired: "Currency must be a 3-letter ISO code.",
|
|
261
|
+
costNonNegative: "Cost must be zero or greater.",
|
|
262
|
+
quantityMin: "Quantity must be at least 1.",
|
|
263
|
+
saveFailed: "Failed to save service.",
|
|
264
|
+
},
|
|
265
|
+
actions: {
|
|
266
|
+
addService: "Add service",
|
|
267
|
+
saveService: "Save service",
|
|
268
|
+
},
|
|
269
|
+
},
|
|
270
|
+
productItineraryDayRow: {
|
|
271
|
+
dayLabel: "Day {dayNumber}",
|
|
272
|
+
emptyServices: "No services configured for this day.",
|
|
273
|
+
servicesLoadingError: "Failed to load day services.",
|
|
274
|
+
columns: {
|
|
275
|
+
name: "Name",
|
|
276
|
+
type: "Type",
|
|
277
|
+
cost: "Cost",
|
|
278
|
+
quantity: "Quantity",
|
|
279
|
+
},
|
|
280
|
+
},
|
|
230
281
|
productItineraryDialog: {
|
|
231
282
|
titles: {
|
|
232
283
|
create: "New itinerary",
|
package/dist/i18n/messages.d.ts
CHANGED
|
@@ -227,6 +227,57 @@ export type ProductsUiMessages = {
|
|
|
227
227
|
saveDay: string;
|
|
228
228
|
};
|
|
229
229
|
};
|
|
230
|
+
productDayServiceForm: {
|
|
231
|
+
fields: {
|
|
232
|
+
supplierService: string;
|
|
233
|
+
serviceType: string;
|
|
234
|
+
countryCode: string;
|
|
235
|
+
name: string;
|
|
236
|
+
description: string;
|
|
237
|
+
costCurrency: string;
|
|
238
|
+
costAmount: string;
|
|
239
|
+
quantity: string;
|
|
240
|
+
sortOrder: string;
|
|
241
|
+
notes: string;
|
|
242
|
+
};
|
|
243
|
+
placeholders: {
|
|
244
|
+
supplierService: string;
|
|
245
|
+
countryCode: string;
|
|
246
|
+
name: string;
|
|
247
|
+
description: string;
|
|
248
|
+
notes: string;
|
|
249
|
+
};
|
|
250
|
+
serviceTypes: {
|
|
251
|
+
accommodation: string;
|
|
252
|
+
transfer: string;
|
|
253
|
+
experience: string;
|
|
254
|
+
guide: string;
|
|
255
|
+
meal: string;
|
|
256
|
+
other: string;
|
|
257
|
+
};
|
|
258
|
+
validation: {
|
|
259
|
+
nameRequired: string;
|
|
260
|
+
currencyRequired: string;
|
|
261
|
+
costNonNegative: string;
|
|
262
|
+
quantityMin: string;
|
|
263
|
+
saveFailed: string;
|
|
264
|
+
};
|
|
265
|
+
actions: {
|
|
266
|
+
addService: string;
|
|
267
|
+
saveService: string;
|
|
268
|
+
};
|
|
269
|
+
};
|
|
270
|
+
productItineraryDayRow: {
|
|
271
|
+
dayLabel: string;
|
|
272
|
+
emptyServices: string;
|
|
273
|
+
servicesLoadingError: string;
|
|
274
|
+
columns: {
|
|
275
|
+
name: string;
|
|
276
|
+
type: string;
|
|
277
|
+
cost: string;
|
|
278
|
+
quantity: string;
|
|
279
|
+
};
|
|
280
|
+
};
|
|
230
281
|
productItineraryDialog: {
|
|
231
282
|
titles: {
|
|
232
283
|
create: string;
|
|
@@ -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":"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"}
|
package/dist/i18n/provider.d.ts
CHANGED
|
@@ -231,6 +231,57 @@ export declare const productsUiMessageDefinitions: {
|
|
|
231
231
|
saveDay: string;
|
|
232
232
|
};
|
|
233
233
|
};
|
|
234
|
+
productDayServiceForm: {
|
|
235
|
+
fields: {
|
|
236
|
+
supplierService: string;
|
|
237
|
+
serviceType: string;
|
|
238
|
+
countryCode: string;
|
|
239
|
+
name: string;
|
|
240
|
+
description: string;
|
|
241
|
+
costCurrency: string;
|
|
242
|
+
costAmount: string;
|
|
243
|
+
quantity: string;
|
|
244
|
+
sortOrder: string;
|
|
245
|
+
notes: string;
|
|
246
|
+
};
|
|
247
|
+
placeholders: {
|
|
248
|
+
supplierService: string;
|
|
249
|
+
countryCode: string;
|
|
250
|
+
name: string;
|
|
251
|
+
description: string;
|
|
252
|
+
notes: string;
|
|
253
|
+
};
|
|
254
|
+
serviceTypes: {
|
|
255
|
+
accommodation: string;
|
|
256
|
+
transfer: string;
|
|
257
|
+
experience: string;
|
|
258
|
+
guide: string;
|
|
259
|
+
meal: string;
|
|
260
|
+
other: string;
|
|
261
|
+
};
|
|
262
|
+
validation: {
|
|
263
|
+
nameRequired: string;
|
|
264
|
+
currencyRequired: string;
|
|
265
|
+
costNonNegative: string;
|
|
266
|
+
quantityMin: string;
|
|
267
|
+
saveFailed: string;
|
|
268
|
+
};
|
|
269
|
+
actions: {
|
|
270
|
+
addService: string;
|
|
271
|
+
saveService: string;
|
|
272
|
+
};
|
|
273
|
+
};
|
|
274
|
+
productItineraryDayRow: {
|
|
275
|
+
dayLabel: string;
|
|
276
|
+
emptyServices: string;
|
|
277
|
+
servicesLoadingError: string;
|
|
278
|
+
columns: {
|
|
279
|
+
name: string;
|
|
280
|
+
type: string;
|
|
281
|
+
cost: string;
|
|
282
|
+
quantity: string;
|
|
283
|
+
};
|
|
284
|
+
};
|
|
234
285
|
productItineraryDialog: {
|
|
235
286
|
titles: {
|
|
236
287
|
create: string;
|
|
@@ -632,6 +683,57 @@ export declare const productsUiMessageDefinitions: {
|
|
|
632
683
|
saveDay: string;
|
|
633
684
|
};
|
|
634
685
|
};
|
|
686
|
+
productDayServiceForm: {
|
|
687
|
+
fields: {
|
|
688
|
+
supplierService: string;
|
|
689
|
+
serviceType: string;
|
|
690
|
+
countryCode: string;
|
|
691
|
+
name: string;
|
|
692
|
+
description: string;
|
|
693
|
+
costCurrency: string;
|
|
694
|
+
costAmount: string;
|
|
695
|
+
quantity: string;
|
|
696
|
+
sortOrder: string;
|
|
697
|
+
notes: string;
|
|
698
|
+
};
|
|
699
|
+
placeholders: {
|
|
700
|
+
supplierService: string;
|
|
701
|
+
countryCode: string;
|
|
702
|
+
name: string;
|
|
703
|
+
description: string;
|
|
704
|
+
notes: string;
|
|
705
|
+
};
|
|
706
|
+
serviceTypes: {
|
|
707
|
+
accommodation: string;
|
|
708
|
+
transfer: string;
|
|
709
|
+
experience: string;
|
|
710
|
+
guide: string;
|
|
711
|
+
meal: string;
|
|
712
|
+
other: string;
|
|
713
|
+
};
|
|
714
|
+
validation: {
|
|
715
|
+
nameRequired: string;
|
|
716
|
+
currencyRequired: string;
|
|
717
|
+
costNonNegative: string;
|
|
718
|
+
quantityMin: string;
|
|
719
|
+
saveFailed: string;
|
|
720
|
+
};
|
|
721
|
+
actions: {
|
|
722
|
+
addService: string;
|
|
723
|
+
saveService: string;
|
|
724
|
+
};
|
|
725
|
+
};
|
|
726
|
+
productItineraryDayRow: {
|
|
727
|
+
dayLabel: string;
|
|
728
|
+
emptyServices: string;
|
|
729
|
+
servicesLoadingError: string;
|
|
730
|
+
columns: {
|
|
731
|
+
name: string;
|
|
732
|
+
type: string;
|
|
733
|
+
cost: string;
|
|
734
|
+
quantity: string;
|
|
735
|
+
};
|
|
736
|
+
};
|
|
635
737
|
productItineraryDialog: {
|
|
636
738
|
titles: {
|
|
637
739
|
create: string;
|
|
@@ -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,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAKpD,eAAO,MAAM,4BAA4B
|
|
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,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAKpD,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGe,CAAA;AAExD,MAAM,MAAM,0BAA0B,GAAG,sBAAsB,CAAC,kBAAkB,CAAC,CAAA;AASnF,wBAAgB,yBAAyB,CAAC,EACxC,MAAM,EACN,SAAS,GACV,EAAE;IACD,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACjC,SAAS,CAAC,EAAE,0BAA0B,GAAG,IAAI,CAAA;CAC9C,sBAOA;AAED,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,SAAS,GACV,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IAClC,SAAS,CAAC,EAAE,0BAA0B,GAAG,IAAI,CAAA;CAC9C,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CASvC;AAED,wBAAgB,0BAA0B,CAAC,EACzC,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,0BAA0B,GAAG,IAAI,CAAA;CAC9C,2CAWA;AAED,eAAO,MAAM,iBAAiB,4CAA4B,CAAA;AAC1D,eAAO,MAAM,qBAAqB,0BAAgC,CAAA;AAElE,wBAAgB,0BAA0B,yCAEzC;AAED,wBAAgB,8BAA8B,uBAE7C"}
|
package/dist/i18n/ro.d.ts
CHANGED
|
@@ -227,6 +227,57 @@ export declare const productsUiRo: {
|
|
|
227
227
|
saveDay: string;
|
|
228
228
|
};
|
|
229
229
|
};
|
|
230
|
+
productDayServiceForm: {
|
|
231
|
+
fields: {
|
|
232
|
+
supplierService: string;
|
|
233
|
+
serviceType: string;
|
|
234
|
+
countryCode: string;
|
|
235
|
+
name: string;
|
|
236
|
+
description: string;
|
|
237
|
+
costCurrency: string;
|
|
238
|
+
costAmount: string;
|
|
239
|
+
quantity: string;
|
|
240
|
+
sortOrder: string;
|
|
241
|
+
notes: string;
|
|
242
|
+
};
|
|
243
|
+
placeholders: {
|
|
244
|
+
supplierService: string;
|
|
245
|
+
countryCode: string;
|
|
246
|
+
name: string;
|
|
247
|
+
description: string;
|
|
248
|
+
notes: string;
|
|
249
|
+
};
|
|
250
|
+
serviceTypes: {
|
|
251
|
+
accommodation: string;
|
|
252
|
+
transfer: string;
|
|
253
|
+
experience: string;
|
|
254
|
+
guide: string;
|
|
255
|
+
meal: string;
|
|
256
|
+
other: string;
|
|
257
|
+
};
|
|
258
|
+
validation: {
|
|
259
|
+
nameRequired: string;
|
|
260
|
+
currencyRequired: string;
|
|
261
|
+
costNonNegative: string;
|
|
262
|
+
quantityMin: string;
|
|
263
|
+
saveFailed: string;
|
|
264
|
+
};
|
|
265
|
+
actions: {
|
|
266
|
+
addService: string;
|
|
267
|
+
saveService: string;
|
|
268
|
+
};
|
|
269
|
+
};
|
|
270
|
+
productItineraryDayRow: {
|
|
271
|
+
dayLabel: string;
|
|
272
|
+
emptyServices: string;
|
|
273
|
+
servicesLoadingError: string;
|
|
274
|
+
columns: {
|
|
275
|
+
name: string;
|
|
276
|
+
type: string;
|
|
277
|
+
cost: string;
|
|
278
|
+
quantity: string;
|
|
279
|
+
};
|
|
280
|
+
};
|
|
230
281
|
productItineraryDialog: {
|
|
231
282
|
titles: {
|
|
232
283
|
create: string;
|
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,YAAY
|
|
1
|
+
{"version":3,"file":"ro.d.ts","sourceRoot":"","sources":["../../src/i18n/ro.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqcK,CAAA"}
|
package/dist/i18n/ro.js
CHANGED
|
@@ -227,6 +227,57 @@ export const productsUiRo = {
|
|
|
227
227
|
saveDay: "Salveaza ziua",
|
|
228
228
|
},
|
|
229
229
|
},
|
|
230
|
+
productDayServiceForm: {
|
|
231
|
+
fields: {
|
|
232
|
+
supplierService: "Serviciu furnizor",
|
|
233
|
+
serviceType: "Tip serviciu",
|
|
234
|
+
countryCode: "Cod tara",
|
|
235
|
+
name: "Nume",
|
|
236
|
+
description: "Descriere",
|
|
237
|
+
costCurrency: "Moneda",
|
|
238
|
+
costAmount: "Cost",
|
|
239
|
+
quantity: "Cantitate",
|
|
240
|
+
sortOrder: "Ordine sortare",
|
|
241
|
+
notes: "Note",
|
|
242
|
+
},
|
|
243
|
+
placeholders: {
|
|
244
|
+
supplierService: "ID serviciu furnizor optional",
|
|
245
|
+
countryCode: "RO",
|
|
246
|
+
name: "Cazare hotel",
|
|
247
|
+
description: "Detalii operationale ale serviciului",
|
|
248
|
+
notes: "Note interne",
|
|
249
|
+
},
|
|
250
|
+
serviceTypes: {
|
|
251
|
+
accommodation: "Cazare",
|
|
252
|
+
transfer: "Transfer",
|
|
253
|
+
experience: "Experienta",
|
|
254
|
+
guide: "Ghid",
|
|
255
|
+
meal: "Masa",
|
|
256
|
+
other: "Altul",
|
|
257
|
+
},
|
|
258
|
+
validation: {
|
|
259
|
+
nameRequired: "Numele serviciului este obligatoriu.",
|
|
260
|
+
currencyRequired: "Moneda trebuie sa fie un cod ISO din 3 litere.",
|
|
261
|
+
costNonNegative: "Costul trebuie sa fie zero sau mai mare.",
|
|
262
|
+
quantityMin: "Cantitatea trebuie sa fie cel putin 1.",
|
|
263
|
+
saveFailed: "Salvarea serviciului a esuat.",
|
|
264
|
+
},
|
|
265
|
+
actions: {
|
|
266
|
+
addService: "Adauga serviciu",
|
|
267
|
+
saveService: "Salveaza serviciul",
|
|
268
|
+
},
|
|
269
|
+
},
|
|
270
|
+
productItineraryDayRow: {
|
|
271
|
+
dayLabel: "Ziua {dayNumber}",
|
|
272
|
+
emptyServices: "Nu exista servicii configurate pentru aceasta zi.",
|
|
273
|
+
servicesLoadingError: "Incarcarea serviciilor zilei a esuat.",
|
|
274
|
+
columns: {
|
|
275
|
+
name: "Nume",
|
|
276
|
+
type: "Tip",
|
|
277
|
+
cost: "Cost",
|
|
278
|
+
quantity: "Cantitate",
|
|
279
|
+
},
|
|
280
|
+
},
|
|
230
281
|
productItineraryDialog: {
|
|
231
282
|
titles: {
|
|
232
283
|
create: "Itinerar nou",
|
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,9 @@ export { ProductCategoryForm, type ProductCategoryFormProps, } from "./component
|
|
|
6
6
|
export { ProductCategoryList, type ProductCategoryListProps, } from "./components/product-category-list";
|
|
7
7
|
export { ProductDayDialog, type ProductDayDialogProps } from "./components/product-day-dialog";
|
|
8
8
|
export { ProductDayForm, type ProductDayFormProps } from "./components/product-day-form";
|
|
9
|
+
export { ProductDayMediaTray, type ProductDayMediaTrayProps, } from "./components/product-day-media-tray";
|
|
10
|
+
export { ProductDayServiceForm, type ProductDayServiceFormHelpers, type ProductDayServiceFormProps, type ProductDayServiceSupplierServiceFieldProps, type ProductDayServiceSupplierServiceOption, } from "./components/product-day-service-form";
|
|
11
|
+
export { ProductItineraryDayRow, type ProductItineraryDayRowProps, type ProductItineraryDayRowRenderContext, } from "./components/product-itinerary-day-row";
|
|
9
12
|
export { ProductItineraryDialog, type ProductItineraryDialogProps, } from "./components/product-itinerary-dialog";
|
|
10
13
|
export { ProductMediaDialog, type ProductMediaDialogProps } from "./components/product-media-dialog";
|
|
11
14
|
export { ProductMediaForm, type ProductMediaFormProps } from "./components/product-media-form";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAC9F,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACxF,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAA;AAChF,OAAO,EACL,qBAAqB,EACrB,KAAK,0BAA0B,GAChC,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,GAC9B,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,GAC9B,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAC9F,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACxF,OAAO,EACL,sBAAsB,EACtB,KAAK,2BAA2B,GACjC,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,mCAAmC,CAAA;AACpG,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAC9F,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,GAC9B,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,GAC9B,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AACjG,OAAO,EACL,qBAAqB,EACrB,KAAK,0BAA0B,GAChC,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAC9F,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACxF,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAA;AACxE,OAAO,EACL,oBAAoB,EACpB,KAAK,yBAAyB,GAC/B,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EACL,sBAAsB,EACtB,KAAK,2BAA2B,GACjC,MAAM,uCAAuC,CAAA;AAC9C,YAAY,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EACL,iBAAiB,EACjB,KAAK,0BAA0B,EAC/B,0BAA0B,EAC1B,YAAY,EACZ,4BAA4B,EAC5B,YAAY,EACZ,yBAAyB,EACzB,iBAAiB,EACjB,0BAA0B,EAC1B,qBAAqB,EACrB,8BAA8B,GAC/B,MAAM,QAAQ,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAC9F,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACxF,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAA;AAChF,OAAO,EACL,qBAAqB,EACrB,KAAK,0BAA0B,GAChC,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,GAC9B,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,GAC9B,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAC9F,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACxF,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,GAC9B,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EACL,qBAAqB,EACrB,KAAK,4BAA4B,EACjC,KAAK,0BAA0B,EAC/B,KAAK,0CAA0C,EAC/C,KAAK,sCAAsC,GAC5C,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EACL,sBAAsB,EACtB,KAAK,2BAA2B,EAChC,KAAK,mCAAmC,GACzC,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EACL,sBAAsB,EACtB,KAAK,2BAA2B,GACjC,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,mCAAmC,CAAA;AACpG,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAC9F,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,GAC9B,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,GAC9B,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AACjG,OAAO,EACL,qBAAqB,EACrB,KAAK,0BAA0B,GAChC,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAC9F,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACxF,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAA;AACxE,OAAO,EACL,oBAAoB,EACpB,KAAK,yBAAyB,GAC/B,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EACL,sBAAsB,EACtB,KAAK,2BAA2B,GACjC,MAAM,uCAAuC,CAAA;AAC9C,YAAY,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,EACL,iBAAiB,EACjB,KAAK,0BAA0B,EAC/B,0BAA0B,EAC1B,YAAY,EACZ,4BAA4B,EAC5B,YAAY,EACZ,yBAAyB,EACzB,iBAAiB,EACjB,0BAA0B,EAC1B,qBAAqB,EACrB,8BAA8B,GAC/B,MAAM,QAAQ,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,9 @@ export { ProductCategoryForm, } from "./components/product-category-form";
|
|
|
6
6
|
export { ProductCategoryList, } from "./components/product-category-list";
|
|
7
7
|
export { ProductDayDialog } from "./components/product-day-dialog";
|
|
8
8
|
export { ProductDayForm } from "./components/product-day-form";
|
|
9
|
+
export { ProductDayMediaTray, } from "./components/product-day-media-tray";
|
|
10
|
+
export { ProductDayServiceForm, } from "./components/product-day-service-form";
|
|
11
|
+
export { ProductItineraryDayRow, } from "./components/product-itinerary-day-row";
|
|
9
12
|
export { ProductItineraryDialog, } from "./components/product-itinerary-dialog";
|
|
10
13
|
export { ProductMediaDialog } from "./components/product-media-dialog";
|
|
11
14
|
export { ProductMediaForm } from "./components/product-media-form";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voyantjs/products-ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.23.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -43,17 +43,17 @@
|
|
|
43
43
|
"@tanstack/react-query": "^5.0.0",
|
|
44
44
|
"react": "^19.0.0",
|
|
45
45
|
"react-dom": "^19.0.0",
|
|
46
|
-
"@voyantjs/availability-react": "0.
|
|
47
|
-
"@voyantjs/catalog-react": "0.
|
|
48
|
-
"@voyantjs/finance": "0.
|
|
49
|
-
"@voyantjs/finance-ui": "0.
|
|
50
|
-
"@voyantjs/pricing-react": "0.
|
|
51
|
-
"@voyantjs/products-react": "0.
|
|
52
|
-
"@voyantjs/suppliers-react": "0.
|
|
53
|
-
"@voyantjs/ui": "0.
|
|
46
|
+
"@voyantjs/availability-react": "0.23.0",
|
|
47
|
+
"@voyantjs/catalog-react": "0.23.0",
|
|
48
|
+
"@voyantjs/finance": "0.23.0",
|
|
49
|
+
"@voyantjs/finance-ui": "0.23.0",
|
|
50
|
+
"@voyantjs/pricing-react": "0.23.0",
|
|
51
|
+
"@voyantjs/products-react": "0.23.0",
|
|
52
|
+
"@voyantjs/suppliers-react": "0.23.0",
|
|
53
|
+
"@voyantjs/ui": "0.23.0"
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"@voyantjs/i18n": "0.
|
|
56
|
+
"@voyantjs/i18n": "0.23.0"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@tanstack/react-query": "^5.96.2",
|
|
@@ -64,16 +64,16 @@
|
|
|
64
64
|
"react-dom": "^19.2.4",
|
|
65
65
|
"typescript": "^6.0.2",
|
|
66
66
|
"vitest": "^4.1.2",
|
|
67
|
-
"@voyantjs/availability-react": "0.
|
|
68
|
-
"@voyantjs/catalog-react": "0.
|
|
69
|
-
"@voyantjs/finance": "0.
|
|
70
|
-
"@voyantjs/finance-ui": "0.
|
|
71
|
-
"@voyantjs/i18n": "0.
|
|
72
|
-
"@voyantjs/pricing-react": "0.
|
|
73
|
-
"@voyantjs/products-react": "0.
|
|
74
|
-
"@voyantjs/suppliers-react": "0.
|
|
67
|
+
"@voyantjs/availability-react": "0.23.0",
|
|
68
|
+
"@voyantjs/catalog-react": "0.23.0",
|
|
69
|
+
"@voyantjs/finance": "0.23.0",
|
|
70
|
+
"@voyantjs/finance-ui": "0.23.0",
|
|
71
|
+
"@voyantjs/i18n": "0.23.0",
|
|
72
|
+
"@voyantjs/pricing-react": "0.23.0",
|
|
73
|
+
"@voyantjs/products-react": "0.23.0",
|
|
74
|
+
"@voyantjs/suppliers-react": "0.23.0",
|
|
75
75
|
"@voyantjs/voyant-typescript-config": "0.1.0",
|
|
76
|
-
"@voyantjs/ui": "0.
|
|
76
|
+
"@voyantjs/ui": "0.23.0"
|
|
77
77
|
},
|
|
78
78
|
"files": [
|
|
79
79
|
"dist",
|