@crystaldesign/diva-backoffice 26.13.0-beta.32 → 26.13.0-beta.34

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 (66) hide show
  1. package/build/esm/index.js +4837 -3700
  2. package/build/types/backoffice/src/index.d.ts.map +1 -1
  3. package/build/types/backoffice/src/layout/ProductOnboarding/Navigation.d.ts.map +1 -1
  4. package/build/types/backoffice/src/layout/ProductOnboarding/views.d.ts.map +1 -1
  5. package/build/types/backoffice/src/store/RootStore.d.ts +11 -1
  6. package/build/types/backoffice/src/store/RootStore.d.ts.map +1 -1
  7. package/build/types/backoffice/src/store/index.d.ts +3 -1
  8. package/build/types/backoffice/src/store/index.d.ts.map +1 -1
  9. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ArticleSubTable/index.d.ts +4 -1
  10. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ArticleSubTable/index.d.ts.map +1 -1
  11. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ArticleTable/index.d.ts +3 -0
  12. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ArticleTable/index.d.ts.map +1 -1
  13. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ClassificationPanel/ClassificationGroups/index.d.ts +3 -1
  14. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ClassificationPanel/ClassificationGroups/index.d.ts.map +1 -1
  15. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ClassificationPanel/ClassificationReady/index.d.ts +3 -1
  16. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ClassificationPanel/ClassificationReady/index.d.ts.map +1 -1
  17. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ClassificationPanel/CopyActions/index.d.ts +15 -0
  18. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ClassificationPanel/CopyActions/index.d.ts.map +1 -0
  19. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ClassificationPanel/RequiredFieldsAlert/index.d.ts +9 -0
  20. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ClassificationPanel/RequiredFieldsAlert/index.d.ts.map +1 -0
  21. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ClassificationPanel/SapNrListInput/index.d.ts +15 -0
  22. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ClassificationPanel/SapNrListInput/index.d.ts.map +1 -0
  23. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ClassificationPanel/SapNrListResult/index.d.ts +13 -0
  24. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ClassificationPanel/SapNrListResult/index.d.ts.map +1 -0
  25. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ClassificationPanel/findSapNrList.d.ts +9 -0
  26. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ClassificationPanel/findSapNrList.d.ts.map +1 -0
  27. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ClassificationPanel/index.d.ts +9 -1
  28. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ClassificationPanel/index.d.ts.map +1 -1
  29. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/hooks/useAllowedFieldValues.d.ts +3 -2
  30. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/hooks/useAllowedFieldValues.d.ts.map +1 -1
  31. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/hooks/useHeaderProducts.d.ts +4 -3
  32. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/hooks/useHeaderProducts.d.ts.map +1 -1
  33. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/hooks/usePlanningTransfer.d.ts.map +1 -1
  34. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/index.d.ts.map +1 -1
  35. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/classificationRequiredFields.d.ts +14 -0
  36. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/classificationRequiredFields.d.ts.map +1 -0
  37. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/classificationSelection.d.ts +8 -0
  38. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/classificationSelection.d.ts.map +1 -1
  39. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/finalDeletes.d.ts +28 -0
  40. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/finalDeletes.d.ts.map +1 -0
  41. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/sapNrList.d.ts +28 -0
  42. package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/sapNrList.d.ts.map +1 -0
  43. package/build/types/backoffice/src/ui/AssortmentManager/ColliData/components/ColliTable/index.d.ts +3 -0
  44. package/build/types/backoffice/src/ui/AssortmentManager/ColliData/components/ColliTable/index.d.ts.map +1 -1
  45. package/build/types/backoffice/src/ui/AssortmentManager/ColliData/index.d.ts.map +1 -1
  46. package/build/types/backoffice/src/ui/AssortmentManager/HeaderData/components/Content/index.d.ts.map +1 -1
  47. package/build/types/backoffice/src/ui/AssortmentManager/HeaderData/index.d.ts.map +1 -1
  48. package/build/types/backoffice/src/ui/AssortmentManager/SupplierColors/index.d.ts +13 -0
  49. package/build/types/backoffice/src/ui/AssortmentManager/SupplierColors/index.d.ts.map +1 -0
  50. package/build/types/backoffice/src/ui/AssortmentManager/SupplierColors/logic/supplierColorsFile.d.ts +20 -0
  51. package/build/types/backoffice/src/ui/AssortmentManager/SupplierColors/logic/supplierColorsFile.d.ts.map +1 -0
  52. package/build/types/backoffice/src/ui/AssortmentManager/SupplierColors/logic/supplierColorsImport.d.ts +9 -0
  53. package/build/types/backoffice/src/ui/AssortmentManager/SupplierColors/logic/supplierColorsImport.d.ts.map +1 -0
  54. package/build/types/backoffice/src/ui/AssortmentManager/hooks/useApi2Sync.d.ts +12 -4
  55. package/build/types/backoffice/src/ui/AssortmentManager/hooks/useApi2Sync.d.ts.map +1 -1
  56. package/build/types/backoffice/src/ui/AssortmentManager/index.d.ts +1 -0
  57. package/build/types/backoffice/src/ui/AssortmentManager/index.d.ts.map +1 -1
  58. package/build/types/backoffice/src/ui/AssortmentManager/tests/finalDeletes.test.d.ts +2 -0
  59. package/build/types/backoffice/src/ui/AssortmentManager/tests/finalDeletes.test.d.ts.map +1 -0
  60. package/build/types/backoffice/src/ui/AssortmentManager/tests/sapNrList.test.d.ts +2 -0
  61. package/build/types/backoffice/src/ui/AssortmentManager/tests/sapNrList.test.d.ts.map +1 -0
  62. package/build/types/backoffice/src/ui/AssortmentManager/tests/supplierColors.test.d.ts +2 -0
  63. package/build/types/backoffice/src/ui/AssortmentManager/tests/supplierColors.test.d.ts.map +1 -0
  64. package/build/types/backoffice/src/ui/IDMCatalogEditor/Tables/OptionCombinations/OptionSetRefForm.d.ts.map +1 -1
  65. package/build/types/backoffice/src/ui/IDMCatalogEditor/Tables/PartlistPos.d.ts.map +1 -1
  66. package/package.json +12 -12
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,qBAAqB,CAAC;AAU7B,OAAO,EAAE,mBAAmB,EAA0C,MAAM,0BAA0B,CAAC;AACvG,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAoEhD,QAAA,MAAM,cAAc,EAAE,mBAAmB,CAAC,aAAa,CAGtD,CAAC;AACF,eAAe,cAAc,CAAC;AAE9B,uHAAuH;AACvH,eAAO,MAAM,cAAc,EAAE,mBAAmB,CAAC,aAAa,CAG7D,CAAC;AAEF,gIAAgI;AAChI,eAAO,MAAM,qBAAqB,EAAE,mBAAmB,CAAC,aAAa,CAGpE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,qBAAqB,CAAC;AAU7B,OAAO,EAAE,mBAAmB,EAA0C,MAAM,0BAA0B,CAAC;AACvG,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAsEhD,QAAA,MAAM,cAAc,EAAE,mBAAmB,CAAC,aAAa,CAGtD,CAAC;AACF,eAAe,cAAc,CAAC;AAE9B,uHAAuH;AACvH,eAAO,MAAM,cAAc,EAAE,mBAAmB,CAAC,aAAa,CAG7D,CAAC;AAEF,gIAAgI;AAChI,eAAO,MAAM,qBAAqB,EAAE,mBAAmB,CAAC,aAAa,CAGpE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Navigation.d.ts","sourceRoot":"","sources":["../../../../../../src/layout/ProductOnboarding/Navigation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;;;;AA0CxC,wBAAoC"}
1
+ {"version":3,"file":"Navigation.d.ts","sourceRoot":"","sources":["../../../../../../src/layout/ProductOnboarding/Navigation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;;;;AAqCxC,wBAAoC"}
@@ -1 +1 @@
1
- {"version":3,"file":"views.d.ts","sourceRoot":"","sources":["../../../../../../src/layout/ProductOnboarding/views.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAG/C,MAAM,WAAW,qBAAsB,SAAQ,QAAQ;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,SAAS,EAAE,aAAa,CAAC;CAC1B;AAED,mHAAmH;AACnH,eAAO,MAAM,wBAAwB,EAAE,qBAAqB,EA0B3D,CAAC"}
1
+ {"version":3,"file":"views.d.ts","sourceRoot":"","sources":["../../../../../../src/layout/ProductOnboarding/views.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAQ/C,MAAM,WAAW,qBAAsB,SAAQ,QAAQ;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,SAAS,EAAE,aAAa,CAAC;CAC1B;AAED,mHAAmH;AACnH,eAAO,MAAM,wBAAwB,EAAE,qBAAqB,EAkC3D,CAAC"}
@@ -21,6 +21,11 @@ export default class {
21
21
  * permission-filters it into `contentStore.resolvedMenu`; without it the backoffice menu is built.
22
22
  */
23
23
  readonly menu?: MenuItem[] | undefined;
24
+ /**
25
+ * Shows the host in light mode whatever the user's theme switch says (the Produkt Onboarding): the
26
+ * classification editor in its panel has no dark mode. The user's choice stays saved for the backoffice.
27
+ */
28
+ readonly lightModeOnly?: boolean | undefined;
24
29
  detailStore: DetailStore;
25
30
  modalStore: ModalStore;
26
31
  contentStore: ContentStore;
@@ -53,7 +58,12 @@ export default class {
53
58
  * Menu of a host that renders its own navigation and routes (the Data Engine). The store then only
54
59
  * permission-filters it into `contentStore.resolvedMenu`; without it the backoffice menu is built.
55
60
  */
56
- menu?: MenuItem[] | undefined);
61
+ menu?: MenuItem[] | undefined,
62
+ /**
63
+ * Shows the host in light mode whatever the user's theme switch says (the Produkt Onboarding): the
64
+ * classification editor in its panel has no dark mode. The user's choice stays saved for the backoffice.
65
+ */
66
+ lightModeOnly?: boolean | undefined);
57
67
  updateHandlers(handler: CoreHandlers): void;
58
68
  updateNavigationState(navigationState: {
59
69
  searchParams: URLSearchParams;
@@ -1 +1 @@
1
- {"version":3,"file":"RootStore.d.ts","sourceRoot":"","sources":["../../../../../src/store/RootStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAoB,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAK/B,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAC7C,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,MAAM,CAAC,OAAO;aA4BM,IAAI,EAAE,IAAI;aACV,QAAQ,EAAE,gBAAgB;IAE1C;;;OAGG;aACa,IAAI,CAAC,EAAE,QAAQ,EAAE;IAlC5B,WAAW,cAAC;IACZ,UAAU,aAAC;IACX,YAAY,eAAC;IACb,SAAS,YAAC;IACV,kBAAkB,qBAAC;IACnB,aAAa,gBAAC;IACd,YAAY,eAAC;IACb,uBAAuB,4EAAC;IACxB,YAAY,eAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAa;IACnD,eAAe,EAAE;QAAE,YAAY,EAAE,eAAe,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAExE;;;OAGG;IACH,OAAO,CAAC,kBAAkB,CAA8B;IAEjD,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAa;gBAGjD,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,YAAY,EACL,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,gBAAgB,EAC1C,eAAe,EAAE;QAAE,YAAY,EAAE,eAAe,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAChE;;;OAGG;IACa,IAAI,CAAC,EAAE,QAAQ,EAAE,YAAA;IAgBnC,cAAc,CAAC,OAAO,EAAE,YAAY;IAIpC,qBAAqB,CAAC,eAAe,EAAE;QAAE,YAAY,EAAE,eAAe,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAStF,mBAAmB,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAI5D,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IAI/C,QAAQ,CAAC,KAAK,EAAE,MAAM;IAItB,IAAI,CAAC,yEAEJ;IAED,qBAAqB,CAAC,kBAAkB,CAAC,EAAE,MAAM,IAAI;IAIrD,cAAc,CAAC,GAAG,EAAE,gBAAgB,GAAG,QAAQ,GAAG,WAAW,GAAG,wBAAwB,GAAG,MAAM;IAuBjG;;;;;OAKG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY;CAkBtD"}
1
+ {"version":3,"file":"RootStore.d.ts","sourceRoot":"","sources":["../../../../../src/store/RootStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAoB,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAK/B,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAC7C,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,MAAM,CAAC,OAAO;aA4BM,IAAI,EAAE,IAAI;aACV,QAAQ,EAAE,gBAAgB;IAE1C;;;OAGG;aACa,IAAI,CAAC,EAAE,QAAQ,EAAE;IACjC;;;OAGG;aACa,aAAa,CAAC,EAAE,OAAO;IAvClC,WAAW,cAAC;IACZ,UAAU,aAAC;IACX,YAAY,eAAC;IACb,SAAS,YAAC;IACV,kBAAkB,qBAAC;IACnB,aAAa,gBAAC;IACd,YAAY,eAAC;IACb,uBAAuB,4EAAC;IACxB,YAAY,eAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAa;IACnD,eAAe,EAAE;QAAE,YAAY,EAAE,eAAe,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAExE;;;OAGG;IACH,OAAO,CAAC,kBAAkB,CAA8B;IAEjD,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAa;gBAGjD,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,YAAY,EACL,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,gBAAgB,EAC1C,eAAe,EAAE;QAAE,YAAY,EAAE,eAAe,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAChE;;;OAGG;IACa,IAAI,CAAC,EAAE,QAAQ,EAAE,YAAA;IACjC;;;OAGG;IACa,aAAa,CAAC,EAAE,OAAO,YAAA;IAgBzC,cAAc,CAAC,OAAO,EAAE,YAAY;IAIpC,qBAAqB,CAAC,eAAe,EAAE;QAAE,YAAY,EAAE,eAAe,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAStF,mBAAmB,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAI5D,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IAI/C,QAAQ,CAAC,KAAK,EAAE,MAAM;IAItB,IAAI,CAAC,yEAEJ;IAED,qBAAqB,CAAC,kBAAkB,CAAC,EAAE,MAAM,IAAI;IAIrD,cAAc,CAAC,GAAG,EAAE,gBAAgB,GAAG,QAAQ,GAAG,WAAW,GAAG,wBAAwB,GAAG,MAAM;IAuBjG;;;;;OAKG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY;CAkBtD"}
@@ -3,10 +3,12 @@ import React from 'react';
3
3
  import { Configuration } from '../Configuration';
4
4
  import RootStore from './RootStore';
5
5
  import { MenuItem } from '../layout/Navigation/types';
6
- export declare const StoreProvider: ({ children, settings, isVisible, menu, }: ComponentProps<Configuration> & {
6
+ export declare const StoreProvider: ({ children, settings, isVisible, menu, lightModeOnly, }: ComponentProps<Configuration> & {
7
7
  children: React.ReactElement;
8
8
  /** See `RootStore.menu`: set by a host with its own navigation, absent for the backoffice. */
9
9
  menu?: MenuItem[];
10
+ /** See `RootStore.lightModeOnly`. */
11
+ lightModeOnly?: boolean;
10
12
  }) => React.JSX.Element;
11
13
  export declare const useStore: () => RootStore;
12
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/store/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA+B,MAAM,0BAA0B,CAAC;AACvF,OAAO,KAA6C,MAAM,OAAO,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAItD,eAAO,MAAM,aAAa,6CAKvB,cAAc,CAAC,aAAa,CAAC,GAAG;IACjC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7B,8FAA8F;IAC9F,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;CACnB,sBAiCA,CAAC;AAEF,eAAO,MAAM,QAAQ,iBAMpB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/store/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA+B,MAAM,0BAA0B,CAAC;AACvF,OAAO,KAA6C,MAAM,OAAO,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAItD,eAAO,MAAM,aAAa,4DAMvB,cAAc,CAAC,aAAa,CAAC,GAAG;IACjC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7B,8FAA8F;IAC9F,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClB,qCAAqC;IACrC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,sBAiCA,CAAC;AAEF,eAAO,MAAM,QAAQ,iBAMpB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import type { NotificationInstance } from 'antd/es/notification/interface';
2
3
  import { AssortmentManagerItemGroup } from '../../../types';
3
4
  interface ArticleSubTableProps {
4
5
  group: AssortmentManagerItemGroup;
@@ -16,6 +17,8 @@ interface ArticleSubTableProps {
16
17
  * blocks the main grid so a row switch cannot overtake the running save.
17
18
  */
18
19
  onSavingChange?: (groupKey: string, saving: boolean) => void;
20
+ /** The page's notifications — not for the warning on unmount, when the page may be gone already (see there). */
21
+ notify: Pick<NotificationInstance, 'warning' | 'error'>;
19
22
  }
20
23
  /**
21
24
  * One ITEM_GROUP of the selected article as an auto-saving tab: every completed change is flushed
@@ -25,6 +28,6 @@ interface ArticleSubTableProps {
25
28
  * `registerFlusher`; only a tab that goes away without that flush (e.g. leaving the page) drops a
26
29
  * still-scheduled change, warned about rather than saved.
27
30
  */
28
- declare function ArticleSubTable({ group, article, onSaved, registerFlusher, onSavingChange }: ArticleSubTableProps): React.JSX.Element;
31
+ declare function ArticleSubTable({ group, article, onSaved, registerFlusher, onSavingChange, notify }: ArticleSubTableProps): React.JSX.Element;
29
32
  export default ArticleSubTable;
30
33
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/ui/AssortmentManager/ArticleData/components/ArticleSubTable/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAO9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAW5D,UAAU,oBAAoB;IAC5B,KAAK,EAAE,0BAA0B,CAAC;IAClC,6HAA6H;IAC7H,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,0HAA0H;IAC1H,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAClD;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IACrF;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAC9D;AAED;;;;;;;GAOG;AACH,iBAAS,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,EAAE,oBAAoB,qBA6M1G;AAED,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/ui/AssortmentManager/ArticleData/components/ArticleSubTable/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAE9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAM3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAY5D,UAAU,oBAAoB;IAC5B,KAAK,EAAE,0BAA0B,CAAC;IAClC,6HAA6H;IAC7H,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,0HAA0H;IAC1H,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAClD;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IACrF;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7D,gHAAgH;IAChH,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC;CACzD;AAED;;;;;;;GAOG;AACH,iBAAS,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,oBAAoB,qBAgNlH;AAED,eAAe,eAAe,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import type { NotificationInstance } from 'antd/es/notification/interface';
2
3
  import { DivaColDef, DivaSpreadsheetHooks, SpreadsheetRefProps } from '@crystaldesign/spreadsheet';
3
4
  import { AssortmentManagerViewCondition } from '../../../types';
4
5
  import { HeaderProducts } from '../../logic/headerSync';
@@ -16,6 +17,8 @@ interface ArticleTableProps {
16
17
  onDivaNrPaste?: DivaColDef<Record<string, unknown>>['onPaste'];
17
18
  /** Takes Delete on the DIVA number column (the planning removal). Must keep its identity — a new one rebuilds the grid. */
18
19
  onDivaNrRemove?: (params: PlanningRemovalParams) => void;
20
+ /** The page's notifications — a failed load reports while the table still shows its spinner. */
21
+ notify: NotificationInstance;
19
22
  }
20
23
  /**
21
24
  * All articles of the organization as a server-side grid: the catalog service pages, sorts and
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/ui/AssortmentManager/ArticleData/components/ArticleTable/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAiB,UAAU,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGlH,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAUhE,OAAO,EAAE,cAAc,EAAwC,MAAM,wBAAwB,CAAC;AAC9F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAW1E,UAAU,iBAAiB;IACzB,4GAA4G;IAC5G,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,oBAAoB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD,4GAA4G;IAC5G,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,4GAA4G;IAC5G,cAAc,CAAC,EAAE,8BAA8B,EAAE,CAAC;IAClD,6HAA6H;IAC7H,aAAa,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/D,2HAA2H;IAC3H,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;CAC1D;AAED;;;;;;;;;GASG;AACH,QAAA,MAAM,YAAY,wHA2HhB,CAAC;AAEH,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/ui/AssortmentManager/ArticleData/components/ArticleTable/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAiB,UAAU,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGlH,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAUhE,OAAO,EAAE,cAAc,EAAwC,MAAM,wBAAwB,CAAC;AAE9F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAW1E,UAAU,iBAAiB;IACzB,4GAA4G;IAC5G,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,oBAAoB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD,4GAA4G;IAC5G,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,4GAA4G;IAC5G,cAAc,CAAC,EAAE,8BAA8B,EAAE,CAAC;IAClD,6HAA6H;IAC7H,aAAa,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/D,2HAA2H;IAC3H,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACzD,gGAAgG;IAChG,MAAM,EAAE,oBAAoB,CAAC;CAC9B;AAED;;;;;;;;;GASG;AACH,QAAA,MAAM,YAAY,wHA8HhB,CAAC;AAEH,eAAe,YAAY,CAAC"}
@@ -9,6 +9,8 @@ interface ClassificationGroupsProps {
9
9
  isClassified: (ids: string[]) => boolean;
10
10
  /** Opens the editor on one group's articles. */
11
11
  onClassify: (ids: string[]) => void;
12
+ /** Whether one of these articles lacks a required field (`logic/classificationRequiredFields.ts`) — such a group cannot start. */
13
+ isBlocked: (ids: string[]) => boolean;
12
14
  /** The template and target choice in front of each group's articles — see the panel's template takeover. */
13
15
  templateColumns?: TableColumnsType<ListedMarkedArticle>;
14
16
  /** The template takeover's bar with its start, below the hint. */
@@ -18,6 +20,6 @@ interface ClassificationGroupsProps {
18
20
  * The start screen's answer to a marking over several classes — what the editor's "Weitere Aktionen" dialog
19
21
  * shows, settled before the editor opens: per supplier the class groups, each classified on its own.
20
22
  */
21
- declare function ClassificationGroups({ groups, isClassified, onClassify, templateColumns, templateBar }: ClassificationGroupsProps): React.JSX.Element;
23
+ declare function ClassificationGroups({ groups, isClassified, onClassify, isBlocked, templateColumns, templateBar }: ClassificationGroupsProps): React.JSX.Element;
22
24
  export default ClassificationGroups;
23
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/ui/AssortmentManager/ArticleData/components/ClassificationPanel/ClassificationGroups/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAA2D,KAAK,gBAAgB,EAAE,MAAM,MAAM,CAAC;AAGtG,OAAO,EAAY,KAAK,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAEzF,OAAuB,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAGhF,UAAU,yBAAyB;IACjC,sFAAsF;IACtF,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,qGAAqG;IACrG,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC;IACzC,gDAAgD;IAChD,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpC,4GAA4G;IAC5G,eAAe,CAAC,EAAE,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;IACxD,kEAAkE;IAClE,WAAW,CAAC,EAAE,SAAS,CAAC;CACzB;AAED;;;GAGG;AACH,iBAAS,oBAAoB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,EAAE,yBAAyB,qBAwE1H;AAED,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/ui/AssortmentManager/ArticleData/components/ClassificationPanel/ClassificationGroups/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAyC,KAAK,gBAAgB,EAAE,MAAM,MAAM,CAAC;AAGpF,OAAO,EAAY,KAAK,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAEzF,OAAuB,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAIhF,UAAU,yBAAyB;IACjC,sFAAsF;IACtF,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,qGAAqG;IACrG,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC;IACzC,gDAAgD;IAChD,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpC,kIAAkI;IAClI,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC;IACtC,4GAA4G;IAC5G,eAAe,CAAC,EAAE,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;IACxD,kEAAkE;IAClE,WAAW,CAAC,EAAE,SAAS,CAAC;CACzB;AAED;;;GAGG;AACH,iBAAS,oBAAoB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,EAAE,yBAAyB,qBAoErI;AAED,eAAe,oBAAoB,CAAC"}
@@ -10,12 +10,14 @@ interface ClassificationReadyProps {
10
10
  /** All of these articles were already saved from this page. */
11
11
  classified: boolean;
12
12
  onStart: () => void;
13
+ /** An article lacks a required field (`logic/classificationRequiredFields.ts`) — the start stays disabled. */
14
+ startDisabled?: boolean;
13
15
  /** The template and target choice in front of the listed articles — see the panel's template takeover. */
14
16
  templateColumns?: TableColumnsType<ListedMarkedArticle>;
15
17
  /** The template takeover's bar with its start, above the list. */
16
18
  templateBar?: ReactNode;
17
19
  }
18
20
  /** The start screen for a marking that fits one class: which class, which articles, and the start. */
19
- declare function ClassificationReady({ className, articles, showSupplier, classified, onStart, templateColumns, templateBar }: ClassificationReadyProps): React.JSX.Element;
21
+ declare function ClassificationReady({ className, articles, showSupplier, classified, onStart, startDisabled, templateColumns, templateBar, }: ClassificationReadyProps): React.JSX.Element;
20
22
  export default ClassificationReady;
21
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/ui/AssortmentManager/ArticleData/components/ClassificationPanel/ClassificationReady/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAA2B,KAAK,gBAAgB,EAAE,MAAM,MAAM,CAAC;AAGtE,OAAuB,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAGhF,UAAU,wBAAwB;IAChC,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,uEAAuE;IACvE,YAAY,EAAE,OAAO,CAAC;IACtB,+DAA+D;IAC/D,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,0GAA0G;IAC1G,eAAe,CAAC,EAAE,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;IACxD,kEAAkE;IAClE,WAAW,CAAC,EAAE,SAAS,CAAC;CACzB;AAED,sGAAsG;AACtG,iBAAS,mBAAmB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,EAAE,wBAAwB,qBAgC9I;AAED,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/ui/AssortmentManager/ArticleData/components/ClassificationPanel/ClassificationReady/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAkC,KAAK,gBAAgB,EAAE,MAAM,MAAM,CAAC;AAG7E,OAAuB,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAIhF,UAAU,wBAAwB;IAChC,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,uEAAuE;IACvE,YAAY,EAAE,OAAO,CAAC;IACtB,+DAA+D;IAC/D,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,8GAA8G;IAC9G,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,0GAA0G;IAC1G,eAAe,CAAC,EAAE,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;IACxD,kEAAkE;IAClE,WAAW,CAAC,EAAE,SAAS,CAAC;CACzB;AAED,sGAAsG;AACtG,iBAAS,mBAAmB,CAAC,EAC3B,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,OAAO,EACP,aAAa,EACb,eAAe,EACf,WAAW,GACZ,EAAE,wBAAwB,qBAmC1B;AAED,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import { type ButtonProps } from 'antd';
3
+ import { type MarkedArticle } from '../../../logic/markedArticles';
4
+ interface CopyActionsProps {
5
+ /** The articles of the marking or of one class group. */
6
+ articles: MarkedArticle[];
7
+ size?: ButtonProps['size'];
8
+ }
9
+ /**
10
+ * The copy buttons of a class group, as in the product list's SAP number classification: its SAP numbers
11
+ * (comma-separated, `sapNrList`) and the link that opens the CLASSIFICATION module on its articles.
12
+ */
13
+ declare function CopyActions({ articles, size }: CopyActionsProps): React.JSX.Element;
14
+ export default CopyActions;
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/ui/AssortmentManager/ArticleData/components/ClassificationPanel/CopyActions/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAiC,KAAK,WAAW,EAAE,MAAM,MAAM,CAAC;AAGvE,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAI9E,UAAU,gBAAgB;IACxB,yDAAyD;IACzD,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC5B;AAED;;;GAGG;AACH,iBAAS,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,gBAAgB,qBAyCxD;AAED,eAAe,WAAW,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { ClassificationBlocker } from '../../../logic/classificationRequiredFields';
3
+ interface RequiredFieldsAlertProps {
4
+ blockers: ClassificationBlocker[];
5
+ }
6
+ /** Names the articles the classification is refused for and what each lacks — their starts stay disabled until it is filled in. */
7
+ declare function RequiredFieldsAlert({ blockers }: RequiredFieldsAlertProps): React.JSX.Element;
8
+ export default RequiredFieldsAlert;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/ui/AssortmentManager/ArticleData/components/ClassificationPanel/RequiredFieldsAlert/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAEzF,UAAU,wBAAwB;IAChC,QAAQ,EAAE,qBAAqB,EAAE,CAAC;CACnC;AAED,mIAAmI;AACnI,iBAAS,mBAAmB,CAAC,EAAE,QAAQ,EAAE,EAAE,wBAAwB,qBA0BlE;AAED,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ interface SapNrListInputProps {
3
+ /** While the user's allowed values load — the lookup is narrowed to them. */
4
+ disabled: boolean;
5
+ /** Looks the numbers up; resolves once the panel shows the outcome, rejects with the reason. */
6
+ onSubmit: (sapNrs: string[]) => Promise<void>;
7
+ }
8
+ /**
9
+ * The SAP number list on the empty start screen: a list of SAP numbers instead of a marking — the product list's SAP
10
+ * number classification. Once articles are found the start screen shows them instead; a list without any keeps its
11
+ * text here to be corrected.
12
+ */
13
+ declare function SapNrListInput({ disabled, onSubmit }: SapNrListInputProps): React.JSX.Element;
14
+ export default SapNrListInput;
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/ui/AssortmentManager/ArticleData/components/ClassificationPanel/SapNrListInput/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAQxC,UAAU,mBAAmB;IAC3B,6EAA6E;IAC7E,QAAQ,EAAE,OAAO,CAAC;IAClB,gGAAgG;IAChG,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C;AAED;;;;GAIG;AACH,iBAAS,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,mBAAmB,qBAgElE;AAED,eAAe,cAAc,CAAC"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ interface SapNrListResultProps {
3
+ /** How many SAP numbers the list held. */
4
+ count: number;
5
+ /** The numbers no article was found for. */
6
+ notFound: string[];
7
+ /** Drops the list — the start screen follows the marking again. */
8
+ onDiscard: () => void;
9
+ }
10
+ /** The outcome of a pasted SAP number list above the start screen: how many were found, which were not (to copy), and its discard. */
11
+ declare function SapNrListResult({ count, notFound, onDiscard }: SapNrListResultProps): React.JSX.Element;
12
+ export default SapNrListResult;
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/ui/AssortmentManager/ArticleData/components/ClassificationPanel/SapNrListResult/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,UAAU,oBAAoB;IAC5B,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,mEAAmE;IACnE,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,sIAAsI;AACtI,iBAAS,eAAe,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,oBAAoB,qBA4C5E;AAED,eAAe,eAAe,CAAC"}
@@ -0,0 +1,9 @@
1
+ import RootStore from '../../../../../store/RootStore';
2
+ import { type SapNrListMatch } from '../../logic/sapNrList';
3
+ /**
4
+ * The articles of a pasted SAP number list and the numbers without one — the product list's SAP number
5
+ * classification on the articles the article table shows the user (`logic/sapNrList.ts`). Read on the plain Mongo
6
+ * path: a just-sent article's SAP number is there before the Atlas Search index has it.
7
+ */
8
+ export declare function findSapNrList(root: RootStore, sapNrs: string[], allowedValues: Record<string, string[] | undefined>): Promise<SapNrListMatch>;
9
+ //# sourceMappingURL=findSapNrList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findSapNrList.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/ui/AssortmentManager/ArticleData/components/ClassificationPanel/findSapNrList.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gCAAgC,CAAC;AAEvD,OAAO,EAAmC,KAAK,cAAc,EAAqB,MAAM,uBAAuB,CAAC;AAKhH;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAKnJ"}
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import type { NotificationInstance } from 'antd/es/notification/interface';
2
3
  import type { BulkActionSelection } from '../BulkActions';
3
4
  /** Right toolbar tool id of the classification panel. */
4
5
  export declare const CLASSIFICATION_PANEL_TOOL_ID = "assortmentManager_classificationPanel";
@@ -12,6 +13,8 @@ interface ClassificationPanelProps {
12
13
  selection: BulkActionSelection;
13
14
  /** Called with the ids the editor saved — the caller re-reads those rows. */
14
15
  onSaved: (saved: string[]) => Promise<void>;
16
+ /** The page's notifications — a failed load of the allowed values reports through them. */
17
+ notify: NotificationInstance;
15
18
  }
16
19
  /**
17
20
  * The "Klassifikation" panel of the right toolbar: the marked articles in the classification editor
@@ -25,8 +28,13 @@ interface ClassificationPanelProps {
25
28
  * back at the start — the caller re-reads the saved rows, and the start screen checks the marking, which the
26
29
  * grid kept all along, for the next group. The editor's catalog comes from the CLASSIFICATION component's
27
30
  * registry settings — the same ones the portal hands that component when it opens it.
31
+ *
32
+ * Without a marking the start screen takes a pasted list of SAP numbers instead (the product list's SAP number
33
+ * classification, `logic/sapNrList.ts`): the numbers no article was found for are listed to copy, the found articles
34
+ * stand in for the marking until the list is discarded. Any start is refused while one of its articles lacks a legacy
35
+ * required field (`logic/classificationRequiredFields.ts`).
28
36
  */
29
- declare function ClassificationPanel({ selectedRows, selection, onSaved }: ClassificationPanelProps): React.JSX.Element;
37
+ declare function ClassificationPanel({ selectedRows, selection, onSaved, notify }: ClassificationPanelProps): React.JSX.Element;
30
38
  declare const _default: typeof ClassificationPanel & {
31
39
  displayName: string;
32
40
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/ui/AssortmentManager/ArticleData/components/ClassificationPanel/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4E,MAAM,OAAO,CAAC;AAYjG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAM1D,yDAAyD;AACzD,eAAO,MAAM,4BAA4B,0CAA0C,CAAC;AAwBpF,UAAU,wBAAwB;IAChC,sEAAsE;IACtE,YAAY,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC9C;;;OAGG;IACH,SAAS,EAAE,mBAAmB,CAAC;IAC/B,6EAA6E;IAC7E,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAED;;;;;;;;;;;;GAYG;AACH,iBAAS,mBAAmB,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,wBAAwB,qBA2a1F;;;;AAED,wBAA6C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/ui/AssortmentManager/ArticleData/components/ClassificationPanel/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4E,MAAM,OAAO,CAAC;AAEjG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAc3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAU1D,yDAAyD;AACzD,eAAO,MAAM,4BAA4B,0CAA0C,CAAC;AAwBpF,UAAU,wBAAwB;IAChC,sEAAsE;IACtE,YAAY,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC9C;;;OAGG;IACH,SAAS,EAAE,mBAAmB,CAAC;IAC/B,6EAA6E;IAC7E,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,2FAA2F;IAC3F,MAAM,EAAE,oBAAoB,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,iBAAS,mBAAmB,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,wBAAwB,qBAqelG;;;;AAED,wBAA6C"}
@@ -1,3 +1,4 @@
1
+ import type { NotificationInstance } from 'antd/es/notification/interface';
1
2
  import RootStore from '../../../../store/RootStore';
2
3
  /**
3
4
  * The per-user allowed values of every restricted catalogue field (`allowedValues`), keyed by field
@@ -5,7 +6,7 @@ import RootStore from '../../../../store/RootStore';
5
6
  * field whose value is undefined after the load is unrestricted (the backend applies no restriction
6
7
  * to this user, e.g. no personal number) — no filter, full dropdown. A field whose load errs (e.g.
7
8
  * SAP unreachable) fails closed to an empty list — the article grid then shows nothing — and
8
- * surfaces a toast.
9
+ * surfaces a notification through `notify`.
9
10
  */
10
- export default function useAllowedFieldValues(root: RootStore): Record<string, string[] | undefined> | undefined;
11
+ export default function useAllowedFieldValues(root: RootStore, notify: NotificationInstance): Record<string, string[] | undefined> | undefined;
11
12
  //# sourceMappingURL=useAllowedFieldValues.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAllowedFieldValues.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/AssortmentManager/ArticleData/hooks/useAllowedFieldValues.ts"],"names":[],"mappings":"AAGA,OAAO,SAAS,MAAM,6BAA6B,CAAC;AA4CpD;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,SAAS,CA4B/G"}
1
+ {"version":3,"file":"useAllowedFieldValues.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/AssortmentManager/ArticleData/hooks/useAllowedFieldValues.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,OAAO,SAAS,MAAM,6BAA6B,CAAC;AA4CpD;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,SAAS,CA4B7I"}
@@ -1,3 +1,4 @@
1
+ import type { NotificationInstance } from 'antd/es/notification/interface';
1
2
  import RootStore from '../../../../store/RootStore';
2
3
  import { HeaderProducts } from '../logic/headerSync';
3
4
  export interface HeaderProductsState {
@@ -8,8 +9,8 @@ export interface HeaderProductsState {
8
9
  /**
9
10
  * The header rows the article table compares the articles against (`isHeaderOutdated`, `hasUnlinkedHeader`).
10
11
  * Loaded once per mount — the grid waits for it, because ag-grid does not re-evaluate row classes when a
11
- * value outside the row data changes. A failed load degrades to "nothing marked" with a warning toast; the
12
- * articles themselves stay fully usable.
12
+ * value outside the row data changes. A failed load degrades to "nothing marked" with a warning notification
13
+ * (`notify`, the page's); the articles themselves stay fully usable.
13
14
  */
14
- export default function useHeaderProducts(root: RootStore): HeaderProductsState;
15
+ export default function useHeaderProducts(root: RootStore, notify: NotificationInstance): HeaderProductsState;
15
16
  //# sourceMappingURL=useHeaderProducts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useHeaderProducts.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/AssortmentManager/ArticleData/hooks/useHeaderProducts.ts"],"names":[],"mappings":"AAGA,OAAO,SAAS,MAAM,6BAA6B,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAuB,MAAM,qBAAqB,CAAC;AA0B1E,MAAM,WAAW,mBAAmB;IAClC,oHAAoH;IACpH,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;CAClB;AA+CD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,IAAI,EAAE,SAAS,GAAG,mBAAmB,CA0B9E"}
1
+ {"version":3,"file":"useHeaderProducts.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/AssortmentManager/ArticleData/hooks/useHeaderProducts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,OAAO,SAAS,MAAM,6BAA6B,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAuB,MAAM,qBAAqB,CAAC;AA0B1E,MAAM,WAAW,mBAAmB;IAClC,oHAAoH;IACpH,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;CAClB;AA+CD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,oBAAoB,GAAG,mBAAmB,CA6B5G"}
@@ -1 +1 @@
1
- {"version":3,"file":"usePlanningTransfer.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/AssortmentManager/ArticleData/hooks/usePlanningTransfer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAE3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE,OAAO,SAAS,MAAM,6BAA6B,CAAC;AAEpD,OAAO,EAOL,KAAK,qBAAqB,EAC3B,MAAM,2BAA2B,CAAC;AASnC,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAkB1C;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC;;IAmIxG;;;;;;OAMG;+BAEc,qBAAqB;6CA8CP,eAAe,CAAC,UAAU,CAAC;EA+E7D"}
1
+ {"version":3,"file":"usePlanningTransfer.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/AssortmentManager/ArticleData/hooks/usePlanningTransfer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAE3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE,OAAO,SAAS,MAAM,6BAA6B,CAAC;AAEpD,OAAO,EAOL,KAAK,qBAAqB,EAC3B,MAAM,2BAA2B,CAAC;AASnC,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAkB1C;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC;;IAmIxG;;;;;;OAMG;+BAEc,qBAAqB;6CA8CP,eAAe,CAAC,UAAU,CAAC;EAiF7D"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/AssortmentManager/ArticleData/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AA6DtE;;;;;;;;GAQG;AACH,iBAAS,WAAW,sBAypBnB;;;;AAED,wBAAqC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/AssortmentManager/ArticleData/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AA6DtE;;;;;;;;GAQG;AACH,iBAAS,WAAW,sBAysBnB;;;;AAED,wBAAqC"}
@@ -0,0 +1,14 @@
1
+ import type { MarkedArticle } from './markedArticles';
2
+ /** A legacy required field of the classification. */
3
+ export type ClassificationRequiredField = 'supplierArticleNr' | 'shortText';
4
+ /** An article the classification is refused for, with the required fields it lacks. */
5
+ export interface ClassificationBlocker {
6
+ article: MarkedArticle;
7
+ missing: ClassificationRequiredField[];
8
+ }
9
+ /**
10
+ * The articles that may not be classified yet — the legacy assortment manager's check before its classification tool
11
+ * opened: every article needs its supplier article number (`SAP_EINA_IDNLF`) and its German short text (`SAP_MAKT`).
12
+ */
13
+ export declare function classificationBlockers(articles: MarkedArticle[]): ClassificationBlocker[];
14
+ //# sourceMappingURL=classificationRequiredFields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classificationRequiredFields.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/AssortmentManager/ArticleData/logic/classificationRequiredFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,qDAAqD;AACrD,MAAM,MAAM,2BAA2B,GAAG,mBAAmB,GAAG,WAAW,CAAC;AAE5E,uFAAuF;AACvF,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,2BAA2B,EAAE,CAAC;CACxC;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,qBAAqB,EAAE,CAOzF"}
@@ -12,4 +12,12 @@ export interface ClassificationTarget {
12
12
  * A row without an id (none in practice — the grid's selection reader skips them) is left out.
13
13
  */
14
14
  export declare function classificationTarget(rows: Record<string, unknown>[]): ClassificationTarget;
15
+ /**
16
+ * The link that opens the portal's CLASSIFICATION module on these articles — the product list's "copy URL": the
17
+ * current page's query parameters kept, the ids `;`-joined as its `id` parameter.
18
+ */
19
+ export declare function classificationLink(location: {
20
+ origin: string;
21
+ search: string;
22
+ }, ids: string[]): string;
15
23
  //# sourceMappingURL=classificationSelection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"classificationSelection.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/AssortmentManager/ArticleData/logic/classificationSelection.ts"],"names":[],"mappings":"AAAA,mHAAmH;AACnH,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C,MAAM,WAAW,oBAAoB;IACnC,+CAA+C;IAC/C,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,8DAA8D;IAC9D,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,oBAAoB,CAG1F"}
1
+ {"version":3,"file":"classificationSelection.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/AssortmentManager/ArticleData/logic/classificationSelection.ts"],"names":[],"mappings":"AAAA,mHAAmH;AACnH,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C,MAAM,WAAW,oBAAoB;IACnC,+CAA+C;IAC/C,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,8DAA8D;IAC9D,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,oBAAoB,CAG1F;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,CAKtG"}
@@ -0,0 +1,28 @@
1
+ /** An entry of a bulk answer's error lists, naming the row by its position in the request list. */
2
+ interface BulkErrorEntry {
3
+ index?: number;
4
+ resolved?: boolean;
5
+ }
6
+ /** The parts of the catalog's bulk answer (`POST /v1/products/bulk`) read and written here; the rest passes through. */
7
+ interface BulkAnswer {
8
+ errors?: {
9
+ remove?: BulkErrorEntry[];
10
+ [list: string]: unknown;
11
+ };
12
+ }
13
+ /** The bulk request the answer belongs to: lists of rows per operation, the deletes as their ids. */
14
+ interface BulkRequest {
15
+ remove?: unknown[];
16
+ [list: string]: unknown;
17
+ }
18
+ /**
19
+ * Makes the deletes of a bulk answer final for the grid (its `reviewBulkResponse`): every delete the catalog confirmed
20
+ * gets a `resolved` entry — the grid's word for "saved, but not undoable" — so the grid books the row as deleted, drops
21
+ * its whole undo history (an undo of an older edit of the row would restore it as well) and announces the delete
22
+ * without the revert button. A delete cannot be undone here: the legacy SM removes the article with it and API2
23
+ * archives the catalog product on top (`../hooks/useApi2Sync`), a restored article would come back archived. Refused
24
+ * deletes keep their error.
25
+ */
26
+ export declare function withFinalDeletes<T extends BulkAnswer>(response: T, request: BulkRequest): T;
27
+ export {};
28
+ //# sourceMappingURL=finalDeletes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finalDeletes.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/AssortmentManager/ArticleData/logic/finalDeletes.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,UAAU,cAAc;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wHAAwH;AACxH,UAAU,UAAU;IAClB,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;QAAC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;CACjE;AAED,qGAAqG;AACrG,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;IACnB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,GAAG,CAAC,CAQ3F"}
@@ -0,0 +1,28 @@
1
+ /** An article found for a pasted SAP number — what the lookup projects to. */
2
+ export interface SapNrProduct {
3
+ _id: unknown;
4
+ retailerArticleNr?: unknown;
5
+ }
6
+ /** The outcome of a pasted SAP number list: the articles to classify, and the numbers no article has. */
7
+ export interface SapNrListMatch {
8
+ /** The found articles' ids, in the order of the list. */
9
+ ids: string[];
10
+ /** The numbers of the list without an article, in the order of the list. */
11
+ notFound: string[];
12
+ }
13
+ /**
14
+ * The distinct SAP numbers of a pasted list. Anything between them separates: line breaks (an Excel column), tabs
15
+ * (an Excel row), `;` (the article search's separator), `,` and spaces.
16
+ */
17
+ export declare function parseSapNrList(input: string): string[];
18
+ /**
19
+ * The query grammar filter for the articles of a SAP number list: exactly by `retailerArticleNr` — the SAP number the
20
+ * catalog mirrors from `SAP_MARA_MATNR`, as the product list's SAP number classification matches — among the articles
21
+ * the article table shows the user: the organization's SM articles (supplier and EK group set), not archived, no
22
+ * header rows, not deleted, within the user's allowed values. Returns undefined when nothing can match: no number
23
+ * fits the grammar, or a restricted field allows no value at all (the table shows nothing then either).
24
+ */
25
+ export declare function sapNrListFilter(organizationId: string, sapNrs: string[], allowedValues: Record<string, string[] | undefined>): string | undefined;
26
+ /** Pairs the list with the articles found for it: every article of a number (a number may have several), else the number as unfound. */
27
+ export declare function matchSapNrList(sapNrs: string[], products: SapNrProduct[]): SapNrListMatch;
28
+ //# sourceMappingURL=sapNrList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sapNrList.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/AssortmentManager/ArticleData/logic/sapNrList.ts"],"names":[],"mappings":"AAGA,8EAA8E;AAC9E,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,OAAO,CAAC;IACb,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,yGAAyG;AACzG,MAAM,WAAW,cAAc;IAC7B,yDAAyD;IACzD,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAEtD;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,MAAM,GAAG,SAAS,CAsBjJ;AAED,wIAAwI;AACxI,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,cAAc,CASzF"}
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import type { NotificationInstance } from 'antd/es/notification/interface';
2
3
  import { DivaSpreadsheetHooks, SpreadsheetRefProps } from '@crystaldesign/spreadsheet';
3
4
  import { AssortmentManagerViewCondition } from '../../../types';
4
5
  interface ColliTableProps {
@@ -8,6 +9,8 @@ interface ColliTableProps {
8
9
  hooks?: DivaSpreadsheetHooks<Record<string, unknown>>;
9
10
  /** The conditions of the active predefined views — joined into the pre filter. */
10
11
  viewConditions?: AssortmentManagerViewCondition[];
12
+ /** The page's notifications — a failed load reports while the table still shows its spinner. */
13
+ notify: NotificationInstance;
11
14
  }
12
15
  /**
13
16
  * The articles of the Kollidaten page as a server-side grid: the same articles and saves as the article table
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/ui/AssortmentManager/ColliData/components/ColliTable/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAEhE,OAAO,EAAiB,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGtG,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAchE,UAAU,eAAe;IACvB,6GAA6G;IAC7G,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,KAAK,CAAC,EAAE,oBAAoB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD,kFAAkF;IAClF,cAAc,CAAC,EAAE,8BAA8B,EAAE,CAAC;CACnD;AAED;;;;;;GAMG;AACH,QAAA,MAAM,UAAU,sHAyEd,CAAC;AAEH,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/ui/AssortmentManager/ColliData/components/ColliTable/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAEhE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAiB,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGtG,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAchE,UAAU,eAAe;IACvB,6GAA6G;IAC7G,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,KAAK,CAAC,EAAE,oBAAoB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD,kFAAkF;IAClF,cAAc,CAAC,EAAE,8BAA8B,EAAE,CAAC;IAClD,gGAAgG;IAChG,MAAM,EAAE,oBAAoB,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,QAAA,MAAM,UAAU,sHAyEd,CAAC;AAEH,eAAe,UAAU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/AssortmentManager/ColliData/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAiBtE;;;;;;GAMG;AACH,iBAAS,SAAS,sBAkFjB;;;;AAED,wBAAmC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/AssortmentManager/ColliData/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAkBtE;;;;;;GAMG;AACH,iBAAS,SAAS,sBAoFjB;;;;AAED,wBAAmC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/ui/AssortmentManager/HeaderData/components/Content/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAUnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAGxE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAgDhD,UAAU,YAAY;IACpB,4EAA4E;IAC5E,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,gGAAgG;IAChG,QAAQ,EAAE,qBAAqB,CAAC;IAChC,4GAA4G;IAC5G,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB;;;;OAIG;IACH,aAAa,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAChD,uGAAuG;IACvG,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACxD;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,sGAAsG;IACtG,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IACzC,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED;;;;;GAKG;AACH,iBAAS,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,YAAY,qBA2MnI;AAED,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/ui/AssortmentManager/HeaderData/components/Content/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAUnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAGxE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAiDhD,UAAU,YAAY;IACpB,4EAA4E;IAC5E,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,gGAAgG;IAChG,QAAQ,EAAE,qBAAqB,CAAC;IAChC,4GAA4G;IAC5G,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB;;;;OAIG;IACH,aAAa,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAChD,uGAAuG;IACvG,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACxD;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,sGAAsG;IACtG,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IACzC,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED;;;;;GAKG;AACH,iBAAS,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,YAAY,qBA6MnI;AAED,eAAe,OAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/AssortmentManager/HeaderData/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AA0CjF,iBAAS,UAAU,sBAyXlB;;;;AAED,wBAAoC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/AssortmentManager/HeaderData/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AA2CjF,iBAAS,UAAU,sBA2XlB;;;;AAED,wBAAoC"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ /**
3
+ * The Lieferantenfarben page of the assortment manager: imports a supplier's colors file (XML) through the legacy
4
+ * API2 import (`logic/supplierColorsImport.ts`). Choose the supplier, add the file, start — the file is checked first
5
+ * (`logic/supplierColorsFile.ts`), since API2 replaces all colors of the supplier with the file's. The import runs in
6
+ * the background and mails its outcome; the page only reports the start. No EKG: API2 keeps the colors per supplier.
7
+ */
8
+ declare function SupplierColors(): React.JSX.Element;
9
+ declare const _default: typeof SupplierColors & {
10
+ displayName: string;
11
+ };
12
+ export default _default;
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/AssortmentManager/SupplierColors/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAWxC;;;;;GAKG;AACH,iBAAS,cAAc,sBA8HtB;;;;AAED,wBAAwC"}
@@ -0,0 +1,20 @@
1
+ /** What keeps a supplier colors file from being imported. */
2
+ export type SupplierColorsFileIssue = {
3
+ reason: 'invalidXml';
4
+ } | {
5
+ reason: 'noColors';
6
+ }
7
+ /** The `SupplierNumber`s of the file that differ from the chosen supplier — a missing one as the empty string. */
8
+ | {
9
+ reason: 'otherSupplier';
10
+ supplierNumbers: string[];
11
+ };
12
+ /**
13
+ * Checks a supplier colors file before it goes to API2. `importsuppliercolors` deletes every color of the supplier and
14
+ * inserts the file's `<COLOR>` elements, so a file it reads as empty — no `<COLOR>`, or all of them in a namespace
15
+ * (the XSD declares `targetNamespace="SupplierColors"`) — would wipe the supplier's colors. The file is read the way
16
+ * API2 reads it: `<COLOR>` elements without namespace, their `SupplierNumber` a direct child without namespace,
17
+ * compared verbatim (`00554` is not `554`). Returns undefined for a file that may be imported.
18
+ */
19
+ export declare function checkSupplierColorsFile(xml: string, supplierNr: string): SupplierColorsFileIssue | undefined;
20
+ //# sourceMappingURL=supplierColorsFile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supplierColorsFile.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/AssortmentManager/SupplierColors/logic/supplierColorsFile.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,MAAM,MAAM,uBAAuB,GAC/B;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,GACxB;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE;AACxB,kHAAkH;GAChH;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,eAAe,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAE3D;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS,CAc5G"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Starts the legacy supplier colors import of API2 — the endpoint the legacy SM's "Lieferantenfarben importieren" used,
3
+ * on the EK server, where the classification reads the colors (`getjsonsuppliercolors`). `function=upload` stores the
4
+ * file in the session's inbox under its name, `function=importsuppliercolors` imports it from there in the background:
5
+ * it replaces all colors of the supplier with the file's and renames them in the classification of the supplier's
6
+ * articles. The outcome is mailed to the session's user; this only reports whether the import started.
7
+ */
8
+ export declare function startSupplierColorsImport(api2Url: string, sessionGuid: string, file: File, supplierNr: string): Promise<void>;
9
+ //# sourceMappingURL=supplierColorsImport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supplierColorsImport.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/AssortmentManager/SupplierColors/logic/supplierColorsImport.ts"],"names":[],"mappings":"AAaA;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAUnI"}