@voyant-travel/operations-react 0.19.1 → 0.19.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/availability/components/availability-rule-detail-page.d.ts +5 -5
- package/dist/availability/components/availability-slot-detail-page.d.ts +5 -5
- package/dist/availability/components/availability-start-time-detail-page.d.ts +5 -5
- package/dist/availability/hooks/use-availability-batch-mutations.d.ts +2 -2
- package/dist/availability/hooks/use-availability-overview.d.ts +1 -1
- package/dist/availability/hooks/use-availability-slot-mutation.d.ts +3 -3
- package/dist/availability/hooks/use-slots.d.ts +1 -1
- package/dist/availability/query-options.d.ts +12 -12
- package/dist/availability/schemas.d.ts +6 -6
- package/dist/places/hooks/use-facilities.d.ts +1 -1
- package/dist/places/hooks/use-facility-feature-mutation.d.ts +2 -2
- package/dist/places/hooks/use-facility-features.d.ts +1 -1
- package/dist/places/hooks/use-facility-mutation.d.ts +4 -4
- package/dist/places/hooks/use-facility.d.ts +1 -1
- package/dist/places/hooks/use-property-group-mutation.d.ts +6 -6
- package/dist/places/hooks/use-property-group.d.ts +2 -2
- package/dist/places/hooks/use-property-groups.d.ts +2 -2
- package/dist/places/query-options.d.ts +32 -32
- package/dist/resources/admin/detail-hosts.d.ts.map +1 -1
- package/dist/resources/admin/detail-hosts.js +97 -22
- package/dist/resources/admin/resources-dialogs-ops.d.ts +3 -2
- package/dist/resources/admin/resources-dialogs-ops.d.ts.map +1 -1
- package/dist/resources/admin/resources-dialogs-ops.js +10 -2
- package/dist/resources/admin/resources-dialogs.d.ts.map +1 -1
- package/dist/resources/admin/resources-dialogs.js +1 -1
- package/dist/resources/components/resource-allocation-detail-page.d.ts +2 -1
- package/dist/resources/components/resource-allocation-detail-page.d.ts.map +1 -1
- package/dist/resources/components/resource-allocation-detail-page.js +2 -2
- package/dist/resources/components/resource-assignment-detail-page.d.ts +2 -1
- package/dist/resources/components/resource-assignment-detail-page.d.ts.map +1 -1
- package/dist/resources/components/resource-assignment-detail-page.js +3 -2
- package/dist/resources/components/resource-detail-page.d.ts +2 -1
- package/dist/resources/components/resource-detail-page.d.ts.map +1 -1
- package/dist/resources/components/resource-detail-page.js +6 -3
- package/dist/resources/components/resource-detail-shared.d.ts +2 -1
- package/dist/resources/components/resource-detail-shared.d.ts.map +1 -1
- package/dist/resources/components/resource-detail-shared.js +3 -3
- package/dist/resources/components/resource-pool-detail-page.d.ts +5 -1
- package/dist/resources/components/resource-pool-detail-page.d.ts.map +1 -1
- package/dist/resources/components/resource-pool-detail-page.js +38 -8
- package/dist/resources/components/resources-overview.d.ts +3 -2
- package/dist/resources/components/resources-overview.d.ts.map +1 -1
- package/dist/resources/components/resources-overview.js +2 -1
- package/dist/resources/components/resources-page.d.ts.map +1 -1
- package/dist/resources/components/resources-page.js +45 -9
- package/dist/resources/components/resources-tabs-primary.d.ts.map +1 -1
- package/dist/resources/components/resources-tabs-primary.js +28 -19
- package/dist/resources/components/resources-tabs-secondary.d.ts +2 -1
- package/dist/resources/components/resources-tabs-secondary.d.ts.map +1 -1
- package/dist/resources/components/resources-tabs-secondary.js +22 -9
- package/dist/resources/hooks/use-pool.d.ts +1 -1
- package/dist/resources/hooks/use-pools.d.ts +1 -1
- package/dist/resources/hooks/use-resource.d.ts +1 -1
- package/dist/resources/hooks/use-resources.d.ts +1 -1
- package/dist/resources/i18n/en.d.ts.map +1 -1
- package/dist/resources/i18n/en.js +7 -0
- package/dist/resources/i18n/messages.d.ts +7 -0
- package/dist/resources/i18n/messages.d.ts.map +1 -1
- package/dist/resources/i18n/ro.d.ts.map +1 -1
- package/dist/resources/i18n/ro.js +7 -0
- package/dist/resources/i18n/utils.d.ts +2 -1
- package/dist/resources/i18n/utils.d.ts.map +1 -1
- package/dist/resources/i18n/utils.js +3 -1
- package/dist/resources/query-options.d.ts +16 -16
- package/dist/resources/schemas.d.ts +9 -9
- package/package.json +7 -7
|
@@ -8,7 +8,7 @@ import type { UsePropertyGroupsOptions } from "./hooks/use-property-groups.js";
|
|
|
8
8
|
export declare function getFacilitiesQueryOptions(client: FetchWithValidationOptions, options?: UseFacilitiesOptions): import("@tanstack/react-query").OmitKeyof<import("@tanstack/react-query").UseQueryOptions<{
|
|
9
9
|
data: {
|
|
10
10
|
kind: "property" | "other" | "hotel" | "resort" | "camp" | "lodge" | "venue" | "meeting_point" | "transfer_hub" | "airport" | "station" | "marina" | "office" | "attraction" | "restaurant";
|
|
11
|
-
status: "active" | "
|
|
11
|
+
status: "active" | "inactive" | "archived";
|
|
12
12
|
name: string;
|
|
13
13
|
id: string;
|
|
14
14
|
parentFacilityId: string | null;
|
|
@@ -33,7 +33,7 @@ export declare function getFacilitiesQueryOptions(client: FetchWithValidationOpt
|
|
|
33
33
|
}, Error, {
|
|
34
34
|
data: {
|
|
35
35
|
kind: "property" | "other" | "hotel" | "resort" | "camp" | "lodge" | "venue" | "meeting_point" | "transfer_hub" | "airport" | "station" | "marina" | "office" | "attraction" | "restaurant";
|
|
36
|
-
status: "active" | "
|
|
36
|
+
status: "active" | "inactive" | "archived";
|
|
37
37
|
name: string;
|
|
38
38
|
id: string;
|
|
39
39
|
parentFacilityId: string | null;
|
|
@@ -59,7 +59,7 @@ export declare function getFacilitiesQueryOptions(client: FetchWithValidationOpt
|
|
|
59
59
|
queryFn?: import("@tanstack/react-query").QueryFunction<{
|
|
60
60
|
data: {
|
|
61
61
|
kind: "property" | "other" | "hotel" | "resort" | "camp" | "lodge" | "venue" | "meeting_point" | "transfer_hub" | "airport" | "station" | "marina" | "office" | "attraction" | "restaurant";
|
|
62
|
-
status: "active" | "
|
|
62
|
+
status: "active" | "inactive" | "archived";
|
|
63
63
|
name: string;
|
|
64
64
|
id: string;
|
|
65
65
|
parentFacilityId: string | null;
|
|
@@ -87,7 +87,7 @@ export declare function getFacilitiesQueryOptions(client: FetchWithValidationOpt
|
|
|
87
87
|
[dataTagSymbol]: {
|
|
88
88
|
data: {
|
|
89
89
|
kind: "property" | "other" | "hotel" | "resort" | "camp" | "lodge" | "venue" | "meeting_point" | "transfer_hub" | "airport" | "station" | "marina" | "office" | "attraction" | "restaurant";
|
|
90
|
-
status: "active" | "
|
|
90
|
+
status: "active" | "inactive" | "archived";
|
|
91
91
|
name: string;
|
|
92
92
|
id: string;
|
|
93
93
|
parentFacilityId: string | null;
|
|
@@ -115,7 +115,7 @@ export declare function getFacilitiesQueryOptions(client: FetchWithValidationOpt
|
|
|
115
115
|
};
|
|
116
116
|
export declare function getFacilityQueryOptions(client: FetchWithValidationOptions, id: string): import("@tanstack/react-query").OmitKeyof<import("@tanstack/react-query").UseQueryOptions<{
|
|
117
117
|
kind: "property" | "other" | "hotel" | "resort" | "camp" | "lodge" | "venue" | "meeting_point" | "transfer_hub" | "airport" | "station" | "marina" | "office" | "attraction" | "restaurant";
|
|
118
|
-
status: "active" | "
|
|
118
|
+
status: "active" | "inactive" | "archived";
|
|
119
119
|
name: string;
|
|
120
120
|
id: string;
|
|
121
121
|
parentFacilityId: string | null;
|
|
@@ -135,7 +135,7 @@ export declare function getFacilityQueryOptions(client: FetchWithValidationOptio
|
|
|
135
135
|
tags: string[];
|
|
136
136
|
}, Error, {
|
|
137
137
|
kind: "property" | "other" | "hotel" | "resort" | "camp" | "lodge" | "venue" | "meeting_point" | "transfer_hub" | "airport" | "station" | "marina" | "office" | "attraction" | "restaurant";
|
|
138
|
-
status: "active" | "
|
|
138
|
+
status: "active" | "inactive" | "archived";
|
|
139
139
|
name: string;
|
|
140
140
|
id: string;
|
|
141
141
|
parentFacilityId: string | null;
|
|
@@ -156,7 +156,7 @@ export declare function getFacilityQueryOptions(client: FetchWithValidationOptio
|
|
|
156
156
|
}, readonly ["facilities", "facilities", string]>, "queryFn"> & {
|
|
157
157
|
queryFn?: import("@tanstack/react-query").QueryFunction<{
|
|
158
158
|
kind: "property" | "other" | "hotel" | "resort" | "camp" | "lodge" | "venue" | "meeting_point" | "transfer_hub" | "airport" | "station" | "marina" | "office" | "attraction" | "restaurant";
|
|
159
|
-
status: "active" | "
|
|
159
|
+
status: "active" | "inactive" | "archived";
|
|
160
160
|
name: string;
|
|
161
161
|
id: string;
|
|
162
162
|
parentFacilityId: string | null;
|
|
@@ -179,7 +179,7 @@ export declare function getFacilityQueryOptions(client: FetchWithValidationOptio
|
|
|
179
179
|
queryKey: readonly ["facilities", "facilities", string] & {
|
|
180
180
|
[dataTagSymbol]: {
|
|
181
181
|
kind: "property" | "other" | "hotel" | "resort" | "camp" | "lodge" | "venue" | "meeting_point" | "transfer_hub" | "airport" | "station" | "marina" | "office" | "attraction" | "restaurant";
|
|
182
|
-
status: "active" | "
|
|
182
|
+
status: "active" | "inactive" | "archived";
|
|
183
183
|
name: string;
|
|
184
184
|
id: string;
|
|
185
185
|
parentFacilityId: string | null;
|
|
@@ -203,7 +203,7 @@ export declare function getFacilityQueryOptions(client: FetchWithValidationOptio
|
|
|
203
203
|
};
|
|
204
204
|
export declare function getFacilityFeaturesQueryOptions(client: FetchWithValidationOptions, options: UseFacilityFeaturesOptions): import("@tanstack/react-query").OmitKeyof<import("@tanstack/react-query").UseQueryOptions<{
|
|
205
205
|
data: {
|
|
206
|
-
category: "security" | "
|
|
206
|
+
category: "security" | "service" | "other" | "accessibility" | "amenity" | "policy";
|
|
207
207
|
name: string;
|
|
208
208
|
highlighted: boolean;
|
|
209
209
|
sortOrder: number;
|
|
@@ -218,7 +218,7 @@ export declare function getFacilityFeaturesQueryOptions(client: FetchWithValidat
|
|
|
218
218
|
offset: number;
|
|
219
219
|
}, Error, {
|
|
220
220
|
data: {
|
|
221
|
-
category: "security" | "
|
|
221
|
+
category: "security" | "service" | "other" | "accessibility" | "amenity" | "policy";
|
|
222
222
|
name: string;
|
|
223
223
|
highlighted: boolean;
|
|
224
224
|
sortOrder: number;
|
|
@@ -234,7 +234,7 @@ export declare function getFacilityFeaturesQueryOptions(client: FetchWithValidat
|
|
|
234
234
|
}, readonly ["facilities", "facility-features", import("./query-keys.js").FacilityFeaturesListFilters]>, "queryFn"> & {
|
|
235
235
|
queryFn?: import("@tanstack/react-query").QueryFunction<{
|
|
236
236
|
data: {
|
|
237
|
-
category: "security" | "
|
|
237
|
+
category: "security" | "service" | "other" | "accessibility" | "amenity" | "policy";
|
|
238
238
|
name: string;
|
|
239
239
|
highlighted: boolean;
|
|
240
240
|
sortOrder: number;
|
|
@@ -252,7 +252,7 @@ export declare function getFacilityFeaturesQueryOptions(client: FetchWithValidat
|
|
|
252
252
|
queryKey: readonly ["facilities", "facility-features", import("./query-keys.js").FacilityFeaturesListFilters] & {
|
|
253
253
|
[dataTagSymbol]: {
|
|
254
254
|
data: {
|
|
255
|
-
category: "security" | "
|
|
255
|
+
category: "security" | "service" | "other" | "accessibility" | "amenity" | "policy";
|
|
256
256
|
name: string;
|
|
257
257
|
highlighted: boolean;
|
|
258
258
|
sortOrder: number;
|
|
@@ -270,7 +270,7 @@ export declare function getFacilityFeaturesQueryOptions(client: FetchWithValidat
|
|
|
270
270
|
};
|
|
271
271
|
};
|
|
272
272
|
export declare function getFacilityFeatureQueryOptions(client: FetchWithValidationOptions, id: string): import("@tanstack/react-query").OmitKeyof<import("@tanstack/react-query").UseQueryOptions<{
|
|
273
|
-
category: "security" | "
|
|
273
|
+
category: "security" | "service" | "other" | "accessibility" | "amenity" | "policy";
|
|
274
274
|
name: string;
|
|
275
275
|
highlighted: boolean;
|
|
276
276
|
sortOrder: number;
|
|
@@ -280,7 +280,7 @@ export declare function getFacilityFeatureQueryOptions(client: FetchWithValidati
|
|
|
280
280
|
description: string | null;
|
|
281
281
|
valueText: string | null;
|
|
282
282
|
}, Error, {
|
|
283
|
-
category: "security" | "
|
|
283
|
+
category: "security" | "service" | "other" | "accessibility" | "amenity" | "policy";
|
|
284
284
|
name: string;
|
|
285
285
|
highlighted: boolean;
|
|
286
286
|
sortOrder: number;
|
|
@@ -291,7 +291,7 @@ export declare function getFacilityFeatureQueryOptions(client: FetchWithValidati
|
|
|
291
291
|
valueText: string | null;
|
|
292
292
|
}, readonly ["facilities", "facility-features", string]>, "queryFn"> & {
|
|
293
293
|
queryFn?: import("@tanstack/react-query").QueryFunction<{
|
|
294
|
-
category: "security" | "
|
|
294
|
+
category: "security" | "service" | "other" | "accessibility" | "amenity" | "policy";
|
|
295
295
|
name: string;
|
|
296
296
|
highlighted: boolean;
|
|
297
297
|
sortOrder: number;
|
|
@@ -304,7 +304,7 @@ export declare function getFacilityFeatureQueryOptions(client: FetchWithValidati
|
|
|
304
304
|
} & {
|
|
305
305
|
queryKey: readonly ["facilities", "facility-features", string] & {
|
|
306
306
|
[dataTagSymbol]: {
|
|
307
|
-
category: "security" | "
|
|
307
|
+
category: "security" | "service" | "other" | "accessibility" | "amenity" | "policy";
|
|
308
308
|
name: string;
|
|
309
309
|
highlighted: boolean;
|
|
310
310
|
sortOrder: number;
|
|
@@ -567,8 +567,8 @@ export declare function getPropertyQueryOptions(client: FetchWithValidationOptio
|
|
|
567
567
|
};
|
|
568
568
|
export declare function getPropertyGroupsQueryOptions(client: FetchWithValidationOptions, options?: UsePropertyGroupsOptions): import("@tanstack/react-query").OmitKeyof<import("@tanstack/react-query").UseQueryOptions<{
|
|
569
569
|
data: {
|
|
570
|
-
groupType: "
|
|
571
|
-
status: "active" | "
|
|
570
|
+
groupType: "other" | "brand" | "chain" | "management_company" | "collection" | "portfolio" | "cluster";
|
|
571
|
+
status: "active" | "inactive" | "archived";
|
|
572
572
|
name: string;
|
|
573
573
|
id: string;
|
|
574
574
|
parentGroupId: string | null;
|
|
@@ -584,8 +584,8 @@ export declare function getPropertyGroupsQueryOptions(client: FetchWithValidatio
|
|
|
584
584
|
offset: number;
|
|
585
585
|
}, Error, {
|
|
586
586
|
data: {
|
|
587
|
-
groupType: "
|
|
588
|
-
status: "active" | "
|
|
587
|
+
groupType: "other" | "brand" | "chain" | "management_company" | "collection" | "portfolio" | "cluster";
|
|
588
|
+
status: "active" | "inactive" | "archived";
|
|
589
589
|
name: string;
|
|
590
590
|
id: string;
|
|
591
591
|
parentGroupId: string | null;
|
|
@@ -602,8 +602,8 @@ export declare function getPropertyGroupsQueryOptions(client: FetchWithValidatio
|
|
|
602
602
|
}, readonly ["facilities", "property-groups", import("./query-keys.js").PropertyGroupsListFilters]>, "queryFn"> & {
|
|
603
603
|
queryFn?: import("@tanstack/react-query").QueryFunction<{
|
|
604
604
|
data: {
|
|
605
|
-
groupType: "
|
|
606
|
-
status: "active" | "
|
|
605
|
+
groupType: "other" | "brand" | "chain" | "management_company" | "collection" | "portfolio" | "cluster";
|
|
606
|
+
status: "active" | "inactive" | "archived";
|
|
607
607
|
name: string;
|
|
608
608
|
id: string;
|
|
609
609
|
parentGroupId: string | null;
|
|
@@ -622,8 +622,8 @@ export declare function getPropertyGroupsQueryOptions(client: FetchWithValidatio
|
|
|
622
622
|
queryKey: readonly ["facilities", "property-groups", import("./query-keys.js").PropertyGroupsListFilters] & {
|
|
623
623
|
[dataTagSymbol]: {
|
|
624
624
|
data: {
|
|
625
|
-
groupType: "
|
|
626
|
-
status: "active" | "
|
|
625
|
+
groupType: "other" | "brand" | "chain" | "management_company" | "collection" | "portfolio" | "cluster";
|
|
626
|
+
status: "active" | "inactive" | "archived";
|
|
627
627
|
name: string;
|
|
628
628
|
id: string;
|
|
629
629
|
parentGroupId: string | null;
|
|
@@ -642,8 +642,8 @@ export declare function getPropertyGroupsQueryOptions(client: FetchWithValidatio
|
|
|
642
642
|
};
|
|
643
643
|
};
|
|
644
644
|
export declare function getPropertyGroupQueryOptions(client: FetchWithValidationOptions, id: string): import("@tanstack/react-query").OmitKeyof<import("@tanstack/react-query").UseQueryOptions<{
|
|
645
|
-
groupType: "
|
|
646
|
-
status: "active" | "
|
|
645
|
+
groupType: "other" | "brand" | "chain" | "management_company" | "collection" | "portfolio" | "cluster";
|
|
646
|
+
status: "active" | "inactive" | "archived";
|
|
647
647
|
name: string;
|
|
648
648
|
id: string;
|
|
649
649
|
parentGroupId: string | null;
|
|
@@ -654,8 +654,8 @@ export declare function getPropertyGroupQueryOptions(client: FetchWithValidation
|
|
|
654
654
|
notes: string | null;
|
|
655
655
|
metadata?: Record<string, unknown> | null | undefined;
|
|
656
656
|
}, Error, {
|
|
657
|
-
groupType: "
|
|
658
|
-
status: "active" | "
|
|
657
|
+
groupType: "other" | "brand" | "chain" | "management_company" | "collection" | "portfolio" | "cluster";
|
|
658
|
+
status: "active" | "inactive" | "archived";
|
|
659
659
|
name: string;
|
|
660
660
|
id: string;
|
|
661
661
|
parentGroupId: string | null;
|
|
@@ -667,8 +667,8 @@ export declare function getPropertyGroupQueryOptions(client: FetchWithValidation
|
|
|
667
667
|
metadata?: Record<string, unknown> | null | undefined;
|
|
668
668
|
}, readonly ["facilities", "property-groups", string]>, "queryFn"> & {
|
|
669
669
|
queryFn?: import("@tanstack/react-query").QueryFunction<{
|
|
670
|
-
groupType: "
|
|
671
|
-
status: "active" | "
|
|
670
|
+
groupType: "other" | "brand" | "chain" | "management_company" | "collection" | "portfolio" | "cluster";
|
|
671
|
+
status: "active" | "inactive" | "archived";
|
|
672
672
|
name: string;
|
|
673
673
|
id: string;
|
|
674
674
|
parentGroupId: string | null;
|
|
@@ -682,8 +682,8 @@ export declare function getPropertyGroupQueryOptions(client: FetchWithValidation
|
|
|
682
682
|
} & {
|
|
683
683
|
queryKey: readonly ["facilities", "property-groups", string] & {
|
|
684
684
|
[dataTagSymbol]: {
|
|
685
|
-
groupType: "
|
|
686
|
-
status: "active" | "
|
|
685
|
+
groupType: "other" | "brand" | "chain" | "management_company" | "collection" | "portfolio" | "cluster";
|
|
686
|
+
status: "active" | "inactive" | "archived";
|
|
687
687
|
name: string;
|
|
688
688
|
id: string;
|
|
689
689
|
parentGroupId: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detail-hosts.d.ts","sourceRoot":"","sources":["../../../src/resources/admin/detail-hosts.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"detail-hosts.d.ts","sourceRoot":"","sources":["../../../src/resources/admin/detail-hosts.tsx"],"names":[],"mappings":"AA+BA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAA;CACX;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,uBAAuB,+BAgDjE;AAED,MAAM,WAAW,2BAA2B;IAC1C,EAAE,EAAE,MAAM,CAAA;CACX;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,EAAE,EAAE,2BAA2B,+BAgEzE;AAED,MAAM,WAAW,iCAAiC;IAChD,EAAE,EAAE,MAAM,CAAA;CACX;AAED,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,EAAE,EAAE,iCAAiC,+BAuDrF;AAED,MAAM,WAAW,iCAAiC;IAChD,EAAE,EAAE,MAAM,CAAA;CACX;AAED,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,EAAE,EAAE,iCAAiC,+BAoDrF"}
|
|
@@ -1,50 +1,125 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useQueryClient } from "@tanstack/react-query";
|
|
4
4
|
import { useAdminNavigate } from "@voyant-travel/admin";
|
|
5
|
+
import { useState } from "react";
|
|
5
6
|
import { ResourceAllocationDetailPage } from "../components/resource-allocation-detail-page.js";
|
|
6
7
|
import { ResourceAssignmentDetailPage } from "../components/resource-assignment-detail-page.js";
|
|
7
8
|
import { ResourceDetailPage } from "../components/resource-detail-page.js";
|
|
8
9
|
import { ResourcePoolDetailPage } from "../components/resource-pool-detail-page.js";
|
|
9
|
-
import { resourcesQueryKeys, useVoyantResourcesContext } from "../index.js";
|
|
10
|
+
import { resourcesQueryKeys, useAllocation, useAssignment, useBookings, usePool, usePools, useProducts, useResource, useResources, useRules, useSlots, useStartTimes, useSuppliers, useVoyantResourcesContext, } from "../index.js";
|
|
10
11
|
import { sendResourcesMutation } from "./resources-admin-api.js";
|
|
12
|
+
import { ResourceAllocationDialog } from "./resources-dialog-allocation.js";
|
|
13
|
+
import { ResourceDialog, ResourcePoolDialog } from "./resources-dialogs-core.js";
|
|
14
|
+
import { ResourceSlotAssignmentDialog } from "./resources-dialogs-ops.js";
|
|
15
|
+
import { resourcesPageQueryFilters } from "./resources-page-data.js";
|
|
11
16
|
export function ResourceDetailHost({ id }) {
|
|
12
17
|
const navigateTo = useAdminNavigate();
|
|
13
18
|
const queryClient = useQueryClient();
|
|
14
19
|
const client = useVoyantResourcesContext();
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
+
const [resourceDialogOpen, setResourceDialogOpen] = useState(false);
|
|
21
|
+
const resource = useResource(id).data;
|
|
22
|
+
const suppliers = useSuppliers(resourcesPageQueryFilters.suppliers).data?.data ?? [];
|
|
23
|
+
const refreshResource = async () => {
|
|
24
|
+
await Promise.all([
|
|
25
|
+
queryClient.invalidateQueries({ queryKey: resourcesQueryKeys.resources() }),
|
|
26
|
+
queryClient.invalidateQueries({ queryKey: resourcesQueryKeys.resource(id) }),
|
|
27
|
+
queryClient.invalidateQueries({ queryKey: resourcesQueryKeys.all }),
|
|
28
|
+
]);
|
|
29
|
+
};
|
|
30
|
+
return (_jsxs(_Fragment, { children: [_jsx(ResourceDetailPage, { id: id, onBack: () => navigateTo("resource.list", {}), onEdit: () => setResourceDialogOpen(true), onOpenSupplier: (supplierId) => navigateTo("supplier.detail", { supplierId }), onOpenAssignment: (assignmentId) => navigateTo("resourceAssignment.detail", { assignmentId }), onDelete: async (resource) => {
|
|
31
|
+
await sendResourcesMutation(client, "DELETE", `/v1/admin/operations/resources/${resource.id}`);
|
|
32
|
+
await refreshResource();
|
|
33
|
+
navigateTo("resource.list", {});
|
|
34
|
+
} }), _jsx(ResourceDialog, { open: resourceDialogOpen, onOpenChange: setResourceDialogOpen, resource: resource, suppliers: suppliers, onSuccess: () => {
|
|
35
|
+
setResourceDialogOpen(false);
|
|
36
|
+
void refreshResource();
|
|
37
|
+
} })] }));
|
|
20
38
|
}
|
|
21
39
|
export function ResourcePoolDetailHost({ id }) {
|
|
22
40
|
const navigateTo = useAdminNavigate();
|
|
23
41
|
const queryClient = useQueryClient();
|
|
24
42
|
const client = useVoyantResourcesContext();
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
43
|
+
const [poolDialogOpen, setPoolDialogOpen] = useState(false);
|
|
44
|
+
const pool = usePool(id).data;
|
|
45
|
+
const products = useProducts(resourcesPageQueryFilters.products).data?.data ?? [];
|
|
46
|
+
const refreshPool = async () => {
|
|
47
|
+
await Promise.all([
|
|
48
|
+
queryClient.invalidateQueries({ queryKey: resourcesQueryKeys.pools() }),
|
|
49
|
+
queryClient.invalidateQueries({ queryKey: resourcesQueryKeys.pool(id) }),
|
|
50
|
+
queryClient.invalidateQueries({ queryKey: resourcesQueryKeys.resources() }),
|
|
51
|
+
queryClient.invalidateQueries({ queryKey: resourcesQueryKeys.all }),
|
|
52
|
+
]);
|
|
53
|
+
};
|
|
54
|
+
return (_jsxs(_Fragment, { children: [_jsx(ResourcePoolDetailPage, { id: id, onBack: () => navigateTo("resource.list", {}), onEdit: () => setPoolDialogOpen(true), onAddMember: async (pool, resourceId) => {
|
|
55
|
+
await sendResourcesMutation(client, "POST", "/v1/admin/operations/pool-members", {
|
|
56
|
+
poolId: pool.id,
|
|
57
|
+
resourceId,
|
|
58
|
+
});
|
|
59
|
+
await refreshPool();
|
|
60
|
+
}, onRemoveMember: async (member) => {
|
|
61
|
+
await sendResourcesMutation(client, "DELETE", `/v1/admin/operations/pool-members/${member.id}`);
|
|
62
|
+
await refreshPool();
|
|
63
|
+
}, onOpenProduct: (productId) => navigateTo("product.detail", { productId }), onOpenResource: (resourceId) => navigateTo("resource.detail", { resourceId }), onOpenAllocation: (allocationId) => navigateTo("resourceAllocation.detail", { allocationId }), onOpenAssignment: (assignmentId) => navigateTo("resourceAssignment.detail", { assignmentId }), onDelete: async (pool) => {
|
|
64
|
+
await sendResourcesMutation(client, "DELETE", `/v1/admin/operations/pools/${pool.id}`);
|
|
65
|
+
await refreshPool();
|
|
66
|
+
navigateTo("resource.list", {});
|
|
67
|
+
} }), _jsx(ResourcePoolDialog, { open: poolDialogOpen, onOpenChange: setPoolDialogOpen, pool: pool, products: products, onSuccess: () => {
|
|
68
|
+
setPoolDialogOpen(false);
|
|
69
|
+
void refreshPool();
|
|
70
|
+
} })] }));
|
|
30
71
|
}
|
|
31
72
|
export function ResourceAssignmentDetailHost({ id }) {
|
|
32
73
|
const navigateTo = useAdminNavigate();
|
|
33
74
|
const queryClient = useQueryClient();
|
|
34
75
|
const client = useVoyantResourcesContext();
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
76
|
+
const [assignmentDialogOpen, setAssignmentDialogOpen] = useState(false);
|
|
77
|
+
const assignment = useAssignment(id).data;
|
|
78
|
+
const slots = useSlots(resourcesPageQueryFilters.slots).data?.data ?? [];
|
|
79
|
+
const pools = usePools(resourcesPageQueryFilters.pools).data?.data ?? [];
|
|
80
|
+
const resources = useResources(resourcesPageQueryFilters.resources).data?.data ?? [];
|
|
81
|
+
const bookings = useBookings(resourcesPageQueryFilters.bookings).data?.data ?? [];
|
|
82
|
+
const products = useProducts(resourcesPageQueryFilters.products).data?.data ?? [];
|
|
83
|
+
const refreshAssignment = async () => {
|
|
84
|
+
await Promise.all([
|
|
85
|
+
queryClient.invalidateQueries({ queryKey: resourcesQueryKeys.assignments() }),
|
|
86
|
+
queryClient.invalidateQueries({ queryKey: resourcesQueryKeys.assignment(id) }),
|
|
87
|
+
queryClient.invalidateQueries({ queryKey: resourcesQueryKeys.resources() }),
|
|
88
|
+
queryClient.invalidateQueries({ queryKey: resourcesQueryKeys.pools() }),
|
|
89
|
+
]);
|
|
90
|
+
};
|
|
91
|
+
return (_jsxs(_Fragment, { children: [_jsx(ResourceAssignmentDetailPage, { id: id, onBack: () => navigateTo("resource.list", {}), onEdit: () => setAssignmentDialogOpen(true), onOpenSlot: (slotId) => navigateTo("availabilitySlot.detail", { slotId }), onOpenResource: (resourceId) => navigateTo("resource.detail", { resourceId }), onDelete: async (assignment) => {
|
|
92
|
+
await sendResourcesMutation(client, "DELETE", `/v1/admin/operations/slot-assignments/${assignment.id}`);
|
|
93
|
+
await refreshAssignment();
|
|
94
|
+
navigateTo("resource.list", {});
|
|
95
|
+
} }), _jsx(ResourceSlotAssignmentDialog, { open: assignmentDialogOpen, onOpenChange: setAssignmentDialogOpen, assignment: assignment, slots: slots, pools: pools, resources: resources, bookings: bookings, products: products, onSuccess: () => {
|
|
96
|
+
setAssignmentDialogOpen(false);
|
|
97
|
+
void refreshAssignment();
|
|
98
|
+
} })] }));
|
|
40
99
|
}
|
|
41
100
|
export function ResourceAllocationDetailHost({ id }) {
|
|
42
101
|
const navigateTo = useAdminNavigate();
|
|
43
102
|
const queryClient = useQueryClient();
|
|
44
103
|
const client = useVoyantResourcesContext();
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
104
|
+
const [allocationDialogOpen, setAllocationDialogOpen] = useState(false);
|
|
105
|
+
const allocation = useAllocation(id).data;
|
|
106
|
+
const pools = usePools(resourcesPageQueryFilters.pools).data?.data ?? [];
|
|
107
|
+
const products = useProducts(resourcesPageQueryFilters.products).data?.data ?? [];
|
|
108
|
+
const rules = useRules(resourcesPageQueryFilters.rules).data?.data ?? [];
|
|
109
|
+
const startTimes = useStartTimes(resourcesPageQueryFilters.startTimes).data?.data ?? [];
|
|
110
|
+
const refreshAllocation = async () => {
|
|
111
|
+
await Promise.all([
|
|
112
|
+
queryClient.invalidateQueries({ queryKey: resourcesQueryKeys.allocations() }),
|
|
113
|
+
queryClient.invalidateQueries({ queryKey: resourcesQueryKeys.allocation(id) }),
|
|
114
|
+
queryClient.invalidateQueries({ queryKey: resourcesQueryKeys.pools() }),
|
|
115
|
+
]);
|
|
116
|
+
};
|
|
117
|
+
return (_jsxs(_Fragment, { children: [_jsx(ResourceAllocationDetailPage, { id: id, onBack: () => navigateTo("resource.list", {}), onEdit: () => setAllocationDialogOpen(true), onOpenPool: (poolId) => navigateTo("resourcePool.detail", { poolId }), onOpenProduct: (productId) => navigateTo("product.detail", { productId }), onDelete: async (allocation) => {
|
|
118
|
+
await sendResourcesMutation(client, "DELETE", `/v1/admin/operations/allocations/${allocation.id}`);
|
|
119
|
+
await refreshAllocation();
|
|
120
|
+
navigateTo("resource.list", {});
|
|
121
|
+
} }), _jsx(ResourceAllocationDialog, { open: allocationDialogOpen, onOpenChange: setAllocationDialogOpen, allocation: allocation, pools: pools, products: products, rules: rules, startTimes: startTimes, onSuccess: () => {
|
|
122
|
+
setAllocationDialogOpen(false);
|
|
123
|
+
void refreshAllocation();
|
|
124
|
+
} })] }));
|
|
50
125
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type BookingOption, type ResourceCloseoutRow, type ResourcePoolRow, type ResourceRow, type ResourceSlotAssignmentRow, type SlotOption } from "../index.js";
|
|
2
|
-
export declare function ResourceSlotAssignmentDialog({ open, onOpenChange, assignment, slots, pools, resources, bookings, onSuccess, }: {
|
|
1
|
+
import { type BookingOption, type ProductOption, type ResourceCloseoutRow, type ResourcePoolRow, type ResourceRow, type ResourceSlotAssignmentRow, type SlotOption } from "../index.js";
|
|
2
|
+
export declare function ResourceSlotAssignmentDialog({ open, onOpenChange, assignment, slots, pools, resources, bookings, products, onSuccess, }: {
|
|
3
3
|
open: boolean;
|
|
4
4
|
onOpenChange: (open: boolean) => void;
|
|
5
5
|
assignment?: ResourceSlotAssignmentRow;
|
|
@@ -7,6 +7,7 @@ export declare function ResourceSlotAssignmentDialog({ open, onOpenChange, assig
|
|
|
7
7
|
pools: ResourcePoolRow[];
|
|
8
8
|
resources: ResourceRow[];
|
|
9
9
|
bookings: BookingOption[];
|
|
10
|
+
products: ProductOption[];
|
|
10
11
|
onSuccess: () => void;
|
|
11
12
|
}): import("react").JSX.Element;
|
|
12
13
|
export declare function ResourceCloseoutDialog({ open, onOpenChange, closeout, resources, onSuccess, }: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources-dialogs-ops.d.ts","sourceRoot":"","sources":["../../../src/resources/admin/resources-dialogs-ops.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resources-dialogs-ops.d.ts","sourceRoot":"","sources":["../../../src/resources/admin/resources-dialogs-ops.tsx"],"names":[],"mappings":"AA6BA,OAAO,EAEL,KAAK,aAAa,EAGlB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,yBAAyB,EAC9B,KAAK,UAAU,EAIhB,MAAM,aAAa,CAAA;AA+BpB,wBAAgB,4BAA4B,CAAC,EAC3C,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,KAAK,EACL,KAAK,EACL,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,GACV,EAAE;IACD,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,UAAU,CAAC,EAAE,yBAAyB,CAAA;IACtC,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,KAAK,EAAE,eAAe,EAAE,CAAA;IACxB,SAAS,EAAE,WAAW,EAAE,CAAA;IACxB,QAAQ,EAAE,aAAa,EAAE,CAAA;IACzB,QAAQ,EAAE,aAAa,EAAE,CAAA;IACzB,SAAS,EAAE,MAAM,IAAI,CAAA;CACtB,+BAqOA;AAuBD,wBAAgB,sBAAsB,CAAC,EACrC,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,SAAS,GACV,EAAE;IACD,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,QAAQ,CAAC,EAAE,mBAAmB,CAAA;IAC9B,SAAS,EAAE,WAAW,EAAE,CAAA;IACxB,SAAS,EAAE,MAAM,IAAI,CAAA;CACtB,+BAiKA"}
|
|
@@ -7,7 +7,9 @@ import { Loader2 } from "lucide-react";
|
|
|
7
7
|
import { useEffect } from "react";
|
|
8
8
|
import { useForm } from "react-hook-form";
|
|
9
9
|
import { z } from "zod/v4";
|
|
10
|
-
import {
|
|
10
|
+
import { useResourcesUiI18nOrDefault } from "../i18n/index.js";
|
|
11
|
+
import { formatResourceSlotLabel } from "../i18n/utils.js";
|
|
12
|
+
import { assignmentStatusOptions, NONE_VALUE, nullableString, toIsoDateTime, toLocalDateTimeInput, useVoyantResourcesContext, } from "../index.js";
|
|
11
13
|
import { sendResourcesMutation } from "./resources-admin-api.js";
|
|
12
14
|
const getAssignmentFormSchema = (messages) => z
|
|
13
15
|
.object({
|
|
@@ -31,10 +33,16 @@ const getAssignmentFormSchema = (messages) => z
|
|
|
31
33
|
ctx.addIssue({ ...issue, path: ["resourceId"] });
|
|
32
34
|
}
|
|
33
35
|
});
|
|
34
|
-
export function ResourceSlotAssignmentDialog({ open, onOpenChange, assignment, slots, pools, resources, bookings, onSuccess, }) {
|
|
36
|
+
export function ResourceSlotAssignmentDialog({ open, onOpenChange, assignment, slots, pools, resources, bookings, products, onSuccess, }) {
|
|
35
37
|
const client = useVoyantResourcesContext();
|
|
36
38
|
const messages = useOperatorAdminMessages();
|
|
39
|
+
const i18n = useResourcesUiI18nOrDefault();
|
|
37
40
|
const dialogMessages = messages.resources.dialogs.assignment;
|
|
41
|
+
const slotLabel = (slot) => formatResourceSlotLabel(slot, {
|
|
42
|
+
template: i18n.messages.common.slotLabel,
|
|
43
|
+
formatDate: i18n.formatDate,
|
|
44
|
+
products,
|
|
45
|
+
});
|
|
38
46
|
const assignmentFormSchema = getAssignmentFormSchema(messages);
|
|
39
47
|
const form = useForm({
|
|
40
48
|
resolver: zodResolver(assignmentFormSchema),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources-dialogs.d.ts","sourceRoot":"","sources":["../../../src/resources/admin/resources-dialogs.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,yBAAyB,EACzB,UAAU,EACV,UAAU,EACV,eAAe,EACf,cAAc,EACf,MAAM,aAAa,CAAA;AAMpB,wBAAgB,gBAAgB,CAAC,EAC/B,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,oBAAoB,EACpB,uBAAuB,EACvB,iBAAiB,EACjB,oBAAoB,EACpB,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,SAAS,EACT,QAAQ,EACR,KAAK,EACL,UAAU,EACV,SAAS,EACT,KAAK,EACL,KAAK,EACL,QAAQ,EACR,UAAU,GACX,EAAE;IACD,kBAAkB,EAAE,OAAO,CAAA;IAC3B,qBAAqB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAC9C,eAAe,EAAE,WAAW,GAAG,SAAS,CAAA;IACxC,cAAc,EAAE,OAAO,CAAA;IACvB,iBAAiB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAC1C,WAAW,EAAE,eAAe,GAAG,SAAS,CAAA;IACxC,oBAAoB,EAAE,OAAO,CAAA;IAC7B,uBAAuB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAChD,iBAAiB,EAAE,qBAAqB,GAAG,SAAS,CAAA;IACpD,oBAAoB,EAAE,OAAO,CAAA;IAC7B,uBAAuB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAChD,iBAAiB,EAAE,yBAAyB,GAAG,SAAS,CAAA;IACxD,kBAAkB,EAAE,OAAO,CAAA;IAC3B,qBAAqB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAC9C,eAAe,EAAE,mBAAmB,GAAG,SAAS,CAAA;IAChD,SAAS,EAAE,cAAc,EAAE,CAAA;IAC3B,QAAQ,EAAE,aAAa,EAAE,CAAA;IACzB,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,UAAU,EAAE,eAAe,EAAE,CAAA;IAC7B,SAAS,EAAE,WAAW,EAAE,CAAA;IACxB,KAAK,EAAE,eAAe,EAAE,CAAA;IACxB,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,QAAQ,EAAE,aAAa,EAAE,CAAA;IACzB,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAChC,+
|
|
1
|
+
{"version":3,"file":"resources-dialogs.d.ts","sourceRoot":"","sources":["../../../src/resources/admin/resources-dialogs.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,yBAAyB,EACzB,UAAU,EACV,UAAU,EACV,eAAe,EACf,cAAc,EACf,MAAM,aAAa,CAAA;AAMpB,wBAAgB,gBAAgB,CAAC,EAC/B,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,oBAAoB,EACpB,uBAAuB,EACvB,iBAAiB,EACjB,oBAAoB,EACpB,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,SAAS,EACT,QAAQ,EACR,KAAK,EACL,UAAU,EACV,SAAS,EACT,KAAK,EACL,KAAK,EACL,QAAQ,EACR,UAAU,GACX,EAAE;IACD,kBAAkB,EAAE,OAAO,CAAA;IAC3B,qBAAqB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAC9C,eAAe,EAAE,WAAW,GAAG,SAAS,CAAA;IACxC,cAAc,EAAE,OAAO,CAAA;IACvB,iBAAiB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAC1C,WAAW,EAAE,eAAe,GAAG,SAAS,CAAA;IACxC,oBAAoB,EAAE,OAAO,CAAA;IAC7B,uBAAuB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAChD,iBAAiB,EAAE,qBAAqB,GAAG,SAAS,CAAA;IACpD,oBAAoB,EAAE,OAAO,CAAA;IAC7B,uBAAuB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAChD,iBAAiB,EAAE,yBAAyB,GAAG,SAAS,CAAA;IACxD,kBAAkB,EAAE,OAAO,CAAA;IAC3B,qBAAqB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAC9C,eAAe,EAAE,mBAAmB,GAAG,SAAS,CAAA;IAChD,SAAS,EAAE,cAAc,EAAE,CAAA;IAC3B,QAAQ,EAAE,aAAa,EAAE,CAAA;IACzB,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,UAAU,EAAE,eAAe,EAAE,CAAA;IAC7B,SAAS,EAAE,WAAW,EAAE,CAAA;IACxB,KAAK,EAAE,eAAe,EAAE,CAAA;IACxB,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,QAAQ,EAAE,aAAa,EAAE,CAAA;IACzB,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAChC,+BA8DA"}
|
|
@@ -13,7 +13,7 @@ export function ResourcesDialogs({ resourceDialogOpen, setResourceDialogOpen, ed
|
|
|
13
13
|
} }), _jsx(ResourceAllocationDialog, { open: allocationDialogOpen, onOpenChange: setAllocationDialogOpen, allocation: editingAllocation, pools: pools, products: products, rules: rules, startTimes: startTimes, onSuccess: () => {
|
|
14
14
|
setAllocationDialogOpen(false);
|
|
15
15
|
void refreshAll();
|
|
16
|
-
} }), _jsx(ResourceSlotAssignmentDialog, { open: assignmentDialogOpen, onOpenChange: setAssignmentDialogOpen, assignment: editingAssignment, slots: slots, pools: pools, resources: resources, bookings: bookings, onSuccess: () => {
|
|
16
|
+
} }), _jsx(ResourceSlotAssignmentDialog, { open: assignmentDialogOpen, onOpenChange: setAssignmentDialogOpen, assignment: editingAssignment, slots: slots, pools: pools, resources: resources, bookings: bookings, products: products, onSuccess: () => {
|
|
17
17
|
setAssignmentDialogOpen(false);
|
|
18
18
|
void refreshAll();
|
|
19
19
|
} }), _jsx(ResourceCloseoutDialog, { open: closeoutDialogOpen, onOpenChange: setCloseoutDialogOpen, closeout: editingCloseout, resources: resources, onSuccess: () => {
|
|
@@ -8,9 +8,10 @@ export interface ResourceAllocationDetailPageProps {
|
|
|
8
8
|
deleting?: boolean;
|
|
9
9
|
onBack?: () => void;
|
|
10
10
|
onDelete?: (allocation: ResourceAllocationDetail) => Promise<void> | void;
|
|
11
|
+
onEdit?: (allocation: ResourceAllocationDetail) => void;
|
|
11
12
|
onOpenPool?: (poolId: string) => void;
|
|
12
13
|
onOpenProduct?: (productId: string) => void;
|
|
13
14
|
confirmAction?: ConfirmAction;
|
|
14
15
|
}
|
|
15
|
-
export declare function ResourceAllocationDetailPage({ className, confirmAction, deleting, id, onBack, onDelete, onOpenPool, onOpenProduct, }: ResourceAllocationDetailPageProps): import("react").JSX.Element;
|
|
16
|
+
export declare function ResourceAllocationDetailPage({ className, confirmAction, deleting, id, onBack, onDelete, onEdit, onOpenPool, onOpenProduct, }: ResourceAllocationDetailPageProps): import("react").JSX.Element;
|
|
16
17
|
//# sourceMappingURL=resource-allocation-detail-page.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-allocation-detail-page.d.ts","sourceRoot":"","sources":["../../../src/resources/components/resource-allocation-detail-page.tsx"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,wBAAwB,EAM9B,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,KAAK,aAAa,EAKnB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,gCAAgC,EAAE,MAAM,gCAAgC,CAAA;AAMjF,OAAO,EAAE,gCAAgC,EAAE,CAAA;AAE3C,MAAM,WAAW,iCAAiC;IAChD,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,wBAAwB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACzE,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3C,aAAa,CAAC,EAAE,aAAa,CAAA;CAC9B;AAED,wBAAgB,4BAA4B,CAAC,EAC3C,SAAS,EACT,aAAa,EACb,QAAQ,EACR,EAAE,EACF,MAAM,EACN,QAAQ,EACR,UAAU,EACV,aAAa,GACd,EAAE,iCAAiC,+
|
|
1
|
+
{"version":3,"file":"resource-allocation-detail-page.d.ts","sourceRoot":"","sources":["../../../src/resources/components/resource-allocation-detail-page.tsx"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,wBAAwB,EAM9B,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,KAAK,aAAa,EAKnB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,gCAAgC,EAAE,MAAM,gCAAgC,CAAA;AAMjF,OAAO,EAAE,gCAAgC,EAAE,CAAA;AAE3C,MAAM,WAAW,iCAAiC;IAChD,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,wBAAwB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACzE,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,wBAAwB,KAAK,IAAI,CAAA;IACvD,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3C,aAAa,CAAC,EAAE,aAAa,CAAA;CAC9B;AAED,wBAAgB,4BAA4B,CAAC,EAC3C,SAAS,EACT,aAAa,EACb,QAAQ,EACR,EAAE,EACF,MAAM,EACN,QAAQ,EACR,MAAM,EACN,UAAU,EACV,aAAa,GACd,EAAE,iCAAiC,+BA4HnC"}
|
|
@@ -11,7 +11,7 @@ import { ResourceAllocationDetailSkeleton } from "./resource-detail-skeletons.js
|
|
|
11
11
|
// `pendingComponent` without pinning this page module into the workspace
|
|
12
12
|
// chrome chunk. Re-exported here for backwards compatibility.
|
|
13
13
|
export { ResourceAllocationDetailSkeleton };
|
|
14
|
-
export function ResourceAllocationDetailPage({ className, confirmAction, deleting, id, onBack, onDelete, onOpenPool, onOpenProduct, }) {
|
|
14
|
+
export function ResourceAllocationDetailPage({ className, confirmAction, deleting, id, onBack, onDelete, onEdit, onOpenPool, onOpenProduct, }) {
|
|
15
15
|
const i18n = useResourcesUiI18nOrDefault();
|
|
16
16
|
const m = i18n.messages;
|
|
17
17
|
const page = m.detailPages;
|
|
@@ -40,7 +40,7 @@ export function ResourceAllocationDetailPage({ className, confirmAction, deletin
|
|
|
40
40
|
}
|
|
41
41
|
const rule = rulesQuery.data?.data.find((entry) => entry.id === allocation.availabilityRuleId);
|
|
42
42
|
const startTime = startTimesQuery.data?.data.find((entry) => entry.id === allocation.startTimeId);
|
|
43
|
-
return (_jsxs("div", { "data-slot": "resource-allocation-detail-page", className: cn("flex flex-col gap-6 p-6", className), children: [_jsx(ResourceDetailHeader, { title: page.allocation.pageTitle, deleteConfirmName: allocation.id, deleteConfirmTemplate: page.allocation.deleteConfirm, deleteErrorMessage: page.allocation.deleteFailed, deleting: deleting, confirmAction: confirmAction, onBack: onBack, onDelete: onDelete ? () => onDelete(allocation) : undefined, badges: _jsxs(_Fragment, { children: [_jsx(Badge, { variant: "outline", children: m.common.allocationModeLabels[allocation.allocationMode] }), _jsxs(Badge, { variant: "secondary", children: [page.common.quantity, " ", i18n.formatNumber(allocation.quantityRequired)] })] }), actions: _jsxs(_Fragment, { children: [onOpenPool ? (_jsxs(Button, { type: "button", variant: "outline", onClick: () => onOpenPool(allocation.poolId), children: [_jsx(Wrench, { "data-icon": "inline-start", "aria-hidden": "true" }), page.common.openPool] })) : null, onOpenProduct ? (_jsxs(Button, { type: "button", variant: "outline", onClick: () => onOpenProduct(allocation.productId), children: [_jsx(Package, { "data-icon": "inline-start", "aria-hidden": "true" }), page.common.openProduct] })) : null] }) }), _jsx(ResourceDetailCard, { title: page.allocation.detailsTitle, children: _jsxs("div", { className: "grid gap-3 md:grid-cols-2", children: [_jsx(ResourceDetailField, { label: page.common.pool, children: poolQuery.data?.name ?? allocation.poolId }), _jsx(ResourceDetailField, { label: page.common.product, children: labelById(productsQuery.data?.data ?? [], allocation.productId) ||
|
|
43
|
+
return (_jsxs("div", { "data-slot": "resource-allocation-detail-page", className: cn("flex flex-col gap-6 p-6", className), children: [_jsx(ResourceDetailHeader, { title: page.allocation.pageTitle, deleteConfirmName: allocation.id, deleteConfirmTemplate: page.allocation.deleteConfirm, deleteErrorMessage: page.allocation.deleteFailed, deleting: deleting, confirmAction: confirmAction, onBack: onBack, onDelete: onDelete ? () => onDelete(allocation) : undefined, onEdit: onEdit ? () => onEdit(allocation) : undefined, badges: _jsxs(_Fragment, { children: [_jsx(Badge, { variant: "outline", children: m.common.allocationModeLabels[allocation.allocationMode] }), _jsxs(Badge, { variant: "secondary", children: [page.common.quantity, " ", i18n.formatNumber(allocation.quantityRequired)] })] }), actions: _jsxs(_Fragment, { children: [onOpenPool ? (_jsxs(Button, { type: "button", variant: "outline", onClick: () => onOpenPool(allocation.poolId), children: [_jsx(Wrench, { "data-icon": "inline-start", "aria-hidden": "true" }), page.common.openPool] })) : null, onOpenProduct ? (_jsxs(Button, { type: "button", variant: "outline", onClick: () => onOpenProduct(allocation.productId), children: [_jsx(Package, { "data-icon": "inline-start", "aria-hidden": "true" }), page.common.openProduct] })) : null] }) }), _jsx(ResourceDetailCard, { title: page.allocation.detailsTitle, children: _jsxs("div", { className: "grid gap-3 md:grid-cols-2", children: [_jsx(ResourceDetailField, { label: page.common.pool, children: poolQuery.data?.name ?? allocation.poolId }), _jsx(ResourceDetailField, { label: page.common.product, children: labelById(productsQuery.data?.data ?? [], allocation.productId) ||
|
|
44
44
|
allocation.productId }), _jsx(ResourceDetailField, { label: page.allocation.rule, children: rule?.recurrenceRule ?? allocation.availabilityRuleId ?? page.common.noRule }), _jsx(ResourceDetailField, { label: page.allocation.startTime, children: startTime?.label ??
|
|
45
45
|
startTime?.startTimeLocal ??
|
|
46
46
|
allocation.startTimeId ??
|
|
@@ -8,9 +8,10 @@ export interface ResourceAssignmentDetailPageProps {
|
|
|
8
8
|
deleting?: boolean;
|
|
9
9
|
onBack?: () => void;
|
|
10
10
|
onDelete?: (assignment: ResourceSlotAssignmentDetail) => Promise<void> | void;
|
|
11
|
+
onEdit?: (assignment: ResourceSlotAssignmentDetail) => void;
|
|
11
12
|
onOpenResource?: (resourceId: string) => void;
|
|
12
13
|
onOpenSlot?: (slotId: string) => void;
|
|
13
14
|
confirmAction?: ConfirmAction;
|
|
14
15
|
}
|
|
15
|
-
export declare function ResourceAssignmentDetailPage({ className, confirmAction, deleting, id, onBack, onDelete, onOpenResource, onOpenSlot, }: ResourceAssignmentDetailPageProps): import("react").JSX.Element;
|
|
16
|
+
export declare function ResourceAssignmentDetailPage({ className, confirmAction, deleting, id, onBack, onDelete, onEdit, onOpenResource, onOpenSlot, }: ResourceAssignmentDetailPageProps): import("react").JSX.Element;
|
|
16
17
|
//# sourceMappingURL=resource-assignment-detail-page.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-assignment-detail-page.d.ts","sourceRoot":"","sources":["../../../src/resources/components/resource-assignment-detail-page.tsx"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,4BAA4B,EAOlC,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,KAAK,aAAa,EAKnB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,gCAAgC,EAAE,MAAM,gCAAgC,CAAA;AAMjF,OAAO,EAAE,gCAAgC,EAAE,CAAA;AAE3C,MAAM,WAAW,iCAAiC;IAChD,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,4BAA4B,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC7E,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7C,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,aAAa,CAAC,EAAE,aAAa,CAAA;CAC9B;AAED,wBAAgB,4BAA4B,CAAC,EAC3C,SAAS,EACT,aAAa,EACb,QAAQ,EACR,EAAE,EACF,MAAM,EACN,QAAQ,EACR,cAAc,EACd,UAAU,GACX,EAAE,iCAAiC,+
|
|
1
|
+
{"version":3,"file":"resource-assignment-detail-page.d.ts","sourceRoot":"","sources":["../../../src/resources/components/resource-assignment-detail-page.tsx"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,4BAA4B,EAOlC,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,KAAK,aAAa,EAKnB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,gCAAgC,EAAE,MAAM,gCAAgC,CAAA;AAMjF,OAAO,EAAE,gCAAgC,EAAE,CAAA;AAE3C,MAAM,WAAW,iCAAiC;IAChD,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,4BAA4B,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC7E,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,4BAA4B,KAAK,IAAI,CAAA;IAC3D,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7C,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,aAAa,CAAC,EAAE,aAAa,CAAA;CAC9B;AAED,wBAAgB,4BAA4B,CAAC,EAC3C,SAAS,EACT,aAAa,EACb,QAAQ,EACR,EAAE,EACF,MAAM,EACN,QAAQ,EACR,MAAM,EACN,cAAc,EACd,UAAU,GACX,EAAE,iCAAiC,+BAiInC"}
|
|
@@ -12,7 +12,7 @@ import { ResourceAssignmentDetailSkeleton } from "./resource-detail-skeletons.js
|
|
|
12
12
|
// `pendingComponent` without pinning this page module into the workspace
|
|
13
13
|
// chrome chunk. Re-exported here for backwards compatibility.
|
|
14
14
|
export { ResourceAssignmentDetailSkeleton };
|
|
15
|
-
export function ResourceAssignmentDetailPage({ className, confirmAction, deleting, id, onBack, onDelete, onOpenResource, onOpenSlot, }) {
|
|
15
|
+
export function ResourceAssignmentDetailPage({ className, confirmAction, deleting, id, onBack, onDelete, onEdit, onOpenResource, onOpenSlot, }) {
|
|
16
16
|
const i18n = useResourcesUiI18nOrDefault();
|
|
17
17
|
const m = i18n.messages;
|
|
18
18
|
const page = m.detailPages;
|
|
@@ -37,9 +37,10 @@ export function ResourceAssignmentDetailPage({ className, confirmAction, deletin
|
|
|
37
37
|
? formatResourceSlotLabel(slot, {
|
|
38
38
|
template: m.common.slotLabel,
|
|
39
39
|
formatDate: i18n.formatDate,
|
|
40
|
+
products: productsQuery.data?.data ?? [],
|
|
40
41
|
})
|
|
41
42
|
: assignment.slotId;
|
|
42
|
-
return (_jsxs("div", { "data-slot": "resource-assignment-detail-page", className: cn("flex flex-col gap-6 p-6", className), children: [_jsx(ResourceDetailHeader, { title: page.assignment.pageTitle, deleteConfirmName: assignment.id, deleteConfirmTemplate: page.assignment.deleteConfirm, deleteErrorMessage: page.assignment.deleteFailed, deleting: deleting, confirmAction: confirmAction, onBack: onBack, onDelete: onDelete ? () => onDelete(assignment) : undefined, badges: _jsxs(_Fragment, { children: [_jsx(Badge, { variant: "outline", children: m.common.assignmentStatusLabels[assignment.status] }), _jsx(Badge, { variant: "secondary", children: slotLabel })] }), actions: _jsxs(_Fragment, { children: [onOpenSlot ? (_jsxs(Button, { type: "button", variant: "outline", onClick: () => onOpenSlot(assignment.slotId), children: [_jsx(CalendarDays, { "data-icon": "inline-start", "aria-hidden": "true" }), page.common.openSlot] })) : null, assignment.resourceId && onOpenResource ? (_jsxs(Button, { type: "button", variant: "outline", onClick: () => onOpenResource(assignment.resourceId), children: [_jsx(Wrench, { "data-icon": "inline-start", "aria-hidden": "true" }), page.common.openResource] })) : null] }) }), _jsx(ResourceDetailCard, { title: page.assignment.detailsTitle, children: _jsxs("div", { className: "grid gap-3 md:grid-cols-2", children: [_jsx(ResourceDetailField, { label: page.common.slot, children: slotLabel }), _jsx(ResourceDetailField, { label: page.common.product, children: slot?.productId
|
|
43
|
+
return (_jsxs("div", { "data-slot": "resource-assignment-detail-page", className: cn("flex flex-col gap-6 p-6", className), children: [_jsx(ResourceDetailHeader, { title: page.assignment.pageTitle, deleteConfirmName: assignment.id, deleteConfirmTemplate: page.assignment.deleteConfirm, deleteErrorMessage: page.assignment.deleteFailed, deleting: deleting, confirmAction: confirmAction, onBack: onBack, onDelete: onDelete ? () => onDelete(assignment) : undefined, onEdit: onEdit ? () => onEdit(assignment) : undefined, badges: _jsxs(_Fragment, { children: [_jsx(Badge, { variant: "outline", children: m.common.assignmentStatusLabels[assignment.status] }), _jsx(Badge, { variant: "secondary", children: slotLabel })] }), actions: _jsxs(_Fragment, { children: [onOpenSlot ? (_jsxs(Button, { type: "button", variant: "outline", onClick: () => onOpenSlot(assignment.slotId), children: [_jsx(CalendarDays, { "data-icon": "inline-start", "aria-hidden": "true" }), page.common.openSlot] })) : null, assignment.resourceId && onOpenResource ? (_jsxs(Button, { type: "button", variant: "outline", onClick: () => onOpenResource(assignment.resourceId), children: [_jsx(Wrench, { "data-icon": "inline-start", "aria-hidden": "true" }), page.common.openResource] })) : null] }) }), _jsx(ResourceDetailCard, { title: page.assignment.detailsTitle, children: _jsxs("div", { className: "grid gap-3 md:grid-cols-2", children: [_jsx(ResourceDetailField, { label: page.common.slot, children: slotLabel }), _jsx(ResourceDetailField, { label: page.common.product, children: slot?.productId
|
|
43
44
|
? labelById(productsQuery.data?.data ?? [], slot.productId)
|
|
44
45
|
: page.common.noValue }), _jsx(ResourceDetailField, { label: page.common.pool, children: poolQuery.data?.name ?? assignment.poolId ?? page.common.noPool }), _jsx(ResourceDetailField, { label: page.common.resource, children: resourceQuery.data?.name ?? assignment.resourceId ?? page.common.noResource }), _jsx(ResourceDetailField, { label: page.common.booking, children: assignment.bookingId
|
|
45
46
|
? labelById(bookingsQuery.data?.data ?? [], assignment.bookingId)
|
|
@@ -8,11 +8,12 @@ export interface ResourceDetailPageProps {
|
|
|
8
8
|
deleting?: boolean;
|
|
9
9
|
onBack?: () => void;
|
|
10
10
|
onDelete?: (resource: ResourceDetail) => Promise<void> | void;
|
|
11
|
+
onEdit?: (resource: ResourceDetail) => void;
|
|
11
12
|
onOpenSupplier?: (supplierId: string) => void;
|
|
12
13
|
onOpenAssignment?: (assignmentId: string) => void;
|
|
13
14
|
confirmAction?: ConfirmAction;
|
|
14
15
|
}
|
|
15
|
-
export declare function ResourceDetailPage({ className, confirmAction, deleting, id, onBack, onDelete, onOpenAssignment, onOpenSupplier, }: ResourceDetailPageProps): import("react").JSX.Element;
|
|
16
|
+
export declare function ResourceDetailPage({ className, confirmAction, deleting, id, onBack, onDelete, onEdit, onOpenAssignment, onOpenSupplier, }: ResourceDetailPageProps): import("react").JSX.Element;
|
|
16
17
|
export declare function ResourceAssignmentSummary({ assignment, bookingLabel, noValue, onOpenAssignment, pool, slotLabel, }: {
|
|
17
18
|
assignment: ResourceSlotAssignmentRow;
|
|
18
19
|
bookingLabel: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-detail-page.d.ts","sourceRoot":"","sources":["../../../src/resources/components/resource-detail-page.tsx"],"names":[],"mappings":"AAcA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,yBAAyB,
|
|
1
|
+
{"version":3,"file":"resource-detail-page.d.ts","sourceRoot":"","sources":["../../../src/resources/components/resource-detail-page.tsx"],"names":[],"mappings":"AAcA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,yBAAyB,EAS/B,MAAM,aAAa,CAAA;AAEpB,OAAO,EACL,KAAK,aAAa,EAKnB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AAMvE,OAAO,EAAE,sBAAsB,EAAE,CAAA;AAEjC,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC7D,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAA;IAC3C,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7C,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAA;IACjD,aAAa,CAAC,EAAE,aAAa,CAAA;CAC9B;AAED,wBAAgB,kBAAkB,CAAC,EACjC,SAAS,EACT,aAAa,EACb,QAAQ,EACR,EAAE,EACF,MAAM,EACN,QAAQ,EACR,MAAM,EACN,gBAAgB,EAChB,cAAc,GACf,EAAE,uBAAuB,+BAuMzB;AAMD,wBAAgB,yBAAyB,CAAC,EACxC,UAAU,EACV,YAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,IAAI,EACJ,SAAS,GACV,EAAE;IACD,UAAU,EAAE,yBAAyB,CAAA;IACrC,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAA;IACjD,IAAI,CAAC,EAAE,eAAe,GAAG,SAAS,CAAA;IAClC,SAAS,EAAE,MAAM,CAAA;CAClB,+BA4CA"}
|