@sap-ux/odata-service-inquirer 0.5.24 → 0.5.26
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/error-handler/error-handler.js +15 -16
- package/package.json +4 -3
- package/dist/error-handler/help/help-topics.d.ts +0 -37
- package/dist/error-handler/help/help-topics.js +0 -40
- package/dist/error-handler/help/images/guidedAnswersIcon_svg_base64.d.ts +0 -2
- package/dist/error-handler/help/images/guidedAnswersIcon_svg_base64.js +0 -5
- package/dist/error-handler/help/images/index.d.ts +0 -2
- package/dist/error-handler/help/images/index.js +0 -18
|
@@ -6,8 +6,7 @@ const logger_1 = require("@sap-ux/logger");
|
|
|
6
6
|
const i18n_1 = require("../i18n");
|
|
7
7
|
const types_1 = require("../types");
|
|
8
8
|
const utils_1 = require("../utils");
|
|
9
|
-
const
|
|
10
|
-
const images_1 = require("./help/images");
|
|
9
|
+
const fiori_generator_shared_1 = require("@sap-ux/fiori-generator-shared");
|
|
11
10
|
const teleEventGALinkCreated = 'GA_LINK_CREATED';
|
|
12
11
|
/**
|
|
13
12
|
* Constants specific to error handling
|
|
@@ -145,18 +144,18 @@ class ErrorHandler {
|
|
|
145
144
|
static getHelpNode = (errorType) => {
|
|
146
145
|
const errorToHelp = {
|
|
147
146
|
[ERROR_TYPE.SERVICES_UNAVAILABLE]: (0, btp_utils_1.isAppStudio)()
|
|
148
|
-
?
|
|
147
|
+
? fiori_generator_shared_1.HELP_NODES.BAS_CATALOG_SERVICES_REQUEST_FAILED
|
|
149
148
|
: undefined,
|
|
150
|
-
[ERROR_TYPE.CERT]:
|
|
151
|
-
[ERROR_TYPE.CERT_SELF_SIGNED]:
|
|
152
|
-
[ERROR_TYPE.CERT_UKNOWN_OR_INVALID]:
|
|
153
|
-
[ERROR_TYPE.CERT_SELF_SIGNED_CERT_IN_CHAIN]:
|
|
154
|
-
[ERROR_TYPE.DESTINATION_MISCONFIGURED]:
|
|
155
|
-
[ERROR_TYPE.DESTINATION_UNAVAILABLE]:
|
|
156
|
-
[ERROR_TYPE.DESTINATION_NOT_FOUND]:
|
|
157
|
-
[ERROR_TYPE.BAD_GATEWAY]:
|
|
158
|
-
[ERROR_TYPE.DESTINATION_BAD_GATEWAY_503]:
|
|
159
|
-
[ERROR_TYPE.NO_V4_SERVICES]:
|
|
149
|
+
[ERROR_TYPE.CERT]: fiori_generator_shared_1.HELP_NODES.CERTIFICATE_ERROR,
|
|
150
|
+
[ERROR_TYPE.CERT_SELF_SIGNED]: fiori_generator_shared_1.HELP_NODES.CERTIFICATE_ERROR,
|
|
151
|
+
[ERROR_TYPE.CERT_UKNOWN_OR_INVALID]: fiori_generator_shared_1.HELP_NODES.CERTIFICATE_ERROR,
|
|
152
|
+
[ERROR_TYPE.CERT_SELF_SIGNED_CERT_IN_CHAIN]: fiori_generator_shared_1.HELP_NODES.CERTIFICATE_ERROR,
|
|
153
|
+
[ERROR_TYPE.DESTINATION_MISCONFIGURED]: fiori_generator_shared_1.HELP_NODES.DESTINATION_MISCONFIGURED,
|
|
154
|
+
[ERROR_TYPE.DESTINATION_UNAVAILABLE]: fiori_generator_shared_1.HELP_NODES.DESTINATION_UNAVAILABLE,
|
|
155
|
+
[ERROR_TYPE.DESTINATION_NOT_FOUND]: fiori_generator_shared_1.HELP_NODES.DESTINATION_NOT_FOUND,
|
|
156
|
+
[ERROR_TYPE.BAD_GATEWAY]: fiori_generator_shared_1.HELP_NODES.BAD_GATEWAY,
|
|
157
|
+
[ERROR_TYPE.DESTINATION_BAD_GATEWAY_503]: fiori_generator_shared_1.HELP_NODES.DESTINATION_BAD_GATEWAY_503,
|
|
158
|
+
[ERROR_TYPE.NO_V4_SERVICES]: fiori_generator_shared_1.HELP_NODES.NO_V4_SERVICES,
|
|
160
159
|
[ERROR_TYPE.AUTH]: undefined,
|
|
161
160
|
[ERROR_TYPE.AUTH_TIMEOUT]: undefined,
|
|
162
161
|
[ERROR_TYPE.REDIRECT]: undefined,
|
|
@@ -433,13 +432,13 @@ class ErrorHandler {
|
|
|
433
432
|
message: mappedErrorMsg ?? '',
|
|
434
433
|
link: {
|
|
435
434
|
text: (0, i18n_1.t)('guidedAnswers.validationErrorHelpText'),
|
|
436
|
-
icon:
|
|
437
|
-
url: (0,
|
|
435
|
+
icon: fiori_generator_shared_1.GUIDED_ANSWERS_ICON,
|
|
436
|
+
url: (0, fiori_generator_shared_1.getHelpUrl)(3046 /* HELP_TREE.FIORI_TOOLS */, [helpNode])
|
|
438
437
|
}
|
|
439
438
|
};
|
|
440
439
|
if (this.guidedAnswersEnabled) {
|
|
441
440
|
valLink.link.command = {
|
|
442
|
-
id:
|
|
441
|
+
id: fiori_generator_shared_1.GUIDED_ANSWERS_LAUNCH_CMD_ID,
|
|
443
442
|
params: {
|
|
444
443
|
treeId: 3046 /* HELP_TREE.FIORI_TOOLS */,
|
|
445
444
|
nodeIdPath: [helpNode],
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sap-ux/odata-service-inquirer",
|
|
3
3
|
"description": "Prompts module that can prompt users for inputs required for odata service writing",
|
|
4
|
-
"version": "0.5.
|
|
4
|
+
"version": "0.5.26",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/SAP/open-ux-tools.git",
|
|
@@ -27,10 +27,11 @@
|
|
|
27
27
|
"os-name": "4.0.1",
|
|
28
28
|
"@sap-ux/axios-extension": "1.16.4",
|
|
29
29
|
"@sap-ux/btp-utils": "0.15.1",
|
|
30
|
-
"@sap-ux/
|
|
30
|
+
"@sap-ux/fiori-generator-shared": "0.3.14",
|
|
31
|
+
"@sap-ux/telemetry": "0.5.23",
|
|
31
32
|
"@sap-ux/inquirer-common": "0.4.6",
|
|
32
33
|
"@sap-ux/logger": "0.6.0",
|
|
33
|
-
"@sap-ux/project-access": "1.26.
|
|
34
|
+
"@sap-ux/project-access": "1.26.8",
|
|
34
35
|
"@sap-ux/project-input-validator": "0.3.3",
|
|
35
36
|
"@sap-ux/store": "0.9.1"
|
|
36
37
|
},
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Mapping of human readable help topic to implementation specific ids
|
|
3
|
-
* Help items are nodes under a root tree item. A node may have n additonal nodes.
|
|
4
|
-
*
|
|
5
|
-
*/
|
|
6
|
-
export declare const enum HELP_TREE {
|
|
7
|
-
FIORI_TOOLS = 3046
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Individual help topics which are mapped to node ids
|
|
11
|
-
*/
|
|
12
|
-
export declare const HELP_NODES: {
|
|
13
|
-
FIORI_TOOLS: number;
|
|
14
|
-
DEV_PLATFORM: number;
|
|
15
|
-
FIORI_APP_GENERATOR: number;
|
|
16
|
-
BAS_CATALOG_SERVICES_REQUEST_FAILED: number;
|
|
17
|
-
APPLICATION_PREVIEW: number;
|
|
18
|
-
CERTIFICATE_ERROR: number;
|
|
19
|
-
DESTINATION_MISCONFIGURED: number;
|
|
20
|
-
DESTINATION_UNAVAILABLE: number;
|
|
21
|
-
DESTINATION_NOT_FOUND: number;
|
|
22
|
-
BAD_GATEWAY: number;
|
|
23
|
-
DESTINATION_BAD_GATEWAY_503: number;
|
|
24
|
-
NO_V4_SERVICES: number;
|
|
25
|
-
};
|
|
26
|
-
export declare const GUIDED_ANSWERS_EXTENSION_ID = "saposs.sap-guided-answers-extension";
|
|
27
|
-
export declare const GUIDED_ANSWERS_LAUNCH_CMD_ID = "sap.ux.guidedAnswer.openGuidedAnswer";
|
|
28
|
-
/**
|
|
29
|
-
* Creates a help url for the specified tree and node ids. If node ids are not specified the root tree path
|
|
30
|
-
* will be returned, which may not be a valid help page.
|
|
31
|
-
*
|
|
32
|
-
* @param treeId The tree id of the help content system (Guided Answers context)
|
|
33
|
-
* @param nodeIds The node ids of the help content page (Guided Answers specific page)
|
|
34
|
-
* @returns The help url
|
|
35
|
-
*/
|
|
36
|
-
export declare function getHelpUrl(treeId: number, nodeIds: number[]): string;
|
|
37
|
-
//# sourceMappingURL=help-topics.d.ts.map
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getHelpUrl = exports.GUIDED_ANSWERS_LAUNCH_CMD_ID = exports.GUIDED_ANSWERS_EXTENSION_ID = exports.HELP_NODES = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Individual help topics which are mapped to node ids
|
|
6
|
-
*/
|
|
7
|
-
exports.HELP_NODES = {
|
|
8
|
-
FIORI_TOOLS: 45995, // The root of all Fiori Tools help
|
|
9
|
-
DEV_PLATFORM: 45996, // Environment specific selection, vscode or BAS
|
|
10
|
-
FIORI_APP_GENERATOR: 48363, // Fiori application generator
|
|
11
|
-
BAS_CATALOG_SERVICES_REQUEST_FAILED: 48366, // BAS specific catalog service request failure
|
|
12
|
-
APPLICATION_PREVIEW: 52881, // App preview failure
|
|
13
|
-
CERTIFICATE_ERROR: 53643,
|
|
14
|
-
DESTINATION_MISCONFIGURED: 54336, // Missing additional property
|
|
15
|
-
DESTINATION_UNAVAILABLE: 51208, // Launchpad service is not subscribed to
|
|
16
|
-
DESTINATION_NOT_FOUND: 51208, // Destination URL is returning an empty response
|
|
17
|
-
BAD_GATEWAY: 48366, // Bad gateway 502
|
|
18
|
-
DESTINATION_BAD_GATEWAY_503: 52526, // Destination Service Unavailable 503
|
|
19
|
-
NO_V4_SERVICES: 57573 // No V4 OData services available
|
|
20
|
-
};
|
|
21
|
-
exports.GUIDED_ANSWERS_EXTENSION_ID = 'saposs.sap-guided-answers-extension';
|
|
22
|
-
exports.GUIDED_ANSWERS_LAUNCH_CMD_ID = 'sap.ux.guidedAnswer.openGuidedAnswer';
|
|
23
|
-
const GUIDED_ANSWERS_SUPPORT_BASE_URL = 'https://ga.support.sap.com/dtp/viewer/index.html';
|
|
24
|
-
/**
|
|
25
|
-
* Creates a help url for the specified tree and node ids. If node ids are not specified the root tree path
|
|
26
|
-
* will be returned, which may not be a valid help page.
|
|
27
|
-
*
|
|
28
|
-
* @param treeId The tree id of the help content system (Guided Answers context)
|
|
29
|
-
* @param nodeIds The node ids of the help content page (Guided Answers specific page)
|
|
30
|
-
* @returns The help url
|
|
31
|
-
*/
|
|
32
|
-
function getHelpUrl(treeId, nodeIds) {
|
|
33
|
-
let actions = '';
|
|
34
|
-
if (nodeIds.length > 0) {
|
|
35
|
-
actions = `/actions/${nodeIds.join(':')}`;
|
|
36
|
-
}
|
|
37
|
-
return `${GUIDED_ANSWERS_SUPPORT_BASE_URL}#/tree/${treeId}${actions}`;
|
|
38
|
-
}
|
|
39
|
-
exports.getHelpUrl = getHelpUrl;
|
|
40
|
-
//# sourceMappingURL=help-topics.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export declare const GUIDED_ANSWERS_ICON = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxMiAxMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzM0NTRfMTc4MDUpIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMSA3LjI0MjIzVjkuNUMxMSA5LjY4OTM5IDEwLjg5MyA5Ljg2MjUyIDEwLjcyMzYgOS45NDcyMUw3LjcyMzYxIDExLjQ0NzJDNy41OTkyNSAxMS41MDk0IDcuNDU0NjIgMTEuNTE3IDcuMzI0NDQgMTEuNDY4MkwzLjQ5MDE4IDEwLjAzMDNMMC42NTgxMTQgMTAuOTc0M0MwLjUwNTY0IDExLjAyNTIgMC4zMzgwMjkgMTAuOTk5NiAwLjIwNzY0NSAxMC45MDU2QzAuMDc3MjYwNiAxMC44MTE2IDAgMTAuNjYwNyAwIDEwLjVWMi41QzAgMi4yODQ3OCAwLjEzNzcxNSAyLjA5MzcyIDAuMzQxODg2IDIuMDI1NjZMMy4zNDE4OSAxLjAyNTY2QzMuNDQ3OTcgMC45OTAyOTYgMy41NjI4NiAwLjk5MTUxNyAzLjY2ODE3IDEuMDI5MTNMNC41NDkyNSAxLjM0MzhDNC4zOTAxOSAxLjYzNDYzIDQuMjYyMyAxLjk0NDk0IDQuMTcwMDkgMi4yNzAyNUw0IDIuMjA5NVY5LjE1MzVMNyAxMC4yNzg1VjcuNzQzOTRDNy4zMTg0MSA3Ljg1NjQ4IDcuNjUzMjcgNy45MzQyMSA4IDcuOTcyNTRWMTAuMTkxTDEwIDkuMTkwOThWNy43NDM5NEMxMC4zNTYgNy42MTgxIDEwLjY5MTUgNy40NDg3MyAxMSA3LjI0MjIzWk0xIDkuODA2MjlWMi44NjAzOEwzIDIuMTkzNzFWOS4xMzk2MkwxIDkuODA2MjlaIiBmaWxsPSIjQzVDNUM1Ii8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNSAzLjQ2NjIyQzUgNC4yNTM4IDUuMjYyNjcgNC45ODAwMyA1LjcwNTE4IDUuNTYyMDlMNS4zNzc1OCA3LjQyTDcuMjg0NzEgNi43MjU4NkM3LjY1MzQ1IDYuODU5NTUgOC4wNTEzMiA2LjkzMjQ0IDguNDY2MjIgNi45MzI0NEMxMC4zODA2IDYuOTMyNDQgMTEuOTMyNCA1LjM4MDU2IDExLjkzMjQgMy40NjYyMkMxMS45MzI0IDEuNTUxODggMTAuMzgwNiAwIDguNDY2MjIgMEM2LjU1MTg4IDAgNSAxLjU1MTg4IDUgMy40NjYyMlpNOCAxLjVDOCAxLjIyMzg2IDguMjIzODYgMSA4LjUgMUM4Ljc3NjE0IDEgOSAxLjIyMzg2IDkgMS41QzkgMS43NzYxNCA4Ljc3NjE0IDIgOC41IDJDOC4yMjM4NiAyIDggMS43NzYxNCA4IDEuNVpNOC41IDNDOC4yMjM4NiAzIDggMy4yMjM4NiA4IDMuNVY1LjVDOCA1Ljc3NjE0IDguMjIzODYgNiA4LjUgNkM4Ljc3NjE0IDYgOSA1Ljc3NjE0IDkgNS41VjMuNUM5IDMuMjIzODYgOC43NzYxNCAzIDguNSAzWiIgZmlsbD0iI0M1QzVDNSIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzM0NTRfMTc4MDUiPgo8cmVjdCB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==";
|
|
2
|
-
//# sourceMappingURL=guidedAnswersIcon_svg_base64.d.ts.map
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GUIDED_ANSWERS_ICON = void 0;
|
|
4
|
-
exports.GUIDED_ANSWERS_ICON = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxMiAxMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzM0NTRfMTc4MDUpIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMSA3LjI0MjIzVjkuNUMxMSA5LjY4OTM5IDEwLjg5MyA5Ljg2MjUyIDEwLjcyMzYgOS45NDcyMUw3LjcyMzYxIDExLjQ0NzJDNy41OTkyNSAxMS41MDk0IDcuNDU0NjIgMTEuNTE3IDcuMzI0NDQgMTEuNDY4MkwzLjQ5MDE4IDEwLjAzMDNMMC42NTgxMTQgMTAuOTc0M0MwLjUwNTY0IDExLjAyNTIgMC4zMzgwMjkgMTAuOTk5NiAwLjIwNzY0NSAxMC45MDU2QzAuMDc3MjYwNiAxMC44MTE2IDAgMTAuNjYwNyAwIDEwLjVWMi41QzAgMi4yODQ3OCAwLjEzNzcxNSAyLjA5MzcyIDAuMzQxODg2IDIuMDI1NjZMMy4zNDE4OSAxLjAyNTY2QzMuNDQ3OTcgMC45OTAyOTYgMy41NjI4NiAwLjk5MTUxNyAzLjY2ODE3IDEuMDI5MTNMNC41NDkyNSAxLjM0MzhDNC4zOTAxOSAxLjYzNDYzIDQuMjYyMyAxLjk0NDk0IDQuMTcwMDkgMi4yNzAyNUw0IDIuMjA5NVY5LjE1MzVMNyAxMC4yNzg1VjcuNzQzOTRDNy4zMTg0MSA3Ljg1NjQ4IDcuNjUzMjcgNy45MzQyMSA4IDcuOTcyNTRWMTAuMTkxTDEwIDkuMTkwOThWNy43NDM5NEMxMC4zNTYgNy42MTgxIDEwLjY5MTUgNy40NDg3MyAxMSA3LjI0MjIzWk0xIDkuODA2MjlWMi44NjAzOEwzIDIuMTkzNzFWOS4xMzk2MkwxIDkuODA2MjlaIiBmaWxsPSIjQzVDNUM1Ii8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNSAzLjQ2NjIyQzUgNC4yNTM4IDUuMjYyNjcgNC45ODAwMyA1LjcwNTE4IDUuNTYyMDlMNS4zNzc1OCA3LjQyTDcuMjg0NzEgNi43MjU4NkM3LjY1MzQ1IDYuODU5NTUgOC4wNTEzMiA2LjkzMjQ0IDguNDY2MjIgNi45MzI0NEMxMC4zODA2IDYuOTMyNDQgMTEuOTMyNCA1LjM4MDU2IDExLjkzMjQgMy40NjYyMkMxMS45MzI0IDEuNTUxODggMTAuMzgwNiAwIDguNDY2MjIgMEM2LjU1MTg4IDAgNSAxLjU1MTg4IDUgMy40NjYyMlpNOCAxLjVDOCAxLjIyMzg2IDguMjIzODYgMSA4LjUgMUM4Ljc3NjE0IDEgOSAxLjIyMzg2IDkgMS41QzkgMS43NzYxNCA4Ljc3NjE0IDIgOC41IDJDOC4yMjM4NiAyIDggMS43NzYxNCA4IDEuNVpNOC41IDNDOC4yMjM4NiAzIDggMy4yMjM4NiA4IDMuNVY1LjVDOCA1Ljc3NjE0IDguMjIzODYgNiA4LjUgNkM4Ljc3NjE0IDYgOSA1Ljc3NjE0IDkgNS41VjMuNUM5IDMuMjIzODYgOC43NzYxNCAzIDguNSAzWiIgZmlsbD0iI0M1QzVDNSIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzM0NTRfMTc4MDUiPgo8cmVjdCB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==';
|
|
5
|
-
//# sourceMappingURL=guidedAnswersIcon_svg_base64.js.map
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./guidedAnswersIcon_svg_base64"), exports);
|
|
18
|
-
//# sourceMappingURL=index.js.map
|