@burdenoff/microfe-theglobalfuel 2026.1015.1 → 2026.1022.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/theglobalfuel/hooks/useTheComments.d.ts +2 -2
- package/dist/theglobalfuel/hooks/useTheComments.d.ts.map +1 -1
- package/dist/theglobalfuel/hooks/useTheFiles.d.ts +1 -1
- package/dist/theglobalfuel/hooks/useTheFiles.d.ts.map +1 -1
- package/dist/theglobalfuel/hooks/useTheGlobalFuelApi.d.ts +16 -16
- package/dist/theglobalfuel/hooks/useTheGlobalFuelApi.d.ts.map +1 -1
- package/dist/theglobalfuel/hooks/useTheTags.d.ts +2 -2
- package/dist/theglobalfuel/hooks/useTheTags.d.ts.map +1 -1
- package/dist/theglobalfuel/pages/assets/AssetsPage.d.ts.map +1 -1
- package/dist/theglobalfuel/pages/assets/AssetsPage.js +3 -0
- package/dist/theglobalfuel/pages/assets/AssetsPage.js.map +1 -1
- package/package.json +1 -1
|
@@ -26,10 +26,10 @@ export interface TheComment {
|
|
|
26
26
|
replyCount: number;
|
|
27
27
|
}
|
|
28
28
|
/** Top-level (root) comments for an eco entity, oldest first. */
|
|
29
|
-
export declare const useTheComments: (entityType: string, entityId: string | undefined) => import('@tanstack/react-query').UseQueryResult<
|
|
29
|
+
export declare const useTheComments: (entityType: string, entityId: string | undefined) => import('@tanstack/react-query').UseQueryResult<{
|
|
30
30
|
items: TheComment[];
|
|
31
31
|
total: number;
|
|
32
|
-
}
|
|
32
|
+
}, Error>;
|
|
33
33
|
export declare const useTheCreateComment: (entityType: string, entityId: string) => import('@tanstack/react-query').UseMutationResult<{
|
|
34
34
|
id: string;
|
|
35
35
|
}, Error, string, unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTheComments.d.ts","sourceRoot":"","sources":["../../../src/theglobalfuel/hooks/useTheComments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAOH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;KACzB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAKD,iEAAiE;AACjE,eAAO,MAAM,cAAc,GAAI,YAAY,MAAM,EAAE,UAAU,MAAM,GAAG,SAAS;;;
|
|
1
|
+
{"version":3,"file":"useTheComments.d.ts","sourceRoot":"","sources":["../../../src/theglobalfuel/hooks/useTheComments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAOH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;KACzB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAKD,iEAAiE;AACjE,eAAO,MAAM,cAAc,GAAI,YAAY,MAAM,EAAE,UAAU,MAAM,GAAG,SAAS;;;SAwC9E,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,YAAY,MAAM,EAAE,UAAU,MAAM;QAKN,MAAM;0BAmBvE,CAAC"}
|
|
@@ -43,5 +43,5 @@ export interface TheFileMeta {
|
|
|
43
43
|
mimeType: string;
|
|
44
44
|
size: string;
|
|
45
45
|
}
|
|
46
|
-
export declare const useTheFile: (id: string | null | undefined) => import('@tanstack/react-query').UseQueryResult<
|
|
46
|
+
export declare const useTheFile: (id: string | null | undefined) => import('@tanstack/react-query').UseQueryResult<TheFileMeta | null, Error>;
|
|
47
47
|
//# sourceMappingURL=useTheFiles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTheFiles.d.ts","sourceRoot":"","sources":["../../../src/theglobalfuel/hooks/useTheFiles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AA8BH,8EAA8E;AAC9E,eAAO,MAAM,WAAW,GAAU,KAAK,EACrC,OAAO,MAAM,EACb,WAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,UAAU,MAAM,KACf,OAAO,CAAC,KAAK,CAmBf,CAAC;AAMF,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AA+BD,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IACjD,WAAW,EAAE,OAAO,CAAC;IACrB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,QAAO,sBAuFnC,CAAC;AAMF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,UAAU,GAAI,IAAI,MAAM,GAAG,IAAI,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"useTheFiles.d.ts","sourceRoot":"","sources":["../../../src/theglobalfuel/hooks/useTheFiles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AA8BH,8EAA8E;AAC9E,eAAO,MAAM,WAAW,GAAU,KAAK,EACrC,OAAO,MAAM,EACb,WAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,UAAU,MAAM,KACf,OAAO,CAAC,KAAK,CAmBf,CAAC;AAMF,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AA+BD,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IACjD,WAAW,EAAE,OAAO,CAAC;IACrB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,QAAO,sBAuFnC,CAAC;AAMF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,UAAU,GAAI,IAAI,MAAM,GAAG,IAAI,GAAG,SAAS,8EAsBvD,CAAC"}
|
|
@@ -6,8 +6,8 @@ export interface AssetFilters {
|
|
|
6
6
|
status?: TheAssetStatus;
|
|
7
7
|
pagination?: PaginationInput;
|
|
8
8
|
}
|
|
9
|
-
export declare const useTheAssets: (filters?: AssetFilters) => import('@tanstack/react-query').UseQueryResult<
|
|
10
|
-
export declare const useTheAsset: (id: string | undefined) => import('@tanstack/react-query').UseQueryResult<
|
|
9
|
+
export declare const useTheAssets: (filters?: AssetFilters) => import('@tanstack/react-query').UseQueryResult<TheConnection<TheAsset>, Error>;
|
|
10
|
+
export declare const useTheAsset: (id: string | undefined) => import('@tanstack/react-query').UseQueryResult<TheAsset | null, Error>;
|
|
11
11
|
export declare const useTheCreateAsset: () => import('@tanstack/react-query').UseMutationResult<TheAsset, Error, TheCreateAssetInput, unknown>;
|
|
12
12
|
export declare const useTheUpdateAsset: () => import('@tanstack/react-query').UseMutationResult<TheAsset, Error, {
|
|
13
13
|
id: string;
|
|
@@ -22,9 +22,9 @@ export interface ProductionFilters {
|
|
|
22
22
|
assetId?: string;
|
|
23
23
|
pagination?: PaginationInput;
|
|
24
24
|
}
|
|
25
|
-
export declare const useTheProductionRecords: (filters?: ProductionFilters) => import('@tanstack/react-query').UseQueryResult<
|
|
25
|
+
export declare const useTheProductionRecords: (filters?: ProductionFilters) => import('@tanstack/react-query').UseQueryResult<TheConnection<TheProductionRecord>, Error>;
|
|
26
26
|
export declare const useTheRecordProduction: () => import('@tanstack/react-query').UseMutationResult<TheProductionRecord, Error, TheRecordProductionInput, unknown>;
|
|
27
|
-
export declare const useTheReserveEstimates: (assetId?: string, category?: TheReserveCategory, pagination?: PaginationInput) => import('@tanstack/react-query').UseQueryResult<
|
|
27
|
+
export declare const useTheReserveEstimates: (assetId?: string, category?: TheReserveCategory, pagination?: PaginationInput) => import('@tanstack/react-query').UseQueryResult<TheConnection<TheReserveEstimate>, Error>;
|
|
28
28
|
export declare const useTheCreateReserveEstimate: () => import('@tanstack/react-query').UseMutationResult<TheReserveEstimate, Error, TheCreateReserveEstimateInput, unknown>;
|
|
29
29
|
export interface ContractFilters {
|
|
30
30
|
commodity?: TheCommodityType;
|
|
@@ -32,8 +32,8 @@ export interface ContractFilters {
|
|
|
32
32
|
status?: TheContractStatus;
|
|
33
33
|
pagination?: PaginationInput;
|
|
34
34
|
}
|
|
35
|
-
export declare const useTheContracts: (filters?: ContractFilters) => import('@tanstack/react-query').UseQueryResult<
|
|
36
|
-
export declare const useTheContract: (id: string | undefined) => import('@tanstack/react-query').UseQueryResult<
|
|
35
|
+
export declare const useTheContracts: (filters?: ContractFilters) => import('@tanstack/react-query').UseQueryResult<TheConnection<TheOfftakeContract>, Error>;
|
|
36
|
+
export declare const useTheContract: (id: string | undefined) => import('@tanstack/react-query').UseQueryResult<TheOfftakeContract | null, Error>;
|
|
37
37
|
export declare const useTheCreateContract: () => import('@tanstack/react-query').UseMutationResult<TheOfftakeContract, Error, TheCreateOfftakeContractInput, unknown>;
|
|
38
38
|
export declare const useTheUpdateContract: () => import('@tanstack/react-query').UseMutationResult<TheOfftakeContract, Error, {
|
|
39
39
|
id: string;
|
|
@@ -43,7 +43,7 @@ export declare const useTheTransitionContract: () => import('@tanstack/react-que
|
|
|
43
43
|
id: string;
|
|
44
44
|
status: TheContractStatus;
|
|
45
45
|
}, unknown>;
|
|
46
|
-
export declare const useTheShipments: (contractId?: string, status?: TheShipmentStatus, pagination?: PaginationInput) => import('@tanstack/react-query').UseQueryResult<
|
|
46
|
+
export declare const useTheShipments: (contractId?: string, status?: TheShipmentStatus, pagination?: PaginationInput) => import('@tanstack/react-query').UseQueryResult<TheConnection<TheShipment>, Error>;
|
|
47
47
|
export declare const useTheTransitionShipment: () => import('@tanstack/react-query').UseMutationResult<TheShipment, Error, {
|
|
48
48
|
id: string;
|
|
49
49
|
status: TheShipmentStatus;
|
|
@@ -64,7 +64,7 @@ export interface InventoryFilters {
|
|
|
64
64
|
status?: TheInventoryStatus;
|
|
65
65
|
pagination?: PaginationInput;
|
|
66
66
|
}
|
|
67
|
-
export declare const useTheInventoryLots: (filters?: InventoryFilters) => import('@tanstack/react-query').UseQueryResult<
|
|
67
|
+
export declare const useTheInventoryLots: (filters?: InventoryFilters) => import('@tanstack/react-query').UseQueryResult<TheConnection<TheInventoryLot>, Error>;
|
|
68
68
|
export declare const useTheCreateInventoryLot: () => import('@tanstack/react-query').UseMutationResult<TheInventoryLot, Error, TheCreateInventoryLotInput, unknown>;
|
|
69
69
|
export declare const useTheSetInventoryLotStatus: () => import('@tanstack/react-query').UseMutationResult<TheInventoryLot, Error, {
|
|
70
70
|
id: string;
|
|
@@ -75,11 +75,11 @@ export interface EmissionFilters {
|
|
|
75
75
|
scope?: TheEmissionScope;
|
|
76
76
|
pagination?: PaginationInput;
|
|
77
77
|
}
|
|
78
|
-
export declare const useTheEmissionRecords: (filters?: EmissionFilters) => import('@tanstack/react-query').UseQueryResult<
|
|
78
|
+
export declare const useTheEmissionRecords: (filters?: EmissionFilters) => import('@tanstack/react-query').UseQueryResult<TheConnection<TheEmissionRecord>, Error>;
|
|
79
79
|
export declare const useTheRecordEmission: () => import('@tanstack/react-query').UseMutationResult<TheEmissionRecord, Error, TheRecordEmissionInput, unknown>;
|
|
80
80
|
export declare const useTheVerifyEmission: () => import('@tanstack/react-query').UseMutationResult<TheEmissionRecord, Error, string, unknown>;
|
|
81
|
-
export declare const useTheComplianceCerts: (assetId?: string, category?: TheComplianceCategory, status?: TheComplianceStatus, pagination?: PaginationInput) => import('@tanstack/react-query').UseQueryResult<
|
|
82
|
-
export declare const useTheComplianceCert: (id: string | undefined) => import('@tanstack/react-query').UseQueryResult<
|
|
81
|
+
export declare const useTheComplianceCerts: (assetId?: string, category?: TheComplianceCategory, status?: TheComplianceStatus, pagination?: PaginationInput) => import('@tanstack/react-query').UseQueryResult<TheConnection<TheComplianceCert>, Error>;
|
|
82
|
+
export declare const useTheComplianceCert: (id: string | undefined) => import('@tanstack/react-query').UseQueryResult<TheComplianceCert | null, Error>;
|
|
83
83
|
export declare const useTheCreateComplianceCert: () => import('@tanstack/react-query').UseMutationResult<TheComplianceCert, Error, TheCreateComplianceCertInput, unknown>;
|
|
84
84
|
export declare const useTheTransitionComplianceCert: () => import('@tanstack/react-query').UseMutationResult<TheComplianceCert, Error, {
|
|
85
85
|
id: string;
|
|
@@ -92,8 +92,8 @@ export interface SafetyIncidentFilters {
|
|
|
92
92
|
status?: TheSafetyIncidentStatus;
|
|
93
93
|
pagination?: PaginationInput;
|
|
94
94
|
}
|
|
95
|
-
export declare const useTheSafetyIncidents: (filters?: SafetyIncidentFilters) => import('@tanstack/react-query').UseQueryResult<
|
|
96
|
-
export declare const useTheSafetyIncident: (id: string | undefined) => import('@tanstack/react-query').UseQueryResult<
|
|
95
|
+
export declare const useTheSafetyIncidents: (filters?: SafetyIncidentFilters) => import('@tanstack/react-query').UseQueryResult<TheConnection<TheSafetyIncident>, Error>;
|
|
96
|
+
export declare const useTheSafetyIncident: (id: string | undefined) => import('@tanstack/react-query').UseQueryResult<TheSafetyIncident | null, Error>;
|
|
97
97
|
export declare const useTheReportSafetyIncident: () => import('@tanstack/react-query').UseMutationResult<TheSafetyIncident, Error, TheReportSafetyIncidentInput, unknown>;
|
|
98
98
|
export declare const useTheTransitionSafetyIncident: () => import('@tanstack/react-query').UseMutationResult<TheSafetyIncident, Error, {
|
|
99
99
|
id: string;
|
|
@@ -103,18 +103,18 @@ export declare const useTheUpdateIncidentInvestigation: () => import('@tanstack/
|
|
|
103
103
|
id: string;
|
|
104
104
|
investigationNotes: string;
|
|
105
105
|
}, unknown>;
|
|
106
|
-
export declare const useTheCorrectiveActions: (incidentId?: string, status?: TheCorrectiveActionStatus, pagination?: PaginationInput) => import('@tanstack/react-query').UseQueryResult<
|
|
106
|
+
export declare const useTheCorrectiveActions: (incidentId?: string, status?: TheCorrectiveActionStatus, pagination?: PaginationInput) => import('@tanstack/react-query').UseQueryResult<TheConnection<TheCorrectiveAction>, Error>;
|
|
107
107
|
export declare const useTheCreateCorrectiveAction: () => import('@tanstack/react-query').UseMutationResult<TheCorrectiveAction, Error, TheCreateCorrectiveActionInput, unknown>;
|
|
108
108
|
export declare const useTheTransitionCorrectiveAction: () => import('@tanstack/react-query').UseMutationResult<TheCorrectiveAction, Error, {
|
|
109
109
|
id: string;
|
|
110
110
|
status: TheCorrectiveActionStatus;
|
|
111
111
|
}, unknown>;
|
|
112
|
-
export declare const useTheSafetyDashboard: () => import('@tanstack/react-query').UseQueryResult<
|
|
112
|
+
export declare const useTheSafetyDashboard: () => import('@tanstack/react-query').UseQueryResult<TheSafetyDashboard, Error>;
|
|
113
113
|
export interface EsgDisclosureFilters {
|
|
114
114
|
framework?: TheEsgFramework;
|
|
115
115
|
pagination?: PaginationInput;
|
|
116
116
|
}
|
|
117
|
-
export declare const useTheEsgDisclosures: (filters?: EsgDisclosureFilters) => import('@tanstack/react-query').UseQueryResult<
|
|
117
|
+
export declare const useTheEsgDisclosures: (filters?: EsgDisclosureFilters) => import('@tanstack/react-query').UseQueryResult<TheConnection<TheEsgDisclosure>, Error>;
|
|
118
118
|
export declare const useTheGenerateEsgDisclosure: () => import('@tanstack/react-query').UseMutationResult<TheEsgDisclosure, Error, TheGenerateEsgDisclosureInput, unknown>;
|
|
119
119
|
export declare const useTheFinalizeEsgDisclosure: () => import('@tanstack/react-query').UseMutationResult<TheEsgDisclosure, Error, string, unknown>;
|
|
120
120
|
//# sourceMappingURL=useTheGlobalFuelApi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTheGlobalFuelApi.d.ts","sourceRoot":"","sources":["../../../src/theglobalfuel/hooks/useTheGlobalFuelApi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,6BAA6B,EAC7B,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,6BAA6B,EAC7B,6BAA6B,EAC7B,6BAA6B,EAC7B,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,sBAAsB,EACtB,4BAA4B,EAC5B,iBAAiB,EACjB,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EACvB,mBAAmB,EACnB,yBAAyB,EACzB,kBAAkB,EAClB,4BAA4B,EAC5B,8BAA8B,EAC9B,eAAe,EAChB,MAAM,UAAU,CAAC;AA6IlB,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B;AAED,eAAO,MAAM,YAAY,GAAI,UAAS,YAAiB,
|
|
1
|
+
{"version":3,"file":"useTheGlobalFuelApi.d.ts","sourceRoot":"","sources":["../../../src/theglobalfuel/hooks/useTheGlobalFuelApi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,6BAA6B,EAC7B,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,6BAA6B,EAC7B,6BAA6B,EAC7B,6BAA6B,EAC7B,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,sBAAsB,EACtB,4BAA4B,EAC5B,iBAAiB,EACjB,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EACvB,mBAAmB,EACnB,yBAAyB,EACzB,kBAAkB,EAClB,4BAA4B,EAC5B,8BAA8B,EAC9B,eAAe,EAChB,MAAM,UAAU,CAAC;AA6IlB,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B;AAED,eAAO,MAAM,YAAY,GAAI,UAAS,YAAiB,mFAuBtD,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,IAAI,MAAM,GAAG,SAAS,2EAgBjD,CAAC;AAEF,eAAO,MAAM,iBAAiB,wGAgB7B,CAAC;AAEF,eAAO,MAAM,iBAAiB;QAIc,MAAM;WAAS,mBAAmB;WAe7E,CAAC;AAEF,eAAO,MAAM,qBAAqB;QAIW,MAAM;YAAU,cAAc;WAe1E,CAAC;AAEF,eAAO,MAAM,iBAAiB,0FAc7B,CAAC;AAMF,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B;AAED,eAAO,MAAM,uBAAuB,GAAI,UAAS,iBAAsB,8FAkBtE,CAAC;AAEF,eAAO,MAAM,sBAAsB,wHAmBlC,CAAC;AAMF,eAAO,MAAM,sBAAsB,GACjC,UAAU,MAAM,EAChB,WAAW,kBAAkB,EAC7B,aAAa,eAAe,6FAmB7B,CAAC;AAEF,eAAO,MAAM,2BAA2B,4HAmBvC,CAAC;AAMF,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B;AAED,eAAO,MAAM,eAAe,GAAI,UAAS,eAAoB,6FAuB5D,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,IAAI,MAAM,GAAG,SAAS,qFAgBpD,CAAC;AAEF,eAAO,MAAM,oBAAoB,4HAgBhC,CAAC;AAEF,eAAO,MAAM,oBAAoB;QAIW,MAAM;WAAS,6BAA6B;WAevF,CAAC;AAEF,eAAO,MAAM,wBAAwB;QAIQ,MAAM;YAAU,iBAAiB;WAe7E,CAAC;AAMF,eAAO,MAAM,eAAe,GAC1B,aAAa,MAAM,EACnB,SAAS,iBAAiB,EAC1B,aAAa,eAAe,sFAmB7B,CAAC;AAEF,eAAO,MAAM,wBAAwB;QAIQ,MAAM;YAAU,iBAAiB;WAe7E,CAAC;AAEF,eAAO,MAAM,sBAAsB,8GAmBlC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;QAIW,MAAM;WAAS,sBAAsB;WAehF,CAAC;AAEF,eAAO,MAAM,qBAAqB,8FAoBjC,CAAC;AAMF,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B;AAED,eAAO,MAAM,mBAAmB,GAAI,UAAS,gBAAqB,0FAsBjE,CAAC;AAEF,eAAO,MAAM,wBAAwB,sHAgBpC,CAAC;AAEF,eAAO,MAAM,2BAA2B;QAIK,MAAM;YAAU,kBAAkB;WAY9E,CAAC;AAMF,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B;AAED,eAAO,MAAM,qBAAqB,GAAI,UAAS,eAAoB,4FAsBlE,CAAC;AAEF,eAAO,MAAM,oBAAoB,oHAgBhC,CAAC;AAEF,eAAO,MAAM,oBAAoB,oGAgBhC,CAAC;AAMF,eAAO,MAAM,qBAAqB,GAChC,UAAU,MAAM,EAChB,WAAW,qBAAqB,EAChC,SAAS,mBAAmB,EAC5B,aAAa,eAAe,4FAyB7B,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,IAAI,MAAM,GAAG,SAAS,oFAgB1D,CAAC;AAEF,eAAO,MAAM,0BAA0B,0HAgBtC,CAAC;AAEF,eAAO,MAAM,8BAA8B;QAIE,MAAM;YAAU,mBAAmB;WAe/E,CAAC;AAMF,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B;AAED,eAAO,MAAM,qBAAqB,GAAI,UAAS,qBAA0B,4FA0BxE,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,IAAI,MAAM,GAAG,SAAS,oFAgB1D,CAAC;AAEF,eAAO,MAAM,0BAA0B,0HAmBtC,CAAC;AAEF,eAAO,MAAM,8BAA8B;QAIE,MAAM;YAAU,uBAAuB;WAgBnF,CAAC;AAEF,eAAO,MAAM,iCAAiC;QAIW,MAAM;wBAAsB,MAAM;WAe1F,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,aAAa,MAAM,EACnB,SAAS,yBAAyB,EAClC,aAAa,eAAe,8FAqB7B,CAAC;AAEF,eAAO,MAAM,4BAA4B,8HAmBxC,CAAC;AAEF,eAAO,MAAM,gCAAgC;QAIA,MAAM;YAAU,yBAAyB;WAerF,CAAC;AAEF,eAAO,MAAM,qBAAqB,iFAqBjC,CAAC;AAMF,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B;AAED,eAAO,MAAM,oBAAoB,GAAI,UAAS,oBAAyB,2FAkBtE,CAAC;AAEF,eAAO,MAAM,2BAA2B,0HAgBvC,CAAC;AAEF,eAAO,MAAM,2BAA2B,mGAgBvC,CAAC"}
|
|
@@ -28,9 +28,9 @@ export interface TheTagAssignment {
|
|
|
28
28
|
tag: TheTag;
|
|
29
29
|
}
|
|
30
30
|
/** Current tag assignments for an eco entity. */
|
|
31
|
-
export declare const useTheEntityTags: (entityType: string, entityId: string | undefined) => import('@tanstack/react-query').UseQueryResult<
|
|
31
|
+
export declare const useTheEntityTags: (entityType: string, entityId: string | undefined) => import('@tanstack/react-query').UseQueryResult<TheTagAssignment[], Error>;
|
|
32
32
|
/** Search existing tags (enabled only for a non-empty query). */
|
|
33
|
-
export declare const useTheTagSearch: (query: string) => import('@tanstack/react-query').UseQueryResult<
|
|
33
|
+
export declare const useTheTagSearch: (query: string) => import('@tanstack/react-query').UseQueryResult<TheTag[], Error>;
|
|
34
34
|
/** Assign an existing tag to the entity. */
|
|
35
35
|
export declare const useTheAssignTag: (entityType: string, entityId: string) => import('@tanstack/react-query').UseMutationResult<{
|
|
36
36
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTheTags.d.ts","sourceRoot":"","sources":["../../../src/theglobalfuel/hooks/useTheTags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAOH,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb;AAiBD,iDAAiD;AACjD,eAAO,MAAM,gBAAgB,GAAI,YAAY,MAAM,EAAE,UAAU,MAAM,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"useTheTags.d.ts","sourceRoot":"","sources":["../../../src/theglobalfuel/hooks/useTheTags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAOH,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb;AAiBD,iDAAiD;AACjD,eAAO,MAAM,gBAAgB,GAAI,YAAY,MAAM,EAAE,UAAU,MAAM,GAAG,SAAS,8EAmBhF,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,oEAiB5C,CAAC;AAEF,4CAA4C;AAC5C,eAAO,MAAM,eAAe,GAAI,YAAY,MAAM,EAAE,UAAU,MAAM;QAKZ,MAAM;0BAW7D,CAAC;AAEF,oDAAoD;AACpD,eAAO,MAAM,yBAAyB,GAAI,YAAY,MAAM,EAAE,UAAU,MAAM,uFAgB7E,CAAC;AA+BF,2EAA2E;AAC3E,eAAO,MAAM,wBAAwB,GAAI,YAAY,MAAM,EAAE,UAAU,MAAM;QAalB,MAAM;0BAkBhE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetsPage.d.ts","sourceRoot":"","sources":["../../../../src/theglobalfuel/pages/assets/AssetsPage.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA4IH,wBAAgB,UAAU,
|
|
1
|
+
{"version":3,"file":"AssetsPage.d.ts","sourceRoot":"","sources":["../../../../src/theglobalfuel/pages/assets/AssetsPage.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA4IH,wBAAgB,UAAU,gCAogBzB"}
|
|
@@ -122,6 +122,7 @@ function F() {
|
|
|
122
122
|
{
|
|
123
123
|
key: "name",
|
|
124
124
|
header: "Asset",
|
|
125
|
+
className: "min-w-[14rem] sm:min-w-[18rem]",
|
|
125
126
|
render: (e) => /* @__PURE__ */ y("div", {
|
|
126
127
|
className: "flex items-center gap-3",
|
|
127
128
|
children: [/* @__PURE__ */ v("span", {
|
|
@@ -131,9 +132,11 @@ function F() {
|
|
|
131
132
|
className: "min-w-0",
|
|
132
133
|
children: [/* @__PURE__ */ v("p", {
|
|
133
134
|
className: "truncate font-semibold text-text-primary",
|
|
135
|
+
title: e.name,
|
|
134
136
|
children: e.name
|
|
135
137
|
}), e.code && /* @__PURE__ */ v("p", {
|
|
136
138
|
className: "truncate text-xs text-text-tertiary",
|
|
139
|
+
title: e.code,
|
|
137
140
|
children: e.code
|
|
138
141
|
})]
|
|
139
142
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetsPage.js","names":[],"sources":["../../../../src/theglobalfuel/pages/assets/AssetsPage.tsx"],"sourcesContent":["/**\n * Assets — the resource registry: list, filter & register energy/mineral assets.\n * @module theglobalfuel/pages/assets\n *\n * Reads `theListAssets` (cursor-paginated) with status / commodity / kind\n * filters; writes `theCreateAsset`. Rows drill into `assets/:id`. No mock data —\n * every field comes from the `wspace-theglobalfuel-svc` GraphQL contract.\n */\n\nimport { useMemo, useState } from 'react';\nimport { Plus, Fuel, MapPin } from 'lucide-react';\nimport {\n Button,\n Input,\n Label,\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n ResponsiveDialog,\n ResponsiveDialogContent,\n ResponsiveDialogHeader,\n ResponsiveDialogTitle,\n ResponsiveDialogDescription,\n ResponsiveDialogFooter,\n} from '@burdenoff/fe-libs/ui';\nimport {\n PageLayout,\n StatusBadge,\n DataTable,\n type Column,\n FilterTabs,\n type FilterOption,\n LoadingView,\n ErrorView,\n EmptyState,\n Pagination,\n} from '../../components';\nimport { useTheGlobalFuel } from '../../context';\nimport {\n useTheAssets,\n useTheCreateAsset,\n useCursorPager,\n useNotify,\n useTheAnalytics,\n useThePageView,\n useTheNativeControls,\n useTheTranslation,\n} from '../../hooks';\nimport {\n formatEnumLabel,\n formatVolume,\n formatPercent,\n formatRelativeTime,\n toBackendDate,\n} from '../../utils';\nimport type {\n TheAsset,\n TheAssetKind,\n TheAssetStatus,\n TheCommodityType,\n TheUnit,\n} from '../../types';\n\nconst STATUS_FILTERS: FilterOption<TheAssetStatus | 'ALL'>[] = [\n { value: 'ALL', label: 'All' },\n { value: 'EXPLORATION', label: 'Exploration' },\n { value: 'APPRAISAL', label: 'Appraisal' },\n { value: 'DEVELOPMENT', label: 'Development' },\n { value: 'PRODUCING', label: 'Producing' },\n { value: 'SUSPENDED', label: 'Suspended' },\n { value: 'DECOMMISSIONING', label: 'Decommissioning' },\n { value: 'RETIRED', label: 'Retired' },\n];\n\nconst ASSET_KINDS: TheAssetKind[] = [\n 'OIL_FIELD',\n 'GAS_FIELD',\n 'WELL',\n 'MINE',\n 'QUARRY',\n 'REFINERY',\n 'PROCESSING_PLANT',\n 'POWER_PLANT',\n 'SOLAR_FARM',\n 'WIND_FARM',\n 'STORAGE_TERMINAL',\n 'PIPELINE',\n];\n\nconst COMMODITIES: TheCommodityType[] = [\n 'CRUDE_OIL',\n 'NATURAL_GAS',\n 'LNG',\n 'COAL',\n 'ELECTRICITY',\n 'HYDROGEN',\n 'BIOFUEL',\n 'IRON_ORE',\n 'COPPER',\n 'BAUXITE',\n 'GOLD',\n 'LITHIUM',\n 'RARE_EARTH',\n];\n\nconst UNITS: TheUnit[] = ['BARRELS', 'CUBIC_METERS', 'TONNES', 'KILOGRAMS', 'MWH', 'GJ', 'MCF'];\n\nconst PAGE_SIZE = 25;\n\ninterface CreateFormState {\n name: string;\n code: string;\n commodity: TheCommodityType;\n kind: TheAssetKind;\n status: TheAssetStatus;\n location: string;\n latitude: string;\n longitude: string;\n capacityPerDay: string;\n capacityUnit: TheUnit;\n workingInterestPct: string;\n discoveryAt: string;\n area: string;\n reservoirType: string;\n waterDepth: string;\n}\n\nconst EMPTY_FORM: CreateFormState = {\n name: '',\n code: '',\n commodity: 'CRUDE_OIL',\n kind: 'OIL_FIELD',\n status: 'EXPLORATION',\n location: '',\n latitude: '',\n longitude: '',\n capacityPerDay: '',\n capacityUnit: 'BARRELS',\n workingInterestPct: '',\n discoveryAt: '',\n area: '',\n reservoirType: '',\n waterDepth: '',\n};\n\nexport function AssetsPage() {\n useThePageView('assets');\n const t = useTheTranslation();\n const { navigateTo } = useTheGlobalFuel();\n const notify = useNotify();\n const { haptic } = useTheNativeControls();\n const { trackAssetCreateClicked, trackAssetCreated } = useTheAnalytics();\n const [status, setStatus] = useState<TheAssetStatus | 'ALL'>('ALL');\n const [commodity, setCommodity] = useState<TheCommodityType | 'ALL'>('ALL');\n const [kind, setKind] = useState<TheAssetKind | 'ALL'>('ALL');\n const pager = useCursorPager();\n const [dialogOpen, setDialogOpen] = useState(false);\n const [form, setForm] = useState<CreateFormState>(EMPTY_FORM);\n const [formError, setFormError] = useState<string | null>(null);\n\n const { data, isLoading, isError, refetch } = useTheAssets({\n status: status === 'ALL' ? undefined : status,\n commodity: commodity === 'ALL' ? undefined : commodity,\n kind: kind === 'ALL' ? undefined : kind,\n pagination: { limit: PAGE_SIZE, offset: pager.page * PAGE_SIZE },\n });\n const createAsset = useTheCreateAsset();\n\n const rows = useMemo(() => data?.items ?? [], [data]);\n const filtersActive = status !== 'ALL' || commodity !== 'ALL' || kind !== 'ALL';\n\n const columns: Column<TheAsset>[] = [\n {\n key: 'name',\n header: 'Asset',\n render: (a) => (\n <div className=\"flex items-center gap-3\">\n <span className=\"grid size-9 shrink-0 place-items-center rounded-lg bg-bg-sunken text-text-secondary\">\n <Fuel className=\"h-4 w-4\" />\n </span>\n <div className=\"min-w-0\">\n <p className=\"truncate font-semibold text-text-primary\">{a.name}</p>\n {a.code && <p className=\"truncate text-xs text-text-tertiary\">{a.code}</p>}\n </div>\n </div>\n ),\n },\n {\n key: 'kind',\n header: 'Kind',\n hideOnMobile: true,\n render: (a) => <span className=\"text-text-secondary\">{formatEnumLabel(a.kind)}</span>,\n },\n {\n key: 'commodity',\n header: 'Commodity',\n hideOnMobile: true,\n render: (a) => <span className=\"text-text-secondary\">{formatEnumLabel(a.commodity)}</span>,\n },\n { key: 'status', header: 'Status', render: (a) => <StatusBadge status={a.status} /> },\n {\n key: 'capacity',\n header: 'Capacity',\n align: 'right',\n hideOnMobile: true,\n sortValue: (a) => a.capacityPerDay,\n render: (a) =>\n a.capacityPerDay > 0 ? (\n <span className=\"tabular-nums text-text-secondary\">\n {formatVolume(a.capacityPerDay, a.capacityUnit)}/day\n </span>\n ) : (\n <span className=\"text-text-tertiary\">—</span>\n ),\n },\n {\n key: 'workingInterest',\n header: 'Working interest',\n align: 'right',\n hideOnMobile: true,\n sortValue: (a) => a.workingInterestPct,\n render: (a) => (\n <span className=\"tabular-nums text-text-secondary\">\n {formatPercent(a.workingInterestPct)}\n </span>\n ),\n },\n {\n key: 'location',\n header: 'Location',\n hideOnMobile: true,\n render: (a) =>\n a.location ? (\n <span className=\"inline-flex items-center gap-1.5 text-text-secondary\">\n <MapPin className=\"h-3.5 w-3.5 shrink-0 text-text-tertiary\" />\n {a.location}\n </span>\n ) : (\n <span className=\"text-text-tertiary\">—</span>\n ),\n },\n {\n key: 'updated',\n header: 'Updated',\n align: 'right',\n hideOnMobile: true,\n render: (a) => <span className=\"text-text-tertiary\">{formatRelativeTime(a.updatedAt)}</span>,\n },\n ];\n\n const resetForm = () => {\n setForm(EMPTY_FORM);\n setFormError(null);\n };\n\n const handleCreate = async () => {\n if (!form.name.trim()) {\n setFormError('Asset name is required.');\n return;\n }\n setFormError(null);\n haptic('light');\n trackAssetCreateClicked();\n try {\n const created = await createAsset.mutateAsync({\n name: form.name.trim(),\n code: form.code.trim() || null,\n commodity: form.commodity,\n kind: form.kind,\n status: form.status,\n location: form.location.trim() || null,\n latitude: form.latitude ? Number(form.latitude) : null,\n longitude: form.longitude ? Number(form.longitude) : null,\n capacityPerDay: form.capacityPerDay ? Number(form.capacityPerDay) : null,\n capacityUnit: form.capacityUnit,\n workingInterestPct: form.workingInterestPct ? Number(form.workingInterestPct) : null,\n discoveryAt: toBackendDate(form.discoveryAt) || null,\n area: form.area ? Number(form.area) : null,\n reservoirType: form.reservoirType.trim() || null,\n waterDepth: form.waterDepth ? Number(form.waterDepth) : null,\n });\n trackAssetCreated(created.id);\n notify.success('Asset created');\n setDialogOpen(false);\n resetForm();\n navigateTo(`assets/${created.id}`);\n } catch (err) {\n notify.fromError(err);\n setFormError(err instanceof Error ? err.message : 'Failed to create asset.');\n }\n };\n\n return (\n <PageLayout\n title={t('theglobalfuel.pages.assets.title', 'Assets')}\n description={t(\n 'theglobalfuel.pages.assets.description',\n 'Resource registry — fields, wells, mines, plants, terminals & pipelines across every commodity.'\n )}\n dataTour=\"theglobalfuel-assets-page\"\n actions={\n <Button onClick={() => setDialogOpen(true)}>\n <Plus className=\"mr-1.5 h-4 w-4\" /> New asset\n </Button>\n }\n >\n <div className=\"mb-5 flex flex-wrap items-center gap-3\">\n <FilterTabs\n options={STATUS_FILTERS}\n value={status}\n onChange={(v) => {\n setStatus(v);\n pager.reset();\n }}\n />\n <Select\n value={commodity}\n onValueChange={(v) => {\n setCommodity(v as TheCommodityType | 'ALL');\n pager.reset();\n }}\n >\n <SelectTrigger className=\"w-48\" aria-label=\"Filter by commodity\">\n <SelectValue placeholder=\"All commodities\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"ALL\">All commodities</SelectItem>\n {COMMODITIES.map((c) => (\n <SelectItem key={c} value={c}>\n {formatEnumLabel(c)}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <Select\n value={kind}\n onValueChange={(v) => {\n setKind(v as TheAssetKind | 'ALL');\n pager.reset();\n }}\n >\n <SelectTrigger className=\"w-48\" aria-label=\"Filter by kind\">\n <SelectValue placeholder=\"All kinds\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"ALL\">All kinds</SelectItem>\n {ASSET_KINDS.map((k) => (\n <SelectItem key={k} value={k}>\n {formatEnumLabel(k)}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n\n {isLoading ? (\n <LoadingView label=\"Loading assets…\" />\n ) : isError ? (\n <ErrorView message=\"Couldn't load assets.\" onRetry={() => refetch()} />\n ) : rows.length === 0 ? (\n <EmptyState\n illustration=\"empty-data\"\n icon={<Fuel className=\"h-10 w-10\" />}\n title=\"No assets yet\"\n description={\n filtersActive\n ? 'No assets match these filters.'\n : 'Register your first resource asset to start tracking production, reserves & emissions.'\n }\n action={\n <Button onClick={() => setDialogOpen(true)}>\n <Plus className=\"mr-1.5 h-4 w-4\" /> New asset\n </Button>\n }\n />\n ) : (\n <>\n <DataTable\n columns={columns}\n rows={rows}\n rowKey={(a) => a.id}\n onRowClick={(a) => navigateTo(`assets/${a.id}`)}\n rowLabel={(a) => `Open ${a.name}`}\n />\n <Pagination\n page={pager.page}\n pageSize={PAGE_SIZE}\n itemCount={rows.length}\n hasMore={data?.pageInfo?.hasMore ?? false}\n onPageChange={pager.onPageChange}\n />\n </>\n )}\n\n {/* New asset dialog */}\n <ResponsiveDialog\n open={dialogOpen}\n onOpenChange={(open) => {\n setDialogOpen(open);\n if (!open) resetForm();\n }}\n >\n <ResponsiveDialogContent>\n <ResponsiveDialogHeader>\n <ResponsiveDialogTitle>New asset</ResponsiveDialogTitle>\n <ResponsiveDialogDescription>\n Register a resource asset — a field, well, mine, plant, terminal or pipeline.\n </ResponsiveDialogDescription>\n </ResponsiveDialogHeader>\n\n <form\n id=\"createAssetForm\"\n onSubmit={(e) => {\n e.preventDefault();\n handleCreate();\n }}\n className=\"grid gap-4 py-2\"\n >\n <div className=\"grid gap-2 sm:grid-cols-2\">\n <div className=\"grid gap-1.5\">\n <Label htmlFor=\"assetName\">Name *</Label>\n <Input\n id=\"assetName\"\n value={form.name}\n onChange={(e) => setForm({ ...form, name: e.target.value })}\n placeholder=\"Rumaila North Field\"\n />\n </div>\n <div className=\"grid gap-1.5\">\n <Label htmlFor=\"assetCode\">Code</Label>\n <Input\n id=\"assetCode\"\n value={form.code}\n onChange={(e) => setForm({ ...form, code: e.target.value })}\n placeholder=\"AST-RMB-N\"\n />\n </div>\n </div>\n\n <div className=\"grid gap-2 sm:grid-cols-3\">\n <div className=\"grid gap-1.5\">\n <Label htmlFor=\"assetCommodity\">Commodity *</Label>\n <Select\n value={form.commodity}\n onValueChange={(v) => setForm({ ...form, commodity: v as TheCommodityType })}\n >\n <SelectTrigger id=\"assetCommodity\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {COMMODITIES.map((c) => (\n <SelectItem key={c} value={c}>\n {formatEnumLabel(c)}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n <div className=\"grid gap-1.5\">\n <Label htmlFor=\"assetKind\">Kind</Label>\n <Select\n value={form.kind}\n onValueChange={(v) => setForm({ ...form, kind: v as TheAssetKind })}\n >\n <SelectTrigger id=\"assetKind\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {ASSET_KINDS.map((k) => (\n <SelectItem key={k} value={k}>\n {formatEnumLabel(k)}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n <div className=\"grid gap-1.5\">\n <Label htmlFor=\"assetStatus\">Status</Label>\n <Select\n value={form.status}\n onValueChange={(v) => setForm({ ...form, status: v as TheAssetStatus })}\n >\n <SelectTrigger id=\"assetStatus\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {STATUS_FILTERS.filter((o) => o.value !== 'ALL').map((o) => (\n <SelectItem key={o.value} value={o.value}>\n {o.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n </div>\n\n <div className=\"grid gap-1.5\">\n <Label htmlFor=\"assetLocation\">Location</Label>\n <Input\n id=\"assetLocation\"\n value={form.location}\n onChange={(e) => setForm({ ...form, location: e.target.value })}\n placeholder=\"Basra, Iraq\"\n />\n </div>\n\n <div className=\"grid gap-2 sm:grid-cols-2\">\n <div className=\"grid gap-1.5\">\n <Label htmlFor=\"assetLat\">Latitude</Label>\n <Input\n id=\"assetLat\"\n type=\"number\"\n step=\"any\"\n value={form.latitude}\n onChange={(e) => setForm({ ...form, latitude: e.target.value })}\n placeholder=\"30.5085\"\n />\n </div>\n <div className=\"grid gap-1.5\">\n <Label htmlFor=\"assetLng\">Longitude</Label>\n <Input\n id=\"assetLng\"\n type=\"number\"\n step=\"any\"\n value={form.longitude}\n onChange={(e) => setForm({ ...form, longitude: e.target.value })}\n placeholder=\"47.7804\"\n />\n </div>\n </div>\n\n <div className=\"grid gap-2 sm:grid-cols-3\">\n <div className=\"grid gap-1.5 sm:col-span-1\">\n <Label htmlFor=\"assetCapacity\">Capacity / day</Label>\n <Input\n id=\"assetCapacity\"\n type=\"number\"\n min=\"0\"\n step=\"any\"\n value={form.capacityPerDay}\n onChange={(e) => setForm({ ...form, capacityPerDay: e.target.value })}\n placeholder=\"120000\"\n />\n </div>\n <div className=\"grid gap-1.5\">\n <Label htmlFor=\"assetUnit\">Capacity unit</Label>\n <Select\n value={form.capacityUnit}\n onValueChange={(v) => setForm({ ...form, capacityUnit: v as TheUnit })}\n >\n <SelectTrigger id=\"assetUnit\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {UNITS.map((u) => (\n <SelectItem key={u} value={u}>\n {formatEnumLabel(u)}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n <div className=\"grid gap-1.5\">\n <Label htmlFor=\"assetWi\">Working interest (%)</Label>\n <Input\n id=\"assetWi\"\n type=\"number\"\n min=\"0\"\n max=\"100\"\n step=\"any\"\n value={form.workingInterestPct}\n onChange={(e) => setForm({ ...form, workingInterestPct: e.target.value })}\n placeholder=\"47.5\"\n />\n </div>\n </div>\n\n <div className=\"grid gap-2 sm:grid-cols-2\">\n <div className=\"grid gap-1.5\">\n <Label htmlFor=\"assetDiscovery\">Field discovery</Label>\n <Input\n id=\"assetDiscovery\"\n type=\"date\"\n value={form.discoveryAt}\n onChange={(e) => setForm({ ...form, discoveryAt: e.target.value })}\n />\n </div>\n <div className=\"grid gap-1.5\">\n <Label htmlFor=\"assetArea\">Area (km²)</Label>\n <Input\n id=\"assetArea\"\n type=\"number\"\n min=\"0\"\n step=\"any\"\n value={form.area}\n onChange={(e) => setForm({ ...form, area: e.target.value })}\n placeholder=\"2600\"\n />\n </div>\n </div>\n\n <div className=\"grid gap-2 sm:grid-cols-2\">\n <div className=\"grid gap-1.5\">\n <Label htmlFor=\"assetReservoirType\">Reservoir type</Label>\n <Input\n id=\"assetReservoirType\"\n value={form.reservoirType}\n onChange={(e) => setForm({ ...form, reservoirType: e.target.value })}\n placeholder=\"Carbonate\"\n />\n </div>\n <div className=\"grid gap-1.5\">\n <Label htmlFor=\"assetWaterDepth\">Water depth (m)</Label>\n <Input\n id=\"assetWaterDepth\"\n type=\"number\"\n min=\"0\"\n step=\"any\"\n value={form.waterDepth}\n onChange={(e) => setForm({ ...form, waterDepth: e.target.value })}\n placeholder=\"Leave blank for onshore\"\n />\n </div>\n </div>\n\n {formError && <p className=\"text-sm text-status-error-text\">{formError}</p>}\n </form>\n\n <ResponsiveDialogFooter>\n <Button\n variant=\"outline\"\n type=\"button\"\n onClick={() => {\n setDialogOpen(false);\n resetForm();\n }}\n >\n Cancel\n </Button>\n <Button type=\"submit\" form=\"createAssetForm\" disabled={createAsset.isPending}>\n {createAsset.isPending ? 'Creating…' : 'Create asset'}\n </Button>\n </ResponsiveDialogFooter>\n </ResponsiveDialogContent>\n </ResponsiveDialog>\n </PageLayout>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AssetsPage.js","names":[],"sources":["../../../../src/theglobalfuel/pages/assets/AssetsPage.tsx"],"sourcesContent":["/**\n * Assets — the resource registry: list, filter & register energy/mineral assets.\n * @module theglobalfuel/pages/assets\n *\n * Reads `theListAssets` (cursor-paginated) with status / commodity / kind\n * filters; writes `theCreateAsset`. Rows drill into `assets/:id`. No mock data —\n * every field comes from the `wspace-theglobalfuel-svc` GraphQL contract.\n */\n\nimport { useMemo, useState } from 'react';\nimport { Plus, Fuel, MapPin } from 'lucide-react';\nimport {\n Button,\n Input,\n Label,\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n ResponsiveDialog,\n ResponsiveDialogContent,\n ResponsiveDialogHeader,\n ResponsiveDialogTitle,\n ResponsiveDialogDescription,\n ResponsiveDialogFooter,\n} from '@burdenoff/fe-libs/ui';\nimport {\n PageLayout,\n StatusBadge,\n DataTable,\n type Column,\n FilterTabs,\n type FilterOption,\n LoadingView,\n ErrorView,\n EmptyState,\n Pagination,\n} from '../../components';\nimport { useTheGlobalFuel } from '../../context';\nimport {\n useTheAssets,\n useTheCreateAsset,\n useCursorPager,\n useNotify,\n useTheAnalytics,\n useThePageView,\n useTheNativeControls,\n useTheTranslation,\n} from '../../hooks';\nimport {\n formatEnumLabel,\n formatVolume,\n formatPercent,\n formatRelativeTime,\n toBackendDate,\n} from '../../utils';\nimport type {\n TheAsset,\n TheAssetKind,\n TheAssetStatus,\n TheCommodityType,\n TheUnit,\n} from '../../types';\n\nconst STATUS_FILTERS: FilterOption<TheAssetStatus | 'ALL'>[] = [\n { value: 'ALL', label: 'All' },\n { value: 'EXPLORATION', label: 'Exploration' },\n { value: 'APPRAISAL', label: 'Appraisal' },\n { value: 'DEVELOPMENT', label: 'Development' },\n { value: 'PRODUCING', label: 'Producing' },\n { value: 'SUSPENDED', label: 'Suspended' },\n { value: 'DECOMMISSIONING', label: 'Decommissioning' },\n { value: 'RETIRED', label: 'Retired' },\n];\n\nconst ASSET_KINDS: TheAssetKind[] = [\n 'OIL_FIELD',\n 'GAS_FIELD',\n 'WELL',\n 'MINE',\n 'QUARRY',\n 'REFINERY',\n 'PROCESSING_PLANT',\n 'POWER_PLANT',\n 'SOLAR_FARM',\n 'WIND_FARM',\n 'STORAGE_TERMINAL',\n 'PIPELINE',\n];\n\nconst COMMODITIES: TheCommodityType[] = [\n 'CRUDE_OIL',\n 'NATURAL_GAS',\n 'LNG',\n 'COAL',\n 'ELECTRICITY',\n 'HYDROGEN',\n 'BIOFUEL',\n 'IRON_ORE',\n 'COPPER',\n 'BAUXITE',\n 'GOLD',\n 'LITHIUM',\n 'RARE_EARTH',\n];\n\nconst UNITS: TheUnit[] = ['BARRELS', 'CUBIC_METERS', 'TONNES', 'KILOGRAMS', 'MWH', 'GJ', 'MCF'];\n\nconst PAGE_SIZE = 25;\n\ninterface CreateFormState {\n name: string;\n code: string;\n commodity: TheCommodityType;\n kind: TheAssetKind;\n status: TheAssetStatus;\n location: string;\n latitude: string;\n longitude: string;\n capacityPerDay: string;\n capacityUnit: TheUnit;\n workingInterestPct: string;\n discoveryAt: string;\n area: string;\n reservoirType: string;\n waterDepth: string;\n}\n\nconst EMPTY_FORM: CreateFormState = {\n name: '',\n code: '',\n commodity: 'CRUDE_OIL',\n kind: 'OIL_FIELD',\n status: 'EXPLORATION',\n location: '',\n latitude: '',\n longitude: '',\n capacityPerDay: '',\n capacityUnit: 'BARRELS',\n workingInterestPct: '',\n discoveryAt: '',\n area: '',\n reservoirType: '',\n waterDepth: '',\n};\n\nexport function AssetsPage() {\n useThePageView('assets');\n const t = useTheTranslation();\n const { navigateTo } = useTheGlobalFuel();\n const notify = useNotify();\n const { haptic } = useTheNativeControls();\n const { trackAssetCreateClicked, trackAssetCreated } = useTheAnalytics();\n const [status, setStatus] = useState<TheAssetStatus | 'ALL'>('ALL');\n const [commodity, setCommodity] = useState<TheCommodityType | 'ALL'>('ALL');\n const [kind, setKind] = useState<TheAssetKind | 'ALL'>('ALL');\n const pager = useCursorPager();\n const [dialogOpen, setDialogOpen] = useState(false);\n const [form, setForm] = useState<CreateFormState>(EMPTY_FORM);\n const [formError, setFormError] = useState<string | null>(null);\n\n const { data, isLoading, isError, refetch } = useTheAssets({\n status: status === 'ALL' ? undefined : status,\n commodity: commodity === 'ALL' ? undefined : commodity,\n kind: kind === 'ALL' ? undefined : kind,\n pagination: { limit: PAGE_SIZE, offset: pager.page * PAGE_SIZE },\n });\n const createAsset = useTheCreateAsset();\n\n const rows = useMemo(() => data?.items ?? [], [data]);\n const filtersActive = status !== 'ALL' || commodity !== 'ALL' || kind !== 'ALL';\n\n const columns: Column<TheAsset>[] = [\n {\n key: 'name',\n header: 'Asset',\n // The Asset column carries the icon + the two-line stack (name + code),\n // and every other column auto-sizes from its own content. Without a\n // min-width the Asset column is squeezed down to ~2–3 characters before\n // any other column gives up width — see BOFF-8082. Pinning a min-width\n // here keeps common 15–25 char names identifiable at a glance, and the\n // `title` attributes on the inner <p>s keep the full values one hover\n // away when a name does run longer than the column.\n className: 'min-w-[14rem] sm:min-w-[18rem]',\n render: (a) => (\n <div className=\"flex items-center gap-3\">\n <span className=\"grid size-9 shrink-0 place-items-center rounded-lg bg-bg-sunken text-text-secondary\">\n <Fuel className=\"h-4 w-4\" />\n </span>\n <div className=\"min-w-0\">\n <p className=\"truncate font-semibold text-text-primary\" title={a.name}>\n {a.name}\n </p>\n {a.code && (\n <p className=\"truncate text-xs text-text-tertiary\" title={a.code}>\n {a.code}\n </p>\n )}\n </div>\n </div>\n ),\n },\n {\n key: 'kind',\n header: 'Kind',\n hideOnMobile: true,\n render: (a) => <span className=\"text-text-secondary\">{formatEnumLabel(a.kind)}</span>,\n },\n {\n key: 'commodity',\n header: 'Commodity',\n hideOnMobile: true,\n render: (a) => <span className=\"text-text-secondary\">{formatEnumLabel(a.commodity)}</span>,\n },\n { key: 'status', header: 'Status', render: (a) => <StatusBadge status={a.status} /> },\n {\n key: 'capacity',\n header: 'Capacity',\n align: 'right',\n hideOnMobile: true,\n sortValue: (a) => a.capacityPerDay,\n render: (a) =>\n a.capacityPerDay > 0 ? (\n <span className=\"tabular-nums text-text-secondary\">\n {formatVolume(a.capacityPerDay, a.capacityUnit)}/day\n </span>\n ) : (\n <span className=\"text-text-tertiary\">—</span>\n ),\n },\n {\n key: 'workingInterest',\n header: 'Working interest',\n align: 'right',\n hideOnMobile: true,\n sortValue: (a) => a.workingInterestPct,\n render: (a) => (\n <span className=\"tabular-nums text-text-secondary\">\n {formatPercent(a.workingInterestPct)}\n </span>\n ),\n },\n {\n key: 'location',\n header: 'Location',\n hideOnMobile: true,\n render: (a) =>\n a.location ? (\n <span className=\"inline-flex items-center gap-1.5 text-text-secondary\">\n <MapPin className=\"h-3.5 w-3.5 shrink-0 text-text-tertiary\" />\n {a.location}\n </span>\n ) : (\n <span className=\"text-text-tertiary\">—</span>\n ),\n },\n {\n key: 'updated',\n header: 'Updated',\n align: 'right',\n hideOnMobile: true,\n render: (a) => <span className=\"text-text-tertiary\">{formatRelativeTime(a.updatedAt)}</span>,\n },\n ];\n\n const resetForm = () => {\n setForm(EMPTY_FORM);\n setFormError(null);\n };\n\n const handleCreate = async () => {\n if (!form.name.trim()) {\n setFormError('Asset name is required.');\n return;\n }\n setFormError(null);\n haptic('light');\n trackAssetCreateClicked();\n try {\n const created = await createAsset.mutateAsync({\n name: form.name.trim(),\n code: form.code.trim() || null,\n commodity: form.commodity,\n kind: form.kind,\n status: form.status,\n location: form.location.trim() || null,\n latitude: form.latitude ? Number(form.latitude) : null,\n longitude: form.longitude ? Number(form.longitude) : null,\n capacityPerDay: form.capacityPerDay ? Number(form.capacityPerDay) : null,\n capacityUnit: form.capacityUnit,\n workingInterestPct: form.workingInterestPct ? Number(form.workingInterestPct) : null,\n discoveryAt: toBackendDate(form.discoveryAt) || null,\n area: form.area ? Number(form.area) : null,\n reservoirType: form.reservoirType.trim() || null,\n waterDepth: form.waterDepth ? Number(form.waterDepth) : null,\n });\n trackAssetCreated(created.id);\n notify.success('Asset created');\n setDialogOpen(false);\n resetForm();\n navigateTo(`assets/${created.id}`);\n } catch (err) {\n notify.fromError(err);\n setFormError(err instanceof Error ? err.message : 'Failed to create asset.');\n }\n };\n\n return (\n <PageLayout\n title={t('theglobalfuel.pages.assets.title', 'Assets')}\n description={t(\n 'theglobalfuel.pages.assets.description',\n 'Resource registry — fields, wells, mines, plants, terminals & pipelines across every commodity.'\n )}\n dataTour=\"theglobalfuel-assets-page\"\n actions={\n <Button onClick={() => setDialogOpen(true)}>\n <Plus className=\"mr-1.5 h-4 w-4\" /> New asset\n </Button>\n }\n >\n <div className=\"mb-5 flex flex-wrap items-center gap-3\">\n <FilterTabs\n options={STATUS_FILTERS}\n value={status}\n onChange={(v) => {\n setStatus(v);\n pager.reset();\n }}\n />\n <Select\n value={commodity}\n onValueChange={(v) => {\n setCommodity(v as TheCommodityType | 'ALL');\n pager.reset();\n }}\n >\n <SelectTrigger className=\"w-48\" aria-label=\"Filter by commodity\">\n <SelectValue placeholder=\"All commodities\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"ALL\">All commodities</SelectItem>\n {COMMODITIES.map((c) => (\n <SelectItem key={c} value={c}>\n {formatEnumLabel(c)}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <Select\n value={kind}\n onValueChange={(v) => {\n setKind(v as TheAssetKind | 'ALL');\n pager.reset();\n }}\n >\n <SelectTrigger className=\"w-48\" aria-label=\"Filter by kind\">\n <SelectValue placeholder=\"All kinds\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"ALL\">All kinds</SelectItem>\n {ASSET_KINDS.map((k) => (\n <SelectItem key={k} value={k}>\n {formatEnumLabel(k)}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n\n {isLoading ? (\n <LoadingView label=\"Loading assets…\" />\n ) : isError ? (\n <ErrorView message=\"Couldn't load assets.\" onRetry={() => refetch()} />\n ) : rows.length === 0 ? (\n <EmptyState\n illustration=\"empty-data\"\n icon={<Fuel className=\"h-10 w-10\" />}\n title=\"No assets yet\"\n description={\n filtersActive\n ? 'No assets match these filters.'\n : 'Register your first resource asset to start tracking production, reserves & emissions.'\n }\n action={\n <Button onClick={() => setDialogOpen(true)}>\n <Plus className=\"mr-1.5 h-4 w-4\" /> New asset\n </Button>\n }\n />\n ) : (\n <>\n <DataTable\n columns={columns}\n rows={rows}\n rowKey={(a) => a.id}\n onRowClick={(a) => navigateTo(`assets/${a.id}`)}\n rowLabel={(a) => `Open ${a.name}`}\n />\n <Pagination\n page={pager.page}\n pageSize={PAGE_SIZE}\n itemCount={rows.length}\n hasMore={data?.pageInfo?.hasMore ?? false}\n onPageChange={pager.onPageChange}\n />\n </>\n )}\n\n {/* New asset dialog */}\n <ResponsiveDialog\n open={dialogOpen}\n onOpenChange={(open) => {\n setDialogOpen(open);\n if (!open) resetForm();\n }}\n >\n <ResponsiveDialogContent>\n <ResponsiveDialogHeader>\n <ResponsiveDialogTitle>New asset</ResponsiveDialogTitle>\n <ResponsiveDialogDescription>\n Register a resource asset — a field, well, mine, plant, terminal or pipeline.\n </ResponsiveDialogDescription>\n </ResponsiveDialogHeader>\n\n <form\n id=\"createAssetForm\"\n onSubmit={(e) => {\n e.preventDefault();\n handleCreate();\n }}\n className=\"grid gap-4 py-2\"\n >\n <div className=\"grid gap-2 sm:grid-cols-2\">\n <div className=\"grid gap-1.5\">\n <Label htmlFor=\"assetName\">Name *</Label>\n <Input\n id=\"assetName\"\n value={form.name}\n onChange={(e) => setForm({ ...form, name: e.target.value })}\n placeholder=\"Rumaila North Field\"\n />\n </div>\n <div className=\"grid gap-1.5\">\n <Label htmlFor=\"assetCode\">Code</Label>\n <Input\n id=\"assetCode\"\n value={form.code}\n onChange={(e) => setForm({ ...form, code: e.target.value })}\n placeholder=\"AST-RMB-N\"\n />\n </div>\n </div>\n\n <div className=\"grid gap-2 sm:grid-cols-3\">\n <div className=\"grid gap-1.5\">\n <Label htmlFor=\"assetCommodity\">Commodity *</Label>\n <Select\n value={form.commodity}\n onValueChange={(v) => setForm({ ...form, commodity: v as TheCommodityType })}\n >\n <SelectTrigger id=\"assetCommodity\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {COMMODITIES.map((c) => (\n <SelectItem key={c} value={c}>\n {formatEnumLabel(c)}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n <div className=\"grid gap-1.5\">\n <Label htmlFor=\"assetKind\">Kind</Label>\n <Select\n value={form.kind}\n onValueChange={(v) => setForm({ ...form, kind: v as TheAssetKind })}\n >\n <SelectTrigger id=\"assetKind\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {ASSET_KINDS.map((k) => (\n <SelectItem key={k} value={k}>\n {formatEnumLabel(k)}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n <div className=\"grid gap-1.5\">\n <Label htmlFor=\"assetStatus\">Status</Label>\n <Select\n value={form.status}\n onValueChange={(v) => setForm({ ...form, status: v as TheAssetStatus })}\n >\n <SelectTrigger id=\"assetStatus\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {STATUS_FILTERS.filter((o) => o.value !== 'ALL').map((o) => (\n <SelectItem key={o.value} value={o.value}>\n {o.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n </div>\n\n <div className=\"grid gap-1.5\">\n <Label htmlFor=\"assetLocation\">Location</Label>\n <Input\n id=\"assetLocation\"\n value={form.location}\n onChange={(e) => setForm({ ...form, location: e.target.value })}\n placeholder=\"Basra, Iraq\"\n />\n </div>\n\n <div className=\"grid gap-2 sm:grid-cols-2\">\n <div className=\"grid gap-1.5\">\n <Label htmlFor=\"assetLat\">Latitude</Label>\n <Input\n id=\"assetLat\"\n type=\"number\"\n step=\"any\"\n value={form.latitude}\n onChange={(e) => setForm({ ...form, latitude: e.target.value })}\n placeholder=\"30.5085\"\n />\n </div>\n <div className=\"grid gap-1.5\">\n <Label htmlFor=\"assetLng\">Longitude</Label>\n <Input\n id=\"assetLng\"\n type=\"number\"\n step=\"any\"\n value={form.longitude}\n onChange={(e) => setForm({ ...form, longitude: e.target.value })}\n placeholder=\"47.7804\"\n />\n </div>\n </div>\n\n <div className=\"grid gap-2 sm:grid-cols-3\">\n <div className=\"grid gap-1.5 sm:col-span-1\">\n <Label htmlFor=\"assetCapacity\">Capacity / day</Label>\n <Input\n id=\"assetCapacity\"\n type=\"number\"\n min=\"0\"\n step=\"any\"\n value={form.capacityPerDay}\n onChange={(e) => setForm({ ...form, capacityPerDay: e.target.value })}\n placeholder=\"120000\"\n />\n </div>\n <div className=\"grid gap-1.5\">\n <Label htmlFor=\"assetUnit\">Capacity unit</Label>\n <Select\n value={form.capacityUnit}\n onValueChange={(v) => setForm({ ...form, capacityUnit: v as TheUnit })}\n >\n <SelectTrigger id=\"assetUnit\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {UNITS.map((u) => (\n <SelectItem key={u} value={u}>\n {formatEnumLabel(u)}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n <div className=\"grid gap-1.5\">\n <Label htmlFor=\"assetWi\">Working interest (%)</Label>\n <Input\n id=\"assetWi\"\n type=\"number\"\n min=\"0\"\n max=\"100\"\n step=\"any\"\n value={form.workingInterestPct}\n onChange={(e) => setForm({ ...form, workingInterestPct: e.target.value })}\n placeholder=\"47.5\"\n />\n </div>\n </div>\n\n <div className=\"grid gap-2 sm:grid-cols-2\">\n <div className=\"grid gap-1.5\">\n <Label htmlFor=\"assetDiscovery\">Field discovery</Label>\n <Input\n id=\"assetDiscovery\"\n type=\"date\"\n value={form.discoveryAt}\n onChange={(e) => setForm({ ...form, discoveryAt: e.target.value })}\n />\n </div>\n <div className=\"grid gap-1.5\">\n <Label htmlFor=\"assetArea\">Area (km²)</Label>\n <Input\n id=\"assetArea\"\n type=\"number\"\n min=\"0\"\n step=\"any\"\n value={form.area}\n onChange={(e) => setForm({ ...form, area: e.target.value })}\n placeholder=\"2600\"\n />\n </div>\n </div>\n\n <div className=\"grid gap-2 sm:grid-cols-2\">\n <div className=\"grid gap-1.5\">\n <Label htmlFor=\"assetReservoirType\">Reservoir type</Label>\n <Input\n id=\"assetReservoirType\"\n value={form.reservoirType}\n onChange={(e) => setForm({ ...form, reservoirType: e.target.value })}\n placeholder=\"Carbonate\"\n />\n </div>\n <div className=\"grid gap-1.5\">\n <Label htmlFor=\"assetWaterDepth\">Water depth (m)</Label>\n <Input\n id=\"assetWaterDepth\"\n type=\"number\"\n min=\"0\"\n step=\"any\"\n value={form.waterDepth}\n onChange={(e) => setForm({ ...form, waterDepth: e.target.value })}\n placeholder=\"Leave blank for onshore\"\n />\n </div>\n </div>\n\n {formError && <p className=\"text-sm text-status-error-text\">{formError}</p>}\n </form>\n\n <ResponsiveDialogFooter>\n <Button\n variant=\"outline\"\n type=\"button\"\n onClick={() => {\n setDialogOpen(false);\n resetForm();\n }}\n >\n Cancel\n </Button>\n <Button type=\"submit\" form=\"createAssetForm\" disabled={createAsset.isPending}>\n {createAsset.isPending ? 'Creating…' : 'Create asset'}\n </Button>\n </ResponsiveDialogFooter>\n </ResponsiveDialogContent>\n </ResponsiveDialog>\n </PageLayout>\n );\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED