@crystaldesign/web-planner-logic 26.12.0-beta.37 → 26.12.0-beta.38

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.
Files changed (44) hide show
  1. package/build/cjs/{DivaBoxPlanner-ed84f911.js → DivaBoxPlanner-8b312c16.js} +2 -2
  2. package/build/cjs/{DivaStandardPlanner-2f156ac4.js → DivaStandardPlanner-320d838c.js} +2 -2
  3. package/build/cjs/{DoorPlanner-1f12ae12.js → DoorPlanner-af0ee118.js} +1 -1
  4. package/build/cjs/{Host3DSignalR-7631b06e.js → Host3DSignalR-fedcf409.js} +1 -1
  5. package/build/cjs/{LiviqueWWSHandler-b25309a0.js → LiviqueWWSHandler-0fa91edd.js} +1 -1
  6. package/build/cjs/{PfisterWWSHandler-3f044082.js → PfisterWWSHandler-d12481b4.js} +1 -1
  7. package/build/cjs/{PlannerHandler2D-790dc424.js → PlannerHandler2D-6d3fbff5.js} +1 -1
  8. package/build/cjs/{SeriousBasketHandler-e81c3ce0.js → SeriousBasketHandler-5a7557f2.js} +1 -1
  9. package/build/cjs/{ShelfPlanner-9deb02f0.js → ShelfPlanner-7475625e.js} +1 -1
  10. package/build/cjs/{StandardWWSHandler-35a5cd86.js → StandardWWSHandler-d419265e.js} +1 -1
  11. package/build/cjs/{index-617f37df.js → index-4d164cf3.js} +129 -44
  12. package/build/cjs/index.js +1 -1
  13. package/build/esm/{DivaBoxPlanner-497f920b.js → DivaBoxPlanner-0223e675.js} +2 -2
  14. package/build/esm/{DivaStandardPlanner-02829820.js → DivaStandardPlanner-15ea500c.js} +2 -2
  15. package/build/esm/{DoorPlanner-bcee08d0.js → DoorPlanner-efbf6110.js} +1 -1
  16. package/build/esm/{Host3DSignalR-a1aae6ae.js → Host3DSignalR-df61538e.js} +1 -1
  17. package/build/esm/{LiviqueWWSHandler-1fffea90.js → LiviqueWWSHandler-38987d33.js} +1 -1
  18. package/build/esm/{PfisterWWSHandler-44c23ccb.js → PfisterWWSHandler-e7e34cd7.js} +1 -1
  19. package/build/esm/{PlannerHandler2D-d38ac865.js → PlannerHandler2D-26261a6f.js} +1 -1
  20. package/build/esm/{SeriousBasketHandler-a7290ac4.js → SeriousBasketHandler-001830c0.js} +1 -1
  21. package/build/esm/{ShelfPlanner-f9466ab6.js → ShelfPlanner-dbff1180.js} +1 -1
  22. package/build/esm/{StandardWWSHandler-a90fe0e2.js → StandardWWSHandler-2987d8a0.js} +1 -1
  23. package/build/esm/{index-dc4616aa.js → index-7437d23b.js} +129 -44
  24. package/build/esm/index.js +1 -1
  25. package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts +1 -0
  26. package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts.map +1 -1
  27. package/build/types/web-planner-logic/src/logic/Article/ArticleOptionState.d.ts +1 -0
  28. package/build/types/web-planner-logic/src/logic/Article/ArticleOptionState.d.ts.map +1 -1
  29. package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts.map +1 -1
  30. package/build/types/web-planner-logic/src/logic/Article/Engine/IDMArticleEngine.d.ts +5 -8
  31. package/build/types/web-planner-logic/src/logic/Article/Engine/IDMArticleEngine.d.ts.map +1 -1
  32. package/build/types/web-planner-logic/src/logic/Article/measureUnit.d.ts +5 -0
  33. package/build/types/web-planner-logic/src/logic/Article/measureUnit.d.ts.map +1 -0
  34. package/build/types/web-planner-logic/src/logic/Set/DivaSetHandler.d.ts.map +1 -1
  35. package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts +1 -0
  36. package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts.map +1 -1
  37. package/build/types/web-planner-logic/src/model/Catalog/IDMCatalogData.d.ts.map +1 -1
  38. package/build/types/web-planner-logic/src/model/Options/ArticleOptionValueData.d.ts +1 -0
  39. package/build/types/web-planner-logic/src/model/Options/ArticleOptionValueData.d.ts.map +1 -1
  40. package/build/types/web-planner-logic/src/model/Options/CatalogOptionValueData.d.ts +3 -0
  41. package/build/types/web-planner-logic/src/model/Options/CatalogOptionValueData.d.ts.map +1 -1
  42. package/build/types/web-planner-logic/src/test/idmMeasureUnit.test.d.ts +2 -0
  43. package/build/types/web-planner-logic/src/test/idmMeasureUnit.test.d.ts.map +1 -0
  44. package/package.json +3 -3
@@ -5,11 +5,11 @@ var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
5
5
  var _createClass = require('@babel/runtime/helpers/createClass');
6
6
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
7
7
  var _regeneratorRuntime = require('@babel/runtime/regenerator');
8
- var index = require('./index-617f37df.js');
8
+ var index = require('./index-4d164cf3.js');
9
9
  var DivaUtils = require('@crystaldesign/diva-utils');
10
10
  var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
11
11
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
12
- var PlannerHandler2D = require('./PlannerHandler2D-790dc424.js');
12
+ var PlannerHandler2D = require('./PlannerHandler2D-6d3fbff5.js');
13
13
  require('@babel/runtime/helpers/objectWithoutProperties');
14
14
  require('axios');
15
15
  require('@crystaldesign/planner-2d-core');
@@ -6,10 +6,10 @@ var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
6
6
  var _createClass = require('@babel/runtime/helpers/createClass');
7
7
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
8
8
  var _regeneratorRuntime = require('@babel/runtime/regenerator');
9
- var index = require('./index-617f37df.js');
9
+ var index = require('./index-4d164cf3.js');
10
10
  var DivaUtils = require('@crystaldesign/diva-utils');
11
11
  var planner2dCore = require('@crystaldesign/planner-2d-core');
12
- var PlannerHandler2D = require('./PlannerHandler2D-790dc424.js');
12
+ var PlannerHandler2D = require('./PlannerHandler2D-6d3fbff5.js');
13
13
  require('@babel/runtime/helpers/slicedToArray');
14
14
  require('@babel/runtime/helpers/objectWithoutProperties');
15
15
  require('axios');
@@ -3,7 +3,7 @@
3
3
  var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
4
4
  var _createClass = require('@babel/runtime/helpers/createClass');
5
5
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
- require('./index-617f37df.js');
6
+ require('./index-4d164cf3.js');
7
7
  var DivaUtils = require('@crystaldesign/diva-utils');
8
8
  require('@babel/runtime/helpers/slicedToArray');
9
9
  require('@babel/runtime/helpers/asyncToGenerator');
@@ -5,7 +5,7 @@ var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
5
5
  var _createClass = require('@babel/runtime/helpers/createClass');
6
6
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
7
7
  var _regeneratorRuntime = require('@babel/runtime/regenerator');
8
- var index = require('./index-617f37df.js');
8
+ var index = require('./index-4d164cf3.js');
9
9
  var DivaUtils = require('@crystaldesign/diva-utils');
10
10
  var signalr = require('@microsoft/signalr');
11
11
  var io = require('socket.io-client');
@@ -2,7 +2,7 @@
2
2
 
3
3
  var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
4
4
  var _createClass = require('@babel/runtime/helpers/createClass');
5
- require('./index-617f37df.js');
5
+ require('./index-4d164cf3.js');
6
6
  require('@babel/runtime/helpers/slicedToArray');
7
7
  require('@babel/runtime/helpers/asyncToGenerator');
8
8
  require('@babel/runtime/helpers/defineProperty');
@@ -2,7 +2,7 @@
2
2
 
3
3
  var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
4
4
  var _createClass = require('@babel/runtime/helpers/createClass');
5
- var index = require('./index-617f37df.js');
5
+ var index = require('./index-4d164cf3.js');
6
6
  var basketModel = require('@crystaldesign/basket-model');
7
7
  var DivaUtils = require('@crystaldesign/diva-utils');
8
8
  require('@babel/runtime/helpers/slicedToArray');
@@ -5,7 +5,7 @@ var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
5
5
  var _createClass = require('@babel/runtime/helpers/createClass');
6
6
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
7
7
  var _regeneratorRuntime = require('@babel/runtime/regenerator');
8
- var index = require('./index-617f37df.js');
8
+ var index = require('./index-4d164cf3.js');
9
9
  var _possibleConstructorReturn = require('@babel/runtime/helpers/possibleConstructorReturn');
10
10
  var _getPrototypeOf = require('@babel/runtime/helpers/getPrototypeOf');
11
11
  var _get = require('@babel/runtime/helpers/get');
@@ -3,7 +3,7 @@
3
3
  var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
4
4
  var _createClass = require('@babel/runtime/helpers/createClass');
5
5
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
- var index = require('./index-617f37df.js');
6
+ var index = require('./index-4d164cf3.js');
7
7
  var DivaUtils = require('@crystaldesign/diva-utils');
8
8
  require('@babel/runtime/helpers/slicedToArray');
9
9
  require('@babel/runtime/helpers/asyncToGenerator');
@@ -6,7 +6,7 @@ var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
6
6
  var _createClass = require('@babel/runtime/helpers/createClass');
7
7
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
8
8
  var _regeneratorRuntime = require('@babel/runtime/regenerator');
9
- var index = require('./index-617f37df.js');
9
+ var index = require('./index-4d164cf3.js');
10
10
  var DivaUtils = require('@crystaldesign/diva-utils');
11
11
  require('@babel/runtime/helpers/slicedToArray');
12
12
  require('@babel/runtime/helpers/objectWithoutProperties');
@@ -2,7 +2,7 @@
2
2
 
3
3
  var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
4
4
  var _createClass = require('@babel/runtime/helpers/createClass');
5
- require('./index-617f37df.js');
5
+ require('./index-4d164cf3.js');
6
6
  require('@babel/runtime/helpers/slicedToArray');
7
7
  require('@babel/runtime/helpers/asyncToGenerator');
8
8
  require('@babel/runtime/helpers/defineProperty');
@@ -16943,6 +16943,51 @@ var ralClassics = [{
16943
16943
  rgb: '#7E8182'
16944
16944
  }];
16945
16945
 
16946
+ /** IDM length units (UN/ECE rec. 20) to centimetres; 'MT' is the engine's old alias. */
16947
+ var TO_CENTIMETERS = {
16948
+ MMT: function MMT(value) {
16949
+ return value / 10;
16950
+ },
16951
+ CMT: function CMT(value) {
16952
+ return value;
16953
+ },
16954
+ DMT: function DMT(value) {
16955
+ return value * 10;
16956
+ },
16957
+ MTR: function MTR(value) {
16958
+ return value * 100;
16959
+ },
16960
+ INH: function INH(value) {
16961
+ return value * 2.54;
16962
+ },
16963
+ MT: function MT(value) {
16964
+ return value * 10;
16965
+ }
16966
+ };
16967
+
16968
+ /** The IDM code for a unit written the SI way (mm, cm, dm, m, in; any case), or the unit as given. */
16969
+ var IDM_CODE_OF_SI_UNIT = {
16970
+ MM: 'MMT',
16971
+ CM: 'CMT',
16972
+ DM: 'DMT',
16973
+ M: 'MTR',
16974
+ IN: 'INH'
16975
+ };
16976
+
16977
+ /** An IDM option unit as its UN/ECE code: 'mm' and 'mmt' become 'MMT'; anything else is returned unchanged. */
16978
+ function idmMeasureUnit(unit) {
16979
+ if (typeof unit !== 'string') return unit;
16980
+ var upper = unit.trim().toUpperCase();
16981
+ if (Object.prototype.hasOwnProperty.call(TO_CENTIMETERS, upper)) return upper;
16982
+ return Object.prototype.hasOwnProperty.call(IDM_CODE_OF_SI_UNIT, upper) ? IDM_CODE_OF_SI_UNIT[upper] : unit;
16983
+ }
16984
+
16985
+ /** An option's measure in centimetres; a missing or unknown unit counts as centimetres. */
16986
+ function measureInCentimeters(value, unit) {
16987
+ if (!unit || !Object.prototype.hasOwnProperty.call(TO_CENTIMETERS, unit)) return value;
16988
+ return TO_CENTIMETERS[unit](value);
16989
+ }
16990
+
16946
16991
  var LOG$p = DivaUtils__default["default"].initLog('Planner', 'WEB-PLANNER-LOGIC');
16947
16992
  var OptionValueCatalogData = /*#__PURE__*/function () {
16948
16993
  function OptionValueCatalogData(opv, catalogData) {
@@ -16950,6 +16995,7 @@ var OptionValueCatalogData = /*#__PURE__*/function () {
16950
16995
  _this$opv$property;
16951
16996
  _classCallCheck__default["default"](this, OptionValueCatalogData);
16952
16997
  _defineProperty__default["default"](this, "opv", void 0);
16998
+ _defineProperty__default["default"](this, "isIDMFormat", void 0);
16953
16999
  /**
16954
17000
  * this function mapps the ral colors to color groups for the color filtering
16955
17001
  * @returns
@@ -17003,6 +17049,7 @@ var OptionValueCatalogData = /*#__PURE__*/function () {
17003
17049
  return undefined;
17004
17050
  });
17005
17051
  this.opv = opv;
17052
+ this.isIDMFormat = !!catalogData.isIDMFormat;
17006
17053
  if (opv.imagePaletteColor) {
17007
17054
  this.opv.colorGroups = [opv.imagePaletteColor];
17008
17055
  } else {
@@ -17122,6 +17169,12 @@ var OptionValueCatalogData = /*#__PURE__*/function () {
17122
17169
  var _this$opv$propertyObj2;
17123
17170
  return (_this$opv$propertyObj2 = this.opv.propertyObj.measureUnit) !== null && _this$opv$propertyObj2 !== void 0 ? _this$opv$propertyObj2 : this.opv.measureUnit;
17124
17171
  }
17172
+ /** The unit to convert by: an IDM unit as its UN/ECE code ('mm' is MMT); `measureUnit` stays as written for labels and export. */
17173
+ }, {
17174
+ key: "measureUnitCode",
17175
+ get: function get() {
17176
+ return this.isIDMFormat ? idmMeasureUnit(this.measureUnit) : this.measureUnit;
17177
+ }
17125
17178
  }, {
17126
17179
  key: "measureMinimum",
17127
17180
  get: function get() {
@@ -19081,6 +19134,11 @@ var ArticleOptionValueData = /*#__PURE__*/function () {
19081
19134
  get: function get() {
19082
19135
  return this.opv.catalogOPV.measureUnit;
19083
19136
  }
19137
+ }, {
19138
+ key: "measureUnitCode",
19139
+ get: function get() {
19140
+ return this.opv.catalogOPV.measureUnitCode;
19141
+ }
19084
19142
  }, {
19085
19143
  key: "measureMinimum",
19086
19144
  get: function get() {
@@ -22010,6 +22068,7 @@ function initIDMCatalogData(serie, orderSet, api) {
22010
22068
  //digits: json.Digits,
22011
22069
  supplierILN: catalog.glnNo,
22012
22070
  // SupplierILN des Herstellers des Katalogs
22071
+ supplierName: catalog.manufacturerName1,
22013
22072
  rounding: catalog.roundingType,
22014
22073
  optionGroups: catalog.optionGroups,
22015
22074
  formulas: catalog.formulas,
@@ -22855,6 +22914,11 @@ var DivaCatalogData = /*#__PURE__*/function () {
22855
22914
  get: function get() {
22856
22915
  return this.catalogData.supplierILN;
22857
22916
  }
22917
+ }, {
22918
+ key: "supplierName",
22919
+ get: function get() {
22920
+ return this.catalogData.supplierName;
22921
+ }
22858
22922
  }, {
22859
22923
  key: "retailArticleNr",
22860
22924
  get: function get() {
@@ -25022,12 +25086,9 @@ var ArticleOptionStateData = /*#__PURE__*/function () {
25022
25086
  }, {
25023
25087
  key: "value",
25024
25088
  get: function get() {
25025
- var _this$val11, _this$val12;
25089
+ var _this$val11;
25026
25090
  if (!((_this$val11 = this.val) !== null && _this$val11 !== void 0 && _this$val11.value)) return undefined;
25027
- if (this.val.measureUnit == 'MMT') return this.val.value / 10;
25028
- if (this.val.measureUnit == 'CMT') return this.val.value;
25029
- if (this.val.measureUnit == 'MT') return this.val.value * 10;
25030
- return (_this$val12 = this.val) === null || _this$val12 === void 0 ? void 0 : _this$val12.value;
25091
+ return measureInCentimeters(this.val.value, this.val.measureUnitCode);
25031
25092
  }
25032
25093
  }, {
25033
25094
  key: "vCodex",
@@ -25055,8 +25116,8 @@ var ArticleOptionStateData = /*#__PURE__*/function () {
25055
25116
  get: function get() {
25056
25117
  if (this.articleOptionState.retailArticleNr) return this.articleOptionState.retailArticleNr;
25057
25118
  if (this.articleOptionState.option.articlePlaceholder) {
25058
- var _this$val13;
25059
- return (_this$val13 = this.val) === null || _this$val13 === void 0 ? void 0 : _this$val13.subRetailArticleNr;
25119
+ var _this$val12;
25120
+ return (_this$val12 = this.val) === null || _this$val12 === void 0 ? void 0 : _this$val12.subRetailArticleNr;
25060
25121
  }
25061
25122
  return undefined;
25062
25123
  },
@@ -25079,8 +25140,8 @@ var ArticleOptionStateData = /*#__PURE__*/function () {
25079
25140
  }, {
25080
25141
  key: "visibleInSummary",
25081
25142
  value: function visibleInSummary(aritcle, summaryForBasket) {
25082
- var _this$val14, _this$val15;
25083
- return (!this.isInvisible || summaryForBasket && !this.invisibleWithoutMaskeInfluence) && (this.selectionmode != 0 || (this.visibleCount > 1 || this.isFreeText) && aritcle.set.api.showSelectionModeZero()) && this.isDoShow && !((_this$val14 = this.val) !== null && _this$val14 !== void 0 && _this$val14.isNotRelevant) && !this.isHiddenByDefaultValueForOptions(aritcle, summaryForBasket) && !((_this$val15 = this.val) !== null && _this$val15 !== void 0 && _this$val15.hideInSummary);
25143
+ var _this$val13, _this$val14;
25144
+ return (!this.isInvisible || summaryForBasket && !this.invisibleWithoutMaskeInfluence) && (this.selectionmode != 0 || (this.visibleCount > 1 || this.isFreeText) && aritcle.set.api.showSelectionModeZero()) && this.isDoShow && !((_this$val13 = this.val) !== null && _this$val13 !== void 0 && _this$val13.isNotRelevant) && !this.isHiddenByDefaultValueForOptions(aritcle, summaryForBasket) && !((_this$val14 = this.val) !== null && _this$val14 !== void 0 && _this$val14.hideInSummary);
25084
25145
  }
25085
25146
  }, {
25086
25147
  key: "isHiddenByDefaultValueForOptions",
@@ -25102,20 +25163,26 @@ var ArticleOptionStateData = /*#__PURE__*/function () {
25102
25163
  }, {
25103
25164
  key: "subArticleCodex",
25104
25165
  get: function get() {
25105
- var _this$val16;
25106
- return (_this$val16 = this.val) === null || _this$val16 === void 0 ? void 0 : _this$val16.subArticleCodex;
25166
+ var _this$val15;
25167
+ return (_this$val15 = this.val) === null || _this$val15 === void 0 ? void 0 : _this$val15.subArticleCodex;
25107
25168
  }
25108
25169
  }, {
25109
25170
  key: "subArticleName",
25110
25171
  get: function get() {
25111
- var _this$val17;
25112
- return (_this$val17 = this.val) === null || _this$val17 === void 0 ? void 0 : _this$val17.subArticleName;
25172
+ var _this$val16;
25173
+ return (_this$val16 = this.val) === null || _this$val16 === void 0 ? void 0 : _this$val16.subArticleName;
25113
25174
  }
25114
25175
  }, {
25115
25176
  key: "measureUnit",
25177
+ get: function get() {
25178
+ var _this$val17;
25179
+ return (_this$val17 = this.val) === null || _this$val17 === void 0 ? void 0 : _this$val17.measureUnit;
25180
+ }
25181
+ }, {
25182
+ key: "measureUnitCode",
25116
25183
  get: function get() {
25117
25184
  var _this$val18;
25118
- return (_this$val18 = this.val) === null || _this$val18 === void 0 ? void 0 : _this$val18.measureUnit;
25185
+ return (_this$val18 = this.val) === null || _this$val18 === void 0 ? void 0 : _this$val18.measureUnitCode;
25119
25186
  }
25120
25187
  }, {
25121
25188
  key: "priceUnit",
@@ -28347,11 +28414,11 @@ var IDMEngine = /*#__PURE__*/function () {
28347
28414
  if (!formula) throw new Error('formula ' + action.formulaRef.formulaKey + ' not found in catalog but used in decision: ' + decision.decisionNo);
28348
28415
  var freeText = this.evalMeasureFormula(formula);
28349
28416
  if (option) {
28350
- this.updateArtOPV(option, action.featureNo.toString(), _ops2, freeText, true);
28417
+ this.updateArtOPV(option, action.featureNo.toString(), _ops2, freeText, freeText ? Number(freeText) : undefined);
28351
28418
  }
28352
28419
  } else if (action.featureRef) {
28353
28420
  var _ops3 = this.article.getArticleOptionState(action.featureRef.featureNo);
28354
- if (_ops3 !== null && _ops3 !== void 0 && _ops3.valCodex) this.assignOptionValue(action.featureNo.toString(), _ops3.valCodex, 'default');
28421
+ if (_ops3 !== null && _ops3 !== void 0 && _ops3.valCodex) this.assignOptionValue(action.featureNo.toString(), _ops3.valCodex, 'default', _ops3);
28355
28422
  } else if (action.optionRef) {
28356
28423
  this.assignOptionValue(action.featureNo.toString(), action.optionRef.optionKey, 'default');
28357
28424
  } else {
@@ -28388,7 +28455,7 @@ var IDMEngine = /*#__PURE__*/function () {
28388
28455
  if (!formula) throw new Error('formula ' + action.formulaRef.formulaKey + ' not found in catalog but used in decision: ' + decision.decisionNo);
28389
28456
  var freeText = this.evalMeasureFormula(formula);
28390
28457
  if (option) {
28391
- this.updateArtOPV(option, action.featureNo.toString(), ops, freeText, true);
28458
+ this.updateArtOPV(option, action.featureNo.toString(), ops, freeText, freeText ? Number(freeText) : undefined);
28392
28459
  }
28393
28460
  } else if (action.featureRef) {
28394
28461
  var _ops4 = this.article.getArticleOptionState(action.featureRef.featureNo);
@@ -28411,7 +28478,8 @@ var IDMEngine = /*#__PURE__*/function () {
28411
28478
  } else if (!targetHasSourceValue) {
28412
28479
  LOG$g.warn('evalSetFeature(featureRef) decision ' + decision.decisionNo + ': target feature ' + action.featureNo + ' does not have source feature ' + action.featureRef.featureNo + "'s value '" + _ops4.valCodex + "' among its visible option values - assignOptionValue will be a no-op (price relevant). Target visible values: " + (targetOps ? Array.from(targetOps.visibleOptionValues.keys()).join(', ') : '<no target>'));
28413
28480
  }
28414
- if (_ops4 !== null && _ops4 !== void 0 && _ops4.valCodex) this.assignOptionValue(action.featureNo.toString(), _ops4.valCodex, isFixed ? 'fix' : 'set');
28481
+ // The typed number travels with the option key, or the target shows the option without the user's entry.
28482
+ if (_ops4 !== null && _ops4 !== void 0 && _ops4.valCodex) this.assignOptionValue(action.featureNo.toString(), _ops4.valCodex, isFixed ? 'fix' : 'set', _ops4);
28415
28483
  } else if (action.optionRef) {
28416
28484
  this.assignOptionValue(action.featureNo.toString(), action.optionRef.optionKey, isFixed ? 'fix' : 'set');
28417
28485
  } else {
@@ -28424,25 +28492,30 @@ var IDMEngine = /*#__PURE__*/function () {
28424
28492
  _iterator19.f();
28425
28493
  }
28426
28494
  }
28495
+
28496
+ /** Selects an option on a feature; a FEATURE_REF passes its `source`, whose typed text and formula measure (cm) come along. */
28427
28497
  }, {
28428
28498
  key: "assignOptionValue",
28429
- value: function assignOptionValue(featureNo, optionNo, setBy, freeText) {
28499
+ value: function assignOptionValue(featureNo, optionNo, setBy, source) {
28430
28500
  var ops = this.article.getArticleOptionState(featureNo);
28431
28501
  if (!ops) throw new Error('myOptionState ' + featureNo + ' is undefined');
28432
28502
  var option = ops.visibleOptionValues.get(optionNo);
28433
28503
  if (option) {
28504
+ var _source$freeText;
28434
28505
  if (setBy == 'fix') ops.definedBySetFeatureFixed = true;
28435
28506
  ops.valueWasSet = true;
28436
- this.updateArtOPV(option, featureNo, ops, freeText);
28507
+ if (source) ops.measureValue = undefined;
28508
+ var freeText = source !== null && source !== void 0 && source.isFreeText ? (_source$freeText = source.freeText) !== null && _source$freeText !== void 0 ? _source$freeText : null : undefined;
28509
+ this.updateArtOPV(option, featureNo, ops, freeText, source === null || source === void 0 ? void 0 : source.measureValue);
28437
28510
  }
28438
28511
  }
28439
28512
  }, {
28440
28513
  key: "updateArtOPV",
28441
- value: function updateArtOPV(myItem, featureNo, ops, freeText, byFormula) {
28514
+ value: function updateArtOPV(myItem, featureNo, ops, freeText, measureValue) {
28442
28515
  // myItem - OPV Objekt und speichert es bei Option
28443
28516
 
28444
28517
  if (myItem) {
28445
- ops = this.setOP(featureNo, myItem, freeText, false, byFormula);
28518
+ ops = this.setOP(featureNo, myItem, freeText, false, measureValue);
28446
28519
  //wenn manuell gesetzte Option auf eine Regel basiert, isInherited auch bei abhängige Optionen setzten
28447
28520
  } else {
28448
28521
  this.clearOP(featureNo);
@@ -28679,7 +28752,7 @@ var IDMEngine = /*#__PURE__*/function () {
28679
28752
  }
28680
28753
  }, {
28681
28754
  key: "setOP",
28682
- value: function setOP(featureNo, option, freeText, doDefine, byFormula) {
28755
+ value: function setOP(featureNo, option, freeText, doDefine, measureValue) {
28683
28756
  var myArtOPS = this.article.getArticleOptionState(featureNo);
28684
28757
  if (!myArtOPS) {
28685
28758
  LOG$g.error(new DivaUtils.DivaError('FeautureNo: ' + featureNo + ' in articleCodex: ' + this.article.articleCodex + ' not found!'));
@@ -28708,6 +28781,9 @@ var IDMEngine = /*#__PURE__*/function () {
28708
28781
  }
28709
28782
  myArtOPS.isVisibleFreeText = true;
28710
28783
  } else {
28784
+ // IDM values without OPTION_FREE_TEXT carry isFreeText undefined, which the option state's own reset (== false) misses
28785
+ myArtOPS.freeText = undefined;
28786
+ myArtOPS.freeTextLang = undefined;
28711
28787
  myArtOPS.isVisibleFreeText = false;
28712
28788
  }
28713
28789
  var _this$optionStateText = this.optionStateText(option, myArtOPS.freeText),
@@ -28715,8 +28791,8 @@ var IDMEngine = /*#__PURE__*/function () {
28715
28791
  origName = _this$optionStateText.origName;
28716
28792
  myArtOPS.name = name;
28717
28793
  myArtOPS.origName = origName;
28718
- if (byFormula && freeText) {
28719
- myArtOPS.measureValue = isNaN(Number(freeText)) ? undefined : Number(freeText);
28794
+ if (measureValue !== undefined) {
28795
+ myArtOPS.measureValue = isNaN(measureValue) ? undefined : measureValue;
28720
28796
  }
28721
28797
  return myArtOPS;
28722
28798
  }
@@ -29391,20 +29467,14 @@ var IDMEngine = /*#__PURE__*/function () {
29391
29467
  return null;
29392
29468
  }
29393
29469
 
29394
- /**
29395
- * FreeText holds the raw typed/slider string with NO unit conversion (unlike the `value` getter,
29396
- * which converts per `measureUnit`), so a Planungsbreite freetext of "25600" MMT must become
29397
- * 2560 cm here — mirrors the `value` getter's conversion table.
29398
- */
29470
+ /** The typed freetext is not unit-converted like `value`: "25600" MMT must become 2560 cm here. */
29399
29471
  }, {
29400
29472
  key: "freeTextMeasureCm",
29401
29473
  value: function freeTextMeasureCm(ops) {
29402
29474
  if (ops.freeText == null || ops.freeText === '') return undefined;
29403
29475
  var n = Number(ops.freeText);
29404
29476
  if (!Number.isFinite(n)) return undefined;
29405
- if (ops.measureUnit == 'MMT') return n / 10;
29406
- if (ops.measureUnit == 'MT') return n * 10;
29407
- return n;
29477
+ return measureInCentimeters(n, ops.measureUnitCode);
29408
29478
  }
29409
29479
  }, {
29410
29480
  key: "evalMeasureFormula",
@@ -30781,9 +30851,14 @@ var DivaArticle = /*#__PURE__*/function () {
30781
30851
  _step6;
30782
30852
  try {
30783
30853
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
30784
- var _ops$value;
30854
+ var _ops$freeText, _ops$value;
30785
30855
  var ops = _step6.value;
30786
- if (ops.option.measureKey == measureKey) return (_ops$value = ops.value) !== null && _ops$value !== void 0 ? _ops$value : ops.valueFromName;
30856
+ if (ops.option.measureKey != measureKey) continue;
30857
+ // a formula result is already cm; a typed number is in the option's unit and outranks the option's default measure
30858
+ if (ops.measureValue !== undefined) return ops.measureValue;
30859
+ var typed = ops.isFreeText && String((_ops$freeText = ops.freeText) !== null && _ops$freeText !== void 0 ? _ops$freeText : '').trim() ? Number(ops.freeText) : NaN;
30860
+ if (Number.isFinite(typed)) return measureInCentimeters(typed, ops.measureUnitCode);
30861
+ return (_ops$value = ops.value) !== null && _ops$value !== void 0 ? _ops$value : ops.valueFromName;
30787
30862
  }
30788
30863
  } catch (err) {
30789
30864
  _iterator6.e(err);
@@ -32608,7 +32683,7 @@ var DivaArticle = /*#__PURE__*/function () {
32608
32683
  break;
32609
32684
  }
32610
32685
  _context.next = 4;
32611
- return Promise.resolve().then(function () { return require('./ShelfPlanner-9deb02f0.js'); });
32686
+ return Promise.resolve().then(function () { return require('./ShelfPlanner-7475625e.js'); });
32612
32687
  case 4:
32613
32688
  _yield$import = _context.sent;
32614
32689
  ShelfPlanner = _yield$import["default"];
@@ -41245,7 +41320,7 @@ var DivaSet = /*#__PURE__*/function () {
41245
41320
  break;
41246
41321
  }
41247
41322
  _context5.next = 3;
41248
- return Promise.resolve().then(function () { return require('./DoorPlanner-1f12ae12.js'); });
41323
+ return Promise.resolve().then(function () { return require('./DoorPlanner-af0ee118.js'); });
41249
41324
  case 3:
41250
41325
  _yield$import = _context5.sent;
41251
41326
  DoorPlanner = _yield$import["default"];
@@ -47190,6 +47265,12 @@ var DivaSetHandler = /*#__PURE__*/function () {
47190
47265
  origOrderSet.OfflineData = actOrderSet.OfflineData;
47191
47266
  origOrderSet.CatalogName = actOrderSet.CatalogName;
47192
47267
  origOrderSet.CatalogName_locales = actOrderSet.CatalogName_locales;
47268
+ // other catalogs keep the supplier infos the basket service decrypted from their OfflineData
47269
+ if (actOrderSet.IsIDMFormat) {
47270
+ origOrderSet.SupplierILN = actOrderSet.SupplierILN;
47271
+ origOrderSet.SupplierName = actOrderSet.SupplierName;
47272
+ origOrderSet.SupplierCatalogName = actOrderSet.SupplierCatalogName;
47273
+ }
47193
47274
  if (actOrderSet.ConfigVariants && origOrderSet.ConfigVariants) origOrderSet.ConfigVariants = actOrderSet.ConfigVariants.map(function (variant, index) {
47194
47275
  var _origOrderSet$ConfigV;
47195
47276
  var configVariant = (_origOrderSet$ConfigV = origOrderSet.ConfigVariants) === null || _origOrderSet$ConfigV === void 0 ? void 0 : _origOrderSet$ConfigV[index];
@@ -47574,6 +47655,10 @@ var DivaSetHandler = /*#__PURE__*/function () {
47574
47655
  SetName_locales: set.setName_locales,
47575
47656
  ProductSetName: set.ProductSetName,
47576
47657
  SupplierGUID: catalogData.supplierGuid,
47658
+ // IDM catalogs carry no OfflineData the basket service could decrypt the supplier infos from
47659
+ SupplierILN: catalogData.supplierILN,
47660
+ SupplierName: catalogData.supplierName,
47661
+ SupplierCatalogName: catalogData.origCatalogName,
47577
47662
  SetPrice: set.getSetPrice(),
47578
47663
  BruttoSetPrice: bruttoPrice,
47579
47664
  SetQuantity: 1,
@@ -49189,7 +49274,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
49189
49274
  break;
49190
49275
  case 3:
49191
49276
  _context12.next = 5;
49192
- return Promise.resolve().then(function () { return require('./PfisterWWSHandler-3f044082.js'); });
49277
+ return Promise.resolve().then(function () { return require('./PfisterWWSHandler-d12481b4.js'); });
49193
49278
  case 5:
49194
49279
  _yield$import = _context12.sent;
49195
49280
  PfisterWWSHandler = _yield$import["default"];
@@ -49197,7 +49282,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
49197
49282
  return _context12.abrupt("break", 27);
49198
49283
  case 9:
49199
49284
  _context12.next = 11;
49200
- return Promise.resolve().then(function () { return require('./LiviqueWWSHandler-b25309a0.js'); });
49285
+ return Promise.resolve().then(function () { return require('./LiviqueWWSHandler-0fa91edd.js'); });
49201
49286
  case 11:
49202
49287
  _yield$import2 = _context12.sent;
49203
49288
  LiviqueWWSHandler = _yield$import2["default"];
@@ -49205,7 +49290,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
49205
49290
  return _context12.abrupt("break", 27);
49206
49291
  case 15:
49207
49292
  _context12.next = 17;
49208
- return Promise.resolve().then(function () { return require('./SeriousBasketHandler-e81c3ce0.js'); });
49293
+ return Promise.resolve().then(function () { return require('./SeriousBasketHandler-5a7557f2.js'); });
49209
49294
  case 17:
49210
49295
  _yield$import3 = _context12.sent;
49211
49296
  SeriousWWSHandler = _yield$import3["default"];
@@ -49213,7 +49298,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
49213
49298
  return _context12.abrupt("break", 27);
49214
49299
  case 21:
49215
49300
  _context12.next = 23;
49216
- return Promise.resolve().then(function () { return require('./StandardWWSHandler-35a5cd86.js'); });
49301
+ return Promise.resolve().then(function () { return require('./StandardWWSHandler-d419265e.js'); });
49217
49302
  case 23:
49218
49303
  _yield$import4 = _context12.sent;
49219
49304
  StandardWWSHandler = _yield$import4["default"];
@@ -50600,7 +50685,7 @@ var PlannerHandler3D = /*#__PURE__*/function () {
50600
50685
  //If we need real time rendering initialize the SignalR and 3D host connection Handler
50601
50686
  bootMark('signalr: chunk import start');
50602
50687
  _context3.next = 3;
50603
- return Promise.resolve().then(function () { return require('./Host3DSignalR-7631b06e.js'); });
50688
+ return Promise.resolve().then(function () { return require('./Host3DSignalR-fedcf409.js'); });
50604
50689
  case 3:
50605
50690
  _yield$import = _context3.sent;
50606
50691
  Host3DSignalR = _yield$import["default"];
@@ -52332,7 +52417,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
52332
52417
  break;
52333
52418
  case 8:
52334
52419
  _context5.next = 10;
52335
- return Promise.resolve().then(function () { return require('./DivaStandardPlanner-2f156ac4.js'); });
52420
+ return Promise.resolve().then(function () { return require('./DivaStandardPlanner-320d838c.js'); });
52336
52421
  case 10:
52337
52422
  _yield$import = _context5.sent;
52338
52423
  DivaStandardPlanner = _yield$import["default"];
@@ -52343,7 +52428,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
52343
52428
  return _context5.abrupt("break", 21);
52344
52429
  case 15:
52345
52430
  _context5.next = 17;
52346
- return Promise.resolve().then(function () { return require('./DivaBoxPlanner-ed84f911.js'); });
52431
+ return Promise.resolve().then(function () { return require('./DivaBoxPlanner-8b312c16.js'); });
52347
52432
  case 17:
52348
52433
  _yield$import2 = _context5.sent;
52349
52434
  DivaBoxPlanner = _yield$import2["default"];
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var index = require('./index-617f37df.js');
5
+ var index = require('./index-4d164cf3.js');
6
6
  var planner2dCore = require('@crystaldesign/planner-2d-core');
7
7
  require('@babel/runtime/helpers/slicedToArray');
8
8
  require('@babel/runtime/helpers/asyncToGenerator');
@@ -3,11 +3,11 @@ 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, P as PlannerElementData, B as BoundingBox } from './index-dc4616aa.js';
6
+ import { c as Vector2, V as Vector3, P as PlannerElementData, B as BoundingBox } from './index-7437d23b.js';
7
7
  import DivaUtils, { DivaError, md5 } from '@crystaldesign/diva-utils';
8
8
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
9
9
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
10
- import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-d38ac865.js';
10
+ import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-26261a6f.js';
11
11
  import '@babel/runtime/helpers/objectWithoutProperties';
12
12
  import 'axios';
13
13
  import '@crystaldesign/planner-2d-core';
@@ -4,10 +4,10 @@ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
4
4
  import _createClass from '@babel/runtime/helpers/createClass';
5
5
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
6
6
  import _regeneratorRuntime from '@babel/runtime/regenerator';
7
- import { V as Vector3, P as PlannerElementData, B as BoundingBox } from './index-dc4616aa.js';
7
+ import { V as Vector3, P as PlannerElementData, B as BoundingBox } from './index-7437d23b.js';
8
8
  import DivaUtils, { DivaError, md5 } from '@crystaldesign/diva-utils';
9
9
  import { computeDockedTransform } from '@crystaldesign/planner-2d-core';
10
- import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-d38ac865.js';
10
+ import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-26261a6f.js';
11
11
  import '@babel/runtime/helpers/slicedToArray';
12
12
  import '@babel/runtime/helpers/objectWithoutProperties';
13
13
  import 'axios';
@@ -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-dc4616aa.js';
4
+ import './index-7437d23b.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 { d as bootMark, R as Rendering, H as HQRenderScript } from './index-dc4616aa.js';
6
+ import { d as bootMark, R as Rendering, H as HQRenderScript } from './index-7437d23b.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-dc4616aa.js';
3
+ import './index-7437d23b.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-dc4616aa.js';
3
+ import { a as articleHandlerInstance } from './index-7437d23b.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';
@@ -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 { c as Vector2, S as SVGUtils } from './index-dc4616aa.js';
6
+ import { c as Vector2, S as SVGUtils } from './index-7437d23b.js';
7
7
  import _possibleConstructorReturn from '@babel/runtime/helpers/possibleConstructorReturn';
8
8
  import _getPrototypeOf from '@babel/runtime/helpers/getPrototypeOf';
9
9
  import _get from '@babel/runtime/helpers/get';
@@ -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 { s as summaryHandlerInstance } from './index-dc4616aa.js';
4
+ import { s as summaryHandlerInstance } from './index-7437d23b.js';
5
5
  import DivaUtils from '@crystaldesign/diva-utils';
6
6
  import '@babel/runtime/helpers/slicedToArray';
7
7
  import '@babel/runtime/helpers/asyncToGenerator';