@crystaldesign/web-planner-logic 25.10.0-beta.2 → 25.10.0-beta.21
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/build/cjs/{DivaBoxPlanner-1364c551.js → DivaBoxPlanner-fc5a962d.js} +20 -17
- package/build/cjs/{DivaStandardPlanner-e6e39978.js → DivaStandardPlanner-f09fa7e9.js} +7 -6
- package/build/cjs/{DoorPlanner-10e97f07.js → DoorPlanner-5ab59c7b.js} +1 -1
- package/build/cjs/{Host3DSignalR-eea7d1d4.js → Host3DSignalR-14301399.js} +1 -1
- package/build/cjs/{LiviqueWWSHandler-17894cd1.js → LiviqueWWSHandler-34307071.js} +1 -1
- package/build/cjs/{PfisterWWSHandler-4058e465.js → PfisterWWSHandler-e995f1a4.js} +1 -1
- package/build/cjs/{PlannerHandler2D-41d9d0cf.js → PlannerHandler2D-977068cd.js} +5 -869
- package/build/cjs/{SeriousBasketHandler-c8e698e9.js → SeriousBasketHandler-69b52486.js} +1 -1
- package/build/cjs/{ShelfPlanner-33014e25.js → ShelfPlanner-45fdd5ee.js} +1 -1
- package/build/cjs/{StandardWWSHandler-faeb77e7.js → StandardWWSHandler-e9ea0835.js} +1 -1
- package/build/cjs/{index-f1e5aa56.js → index-48339e17.js} +2234 -1073
- package/build/cjs/index.js +2 -1
- package/build/esm/{DivaBoxPlanner-fcf19f4c.js → DivaBoxPlanner-b5606f5a.js} +17 -14
- package/build/esm/{DivaStandardPlanner-5221526b.js → DivaStandardPlanner-c2dcc724.js} +3 -2
- package/build/esm/{DoorPlanner-27fa5a55.js → DoorPlanner-98493e3e.js} +1 -1
- package/build/esm/{Host3DSignalR-e85d1c87.js → Host3DSignalR-2a6bc1d8.js} +1 -1
- package/build/esm/{LiviqueWWSHandler-494ad9a9.js → LiviqueWWSHandler-740ebe8a.js} +1 -1
- package/build/esm/{PfisterWWSHandler-39c3f3e2.js → PfisterWWSHandler-bbad4a79.js} +1 -1
- package/build/esm/{PlannerHandler2D-1a23208c.js → PlannerHandler2D-606688dc.js} +4 -867
- package/build/esm/{SeriousBasketHandler-51aa34db.js → SeriousBasketHandler-e15ee63f.js} +1 -1
- package/build/esm/{ShelfPlanner-9f2c145d.js → ShelfPlanner-4f2847bb.js} +1 -1
- package/build/esm/{StandardWWSHandler-6d93ce48.js → StandardWWSHandler-bc2261e1.js} +1 -1
- package/build/esm/{index-51b98cbc.js → index-228f4a0a.js} +2234 -1074
- package/build/esm/index.js +1 -1
- package/build/types/web-planner-logic/src/index.d.ts +3 -2
- package/build/types/web-planner-logic/src/index.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/AdditionalModelInfos.d.ts +1 -1
- package/build/types/web-planner-logic/src/interface/AdditionalModelInfos.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/ArticleOptionStateType.d.ts +2 -6
- package/build/types/web-planner-logic/src/interface/ArticleOptionStateType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/Configuration.d.ts +1 -0
- package/build/types/web-planner-logic/src/interface/Configuration.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/OptionTypes/ArticleOptionDataTypes.d.ts +3 -7
- package/build/types/web-planner-logic/src/interface/OptionTypes/ArticleOptionDataTypes.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/OptionTypes/CatalogOptionDataTypes.d.ts +1 -1
- package/build/types/web-planner-logic/src/interface/OptionTypes/CatalogOptionDataTypes.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/Planner/PlannerDataType.d.ts +2 -2
- package/build/types/web-planner-logic/src/interface/Planner/PlannerDataType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/ViewTypes/index.d.ts +1 -1
- package/build/types/web-planner-logic/src/interface/ViewTypes/index.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/webPlannerParams/WebPlannerParamsType.d.ts +1 -0
- package/build/types/web-planner-logic/src/interface/webPlannerParams/WebPlannerParamsType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Article/ArticleOptionState.d.ts +4 -12
- package/build/types/web-planner-logic/src/logic/Article/ArticleOptionState.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts +7 -8
- package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Article/DivaArticleHandler.d.ts +1 -1
- package/build/types/web-planner-logic/src/logic/Article/DivaArticleHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Article/Engine/DivaArticleEngine.d.ts +1 -0
- package/build/types/web-planner-logic/src/logic/Article/Engine/DivaArticleEngine.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Article/Engine/IDMArticleEngine.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Basket/DivaBasketHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/ConfigTree/DivaConfigTree.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/ConfigTree/DivaConfigTreeHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/DivaApiHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts +3 -2
- package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/BoxPlannerGrid.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/ConstructionRulesHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/DivaBoxPlanner.d.ts +7 -11
- package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/DivaBoxPlanner.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/DivaPlannerHandler.d.ts +9 -8
- package/build/types/web-planner-logic/src/logic/Planner/DivaPlannerHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/DivaStandardPlanner.d.ts +7 -11
- package/build/types/web-planner-logic/src/logic/Planner/DivaStandardPlanner.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/PlannerHandler2D.d.ts +2 -2
- package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/PlannerHandler2D.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/SetPlannerHandler.d.ts +4 -4
- package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/SetPlannerHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Set/DivaSet.d.ts +1 -2
- package/build/types/web-planner-logic/src/logic/Set/DivaSet.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Set/DivaSetHandler.d.ts +13 -2
- package/build/types/web-planner-logic/src/logic/Set/DivaSetHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Articles/Article/CatalogArticleData.d.ts +1 -1
- package/build/types/web-planner-logic/src/model/Articles/Article/DivaCatalogArticle.d.ts +1 -3
- package/build/types/web-planner-logic/src/model/Articles/Article/DivaCatalogArticle.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Options/ArticleOptionData.d.ts +2 -6
- package/build/types/web-planner-logic/src/model/Options/ArticleOptionData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Options/ArticleOptionValueData.d.ts +2 -6
- package/build/types/web-planner-logic/src/model/Options/ArticleOptionValueData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Planner/PlannerElementData.d.ts +2 -3
- package/build/types/web-planner-logic/src/model/Planner/PlannerElementData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/test/datas/environments/testing/pfister-dev.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/test/datas/environments/testing/pfister-prod.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/test/datas/environments/testing/retail-dev.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/test/datas/environments/testing/retail-prod-IDM.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/test/datas/environments/testing/retail-test.d.ts.map +1 -1
- package/package.json +2 -2
- package/build/types/web-planner-logic/src/interface/Planner/IDivaPlanner.d.ts +0 -57
- package/build/types/web-planner-logic/src/interface/Planner/IDivaPlanner.d.ts.map +0 -1
- package/build/types/web-planner-logic/src/interface/Planner/IDivaSetPlanner.d.ts +0 -50
- package/build/types/web-planner-logic/src/interface/Planner/IDivaSetPlanner.d.ts.map +0 -1
- package/build/types/web-planner-logic/src/interface/Planner/IDivaViewPlannerElement.d.ts +0 -63
- package/build/types/web-planner-logic/src/interface/Planner/IDivaViewPlannerElement.d.ts.map +0 -1
package/build/cjs/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var index = require('./index-
|
|
5
|
+
var index = require('./index-48339e17.js');
|
|
6
6
|
require('@babel/runtime/helpers/slicedToArray');
|
|
7
7
|
require('@babel/runtime/helpers/asyncToGenerator');
|
|
8
8
|
require('@babel/runtime/helpers/classCallCheck');
|
|
@@ -28,6 +28,7 @@ exports.DivaCatalogData = index.DivaCatalogData;
|
|
|
28
28
|
exports.DockingPoint = index.DockingPoint;
|
|
29
29
|
exports.Grid = index.Grid;
|
|
30
30
|
exports.OptionCatalogData = index.OptionCatalogData;
|
|
31
|
+
exports.PlannerElementData = index.PlannerElementData;
|
|
31
32
|
exports.Rendering = index.Rendering;
|
|
32
33
|
exports.Vector2 = index.Vector2;
|
|
33
34
|
exports.Vector3 = index.Vector3;
|
|
@@ -3,10 +3,10 @@ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
|
3
3
|
import _createClass from '@babel/runtime/helpers/createClass';
|
|
4
4
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
5
5
|
import _regeneratorRuntime from '@babel/runtime/regenerator';
|
|
6
|
-
import { c as Vector2, V as Vector3, B as BoundingBox } from './index-
|
|
6
|
+
import { c as Vector2, V as Vector3, P as PlannerElementData, B as BoundingBox } from './index-228f4a0a.js';
|
|
7
7
|
import DivaUtils, { DivaError, md5 } from '@crystaldesign/diva-utils';
|
|
8
8
|
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
9
|
-
import { d as dockingPointHandlerInst,
|
|
9
|
+
import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-606688dc.js';
|
|
10
10
|
import '@babel/runtime/helpers/slicedToArray';
|
|
11
11
|
import '@babel/runtime/helpers/objectWithoutProperties';
|
|
12
12
|
import 'axios';
|
|
@@ -1950,7 +1950,7 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
|
|
|
1950
1950
|
var curOptVisibilityInfo = this.constructionRules.optionsVisibilityInfo[option];
|
|
1951
1951
|
if (!curOptVisibilityInfo) return;
|
|
1952
1952
|
if (!optionHandler.has(elementId)) optionHandler.set(elementId, new Map());
|
|
1953
|
-
(_optionHandler$get3 = optionHandler.get(elementId)) === null || _optionHandler$get3 === void 0 || _optionHandler$get3.set(option, curOptVisibilityInfo
|
|
1953
|
+
(_optionHandler$get3 = optionHandler.get(elementId)) === null || _optionHandler$get3 === void 0 || _optionHandler$get3.set(option, curOptVisibilityInfo.doHide);
|
|
1954
1954
|
if (!this.hideOptionsForConstruction.has(elementId)) this.hideOptionsForConstruction.set(elementId, []);
|
|
1955
1955
|
(_this$hideOptionsForC2 = this.hideOptionsForConstruction.get(elementId)) === null || _this$hideOptionsForC2 === void 0 || _this$hideOptionsForC2.push(option);
|
|
1956
1956
|
}
|
|
@@ -2608,14 +2608,14 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
|
|
|
2608
2608
|
var allElements = boxPlannerGrid.getAllElementsInFrontGrid();
|
|
2609
2609
|
this.constructionRules.optionsInfluencedByDimensions.forEach(function (dimRule) {
|
|
2610
2610
|
var isOver = false;
|
|
2611
|
-
if (dimRule.dimension.
|
|
2612
|
-
if (dimRule.dimension.
|
|
2613
|
-
if (dimRule.dimension.
|
|
2611
|
+
if (dimRule.dimension.toLowerCase() == 'height' && boxPlannerSize.y >= dimRule.dimensionLimit) isOver = true;
|
|
2612
|
+
if (dimRule.dimension.toLowerCase() == 'width' && boxPlannerSize.x >= dimRule.dimensionLimit) isOver = true;
|
|
2613
|
+
if (dimRule.dimension.toLowerCase() == 'depth' && boxPlannerSize.z >= dimRule.dimensionLimit) isOver = true;
|
|
2614
2614
|
allElements.forEach(function (element) {
|
|
2615
2615
|
if (isOver) {
|
|
2616
|
-
if (dimRule.higherLimit.
|
|
2616
|
+
if (dimRule.higherLimit.toLowerCase() == 'doshow') _this2.setOptionDoShow(element.ElementId, dimRule.option, optionHandler);else if (dimRule.higherLimit.toLowerCase() == 'dohide') _this2.setOptionDoHide(element.ElementId, dimRule.option, optionHandler);
|
|
2617
2617
|
} else {
|
|
2618
|
-
if (dimRule.lowerLimit.
|
|
2618
|
+
if (dimRule.lowerLimit.toLowerCase() == 'doshow') _this2.setOptionDoShow(element.ElementId, dimRule.option, optionHandler);else if (dimRule.lowerLimit.toLowerCase() == 'dohide') _this2.setOptionDoHide(element.ElementId, dimRule.option, optionHandler);
|
|
2619
2619
|
}
|
|
2620
2620
|
});
|
|
2621
2621
|
});
|
|
@@ -2691,10 +2691,11 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
|
|
|
2691
2691
|
var _element$Width;
|
|
2692
2692
|
return seriesWidth += (_element$Width = element.Width) !== null && _element$Width !== void 0 ? _element$Width : 0;
|
|
2693
2693
|
});
|
|
2694
|
-
var opv = _this3.constructionRules.seriesWidthToPlateOpv.find(function (stp) {
|
|
2694
|
+
var opv = _this3.constructionRules.coverPlateRule.seriesWidthToPlateOpv.find(function (stp) {
|
|
2695
2695
|
return stp.limit > seriesWidth;
|
|
2696
2696
|
});
|
|
2697
|
-
|
|
2697
|
+
if (!opv) return;
|
|
2698
|
+
_this3.setOptionValue(serie[0].ElementId, _this3.constructionRules.optABD, opv.plateOpv, optionHandler);
|
|
2698
2699
|
});
|
|
2699
2700
|
}
|
|
2700
2701
|
|
|
@@ -4023,7 +4024,8 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
4023
4024
|
for (var idx = 0; idx < this.getColumnCount(); idx++) {
|
|
4024
4025
|
var height = this.getRowCount(idx, false);
|
|
4025
4026
|
if (height == lastHeight) {
|
|
4026
|
-
result[result.length
|
|
4027
|
+
if (!result[result.length - 1]) result.push([]);
|
|
4028
|
+
result[result.length - 1].push(this.getPlannerElementAtGridPos(idx, height - 1, false));
|
|
4027
4029
|
}
|
|
4028
4030
|
lastHeight = height;
|
|
4029
4031
|
}
|
|
@@ -4867,19 +4869,20 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
4867
4869
|
var _loop2 = function _loop2(i) {
|
|
4868
4870
|
var _matrix$find;
|
|
4869
4871
|
var cell = (_matrix$find = matrix.find(function (row) {
|
|
4870
|
-
|
|
4872
|
+
var _row$i$plannedElement, _row$i$plannedElement2;
|
|
4873
|
+
return ((_row$i$plannedElement = row[i].plannedElement) === null || _row$i$plannedElement === void 0 ? void 0 : _row$i$plannedElement.size.height) !== undefined && ((_row$i$plannedElement2 = row[i].plannedElement) === null || _row$i$plannedElement2 === void 0 ? void 0 : _row$i$plannedElement2.size.height) != -1;
|
|
4871
4874
|
})) === null || _matrix$find === void 0 ? void 0 : _matrix$find[i];
|
|
4872
4875
|
if (cell !== null && cell !== void 0 && cell.plannedElement) {
|
|
4873
4876
|
colSizes[i] = cell.plannedElement.size.height;
|
|
4874
4877
|
} else if (selectedElement) {
|
|
4875
4878
|
colSizes[i] = selectedElement.size.height;
|
|
4876
4879
|
}
|
|
4877
|
-
if (
|
|
4880
|
+
if (colSizes[i] === -1) return 1; // break
|
|
4878
4881
|
};
|
|
4879
4882
|
for (var i = 0; i < totalColCount; i++) {
|
|
4880
4883
|
if (_loop2(i)) break;
|
|
4881
4884
|
}
|
|
4882
|
-
if (colSizes.includes(-1))
|
|
4885
|
+
if (colSizes.includes(-1)) LOG$1.error(new Error('Column sizes are not set'));
|
|
4883
4886
|
return colSizes;
|
|
4884
4887
|
} else {
|
|
4885
4888
|
//setup usecase need to be a constant value
|
|
@@ -3,9 +3,9 @@ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
|
3
3
|
import _createClass from '@babel/runtime/helpers/createClass';
|
|
4
4
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
5
5
|
import _regeneratorRuntime from '@babel/runtime/regenerator';
|
|
6
|
-
import { V as Vector3, c as Vector2, B as BoundingBox } from './index-
|
|
7
|
-
import { d as dockingPointHandlerInst, h as handler2D, P as PlannerElementData } from './PlannerHandler2D-1a23208c.js';
|
|
6
|
+
import { V as Vector3, c as Vector2, P as PlannerElementData, B as BoundingBox } from './index-228f4a0a.js';
|
|
8
7
|
import DivaUtils, { DivaError, md5 } from '@crystaldesign/diva-utils';
|
|
8
|
+
import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-606688dc.js';
|
|
9
9
|
import '@babel/runtime/helpers/slicedToArray';
|
|
10
10
|
import '@babel/runtime/helpers/objectWithoutProperties';
|
|
11
11
|
import '@babel/runtime/helpers/toConsumableArray';
|
|
@@ -1284,6 +1284,7 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1284
1284
|
}, {
|
|
1285
1285
|
key: "getPlannerElementsInfluencedByCopy",
|
|
1286
1286
|
value: function getPlannerElementsInfluencedByCopy(elementId, copyInfo) {
|
|
1287
|
+
if (!copyInfo || copyInfo.copyType != 'BoxPlanner_backside') throw new Error('copyType needs to be BoxPlanner_backside here');
|
|
1287
1288
|
if (this.plannerElements.has(elementId)) return [elementId];
|
|
1288
1289
|
return [];
|
|
1289
1290
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
2
2
|
import _createClass from '@babel/runtime/helpers/createClass';
|
|
3
3
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
4
|
-
import './index-
|
|
4
|
+
import './index-228f4a0a.js';
|
|
5
5
|
import DivaUtils from '@crystaldesign/diva-utils';
|
|
6
6
|
import '@babel/runtime/helpers/slicedToArray';
|
|
7
7
|
import '@babel/runtime/helpers/asyncToGenerator';
|
|
@@ -3,7 +3,7 @@ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
|
3
3
|
import _createClass from '@babel/runtime/helpers/createClass';
|
|
4
4
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
5
5
|
import _regeneratorRuntime from '@babel/runtime/regenerator';
|
|
6
|
-
import { R as Rendering, H as HQRenderScript } from './index-
|
|
6
|
+
import { R as Rendering, H as HQRenderScript } from './index-228f4a0a.js';
|
|
7
7
|
import DivaUtils, { DivaError } from '@crystaldesign/diva-utils';
|
|
8
8
|
import { HubConnectionBuilder, LogLevel } from '@microsoft/signalr';
|
|
9
9
|
import io from 'socket.io-client';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
2
2
|
import _createClass from '@babel/runtime/helpers/createClass';
|
|
3
|
-
import './index-
|
|
3
|
+
import './index-228f4a0a.js';
|
|
4
4
|
import '@babel/runtime/helpers/slicedToArray';
|
|
5
5
|
import '@babel/runtime/helpers/asyncToGenerator';
|
|
6
6
|
import '@babel/runtime/helpers/defineProperty';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
2
2
|
import _createClass from '@babel/runtime/helpers/createClass';
|
|
3
|
-
import { a as articleHandlerInstance } from './index-
|
|
3
|
+
import { a as articleHandlerInstance } from './index-228f4a0a.js';
|
|
4
4
|
import { SAPOrderLineData } from '@crystaldesign/basket-model';
|
|
5
5
|
import DivaUtils, { DivaError } from '@crystaldesign/diva-utils';
|
|
6
6
|
import '@babel/runtime/helpers/slicedToArray';
|