@equinor/echo-framework 0.20.1 → 0.20.4
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/index.cjs.js +1 -1
- package/package.json +1 -1
- package/src/index.d.ts +9 -11
- package/src/lib/components/contextualAppLinks/externalLinkButtons/iconButtonSpinner.d.ts +0 -1
- package/src/lib/components/errorBoundary/components/chunkLoadErrorMessage.d.ts +0 -1
- package/src/lib/components/fullScreenButtons/FullScreenModeButton.d.ts +3 -0
- package/src/lib/components/fullScreenButtons/index.d.ts +1 -1
- package/src/lib/components/labelledValueGrid/labelledValue.d.ts +0 -1
- package/src/lib/components/labelledValueGrid/labelledValueGrid.d.ts +0 -1
- package/src/lib/components/lazyLoading/appLoadingIndicator.d.ts +0 -1
- package/src/lib/components/listItemAdditionalInfoRow/listItemAdditionalInfoRow.d.ts +0 -1
- package/src/lib/components/prepview/common/info/block/InfoBlock.d.ts +1 -2
- package/src/lib/components/prepview/hooks/useIsMobile.d.ts +1 -2
- package/src/lib/components/prepview/notification/Notification.d.ts +0 -1
- package/src/lib/components/prepview/notification/details/DetailsNotification.d.ts +0 -1
- package/src/lib/components/prepview/notification/header/NotificationHeader.d.ts +0 -1
- package/src/lib/components/prepview/panels/history/TagHistory.d.ts +0 -1
- package/src/lib/components/prepview/panels/history/TagHistoryGroup.d.ts +0 -1
- package/src/lib/components/prepview/panels/history/items/Items.d.ts +0 -1
- package/src/lib/components/prepview/panels/history/items/PunchItem.d.ts +0 -1
- package/src/lib/components/prepview/punch/Punch.d.ts +0 -1
- package/src/lib/components/prepview/punch/details/Details.d.ts +0 -1
- package/src/lib/components/prepview/punch/header/Header.d.ts +0 -1
- package/src/lib/components/prepview/types/shared.d.ts +0 -1
- package/src/lib/components/prepview/workorder/WorkOrder.d.ts +0 -1
- package/src/lib/components/prepview/workorder/details/DetailsWorkOrder.d.ts +0 -1
- package/src/lib/components/prepview/workorder/header/WorkOrderHeader.d.ts +0 -1
- package/src/lib/components/realTimeData/RealTimePopoverButton.d.ts +0 -1
- package/src/lib/components/realTimeData/components/IMSDropdown/RealTimeIMSDropdown.d.ts +0 -1
- package/src/lib/components/realTimeData/components/connectorForIMSTag/RealTimeConnectorForIMSTag.d.ts +0 -1
- package/src/lib/components/requestAccess/RequestProCoSysAccess.d.ts +1 -0
- package/src/lib/components/requestAccess/hooks/fetchPlantInfo.d.ts +2 -0
- package/src/lib/components/spinner/spinner.d.ts +0 -1
- package/src/lib/components/spinner/tabSpinner.d.ts +1 -0
- package/src/lib/components/tagNumber/tagNumber.d.ts +0 -1
- package/src/lib/components/workOrderListItem/WorkOrderListItem.d.ts +2 -0
- package/src/lib/coreApplication/EchoToolBar.d.ts +0 -1
- package/src/lib/feature/equipment/api/api-equipmentWithMeasuringPoints.d.ts +2 -1
- package/src/lib/feature/equipment/components/equipmentItemHeader/NavigateToSapDialog.d.ts +0 -1
- package/src/lib/feature/equipment/components/equipmentItemHeader/equipmentItemHeader.d.ts +0 -1
- package/src/lib/feature/equipment/components/equipmentItemHeader/equipmentItemSubHeader.d.ts +0 -1
- package/src/lib/feature/equipment/components/equipmentTabs/MeasuringPointsForEquipmentItem.d.ts +8 -0
- package/src/lib/feature/equipment/components/equipmentTabs/equipmentTabs.d.ts +0 -3
- package/src/lib/feature/equipment/components/fullEquipmentItem/fullEquipmentItem.d.ts +0 -1
- package/src/lib/feature/equipment/hooks/useEquipmentWithMeasuringPoints.d.ts +4 -0
- package/src/lib/feature/equipment/hooks/useOpenEquipmentDetails.d.ts +2 -2
- package/src/lib/feature/equipment/index.d.ts +0 -1
- package/src/lib/feature/equipment/utils/equipmentUtils.d.ts +13 -13
- package/src/lib/feature/globalSelection/globalSelectionStore/globalSelectionStore.d.ts +1 -1
- package/src/lib/feature/globalSelection/globalSelectionStore/globalSelectionStore.types.d.ts +5 -8
- package/src/lib/feature/globalSelection/globalSelectionStore/globalSelectionStore.utils.d.ts +5 -3
- package/src/lib/feature/globalSelection/index.d.ts +2 -1
- package/src/lib/feature/measuringPoint/components/measuringPointDetails/measuringPointHistoryList.d.ts +0 -1
- package/src/lib/services/componentRegistry/componentRegistry.d.ts +0 -1
- package/src/lib/services/leftPanelNavigation/leftPanelNavigation.store.d.ts +1 -1
- package/src/lib/services/leftPanelNavigation/previous.d.ts +0 -1
- package/src/lib/utils/openIn3d/tagLists.d.ts +1 -1
- package/src/lib/components/fullScreenButtons/FullScreenModeButtons.d.ts +0 -7
package/package.json
CHANGED
package/src/index.d.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { getEquipmentWithMeasuringPointsFromApi } from './lib/feature/equipment/api/api-equipmentWithMeasuringPoints';
|
|
3
1
|
import { getLegendStatusColor } from './lib/feature/legend/utils/legendUtils';
|
|
4
2
|
import './lib/globalStyles.css';
|
|
5
3
|
import { getPlantsInfo, getTagDetails } from './lib/services/api';
|
|
@@ -11,6 +9,7 @@ export { SelectedItemsMenu } from './lib/components/openIn3d/SelectedItemsMenu';
|
|
|
11
9
|
export { PrepviewButton } from './lib/components/prepviewButton/prepviewButton';
|
|
12
10
|
export { RequestProCoSysAccess } from './lib/components/requestAccess/RequestProCoSysAccess';
|
|
13
11
|
export { RequestSapAccess } from './lib/components/requestAccess/RequestSapAccess';
|
|
12
|
+
export { useFetchPlantInfo } from './lib/components/requestAccess/hooks/fetchPlantInfo';
|
|
14
13
|
export { WorkOrderListItem } from './lib/components/workOrderListItem';
|
|
15
14
|
export * from './lib/coreApplication';
|
|
16
15
|
export * from './lib/feature/equipment/index';
|
|
@@ -58,7 +57,7 @@ export * from './lib/hooks';
|
|
|
58
57
|
declare const EchoFramework: Readonly<{
|
|
59
58
|
Utils: Readonly<{
|
|
60
59
|
Navigation: Readonly<{
|
|
61
|
-
goToExternalLink: (link: string, redirect?: boolean
|
|
60
|
+
goToExternalLink: (link: string, redirect?: boolean) => void;
|
|
62
61
|
}>;
|
|
63
62
|
Color: Readonly<{
|
|
64
63
|
getLegendStatusColor: typeof getLegendStatusColor;
|
|
@@ -68,22 +67,22 @@ declare const EchoFramework: Readonly<{
|
|
|
68
67
|
useEchoHistory(): (path: string, params?: {
|
|
69
68
|
[key: string]: string;
|
|
70
69
|
} | undefined, state?: any) => void;
|
|
71
|
-
useHas3dAccess(plantCode?: string
|
|
70
|
+
useHas3dAccess(plantCode?: string): boolean;
|
|
72
71
|
useIsFullScreenModeEnabled(): boolean;
|
|
73
72
|
useOpenPdfFile(): (args: {
|
|
74
73
|
instCode: string;
|
|
75
74
|
docNo: string;
|
|
76
75
|
fileId: string | number;
|
|
77
76
|
revNo: string;
|
|
78
|
-
tagNo?: string
|
|
77
|
+
tagNo?: string;
|
|
79
78
|
}) => void;
|
|
80
79
|
useOpenPdfFileUrl(): (args: {
|
|
81
80
|
instCode: string;
|
|
82
81
|
fileUrl: string;
|
|
83
|
-
tagNo?: string
|
|
82
|
+
tagNo?: string;
|
|
84
83
|
}) => void;
|
|
85
|
-
usePlantAvailableIn3d(plantCode?: string
|
|
86
|
-
usePlantAvailableIn3dWeb(plantCode?: string
|
|
84
|
+
usePlantAvailableIn3d(plantCode?: string): boolean;
|
|
85
|
+
usePlantAvailableIn3dWeb(plantCode?: string): boolean;
|
|
87
86
|
useScreenOrientation(): import("./lib/types/hookLibrary").ScreenOrientation;
|
|
88
87
|
useScreenValues(): {
|
|
89
88
|
isScreenMobileSize: boolean;
|
|
@@ -99,7 +98,7 @@ declare const EchoFramework: Readonly<{
|
|
|
99
98
|
hasError: boolean;
|
|
100
99
|
};
|
|
101
100
|
useSetActiveTagNo: () => import("./lib/types/hookLibrary").SetActiveTagNo;
|
|
102
|
-
useContextMenuDataInfo: (tagNo: string, expanded: boolean, setActivePanel?: (
|
|
101
|
+
useContextMenuDataInfo: (tagNo: string, expanded: boolean, setActivePanel?: () => void) => import("dist/libs/echo-components/src").DataInformation[];
|
|
103
102
|
useTagData: () => import("./lib/types/hookLibrary").TagData;
|
|
104
103
|
useIsContextMenuInfoLoading: () => boolean;
|
|
105
104
|
useSetActiveCommPackNo: () => import("./lib/types/hookLibrary").SetActiveCommPackNo;
|
|
@@ -123,12 +122,11 @@ declare const EchoFramework: Readonly<{
|
|
|
123
122
|
APIs: Readonly<{
|
|
124
123
|
getPlantsInfo: typeof getPlantsInfo;
|
|
125
124
|
getTagDetails: typeof getTagDetails;
|
|
126
|
-
getTemporarilyEchoHubListFor3D: (instCode: string, request: import("./lib/types/api-echohub").TemporaryEchoHubListDto, abortSignal?: AbortSignal | undefined, withoutBaseUrl?: boolean
|
|
125
|
+
getTemporarilyEchoHubListFor3D: (instCode: string, request: import("./lib/types/api-echohub").TemporaryEchoHubListDto, abortSignal?: AbortSignal | undefined, withoutBaseUrl?: boolean) => Promise<{
|
|
127
126
|
app3dUrl: string;
|
|
128
127
|
web3dUrl: string;
|
|
129
128
|
}>;
|
|
130
129
|
createTemporarilyEchoHubListFor3D: (request: import("./lib/types/api-echohub").TemporaryEchoHubListDto, abortSignal?: AbortSignal | undefined) => Promise<import("./lib/types/api-echohub").TemporaryHubListCreatedResponse>;
|
|
131
|
-
getEquipmentWithMeasuringPointsFromApi: typeof getEquipmentWithMeasuringPointsFromApi;
|
|
132
130
|
}>;
|
|
133
131
|
}>;
|
|
134
132
|
export default EchoFramework;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
interface InfoBlockType {
|
|
3
2
|
label: string;
|
|
4
3
|
stretched?: boolean;
|
|
@@ -6,5 +5,5 @@ interface InfoBlockType {
|
|
|
6
5
|
children: JSX.Element | string[] | string | number;
|
|
7
6
|
contentClassName?: string;
|
|
8
7
|
}
|
|
9
|
-
declare function InfoBlock({ label, stretched, fit, children, contentClassName
|
|
8
|
+
declare function InfoBlock({ label, stretched, fit, children, contentClassName }: InfoBlockType): JSX.Element;
|
|
10
9
|
export { InfoBlock };
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import { HistoricNotificationItem, HistoricWorkOrderItem, HistoricPunchItem } from '../../../types';
|
|
3
2
|
import { WorkItemType } from '../../../utils';
|
|
4
3
|
type Items = Array<HistoricNotificationItem | HistoricWorkOrderItem | HistoricPunchItem>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const TabSpinner: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -9,6 +9,8 @@ export interface WorkOrderListItemProps {
|
|
|
9
9
|
iconName?: string;
|
|
10
10
|
workOrderDateType?: WorkOrderDateType;
|
|
11
11
|
className?: string;
|
|
12
|
+
cardClassName?: string;
|
|
13
|
+
footer?: React.ReactNode;
|
|
12
14
|
}
|
|
13
15
|
declare function WorkOrderListItem(props: WorkOrderListItemProps): import("react/jsx-runtime").JSX.Element;
|
|
14
16
|
export { WorkOrderListItem };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { EquipmentWithMeasuringPoints } from '../types/equipmentWithMeasuringPoints';
|
|
2
|
-
export declare function
|
|
2
|
+
export declare function getEquipmentFromApi({ equipmentId, includeMeasuringPoints }: {
|
|
3
3
|
equipmentId: string;
|
|
4
|
+
includeMeasuringPoints?: boolean;
|
|
4
5
|
}): Promise<EquipmentWithMeasuringPoints[]>;
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { MeasuringPointDto } from '../../../measuringPoint';
|
|
3
1
|
import { Equipment } from '../../types/equipment';
|
|
4
2
|
export interface EquipmentTabsProps {
|
|
5
3
|
equipment: Equipment;
|
|
6
|
-
measuringPoints: MeasuringPointDto[];
|
|
7
4
|
tagNo: string;
|
|
8
5
|
}
|
|
9
6
|
export declare const EquipmentTabs: React.FC<EquipmentTabsProps>;
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { EquipmentWithMeasuringPoints } from '../types/equipmentWithMeasuringPoints';
|
|
2
|
+
export declare function useEquipmentWithoutMeasuringPoints(equipmentId: string): {
|
|
3
|
+
status: 'error' | 'success' | 'pending';
|
|
4
|
+
equipmentWithMeasuringPoints: EquipmentWithMeasuringPoints[];
|
|
5
|
+
};
|
|
2
6
|
export declare function useEquipmentWithMeasuringPoints(equipmentId: string): {
|
|
3
7
|
status: 'error' | 'success' | 'pending';
|
|
4
8
|
equipmentWithMeasuringPoints: EquipmentWithMeasuringPoints[];
|
|
@@ -6,6 +6,6 @@ export declare function useOpenEquipmentDetails(): (args: {
|
|
|
6
6
|
equipmentId: string;
|
|
7
7
|
tagNo: string;
|
|
8
8
|
plantNo: string;
|
|
9
|
-
panelKey?: string
|
|
10
|
-
keepLastNavigationItem?: boolean
|
|
9
|
+
panelKey?: string;
|
|
10
|
+
keepLastNavigationItem?: boolean;
|
|
11
11
|
}) => void;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export { getEquipmentWithMeasuringPointsFromApi } from './api/api-equipmentWithMeasuringPoints';
|
|
2
1
|
export { EquipmentItemHeader, EquipmentItemInfo, EquipmentListItem, EquipmentTabs } from './components';
|
|
3
2
|
export { useOpenEquipmentDetails } from './hooks/useOpenEquipmentDetails';
|
|
4
3
|
export type { Equipment } from './types/equipment';
|
|
@@ -14,19 +14,19 @@ export declare const openEquipmentIn3dWeb: ({ equipmentId, e3dRef, goToLink, pat
|
|
|
14
14
|
export declare const is3DEquipment: (equipment: Equipment) => boolean;
|
|
15
15
|
export declare const sortMeasurementsInMeasuringPointsByNewestFirst: (measuringPoints: MeasuringPointDto[]) => {
|
|
16
16
|
measuringPointId: string;
|
|
17
|
-
measuringPosition?: string
|
|
18
|
-
measuringPoint?: string
|
|
19
|
-
functionalLocationId?: string
|
|
20
|
-
tagPlantId?: string
|
|
21
|
-
tagId?: string
|
|
22
|
-
equipmentId?: string
|
|
23
|
-
quantitativeCharacteristicId?: string
|
|
24
|
-
quantitativeCharacteristicUnit?: string
|
|
25
|
-
positionDetails_CoordinateSystemName?: string
|
|
26
|
-
positionDetails_E3DReferenceNumber?: string
|
|
27
|
-
positionDetails_CoordinateEast?: string
|
|
28
|
-
positionDetails_CoordinateNorth?: string
|
|
29
|
-
positionDetails_CoordinateUp?: string
|
|
17
|
+
measuringPosition?: string;
|
|
18
|
+
measuringPoint?: string;
|
|
19
|
+
functionalLocationId?: string;
|
|
20
|
+
tagPlantId?: string;
|
|
21
|
+
tagId?: string;
|
|
22
|
+
equipmentId?: string;
|
|
23
|
+
quantitativeCharacteristicId?: string;
|
|
24
|
+
quantitativeCharacteristicUnit?: string;
|
|
25
|
+
positionDetails_CoordinateSystemName?: string;
|
|
26
|
+
positionDetails_E3DReferenceNumber?: string;
|
|
27
|
+
positionDetails_CoordinateEast?: string;
|
|
28
|
+
positionDetails_CoordinateNorth?: string;
|
|
29
|
+
positionDetails_CoordinateUp?: string;
|
|
30
30
|
measurements: import("../../measuringPoint").MeasurementDto[];
|
|
31
31
|
}[];
|
|
32
32
|
export {};
|
|
@@ -8,7 +8,7 @@ export declare const useGlobalSelectionStore: import("zustand").UseBoundStore<Om
|
|
|
8
8
|
(listener: (selectedState: GlobalSelectionStore, previousSelectedState: GlobalSelectionStore) => void): () => void;
|
|
9
9
|
<U>(selector: (state: GlobalSelectionStore) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: {
|
|
10
10
|
equalityFn?: ((a: U, b: U) => boolean) | undefined;
|
|
11
|
-
fireImmediately?: boolean
|
|
11
|
+
fireImmediately?: boolean;
|
|
12
12
|
} | undefined): () => void;
|
|
13
13
|
};
|
|
14
14
|
}, "setState"> & {
|
package/src/lib/feature/globalSelection/globalSelectionStore/globalSelectionStore.types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TagSummaryDto } from '@equinor/echo-search';
|
|
1
|
+
import { ResultValue, TagSummaryDto } from '@equinor/echo-search';
|
|
2
2
|
import { Equipment } from '../../equipment';
|
|
3
3
|
export declare enum GlobalSelectionItemType {
|
|
4
4
|
WorkOrder = "WorkOrder",
|
|
@@ -41,20 +41,17 @@ export declare enum GlobalSelectionItemErrorStatuses {
|
|
|
41
41
|
}
|
|
42
42
|
export interface GlobalSelectionStore {
|
|
43
43
|
lists: GlobalSelectionListUnion[];
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
addWorkOrdersToSelection: (args: {
|
|
45
|
+
workOrders: Readonly<OptimizedWorkOrderDto[]>;
|
|
46
46
|
}) => void;
|
|
47
47
|
addTagToSelection: (args: {
|
|
48
48
|
tagId: string;
|
|
49
|
-
}) =>
|
|
50
|
-
replaceWorkOrderSelection: (args: {
|
|
51
|
-
workOrders: OptimizedWorkOrderDto[];
|
|
52
|
-
}) => void;
|
|
49
|
+
}) => Promise<ResultValue<TagSummaryDto>>;
|
|
53
50
|
removeItemFromSelection: (args: {
|
|
54
51
|
itemId: string;
|
|
55
52
|
}) => void;
|
|
56
53
|
setNotFoundItems: (args: {
|
|
57
|
-
itemIds: string[]
|
|
54
|
+
itemIds: Readonly<string[]>;
|
|
58
55
|
}) => void;
|
|
59
56
|
resetItemNotFoundStates: () => void;
|
|
60
57
|
resetState: () => void;
|
package/src/lib/feature/globalSelection/globalSelectionStore/globalSelectionStore.utils.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare function
|
|
3
|
-
export declare function
|
|
1
|
+
import { GlobalSelectionGenericItem, GlobalSelectionItemErrorStatuses, GlobalSelectionItemType, GlobalSelectionItemTypeToDataMap, GlobalSelectionListUnion, GlobalSelectionStore } from './globalSelectionStore.types';
|
|
2
|
+
export declare function toGlobalSelectionItem<T extends GlobalSelectionItemTypeToDataMap[K], K extends GlobalSelectionItemType>(item: T, type: K, idSelector: (item: T) => string): GlobalSelectionGenericItem<K>;
|
|
3
|
+
export declare function toGlobalSelectionItems<T extends GlobalSelectionItemTypeToDataMap[K], K extends GlobalSelectionItemType>(items: T[], type: K, idSelector: (item: T) => string): GlobalSelectionGenericItem<K>[];
|
|
4
|
+
export declare function findGlobalSelectionListByKey(state: GlobalSelectionStore, key: string): GlobalSelectionListUnion | undefined;
|
|
5
|
+
export declare function hasGlobalSelectionItemErrorStatus<T extends GlobalSelectionItemType>(item: GlobalSelectionGenericItem<T>, status: GlobalSelectionItemErrorStatuses): boolean;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { getGlobalSelectionStoreState, useGlobalSelectionStore } from './globalSelectionStore/globalSelectionStore';
|
|
2
2
|
export * from './globalSelectionStore/globalSelectionStore.types';
|
|
3
|
-
export
|
|
3
|
+
export { hasGlobalSelectionItemErrorStatus } from './globalSelectionStore/globalSelectionStore.utils';
|
|
4
4
|
export { useGlobalSelectionLists } from './hooks/useGlobalSelectionLists';
|
|
5
|
+
export { useGlobalSelectionTags } from './hooks/useGlobalSelectionTags';
|
|
5
6
|
export { useGlobalSelectionWorkOrders } from './hooks/useGlobalSelectionWorkOrders';
|
|
@@ -4,7 +4,7 @@ export declare const useLeftPanelNavigationStore: import("zustand").UseBoundStor
|
|
|
4
4
|
(listener: (selectedState: unknown, previousSelectedState: unknown) => void): () => void;
|
|
5
5
|
<U>(selector: (state: unknown) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: {
|
|
6
6
|
equalityFn?: ((a: U, b: U) => boolean) | undefined;
|
|
7
|
-
fireImmediately?: boolean
|
|
7
|
+
fireImmediately?: boolean;
|
|
8
8
|
} | undefined): () => void;
|
|
9
9
|
};
|
|
10
10
|
}, "setState"> & {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TemporaryEchoHubListDto, TemporaryHubResultsList } from '../../types/api-echohub';
|
|
2
2
|
import { EchoHubPlant } from '../../types/echoHubPlant';
|
|
3
|
-
export declare const getTemporarilyEchoHubListFor3d: (instCode: string, request: TemporaryEchoHubListDto, abortSignal?: AbortSignal | undefined, withoutBaseUrl?: boolean
|
|
3
|
+
export declare const getTemporarilyEchoHubListFor3d: (instCode: string, request: TemporaryEchoHubListDto, abortSignal?: AbortSignal | undefined, withoutBaseUrl?: boolean) => Promise<{
|
|
4
4
|
app3dUrl: string;
|
|
5
5
|
web3dUrl: string;
|
|
6
6
|
}>;
|