@voyantjs/resources-ui 0.30.7 → 0.31.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.
Files changed (32) hide show
  1. package/README.md +41 -0
  2. package/dist/components/resource-allocation-detail-page.d.ts +15 -0
  3. package/dist/components/resource-allocation-detail-page.d.ts.map +1 -0
  4. package/dist/components/resource-allocation-detail-page.js +45 -0
  5. package/dist/components/resource-assignment-detail-page.d.ts +15 -0
  6. package/dist/components/resource-assignment-detail-page.d.ts.map +1 -0
  7. package/dist/components/resource-assignment-detail-page.js +47 -0
  8. package/dist/components/resource-detail-data.d.ts +34 -0
  9. package/dist/components/resource-detail-data.d.ts.map +1 -0
  10. package/dist/components/resource-detail-data.js +90 -0
  11. package/dist/components/resource-detail-page.d.ts +23 -0
  12. package/dist/components/resource-detail-page.d.ts.map +1 -0
  13. package/dist/components/resource-detail-page.js +77 -0
  14. package/dist/components/resource-detail-shared.d.ts +37 -0
  15. package/dist/components/resource-detail-shared.d.ts.map +1 -0
  16. package/dist/components/resource-detail-shared.js +51 -0
  17. package/dist/components/resource-pool-detail-page.d.ts +21 -0
  18. package/dist/components/resource-pool-detail-page.d.ts.map +1 -0
  19. package/dist/components/resource-pool-detail-page.js +65 -0
  20. package/dist/components/resources-page.d.ts +55 -0
  21. package/dist/components/resources-page.d.ts.map +1 -0
  22. package/dist/components/resources-page.js +174 -0
  23. package/dist/i18n/en.d.ts.map +1 -1
  24. package/dist/i18n/en.js +114 -0
  25. package/dist/i18n/messages.d.ts +114 -0
  26. package/dist/i18n/messages.d.ts.map +1 -1
  27. package/dist/i18n/ro.d.ts.map +1 -1
  28. package/dist/i18n/ro.js +114 -0
  29. package/dist/index.d.ts +7 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +7 -0
  32. package/package.json +7 -7
@@ -0,0 +1,65 @@
1
+ "use client";
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { labelById, useAllocations, useAssignments, useBookings, usePool, useProducts, useResources, useSlots, } from "@voyantjs/resources-react";
4
+ import { Badge, Button, Card, CardContent, CardHeader, CardTitle, cn, } from "@voyantjs/ui/components";
5
+ import { Package, Users, Wrench } from "lucide-react";
6
+ import { useResourcesUiI18nOrDefault } from "../i18n/index.js";
7
+ import { formatResourceSlotLabel } from "../i18n/utils.js";
8
+ import { useResourcePoolMembers } from "./resource-detail-data.js";
9
+ import { ResourceAssignmentSummary } from "./resource-detail-page.js";
10
+ import { ResourceDetailSkeleton as BaseResourceDetailSkeleton, ResourceDetailCard, ResourceDetailField, ResourceDetailHeader, ResourceDetailState, } from "./resource-detail-shared.js";
11
+ export function ResourcePoolDetailPage({ className, confirmAction, deleting, id, onBack, onDelete, onOpenAllocation, onOpenAssignment, onOpenProduct, onOpenResource, }) {
12
+ const i18n = useResourcesUiI18nOrDefault();
13
+ const m = i18n.messages;
14
+ const page = m.detailPages;
15
+ const poolQuery = usePool(id);
16
+ const productsQuery = useProducts({ limit: 25 });
17
+ const membersQuery = useResourcePoolMembers({ poolId: id, limit: 25 });
18
+ const resourcesQuery = useResources({ limit: 25 });
19
+ const allocationsQuery = useAllocations({ poolId: id, limit: 25 });
20
+ const assignmentsQuery = useAssignments({ poolId: id, limit: 25 });
21
+ const slotsQuery = useSlots({ limit: 25 });
22
+ const bookingsQuery = useBookings({ limit: 25 });
23
+ if (poolQuery.isPending) {
24
+ return _jsx(ResourcePoolDetailSkeleton, {});
25
+ }
26
+ if (poolQuery.isError) {
27
+ return (_jsx(ResourceDetailState, { className: className, message: page.pool.loadFailed, onBack: onBack }));
28
+ }
29
+ const pool = poolQuery.data;
30
+ if (!pool) {
31
+ return (_jsx(ResourceDetailState, { className: className, message: page.pool.notFound, onBack: onBack }));
32
+ }
33
+ const products = productsQuery.data?.data ?? [];
34
+ const resources = resourcesQuery.data?.data ?? [];
35
+ const slots = slotsQuery.data?.data ?? [];
36
+ const bookings = bookingsQuery.data?.data ?? [];
37
+ const resourcesById = new Map(resources.map((resource) => [resource.id, resource]));
38
+ const slotsById = new Map(slots.map((slot) => [slot.id, slot]));
39
+ const bookingsById = new Map(bookings.map((booking) => [booking.id, booking]));
40
+ return (_jsxs("div", { "data-slot": "resource-pool-detail-page", className: cn("flex flex-col gap-6 p-6", className), children: [_jsx(ResourceDetailHeader, { title: pool.name, deleteConfirmName: pool.name, deleteConfirmTemplate: page.pool.deleteConfirm, deleteErrorMessage: page.pool.deleteFailed, deleting: deleting, confirmAction: confirmAction, onBack: onBack, onDelete: onDelete ? () => onDelete(pool) : undefined, badges: _jsxs(_Fragment, { children: [_jsx(Badge, { variant: "outline", children: m.common.resourceKindLabels[pool.kind] }), _jsx(Badge, { variant: pool.active ? "default" : "secondary", children: pool.active ? m.common.active : m.common.inactive })] }), actions: pool.productId && onOpenProduct ? (_jsxs(Button, { type: "button", variant: "outline", onClick: () => onOpenProduct(pool.productId), children: [_jsx(Package, { "data-icon": "inline-start", "aria-hidden": "true" }), page.common.openProduct] })) : null }), _jsxs("div", { className: "grid gap-6 md:grid-cols-2", children: [_jsxs(ResourceDetailCard, { title: page.pool.detailsTitle, children: [_jsx(ResourceDetailField, { label: page.common.product, children: pool.productId ? labelById(products, pool.productId) : page.common.noValue }), _jsx(ResourceDetailField, { label: page.pool.sharedCapacity, children: pool.sharedCapacity ?? page.common.noValue }), _jsx(ResourceDetailField, { label: page.common.created, children: i18n.formatDateTime(pool.createdAt) }), _jsx(ResourceDetailField, { label: page.common.updated, children: i18n.formatDateTime(pool.updatedAt) })] }), pool.notes ? (_jsx(ResourceDetailCard, { title: page.common.notes, children: _jsx("p", { className: "whitespace-pre-wrap", children: pool.notes }) })) : null] }), _jsxs(Card, { children: [_jsxs(CardHeader, { className: "flex flex-row items-center gap-2", children: [_jsx(Users, { className: "size-4", "aria-hidden": "true" }), _jsx(CardTitle, { children: page.pool.membersTitle })] }), _jsx(CardContent, { className: "flex flex-col gap-3 text-sm", children: (membersQuery.data?.data.length ?? 0) === 0 ? (_jsx("p", { className: "text-muted-foreground", children: page.pool.membersEmpty })) : (membersQuery.data?.data.map((member) => {
41
+ const resource = resourcesById.get(member.resourceId);
42
+ const body = (_jsxs(_Fragment, { children: [_jsx("div", { className: "font-medium", children: resource?.name ?? member.resourceId }), _jsxs("div", { className: "text-muted-foreground", children: [resource ? m.common.resourceKindLabels[resource.kind] : page.pool.noResource, " · ", resource?.active ? m.common.active : m.common.inactive] })] }));
43
+ return onOpenResource && resource ? (_jsx("button", { type: "button", className: "block w-full rounded-md border p-3 text-left hover:bg-muted/40", onClick: () => onOpenResource(resource.id), children: body }, member.id)) : (_jsx("div", { className: "rounded-md border p-3", children: body }, member.id));
44
+ })) })] }), _jsxs(Card, { children: [_jsxs(CardHeader, { className: "flex flex-row items-center gap-2", children: [_jsx(Package, { className: "size-4", "aria-hidden": "true" }), _jsx(CardTitle, { children: page.pool.allocationsTitle })] }), _jsx(CardContent, { className: "flex flex-col gap-3 text-sm", children: (allocationsQuery.data?.data.length ?? 0) === 0 ? (_jsx("p", { className: "text-muted-foreground", children: page.pool.allocationsEmpty })) : (allocationsQuery.data?.data.map((allocation) => (_jsx(PoolAllocationSummary, { allocation: allocation, onOpenAllocation: onOpenAllocation }, allocation.id)))) })] }), _jsxs(Card, { children: [_jsxs(CardHeader, { className: "flex flex-row items-center gap-2", children: [_jsx(Wrench, { className: "size-4", "aria-hidden": "true" }), _jsx(CardTitle, { children: page.pool.liveAssignmentsTitle })] }), _jsx(CardContent, { className: "flex flex-col gap-3 text-sm", children: (assignmentsQuery.data?.data.length ?? 0) === 0 ? (_jsx("p", { className: "text-muted-foreground", children: page.pool.liveAssignmentsEmpty })) : (assignmentsQuery.data?.data.map((assignment) => (_jsx(ResourceAssignmentSummary, { assignment: assignment, bookingLabel: bookingsById.get(assignment.bookingId ?? "")?.bookingNumber ??
45
+ assignment.bookingId ??
46
+ page.common.noBooking, noValue: page.common.noValue, slotLabel: slotsById.get(assignment.slotId)
47
+ ? formatResourceSlotLabel(slotsById.get(assignment.slotId), {
48
+ template: m.common.slotLabel,
49
+ formatDate: i18n.formatDate,
50
+ })
51
+ : assignment.slotId, onOpenAssignment: onOpenAssignment }, assignment.id)))) })] })] }));
52
+ }
53
+ export function ResourcePoolDetailSkeleton() {
54
+ return _jsx(BaseResourceDetailSkeleton, { actionCount: 2, detailRows: 4, stackedCards: 3 });
55
+ }
56
+ export function PoolAllocationSummary({ allocation, onOpenAllocation, }) {
57
+ const i18n = useResourcesUiI18nOrDefault();
58
+ const m = i18n.messages;
59
+ const page = m.detailPages;
60
+ const content = (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsx(Badge, { variant: "outline", children: m.common.allocationModeLabels[allocation.allocationMode] }), _jsxs("span", { children: [page.common.quantity, " ", i18n.formatNumber(allocation.quantityRequired)] })] }), _jsxs("div", { className: "mt-2 text-muted-foreground", children: [page.common.product, ": ", allocation.productId] }), _jsxs("div", { className: "text-muted-foreground", children: [page.allocation.rule, ": ", allocation.availabilityRuleId ?? page.common.noRule, " · ", page.allocation.startTime, ": ", allocation.startTimeId ?? page.common.noStartTime, " · ", page.allocation.priority, ": ", i18n.formatNumber(allocation.priority)] })] }));
61
+ if (!onOpenAllocation) {
62
+ return _jsx("div", { className: "rounded-md border p-3", children: content });
63
+ }
64
+ return (_jsx("button", { type: "button", className: "block w-full rounded-md border p-3 text-left hover:bg-muted/40", onClick: () => onOpenAllocation(allocation.id), children: content }));
65
+ }
@@ -0,0 +1,55 @@
1
+ import { type ResourceAllocationRow, type ResourceCloseoutRow, type ResourcePoolRow, type ResourceRow, type ResourceSlotAssignmentRow } from "@voyantjs/resources-react";
2
+ import type { ReactNode } from "react";
3
+ export type ResourcesPageTab = "resources" | "pools" | "allocations" | "assignments" | "closeouts";
4
+ export type ResourcesPageActiveFilter = "all" | "active" | "inactive";
5
+ export type ResourcesPageBulkUpdateArgs = {
6
+ ids: string[];
7
+ endpoint: string;
8
+ target: string;
9
+ nounSingular: string;
10
+ nounPlural: string;
11
+ payload: Record<string, unknown>;
12
+ successVerb: string;
13
+ clearSelection: () => void;
14
+ };
15
+ export type ResourcesPageBulkDeleteArgs = {
16
+ ids: string[];
17
+ endpoint: string;
18
+ target: string;
19
+ nounSingular: string;
20
+ nounPlural: string;
21
+ clearSelection: () => void;
22
+ };
23
+ export type ResourcesPageBulkUpdateHandler = (args: ResourcesPageBulkUpdateArgs) => Promise<void>;
24
+ export type ResourcesPageBulkDeleteHandler = (args: ResourcesPageBulkDeleteArgs) => Promise<void>;
25
+ export interface ResourcesPageSlots {
26
+ headerEnd?: ReactNode;
27
+ beforeTabs?: ReactNode;
28
+ afterOverview?: ReactNode;
29
+ afterTabs?: ReactNode;
30
+ dialogs?: ReactNode;
31
+ }
32
+ export interface ResourcesPageProps {
33
+ className?: string;
34
+ defaultTab?: ResourcesPageTab;
35
+ bulkActionTarget?: string | null;
36
+ onBulkUpdate: ResourcesPageBulkUpdateHandler;
37
+ onBulkDelete: ResourcesPageBulkDeleteHandler;
38
+ onResourceCreate?: () => void;
39
+ onResourceOpen?: (resourceId: string) => void;
40
+ onResourceEdit?: (resource: ResourceRow) => void;
41
+ onPoolCreate?: () => void;
42
+ onPoolOpen?: (poolId: string) => void;
43
+ onPoolEdit?: (pool: ResourcePoolRow) => void;
44
+ onAllocationCreate?: () => void;
45
+ onAllocationOpen?: (allocationId: string) => void;
46
+ onAllocationEdit?: (allocation: ResourceAllocationRow) => void;
47
+ onAssignmentCreate?: () => void;
48
+ onAssignmentOpen?: (assignmentId: string) => void;
49
+ onAssignmentEdit?: (assignment: ResourceSlotAssignmentRow) => void;
50
+ onCloseoutCreate?: () => void;
51
+ onCloseoutEdit?: (closeout: ResourceCloseoutRow) => void;
52
+ slots?: ResourcesPageSlots;
53
+ }
54
+ export declare function ResourcesPage({ className, defaultTab, bulkActionTarget, onBulkUpdate, onBulkDelete, onResourceCreate, onResourceOpen, onResourceEdit, onPoolCreate, onPoolOpen, onPoolEdit, onAllocationCreate, onAllocationOpen, onAllocationEdit, onAssignmentCreate, onAssignmentOpen, onAssignmentEdit, onCloseoutCreate, onCloseoutEdit, slots, }: ResourcesPageProps): import("react/jsx-runtime").JSX.Element;
55
+ //# sourceMappingURL=resources-page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources-page.d.ts","sourceRoot":"","sources":["../../src/components/resources-page.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,174 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { labelById, useAllocations, useAssignments, useBookings, useCloseouts, usePools, useProducts, useResources, useRules, useSlots, useStartTimes, useSuppliers, } from "@voyantjs/resources-react";
4
+ import { Badge, Button, cn, Input, Label } from "@voyantjs/ui/components";
5
+ import { AsyncCombobox } from "@voyantjs/ui/components/async-combobox";
6
+ import { Popover, PopoverContent, PopoverTrigger } from "@voyantjs/ui/components/popover";
7
+ import { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue, } from "@voyantjs/ui/components/select";
8
+ import { Tabs, TabsList, TabsTrigger } from "@voyantjs/ui/components/tabs";
9
+ import { ListFilter, Search, X } from "lucide-react";
10
+ import { useMemo, useState } from "react";
11
+ import { useResourcesUiI18nOrDefault } from "../i18n/index.js";
12
+ import { formatResourceSlotLabel, RESOURCE_KIND_VALUES } from "../i18n/utils.js";
13
+ import { ResourcesOverview } from "./resources-overview.js";
14
+ import { AllocationsTab, PoolsTab, ResourcesTab } from "./resources-tabs-primary.js";
15
+ import { AssignmentsTab, CloseoutsTab } from "./resources-tabs-secondary.js";
16
+ const ASSIGNMENT_STATUSES = ["reserved", "assigned", "released", "completed", "cancelled"];
17
+ const noop = () => undefined;
18
+ const noopId = (_id) => undefined;
19
+ const noopRow = (_row) => undefined;
20
+ export function ResourcesPage({ className, defaultTab = "resources", bulkActionTarget = null, onBulkUpdate, onBulkDelete, onResourceCreate = noop, onResourceOpen = noopId, onResourceEdit = noopRow, onPoolCreate = noop, onPoolOpen = noopId, onPoolEdit = noopRow, onAllocationCreate = noop, onAllocationOpen = noopId, onAllocationEdit = noopRow, onAssignmentCreate = noop, onAssignmentOpen = noopId, onAssignmentEdit = noopRow, onCloseoutCreate = noop, onCloseoutEdit = noopRow, slots, }) {
21
+ const i18n = useResourcesUiI18nOrDefault();
22
+ const m = i18n.messages;
23
+ const page = m.resourcesPage;
24
+ const [search, setSearch] = useState("");
25
+ const [kindFilter, setKindFilter] = useState("all");
26
+ const [activeTab, setActiveTab] = useState(defaultTab);
27
+ const [filterPopoverOpen, setFilterPopoverOpen] = useState(false);
28
+ const [supplierFilter, setSupplierFilter] = useState(null);
29
+ const [selectedSupplierOption, setSelectedSupplierOption] = useState(null);
30
+ const [productFilter, setProductFilter] = useState(null);
31
+ const [selectedProductOption, setSelectedProductOption] = useState(null);
32
+ const [activeFilter, setActiveFilter] = useState("all");
33
+ const [assignmentStatusFilter, setAssignmentStatusFilter] = useState("all");
34
+ const [resourceSelection, setResourceSelectionState] = useState({});
35
+ const [poolSelection, setPoolSelectionState] = useState({});
36
+ const [allocationSelection, setAllocationSelectionState] = useState({});
37
+ const [assignmentSelection, setAssignmentSelectionState] = useState({});
38
+ const [closeoutSelection, setCloseoutSelectionState] = useState({});
39
+ const suppliersQuery = useSuppliers();
40
+ const productsQuery = useProducts();
41
+ const bookingsQuery = useBookings();
42
+ const slotsQuery = useSlots();
43
+ const rulesQuery = useRules();
44
+ const startTimesQuery = useStartTimes();
45
+ const resourcesQuery = useResources();
46
+ const poolsQuery = usePools();
47
+ const allocationsQuery = useAllocations();
48
+ const assignmentsQuery = useAssignments();
49
+ const closeoutsQuery = useCloseouts();
50
+ const suppliers = suppliersQuery.data?.data ?? [];
51
+ const products = productsQuery.data?.data ?? [];
52
+ const bookings = bookingsQuery.data?.data ?? [];
53
+ const slotsData = slotsQuery.data?.data ?? [];
54
+ const rules = rulesQuery.data?.data ?? [];
55
+ const startTimes = startTimesQuery.data?.data ?? [];
56
+ const resources = resourcesQuery.data?.data ?? [];
57
+ const pools = poolsQuery.data?.data ?? [];
58
+ const allocations = allocationsQuery.data?.data ?? [];
59
+ const assignments = assignmentsQuery.data?.data ?? [];
60
+ const closeouts = closeoutsQuery.data?.data ?? [];
61
+ const kindOptions = useMemo(() => RESOURCE_KIND_VALUES.map((value) => ({
62
+ value,
63
+ label: m.common.resourceKindLabels[value],
64
+ })), [m.common.resourceKindLabels]);
65
+ const normalizedSearch = search.trim().toLowerCase();
66
+ const matchesSearch = (...values) => !normalizedSearch ||
67
+ values.some((value) => String(value ?? "")
68
+ .toLowerCase()
69
+ .includes(normalizedSearch));
70
+ const matchesKind = (kind) => kindFilter === "all" || kind === kindFilter;
71
+ const matchesActive = (active) => activeFilter === "all" ||
72
+ (activeFilter === "active" && active) ||
73
+ (activeFilter === "inactive" && !active);
74
+ const filteredResources = resources.filter((resource) => matchesKind(resource.kind) &&
75
+ matchesActive(resource.active) &&
76
+ (!supplierFilter || resource.supplierId === supplierFilter) &&
77
+ matchesSearch(resource.name, resource.code, resource.kind, labelById(suppliers, resource.supplierId), resource.notes));
78
+ const filteredPools = pools.filter((pool) => matchesKind(pool.kind) &&
79
+ matchesActive(pool.active) &&
80
+ (!productFilter || pool.productId === productFilter) &&
81
+ matchesSearch(pool.name, pool.kind, labelById(products, pool.productId), pool.notes));
82
+ const filteredAllocations = allocations.filter((allocation) => {
83
+ const pool = pools.find((entry) => entry.id === allocation.poolId);
84
+ return ((kindFilter === "all" || pool?.kind === kindFilter) &&
85
+ matchesSearch(labelById(pools, allocation.poolId), labelById(products, allocation.productId), allocation.allocationMode, allocation.priority, allocation.quantityRequired, rules.find((rule) => rule.id === allocation.availabilityRuleId)?.recurrenceRule, startTimes.find((startTime) => startTime.id === allocation.startTimeId)?.label));
86
+ });
87
+ const filteredAssignments = assignments.filter((assignment) => {
88
+ const resource = resources.find((entry) => entry.id === assignment.resourceId);
89
+ return ((kindFilter === "all" || resource?.kind === kindFilter) &&
90
+ (assignmentStatusFilter === "all" || assignment.status === assignmentStatusFilter) &&
91
+ matchesSearch(assignment.status, assignment.assignedBy, assignment.notes, labelById(resources, assignment.resourceId), labelById(bookings, assignment.bookingId), formatResourceSlotLabel(slotsData.find((slot) => slot.id === assignment.slotId) ?? {
92
+ id: assignment.slotId,
93
+ productId: "",
94
+ dateLocal: assignment.slotId,
95
+ startsAt: assignment.slotId,
96
+ }, {
97
+ template: m.common.slotLabel,
98
+ formatDate: i18n.formatDate,
99
+ })));
100
+ });
101
+ const filteredCloseouts = closeouts.filter((closeout) => {
102
+ const resource = resources.find((entry) => entry.id === closeout.resourceId);
103
+ return ((kindFilter === "all" || resource?.kind === kindFilter) &&
104
+ matchesSearch(labelById(resources, closeout.resourceId), closeout.dateLocal, closeout.reason, closeout.createdBy));
105
+ });
106
+ const liveAssignments = filteredAssignments.filter((assignment) => assignment.status === "reserved" || assignment.status === "assigned");
107
+ const resourcesWithoutSupplier = filteredResources.filter((resource) => !resource.supplierId);
108
+ const unassignedReservations = liveAssignments.filter((assignment) => !assignment.resourceId);
109
+ const activeFilterCount = (kindFilter !== "all" ? 1 : 0) +
110
+ (activeFilter !== "all" ? 1 : 0) +
111
+ (supplierFilter !== null ? 1 : 0) +
112
+ (productFilter !== null ? 1 : 0) +
113
+ (assignmentStatusFilter !== "all" ? 1 : 0);
114
+ const hasFilters = search.length > 0 || activeFilterCount > 0;
115
+ const clearAllFilters = () => {
116
+ setSearch("");
117
+ setKindFilter("all");
118
+ setActiveFilter("all");
119
+ setSupplierFilter(null);
120
+ setSelectedSupplierOption(null);
121
+ setProductFilter(null);
122
+ setSelectedProductOption(null);
123
+ setAssignmentStatusFilter("all");
124
+ };
125
+ const queries = [
126
+ suppliersQuery,
127
+ productsQuery,
128
+ bookingsQuery,
129
+ slotsQuery,
130
+ rulesQuery,
131
+ startTimesQuery,
132
+ resourcesQuery,
133
+ poolsQuery,
134
+ allocationsQuery,
135
+ assignmentsQuery,
136
+ closeoutsQuery,
137
+ ];
138
+ const isLoading = queries.some((query) => query.isPending);
139
+ const isError = queries.some((query) => query.isError);
140
+ return (_jsxs("div", { className: cn("flex flex-col gap-6 p-6", className), children: [_jsxs("div", { className: "flex flex-col gap-3 md:flex-row md:items-start md:justify-between", children: [_jsxs("div", { children: [_jsx("h1", { className: "text-2xl font-bold tracking-tight", children: page.title }), _jsx("p", { className: "text-sm text-muted-foreground", children: page.description })] }), slots?.headerEnd] }), _jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsxs("div", { className: "relative min-w-[14rem] flex-1", children: [_jsx(Label, { htmlFor: "resources-search", className: "sr-only", children: page.filters.searchPlaceholder }), _jsx(Search, { className: "pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground", "aria-hidden": "true" }), _jsx(Input, { id: "resources-search", placeholder: page.filters.searchPlaceholder, value: search, onChange: (event) => setSearch(event.target.value), className: "pl-9" })] }), _jsxs(Select, { value: kindFilter, onValueChange: (value) => setKindFilter(value ?? "all"), children: [_jsx(SelectTrigger, { className: "w-44", children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: _jsxs(SelectGroup, { children: [_jsx(SelectItem, { value: "all", children: m.common.allKinds }), kindOptions.map((option) => (_jsx(SelectItem, { value: option.value, children: option.label }, option.value)))] }) })] }), _jsxs(Popover, { open: filterPopoverOpen, onOpenChange: setFilterPopoverOpen, children: [_jsx(PopoverTrigger, { render: _jsxs(Button, { variant: "outline", children: [_jsx(ListFilter, { "data-icon": "inline-start", "aria-hidden": "true" }), page.filters.button, activeFilterCount > 0 ? (_jsx(Badge, { variant: "secondary", className: "ml-1 px-1.5", children: activeFilterCount })) : null] }) }), _jsx(PopoverContent, { align: "end", className: "w-[22rem] p-4", children: _jsx(ResourcesFilterPopover, { activeTab: activeTab, suppliers: suppliers, products: products, supplierFilter: supplierFilter, setSupplierFilter: setSupplierFilter, selectedSupplierOption: selectedSupplierOption, setSelectedSupplierOption: setSelectedSupplierOption, productFilter: productFilter, setProductFilter: setProductFilter, selectedProductOption: selectedProductOption, setSelectedProductOption: setSelectedProductOption, activeFilter: activeFilter, setActiveFilter: setActiveFilter, assignmentStatusFilter: assignmentStatusFilter, setAssignmentStatusFilter: setAssignmentStatusFilter }) })] }), hasFilters ? (_jsxs(Button, { variant: "ghost", size: "sm", onClick: clearAllFilters, children: [_jsx(X, { "data-icon": "inline-start", "aria-hidden": "true" }), page.filters.clear] })) : null] }), isLoading ? (_jsx("div", { className: "rounded-md border p-6 text-sm text-muted-foreground", children: page.loading })) : isError ? (_jsx("div", { className: "rounded-md border p-6 text-sm text-muted-foreground", children: page.loadFailed })) : (_jsxs(_Fragment, { children: [_jsx(ResourcesOverview, { bookings: bookings, slots: slotsData, closeouts: closeouts, filteredResources: filteredResources, filteredPools: filteredPools, liveAssignments: liveAssignments, resourcesWithoutSupplier: resourcesWithoutSupplier, unassignedReservations: unassignedReservations, search: search, setSearch: setSearch, kindFilter: kindFilter, setKindFilter: setKindFilter, hasFilters: hasFilters, onClearFilters: clearAllFilters, onOpenAssignment: onAssignmentOpen, onOpenResource: onResourceOpen, showFilters: false }), slots?.afterOverview, slots?.beforeTabs, _jsxs(Tabs, { value: activeTab, onValueChange: (value) => setActiveTab((value ?? "resources")), children: [_jsxs(TabsList, { className: "flex w-full justify-start overflow-x-auto", children: [_jsx(TabsTrigger, { value: "resources", children: page.tabs.resources }), _jsx(TabsTrigger, { value: "pools", children: page.tabs.pools }), _jsx(TabsTrigger, { value: "allocations", children: page.tabs.allocations }), _jsx(TabsTrigger, { value: "assignments", children: page.tabs.assignments }), _jsx(TabsTrigger, { value: "closeouts", children: page.tabs.closeouts })] }), _jsx(ResourcesTab, { suppliers: suppliers, filteredResources: filteredResources, resourceSelection: resourceSelection, setResourceSelection: setResourceSelectionState, bulkActionTarget: bulkActionTarget, handleBulkUpdate: onBulkUpdate, handleBulkDelete: onBulkDelete, onCreate: onResourceCreate, onOpenRoute: onResourceOpen, onEdit: (row) => onResourceEdit(row) }), _jsx(PoolsTab, { products: products, filteredPools: filteredPools, poolSelection: poolSelection, setPoolSelection: setPoolSelectionState, bulkActionTarget: bulkActionTarget, handleBulkUpdate: onBulkUpdate, handleBulkDelete: onBulkDelete, onCreate: onPoolCreate, onOpenRoute: onPoolOpen, onEdit: (row) => onPoolEdit(row) }), _jsx(AllocationsTab, { pools: pools, products: products, filteredAllocations: filteredAllocations, allocationSelection: allocationSelection, setAllocationSelection: setAllocationSelectionState, bulkActionTarget: bulkActionTarget, handleBulkDelete: onBulkDelete, onCreate: onAllocationCreate, onOpenRoute: onAllocationOpen, onEdit: (row) => onAllocationEdit(row) }), _jsx(AssignmentsTab, { slots: slotsData, resources: resources, bookings: bookings, filteredAssignments: filteredAssignments, assignmentSelection: assignmentSelection, setAssignmentSelection: setAssignmentSelectionState, bulkActionTarget: bulkActionTarget, handleBulkUpdate: onBulkUpdate, handleBulkDelete: onBulkDelete, onCreate: onAssignmentCreate, onOpenRoute: onAssignmentOpen, onEdit: (row) => onAssignmentEdit(row) }), _jsx(CloseoutsTab, { resources: resources, filteredCloseouts: filteredCloseouts, closeoutSelection: closeoutSelection, setCloseoutSelection: setCloseoutSelectionState, bulkActionTarget: bulkActionTarget, handleBulkDelete: onBulkDelete, onCreate: onCloseoutCreate, onEdit: (row) => onCloseoutEdit(row) })] }), slots?.afterTabs] })), slots?.dialogs] }));
141
+ }
142
+ function ResourcesFilterPopover({ activeTab, suppliers, products, supplierFilter, setSupplierFilter, selectedSupplierOption, setSelectedSupplierOption, productFilter, setProductFilter, selectedProductOption, setSelectedProductOption, activeFilter, setActiveFilter, assignmentStatusFilter, setAssignmentStatusFilter, }) {
143
+ const { messages } = useResourcesUiI18nOrDefault();
144
+ const page = messages.resourcesPage;
145
+ const activeStatusSelect = (_jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "resources-filter-active", children: page.filters.activeLabel }), _jsxs(Select, { value: activeFilter, onValueChange: (value) => setActiveFilter((value ?? "all")), children: [_jsx(SelectTrigger, { id: "resources-filter-active", className: "w-full", children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: _jsxs(SelectGroup, { children: [_jsx(SelectItem, { value: "all", children: page.filters.activeAll }), _jsx(SelectItem, { value: "active", children: page.filters.activeOnly }), _jsx(SelectItem, { value: "inactive", children: page.filters.inactiveOnly })] }) })] })] }));
146
+ if (activeTab === "resources") {
147
+ return (_jsxs("div", { className: "flex flex-col gap-4", children: [_jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { children: page.filters.supplierLabel }), _jsx(AsyncCombobox, { value: supplierFilter, onChange: (value) => {
148
+ setSupplierFilter(value);
149
+ if (!value)
150
+ setSelectedSupplierOption(null);
151
+ else {
152
+ const match = suppliers.find((supplier) => supplier.id === value);
153
+ if (match)
154
+ setSelectedSupplierOption(match);
155
+ }
156
+ }, items: suppliers, selectedItem: selectedSupplierOption, getKey: (supplier) => supplier.id, getLabel: (supplier) => supplier.name, placeholder: page.filters.supplierAny, emptyText: page.filters.supplierEmpty, triggerClassName: "w-full" })] }), activeStatusSelect] }));
157
+ }
158
+ if (activeTab === "pools") {
159
+ return (_jsxs("div", { className: "flex flex-col gap-4", children: [_jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { children: page.filters.productLabel }), _jsx(AsyncCombobox, { value: productFilter, onChange: (value) => {
160
+ setProductFilter(value);
161
+ if (!value)
162
+ setSelectedProductOption(null);
163
+ else {
164
+ const match = products.find((product) => product.id === value);
165
+ if (match)
166
+ setSelectedProductOption(match);
167
+ }
168
+ }, items: products, selectedItem: selectedProductOption, getKey: (product) => product.id, getLabel: (product) => product.name, placeholder: page.filters.productAny, emptyText: page.filters.productEmpty, triggerClassName: "w-full" })] }), activeStatusSelect] }));
169
+ }
170
+ if (activeTab === "assignments") {
171
+ return (_jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "resources-filter-status", children: page.filters.assignmentStatusLabel }), _jsxs(Select, { value: assignmentStatusFilter, onValueChange: (value) => setAssignmentStatusFilter(value ?? "all"), children: [_jsx(SelectTrigger, { id: "resources-filter-status", className: "w-full", children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: _jsxs(SelectGroup, { children: [_jsx(SelectItem, { value: "all", children: page.filters.assignmentStatusAll }), ASSIGNMENT_STATUSES.map((status) => (_jsx(SelectItem, { value: status, children: messages.common.assignmentStatusLabels[status] }, status)))] }) })] })] }));
172
+ }
173
+ return _jsx("p", { className: "text-sm text-muted-foreground", children: page.filters.noAdditionalFilters });
174
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAExD,eAAO,MAAM,aAAa,EAAE,mBAkQ3B,CAAA"}
1
+ {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAExD,eAAO,MAAM,aAAa,EAAE,mBAqX3B,CAAA"}
package/dist/i18n/en.js CHANGED
@@ -39,6 +39,37 @@ export const resourcesUiEn = {
39
39
  closeout: { singular: "closeout", plural: "closeouts" },
40
40
  },
41
41
  },
42
+ resourcesPage: {
43
+ title: "Resources",
44
+ description: "Manage assignable assets, pools, allocation rules, bookings coverage, and closeouts.",
45
+ loading: "Loading resources...",
46
+ loadFailed: "Resources could not be loaded.",
47
+ filters: {
48
+ searchPlaceholder: "Search resources...",
49
+ button: "Filters",
50
+ clear: "Clear filters",
51
+ activeLabel: "Active status",
52
+ activeAll: "Any status",
53
+ activeOnly: "Active only",
54
+ inactiveOnly: "Inactive only",
55
+ supplierLabel: "Supplier",
56
+ supplierAny: "Any supplier",
57
+ supplierEmpty: "No suppliers found.",
58
+ productLabel: "Product",
59
+ productAny: "Any product",
60
+ productEmpty: "No products found.",
61
+ assignmentStatusLabel: "Assignment status",
62
+ assignmentStatusAll: "Any status",
63
+ noAdditionalFilters: "No additional filters for this tab.",
64
+ },
65
+ tabs: {
66
+ resources: "Resources",
67
+ pools: "Pools",
68
+ allocations: "Allocations",
69
+ assignments: "Assignments",
70
+ closeouts: "Closeouts",
71
+ },
72
+ },
42
73
  overview: {
43
74
  metrics: {
44
75
  activeResources: {
@@ -246,4 +277,87 @@ export const resourcesUiEn = {
246
277
  },
247
278
  },
248
279
  },
280
+ detailPages: {
281
+ common: {
282
+ backToResources: "Back to resources",
283
+ booking: "Booking",
284
+ capacity: "Capacity",
285
+ code: "Code",
286
+ created: "Created",
287
+ delete: "Delete",
288
+ noBooking: "No booking",
289
+ noPool: "No pool",
290
+ noResource: "No resource",
291
+ noRule: "No rule",
292
+ noStartTime: "No start time",
293
+ noValue: "-",
294
+ notes: "Notes",
295
+ openPool: "Open Pool",
296
+ openProduct: "Open Product",
297
+ openResource: "Open Resource",
298
+ openSlot: "Open Slot",
299
+ openSupplier: "Open Supplier",
300
+ pool: "Pool",
301
+ product: "Product",
302
+ quantity: "Qty",
303
+ resource: "Resource",
304
+ slot: "Slot",
305
+ supplier: "Supplier",
306
+ to: "to",
307
+ updated: "Updated",
308
+ },
309
+ resource: {
310
+ assignmentsEmpty: "No assignments have been recorded for this resource.",
311
+ assignmentsTitle: "Assignments",
312
+ assignedBy: "Assigned By",
313
+ closeoutsEmpty: "No closeouts block this resource.",
314
+ closeoutsTitle: "Closeouts",
315
+ createdBy: "Created By",
316
+ deleteConfirm: "Delete resource {name}?",
317
+ deleteFailed: "Resource could not be deleted.",
318
+ detailsTitle: "Resource Details",
319
+ loadFailed: "Resource could not be loaded.",
320
+ noSupplierAssigned: "No supplier assigned",
321
+ notFound: "Resource not found.",
322
+ poolMembershipsEmpty: "This resource is not assigned to any pool.",
323
+ poolMembershipsTitle: "Pool Memberships",
324
+ released: "Released",
325
+ },
326
+ pool: {
327
+ allocationsEmpty: "No allocation rules target this pool.",
328
+ allocationsTitle: "Allocations",
329
+ deleteConfirm: "Delete pool {name}?",
330
+ deleteFailed: "Pool could not be deleted.",
331
+ detailsTitle: "Pool Details",
332
+ liveAssignmentsEmpty: "No assignments are currently using this pool.",
333
+ liveAssignmentsTitle: "Live Assignments",
334
+ loadFailed: "Pool could not be loaded.",
335
+ membersEmpty: "No resources are assigned to this pool.",
336
+ membersTitle: "Members",
337
+ noResource: "Resource unavailable",
338
+ notFound: "Resource pool not found.",
339
+ sharedCapacity: "Shared Capacity",
340
+ },
341
+ allocation: {
342
+ deleteConfirm: "Delete allocation {name}?",
343
+ deleteFailed: "Allocation could not be deleted.",
344
+ detailsTitle: "Allocation Details",
345
+ loadFailed: "Allocation could not be loaded.",
346
+ notFound: "Resource allocation not found.",
347
+ pageTitle: "Resource Allocation",
348
+ priority: "Priority",
349
+ rule: "Rule",
350
+ startTime: "Start Time",
351
+ },
352
+ assignment: {
353
+ assignedBy: "Assigned By",
354
+ deleteConfirm: "Delete assignment {name}?",
355
+ deleteFailed: "Assignment could not be deleted.",
356
+ detailsTitle: "Assignment Details",
357
+ loadFailed: "Assignment could not be loaded.",
358
+ notFound: "Resource assignment not found.",
359
+ pageTitle: "Slot Assignment",
360
+ released: "Released",
361
+ },
362
+ },
249
363
  };
@@ -38,6 +38,37 @@ export type ResourcesUiMessages = {
38
38
  closeout: SelectionNoun;
39
39
  };
40
40
  };
41
+ resourcesPage: {
42
+ title: string;
43
+ description: string;
44
+ loading: string;
45
+ loadFailed: string;
46
+ filters: {
47
+ searchPlaceholder: string;
48
+ button: string;
49
+ clear: string;
50
+ activeLabel: string;
51
+ activeAll: string;
52
+ activeOnly: string;
53
+ inactiveOnly: string;
54
+ supplierLabel: string;
55
+ supplierAny: string;
56
+ supplierEmpty: string;
57
+ productLabel: string;
58
+ productAny: string;
59
+ productEmpty: string;
60
+ assignmentStatusLabel: string;
61
+ assignmentStatusAll: string;
62
+ noAdditionalFilters: string;
63
+ };
64
+ tabs: {
65
+ resources: string;
66
+ pools: string;
67
+ allocations: string;
68
+ assignments: string;
69
+ closeouts: string;
70
+ };
71
+ };
41
72
  overview: {
42
73
  metrics: {
43
74
  activeResources: {
@@ -179,6 +210,89 @@ export type ResourcesUiMessages = {
179
210
  };
180
211
  };
181
212
  };
213
+ detailPages: {
214
+ common: {
215
+ backToResources: string;
216
+ booking: string;
217
+ capacity: string;
218
+ code: string;
219
+ created: string;
220
+ delete: string;
221
+ noBooking: string;
222
+ noPool: string;
223
+ noResource: string;
224
+ noRule: string;
225
+ noStartTime: string;
226
+ noValue: string;
227
+ notes: string;
228
+ openPool: string;
229
+ openProduct: string;
230
+ openResource: string;
231
+ openSlot: string;
232
+ openSupplier: string;
233
+ pool: string;
234
+ product: string;
235
+ quantity: string;
236
+ resource: string;
237
+ slot: string;
238
+ supplier: string;
239
+ to: string;
240
+ updated: string;
241
+ };
242
+ resource: {
243
+ assignmentsEmpty: string;
244
+ assignmentsTitle: string;
245
+ assignedBy: string;
246
+ closeoutsEmpty: string;
247
+ closeoutsTitle: string;
248
+ createdBy: string;
249
+ deleteConfirm: string;
250
+ deleteFailed: string;
251
+ detailsTitle: string;
252
+ loadFailed: string;
253
+ noSupplierAssigned: string;
254
+ notFound: string;
255
+ poolMembershipsEmpty: string;
256
+ poolMembershipsTitle: string;
257
+ released: string;
258
+ };
259
+ pool: {
260
+ allocationsEmpty: string;
261
+ allocationsTitle: string;
262
+ deleteConfirm: string;
263
+ deleteFailed: string;
264
+ detailsTitle: string;
265
+ liveAssignmentsEmpty: string;
266
+ liveAssignmentsTitle: string;
267
+ loadFailed: string;
268
+ membersEmpty: string;
269
+ membersTitle: string;
270
+ noResource: string;
271
+ notFound: string;
272
+ sharedCapacity: string;
273
+ };
274
+ allocation: {
275
+ deleteConfirm: string;
276
+ deleteFailed: string;
277
+ detailsTitle: string;
278
+ loadFailed: string;
279
+ notFound: string;
280
+ pageTitle: string;
281
+ priority: string;
282
+ rule: string;
283
+ startTime: string;
284
+ };
285
+ assignment: {
286
+ assignedBy: string;
287
+ deleteConfirm: string;
288
+ deleteFailed: string;
289
+ detailsTitle: string;
290
+ loadFailed: string;
291
+ notFound: string;
292
+ pageTitle: string;
293
+ released: string;
294
+ };
295
+ };
182
296
  };
183
297
  export {};
184
298
  //# sourceMappingURL=messages.d.ts.map
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ro.d.ts","sourceRoot":"","sources":["../../src/i18n/ro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAExD,eAAO,MAAM,aAAa,EAAE,mBAmQ3B,CAAA"}
1
+ {"version":3,"file":"ro.d.ts","sourceRoot":"","sources":["../../src/i18n/ro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAExD,eAAO,MAAM,aAAa,EAAE,mBAsX3B,CAAA"}