@crystaldesign/diva-backoffice 26.13.0-beta.10 → 26.13.0-beta.11

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 (36) hide show
  1. package/build/esm/index.js +661 -361
  2. package/build/types/backoffice/src/layout/ProductOnboarding/Navigation.d.ts.map +1 -1
  3. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ArticleStatusCell/index.d.ts +1 -1
  4. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ArticleStatusCell/index.d.ts.map +1 -1
  5. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ArticleTable/index.d.ts +1 -1
  6. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ArticleTable/index.d.ts.map +1 -1
  7. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/hooks/useArticlePreFilter.d.ts +2 -2
  8. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/hooks/useArticlePreFilter.d.ts.map +1 -1
  9. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/index.d.ts.map +1 -1
  10. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/articleColumns.d.ts +10 -3
  11. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/articleColumns.d.ts.map +1 -1
  12. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/articleLock.d.ts +5 -0
  13. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/articleLock.d.ts.map +1 -1
  14. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/articleSearch.d.ts +22 -0
  15. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/articleSearch.d.ts.map +1 -0
  16. package/build/types/backoffice/src/ui/AssortmentManager/ColliData/components/ColliImport/index.d.ts.map +1 -1
  17. package/build/types/backoffice/src/ui/AssortmentManager/ColliData/components/ColliTable/index.d.ts +1 -1
  18. package/build/types/backoffice/src/ui/AssortmentManager/ColliData/components/ColliTable/index.d.ts.map +1 -1
  19. package/build/types/backoffice/src/ui/AssortmentManager/ColliData/index.d.ts.map +1 -1
  20. package/build/types/backoffice/src/ui/AssortmentManager/HeaderData/logic/itemGroupColumns.d.ts +2 -0
  21. package/build/types/backoffice/src/ui/AssortmentManager/HeaderData/logic/itemGroupColumns.d.ts.map +1 -1
  22. package/build/types/backoffice/src/ui/AssortmentManager/config/articleTransfer.d.ts.map +1 -1
  23. package/build/types/backoffice/src/ui/AssortmentManager/config/fields.d.ts.map +1 -1
  24. package/build/types/backoffice/src/ui/AssortmentManager/logic/itemRows.d.ts +2 -0
  25. package/build/types/backoffice/src/ui/AssortmentManager/logic/itemRows.d.ts.map +1 -1
  26. package/build/types/backoffice/src/ui/AssortmentManager/tests/articleSearch.test.d.ts +2 -0
  27. package/build/types/backoffice/src/ui/AssortmentManager/tests/articleSearch.test.d.ts.map +1 -0
  28. package/build/types/backoffice/src/ui/AssortmentManager/types.d.ts +25 -3
  29. package/build/types/backoffice/src/ui/AssortmentManager/types.d.ts.map +1 -1
  30. package/build/types/backoffice/src/ui/CommonComponents/UploadModal/index.d.ts +1 -1
  31. package/build/types/backoffice/src/ui/CommonComponents/UploadModal/index.d.ts.map +1 -1
  32. package/build/types/backoffice/src/ui/CommonComponents/UploadModal/types.d.ts +8 -0
  33. package/build/types/backoffice/src/ui/CommonComponents/UploadModal/types.d.ts.map +1 -1
  34. package/build/types/backoffice/src/ui/CommonComponents/UploadModal/useUploadState.d.ts +2 -0
  35. package/build/types/backoffice/src/ui/CommonComponents/UploadModal/useUploadState.d.ts.map +1 -1
  36. package/package.json +12 -12
@@ -63373,6 +63373,9 @@ var hasBulkErrors = function hasBulkErrors(errors) {
63373
63373
  return !!errors && !!(errors.transactionAborted || (_errors$add = errors.add) !== null && _errors$add !== void 0 && _errors$add.length || (_errors$update = errors.update) !== null && _errors$update !== void 0 && _errors$update.length || (_errors$remove = errors.remove) !== null && _errors$remove !== void 0 && _errors$remove.length || (_errors$restore = errors.restore) !== null && _errors$restore !== void 0 && _errors$restore.length);
63374
63374
  };
63375
63375
 
63376
+ /** The progress the time-based estimate stops at: from here on the file is sent and the server is still at work. */
63377
+ var ESTIMATED_UPLOAD_PROGRESS = 95;
63378
+
63376
63379
  /**
63377
63380
  * Custom hook for managing upload modal state and functionality
63378
63381
  *
@@ -63596,7 +63599,7 @@ function useUploadModal(_ref) {
63596
63599
  estimatedUploadTimeMs = fileSize / (1024 * 1024) * 1000;
63597
63600
  updateProgressBasedOnTime = function updateProgressBasedOnTime() {
63598
63601
  var elapsedTime = Date.now() - startTime;
63599
- var progressPercent = Math.min(elapsedTime / estimatedUploadTimeMs * 100, 95);
63602
+ var progressPercent = Math.min(elapsedTime / estimatedUploadTimeMs * 100, ESTIMATED_UPLOAD_PROGRESS);
63600
63603
  setProgress(Math.round(progressPercent));
63601
63604
  };
63602
63605
  progressInterval = setInterval(updateProgressBasedOnTime, 100);
@@ -63914,7 +63917,8 @@ function UploadModal(_ref) {
63914
63917
  isOpen = _ref.isOpen,
63915
63918
  onClose = _ref.onClose,
63916
63919
  uploadHint = _ref.uploadHint,
63917
- plainRowErrors = _ref.plainRowErrors;
63920
+ plainRowErrors = _ref.plainRowErrors,
63921
+ progressTexts = _ref.progressTexts;
63918
63922
  var formRef = useRef(null);
63919
63923
  var _useTranslation = useTranslation$1(),
63920
63924
  t = _useTranslation.t;
@@ -63962,6 +63966,9 @@ function UploadModal(_ref) {
63962
63966
  percent: progress,
63963
63967
  status: "active",
63964
63968
  showInfo: false
63969
+ }), loading && progressTexts && /*#__PURE__*/jsx(Typography.Text, {
63970
+ type: "secondary",
63971
+ children: progress < ESTIMATED_UPLOAD_PROGRESS ? progressTexts.uploading : progressTexts.checking
63965
63972
  }), !loading && progress === 100 && !error && /*#__PURE__*/jsx(Alert, {
63966
63973
  message: t('backoffice.idmEnricher.import.uploadsuccess'),
63967
63974
  type: "success",
@@ -95484,7 +95491,8 @@ var Navigation = function Navigation() {
95484
95491
  t = _useTranslation.t;
95485
95492
  var _useLocation = useLocation(),
95486
95493
  pathname = _useLocation.pathname;
95487
- var _useState = useState(true),
95494
+ // starts minified to its icons: the pages are wide tables
95495
+ var _useState = useState(false),
95488
95496
  _useState2 = _slicedToArray(_useState, 2),
95489
95497
  open = _useState2[0],
95490
95498
  setOpen = _useState2[1];
@@ -95772,6 +95780,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
95772
95780
  name: 'backoffice.assortmentmanager.fields.name.SAP_MARA_MATNR',
95773
95781
  key: 'customData.SAP.SAP_MARA_MATNR',
95774
95782
  showOnArticle: true,
95783
+ articlePosition: 10,
95775
95784
  showOnHeaderValues: false,
95776
95785
  type: 'string',
95777
95786
  maxLength: 18,
@@ -95781,12 +95790,11 @@ var ASSORTMENT_MANAGER_FIELDS = [
95781
95790
  search: true,
95782
95791
  // the SAP article number is unique per article — a duplicated row must not carry it along
95783
95792
  excludeFromDuplicate: true,
95784
- description: 'backoffice.assortmentmanager.fields.description.SAP_MARA_MATNR',
95785
- group: 'backoffice.assortmentmanager.group.sapInfo'
95793
+ description: 'backoffice.assortmentmanager.fields.description.SAP_MARA_MATNR'
95786
95794
  }, {
95787
95795
  name: 'backoffice.assortmentmanager.fields.name.SAP_POSITION',
95788
95796
  key: 'customData.SAP.SAP_POSITION',
95789
- showOnArticle: true,
95797
+ showOnArticle: 'hidden',
95790
95798
  showOnHeaderValues: false,
95791
95799
  type: 'number',
95792
95800
  pinned: 'left',
@@ -95797,12 +95805,12 @@ var ASSORTMENT_MANAGER_FIELDS = [
95797
95805
  // uniqueness error right away
95798
95806
  unique: true,
95799
95807
  excludeFromDuplicate: true,
95800
- description: 'backoffice.assortmentmanager.fields.description.SAP_POSITION',
95801
- group: 'backoffice.assortmentmanager.group.sapInfo'
95808
+ description: 'backoffice.assortmentmanager.fields.description.SAP_POSITION'
95802
95809
  }, {
95803
95810
  name: 'backoffice.assortmentmanager.fields.name.SentToSAPDate',
95804
95811
  key: 'customData.SAP.SentToSAPDate',
95805
- showOnArticle: true,
95812
+ // the status column's tooltip names the date (articleTransfer.ts `dateField`) — its own column starts hidden
95813
+ showOnArticle: 'hidden',
95806
95814
  showOnHeaderValues: false,
95807
95815
  type: 'date',
95808
95816
  editable: false,
@@ -95810,9 +95818,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
95810
95818
  //commonColumn: 'SAP Info',
95811
95819
  // a duplicated article was never sent to SAP (legacy onCopyArticle nulled the transfer state)
95812
95820
  excludeFromDuplicate: true,
95813
- description: 'backoffice.assortmentmanager.fields.description.SentToSAPDate',
95814
- collapsed: true,
95815
- group: 'backoffice.assortmentmanager.group.sapInfo'
95821
+ description: 'backoffice.assortmentmanager.fields.description.SentToSAPDate'
95816
95822
  }, {
95817
95823
  name: 'backoffice.assortmentmanager.fields.name.SAP_MARA_MSTAE',
95818
95824
  key: 'customData.SAP.SAP_MARA_MSTAE',
@@ -95820,6 +95826,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
95820
95826
  key: 'SAP_MARA_MSTAE'
95821
95827
  },
95822
95828
  showOnArticle: true,
95829
+ articlePosition: 30,
95823
95830
  showOnHeaderValues: false,
95824
95831
  type: 'number',
95825
95832
  editable: false,
@@ -95827,22 +95834,39 @@ var ASSORTMENT_MANAGER_FIELDS = [
95827
95834
  //commonColumn: 'SAP Info',
95828
95835
  // the material status comes back from SAP — a copy starts without one (legacy onCopyArticle)
95829
95836
  excludeFromDuplicate: true,
95830
- description: 'backoffice.assortmentmanager.fields.description.SAP_MARA_MSTAE',
95831
- collapsed: true,
95832
- group: 'backoffice.assortmentmanager.group.sapInfo'
95837
+ description: 'backoffice.assortmentmanager.fields.description.SAP_MARA_MSTAE'
95833
95838
  }, {
95834
95839
  name: 'backoffice.assortmentmanager.fields.name.SentToSAPSuccess',
95835
95840
  key: 'customData.SAP.SentToSAPSuccess',
95836
- showOnArticle: true,
95841
+ showOnArticle: 'hidden',
95837
95842
  showOnHeaderValues: false,
95838
95843
  type: 'boolean',
95839
95844
  editable: false,
95840
95845
  pinned: 'left',
95841
95846
  //commonColumn: 'SAP Info',
95842
95847
  // a duplicated article was never sent to SAP — carrying the flag would also SAP-lock the copy
95848
+ excludeFromDuplicate: true
95849
+ }, {
95850
+ // the catalog's audit stamp of the product's last save (epoch ms) — a copy gets its own; no position:
95851
+ // the group "Sonstiges" takes it
95852
+ name: 'backoffice.assortmentmanager.fields.name.LastUpdate',
95853
+ key: 'lastUpdated',
95854
+ showOnArticle: true,
95855
+ showOnHeaderValues: false,
95856
+ type: 'date',
95857
+ editable: false,
95843
95858
  excludeFromDuplicate: true,
95844
- collapsed: true,
95845
- group: 'backoffice.assortmentmanager.group.sapInfo'
95859
+ description: 'backoffice.assortmentmanager.fields.description.LastUpdate'
95860
+ }, {
95861
+ // the name of the user behind that save (the catalog keeps the id in `lastUpdatedBy`)
95862
+ name: 'backoffice.assortmentmanager.fields.name.LastUpdateByUser',
95863
+ key: 'lastUpdatedBy_displayText',
95864
+ showOnArticle: true,
95865
+ showOnHeaderValues: false,
95866
+ type: 'string',
95867
+ editable: false,
95868
+ excludeFromDuplicate: true,
95869
+ description: 'backoffice.assortmentmanager.fields.description.LastUpdateByUser'
95846
95870
  },
95847
95871
  // the SAP response texts have no columns: the article table shows them through its leading transfer
95848
95872
  // status column (articleTransfer.ts `errorField` / `warningField` — a click opens the text)
@@ -95866,6 +95890,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
95866
95890
  name: 'backoffice.assortmentmanager.fields.name.SAP_EINA_IDNLF',
95867
95891
  key: 'customData.SAP.SAP_EINA_IDNLF',
95868
95892
  showOnArticle: true,
95893
+ articlePosition: 60,
95869
95894
  showOnHeaderValues: false,
95870
95895
  type: 'string',
95871
95896
  maxLength: 35,
@@ -95881,6 +95906,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
95881
95906
  name: 'backoffice.assortmentmanager.fields.name.SAP_MAKT',
95882
95907
  key: 'customData.SAP.SAP_MAKT',
95883
95908
  showOnArticle: true,
95909
+ articlePosition: 70,
95884
95910
  showOnHeaderValues: false,
95885
95911
  type: 'string',
95886
95912
  maxLength: 40,
@@ -95902,7 +95928,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
95902
95928
  type: 'string',
95903
95929
  maxLength: 7,
95904
95930
  required: true,
95905
- group: 'backoffice.assortmentmanager.group.Stammdaten'
95931
+ group: 'backoffice.assortmentmanager.group.articleBaseData'
95906
95932
  }, {
95907
95933
  name: 'backoffice.assortmentmanager.fields.name.SAP_REF_MATNR',
95908
95934
  key: 'customData.SAP.SAP_REF_MATNR',
@@ -95910,12 +95936,13 @@ var ASSORTMENT_MANAGER_FIELDS = [
95910
95936
  key: 'MT_VORLARTIKEL'
95911
95937
  },
95912
95938
  showOnArticle: true,
95939
+ articlePosition: 80,
95913
95940
  showOnHeaderValues: true,
95914
95941
  type: 'string',
95915
95942
  maxLength: 18,
95916
95943
  required: true,
95917
95944
  description: 'backoffice.assortmentmanager.fields.description.SAP_REF_MATNR',
95918
- group: 'backoffice.assortmentmanager.group.Stammdaten'
95945
+ group: 'backoffice.assortmentmanager.group.articleBaseData'
95919
95946
  }, {
95920
95947
  name: 'backoffice.assortmentmanager.fields.name.SAP_MARA_MTART',
95921
95948
  key: 'customData.SAP.SAP_MARA_MTART',
@@ -95935,11 +95962,11 @@ var ASSORTMENT_MANAGER_FIELDS = [
95935
95962
  name: 'ZKMA'
95936
95963
  }]
95937
95964
  },
95938
- showOnArticle: true,
95965
+ showOnArticle: 'hidden',
95939
95966
  showOnHeaderValues: true,
95940
95967
  type: 'string',
95941
95968
  description: 'backoffice.assortmentmanager.fields.description.SAP_MARA_MTART',
95942
- group: 'backoffice.assortmentmanager.group.Stammdaten'
95969
+ group: 'backoffice.assortmentmanager.group.articleBaseData'
95943
95970
  }, {
95944
95971
  name: 'backoffice.assortmentmanager.fields.name.SAP_MARA_ZZBASISA',
95945
95972
  key: 'customData.SAP.SAP_MARA_ZZBASISA',
@@ -95947,11 +95974,12 @@ var ASSORTMENT_MANAGER_FIELDS = [
95947
95974
  key: 'MT_VORLARTIKEL_ESHOP'
95948
95975
  },
95949
95976
  showOnArticle: true,
95977
+ articlePosition: 90,
95950
95978
  showOnHeaderValues: false,
95951
95979
  type: 'string',
95952
95980
  maxLength: 18,
95953
95981
  description: 'backoffice.assortmentmanager.fields.description.SAP_MARA_ZZBASISA',
95954
- group: 'backoffice.assortmentmanager.group.Stammdaten'
95982
+ group: 'backoffice.assortmentmanager.group.articleBaseData'
95955
95983
  }, {
95956
95984
  name: 'backoffice.assortmentmanager.fields.name.SAP_MARA_MEINS',
95957
95985
  key: 'customData.SAP.SAP_MARA_MEINS',
@@ -95965,7 +95993,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
95965
95993
  maxLength: 3,
95966
95994
  required: true,
95967
95995
  description: 'backoffice.assortmentmanager.fields.description.SAP_MARA_MEINS',
95968
- group: 'backoffice.assortmentmanager.group.Stammdaten'
95996
+ group: 'backoffice.assortmentmanager.group.articleBaseData'
95969
95997
  }, {
95970
95998
  name: 'backoffice.assortmentmanager.fields.name.SAP_MARA_BSTME',
95971
95999
  key: 'customData.SAP.SAP_MARA_BSTME',
@@ -95979,7 +96007,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
95979
96007
  maxLength: 3,
95980
96008
  required: true,
95981
96009
  description: 'backoffice.assortmentmanager.fields.description.SAP_MARA_BSTME',
95982
- group: 'backoffice.assortmentmanager.group.Stammdaten'
96010
+ group: 'backoffice.assortmentmanager.group.articleBaseData'
95983
96011
  }, {
95984
96012
  name: 'backoffice.assortmentmanager.fields.name.SAP_MAW1_WVRKM',
95985
96013
  key: 'customData.SAP.SAP_MAW1_WVRKM',
@@ -95993,7 +96021,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
95993
96021
  maxLength: 3,
95994
96022
  required: true,
95995
96023
  description: 'backoffice.assortmentmanager.fields.description.SAP_MAW1_WVRKM',
95996
- group: 'backoffice.assortmentmanager.group.Stammdaten'
96024
+ group: 'backoffice.assortmentmanager.group.articleBaseData'
95997
96025
  }, {
95998
96026
  name: 'backoffice.assortmentmanager.fields.name.SAP_MAW1_WAUSM',
95999
96027
  key: 'customData.SAP.SAP_MAW1_WAUSM',
@@ -96007,7 +96035,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
96007
96035
  maxLength: 3,
96008
96036
  required: true,
96009
96037
  description: 'backoffice.assortmentmanager.fields.description.SAP_MAW1_WAUSM',
96010
- group: 'backoffice.assortmentmanager.group.Stammdaten'
96038
+ group: 'backoffice.assortmentmanager.group.articleBaseData'
96011
96039
  }, {
96012
96040
  name: 'backoffice.assortmentmanager.fields.name.SAP_MAW1_WEKGR',
96013
96041
  key: 'customData.SAP.SAP_MAW1_WEKGR',
@@ -96018,11 +96046,11 @@ var ASSORTMENT_MANAGER_FIELDS = [
96018
96046
  required: true,
96019
96047
  editable: false,
96020
96048
  description: 'backoffice.assortmentmanager.fields.description.SAP_MAW1_WEKGR',
96021
- group: 'backoffice.assortmentmanager.group.Stammdaten'
96049
+ group: 'backoffice.assortmentmanager.group.articleBaseData'
96022
96050
  }, {
96023
96051
  name: 'backoffice.assortmentmanager.fields.name.SAP_MAW1_ZZFLACH',
96024
96052
  key: 'customData.SAP.SAP_MAW1_ZZFLACH',
96025
- showOnArticle: true,
96053
+ showOnArticle: 'hidden',
96026
96054
  showOnHeaderValues: false,
96027
96055
  type: 'decimal',
96028
96056
  editable: false,
@@ -96032,7 +96060,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
96032
96060
  }, {
96033
96061
  name: 'backoffice.assortmentmanager.fields.name.SAP_MAW1_ZZFLACH_MANUAL',
96034
96062
  key: 'customData.SAP.SAP_MAW1_ZZFLACH_MANUAL',
96035
- showOnArticle: true,
96063
+ showOnArticle: 'hidden',
96036
96064
  showOnHeaderValues: false,
96037
96065
  type: 'decimal',
96038
96066
  description: 'backoffice.assortmentmanager.fields.description.SAP_MAW1_ZZFLACH_MANUAL',
@@ -96040,7 +96068,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
96040
96068
  }, {
96041
96069
  name: 'backoffice.assortmentmanager.fields.name.SAP_MAW1_ZZFLEIN',
96042
96070
  key: 'customData.SAP.SAP_MAW1_ZZFLEIN',
96043
- showOnArticle: true,
96071
+ showOnArticle: 'hidden',
96044
96072
  showOnHeaderValues: false,
96045
96073
  type: 'string',
96046
96074
  maxLength: 3,
@@ -96051,41 +96079,52 @@ var ASSORTMENT_MANAGER_FIELDS = [
96051
96079
  },
96052
96080
  // Mengeneinheiten ST — flat fields of the ST row of SAP_MARM (see MARM_ST), article level only
96053
96081
  {
96054
- name: 'backoffice.assortmentmanager.fields.name.SAP_MARM_LAENG',
96082
+ name: 'backoffice.assortmentmanager.fields.name.SAP_MARM_LAENG_ST',
96055
96083
  key: 'customData.SAP.SAP_MARM.ST.SAP_MARM_LAENG',
96056
96084
  itemRow: MARM_ST,
96057
96085
  showOnArticle: true,
96086
+ articlePosition: 320,
96087
+ combinedColumn: 'backoffice.assortmentmanager.fields.name.SAP_MARM_LBH_ST',
96058
96088
  showOnHeaderValues: false,
96059
96089
  type: 'decimal',
96060
96090
  description: 'backoffice.assortmentmanager.fields.description.SAP_MARM_LAENG',
96061
- group: 'backoffice.assortmentmanager.group.unitsST'
96091
+ group: 'backoffice.assortmentmanager.group.logistics',
96092
+ subGroup: 'backoffice.assortmentmanager.group.unitsST'
96062
96093
  }, {
96063
- name: 'backoffice.assortmentmanager.fields.name.SAP_MARM_BREIT',
96094
+ name: 'backoffice.assortmentmanager.fields.name.SAP_MARM_BREIT_ST',
96064
96095
  key: 'customData.SAP.SAP_MARM.ST.SAP_MARM_BREIT',
96065
96096
  itemRow: MARM_ST,
96066
96097
  showOnArticle: true,
96098
+ articlePosition: 330,
96099
+ combinedColumn: 'backoffice.assortmentmanager.fields.name.SAP_MARM_LBH_ST',
96067
96100
  showOnHeaderValues: false,
96068
96101
  type: 'decimal',
96069
96102
  description: 'backoffice.assortmentmanager.fields.description.SAP_MARM_BREIT',
96070
- group: 'backoffice.assortmentmanager.group.unitsST'
96103
+ group: 'backoffice.assortmentmanager.group.logistics',
96104
+ subGroup: 'backoffice.assortmentmanager.group.unitsST'
96071
96105
  }, {
96072
- name: 'backoffice.assortmentmanager.fields.name.SAP_MARM_HOEHE',
96106
+ name: 'backoffice.assortmentmanager.fields.name.SAP_MARM_HOEHE_ST',
96073
96107
  key: 'customData.SAP.SAP_MARM.ST.SAP_MARM_HOEHE',
96074
96108
  itemRow: MARM_ST,
96075
96109
  showOnArticle: true,
96110
+ articlePosition: 340,
96111
+ combinedColumn: 'backoffice.assortmentmanager.fields.name.SAP_MARM_LBH_ST',
96076
96112
  showOnHeaderValues: false,
96077
96113
  type: 'decimal',
96078
96114
  description: 'backoffice.assortmentmanager.fields.description.SAP_MARM_HOEHE',
96079
- group: 'backoffice.assortmentmanager.group.unitsST'
96115
+ group: 'backoffice.assortmentmanager.group.logistics',
96116
+ subGroup: 'backoffice.assortmentmanager.group.unitsST'
96080
96117
  }, {
96081
- name: 'backoffice.assortmentmanager.fields.name.SAP_MARM_BRGEW',
96118
+ name: 'backoffice.assortmentmanager.fields.name.SAP_MARM_BRGEW_ST',
96082
96119
  key: 'customData.SAP.SAP_MARM.ST.SAP_MARM_BRGEW',
96083
96120
  itemRow: MARM_ST,
96084
96121
  showOnArticle: true,
96122
+ articlePosition: 350,
96085
96123
  showOnHeaderValues: false,
96086
96124
  type: 'decimal',
96087
96125
  description: 'backoffice.assortmentmanager.fields.description.SAP_MARM_BRGEW',
96088
- group: 'backoffice.assortmentmanager.group.unitsST'
96126
+ group: 'backoffice.assortmentmanager.group.logistics',
96127
+ subGroup: 'backoffice.assortmentmanager.group.unitsST'
96089
96128
  }, {
96090
96129
  name: 'backoffice.assortmentmanager.fields.name.SAP_MARM_NUMTP',
96091
96130
  key: 'customData.SAP.SAP_MARM.ST.SAP_MARM_NUMTP',
@@ -96101,101 +96140,118 @@ var ASSORTMENT_MANAGER_FIELDS = [
96101
96140
  }]
96102
96141
  },
96103
96142
  showOnArticle: true,
96143
+ articlePosition: 120,
96104
96144
  showOnHeaderValues: false,
96105
96145
  type: 'string',
96106
96146
  maxLength: 2,
96107
96147
  description: 'backoffice.assortmentmanager.fields.description.SAP_MARM_NUMTP',
96108
- group: 'backoffice.assortmentmanager.group.unitsST'
96148
+ group: 'backoffice.assortmentmanager.group.articleBaseData'
96109
96149
  }, {
96110
96150
  name: 'backoffice.assortmentmanager.fields.name.SAP_MARM_EAN11',
96111
96151
  key: 'customData.SAP.SAP_MARM.ST.SAP_MARM_EAN11',
96112
96152
  itemRow: MARM_ST,
96113
96153
  showOnArticle: true,
96154
+ articlePosition: 130,
96114
96155
  showOnHeaderValues: false,
96115
96156
  type: 'string',
96116
96157
  maxLength: 18,
96117
- group: 'backoffice.assortmentmanager.group.unitsST'
96158
+ group: 'backoffice.assortmentmanager.group.articleBaseData'
96118
96159
  },
96119
96160
  // Mengeneinheiten VE — flat fields of the VE row of SAP_MARM (see MARM_VE), article level only
96120
96161
  {
96121
- name: 'backoffice.assortmentmanager.fields.name.SAP_MARM_LAENG',
96162
+ name: 'backoffice.assortmentmanager.fields.name.SAP_MARM_LAENG_VE',
96122
96163
  key: 'customData.SAP.SAP_MARM.VE.SAP_MARM_LAENG',
96123
96164
  itemRow: MARM_VE,
96124
96165
  showOnArticle: true,
96166
+ articlePosition: 360,
96167
+ combinedColumn: 'backoffice.assortmentmanager.fields.name.SAP_MARM_LBH_VE',
96125
96168
  showOnHeaderValues: false,
96126
96169
  type: 'decimal',
96127
96170
  description: 'backoffice.assortmentmanager.fields.description.SAP_MARM_LAENG',
96128
- group: 'backoffice.assortmentmanager.group.unitsVE'
96171
+ group: 'backoffice.assortmentmanager.group.logistics',
96172
+ subGroup: 'backoffice.assortmentmanager.group.unitsVE'
96129
96173
  }, {
96130
- name: 'backoffice.assortmentmanager.fields.name.SAP_MARM_BREIT',
96174
+ name: 'backoffice.assortmentmanager.fields.name.SAP_MARM_BREIT_VE',
96131
96175
  key: 'customData.SAP.SAP_MARM.VE.SAP_MARM_BREIT',
96132
96176
  itemRow: MARM_VE,
96133
96177
  showOnArticle: true,
96178
+ articlePosition: 370,
96179
+ combinedColumn: 'backoffice.assortmentmanager.fields.name.SAP_MARM_LBH_VE',
96134
96180
  showOnHeaderValues: false,
96135
96181
  type: 'decimal',
96136
96182
  description: 'backoffice.assortmentmanager.fields.description.SAP_MARM_BREIT',
96137
- group: 'backoffice.assortmentmanager.group.unitsVE'
96183
+ group: 'backoffice.assortmentmanager.group.logistics',
96184
+ subGroup: 'backoffice.assortmentmanager.group.unitsVE'
96138
96185
  }, {
96139
- name: 'backoffice.assortmentmanager.fields.name.SAP_MARM_HOEHE',
96186
+ name: 'backoffice.assortmentmanager.fields.name.SAP_MARM_HOEHE_VE',
96140
96187
  key: 'customData.SAP.SAP_MARM.VE.SAP_MARM_HOEHE',
96141
96188
  itemRow: MARM_VE,
96142
96189
  showOnArticle: true,
96190
+ articlePosition: 380,
96191
+ combinedColumn: 'backoffice.assortmentmanager.fields.name.SAP_MARM_LBH_VE',
96143
96192
  showOnHeaderValues: false,
96144
96193
  type: 'decimal',
96145
96194
  description: 'backoffice.assortmentmanager.fields.description.SAP_MARM_HOEHE',
96146
- group: 'backoffice.assortmentmanager.group.unitsVE'
96195
+ group: 'backoffice.assortmentmanager.group.logistics',
96196
+ subGroup: 'backoffice.assortmentmanager.group.unitsVE'
96147
96197
  }, {
96148
- name: 'backoffice.assortmentmanager.fields.name.SAP_MARM_BRGEW',
96198
+ name: 'backoffice.assortmentmanager.fields.name.SAP_MARM_BRGEW_VE',
96149
96199
  key: 'customData.SAP.SAP_MARM.VE.SAP_MARM_BRGEW',
96150
96200
  itemRow: MARM_VE,
96151
96201
  showOnArticle: true,
96202
+ articlePosition: 390,
96152
96203
  showOnHeaderValues: false,
96153
96204
  type: 'decimal',
96154
96205
  description: 'backoffice.assortmentmanager.fields.description.SAP_MARM_BRGEW',
96155
- group: 'backoffice.assortmentmanager.group.unitsVE'
96206
+ group: 'backoffice.assortmentmanager.group.logistics',
96207
+ subGroup: 'backoffice.assortmentmanager.group.unitsVE'
96156
96208
  }, {
96157
96209
  name: 'backoffice.assortmentmanager.fields.name.SAP_MARM_UMREN',
96158
96210
  key: 'customData.SAP.SAP_MARM.VE.SAP_MARM_UMREN',
96159
96211
  itemRow: MARM_VE,
96160
96212
  showOnArticle: true,
96213
+ articlePosition: 400,
96161
96214
  showOnHeaderValues: false,
96162
96215
  type: 'decimal',
96163
96216
  description: 'backoffice.assortmentmanager.fields.description.SAP_MARM_UMREN',
96164
- group: 'backoffice.assortmentmanager.group.unitsVE'
96217
+ group: 'backoffice.assortmentmanager.group.logistics',
96218
+ subGroup: 'backoffice.assortmentmanager.group.unitsVE'
96165
96219
  }, {
96166
96220
  name: 'backoffice.assortmentmanager.fields.name.SAP_MARM_UMREZ',
96167
96221
  key: 'customData.SAP.SAP_MARM.VE.SAP_MARM_UMREZ',
96168
96222
  itemRow: MARM_VE,
96169
96223
  showOnArticle: true,
96224
+ articlePosition: 410,
96170
96225
  showOnHeaderValues: false,
96171
96226
  type: 'decimal',
96172
96227
  description: 'backoffice.assortmentmanager.fields.description.SAP_MARM_UMREZ',
96173
- group: 'backoffice.assortmentmanager.group.unitsVE'
96228
+ group: 'backoffice.assortmentmanager.group.logistics',
96229
+ subGroup: 'backoffice.assortmentmanager.group.unitsVE'
96174
96230
  },
96175
96231
  // Vertriebsliniendaten — flat fields of the single SAP_MVKE row (see MVKE_ROW), on the header and the article level
96176
96232
  {
96177
96233
  name: 'backoffice.assortmentmanager.fields.name.SAP_MVKE_VKORG',
96178
96234
  key: 'customData.SAP.SAP_MVKE.SAP_MVKE_VKORG',
96179
96235
  itemRow: MVKE_ROW,
96180
- showOnArticle: true,
96236
+ showOnArticle: 'hidden',
96181
96237
  showOnHeaderValues: true,
96182
96238
  type: 'string',
96183
96239
  maxLength: 4,
96184
96240
  required: true,
96185
96241
  editable: false,
96186
96242
  description: 'backoffice.assortmentmanager.fields.description.SAP_MVKE_VKORG',
96187
- group: 'backoffice.assortmentmanager.group.salesLineData'
96243
+ group: 'backoffice.assortmentmanager.group.assortmentSales'
96188
96244
  }, {
96189
96245
  name: 'backoffice.assortmentmanager.fields.name.SAP_MVKE_VTWEG',
96190
96246
  key: 'customData.SAP.SAP_MVKE.SAP_MVKE_VTWEG',
96191
96247
  itemRow: MVKE_ROW,
96192
- showOnArticle: true,
96248
+ showOnArticle: 'hidden',
96193
96249
  showOnHeaderValues: true,
96194
96250
  type: 'string',
96195
96251
  maxLength: 2,
96196
96252
  required: true,
96197
96253
  editable: false,
96198
- group: 'backoffice.assortmentmanager.group.salesLineData'
96254
+ group: 'backoffice.assortmentmanager.group.assortmentSales'
96199
96255
  }, {
96200
96256
  name: 'backoffice.assortmentmanager.fields.name.SAP_MVKE_MTPOS',
96201
96257
  key: 'customData.SAP.SAP_MVKE.SAP_MVKE_MTPOS',
@@ -96204,11 +96260,12 @@ var ASSORTMENT_MANAGER_FIELDS = [
96204
96260
  key: 'MTPOS'
96205
96261
  },
96206
96262
  showOnArticle: true,
96263
+ articlePosition: 180,
96207
96264
  showOnHeaderValues: true,
96208
96265
  type: 'string',
96209
96266
  maxLength: 4,
96210
96267
  description: 'backoffice.assortmentmanager.fields.description.SAP_MVKE_MTPOS',
96211
- group: 'backoffice.assortmentmanager.group.salesLineData'
96268
+ group: 'backoffice.assortmentmanager.group.assortmentSales'
96212
96269
  }, {
96213
96270
  name: 'backoffice.assortmentmanager.fields.name.SAP_MVKE_PFLKS',
96214
96271
  key: 'customData.SAP.SAP_MVKE.SAP_MVKE_PFLKS',
@@ -96216,12 +96273,12 @@ var ASSORTMENT_MANAGER_FIELDS = [
96216
96273
  dropDownOption: {
96217
96274
  key: 'TWSP'
96218
96275
  },
96219
- showOnArticle: true,
96276
+ showOnArticle: 'hidden',
96220
96277
  showOnHeaderValues: true,
96221
96278
  type: 'string',
96222
96279
  maxLength: 1,
96223
96280
  description: 'backoffice.assortmentmanager.fields.description.SAP_MVKE_PFLKS',
96224
- group: 'backoffice.assortmentmanager.group.salesLineData'
96281
+ group: 'backoffice.assortmentmanager.group.assortmentSales'
96225
96282
  }, {
96226
96283
  name: 'backoffice.assortmentmanager.fields.name.SAP_MVKE_SSTUF',
96227
96284
  key: 'customData.SAP.SAP_MVKE.SAP_MVKE_SSTUF',
@@ -96230,21 +96287,23 @@ var ASSORTMENT_MANAGER_FIELDS = [
96230
96287
  key: 'TWSS'
96231
96288
  },
96232
96289
  showOnArticle: true,
96290
+ articlePosition: 190,
96233
96291
  showOnHeaderValues: true,
96234
96292
  type: 'string',
96235
96293
  maxLength: 1,
96236
96294
  required: true,
96237
96295
  description: 'backoffice.assortmentmanager.fields.description.SAP_MVKE_SSTUF',
96238
- group: 'backoffice.assortmentmanager.group.salesLineData'
96296
+ group: 'backoffice.assortmentmanager.group.assortmentSales'
96239
96297
  }, {
96240
96298
  name: 'backoffice.assortmentmanager.fields.name.SAP_MVKE_SCMNG',
96241
96299
  key: 'customData.SAP.SAP_MVKE.SAP_MVKE_SCMNG',
96242
96300
  itemRow: MVKE_ROW,
96243
96301
  showOnArticle: true,
96302
+ articlePosition: 530,
96244
96303
  showOnHeaderValues: true,
96245
96304
  type: 'decimal',
96246
96305
  description: 'backoffice.assortmentmanager.fields.description.SAP_MVKE_SCMNG',
96247
- group: 'backoffice.assortmentmanager.group.salesLineData'
96306
+ group: 'backoffice.assortmentmanager.group.purchasing'
96248
96307
  }, {
96249
96308
  name: 'backoffice.assortmentmanager.fields.name.SAP_MVKE_MVGR5',
96250
96309
  key: 'customData.SAP.SAP_MVKE.SAP_MVKE_MVGR5',
@@ -96263,21 +96322,22 @@ var ASSORTMENT_MANAGER_FIELDS = [
96263
96322
  name: 'Nur Verkauf ohne Montage erlaubt'
96264
96323
  }]
96265
96324
  },
96266
- showOnArticle: true,
96325
+ showOnArticle: 'hidden',
96267
96326
  showOnHeaderValues: true,
96268
96327
  type: 'string',
96269
96328
  maxLength: 3,
96270
96329
  description: 'backoffice.assortmentmanager.fields.description.SAP_MVKE_MVGR5',
96271
- group: 'backoffice.assortmentmanager.group.salesLineData'
96330
+ group: 'backoffice.assortmentmanager.group.assortmentSales'
96272
96331
  }, {
96273
96332
  name: 'backoffice.assortmentmanager.fields.name.SAP_MVKE_VDVFL',
96274
96333
  key: 'customData.SAP.SAP_MVKE.SAP_MVKE_VDVFL',
96275
96334
  itemRow: MVKE_ROW,
96276
96335
  showOnArticle: true,
96336
+ articlePosition: 210,
96277
96337
  showOnHeaderValues: true,
96278
96338
  type: 'date',
96279
96339
  description: 'backoffice.assortmentmanager.fields.description.SAP_MVKE_VDVFL',
96280
- group: 'backoffice.assortmentmanager.group.salesLineData'
96340
+ group: 'backoffice.assortmentmanager.group.assortmentSales'
96281
96341
  }, {
96282
96342
  name: 'backoffice.assortmentmanager.fields.name.SAP_MVKE_MVGR1',
96283
96343
  key: 'customData.SAP.SAP_MVKE.SAP_MVKE_MVGR1',
@@ -96286,17 +96346,19 @@ var ASSORTMENT_MANAGER_FIELDS = [
96286
96346
  key: 'TVM1T'
96287
96347
  },
96288
96348
  showOnArticle: true,
96349
+ articlePosition: 100,
96289
96350
  showOnHeaderValues: true,
96290
96351
  type: 'string',
96291
96352
  maxLength: 3,
96292
96353
  description: 'backoffice.assortmentmanager.fields.description.SAP_MVKE_MVGR1',
96293
- group: 'backoffice.assortmentmanager.group.salesLineData'
96354
+ group: 'backoffice.assortmentmanager.group.articleBaseData'
96294
96355
  }, {
96295
96356
  // a MARA field, not one of the sales row: it sits right behind the Gigasortiment it is mandatory for
96296
96357
  // (legacy ValidateRowData), so the two cells are filled one after the other
96297
96358
  name: 'backoffice.assortmentmanager.fields.name.SAP_MARA_BISMT',
96298
96359
  key: 'customData.SAP.SAP_MARA_BISMT',
96299
96360
  showOnArticle: true,
96361
+ articlePosition: 110,
96300
96362
  showOnHeaderValues: false,
96301
96363
  type: 'string',
96302
96364
  maxLength: 18,
@@ -96305,7 +96367,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
96305
96367
  equals: '001'
96306
96368
  },
96307
96369
  description: 'backoffice.assortmentmanager.fields.description.SAP_MARA_BISMT',
96308
- group: 'backoffice.assortmentmanager.group.salesLineData'
96370
+ group: 'backoffice.assortmentmanager.group.articleBaseData'
96309
96371
  },
96310
96372
  // Allg. Daten
96311
96373
  {
@@ -96322,6 +96384,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
96322
96384
  responseField: 'productGroups'
96323
96385
  },
96324
96386
  showOnArticle: true,
96387
+ articlePosition: 140,
96325
96388
  // article-level only: a per-user restricted field cannot apply to a header shared by everyone
96326
96389
  showOnHeaderValues: false,
96327
96390
  type: 'string',
@@ -96330,7 +96393,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
96330
96393
  filter: true,
96331
96394
  search: true,
96332
96395
  description: 'backoffice.assortmentmanager.fields.description.SAP_MARA_MATKL',
96333
- group: 'backoffice.assortmentmanager.group.generalData'
96396
+ group: 'backoffice.assortmentmanager.group.articleBaseData'
96334
96397
  }, {
96335
96398
  name: 'backoffice.assortmentmanager.fields.name.SAP_MARA_PRDHA',
96336
96399
  key: 'customData.SAP.SAP_MARA_PRDHA',
@@ -96338,6 +96401,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
96338
96401
  key: 'PRODH'
96339
96402
  },
96340
96403
  showOnArticle: true,
96404
+ articlePosition: 150,
96341
96405
  showOnHeaderValues: false,
96342
96406
  type: 'string',
96343
96407
  maxLength: 18,
@@ -96345,11 +96409,12 @@ var ASSORTMENT_MANAGER_FIELDS = [
96345
96409
  filter: true,
96346
96410
  search: true,
96347
96411
  description: 'backoffice.assortmentmanager.fields.description.SAP_MARA_PRDHA',
96348
- group: 'backoffice.assortmentmanager.group.generalData'
96412
+ group: 'backoffice.assortmentmanager.group.articleBaseData'
96349
96413
  }, {
96350
96414
  name: 'backoffice.assortmentmanager.fields.name.SAP_MARA_PRDHA1',
96351
96415
  key: 'customData.SAP.SAP_MARA_PRDHA1',
96352
96416
  showOnArticle: true,
96417
+ articlePosition: 160,
96353
96418
  showOnHeaderValues: false,
96354
96419
  type: 'string',
96355
96420
  maxLength: 30,
@@ -96357,7 +96422,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
96357
96422
  editable: false,
96358
96423
  showAsLabelFor: 'customData.SAP.SAP_MARA_PRDHA',
96359
96424
  description: 'backoffice.assortmentmanager.fields.description.SAP_MARA_PRDHA1',
96360
- group: 'backoffice.assortmentmanager.group.generalData'
96425
+ group: 'backoffice.assortmentmanager.group.articleBaseData'
96361
96426
  }, {
96362
96427
  name: 'backoffice.assortmentmanager.fields.name.SAP_MARA_PLGTP',
96363
96428
  key: 'customData.SAP.SAP_MARA_PLGTP',
@@ -96365,19 +96430,21 @@ var ASSORTMENT_MANAGER_FIELDS = [
96365
96430
  key: 'TWPT'
96366
96431
  },
96367
96432
  showOnArticle: true,
96433
+ articlePosition: 660,
96368
96434
  showOnHeaderValues: true,
96369
96435
  type: 'string',
96370
96436
  required: true,
96371
96437
  description: 'backoffice.assortmentmanager.fields.description.SAP_MARA_PLGTP',
96372
- group: 'backoffice.assortmentmanager.group.generalData'
96438
+ group: 'backoffice.assortmentmanager.group.salesPrices'
96373
96439
  }, {
96374
96440
  name: 'backoffice.assortmentmanager.fields.name.SAP_MAW1_ZZSCHEMA',
96375
96441
  key: 'customData.SAP.SAP_MAW1_ZZSCHEMA',
96376
96442
  showOnArticle: true,
96443
+ articlePosition: 650,
96377
96444
  showOnHeaderValues: false,
96378
96445
  type: 'boolean',
96379
96446
  description: 'backoffice.assortmentmanager.fields.description.SAP_MAW1_ZZSCHEMA',
96380
- group: 'backoffice.assortmentmanager.group.generalData'
96447
+ group: 'backoffice.assortmentmanager.group.salesPrices'
96381
96448
  }, {
96382
96449
  name: 'backoffice.assortmentmanager.fields.name.SAP_MAW1_WSTAW',
96383
96450
  key: 'customData.SAP.SAP_MAW1_WSTAW',
@@ -96385,11 +96452,12 @@ var ASSORTMENT_MANAGER_FIELDS = [
96385
96452
  key: 'WSTAW'
96386
96453
  },
96387
96454
  showOnArticle: true,
96455
+ articlePosition: 480,
96388
96456
  showOnHeaderValues: false,
96389
96457
  type: 'string',
96390
96458
  maxLength: 17,
96391
96459
  description: 'backoffice.assortmentmanager.fields.description.SAP_MAW1_WSTAW',
96392
- group: 'backoffice.assortmentmanager.group.generalData'
96460
+ group: 'backoffice.assortmentmanager.group.taxCustoms'
96393
96461
  }, {
96394
96462
  name: 'backoffice.assortmentmanager.fields.name.SAP_MAW1_ZZPORTF',
96395
96463
  key: 'customData.SAP.SAP_MAW1_ZZPORTF',
@@ -96397,12 +96465,13 @@ var ASSORTMENT_MANAGER_FIELDS = [
96397
96465
  key: 'ZPORTFO'
96398
96466
  },
96399
96467
  showOnArticle: true,
96468
+ articlePosition: 240,
96400
96469
  showOnHeaderValues: true,
96401
96470
  type: 'string',
96402
96471
  maxLength: 1,
96403
96472
  required: true,
96404
96473
  description: 'backoffice.assortmentmanager.fields.description.SAP_MAW1_ZZPORTF',
96405
- group: 'backoffice.assortmentmanager.group.generalData'
96474
+ group: 'backoffice.assortmentmanager.group.assortmentSales'
96406
96475
  }, {
96407
96476
  name: 'backoffice.assortmentmanager.fields.name.SAP_MAW1_ZZALLVE',
96408
96477
  key: 'customData.SAP.SAP_MAW1_ZZALLVE',
@@ -96411,11 +96480,12 @@ var ASSORTMENT_MANAGER_FIELDS = [
96411
96480
  items: FLAG_ITEMS
96412
96481
  },
96413
96482
  showOnArticle: true,
96483
+ articlePosition: 200,
96414
96484
  showOnHeaderValues: true,
96415
96485
  type: 'string',
96416
96486
  maxLength: 1,
96417
96487
  description: 'backoffice.assortmentmanager.fields.description.SAP_MAW1_ZZALLVE',
96418
- group: 'backoffice.assortmentmanager.group.generalData'
96488
+ group: 'backoffice.assortmentmanager.group.assortmentSales'
96419
96489
  }, {
96420
96490
  name: 'backoffice.assortmentmanager.fields.name.SAP_MAW1_ZZTXPFL',
96421
96491
  key: 'customData.SAP.SAP_MAW1_ZZTXPFL',
@@ -96423,11 +96493,12 @@ var ASSORTMENT_MANAGER_FIELDS = [
96423
96493
  key: 'TXTZS03'
96424
96494
  },
96425
96495
  showOnArticle: true,
96496
+ articlePosition: 220,
96426
96497
  showOnHeaderValues: true,
96427
96498
  type: 'string',
96428
96499
  maxLength: 3,
96429
96500
  description: 'backoffice.assortmentmanager.fields.description.SAP_MAW1_ZZTXPFL',
96430
- group: 'backoffice.assortmentmanager.group.generalData'
96501
+ group: 'backoffice.assortmentmanager.group.assortmentSales'
96431
96502
  }, {
96432
96503
  name: 'backoffice.assortmentmanager.fields.name.SAP_MAW1_ZZTXQUA',
96433
96504
  key: 'customData.SAP.SAP_MAW1_ZZTXQUA',
@@ -96435,11 +96506,12 @@ var ASSORTMENT_MANAGER_FIELDS = [
96435
96506
  key: 'TXTZS04'
96436
96507
  },
96437
96508
  showOnArticle: true,
96509
+ articlePosition: 230,
96438
96510
  showOnHeaderValues: true,
96439
96511
  type: 'string',
96440
96512
  maxLength: 3,
96441
96513
  description: 'backoffice.assortmentmanager.fields.description.SAP_MAW1_ZZTXQUA',
96442
- group: 'backoffice.assortmentmanager.group.generalData'
96514
+ group: 'backoffice.assortmentmanager.group.assortmentSales'
96443
96515
  }, {
96444
96516
  name: 'backoffice.assortmentmanager.fields.name.SAP_MAW1_ZZZKAT',
96445
96517
  key: 'customData.SAP.SAP_MAW1_ZZZKAT',
@@ -96447,11 +96519,12 @@ var ASSORTMENT_MANAGER_FIELDS = [
96447
96519
  key: 'MT_VORLARTIKEL_ZKAT'
96448
96520
  },
96449
96521
  showOnArticle: true,
96522
+ articlePosition: 260,
96450
96523
  showOnHeaderValues: false,
96451
96524
  type: 'string',
96452
96525
  maxLength: 18,
96453
96526
  description: 'backoffice.assortmentmanager.fields.description.SAP_MAW1_ZZZKAT',
96454
- group: 'backoffice.assortmentmanager.group.generalData'
96527
+ group: 'backoffice.assortmentmanager.group.assortmentSales'
96455
96528
  }, {
96456
96529
  name: 'backoffice.assortmentmanager.fields.name.SAP_MAW1_ZZPLTOL',
96457
96530
  key: 'customData.SAP.SAP_MAW1_ZZPLTOL',
@@ -96459,6 +96532,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
96459
96532
  key: 'ZPLANTOOL'
96460
96533
  },
96461
96534
  showOnArticle: true,
96535
+ articlePosition: 250,
96462
96536
  showOnHeaderValues: true,
96463
96537
  type: 'string',
96464
96538
  maxLength: 3,
@@ -96468,15 +96542,16 @@ var ASSORTMENT_MANAGER_FIELDS = [
96468
96542
  // the catalog sets 004 while the article carries a planning (and clears it once the planning is gone)
96469
96543
  derived: true,
96470
96544
  description: 'backoffice.assortmentmanager.fields.description.SAP_MAW1_ZZPLTOL',
96471
- group: 'backoffice.assortmentmanager.group.generalData'
96545
+ group: 'backoffice.assortmentmanager.group.assortmentSales'
96472
96546
  }, {
96473
96547
  name: 'backoffice.assortmentmanager.fields.name.SAP_MAW1_ZZFOTOK',
96474
96548
  key: 'customData.SAP.SAP_MAW1_ZZFOTOK',
96475
96549
  showOnArticle: true,
96550
+ articlePosition: 270,
96476
96551
  showOnHeaderValues: false,
96477
96552
  type: 'boolean',
96478
96553
  description: 'backoffice.assortmentmanager.fields.description.SAP_MAW1_ZZFOTOK',
96479
- group: 'backoffice.assortmentmanager.group.generalData'
96554
+ group: 'backoffice.assortmentmanager.group.assortmentSales'
96480
96555
  }, {
96481
96556
  name: 'backoffice.assortmentmanager.fields.name.SAP_MAW1_ZZSHOP',
96482
96557
  key: 'customData.SAP.SAP_MAW1_ZZSHOP',
@@ -96484,16 +96559,18 @@ var ASSORTMENT_MANAGER_FIELDS = [
96484
96559
  key: 'ZZSHOP'
96485
96560
  },
96486
96561
  showOnArticle: true,
96562
+ articlePosition: 280,
96487
96563
  showOnHeaderValues: true,
96488
96564
  type: 'string',
96489
96565
  maxLength: 1,
96490
96566
  description: 'backoffice.assortmentmanager.fields.description.SAP_MAW1_ZZSHOP',
96491
- group: 'backoffice.assortmentmanager.group.generalData'
96567
+ group: 'backoffice.assortmentmanager.group.assortmentSales'
96492
96568
  }, {
96493
96569
  name: 'backoffice.assortmentmanager.fields.name.SAP_MPL',
96494
96570
  key: 'customData.SAP.SAP_MPL',
96495
96571
  multiselectKey: 'ZMM_C_MPL',
96496
96572
  showOnArticle: true,
96573
+ articlePosition: 290,
96497
96574
  showOnHeaderValues: true,
96498
96575
  type: 'string',
96499
96576
  maxLength: 50,
@@ -96502,7 +96579,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
96502
96579
  field: 'customData.SAP.SAP_MAW1_ZZSHOP',
96503
96580
  equals: '1'
96504
96581
  },
96505
- group: 'backoffice.assortmentmanager.group.generalData'
96582
+ group: 'backoffice.assortmentmanager.group.assortmentSales'
96506
96583
  }, {
96507
96584
  name: 'backoffice.assortmentmanager.fields.name.SAP_MAW1_ZZSHOPREF',
96508
96585
  key: 'customData.SAP.SAP_MAW1_ZZSHOPREF',
@@ -96510,20 +96587,22 @@ var ASSORTMENT_MANAGER_FIELDS = [
96510
96587
  key: 'MT_VORLARTIKEL_ESHOP'
96511
96588
  },
96512
96589
  showOnArticle: true,
96590
+ articlePosition: 300,
96513
96591
  showOnHeaderValues: false,
96514
96592
  type: 'string',
96515
96593
  maxLength: 18,
96516
96594
  description: 'backoffice.assortmentmanager.fields.description.SAP_MAW1_ZZSHOPREF',
96517
- group: 'backoffice.assortmentmanager.group.generalData'
96595
+ group: 'backoffice.assortmentmanager.group.assortmentSales'
96518
96596
  }, {
96519
96597
  name: 'backoffice.assortmentmanager.fields.name.SAP_MAW1_ZZSHOPREF_TMP',
96520
96598
  key: 'customData.SAP.SAP_MAW1_ZZSHOPREF_TMP',
96521
96599
  showOnArticle: true,
96600
+ articlePosition: 310,
96522
96601
  showOnHeaderValues: false,
96523
96602
  type: 'string',
96524
96603
  maxLength: 35,
96525
96604
  description: 'backoffice.assortmentmanager.fields.description.SAP_MAW1_ZZSHOPREF_TMP',
96526
- group: 'backoffice.assortmentmanager.group.generalData'
96605
+ group: 'backoffice.assortmentmanager.group.assortmentSales'
96527
96606
  }, {
96528
96607
  name: 'backoffice.assortmentmanager.fields.name.SAP_MARA_ZZ_VRGCD',
96529
96608
  key: 'customData.SAP.SAP_MARA_ZZ_VRGCD',
@@ -96531,11 +96610,12 @@ var ASSORTMENT_MANAGER_FIELDS = [
96531
96610
  key: 'ZVRGCODE'
96532
96611
  },
96533
96612
  showOnArticle: true,
96613
+ articlePosition: 500,
96534
96614
  showOnHeaderValues: false,
96535
96615
  type: 'string',
96536
96616
  maxLength: 4,
96537
96617
  description: 'backoffice.assortmentmanager.fields.description.SAP_MARA_ZZ_VRGCD',
96538
- group: 'backoffice.assortmentmanager.group.generalData'
96618
+ group: 'backoffice.assortmentmanager.group.taxCustoms'
96539
96619
  }, {
96540
96620
  name: 'backoffice.assortmentmanager.fields.name.SAP_MARA_ZZVERPAK',
96541
96621
  key: 'customData.SAP.SAP_MARA_ZZVERPAK',
@@ -96543,16 +96623,17 @@ var ASSORTMENT_MANAGER_FIELDS = [
96543
96623
  key: 'ZZVERPAKX'
96544
96624
  },
96545
96625
  showOnArticle: true,
96626
+ articlePosition: 450,
96546
96627
  showOnHeaderValues: false,
96547
96628
  type: 'string',
96548
96629
  editable: false,
96549
96630
  maxLength: 2,
96550
96631
  description: 'backoffice.assortmentmanager.fields.description.SAP_MARA_ZZVERPAK',
96551
- group: 'backoffice.assortmentmanager.group.generalData'
96632
+ group: 'backoffice.assortmentmanager.group.logistics'
96552
96633
  }, {
96553
96634
  name: 'backoffice.assortmentmanager.fields.name.SAP_MARA_INHAL',
96554
96635
  key: 'customData.SAP.SAP_MARA_INHAL',
96555
- showOnArticle: true,
96636
+ showOnArticle: 'hidden',
96556
96637
  showOnHeaderValues: false,
96557
96638
  type: 'decimal',
96558
96639
  description: 'backoffice.assortmentmanager.fields.description.SAP_MARA_INHAL',
@@ -96564,7 +96645,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
96564
96645
  key: 'MSEHI',
96565
96646
  validValues: ['ST']
96566
96647
  },
96567
- showOnArticle: true,
96648
+ showOnArticle: 'hidden',
96568
96649
  showOnHeaderValues: false,
96569
96650
  type: 'string',
96570
96651
  maxLength: 3,
@@ -96573,7 +96654,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
96573
96654
  }, {
96574
96655
  name: 'backoffice.assortmentmanager.fields.name.SAP_MARA_VPREH',
96575
96656
  key: 'customData.SAP.SAP_MARA_VPREH',
96576
- showOnArticle: true,
96657
+ showOnArticle: 'hidden',
96577
96658
  showOnHeaderValues: false,
96578
96659
  type: 'decimal',
96579
96660
  description: 'backoffice.assortmentmanager.fields.description.SAP_MARA_VPREH',
@@ -96587,18 +96668,19 @@ var ASSORTMENT_MANAGER_FIELDS = [
96587
96668
  key: 'ZZCOMPZ'
96588
96669
  },
96589
96670
  showOnArticle: true,
96671
+ articlePosition: 420,
96590
96672
  showOnHeaderValues: true,
96591
96673
  type: 'string',
96592
96674
  maxLength: 3,
96593
96675
  description: 'backoffice.assortmentmanager.fields.description.SAP_MAW1_ZZCOMPZ',
96594
- group: 'backoffice.assortmentmanager.group.Lagerdaten'
96676
+ group: 'backoffice.assortmentmanager.group.logistics'
96595
96677
  }, {
96596
96678
  name: 'backoffice.assortmentmanager.fields.name.SAP_MARA_TEMPB',
96597
96679
  key: 'customData.SAP.SAP_MARA_TEMPB',
96598
96680
  dropDownOption: {
96599
96681
  key: 'T143'
96600
96682
  },
96601
- showOnArticle: true,
96683
+ showOnArticle: 'hidden',
96602
96684
  showOnHeaderValues: false,
96603
96685
  type: 'string',
96604
96686
  maxLength: 2,
@@ -96610,7 +96692,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
96610
96692
  dropDownOption: {
96611
96693
  key: 'T144'
96612
96694
  },
96613
- showOnArticle: true,
96695
+ showOnArticle: 'hidden',
96614
96696
  showOnHeaderValues: false,
96615
96697
  type: 'string',
96616
96698
  maxLength: 2,
@@ -96622,13 +96704,14 @@ var ASSORTMENT_MANAGER_FIELDS = [
96622
96704
  dropDownOption: {
96623
96705
  key: 'TWSV'
96624
96706
  },
96625
- showOnArticle: false,
96707
+ showOnArticle: true,
96708
+ articlePosition: 460,
96626
96709
  showOnHeaderValues: true,
96627
96710
  type: 'string',
96628
96711
  maxLength: 2,
96629
96712
  required: true,
96630
96713
  description: 'backoffice.assortmentmanager.fields.description.SAP_MAW1_SERVV',
96631
- group: 'backoffice.assortmentmanager.group.Lagerdaten'
96714
+ group: 'backoffice.assortmentmanager.group.logistics'
96632
96715
  }, {
96633
96716
  name: 'backoffice.assortmentmanager.fields.name.SAP_MAW1_WLADG',
96634
96717
  key: 'customData.SAP.SAP_MAW1_WLADG',
@@ -96636,12 +96719,13 @@ var ASSORTMENT_MANAGER_FIELDS = [
96636
96719
  key: 'TLGR'
96637
96720
  },
96638
96721
  showOnArticle: true,
96722
+ articlePosition: 430,
96639
96723
  showOnHeaderValues: true,
96640
96724
  type: 'string',
96641
96725
  maxLength: 4,
96642
96726
  required: true,
96643
96727
  description: 'backoffice.assortmentmanager.fields.description.SAP_MAW1_WLADG',
96644
- group: 'backoffice.assortmentmanager.group.Lagerdaten'
96728
+ group: 'backoffice.assortmentmanager.group.logistics'
96645
96729
  }, {
96646
96730
  name: 'backoffice.assortmentmanager.fields.name.SAP_MAW1_ZZPUTAWAY_DC',
96647
96731
  key: 'customData.SAP.SAP_MAW1_ZZPUTAWAY_DC',
@@ -96650,10 +96734,11 @@ var ASSORTMENT_MANAGER_FIELDS = [
96650
96734
  items: FLAG_ITEMS
96651
96735
  },
96652
96736
  showOnArticle: true,
96737
+ articlePosition: 440,
96653
96738
  showOnHeaderValues: true,
96654
96739
  type: 'string',
96655
96740
  description: 'backoffice.assortmentmanager.fields.description.SAP_MAW1_ZZPUTAWAY_DC',
96656
- group: 'backoffice.assortmentmanager.group.Lagerdaten'
96741
+ group: 'backoffice.assortmentmanager.group.logistics'
96657
96742
  },
96658
96743
  // EK Daten
96659
96744
  {
@@ -96662,16 +96747,17 @@ var ASSORTMENT_MANAGER_FIELDS = [
96662
96747
  dropDownOption: {
96663
96748
  key: 'MT_LIEFERANTEN'
96664
96749
  },
96665
- // on the article page this is a context identity column (pulled to the front, editable there —
96666
- // see CONTEXT_FIELD_KEYS); `editable: false` here keeps the header page column read-only
96750
+ // on the article page this is a context identity column (pinned, ungrouped, editable there — see
96751
+ // CONTEXT_FIELD_KEYS); `editable: false` here keeps the header page column read-only
96667
96752
  showOnArticle: true,
96753
+ articlePosition: 40,
96668
96754
  showOnHeaderValues: true,
96669
96755
  type: 'string',
96670
96756
  maxLength: 10,
96671
96757
  required: true,
96672
96758
  editable: false,
96673
96759
  filter: true,
96674
- group: 'backoffice.assortmentmanager.group.ekDaten'
96760
+ group: 'backoffice.assortmentmanager.group.purchasing'
96675
96761
  }, {
96676
96762
  name: 'backoffice.assortmentmanager.fields.name.SAP_EINE_WAERS',
96677
96763
  key: 'customData.SAP.SAP_EINE_WAERS',
@@ -96679,6 +96765,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
96679
96765
  key: 'WAERS'
96680
96766
  },
96681
96767
  showOnArticle: true,
96768
+ articlePosition: 540,
96682
96769
  showOnHeaderValues: true,
96683
96770
  type: 'string',
96684
96771
  maxLength: 3,
@@ -96690,7 +96777,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
96690
96777
  matchValue: 'PB00',
96691
96778
  column: 'SAP_KONP_KONWA'
96692
96779
  }],
96693
- group: 'backoffice.assortmentmanager.group.ekDaten'
96780
+ group: 'backoffice.assortmentmanager.group.purchasePrices'
96694
96781
  }, {
96695
96782
  name: 'backoffice.assortmentmanager.fields.name.SAP_EINE_EKGRP',
96696
96783
  key: 'customData.SAP.SAP_EINE_EKGRP',
@@ -96698,6 +96785,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
96698
96785
  key: 'EKGRP'
96699
96786
  },
96700
96787
  showOnArticle: true,
96788
+ articlePosition: 50,
96701
96789
  showOnHeaderValues: true,
96702
96790
  type: 'string',
96703
96791
  maxLength: 3,
@@ -96705,7 +96793,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
96705
96793
  editable: false,
96706
96794
  filter: true,
96707
96795
  description: 'backoffice.assortmentmanager.fields.description.SAP_EINE_EKGRP',
96708
- group: 'backoffice.assortmentmanager.group.ekDaten'
96796
+ group: 'backoffice.assortmentmanager.group.purchasing'
96709
96797
  }, {
96710
96798
  name: 'backoffice.assortmentmanager.fields.name.SAP_MARC_DISPO_VZ',
96711
96799
  key: 'customData.SAP.SAP_MARC_DISPO_VZ',
@@ -96719,7 +96807,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
96719
96807
  required: true,
96720
96808
  editable: false,
96721
96809
  description: 'backoffice.assortmentmanager.fields.description.SAP_MARC_DISPO_VZ',
96722
- group: 'backoffice.assortmentmanager.group.ekDaten'
96810
+ group: 'backoffice.assortmentmanager.group.purchasing'
96723
96811
  }, {
96724
96812
  name: 'backoffice.assortmentmanager.fields.name.SAP_MAW1_WHERL',
96725
96813
  key: 'customData.SAP.SAP_MAW1_WHERL',
@@ -96727,38 +96815,41 @@ var ASSORTMENT_MANAGER_FIELDS = [
96727
96815
  key: 'LAND1'
96728
96816
  },
96729
96817
  showOnArticle: true,
96818
+ articlePosition: 470,
96730
96819
  showOnHeaderValues: true,
96731
96820
  type: 'string',
96732
96821
  maxLength: 3,
96733
96822
  required: true,
96734
96823
  description: 'backoffice.assortmentmanager.fields.description.SAP_MAW1_WHERL',
96735
- group: 'backoffice.assortmentmanager.group.ekDaten'
96824
+ group: 'backoffice.assortmentmanager.group.taxCustoms'
96736
96825
  }, {
96737
96826
  name: 'backoffice.assortmentmanager.fields.name.SAP_EINE_MINBM',
96738
96827
  key: 'customData.SAP.SAP_EINE_MINBM',
96739
96828
  showOnArticle: true,
96829
+ articlePosition: 510,
96740
96830
  showOnHeaderValues: false,
96741
96831
  type: 'number',
96742
96832
  description: 'backoffice.assortmentmanager.fields.description.SAP_EINE_MINBM',
96743
- group: 'backoffice.assortmentmanager.group.ekDaten'
96833
+ group: 'backoffice.assortmentmanager.group.purchasing'
96744
96834
  }, {
96745
96835
  name: 'backoffice.assortmentmanager.fields.name.SAP_EINA_WGLIF',
96746
96836
  key: 'customData.SAP.SAP_EINA_WGLIF',
96747
- showOnArticle: true,
96837
+ showOnArticle: 'hidden',
96748
96838
  showOnHeaderValues: true,
96749
96839
  type: 'string',
96750
96840
  maxLength: 18,
96751
96841
  description: 'backoffice.assortmentmanager.fields.description.SAP_EINA_WGLIF',
96752
- group: 'backoffice.assortmentmanager.group.ekDaten'
96842
+ group: 'backoffice.assortmentmanager.group.purchasing'
96753
96843
  }, {
96754
96844
  name: 'backoffice.assortmentmanager.fields.name.SAP_EINE_APLFZ',
96755
96845
  key: 'customData.SAP.SAP_EINE_APLFZ',
96756
96846
  showOnArticle: true,
96847
+ articlePosition: 520,
96757
96848
  showOnHeaderValues: true,
96758
96849
  type: 'number',
96759
96850
  required: true,
96760
96851
  description: 'backoffice.assortmentmanager.fields.description.SAP_EINE_APLFZ',
96761
- group: 'backoffice.assortmentmanager.group.ekDaten'
96852
+ group: 'backoffice.assortmentmanager.group.purchasing'
96762
96853
  }, {
96763
96854
  name: 'backoffice.assortmentmanager.fields.name.SAP_EINE_BSTAE',
96764
96855
  key: 'customData.SAP.SAP_EINE_BSTAE',
@@ -96771,46 +96862,52 @@ var ASSORTMENT_MANAGER_FIELDS = [
96771
96862
  maxLength: 4,
96772
96863
  required: true,
96773
96864
  description: 'backoffice.assortmentmanager.fields.description.SAP_EINE_BSTAE',
96774
- group: 'backoffice.assortmentmanager.group.ekDaten'
96865
+ group: 'backoffice.assortmentmanager.group.purchasing'
96775
96866
  },
96776
96867
  // EK Kond.
96777
96868
  {
96778
96869
  name: 'backoffice.assortmentmanager.fields.name.MAN_KONP_KBETR',
96779
96870
  key: 'customData.MAN_KONP_KBETR',
96780
96871
  showOnArticle: true,
96872
+ articlePosition: 550,
96781
96873
  showOnHeaderValues: false,
96782
96874
  type: 'decimal',
96783
96875
  // the purchasing condition amounts are per-article prices — not carried into a copy (legacy onCopyArticle)
96784
96876
  excludeFromDuplicate: true,
96785
96877
  description: 'backoffice.assortmentmanager.fields.description.MAN_KONP_KBETR',
96786
- group: 'backoffice.assortmentmanager.group.ekKond'
96878
+ group: 'backoffice.assortmentmanager.group.purchasePrices'
96787
96879
  }, {
96788
96880
  name: 'backoffice.assortmentmanager.fields.name.SAP_KONP_KBETR1',
96789
96881
  key: 'customData.SAP.SAP_KONP_KBETR1',
96790
96882
  showOnArticle: true,
96883
+ articlePosition: 560,
96791
96884
  showOnHeaderValues: false,
96792
96885
  type: 'decimal',
96793
96886
  excludeFromDuplicate: true,
96794
96887
  description: 'backoffice.assortmentmanager.fields.description.SAP_KONP_KBETR1',
96795
- group: 'backoffice.assortmentmanager.group.ekKond'
96888
+ group: 'backoffice.assortmentmanager.group.purchaseConditions'
96796
96889
  }, {
96797
96890
  name: 'backoffice.assortmentmanager.fields.name.CALC_KONP_KBETR',
96798
96891
  key: 'customData.CALC_KONP_KBETR',
96799
96892
  showOnArticle: true,
96893
+ articlePosition: 570,
96894
+ collapsed: true,
96800
96895
  showOnHeaderValues: false,
96801
96896
  type: 'decimal',
96802
96897
  editable: false,
96803
96898
  excludeFromDuplicate: true,
96804
96899
  derived: true,
96805
96900
  description: 'backoffice.assortmentmanager.fields.description.CALC_KONP_KBETR',
96806
- group: 'backoffice.assortmentmanager.group.ekKond'
96901
+ group: 'backoffice.assortmentmanager.group.purchaseConditions'
96807
96902
  }, {
96808
96903
  name: 'backoffice.assortmentmanager.fields.name.SAP_KONP_EK',
96809
96904
  key: 'customData.SAP.SAP_KONP_EK',
96810
96905
  showOnArticle: true,
96906
+ articlePosition: 580,
96907
+ collapsed: true,
96811
96908
  showOnHeaderValues: true,
96812
96909
  type: 'ITEM_GROUP',
96813
- group: 'backoffice.assortmentmanager.group.ekKond',
96910
+ group: 'backoffice.assortmentmanager.group.purchaseConditions',
96814
96911
  canCreate: false,
96815
96912
  canDelete: false,
96816
96913
  maxItems: 19,
@@ -96899,7 +96996,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
96899
96996
  EUR: 112
96900
96997
  }
96901
96998
  },
96902
- group: 'backoffice.assortmentmanager.group.ekKond',
96999
+ group: 'backoffice.assortmentmanager.group.purchaseConditions',
96903
97000
  editable: false
96904
97001
  }, {
96905
97002
  name: 'backoffice.assortmentmanager.fields.name.KONP_MARGE',
@@ -96908,7 +97005,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
96908
97005
  showOnHeaderValues: true,
96909
97006
  type: 'decimal',
96910
97007
  description: 'backoffice.assortmentmanager.fields.description.KONP_MARGE',
96911
- group: 'backoffice.assortmentmanager.group.ekKond'
97008
+ group: 'backoffice.assortmentmanager.group.purchaseConditions'
96912
97009
  }, {
96913
97010
  name: 'backoffice.assortmentmanager.fields.name.KONP_NKOST',
96914
97011
  key: 'customData.KONP_NKOST',
@@ -96916,7 +97013,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
96916
97013
  showOnHeaderValues: true,
96917
97014
  type: 'decimal',
96918
97015
  description: 'backoffice.assortmentmanager.fields.description.KONP_NKOST',
96919
- group: 'backoffice.assortmentmanager.group.ekKond'
97016
+ group: 'backoffice.assortmentmanager.group.purchaseConditions'
96920
97017
  }, {
96921
97018
  name: 'backoffice.assortmentmanager.fields.name.KONP_INDIV',
96922
97019
  key: 'customData.KONP_INDIV',
@@ -96943,7 +97040,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
96943
97040
  showOnHeaderValues: true,
96944
97041
  type: 'decimal',
96945
97042
  description: 'backoffice.assortmentmanager.fields.description.KONP_INDIV',
96946
- group: 'backoffice.assortmentmanager.group.ekKond'
97043
+ group: 'backoffice.assortmentmanager.group.purchaseConditions'
96947
97044
  }, {
96948
97045
  name: 'backoffice.assortmentmanager.fields.name.KONP_RUECK',
96949
97046
  key: 'customData.KONP_RUECK',
@@ -96951,7 +97048,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
96951
97048
  showOnHeaderValues: true,
96952
97049
  type: 'decimal',
96953
97050
  description: 'backoffice.assortmentmanager.fields.description.KONP_RUECK',
96954
- group: 'backoffice.assortmentmanager.group.ekKond'
97051
+ group: 'backoffice.assortmentmanager.group.purchaseConditions'
96955
97052
  }, {
96956
97053
  name: 'backoffice.assortmentmanager.fields.name.KONP_MWST',
96957
97054
  key: 'customData.KONP_MWST',
@@ -96969,96 +97066,111 @@ var ASSORTMENT_MANAGER_FIELDS = [
96969
97066
  }]
96970
97067
  },
96971
97068
  showOnArticle: true,
97069
+ articlePosition: 490,
96972
97070
  showOnHeaderValues: true,
96973
97071
  type: 'decimal',
96974
97072
  required: true,
96975
- group: 'backoffice.assortmentmanager.group.ekKond'
97073
+ group: 'backoffice.assortmentmanager.group.taxCustoms'
96976
97074
  }, {
96977
97075
  name: 'backoffice.assortmentmanager.fields.name.KONP_EKNET1',
96978
97076
  key: 'customData.KONP_EKNET1',
96979
97077
  showOnArticle: true,
97078
+ articlePosition: 590,
97079
+ collapsed: true,
96980
97080
  showOnHeaderValues: false,
96981
97081
  type: 'decimal',
96982
97082
  editable: false,
96983
97083
  derived: true,
96984
97084
  description: 'backoffice.assortmentmanager.fields.description.KONP_EKNET1',
96985
- group: 'backoffice.assortmentmanager.group.ekKond'
97085
+ group: 'backoffice.assortmentmanager.group.purchaseConditions'
96986
97086
  }, {
96987
97087
  name: 'backoffice.assortmentmanager.fields.name.KONP_EKNET2',
96988
97088
  key: 'customData.KONP_EKNET2',
96989
97089
  showOnArticle: true,
97090
+ articlePosition: 600,
97091
+ collapsed: true,
96990
97092
  showOnHeaderValues: false,
96991
97093
  type: 'decimal',
96992
97094
  editable: false,
96993
97095
  derived: true,
96994
97096
  description: 'backoffice.assortmentmanager.fields.description.KONP_EKNET2',
96995
- group: 'backoffice.assortmentmanager.group.ekKond'
97097
+ group: 'backoffice.assortmentmanager.group.purchaseConditions'
96996
97098
  }, {
96997
97099
  name: 'backoffice.assortmentmanager.fields.name.KONP_EKNET3',
96998
97100
  key: 'customData.KONP_EKNET3',
96999
97101
  showOnArticle: true,
97102
+ articlePosition: 610,
97103
+ collapsed: true,
97000
97104
  showOnHeaderValues: false,
97001
97105
  type: 'decimal',
97002
97106
  editable: false,
97003
97107
  derived: true,
97004
97108
  description: 'backoffice.assortmentmanager.fields.description.KONP_EKNET3',
97005
- group: 'backoffice.assortmentmanager.group.ekKond'
97109
+ group: 'backoffice.assortmentmanager.group.purchaseConditions'
97006
97110
  }, {
97007
97111
  name: 'backoffice.assortmentmanager.fields.name.KONP_VKM2',
97008
97112
  key: 'customData.KONP_VKM2',
97009
97113
  showOnArticle: true,
97114
+ articlePosition: 640,
97010
97115
  showOnHeaderValues: true,
97011
97116
  type: 'decimal',
97012
97117
  description: 'backoffice.assortmentmanager.fields.description.KONP_VKM2',
97013
- group: 'backoffice.assortmentmanager.group.ekKond'
97118
+ group: 'backoffice.assortmentmanager.group.salesPrices'
97014
97119
  }, {
97015
97120
  name: 'backoffice.assortmentmanager.fields.name.ZMARGE',
97016
97121
  key: 'customData.ZMARGE',
97017
97122
  showOnArticle: true,
97123
+ articlePosition: 740,
97124
+ collapsed: true,
97018
97125
  showOnHeaderValues: false,
97019
97126
  type: 'decimal',
97020
97127
  editable: false,
97021
97128
  derived: true,
97022
97129
  description: 'backoffice.assortmentmanager.fields.description.ZMARGE',
97023
- group: 'backoffice.assortmentmanager.group.ekKond'
97130
+ group: 'backoffice.assortmentmanager.group.salesPriceConditions'
97024
97131
  },
97025
97132
  // VK Kond.
97026
97133
  {
97027
97134
  name: 'backoffice.assortmentmanager.fields.name.KONP_VLP0',
97028
97135
  key: 'customData.KONP_VLP0',
97029
97136
  showOnArticle: true,
97137
+ articlePosition: 680,
97138
+ collapsed: true,
97030
97139
  showOnHeaderValues: false,
97031
97140
  type: 'decimal',
97032
97141
  editable: false,
97033
97142
  derived: true,
97034
97143
  description: 'backoffice.assortmentmanager.fields.description.KONP_VLP0',
97035
- group: 'backoffice.assortmentmanager.group.vkKond'
97144
+ group: 'backoffice.assortmentmanager.group.salesPriceConditions'
97036
97145
  }, {
97037
97146
  name: 'backoffice.assortmentmanager.fields.name.KONP_VLP0_1',
97038
97147
  key: 'customData.KONP_VLP0_1',
97039
97148
  showOnArticle: true,
97149
+ articlePosition: 620,
97040
97150
  showOnHeaderValues: false,
97041
97151
  type: 'decimal',
97042
97152
  // the selling prices are per-article — not carried into a copy (legacy onCopyArticle)
97043
97153
  excludeFromDuplicate: true,
97044
97154
  description: 'backoffice.assortmentmanager.fields.description.KONP_VLP0_1',
97045
- group: 'backoffice.assortmentmanager.group.vkKond'
97155
+ group: 'backoffice.assortmentmanager.group.salesPrices'
97046
97156
  }, {
97047
97157
  name: 'backoffice.assortmentmanager.fields.name.KONP_MRAB',
97048
97158
  key: 'customData.KONP_MRAB',
97049
97159
  showOnArticle: true,
97160
+ articlePosition: 690,
97161
+ collapsed: true,
97050
97162
  showOnHeaderValues: false,
97051
97163
  type: 'decimal',
97052
97164
  editable: false,
97053
97165
  derived: true,
97054
97166
  description: 'backoffice.assortmentmanager.fields.description.KONP_MRAB',
97055
- group: 'backoffice.assortmentmanager.group.vkKond'
97167
+ group: 'backoffice.assortmentmanager.group.salesPriceConditions'
97056
97168
  }, {
97057
97169
  // the price point typed by hand (legacy "noch manuell einzugeben") — the selling price VKP0 while no second
97058
97170
  // price point is set; kept on a copy (legacy onCopyArticle nulled only the second one)
97059
97171
  name: 'backoffice.assortmentmanager.fields.name.KONP_VKP0_1',
97060
97172
  key: 'customData.KONP_VKP0_1',
97061
- showOnArticle: true,
97173
+ showOnArticle: 'hidden',
97062
97174
  showOnHeaderValues: false,
97063
97175
  type: 'decimal',
97064
97176
  description: 'backoffice.assortmentmanager.fields.description.KONP_VKP0_1',
@@ -97067,31 +97179,36 @@ var ASSORTMENT_MANAGER_FIELDS = [
97067
97179
  name: 'backoffice.assortmentmanager.fields.name.KONP_VKP0_2',
97068
97180
  key: 'customData.KONP_VKP0_2',
97069
97181
  showOnArticle: true,
97182
+ articlePosition: 630,
97070
97183
  showOnHeaderValues: false,
97071
97184
  type: 'decimal',
97072
97185
  excludeFromDuplicate: true,
97073
97186
  description: 'backoffice.assortmentmanager.fields.description.KONP_VKP0_2',
97074
- group: 'backoffice.assortmentmanager.group.vkKond'
97187
+ group: 'backoffice.assortmentmanager.group.salesPrices'
97075
97188
  }, {
97076
97189
  name: 'backoffice.assortmentmanager.fields.name.KONP_DIFF_MRG',
97077
97190
  key: 'customData.KONP_DIFF_MRG',
97078
97191
  showOnArticle: true,
97192
+ articlePosition: 700,
97193
+ collapsed: true,
97079
97194
  showOnHeaderValues: false,
97080
97195
  type: 'decimal',
97081
97196
  editable: false,
97082
97197
  derived: true,
97083
97198
  description: 'backoffice.assortmentmanager.fields.description.KONP_DIFF_MRG',
97084
- group: 'backoffice.assortmentmanager.group.vkKond'
97199
+ group: 'backoffice.assortmentmanager.group.salesPriceConditions'
97085
97200
  }, {
97086
97201
  name: 'backoffice.assortmentmanager.fields.name.KONP_PV02',
97087
97202
  key: 'customData.KONP_PV02',
97088
97203
  showOnArticle: true,
97204
+ articlePosition: 710,
97205
+ collapsed: true,
97089
97206
  showOnHeaderValues: false,
97090
97207
  type: 'decimal',
97091
97208
  editable: false,
97092
97209
  derived: true,
97093
97210
  description: 'backoffice.assortmentmanager.fields.description.KONP_PV02',
97094
- group: 'backoffice.assortmentmanager.group.vkKond'
97211
+ group: 'backoffice.assortmentmanager.group.salesPriceConditions'
97095
97212
  }, {
97096
97213
  // the price type: an "OR…" type (without discount marking) sends the price point as list price ZVLP — the
97097
97214
  // legacy read it with the header as fallback, so it is inheritable
@@ -97113,38 +97230,42 @@ var ASSORTMENT_MANAGER_FIELDS = [
97113
97230
  name: 'Exklusiv ohne Rabattauszeichnung'
97114
97231
  }]
97115
97232
  },
97116
- showOnArticle: true,
97233
+ showOnArticle: 'hidden',
97117
97234
  showOnHeaderValues: true,
97118
97235
  type: 'string',
97119
97236
  description: 'backoffice.assortmentmanager.fields.description.KONP_PTYP',
97120
- group: 'backoffice.assortmentmanager.group.vkKond'
97237
+ group: 'backoffice.assortmentmanager.group.salesPriceConditions'
97121
97238
  }, {
97122
97239
  name: 'backoffice.assortmentmanager.fields.name.KONP_VLP0_2',
97123
97240
  key: 'customData.KONP_VLP0_2',
97124
97241
  showOnArticle: true,
97242
+ articlePosition: 720,
97243
+ collapsed: true,
97125
97244
  showOnHeaderValues: false,
97126
97245
  type: 'decimal',
97127
97246
  editable: false,
97128
97247
  excludeFromDuplicate: true,
97129
97248
  derived: true,
97130
97249
  description: 'backoffice.assortmentmanager.fields.description.KONP_VLP0_2',
97131
- group: 'backoffice.assortmentmanager.group.vkKond'
97250
+ group: 'backoffice.assortmentmanager.group.salesPriceConditions'
97132
97251
  }, {
97133
97252
  name: 'backoffice.assortmentmanager.fields.name.KONP_VKP0_3',
97134
97253
  key: 'customData.KONP_VKP0_3',
97135
97254
  showOnArticle: true,
97255
+ articlePosition: 730,
97256
+ collapsed: true,
97136
97257
  showOnHeaderValues: false,
97137
97258
  type: 'decimal',
97138
97259
  editable: false,
97139
97260
  excludeFromDuplicate: true,
97140
97261
  derived: true,
97141
97262
  description: 'backoffice.assortmentmanager.fields.description.KONP_VKP0_3',
97142
- group: 'backoffice.assortmentmanager.group.vkKond'
97263
+ group: 'backoffice.assortmentmanager.group.salesPriceConditions'
97143
97264
  }, {
97144
97265
  // the amount of the ZRBK selling condition (%) — the transfer writes it into that SAP_KONP_VK row
97145
97266
  name: 'backoffice.assortmentmanager.fields.name.KONP_ZRBK',
97146
97267
  key: 'customData.KONP_ZRBK',
97147
- showOnArticle: true,
97268
+ showOnArticle: 'hidden',
97148
97269
  showOnHeaderValues: false,
97149
97270
  type: 'decimal',
97150
97271
  group: 'backoffice.assortmentmanager.group.vkKond'
@@ -97156,10 +97277,11 @@ var ASSORTMENT_MANAGER_FIELDS = [
97156
97277
  items: MTGZG_ITEMS
97157
97278
  },
97158
97279
  showOnArticle: true,
97280
+ articlePosition: 670,
97159
97281
  showOnHeaderValues: false,
97160
97282
  type: 'decimal',
97161
97283
  description: 'backoffice.assortmentmanager.fields.description.KONP_ZL00',
97162
- group: 'backoffice.assortmentmanager.group.vkKond'
97284
+ group: 'backoffice.assortmentmanager.group.salesPriceConditions'
97163
97285
  },
97164
97286
  // no SAP_KONP_VK table: its rows are the header's (headerTemplate), their amounts are the fields above — the
97165
97287
  // transfer writes them into the rows (diva-pfister-article `withConditionAmounts`), a table would only repeat them
@@ -97173,11 +97295,12 @@ var ASSORTMENT_MANAGER_FIELDS = [
97173
97295
  items: FLAG_ITEMS
97174
97296
  },
97175
97297
  showOnArticle: true,
97298
+ articlePosition: 790,
97176
97299
  showOnHeaderValues: true,
97177
97300
  type: 'string',
97178
97301
  maxLength: 1,
97179
97302
  description: 'backoffice.assortmentmanager.fields.description.SAP_ZKONSI',
97180
- group: 'backoffice.assortmentmanager.group.Konsignationsdaten'
97303
+ group: 'backoffice.assortmentmanager.group.consignment'
97181
97304
  }, {
97182
97305
  name: 'backoffice.assortmentmanager.fields.name.SAP_ZKONA_ERDAT',
97183
97306
  key: 'customData.SAP.SAP_ZKONA_ERDAT',
@@ -97185,7 +97308,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
97185
97308
  showOnHeaderValues: true,
97186
97309
  type: 'date',
97187
97310
  description: 'backoffice.assortmentmanager.fields.description.SAP_ZKONA_ERDAT',
97188
- group: 'backoffice.assortmentmanager.group.Konsignationsdaten'
97311
+ group: 'backoffice.assortmentmanager.group.consignment'
97189
97312
  }, {
97190
97313
  name: 'backoffice.assortmentmanager.fields.name.SAP_ZKONA_BLDAT',
97191
97314
  key: 'customData.SAP.SAP_ZKONA_BLDAT',
@@ -97193,7 +97316,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
97193
97316
  showOnHeaderValues: true,
97194
97317
  type: 'date',
97195
97318
  description: 'backoffice.assortmentmanager.fields.description.SAP_ZKONA_BLDAT',
97196
- group: 'backoffice.assortmentmanager.group.Konsignationsdaten'
97319
+ group: 'backoffice.assortmentmanager.group.consignment'
97197
97320
  }, {
97198
97321
  name: 'backoffice.assortmentmanager.fields.name.SAP_ZKONA_BELNR',
97199
97322
  key: 'customData.SAP.SAP_ZKONA_BELNR',
@@ -97202,23 +97325,25 @@ var ASSORTMENT_MANAGER_FIELDS = [
97202
97325
  type: 'string',
97203
97326
  maxLength: 10,
97204
97327
  description: 'backoffice.assortmentmanager.fields.description.SAP_ZKONA_BELNR',
97205
- group: 'backoffice.assortmentmanager.group.Konsignationsdaten'
97328
+ group: 'backoffice.assortmentmanager.group.consignment'
97206
97329
  }, {
97207
97330
  name: 'backoffice.assortmentmanager.fields.name.SAP_MKOP_KONPR_VZ',
97208
97331
  key: 'customData.SAP.SAP_MKOP_KONPR_VZ',
97209
97332
  showOnArticle: true,
97333
+ articlePosition: 800,
97210
97334
  showOnHeaderValues: false,
97211
97335
  type: 'decimal',
97212
97336
  editable: false,
97213
97337
  derived: true,
97214
97338
  description: 'backoffice.assortmentmanager.fields.description.SAP_MKOP_KONPR_VZ',
97215
- group: 'backoffice.assortmentmanager.group.Konsignationsdaten'
97339
+ group: 'backoffice.assortmentmanager.group.consignment'
97216
97340
  },
97217
97341
  // Texte
97218
97342
  {
97219
97343
  name: 'backoffice.assortmentmanager.fields.name.EKT',
97220
97344
  key: 'customData.SAP.EKT',
97221
97345
  showOnArticle: true,
97346
+ articlePosition: 750,
97222
97347
  showOnHeaderValues: false,
97223
97348
  type: 'string',
97224
97349
  multiLanguage: true,
@@ -97227,6 +97352,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
97227
97352
  name: 'backoffice.assortmentmanager.fields.name.HTML',
97228
97353
  key: 'customData.SAP.HTML',
97229
97354
  showOnArticle: true,
97355
+ articlePosition: 760,
97230
97356
  showOnHeaderValues: false,
97231
97357
  type: 'string',
97232
97358
  multiLanguage: true,
@@ -97259,6 +97385,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
97259
97385
  name: 'backoffice.assortmentmanager.fields.name.ET',
97260
97386
  key: 'customData.SAP.ET',
97261
97387
  showOnArticle: true,
97388
+ articlePosition: 780,
97262
97389
  showOnHeaderValues: false,
97263
97390
  type: 'string',
97264
97391
  maxLength: 40,
@@ -97270,7 +97397,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
97270
97397
  }, {
97271
97398
  name: 'backoffice.assortmentmanager.fields.name.VKKT',
97272
97399
  key: 'customData.SAP.VKKT',
97273
- showOnArticle: true,
97400
+ showOnArticle: 'hidden',
97274
97401
  showOnHeaderValues: false,
97275
97402
  type: 'string',
97276
97403
  maxLength: 40,
@@ -97280,7 +97407,7 @@ var ASSORTMENT_MANAGER_FIELDS = [
97280
97407
  }, {
97281
97408
  name: 'backoffice.assortmentmanager.fields.name.INFOTX',
97282
97409
  key: 'customData.INFOTX',
97283
- showOnArticle: true,
97410
+ showOnArticle: 'hidden',
97284
97411
  showOnHeaderValues: true,
97285
97412
  type: 'string',
97286
97413
  maxLength: 8000,
@@ -97296,13 +97423,14 @@ var ASSORTMENT_MANAGER_FIELDS = [
97296
97423
  name: 'backoffice.assortmentmanager.fields.name.PIM_CLASSIFICATION',
97297
97424
  key: 'classificationInfo.articleCodex',
97298
97425
  showOnArticle: true,
97426
+ articlePosition: 170,
97299
97427
  showOnHeaderValues: false,
97300
97428
  type: 'string',
97301
97429
  editable: false,
97302
97430
  // a copy carries no classification attributes (they have no column) — it must not claim the class either
97303
97431
  excludeFromDuplicate: true,
97304
97432
  description: 'backoffice.assortmentmanager.fields.description.PIM_CLASSIFICATION',
97305
- group: 'backoffice.assortmentmanager.group.Klassifizierung'
97433
+ group: 'backoffice.assortmentmanager.group.articleBaseData'
97306
97434
  }, {
97307
97435
  name: 'backoffice.assortmentmanager.fields.name.SAP_AUSP_ETIKETT',
97308
97436
  key: 'customData.SAP.SAP_AUSP_ETIKETT',
@@ -97310,14 +97438,15 @@ var ASSORTMENT_MANAGER_FIELDS = [
97310
97438
  key: 'CAWN_MP_ALL_021_ETIKETTENINFO'
97311
97439
  },
97312
97440
  showOnArticle: true,
97441
+ articlePosition: 770,
97313
97442
  showOnHeaderValues: true,
97314
97443
  type: 'string',
97315
97444
  maxLength: 50,
97316
- group: 'backoffice.assortmentmanager.group.Klassifizierung'
97445
+ group: 'backoffice.assortmentmanager.group.Texte'
97317
97446
  }, {
97318
97447
  name: 'backoffice.assortmentmanager.fields.name.SAP_AUSP',
97319
97448
  key: 'customData.SAP.SAP_AUSP',
97320
- showOnArticle: true,
97449
+ showOnArticle: 'hidden',
97321
97450
  showOnHeaderValues: false,
97322
97451
  type: 'ITEM_GROUP',
97323
97452
  group: 'backoffice.assortmentmanager.group.Klassifizierung',
@@ -98362,6 +98491,11 @@ function rowIndexOf(rows, _ref) {
98362
98491
  });
98363
98492
  }
98364
98493
 
98494
+ /** Whether the product's table holds the row — whatever its fields carry. */
98495
+ function hasItemRow(data, row) {
98496
+ return rowIndexOf(tableRowsOf(data, row), row) !== -1;
98497
+ }
98498
+
98365
98499
  /** The field's value in the product: the row field of its table row; undefined without that row. */
98366
98500
  function itemRowValue(data, field) {
98367
98501
  var _rows$rowIndexOf;
@@ -98942,6 +99076,14 @@ function toSapDateString(value) {
98942
99076
  return parsed.isValid() ? parsed.format(SAP_DATE_FORMAT) : undefined;
98943
99077
  }
98944
99078
 
99079
+ /** A stored date (SAP `YYYYMMDD` or ISO) the way the date cells display it; anything unparsable stays as delivered. */
99080
+ function toDisplayDate(value) {
99081
+ if (value === undefined || value === null || value === '') return undefined;
99082
+ var raw = String(value);
99083
+ var parsed = raw.includes('-') ? dayjs(raw) : dayjs(raw, SAP_DATE_FORMAT, true);
99084
+ return parsed.isValid() ? parsed.format(DISPLAY_DATE_FORMAT) : raw;
99085
+ }
99086
+
98945
99087
  /** Writes edits of a date column back in the SAP storage format. */
98946
99088
  function sapDateValueSetter(column) {
98947
99089
  return function (params) {
@@ -99846,7 +99988,8 @@ var ARTICLE_TRANSFER = {
99846
99988
  numberField: 'customData.SAP.SAP_MARA_MATNR',
99847
99989
  labelField: 'customData.SAP.SAP_EINA_IDNLF',
99848
99990
  errorField: 'customData.SAP.SentToSAPError',
99849
- warningField: 'customData.SAP.SentToSAPWarning'
99991
+ warningField: 'customData.SAP.SentToSAPWarning',
99992
+ dateField: 'customData.SAP.SentToSAPDate'
99850
99993
  };
99851
99994
 
99852
99995
  /** Whether the row meets the condition — strictly: a legacy `'True'` string never matches `true`. */
@@ -99873,6 +100016,14 @@ function isTransferring(data) {
99873
100016
  return !isTransferred(data) && meets(data, ARTICLE_TRANSFER.pendingWhen);
99874
100017
  }
99875
100018
 
100019
+ /**
100020
+ * The day a transferred article went over (`dateField`) as `DD.MM.YYYY` — nothing for an article not transferred
100021
+ * or without a date.
100022
+ */
100023
+ function transferDate(data) {
100024
+ return isTransferred(data) ? toDisplayDate(get(data, ARTICLE_TRANSFER.dateField)) : undefined;
100025
+ }
100026
+
99876
100027
  /** Whether the row is read-only for transfer reasons: transferred, or being transferred. */
99877
100028
  function isTransferLocked(data) {
99878
100029
  return isTransferred(data) || isTransferring(data);
@@ -100467,9 +100618,15 @@ var ARTICLE_LANGUAGES = ['de', 'fr', 'it'];
100467
100618
 
100468
100619
  /** The catalogue's scalar fields shown on the article table. */
100469
100620
  var ARTICLE_FIELDS = ASSORTMENT_MANAGER_FIELDS.filter(function (entry) {
100470
- return entry.type !== 'ITEM_GROUP' && entry.showOnArticle;
100621
+ return entry.type !== 'ITEM_GROUP' && entry.showOnArticle !== false;
100471
100622
  });
100472
100623
 
100624
+ /**
100625
+ * The last header group of the article table: the planning's image and DIVA number, then the shown article columns
100626
+ * without an `articlePosition`.
100627
+ */
100628
+ var ARTICLE_OTHER_GROUP = 'backoffice.assortmentmanager.group.other';
100629
+
100473
100630
  /**
100474
100631
  * Distinct dropdown lists of the given fields to load — they become the `enumData` of the enum cells. Lists
100475
100632
  * configured on the field (`items`) need no load, row-derived (dotted) keys stay plain text, like on the header page.
@@ -100505,12 +100662,13 @@ var ARTICLE_ITEM_GROUPS = ASSORTMENT_MANAGER_FIELDS.filter(function (entry) {
100505
100662
  });
100506
100663
  });
100507
100664
 
100508
- /** Columns without a visual role — they only project what the rows need. */
100665
+ /** Columns without a visual role — they only project what the rows need, so the column chooser does not offer them. */
100509
100666
  var HIDDEN_COLUMN = {
100510
100667
  hide: true,
100511
100668
  editable: false,
100512
100669
  sortable: false,
100513
- filter: false
100670
+ filter: false,
100671
+ suppressColumnsToolPanel: true
100514
100672
  };
100515
100673
 
100516
100674
  /**
@@ -100806,6 +100964,17 @@ function enumSetFilterParams(enumData) {
100806
100964
  };
100807
100965
  }
100808
100966
 
100967
+ /**
100968
+ * The spreadsheet pin of a catalogue `pinned` flag, locked: ag-grid unpins left pinned columns once the grid gets too
100969
+ * narrow for them (a wide side panel), and the column memory would keep them unpinned.
100970
+ */
100971
+ function pinnedTo(pinned) {
100972
+ return pinned ? {
100973
+ pinned: pinned,
100974
+ lockPinned: true
100975
+ } : {};
100976
+ }
100977
+
100809
100978
  /**
100810
100979
  * A shared compact symbol column (catalogue `commonColumn`): its name doubles as colId and header
100811
100980
  * label, pinning follows the first folded field. The folded catalogue fields travel to the injected
@@ -100820,9 +100989,7 @@ function commonColumn(name, fields, cellRenderer) {
100820
100989
  editable: false,
100821
100990
  sortable: false,
100822
100991
  filter: false
100823
- }, (_fields$ = fields[0]) !== null && _fields$ !== void 0 && _fields$.pinned ? {
100824
- pinned: fields[0].pinned
100825
- } : {}), {}, {
100992
+ }, pinnedTo((_fields$ = fields[0]) === null || _fields$ === void 0 ? void 0 : _fields$.pinned)), {}, {
100826
100993
  customParams: {
100827
100994
  fields: fields
100828
100995
  },
@@ -100932,6 +101099,21 @@ function isRecalculating(_ref12) {
100932
101099
  return !(Array.isArray(errors) && errors.length > 0);
100933
101100
  }
100934
101101
 
101102
+ /** The column — each language column of a text field — starting hidden; the column chooser shows it again. */
101103
+ function hiddenByDefault(column) {
101104
+ if ('children' in column) return _objectSpread$c(_objectSpread$c({}, column), {}, {
101105
+ children: column.children.map(hiddenByDefault)
101106
+ });
101107
+ return _objectSpread$c(_objectSpread$c({}, column), {}, {
101108
+ hide: true
101109
+ });
101110
+ }
101111
+
101112
+ /** Whether the column — any language column of a text field — starts shown. */
101113
+ function isShown(column) {
101114
+ return 'children' in column ? column.children.some(isShown) : !column.hide;
101115
+ }
101116
+
100935
101117
  /** The column — each language column of a text field — with the cell class rule for a value about to be recalculated. */
100936
101118
  function withRecalculatingClass(column, className) {
100937
101119
  if ('children' in column) return _objectSpread$c(_objectSpread$c({}, column), {}, {
@@ -100950,9 +101132,7 @@ function baseColumn(field, t) {
100950
101132
  headerName: field.name,
100951
101133
  headerTooltip: field.description ? t(field.description) : undefined,
100952
101134
  editable: field.editable === false ? false : editableUnlessLocked
100953
- }, field.pinned ? {
100954
- pinned: field.pinned
100955
- } : {}), {}, {
101135
+ }, pinnedTo(field.pinned)), {}, {
100956
101136
  // sorting and filtering are opt-in per catalogue entry (legacy `Sortable`/`Filterable`);
100957
101137
  // `sortable: false` only removes the header interaction — the initial DEFAULT_SORT still applies
100958
101138
  sortable: field.sortable === true
@@ -101049,7 +101229,7 @@ function inheritedColumn(field, t, enumLists) {
101049
101229
  }
101050
101230
 
101051
101231
  /**
101052
- * The context identity columns (supplier + EK group): pulled in front of everything else, editable on
101232
+ * The context identity columns (supplier + EK group): pinned, ungrouped at their `articlePosition`, editable on
101053
101233
  * the article level even though the catalogue locks them (the header page must keep them read-only —
101054
101234
  * its context comes from the page dropdowns). The header link (`headerValues`) is made client side as
101055
101235
  * soon as both are set — the page's grid hook `onCellEditRequest` reacts to every write that changes
@@ -101067,7 +101247,7 @@ var CONTEXT_FIELD_KEYS = Object.values(HEADER_KEY_PATHS);
101067
101247
 
101068
101248
  /**
101069
101249
  * The `defaultValue`s of the grid's built-in create, keyed by column field. A new row owns nothing
101070
- * but its organization scope — the context (supplier + EK group) is typed into the first two columns
101250
+ * but its organization scope — the context (supplier + EK group) is typed into its two pinned columns
101071
101251
  * and the header linkage (`headerValues`) is a server concern (linked once both are filled).
101072
101252
  */
101073
101253
  var NEW_ROW_DEFAULTS = new Map([['organizationId', '${organizationId}'], ['isHeader', false], ['archived', false]]);
@@ -101097,9 +101277,7 @@ function languageGroup(field, t) {
101097
101277
  }), {}, {
101098
101278
  cellDataType: 'text',
101099
101279
  editable: field.editable === false ? false : editableUnlessLocked
101100
- }, field.pinned ? {
101101
- pinned: field.pinned
101102
- } : {}), {}, {
101280
+ }, pinnedTo(field.pinned)), {}, {
101103
101281
  sortable: field.sortable === true
101104
101282
  }, field.filter ? {} : {
101105
101283
  filter: false
@@ -101158,6 +101336,41 @@ function itemRowColumn(field, itemRow, t, enumLists) {
101158
101336
  });
101159
101337
  }
101160
101338
 
101339
+ /**
101340
+ * The combined column of the item row fields naming `name` (`combinedColumn`) — the collapsed view of their header
101341
+ * group (`columnGroupShow: 'closed'`), like a Kollidaten package's summary: their values joined `60x40x30`, a
101342
+ * missing one as "–", empty while none is set. Read-only, neither sortable nor filterable, not exported and not
101343
+ * offered in the columns tool panel — the fields' own columns carry the values.
101344
+ */
101345
+ function combinedColumn(name, fields) {
101346
+ var rowFields = fields.flatMap(function (_ref16) {
101347
+ var key = _ref16.key,
101348
+ itemRow = _ref16.itemRow;
101349
+ return itemRow ? [{
101350
+ key: key,
101351
+ itemRow: itemRow
101352
+ }] : [];
101353
+ });
101354
+ return {
101355
+ colId: "combined:".concat(name),
101356
+ headerName: name,
101357
+ columnGroupShow: 'closed',
101358
+ cellDataType: 'text',
101359
+ editable: false,
101360
+ sortable: false,
101361
+ filter: false,
101362
+ suppressColumnsToolPanel: true,
101363
+ excludeFromExcelExport: true,
101364
+ valueGetter: function valueGetter(_ref17) {
101365
+ var data = _ref17.data;
101366
+ var values = rowFields.map(function (field) {
101367
+ return itemRowValue(data, field);
101368
+ });
101369
+ return values.every(isBlankInput) ? '' : values.map(formatMeasure).join('x');
101370
+ }
101371
+ };
101372
+ }
101373
+
101161
101374
  /**
101162
101375
  * An ITEM_GROUP as a read-only row-count summary column. Binding `field` to the array path also
101163
101376
  * projects the rows into the response — the subtable tabs seed from them. Counting happens client
@@ -101172,13 +101385,11 @@ function summaryColumn(group) {
101172
101385
  editable: false,
101173
101386
  sortable: false,
101174
101387
  filter: false
101175
- }, group.pinned ? {
101176
- pinned: group.pinned
101177
- } : {}), group.excludeFromDuplicate ? {
101388
+ }, pinnedTo(group.pinned)), group.excludeFromDuplicate ? {
101178
101389
  excludeFromDuplicate: true
101179
101390
  } : {}), {}, {
101180
- valueGetter: function valueGetter(_ref16) {
101181
- var data = _ref16.data;
101391
+ valueGetter: function valueGetter(_ref18) {
101392
+ var data = _ref18.data;
101182
101393
  var rows = get(data, group.key);
101183
101394
  return Array.isArray(rows) ? rows.length : 0;
101184
101395
  }
@@ -101241,9 +101452,11 @@ function planningColumn(t, onPaste, cellRenderer) {
101241
101452
  }
101242
101453
 
101243
101454
  /**
101244
- * Builds the article table's column tree from the field catalogue: one header group per catalogue
101245
- * `group` in file order, one column per `showOnArticle` entry; entries without a group render
101246
- * ungrouped at the top level. Header-inheritable text and number fields render as `withPlaceholder`
101455
+ * Builds the article table's column tree from the field catalogue: one column per `showOnArticle` entry in the
101456
+ * order of its `articlePosition`, one header group per catalogue `group`; entries without a group render
101457
+ * ungrouped at the top level, `'hidden'` ones follow hidden and ungrouped — the column chooser shows them again.
101458
+ * The group "Sonstiges" closes the table: the planning's image and DIVA number, then the entries without a
101459
+ * position. Header-inheritable text and number fields render as `withPlaceholder`
101247
101460
  * columns (except the two context columns, see CONTEXT_FIELD_KEYS), multilanguage fields as nested
101248
101461
  * language groups, ITEM_GROUPs as row-count summaries, fields of a table row (`itemRow`) as computed
101249
101462
  * columns on that row.
@@ -101264,6 +101477,7 @@ function buildArticleColDefs(t, commonColumnCellRenderer) {
101264
101477
  var /** The cell class of a `derived` field's value about to be recalculated (see isRecalculating) — the page styles it as loading. */
101265
101478
  recalculatingCellClass = arguments.length > 6 ? arguments[6] : undefined;
101266
101479
  var tree = [];
101480
+ /** The header groups by path — a group's key, or the key of a group nested in it (`subGroup`) behind a slash. */
101267
101481
  var groups = new Map();
101268
101482
  /** Groups whose entries pick their collapsed columns themselves (the catalogue flag `collapsed`). */
101269
101483
  var curatedGroups = new Set();
@@ -101278,40 +101492,38 @@ function buildArticleColDefs(t, commonColumnCellRenderer) {
101278
101492
  });
101279
101493
  };
101280
101494
 
101281
- // the context identity leads the table: supplier + EK group first, left pinned, ungrouped, and
101282
- // editable on this level (a new row starts with them); plain columns, not inheritable ones — see
101283
- // CONTEXT_FIELD_KEYS. The catalogue locks them (for the header page), which is why baseColumn skips
101284
- // their `required` — passed through here: plain columns on their own path, the flag applies as is
101495
+ // the context identity (supplier + EK group): left pinned, ungrouped, and editable on this level (a new row
101496
+ // starts with them); plain columns, not inheritable ones — see CONTEXT_FIELD_KEYS. The catalogue locks them
101497
+ // (for the header page), which is why baseColumn skips their `required` — passed through here: plain columns on
101498
+ // their own path, the flag applies as is
101499
+ var contextColumn = function contextColumn(entry) {
101500
+ return _objectSpread$c(_objectSpread$c(_objectSpread$c({}, plainColumn(entry, t, enumLists)), {}, {
101501
+ editable: editableUnlessLocked
101502
+ }, pinnedTo('left')), entry.required ? {
101503
+ required: true
101504
+ } : {});
101505
+ };
101506
+ // a context column without an `articlePosition` leads the table; one with a position takes it (see place)
101285
101507
  var _iterator2 = _createForOfIteratorHelper$d(CONTEXT_FIELD_KEYS),
101286
101508
  _step2;
101287
101509
  try {
101288
101510
  var _loop = function _loop() {
101289
101511
  var key = _step2.value;
101290
101512
  var entry = ASSORTMENT_MANAGER_FIELDS.find(function (candidate) {
101291
- return candidate.type !== 'ITEM_GROUP' && candidate.key === key && candidate.showOnArticle;
101513
+ return candidate.type !== 'ITEM_GROUP' && candidate.key === key && candidate.showOnArticle !== false;
101292
101514
  });
101293
- if (entry) tree.push(_objectSpread$c(_objectSpread$c({}, plainColumn(entry, t, enumLists)), {}, {
101294
- editable: editableUnlessLocked,
101295
- pinned: 'left'
101296
- }, entry.required ? {
101297
- required: true
101298
- } : {}));
101515
+ if (entry && entry.articlePosition === undefined) tree.push(contextColumn(entry));
101299
101516
  };
101300
101517
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
101301
101518
  _loop();
101302
101519
  }
101303
- // the planning follows the context — its image, then its DIVA number: whether the article is planned is the first
101304
- // thing to see about it
101520
+ // the folded fields per commonColumn name, collected up front — the shared columns render at the
101521
+ // very front of the table, in order of their first appearance
101305
101522
  } catch (err) {
101306
101523
  _iterator2.e(err);
101307
101524
  } finally {
101308
101525
  _iterator2.f();
101309
101526
  }
101310
- tree.push(mainImageColumn(t));
101311
- tree.push(planningColumn(t, onDivaNrPaste, divaNrCellRenderer));
101312
-
101313
- // the folded fields per commonColumn name, collected up front — the shared columns render at the
101314
- // very front of the table, in order of their first appearance
101315
101527
  var commonColumnFields = new Map();
101316
101528
  var _iterator3 = _createForOfIteratorHelper$d(ASSORTMENT_MANAGER_FIELDS),
101317
101529
  _step3;
@@ -101336,97 +101548,164 @@ function buildArticleColDefs(t, commonColumnCellRenderer) {
101336
101548
  _fields = _step4$value[1];
101337
101549
  tree.push(commonColumn(name, _fields, commonColumnCellRenderer));
101338
101550
  }
101551
+
101552
+ /**
101553
+ * Adds the column to the header group at the path — a group, or a group and the one nested in it — each created
101554
+ * with its first column; to the top level with an empty path.
101555
+ */
101339
101556
  } catch (err) {
101340
101557
  _iterator4.e(err);
101341
101558
  } finally {
101342
101559
  _iterator4.f();
101343
101560
  }
101344
- var _iterator5 = _createForOfIteratorHelper$d(ASSORTMENT_MANAGER_FIELDS),
101561
+ var _put = function put(column, path) {
101562
+ if (path.length === 0) {
101563
+ tree.push(column);
101564
+ return;
101565
+ }
101566
+ var key = path.join('/');
101567
+ var group = groups.get(key);
101568
+ if (group) {
101569
+ group.children.push(column);
101570
+ return;
101571
+ }
101572
+ var created = {
101573
+ groupId: "group:".concat(key),
101574
+ headerName: path[path.length - 1],
101575
+ children: [column]
101576
+ };
101577
+ groups.set(key, created);
101578
+ _put(created, path.slice(0, -1));
101579
+ };
101580
+ /** The combined columns (`combinedColumn`) already in the tree. */
101581
+ var combined = new Set();
101582
+ /** Puts the entry's column into the tree — into the named header group (and its `subGroup`), or ungrouped without one. */
101583
+ var place = function place(entry, groupName, hidden) {
101584
+ if (entry.type !== 'ITEM_GROUP' && CONTEXT_FIELD_KEYS.includes(entry.key)) {
101585
+ // ungrouped whatever the group — the header page's card; one without a position already leads the table
101586
+ if (entry.articlePosition !== undefined && !hidden) tree.push(contextColumn(entry));
101587
+ return;
101588
+ }
101589
+ var path = !groupName ? [] : entry.subGroup ? [groupName, entry.subGroup] : [groupName];
101590
+ var column;
101591
+ if (entry.type === 'ITEM_GROUP') {
101592
+ column = summaryColumn(entry);
101593
+ } else if (entry.itemRow) {
101594
+ column = itemRowColumn(entry, entry.itemRow, t, enumLists);
101595
+ } else if (entry.multiLanguage) {
101596
+ column = languageGroup(entry, t);
101597
+ } else if (entry.showOnHeaderValues && entry.type !== 'boolean' && entry.type !== 'date') {
101598
+ column = inheritedColumn(entry, t, enumLists);
101599
+ } else {
101600
+ column = plainColumn(entry, t, enumLists);
101601
+ if (entry.key === ARTICLE_TRANSFER.numberField && transferNrCellRenderer) column = _objectSpread$c(_objectSpread$c({}, column), {}, {
101602
+ cellRenderer: transferNrCellRenderer
101603
+ });
101604
+ }
101605
+ // a class rule, not a renderer: the grid re-runs a cell's renderer only when the cell's own value changes, its
101606
+ // class rules whenever the row changes — and an edit elsewhere in the row is what starts the recalculation
101607
+ if (entry.type !== 'ITEM_GROUP' && entry.derived && recalculatingCellClass) {
101608
+ column = withRecalculatingClass(column, recalculatingCellClass);
101609
+ }
101610
+ if (entry.commonColumn && entry.type !== 'ITEM_GROUP') {
101611
+ column = _objectSpread$c(_objectSpread$c({}, column), {}, {
101612
+ hide: true
101613
+ });
101614
+ }
101615
+ // a collapsed field sits behind its group's expand toggle — see the catalogue flag
101616
+ if (entry.collapsed) {
101617
+ column = _objectSpread$c(_objectSpread$c({}, column), {}, {
101618
+ columnGroupShow: 'open'
101619
+ });
101620
+ }
101621
+ if (hidden) column = hiddenByDefault(column);
101622
+ column = withDefault(column);
101623
+ // a field joined into a combined column: that column — its group's collapsed view — takes its first field's place
101624
+ if (entry.type !== 'ITEM_GROUP' && entry.combinedColumn && path.length > 0 && !hidden) {
101625
+ var name = entry.combinedColumn;
101626
+ if (!combined.has(name)) {
101627
+ combined.add(name);
101628
+ _put(combinedColumn(name, ARTICLE_FIELDS.filter(function (field) {
101629
+ return field.combinedColumn === name;
101630
+ })), path);
101631
+ }
101632
+ }
101633
+ if (path.length > 0 && entry.collapsed) curatedGroups.add(path.join('/'));
101634
+ _put(column, path);
101635
+ };
101636
+ var articleEntries = ASSORTMENT_MANAGER_FIELDS.filter(function (entry) {
101637
+ return entry.showOnArticle;
101638
+ });
101639
+ var shown = articleEntries.filter(function (entry) {
101640
+ return entry.showOnArticle === true;
101641
+ });
101642
+ var positioned = shown.filter(function (entry) {
101643
+ return entry.articlePosition !== undefined;
101644
+ }).sort(function (a, b) {
101645
+ var _a$articlePosition, _b$articlePosition;
101646
+ return ((_a$articlePosition = a.articlePosition) !== null && _a$articlePosition !== void 0 ? _a$articlePosition : 0) - ((_b$articlePosition = b.articlePosition) !== null && _b$articlePosition !== void 0 ? _b$articlePosition : 0);
101647
+ });
101648
+ var _iterator5 = _createForOfIteratorHelper$d(positioned),
101345
101649
  _step5;
101346
101650
  try {
101347
101651
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
101348
101652
  var _entry = _step5.value;
101349
- if (!_entry.showOnArticle) continue;
101350
- if (_entry.type !== 'ITEM_GROUP' && CONTEXT_FIELD_KEYS.includes(_entry.key)) continue;
101351
- var column = void 0;
101352
- if (_entry.type === 'ITEM_GROUP') {
101353
- column = summaryColumn(_entry);
101354
- } else if (_entry.itemRow) {
101355
- column = itemRowColumn(_entry, _entry.itemRow, t, enumLists);
101356
- } else if (_entry.multiLanguage) {
101357
- column = languageGroup(_entry, t);
101358
- } else if (_entry.showOnHeaderValues && _entry.type !== 'boolean' && _entry.type !== 'date') {
101359
- column = inheritedColumn(_entry, t, enumLists);
101360
- } else {
101361
- column = plainColumn(_entry, t, enumLists);
101362
- if (_entry.key === ARTICLE_TRANSFER.numberField && transferNrCellRenderer) column = _objectSpread$c(_objectSpread$c({}, column), {}, {
101363
- cellRenderer: transferNrCellRenderer
101364
- });
101365
- }
101366
- // a class rule, not a renderer: the grid re-runs a cell's renderer only when the cell's own value changes, its
101367
- // class rules whenever the row changes — and an edit elsewhere in the row is what starts the recalculation
101368
- if (_entry.type !== 'ITEM_GROUP' && _entry.derived && recalculatingCellClass) {
101369
- column = withRecalculatingClass(column, recalculatingCellClass);
101370
- }
101371
- if (_entry.commonColumn && _entry.type !== 'ITEM_GROUP') {
101372
- column = _objectSpread$c(_objectSpread$c({}, column), {}, {
101373
- hide: true
101374
- });
101375
- }
101376
- // a collapsed field sits behind its group's expand toggle — see the catalogue flag
101377
- if (_entry.collapsed) {
101378
- column = _objectSpread$c(_objectSpread$c({}, column), {}, {
101379
- columnGroupShow: 'open'
101380
- });
101381
- }
101382
- column = withDefault(column);
101383
- if (!_entry.group) {
101384
- tree.push(column);
101385
- continue;
101386
- }
101387
- if (_entry.collapsed) curatedGroups.add(_entry.group);
101388
- var children = groups.get(_entry.group);
101389
- if (children) {
101390
- children.push(column);
101391
- } else {
101392
- var created = [column];
101393
- groups.set(_entry.group, created);
101394
- tree.push({
101395
- groupId: "group:".concat(_entry.group),
101396
- headerName: _entry.group,
101397
- children: created
101398
- });
101399
- }
101653
+ place(_entry, _entry.group, false);
101400
101654
  }
101401
- // every other group folds as well: collapsed it keeps its first shown column, the rest sits behind the toggle —
101402
- // and it starts expanded, so the table opens as it always did
101655
+ // then, in catalogue order, the hidden columns, ungrouped
101403
101656
  } catch (err) {
101404
101657
  _iterator5.e(err);
101405
101658
  } finally {
101406
101659
  _iterator5.f();
101407
101660
  }
101408
- var _iterator6 = _createForOfIteratorHelper$d(groups),
101661
+ var _iterator6 = _createForOfIteratorHelper$d(articleEntries),
101409
101662
  _step6;
101663
+ try {
101664
+ for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
101665
+ var _entry2 = _step6.value;
101666
+ if (_entry2.showOnArticle === 'hidden') place(_entry2, undefined, true);
101667
+ }
101668
+ // the last group: the planning's image and DIVA number, then the columns without a position
101669
+ } catch (err) {
101670
+ _iterator6.e(err);
101671
+ } finally {
101672
+ _iterator6.f();
101673
+ }
101674
+ _put(mainImageColumn(t), [ARTICLE_OTHER_GROUP]);
101675
+ _put(planningColumn(t, onDivaNrPaste, divaNrCellRenderer), [ARTICLE_OTHER_GROUP]);
101676
+ var _iterator7 = _createForOfIteratorHelper$d(shown),
101677
+ _step7;
101678
+ try {
101679
+ for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
101680
+ var _entry3 = _step7.value;
101681
+ if (_entry3.articlePosition === undefined) place(_entry3, ARTICLE_OTHER_GROUP, false);
101682
+ }
101683
+ // every other group folds as well: collapsed it keeps its first shown column — or shows its combined column
101684
+ // instead — the rest sits behind the toggle; and it starts expanded, so the table opens as it always did. The
101685
+ // flags are set on the children themselves: a nested group is its parent's child and in this map at once
101686
+ } catch (err) {
101687
+ _iterator7.e(err);
101688
+ } finally {
101689
+ _iterator7.f();
101690
+ }
101691
+ var _iterator8 = _createForOfIteratorHelper$d(groups),
101692
+ _step8;
101410
101693
  try {
101411
101694
  var _loop2 = function _loop2() {
101412
- var _step6$value = _slicedToArray(_step6.value, 2),
101413
- name = _step6$value[0],
101414
- children = _step6$value[1];
101415
- if (curatedGroups.has(name)) return 1; // continue
101416
- var firstShown = children.findIndex(function (child) {
101417
- return 'children' in child || !child.hide;
101418
- });
101695
+ var _step8$value = _slicedToArray(_step8.value, 2),
101696
+ key = _step8$value[0],
101697
+ group = _step8$value[1];
101698
+ if (curatedGroups.has(key)) return 1; // continue
101699
+ var children = group.children;
101700
+ var kept = children.some(function (child) {
101701
+ return child.columnGroupShow === 'closed';
101702
+ }) ? -1 : children.findIndex(isShown);
101419
101703
  children.forEach(function (child, index) {
101420
- if (index !== firstShown) children[index] = _objectSpread$c(_objectSpread$c({}, child), {}, {
101421
- columnGroupShow: 'open'
101422
- });
101423
- });
101424
- var group = tree.find(function (column) {
101425
- return 'children' in column && column.headerName === name;
101704
+ if (index !== kept && child.columnGroupShow !== 'closed') child.columnGroupShow = 'open';
101426
101705
  });
101427
- if (group) group.openByDefault = true;
101706
+ group.openByDefault = true;
101428
101707
  };
101429
- for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
101708
+ for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
101430
101709
  if (_loop2()) continue;
101431
101710
  }
101432
101711
 
@@ -101435,9 +101714,9 @@ function buildArticleColDefs(t, commonColumnCellRenderer) {
101435
101714
  // snapshots taken before the hash existed) feed the outdated comparison of the row style and the
101436
101715
  // refresh action, and the remaining new-row defaults ride along the same way
101437
101716
  } catch (err) {
101438
- _iterator6.e(err);
101717
+ _iterator8.e(err);
101439
101718
  } finally {
101440
- _iterator6.f();
101719
+ _iterator8.f();
101441
101720
  }
101442
101721
  var hidden = HIDDEN_COLUMN;
101443
101722
  for (var _i = 0, _arr = ['headerValues.customData', 'headerValues._id', 'headerValues.headerHash', 'headerValues.lastUpdated']; _i < _arr.length; _i++) {
@@ -101460,11 +101739,11 @@ function buildArticleColDefs(t, commonColumnCellRenderer) {
101460
101739
  // fields the readiness rules read that no catalogue column carries: projected hidden so the loaded rows hold
101461
101740
  // them; a duplicated row is a new article and starts without them. The `divaNr` is already there as the
101462
101741
  // DIVA number column
101463
- var _iterator7 = _createForOfIteratorHelper$d(READINESS_PROJECTION_FIELDS),
101464
- _step7;
101742
+ var _iterator9 = _createForOfIteratorHelper$d(READINESS_PROJECTION_FIELDS),
101743
+ _step9;
101465
101744
  try {
101466
- for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
101467
- var _field2 = _step7.value;
101745
+ for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
101746
+ var _field2 = _step9.value;
101468
101747
  if (_field2 === 'divaNr') continue;
101469
101748
  tree.push(_objectSpread$c(_objectSpread$c({}, hidden), {}, {
101470
101749
  field: _field2,
@@ -101472,26 +101751,26 @@ function buildArticleColDefs(t, commonColumnCellRenderer) {
101472
101751
  }));
101473
101752
  }
101474
101753
  } catch (err) {
101475
- _iterator7.e(err);
101754
+ _iterator9.e(err);
101476
101755
  } finally {
101477
- _iterator7.f();
101756
+ _iterator9.f();
101478
101757
  }
101479
- var _iterator8 = _createForOfIteratorHelper$d(pendingDefaults),
101480
- _step8;
101758
+ var _iterator10 = _createForOfIteratorHelper$d(pendingDefaults),
101759
+ _step10;
101481
101760
  try {
101482
- for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
101483
- var _step8$value = _slicedToArray(_step8.value, 2),
101484
- _field3 = _step8$value[0],
101485
- defaultValue = _step8$value[1];
101761
+ for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
101762
+ var _step10$value = _slicedToArray(_step10.value, 2),
101763
+ _field3 = _step10$value[0],
101764
+ defaultValue = _step10$value[1];
101486
101765
  tree.push(_objectSpread$c(_objectSpread$c({}, hidden), {}, {
101487
101766
  field: _field3,
101488
101767
  defaultValue: defaultValue
101489
101768
  }));
101490
101769
  }
101491
101770
  } catch (err) {
101492
- _iterator8.e(err);
101771
+ _iterator10.e(err);
101493
101772
  } finally {
101494
- _iterator8.f();
101773
+ _iterator10.f();
101495
101774
  }
101496
101775
  return tree;
101497
101776
  }
@@ -101504,23 +101783,18 @@ var COLLI_COUNT = {
101504
101783
 
101505
101784
  /**
101506
101785
  * A package's measures take input only while the package is within the number of packages (Anzahl Colli) — the legacy
101507
- * rule of one Cxx per package, so C03 stays locked at a count of 2 — or while it still holds a value, so a package
101508
- * left beyond a lowered count can be cleared. Transferred articles stay locked either way.
101786
+ * rule of one Cxx per package, so C03 stays locked at a count of 2 — or while its row still exists, so a package
101787
+ * left beyond a lowered count can be cleared, even one without measures. Transferred articles stay locked either way.
101509
101788
  */
101510
101789
  function packageEditable(unit, packageFields) {
101790
+ var _packageFields$find;
101511
101791
  var packageNumber = COLLI_PACKAGE_UNITS.indexOf(unit) + 1;
101512
- var measures = packageFields.flatMap(function (_ref17) {
101513
- var key = _ref17.key,
101514
- itemRow = _ref17.itemRow;
101515
- return itemRow ? [{
101516
- key: key,
101517
- itemRow: itemRow
101518
- }] : [];
101519
- });
101792
+ var packageRow = (_packageFields$find = packageFields.find(function (_ref19) {
101793
+ var itemRow = _ref19.itemRow;
101794
+ return itemRow;
101795
+ })) === null || _packageFields$find === void 0 ? void 0 : _packageFields$find.itemRow;
101520
101796
  return function (params) {
101521
- return editableUnlessLocked(params) && (Number(itemRowValue(params.data, COLLI_COUNT)) >= packageNumber || measures.some(function (field) {
101522
- return !isBlankInput(itemRowValue(params.data, field));
101523
- }));
101797
+ return editableUnlessLocked(params) && (Number(itemRowValue(params.data, COLLI_COUNT)) >= packageNumber || packageRow !== undefined && hasItemRow(params.data, packageRow));
101524
101798
  };
101525
101799
  }
101526
101800
 
@@ -101531,41 +101805,21 @@ function formatMeasure(value) {
101531
101805
  return Number.isFinite(number) ? number.toLocaleString() : String(value);
101532
101806
  }
101533
101807
 
101534
- /** The package summary's editor: it never opens, so the summary takes no input — Delete still clears it. */
101535
- var NoInputCellEditor = /*#__PURE__*/function () {
101536
- function NoInputCellEditor() {
101537
- _classCallCheck(this, NoInputCellEditor);
101538
- }
101539
- return _createClass(NoInputCellEditor, [{
101540
- key: "getGui",
101541
- value: function getGui() {
101542
- return document.createElement('span');
101543
- }
101544
- }, {
101545
- key: "getValue",
101546
- value: function getValue() {
101547
- return undefined;
101548
- }
101549
- }, {
101550
- key: "isCancelBeforeStart",
101551
- value: function isCancelBeforeStart() {
101552
- return true;
101553
- }
101554
- }]);
101555
- }();
101556
101808
  /**
101557
101809
  * The collapsed view of a package group (`columnGroupShow: 'closed'`): one cell with the package's measures behind
101558
- * their `summaryLabel`s — "L: 60 B: 40 H: 30 GEW: 12", a missing measure as "–", empty while the package has none — so
101559
- * the whole package reads at a glance. It takes no input (see NoInputCellEditor), but clearing it (Delete, the context
101560
- * menu, cut) clears the four measures and with them the package row (`removeWhenEmpty`) — wherever the measures take
101561
- * input. Neither sortable, filterable nor exported, and not offered in the columns tool panel; the package table it
101562
- * reads is projected by the hidden units column.
101810
+ * their `summaryLabel`s — "L: 60 B: 40 H: 30 GEW: 12", a missing measure as "–", empty while the package has no row — so
101811
+ * the whole package reads at a glance. A row without measures shows its dashes: the grid skips clearing a blank cell,
101812
+ * so Delete would never reach the row. Display only, but Delete clears it (`clearable`): the four measures and with
101813
+ * them the package row (`removeWhenEmpty`) — wherever the measures take input. Neither sortable, filterable nor
101814
+ * exported, and not offered in the columns tool panel; the package table it reads is projected by the hidden units
101815
+ * column.
101563
101816
  */
101564
101817
  function packageSummaryColumn(unit, fields, t) {
101565
- var measures = fields.flatMap(function (_ref18) {
101566
- var key = _ref18.key,
101567
- itemRow = _ref18.itemRow,
101568
- summaryLabel = _ref18.summaryLabel;
101818
+ var _measures$;
101819
+ var measures = fields.flatMap(function (_ref20) {
101820
+ var key = _ref20.key,
101821
+ itemRow = _ref20.itemRow,
101822
+ summaryLabel = _ref20.summaryLabel;
101569
101823
  return itemRow && summaryLabel ? [{
101570
101824
  label: summaryLabel,
101571
101825
  field: {
@@ -101574,40 +101828,39 @@ function packageSummaryColumn(unit, fields, t) {
101574
101828
  }
101575
101829
  }] : [];
101576
101830
  });
101577
- var cleared = Object.fromEntries(measures.map(function (_ref19) {
101578
- var field = _ref19.field;
101831
+ var cleared = Object.fromEntries(measures.map(function (_ref21) {
101832
+ var field = _ref21.field;
101579
101833
  return [field.key, null];
101580
101834
  }));
101835
+ var packageRow = (_measures$ = measures[0]) === null || _measures$ === void 0 ? void 0 : _measures$.field.itemRow;
101581
101836
  return {
101582
101837
  colId: "COLLI_SUMMARY_".concat(unit),
101583
101838
  headerName: t('backoffice.assortmentmanager.collidata.packageSummary', {
101584
101839
  defaultValue: 'Übersicht'
101585
101840
  }),
101586
101841
  columnGroupShow: 'closed',
101587
- editable: packageEditable(unit, fields),
101588
- cellEditor: NoInputCellEditor,
101589
- // only an empty value clears; a pasted or filled-in text is refused
101590
- cellEditToRowUpdate: function cellEditToRowUpdate(_ref20) {
101591
- var newValue = _ref20.newValue,
101592
- data = _ref20.data;
101593
- return isBlankInput(newValue) ? foldItemRowValues(data, cleared, measures.map(function (_ref21) {
101594
- var field = _ref21.field;
101842
+ editable: false,
101843
+ clearable: packageEditable(unit, fields),
101844
+ cellEditToRowUpdate: function cellEditToRowUpdate(_ref22) {
101845
+ var data = _ref22.data;
101846
+ return foldItemRowValues(data, cleared, measures.map(function (_ref23) {
101847
+ var field = _ref23.field;
101595
101848
  return field;
101596
- })) : undefined;
101849
+ }));
101597
101850
  },
101598
101851
  sortable: false,
101599
101852
  filter: false,
101600
101853
  suppressColumnsToolPanel: true,
101601
101854
  excludeFromExcelExport: true,
101602
- valueGetter: function valueGetter(_ref22) {
101603
- var data = _ref22.data;
101604
- var values = measures.map(function (_ref23) {
101605
- var field = _ref23.field;
101855
+ valueGetter: function valueGetter(_ref24) {
101856
+ var data = _ref24.data;
101857
+ if (!packageRow || !hasItemRow(data, packageRow)) return '';
101858
+ var values = measures.map(function (_ref25) {
101859
+ var field = _ref25.field;
101606
101860
  return itemRowValue(data, field);
101607
101861
  });
101608
- if (values.every(isBlankInput)) return '';
101609
- return measures.map(function (_ref24, index) {
101610
- var label = _ref24.label;
101862
+ return measures.map(function (_ref26, index) {
101863
+ var label = _ref26.label;
101611
101864
  return "".concat(label, ": ").concat(formatMeasure(values[index]));
101612
101865
  }).join(' ');
101613
101866
  }
@@ -101630,17 +101883,17 @@ function buildColliColDefs(t) {
101630
101883
  var packageGroups = new Map();
101631
101884
  var withIssue = function withIssue(column) {
101632
101885
  return colliIssue ? _objectSpread$c(_objectSpread$c({}, column), {}, {
101633
- tooltipValueGetter: function tooltipValueGetter(_ref25) {
101634
- var data = _ref25.data;
101886
+ tooltipValueGetter: function tooltipValueGetter(_ref27) {
101887
+ var data = _ref27.data;
101635
101888
  return colliIssue(data);
101636
101889
  }
101637
101890
  }) : column;
101638
101891
  };
101639
- var _iterator9 = _createForOfIteratorHelper$d(COLLI_FIELDS),
101640
- _step9;
101892
+ var _iterator11 = _createForOfIteratorHelper$d(COLLI_FIELDS),
101893
+ _step11;
101641
101894
  try {
101642
101895
  var _loop3 = function _loop3() {
101643
- var field = _step9.value;
101896
+ var field = _step11.value;
101644
101897
  var column = field.itemRow ? withIssue(itemRowColumn(field, field.itemRow, t, enumLists)) : plainColumn(field, t, enumLists);
101645
101898
  if (!field.packageUnit) {
101646
101899
  tree.push(column);
@@ -101668,14 +101921,14 @@ function buildColliColDefs(t) {
101668
101921
  tree.push(created);
101669
101922
  },
101670
101923
  _ret;
101671
- for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
101924
+ for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
101672
101925
  _ret = _loop3();
101673
101926
  if (_ret === 0) continue;
101674
101927
  }
101675
101928
  } catch (err) {
101676
- _iterator9.e(err);
101929
+ _iterator11.e(err);
101677
101930
  } finally {
101678
- _iterator9.f();
101931
+ _iterator11.f();
101679
101932
  }
101680
101933
  var lockFields = ['_id', ARTICLE_TRANSFER.transferredWhen.field, ARTICLE_TRANSFER.pendingWhen.field];
101681
101934
  // an edit clears the last transfer's messages (clearTransferMessagesOnEdit) — it sees them only in the loaded row
@@ -104405,15 +104658,53 @@ function useAllowedFieldValues(root) {
104405
104658
  return values;
104406
104659
  }
104407
104660
 
104661
+ /** Separates several search terms in the free text search, e.g. `188889;188890`. */
104662
+ var SEARCH_TERM_SEPARATOR = ';';
104663
+
104664
+ /** The distinct, trimmed, non-empty terms of a search text. */
104665
+ function splitSearchTerms(text) {
104666
+ return _toConsumableArray(new Set(text.split(SEARCH_TERM_SEPARATOR).map(function (term) {
104667
+ return term.trim();
104668
+ }))).filter(function (term) {
104669
+ return term.length > 0;
104670
+ });
104671
+ }
104672
+
104673
+ /**
104674
+ * The free text search as a pre filter condition: a row matches when one of the terms is contained in one of
104675
+ * the search fields (`ARTICLE_SEARCH_FIELDS`). Built here instead of the spreadsheet's `searchText`, which
104676
+ * searches for the whole text as one term. A single term gives the same condition as the spreadsheet's search.
104677
+ *
104678
+ * @returns the OR join as the only element, or no condition for an empty search
104679
+ */
104680
+ function articleSearchConditions(text) {
104681
+ var terms = splitSearchTerms(text);
104682
+ if (terms.length === 0) return [];
104683
+ return [{
104684
+ filterType: 'join',
104685
+ type: 'OR',
104686
+ conditions: terms.flatMap(function (term) {
104687
+ return ARTICLE_SEARCH_FIELDS.map(function (colId) {
104688
+ return {
104689
+ colId: colId,
104690
+ filterType: 'text',
104691
+ type: 'contains',
104692
+ filter: term
104693
+ };
104694
+ });
104695
+ })
104696
+ }];
104697
+ }
104698
+
104408
104699
  /**
104409
104700
  * The server-side pre filter of the article grids (positions and Kollidaten): the organization's SM articles the
104410
- * user may see, narrowed by the active predefined views.
104701
+ * user may see, narrowed by the active predefined views and the free text search (several terms separated by `;`).
104411
104702
  *
104412
104703
  * String values are single-quoted by the NodeJs adapter, so numeric-looking codes stay strings server side; the
104413
104704
  * booleans have to be real booleans for the same reason — quoted they would arrive as the strings 'false'/'true'
104414
104705
  * (hence the cast, ag-grid types text filters as string-only).
104415
104706
  */
104416
- function useArticlePreFilter(organizationId, allowedValues, viewConditions) {
104707
+ function useArticlePreFilter(organizationId, allowedValues, viewConditions, searchText) {
104417
104708
  return useMemo(function () {
104418
104709
  return {
104419
104710
  filterType: 'join',
@@ -104464,9 +104755,9 @@ function useArticlePreFilter(organizationId, allowedValues, viewConditions) {
104464
104755
  type: condition.type,
104465
104756
  filter: condition.filter
104466
104757
  };
104467
- })))
104758
+ })), _toConsumableArray(articleSearchConditions(searchText)))
104468
104759
  };
104469
- }, [organizationId, allowedValues, viewConditions]);
104760
+ }, [organizationId, allowedValues, viewConditions, searchText]);
104470
104761
  }
104471
104762
 
104472
104763
  function _createForOfIteratorHelper$4(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$4(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
@@ -104575,7 +104866,7 @@ var TOOLTIP_STYLES = {
104575
104866
  * The leading status cell of an article, next to the checkbox. First the last transfer's message
104576
104867
  * (`transferMessage` — the configured message fields): a filled cross when it failed, a warning sign when
104577
104868
  * it went through with remarks, the stored text as tooltip. Then a transferred article: a filled green
104578
- * check — done. Otherwise, for an article not yet transferred, its readiness for the transfer
104869
+ * check — done, the tooltip names the day ("Übertragen am 22.05.2026"). Otherwise, for an article not yet transferred, its readiness for the transfer
104579
104870
  * (`readinessOf`): an outlined check when it passes the catalogue checks and the configured rules, a
104580
104871
  * cross with the reasons as tooltip when not. An article a run is working on shows nothing here — the
104581
104872
  * number cell carries the spinner.
@@ -104611,8 +104902,12 @@ function ArticleStatusCell(_ref) {
104611
104902
  });
104612
104903
  }
104613
104904
  if (isTransferred(data)) {
104905
+ var date = transferDate(data);
104614
104906
  return /*#__PURE__*/jsx(Tooltip$1, {
104615
- title: t('backoffice.assortmentmanager.articledata.transferStatus.transferred', 'Übertragen'),
104907
+ title: date ? t('backoffice.assortmentmanager.articledata.transferStatus.transferredOn', {
104908
+ defaultValue: 'Übertragen am {{date}}',
104909
+ date: date
104910
+ }) : t('backoffice.assortmentmanager.articledata.transferStatus.transferred', 'Übertragen'),
104616
104911
  children: /*#__PURE__*/jsx(CheckCircleFilled, {
104617
104912
  style: {
104618
104913
  color: token.colorSuccess
@@ -104791,7 +105086,7 @@ var ArticleTable = /*#__PURE__*/forwardRef(function ArticleTable(_ref, ref) {
104791
105086
  // the user's allowed values of the restricted catalogue fields (e.g. the SAP Warengruppen):
104792
105087
  // restrict the rows (preFilter) and the column dropdowns
104793
105088
  var allowedValues = useAllowedFieldValues(root);
104794
- var preFilter = useArticlePreFilter(organizationId, allowedValues, viewConditions);
105089
+ var preFilter = useArticlePreFilter(organizationId, allowedValues, viewConditions, searchTerm !== null && searchTerm !== void 0 ? searchTerm : '');
104795
105090
 
104796
105091
  // the dropdown lists become the enum cells' data (module-level cache, shared with the header page)
104797
105092
  var enumLists = useDropdownEnumData(root, ARTICLE_DROPDOWN_KEYS);
@@ -104873,12 +105168,10 @@ var ArticleTable = /*#__PURE__*/forwardRef(function ArticleTable(_ref, ref) {
104873
105168
  return /*#__PURE__*/jsx(Spreadsheet, {
104874
105169
  ref: ref,
104875
105170
  gridId: "assortmentmanager_articledata",
104876
- applicationData: applicationData,
104877
- preFilter: preFilter
104878
- // free text search: the spreadsheet ORs the term over these fields inside the preFilter
105171
+ applicationData: applicationData
105172
+ // includes the free text search (`logic/articleSearch.ts`)
104879
105173
  ,
104880
- searchFields: ARTICLE_SEARCH_FIELDS,
104881
- searchText: searchTerm,
105174
+ preFilter: preFilter,
104882
105175
  configuration: configuration,
104883
105176
  hooks: hooks,
104884
105177
  rowActions: rowActions
@@ -107110,6 +107403,9 @@ function ArticleData() {
107110
107403
  // the Unity render group of the configurator's save, per environment in the backoffice settings
107111
107404
  var diva3dRenderGroup = root.configurationStore.diva3dRenderGroup;
107112
107405
 
107406
+ // the right panels open over three quarters of the window; a width the user dragged is remembered and wins
107407
+ var rightPanelWidth = Math.round(window.innerWidth * 0.75);
107408
+
107113
107409
  // registered per selection (Media table pattern): the tabs pick up the newly selected article,
107114
107410
  // which reloads their rows — applySelection saved pending changes beforehand, so only unsavable
107115
107411
  // (invalid) rows can be lost by that, and the tab warns when it drops them
@@ -107150,7 +107446,7 @@ function ArticleData() {
107150
107446
  id: ARTICLE_CONFIGURATOR_TOOL_ID,
107151
107447
  name: t('backoffice.assortmentmanager.articledata.configurator.tab', 'Konfigurator'),
107152
107448
  where: 'right',
107153
- startWidth: 720,
107449
+ startWidth: rightPanelWidth,
107154
107450
  elementComponent: ArticleConfigurator$1,
107155
107451
  elementProps: {
107156
107452
  selectedRows: selectedArticleRows,
@@ -107170,7 +107466,7 @@ function ArticleData() {
107170
107466
  id: CLASSIFICATION_PANEL_TOOL_ID,
107171
107467
  name: t('backoffice.assortmentmanager.articledata.classificationPanel.tab', 'Klassifikation'),
107172
107468
  where: 'right',
107173
- startWidth: 900,
107469
+ startWidth: rightPanelWidth,
107174
107470
  elementComponent: ClassificationPanel$1,
107175
107471
  elementProps: {
107176
107472
  selectedRows: selectedArticleRows,
@@ -107181,7 +107477,7 @@ function ArticleData() {
107181
107477
  return true;
107182
107478
  }
107183
107479
  }]);
107184
- }, [t, selectedArticle, handleSubtableSaved, registerFlusher, handleSubtableSavingChange, selectedArticleRows, selection, handleBulkActionCompleted, handleConfigurationSaved, diva3dRenderGroup]);
107480
+ }, [t, selectedArticle, handleSubtableSaved, registerFlusher, handleSubtableSavingChange, selectedArticleRows, selection, handleBulkActionCompleted, handleConfigurationSaved, diva3dRenderGroup, rightPanelWidth]);
107185
107481
  useTools({
107186
107482
  conditionalTools: conditionalTools
107187
107483
  });
@@ -107222,7 +107518,8 @@ function ArticleData() {
107222
107518
  }), /*#__PURE__*/jsxs(Space, {
107223
107519
  children: [/*#__PURE__*/jsx(SpreadsheetSearchInput, {
107224
107520
  onSearch: setSearchTerm,
107225
- placeholder: t('backoffice.assortmentmanager.articledata.search.placeholder', 'Suchen…')
107521
+ placeholder: t('backoffice.assortmentmanager.articledata.search.multiPlaceholder', 'Suchen… (mehrere mit ; trennen)'),
107522
+ pasteLinesSeparator: SEARCH_TERM_SEPARATOR
107226
107523
  }), /*#__PURE__*/jsx(Tooltip$1, {
107227
107524
  title: t('backoffice.assortmentmanager.articledata.refresh.tooltip', 'Tabelle neu laden (Filter bleiben erhalten)'),
107228
107525
  children: /*#__PURE__*/jsx(Button, {
@@ -107319,7 +107616,7 @@ var ColliTable = /*#__PURE__*/forwardRef(function ColliTable(_ref, ref) {
107319
107616
  };
107320
107617
  }, [organizationId]);
107321
107618
  var allowedValues = useAllowedFieldValues(root);
107322
- var preFilter = useArticlePreFilter(organizationId, allowedValues, viewConditions);
107619
+ var preFilter = useArticlePreFilter(organizationId, allowedValues, viewConditions, searchTerm !== null && searchTerm !== void 0 ? searchTerm : '');
107323
107620
  var enumLists = useDropdownEnumData(root, COLLI_DROPDOWN_KEYS);
107324
107621
 
107325
107622
  /**
@@ -107376,8 +107673,6 @@ var ColliTable = /*#__PURE__*/forwardRef(function ColliTable(_ref, ref) {
107376
107673
  gridId: "assortmentmanager_collidata",
107377
107674
  applicationData: applicationData,
107378
107675
  preFilter: preFilter,
107379
- searchFields: ARTICLE_SEARCH_FIELDS,
107380
- searchText: searchTerm,
107381
107676
  configuration: configuration,
107382
107677
  hooks: hooks,
107383
107678
  isRowEditable: function isRowEditable(node) {
@@ -107611,6 +107906,10 @@ function ColliImport() {
107611
107906
  } : undefined,
107612
107907
  acceptedFileTypes: ".xlsx,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
107613
107908
  plainRowErrors: true,
107909
+ progressTexts: {
107910
+ uploading: t('backoffice.assortmentmanager.collidata.import.uploading', 'Datei wird hochgeladen …'),
107911
+ checking: t('backoffice.assortmentmanager.collidata.import.checking', 'Datei wird geprüft …')
107912
+ },
107614
107913
  uploadHint: t('backoffice.assortmentmanager.collidata.import.hint', 'Der bearbeitete Kollidaten-Export (xlsx) – jede Zeile braucht ihre product_id. Bei einem Fehler wird nichts gespeichert.'),
107615
107914
  onUploadComplete: handleAccepted
107616
107915
  })]
@@ -107741,7 +108040,8 @@ function ColliData() {
107741
108040
  selectedCount: selectedCount
107742
108041
  }), /*#__PURE__*/jsx(ColliImport, {}), /*#__PURE__*/jsx(SpreadsheetSearchInput, {
107743
108042
  onSearch: setSearchTerm,
107744
- placeholder: t('backoffice.assortmentmanager.articledata.search.placeholder', 'Suchen…')
108043
+ placeholder: t('backoffice.assortmentmanager.articledata.search.multiPlaceholder', 'Suchen… (mehrere mit ; trennen)'),
108044
+ pasteLinesSeparator: SEARCH_TERM_SEPARATOR
107745
108045
  }), /*#__PURE__*/jsx(Tooltip$1, {
107746
108046
  title: t('backoffice.assortmentmanager.articledata.refresh.tooltip', 'Tabelle neu laden (Filter bleiben erhalten)'),
107747
108047
  children: /*#__PURE__*/jsx(Button, {