@crystaldesign/diva-backoffice 26.13.0-beta.13 → 26.13.0-beta.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/esm/index.js +2779 -1458
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ArticleStatusCell/index.d.ts +11 -3
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ArticleStatusCell/index.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ArticleTable/index.d.ts +6 -5
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ArticleTable/index.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ClassificationPanel/ClassificationGroups/index.d.ts +8 -2
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ClassificationPanel/ClassificationGroups/index.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ClassificationPanel/ClassificationReady/index.d.ts +7 -2
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ClassificationPanel/ClassificationReady/index.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/ClassificationPanel/index.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/DivaNrCell/index.d.ts +11 -3
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/DivaNrCell/index.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/MarkedArticles/index.d.ts +4 -1
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/MarkedArticles/index.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/MissingRequiredFields/index.d.ts +13 -0
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/MissingRequiredFields/index.d.ts.map +1 -0
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/StatusLegend/index.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/hooks/findSupplierArticleDuplicate.d.ts +16 -0
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/hooks/findSupplierArticleDuplicate.d.ts.map +1 -0
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/hooks/planningTransferApi.d.ts +5 -0
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/hooks/planningTransferApi.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/hooks/usePlanningTransfer.d.ts +12 -2
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/hooks/usePlanningTransfer.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/hooks/useUpdateFromSap.d.ts +16 -0
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/hooks/useUpdateFromSap.d.ts.map +1 -0
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/index.d.ts +3 -3
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/index.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/articleColumns.d.ts +31 -7
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/articleColumns.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/articleLock.d.ts +2 -1
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/articleLock.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/classificationTemplate.d.ts +16 -0
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/classificationTemplate.d.ts.map +1 -0
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/duplicateArticle.d.ts +9 -1
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/duplicateArticle.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/headerSync.d.ts +4 -0
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/headerSync.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/planningTransfer.d.ts +35 -0
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/planningTransfer.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/readiness.d.ts +7 -0
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/readiness.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/recommendedFields.d.ts +9 -0
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/recommendedFields.d.ts.map +1 -0
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/requiredFieldJump.d.ts +19 -0
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/requiredFieldJump.d.ts.map +1 -0
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/supplierArticleDuplicate.d.ts +19 -0
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/supplierArticleDuplicate.d.ts.map +1 -0
- package/build/types/backoffice/src/ui/AssortmentManager/config/colliFields.d.ts +4 -3
- package/build/types/backoffice/src/ui/AssortmentManager/config/colliFields.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/AssortmentManager/config/fields.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/AssortmentManager/tests/classificationTemplate.test.d.ts +2 -0
- package/build/types/backoffice/src/ui/AssortmentManager/tests/classificationTemplate.test.d.ts.map +1 -0
- package/build/types/backoffice/src/ui/AssortmentManager/tests/recommendedFields.test.d.ts +2 -0
- package/build/types/backoffice/src/ui/AssortmentManager/tests/recommendedFields.test.d.ts.map +1 -0
- package/build/types/backoffice/src/ui/AssortmentManager/tests/requiredFieldJump.test.d.ts +2 -0
- package/build/types/backoffice/src/ui/AssortmentManager/tests/requiredFieldJump.test.d.ts.map +1 -0
- package/build/types/backoffice/src/ui/AssortmentManager/tests/supplierArticleDuplicate.test.d.ts +2 -0
- package/build/types/backoffice/src/ui/AssortmentManager/tests/supplierArticleDuplicate.test.d.ts.map +1 -0
- package/build/types/backoffice/src/ui/AssortmentManager/types.d.ts +42 -1
- package/build/types/backoffice/src/ui/AssortmentManager/types.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/IDMCatalogEditor/Tables/ArticleRelations/additionalItemsCodec.d.ts +2 -2
- package/build/types/backoffice/src/ui/IDMCatalogEditor/Tables/ArticleRelations/additionalItemsCodec.d.ts.map +1 -1
- package/package.json +12 -12
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { HeaderRefreshState } from '../../logic/headerSync';
|
|
2
3
|
import { ArticleReadiness } from '../../logic/readiness';
|
|
4
|
+
import type { GridApi, IRowNode } from 'ag-grid-enterprise';
|
|
3
5
|
type ArticleRow = Record<string, unknown>;
|
|
4
6
|
interface ArticleStatusCellProps {
|
|
5
7
|
data?: ArticleRow;
|
|
6
|
-
/**
|
|
8
|
+
/** The grid and the row — the missing required fields of the tooltip jump to their cells. */
|
|
9
|
+
api?: GridApi<ArticleRow>;
|
|
10
|
+
node?: IRowNode<ArticleRow>;
|
|
11
|
+
/** `readinessOf` and `headerStateOf` arrive through the column's `customParams`, see `articleStatusColumn`. */
|
|
7
12
|
colDef?: {
|
|
8
13
|
cellRendererParams?: {
|
|
9
14
|
readinessOf?: (row: ArticleRow) => ArticleReadiness;
|
|
15
|
+
headerStateOf?: (row: ArticleRow) => HeaderRefreshState | undefined;
|
|
10
16
|
};
|
|
11
17
|
};
|
|
12
18
|
}
|
|
@@ -17,8 +23,10 @@ interface ArticleStatusCellProps {
|
|
|
17
23
|
* check — done, the tooltip names the day ("Übertragen am 22.05.2026"). Otherwise, for an article not yet transferred, its readiness for the transfer
|
|
18
24
|
* (`readinessOf`): an outlined check when it passes the catalogue checks and the configured rules, a
|
|
19
25
|
* cross with the reasons as tooltip when not. An article a run is working on shows nothing here — the
|
|
20
|
-
* number cell carries the spinner.
|
|
26
|
+
* number cell carries the spinner. An article whose header values can be refreshed (`headerStateOf`, see
|
|
27
|
+
* headerSync.ts) — marked by the yellow stripe at the row's left edge, which can carry no tooltip itself — gets the
|
|
28
|
+
* reason and the way appended to the symbol's tooltip.
|
|
21
29
|
*/
|
|
22
|
-
export default function ArticleStatusCell({ data, colDef }: ArticleStatusCellProps): React.JSX.Element | null;
|
|
30
|
+
export default function ArticleStatusCell({ data, colDef, api, node }: ArticleStatusCellProps): React.JSX.Element | null;
|
|
23
31
|
export {};
|
|
24
32
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/ui/AssortmentManager/ArticleData/components/ArticleStatusCell/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/ui/AssortmentManager/ArticleData/components/ArticleStatusCell/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAuC,MAAM,uBAAuB,CAAC;AAE9F,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE5D,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1C,UAAU,sBAAsB;IAC9B,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,6FAA6F;IAC7F,GAAG,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1B,IAAI,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC5B,+GAA+G;IAC/G,MAAM,CAAC,EAAE;QACP,kBAAkB,CAAC,EAAE;YACnB,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,gBAAgB,CAAC;YACpD,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,kBAAkB,GAAG,SAAS,CAAC;SACrE,CAAC;KACH,CAAC;CACH;AAKD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,sBAAsB,4BAsG5F"}
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { DivaColDef, DivaSpreadsheetHooks, SpreadsheetRefProps } from '@crystaldesign/spreadsheet';
|
|
3
3
|
import { AssortmentManagerViewCondition } from '../../../types';
|
|
4
4
|
import { HeaderProducts } from '../../logic/headerSync';
|
|
5
|
+
import type { PlanningRemovalParams } from '../../logic/planningTransfer';
|
|
5
6
|
interface ArticleTableProps {
|
|
6
7
|
/** Free text of the page's search input — each `;`-separated term is ORed over the legacy search fields. */
|
|
7
8
|
searchTerm?: string;
|
|
8
9
|
/** Page-level hooks, e.g. the selection that drives the subtable tabs. */
|
|
9
10
|
hooks?: DivaSpreadsheetHooks<Record<string, unknown>>;
|
|
10
|
-
/** The page's row buttons (actions column), e.g. the header refresh. */
|
|
11
|
-
rowActions?: DivaActionDef<Record<string, unknown>, DivaContext>[];
|
|
12
11
|
/** The organization's header rows for the refresh marker; the grid waits for them (undefined = loading). */
|
|
13
12
|
headers?: HeaderProducts;
|
|
14
13
|
/** The conditions of the active predefined views (`logic/articleViews.ts`) — joined into the pre filter. */
|
|
15
14
|
viewConditions?: AssortmentManagerViewCondition[];
|
|
16
15
|
/** Takes a paste on the DIVA number column (the planning transfer). Must keep its identity — a new one rebuilds the grid. */
|
|
17
16
|
onDivaNrPaste?: DivaColDef<Record<string, unknown>>['onPaste'];
|
|
17
|
+
/** Takes Delete on the DIVA number column (the planning removal). Must keep its identity — a new one rebuilds the grid. */
|
|
18
|
+
onDivaNrRemove?: (params: PlanningRemovalParams) => void;
|
|
18
19
|
}
|
|
19
20
|
/**
|
|
20
21
|
* All articles of the organization as a server-side grid: the catalog service pages, sorts and
|
|
@@ -23,8 +24,8 @@ interface ArticleTableProps {
|
|
|
23
24
|
* The supplier / EK group context is per row: the two leading columns name it; keeping the header
|
|
24
25
|
* inheritance (`headerValues`) linked to those values is a server concern. A header save changes no
|
|
25
26
|
* article — rows whose header snapshot differs from the header row, or that are not linked to the
|
|
26
|
-
* header row of their context yet,
|
|
27
|
-
* header values
|
|
27
|
+
* header row of their context yet, carry a yellow stripe at the very front of the row, and the page's toolbar
|
|
28
|
+
* action pulls the current header values into the marked ones.
|
|
28
29
|
*/
|
|
29
30
|
declare const ArticleTable: React.ForwardRefExoticComponent<ArticleTableProps & React.RefAttributes<SpreadsheetRefProps<Record<string, unknown>>>>;
|
|
30
31
|
export default ArticleTable;
|
|
@@ -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,
|
|
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,5 +1,7 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { type ReactNode } from 'react';
|
|
2
|
+
import { type TableColumnsType } from 'antd';
|
|
2
3
|
import { type ClassificationGroup } from '../../../logic/classificationGroups';
|
|
4
|
+
import { type ListedMarkedArticle } from '../../MarkedArticles';
|
|
3
5
|
interface ClassificationGroupsProps {
|
|
4
6
|
/** The class groups of a marking that spans several classes, supplier by supplier. */
|
|
5
7
|
groups: ClassificationGroup[];
|
|
@@ -7,11 +9,15 @@ interface ClassificationGroupsProps {
|
|
|
7
9
|
isClassified: (ids: string[]) => boolean;
|
|
8
10
|
/** Opens the editor on one group's articles. */
|
|
9
11
|
onClassify: (ids: string[]) => void;
|
|
12
|
+
/** The template and target choice in front of each group's articles — see the panel's template takeover. */
|
|
13
|
+
templateColumns?: TableColumnsType<ListedMarkedArticle>;
|
|
14
|
+
/** The template takeover's bar with its start, below the hint. */
|
|
15
|
+
templateBar?: ReactNode;
|
|
10
16
|
}
|
|
11
17
|
/**
|
|
12
18
|
* The start screen's answer to a marking over several classes — what the editor's "Weitere Aktionen" dialog
|
|
13
19
|
* shows, settled before the editor opens: per supplier the class groups, each classified on its own.
|
|
14
20
|
*/
|
|
15
|
-
declare function ClassificationGroups({ groups, isClassified, onClassify }: ClassificationGroupsProps): React.JSX.Element;
|
|
21
|
+
declare function ClassificationGroups({ groups, isClassified, onClassify, templateColumns, templateBar }: ClassificationGroupsProps): React.JSX.Element;
|
|
16
22
|
export default ClassificationGroups;
|
|
17
23
|
//# 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,MAAM,OAAO,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,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,4 +1,5 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { type ReactNode } from 'react';
|
|
2
|
+
import { type TableColumnsType } from 'antd';
|
|
2
3
|
import { type ListedMarkedArticle } from '../../MarkedArticles';
|
|
3
4
|
interface ClassificationReadyProps {
|
|
4
5
|
/** The class the marked articles share, already worded for display. */
|
|
@@ -9,8 +10,12 @@ interface ClassificationReadyProps {
|
|
|
9
10
|
/** All of these articles were already saved from this page. */
|
|
10
11
|
classified: boolean;
|
|
11
12
|
onStart: () => void;
|
|
13
|
+
/** The template and target choice in front of the listed articles — see the panel's template takeover. */
|
|
14
|
+
templateColumns?: TableColumnsType<ListedMarkedArticle>;
|
|
15
|
+
/** The template takeover's bar with its start, above the list. */
|
|
16
|
+
templateBar?: ReactNode;
|
|
12
17
|
}
|
|
13
18
|
/** The start screen for a marking that fits one class: which class, which articles, and the start. */
|
|
14
|
-
declare function ClassificationReady({ className, articles, showSupplier, classified, onStart }: ClassificationReadyProps): React.JSX.Element;
|
|
19
|
+
declare function ClassificationReady({ className, articles, showSupplier, classified, onStart, templateColumns, templateBar }: ClassificationReadyProps): React.JSX.Element;
|
|
15
20
|
export default ClassificationReady;
|
|
16
21
|
//# 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,MAAM,OAAO,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,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 +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;
|
|
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"}
|
package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/components/DivaNrCell/index.d.ts
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ICellRendererParams } from 'ag-grid-enterprise';
|
|
3
|
+
import { type PlanningRemovalParams } from '../../logic/planningTransfer';
|
|
4
|
+
interface DivaNrCellParams {
|
|
5
|
+
/** Takes Delete on the cell and the click on its trash icon — the page's planning removal (`planningColumn`). */
|
|
6
|
+
onRemove?: (params: PlanningRemovalParams) => void;
|
|
7
|
+
}
|
|
3
8
|
/**
|
|
4
|
-
* The DIVA number cell (`planningColumn`): while a planning transfer works on the article, its number is
|
|
5
|
-
* change — the cell shows a spinner instead until the re-read row brings the new one.
|
|
9
|
+
* The DIVA number cell (`planningColumn`): while a planning transfer or removal works on the article, its number is
|
|
10
|
+
* about to change — the cell shows a spinner instead until the re-read row brings the new one. A planned article's
|
|
11
|
+
* cell shows a trash icon on hover and focus; it and Delete on the focused cell go to `onRemove`. The grid swallows
|
|
12
|
+
* Delete on read-only cells before any column handler sees it, so the cell listens on its own element.
|
|
6
13
|
*/
|
|
7
|
-
export default function DivaNrCell({ value, data }: ICellRendererParams<Record<string, unknown>>): React.JSX.Element;
|
|
14
|
+
export default function DivaNrCell({ value, data, eGridCell, api, node, onRemove }: ICellRendererParams<Record<string, unknown>> & DivaNrCellParams): React.JSX.Element;
|
|
15
|
+
export {};
|
|
8
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/ui/AssortmentManager/ArticleData/components/DivaNrCell/index.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/ui/AssortmentManager/ArticleData/components/DivaNrCell/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAIzD,OAAO,EAAqB,KAAK,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAG7F,UAAU,gBAAgB;IACxB,iHAAiH;IACjH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;CACpD;AAED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,gBAAgB,qBA6BlJ"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { type TableColumnsType } from 'antd';
|
|
2
3
|
import { type MarkedArticle } from '../../logic/markedArticles';
|
|
3
4
|
/** A listed article, with its supplier where the list spans several and its DIVA number where it is about plannings. */
|
|
4
5
|
export interface ListedMarkedArticle extends MarkedArticle {
|
|
@@ -11,12 +12,14 @@ interface MarkedArticlesProps {
|
|
|
11
12
|
showSupplier?: boolean;
|
|
12
13
|
/** Adds the DIVA number column — for a list about the articles' plannings. */
|
|
13
14
|
showDivaNr?: boolean;
|
|
15
|
+
/** Columns put in front of the article's own — e.g. the classification panel's template and target choice. */
|
|
16
|
+
leadingColumns?: TableColumnsType<ListedMarkedArticle>;
|
|
14
17
|
}
|
|
15
18
|
/**
|
|
16
19
|
* The marked articles of a panel's start screen (classification, configurator) and of the planning transfer's dialogs by what the category manager knows
|
|
17
20
|
* them by: SAP number, supplier article number and the short text in the portal language (German where the article
|
|
18
21
|
* has none in it).
|
|
19
22
|
*/
|
|
20
|
-
declare function MarkedArticles({ articles, showSupplier, showDivaNr }: MarkedArticlesProps): React.JSX.Element;
|
|
23
|
+
declare function MarkedArticles({ articles, showSupplier, showDivaNr, leadingColumns }: MarkedArticlesProps): React.JSX.Element;
|
|
21
24
|
export default MarkedArticles;
|
|
22
25
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/ui/AssortmentManager/ArticleData/components/MarkedArticles/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/ui/AssortmentManager/ArticleData/components/MarkedArticles/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,EAAS,KAAK,gBAAgB,EAAE,MAAM,MAAM,CAAC;AAEpD,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE7E,wHAAwH;AACxH,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,oEAAoE;IACpE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8GAA8G;IAC9G,cAAc,CAAC,EAAE,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;CACxD;AAID;;;;GAIG;AACH,iBAAS,cAAc,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,mBAAmB,qBAgDlG;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { MissingRequiredLink } from '../../logic/requiredFieldJump';
|
|
3
|
+
interface MissingRequiredFieldsProps {
|
|
4
|
+
/** The selected article's missing required fields, see `missingRequiredLinks`. */
|
|
5
|
+
links: MissingRequiredLink[];
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* How many required fields the selected article still lacks, next to the page title. Its popover lists them, each a
|
|
9
|
+
* link to its cell; a click on the tag jumps to the first. Nothing when none is missing.
|
|
10
|
+
*/
|
|
11
|
+
declare function MissingRequiredFields({ links }: MissingRequiredFieldsProps): React.JSX.Element | null;
|
|
12
|
+
export default MissingRequiredFields;
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/ui/AssortmentManager/ArticleData/components/MissingRequiredFields/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAGzE,UAAU,0BAA0B;IAClC,kFAAkF;IAClF,KAAK,EAAE,mBAAmB,EAAE,CAAC;CAC9B;AAED;;;GAGG;AACH,iBAAS,qBAAqB,CAAC,EAAE,KAAK,EAAE,EAAE,0BAA0B,4BA6BnE;AAED,eAAe,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/ui/AssortmentManager/ArticleData/components/StatusLegend/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/ui/AssortmentManager/ArticleData/components/StatusLegend/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,sBAqFnC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import RootStore from '../../../../store/RootStore';
|
|
2
|
+
import { type SupplierArticleKey } from '../logic/supplierArticleDuplicate';
|
|
3
|
+
/** Another article of the organization with the same supplier article number in the same supplier / EK group combination. */
|
|
4
|
+
export interface SupplierArticleDuplicate {
|
|
5
|
+
_id: unknown;
|
|
6
|
+
retailerArticleNr?: unknown;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Another saved article carrying the key's supplier article number in its combination, other than `articleId` — the
|
|
10
|
+
* legacy "ArtikelNr ist in dieser EKG doppelt vorhanden". Read like `fetchHighestPosition`: the products query's
|
|
11
|
+
* `search` on the Atlas Search index, where the number is mapped case-insensitively (as the legacy compared it).
|
|
12
|
+
* Header rows and deleted articles do not count; archived ones do. Two rows at most — one may be the article itself.
|
|
13
|
+
* The index follows a save with a short delay, so a duplicate saved a moment ago may not be found yet.
|
|
14
|
+
*/
|
|
15
|
+
export declare function findSupplierArticleDuplicate(root: RootStore, articleId: string, key: SupplierArticleKey): Promise<SupplierArticleDuplicate | undefined>;
|
|
16
|
+
//# sourceMappingURL=findSupplierArticleDuplicate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findSupplierArticleDuplicate.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/AssortmentManager/ArticleData/hooks/findSupplierArticleDuplicate.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,6BAA6B,CAAC;AAEpD,OAAO,EAA4B,KAAK,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAGtG,6HAA6H;AAC7H,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,OAAO,CAAC;IACb,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAsB,4BAA4B,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,wBAAwB,GAAG,SAAS,CAAC,CAe7J"}
|
package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/hooks/planningTransferApi.d.ts
CHANGED
|
@@ -23,4 +23,9 @@ export declare function findPlannedArticles(root: RootStore, divaNr: string): Pr
|
|
|
23
23
|
* fields the deployment derives from a planning.
|
|
24
24
|
*/
|
|
25
25
|
export declare function assignPlanning(root: RootStore, sourceId: string, targetIds: string[]): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Removes the article's planning through the catalog (`DELETE /v1/products/:id/configuration`): the DIVA number, the
|
|
28
|
+
* configuration and the fields the planning brought along go, and the fields the deployment derives follow.
|
|
29
|
+
*/
|
|
30
|
+
export declare function removePlanning(root: RootStore, id: string): Promise<void>;
|
|
26
31
|
//# sourceMappingURL=planningTransferApi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"planningTransferApi.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/AssortmentManager/ArticleData/hooks/planningTransferApi.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"planningTransferApi.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/AssortmentManager/ArticleData/hooks/planningTransferApi.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,6BAA6B,CAAC;AAEpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAIpE,gHAAgH;AAChH,MAAM,MAAM,eAAe,GAAG,oBAAoB,GAAG;IACnD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE;YAAE,cAAc,CAAC,EAAE,OAAO,CAAA;SAAE,CAAA;KAAE,CAAC;CACrD,CAAC;AAEF,mGAAmG;AACnG,eAAO,MAAM,uBAAuB,UAAwE,CAAC;AAE7G;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAMrG;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAM1G;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK/E"}
|
package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/hooks/usePlanningTransfer.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { CellPasteParams } from '@crystaldesign/spreadsheet';
|
|
3
3
|
import RootStore from '../../../../store/RootStore';
|
|
4
|
+
import { type PlanningRemovalParams } from '../logic/planningTransfer';
|
|
4
5
|
type ArticleRow = Record<string, unknown>;
|
|
5
6
|
/**
|
|
6
7
|
* Transfers a planning by pasting a copied DIVA number onto other articles' DIVA-Nr. cells — the legacy
|
|
@@ -8,10 +9,19 @@ type ArticleRow = Record<string, unknown>;
|
|
|
8
9
|
* SAP transfer run works on are left out with a warning (checked on the paste and again before the assign); targets
|
|
9
10
|
* that carry a planning already are overwritten only on request, the catalog gives every target a copy with a DIVA
|
|
10
11
|
* number of its own, and `onTransferred` re-reads the targets (and hands them to the legacy SM) — meanwhile their
|
|
11
|
-
* DIVA-Nr. cells show a spinner.
|
|
12
|
+
* DIVA-Nr. cells show a spinner. Delete on the DIVA-Nr. cells removes plannings again (`removePlanningOf`). The dialogs
|
|
13
|
+
* render through `planningTransferDialogs`, which the page mounts.
|
|
12
14
|
*/
|
|
13
15
|
export default function usePlanningTransfer(root: RootStore, onTransferred: (ids: string[]) => Promise<void>): {
|
|
14
|
-
planningTransferDialogs: React.
|
|
16
|
+
planningTransferDialogs: React.JSX.Element;
|
|
17
|
+
/**
|
|
18
|
+
* Delete on the DIVA-Nr. column — the legacy "Basiskonfigurat löschen": removes the plannings of the covered rows
|
|
19
|
+
* (`planningRemovalNodes`) — several only after a question, and every removal after `UNDO_SECONDS` without an undo
|
|
20
|
+
* (`waitForUndo`) — one article after the other, stopping at the first failure. Rows a SAP transfer run works on
|
|
21
|
+
* are left out with a warning; `onTransferred` re-reads the rows done (and hands them to the legacy SM) — from the
|
|
22
|
+
* announcement on their DIVA-Nr. cells show a spinner.
|
|
23
|
+
*/
|
|
24
|
+
removePlanningOf: (params: PlanningRemovalParams) => Promise<void>;
|
|
15
25
|
transferPlanning: ({ api, data, nodes }: CellPasteParams<ArticleRow>) => Promise<void>;
|
|
16
26
|
};
|
|
17
27
|
export {};
|
|
@@ -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;
|
|
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"}
|
package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/hooks/useUpdateFromSap.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import RootStore from '../../../../store/RootStore';
|
|
2
|
+
/** The answer of the SAP update for one article number. */
|
|
3
|
+
export interface SapUpdateResult {
|
|
4
|
+
matnr: string;
|
|
5
|
+
ok: boolean;
|
|
6
|
+
productId?: string;
|
|
7
|
+
error?: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Pulls the SAP master data of one article into its catalog product through the Pfister article service
|
|
11
|
+
* (`POST /v1/pfisterproducts/sap/articles/update`, SI_O_S_ARTIKELUPDATE, addressed by SAP article number) and returns
|
|
12
|
+
* the service's answer for it — the legacy `UpdateFlatarticlesFromSAP` a copy ran first. The service patches the
|
|
13
|
+
* product itself; the caller re-reads the row.
|
|
14
|
+
*/
|
|
15
|
+
export default function useUpdateFromSap(root: RootStore): (matnr: string) => Promise<SapUpdateResult>;
|
|
16
|
+
//# sourceMappingURL=useUpdateFromSap.d.ts.map
|
package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/hooks/useUpdateFromSap.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUpdateFromSap.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/AssortmentManager/ArticleData/hooks/useUpdateFromSap.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,6BAA6B,CAAC;AAGpD,2DAA2D;AAC3D,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,IAAI,EAAE,SAAS,WAEtC,MAAM,KAAG,OAAO,CAAC,eAAe,CAAC,CAmBlD"}
|
|
@@ -4,9 +4,9 @@ import React from 'react';
|
|
|
4
4
|
* organization, narrowed by the free text search. The supplier / EK group context lives per row in
|
|
5
5
|
* the two leading columns; writes into them link the header row client side (`onCellEditRequest` →
|
|
6
6
|
* headerLink), the catalog service relinks on every save that changes them. A header save does not
|
|
7
|
-
* change the articles — rows whose header snapshot differs from the current header row
|
|
8
|
-
*
|
|
9
|
-
*
|
|
7
|
+
* change the articles — rows whose header snapshot differs from the current header row carry a yellow
|
|
8
|
+
* stripe at the row's front, and the toolbar's header refresh pulls the current header values into the
|
|
9
|
+
* marked ones on request. The selected row feeds the ITEM_GROUP tabs in the bottom toolbar.
|
|
10
10
|
*/
|
|
11
11
|
declare function ArticleData(): React.JSX.Element;
|
|
12
12
|
declare const _default: typeof ArticleData & {
|
|
@@ -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;
|
|
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"}
|
package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/articleColumns.d.ts
CHANGED
|
@@ -5,6 +5,8 @@ import { AssortmentManagerField, AssortmentManagerItemGroup } from '../../types'
|
|
|
5
5
|
import { Translate } from '../../HeaderData/types';
|
|
6
6
|
import { EnumEntry } from '../../HeaderData/hooks/useDropdownEnumData';
|
|
7
7
|
import type { ArticleReadiness } from './readiness';
|
|
8
|
+
import type { HeaderRefreshState } from './headerSync';
|
|
9
|
+
import type { PlanningRemovalParams } from './planningTransfer';
|
|
8
10
|
type ArticleRow = Record<string, unknown>;
|
|
9
11
|
type ArticleColumn = DivaColDef<ArticleRow> | DivaColGroupDef<ArticleRow>;
|
|
10
12
|
/**
|
|
@@ -79,9 +81,11 @@ export declare const ARTICLE_STATUS_COL_ID = "articleStatus";
|
|
|
79
81
|
* columns (they ride along hidden, see `buildArticleColDefs`).
|
|
80
82
|
*
|
|
81
83
|
* The column has no header text; `headerElement` puts the symbol legend there instead — the spreadsheet's
|
|
82
|
-
* default inner header renders it as its `additionalElement` (the IDM grids' info button pattern).
|
|
84
|
+
* default inner header renders it as its `additionalElement` (the IDM grids' info button pattern). `headerStateOf`
|
|
85
|
+
* tells the cell which articles need a header refresh (see headerSync.ts) — their symbol's tooltip names the reason
|
|
86
|
+
* of the yellow stripe at the row's front.
|
|
83
87
|
*/
|
|
84
|
-
export declare function articleStatusColumn(cellRenderer: DivaColDef<ArticleRow>['cellRenderer'], readinessOf: (row: ArticleRow) => ArticleReadiness, headerElement?: ReactNode, headerClass?: string): DivaColDef<ArticleRow>;
|
|
88
|
+
export declare function articleStatusColumn(cellRenderer: DivaColDef<ArticleRow>['cellRenderer'], readinessOf: (row: ArticleRow) => ArticleReadiness, headerElement?: ReactNode, headerClass?: string, headerStateOf?: (row: ArticleRow) => HeaderRefreshState | undefined): DivaColDef<ArticleRow>;
|
|
85
89
|
/**
|
|
86
90
|
* Whether a derived field's cell is being recalculated: the row's changes are on their way to the server, and the
|
|
87
91
|
* catalog derives the field anew with that save — until the answer is in (the grid then redraws the row). The row
|
|
@@ -90,6 +94,24 @@ export declare function articleStatusColumn(cellRenderer: DivaColDef<ArticleRow>
|
|
|
90
94
|
* row with its errors.
|
|
91
95
|
*/
|
|
92
96
|
export declare function isRecalculating({ node, data, context, api }: CellClassParams<ArticleRow, unknown, DivaContext<ArticleRow>>): boolean;
|
|
97
|
+
/**
|
|
98
|
+
* A field of one row of a repeating table (catalogue `itemRow`, e.g. the ST row of the units of measure or the
|
|
99
|
+
* sales row) as a computed column: it shows the row field and writes the whole table with that row updated — a
|
|
100
|
+
* missing row is added with its fixed values (see withItemRowValue). A row without an own table yet (a new or copied
|
|
101
|
+
* one, linked to its header) shows and writes on the header snapshot's table, so a write overrides just the one field
|
|
102
|
+
* and not the whole inherited sales row. The cell typing is the plain column's.
|
|
103
|
+
* Without a field of its own the column id follows the flat SAP article naming (`SAP_MARM_LAENG_ST`,
|
|
104
|
+
* `SAP_MVKE_SSTUF`): a dotted path below the array would collide with the array's projection wherever column ids
|
|
105
|
+
* are projected (the Excel export). The table itself is projected by a hidden column (see buildArticleColDefs).
|
|
106
|
+
* Neither sortable nor filterable: the search index does not map the tables. `required` / `requiredWhen` is not
|
|
107
|
+
* passed on: the grid's row validation marks the failing cell by its field, which this column lacks — the row would
|
|
108
|
+
* be held back without a visible reason; the transfer readiness checks the required row fields instead.
|
|
109
|
+
*/
|
|
110
|
+
/**
|
|
111
|
+
* The id of the column a catalogue field shows in: an item row field's flat SAP name (see itemRowColumn), the primary
|
|
112
|
+
* language of a multilanguage field, else the field the column binds (the grid takes it as the column id).
|
|
113
|
+
*/
|
|
114
|
+
export declare function articleColumnIdOf(field: AssortmentManagerField): string;
|
|
93
115
|
/**
|
|
94
116
|
* The article's `mainImage` as the spreadsheet's asset thumbnail, left of the DIVA number — the picture the catalog
|
|
95
117
|
* derives from the planning's media. A plain URL field (`isObject: false`, the field is its own URL); read-only, so the
|
|
@@ -104,9 +126,9 @@ export declare const PLANNING_COL_ID = "assortmentManager_planning";
|
|
|
104
126
|
* unplanned article. Bound to the `divaNr` the readiness rules read as well, so the row holds it once; read-only
|
|
105
127
|
* (the configurator sets it), and a duplicate starts without it (a copy is a new, unplanned article). A paste on it
|
|
106
128
|
* goes to `onPaste` instead of writing the copied number — the page's planning transfer, whose progress `cellRenderer`
|
|
107
|
-
* shows.
|
|
129
|
+
* shows; Delete on it goes to `onRemove` (the renderer's param) — the page's planning removal.
|
|
108
130
|
*/
|
|
109
|
-
export declare function planningColumn(t: Translate, onPaste?: DivaColDef<ArticleRow>['onPaste'], cellRenderer?: DivaColDef<ArticleRow>['cellRenderer']): DivaColDef<ArticleRow>;
|
|
131
|
+
export declare function planningColumn(t: Translate, onPaste?: DivaColDef<ArticleRow>['onPaste'], cellRenderer?: DivaColDef<ArticleRow>['cellRenderer'], onRemove?: (params: PlanningRemovalParams) => void): DivaColDef<ArticleRow>;
|
|
110
132
|
/**
|
|
111
133
|
* Builds the article table's column tree from the field catalogue: one column per `showOnArticle` entry in the
|
|
112
134
|
* order of its `articlePosition`, one header group per catalogue `group`; entries without a group render
|
|
@@ -130,10 +152,12 @@ onDivaNrPaste?: DivaColDef<ArticleRow>['onPaste'],
|
|
|
130
152
|
/** Renders the DIVA number cell (`planningColumn`) — it shows a planning transfer's progress in place of the number. */
|
|
131
153
|
divaNrCellRenderer?: DivaColDef<ArticleRow>['cellRenderer'],
|
|
132
154
|
/** The cell class of a `derived` field's value about to be recalculated (see isRecalculating) — the page styles it as loading. */
|
|
133
|
-
recalculatingCellClass?: string
|
|
155
|
+
recalculatingCellClass?: string,
|
|
156
|
+
/** Takes Delete on the DIVA number column (`planningColumn`) — the page's planning removal. */
|
|
157
|
+
onDivaNrRemove?: (params: PlanningRemovalParams) => void): ArticleColumn[];
|
|
134
158
|
/**
|
|
135
|
-
* The Kollidaten table's columns (`config/colliFields.ts`) in the order of its template
|
|
136
|
-
* number, Verpackung, COL, then one group per package (`packageUnit`, headed "C01" … "C39") with its length, width,
|
|
159
|
+
* The Kollidaten table's columns (`config/colliFields.ts`): SAP number, then in the order of its template supplier,
|
|
160
|
+
* supplier article number, Verpackung, COL, then one group per package (`packageUnit`, headed "C01" … "C39") with its length, width,
|
|
137
161
|
* height and weight. Each group starts collapsed, showing only the package's summary cell; its expand toggle
|
|
138
162
|
* swaps it for the measures, which take input only up to the number of packages (see packageEditable). Item row fields
|
|
139
163
|
* become item row columns, the others plain columns. Hidden columns project the row identity, the transfer lock
|
package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/articleColumns.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"articleColumns.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/AssortmentManager/ArticleData/logic/articleColumns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,eAAe,EAAmE,MAAM,oBAAoB,CAAC;AACtH,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"articleColumns.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/AssortmentManager/ArticleData/logic/articleColumns.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,7 +43,8 @@ export declare function clearedTransferMessages(): Record<string, null>;
|
|
|
43
43
|
* The grid's `hooks.onCellEditRequest` part of the article and Kollidaten pages: a write into an article after a
|
|
44
44
|
* failed or remarked transfer adds the cleared messages (`clearedTransferMessages`) to the same commit — the
|
|
45
45
|
* header linker's way of adding to a write. Only while the write itself leaves the messages in place, so the
|
|
46
|
-
* clearing update never triggers itself.
|
|
46
|
+
* clearing update never triggers itself. Not for a transferred article: its remark still describes the transfer
|
|
47
|
+
* that went through, an edit of a field it keeps editable (`editableWhenTransferred`) stays in DIVA.
|
|
47
48
|
*/
|
|
48
49
|
export declare function clearTransferMessagesOnEdit({ oldData, data, node, context }: CellEditRequestedEvent<ArticleRow, DivaContext>): void;
|
|
49
50
|
/**
|
package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/articleLock.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"articleLock.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/AssortmentManager/ArticleData/logic/articleLock.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAKjF,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAO1C;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAEnE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAEpE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAE7E;AAED,4FAA4F;AAC5F,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAEtE;AAED,8EAA8E;AAC9E,MAAM,WAAW,eAAe;IAC9B,6EAA6E;IAC7E,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,eAAe,GAAG,SAAS,CAKzF;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAE9D;AAED
|
|
1
|
+
{"version":3,"file":"articleLock.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/AssortmentManager/ArticleData/logic/articleLock.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAKjF,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAO1C;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAEnE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAEpE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAE7E;AAED,4FAA4F;AAC5F,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAEtE;AAED,8EAA8E;AAC9E,MAAM,WAAW,eAAe;IAC9B,6EAA6E;IAC7E,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,eAAe,GAAG,SAAS,CAKzF;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAE9D;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,sBAAsB,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,IAAI,CAWnI;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAIhE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type ClassificationGrouping } from './classificationGroups';
|
|
2
|
+
/**
|
|
3
|
+
* Taking one article's classification over to other marked articles: the user picks the template (a classified
|
|
4
|
+
* article) and the targets (by default every other marked article); the editor opens on the targets, prefilled with
|
|
5
|
+
* the template's values (its `templateProductId`), and saves only after the user reviewed them.
|
|
6
|
+
*/
|
|
7
|
+
/** The marked articles that carry a class — the ones that can serve as a template. */
|
|
8
|
+
export declare function classifiedIds(grouping: ClassificationGrouping): string[];
|
|
9
|
+
/**
|
|
10
|
+
* The template preselected for a marking: the typical case of one classified article marked with unclassified ones.
|
|
11
|
+
* Any other marking leaves the choice to the user.
|
|
12
|
+
*/
|
|
13
|
+
export declare function suggestedTemplateId(grouping: ClassificationGrouping): string | undefined;
|
|
14
|
+
/** The targets of `templateId`: every other marked article the user did not uncheck, in the marking's order. */
|
|
15
|
+
export declare function templateTargets(grouping: ClassificationGrouping, templateId: string, unchecked: ReadonlySet<string>): string[];
|
|
16
|
+
//# sourceMappingURL=classificationTemplate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classificationTemplate.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/AssortmentManager/ArticleData/logic/classificationTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAE/E;;;;GAIG;AAEH,sFAAsF;AACtF,wBAAgB,aAAa,CAAC,QAAQ,EAAE,sBAAsB,GAAG,MAAM,EAAE,CAExE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,MAAM,GAAG,SAAS,CAIxF;AAED,gHAAgH;AAChH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAE9H"}
|
package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/duplicateArticle.d.ts
CHANGED
|
@@ -6,8 +6,16 @@ type ArticleRow = Record<string, unknown>;
|
|
|
6
6
|
* second one ("EAN wird bereits verwendet") — and the copy references its source: `SAP_MAW1_ZZSHOPREF` = the
|
|
7
7
|
* source's SAP number once it has one, else `SAP_MAW1_ZZSHOPREF_TMP` = its supplier article number, which the SAP
|
|
8
8
|
* send resolves to the source's SAP number (a send takes the articles without it first). The other reference is
|
|
9
|
-
* cleared, so a copy of a copy never points at the grandparent.
|
|
9
|
+
* cleared, so a copy of a copy never points at the grandparent. The SAP article number and its catalog mirror
|
|
10
|
+
* `retailerArticleNr` never go along, whatever the copy carries — a copy is a new article SAP numbers itself.
|
|
10
11
|
*/
|
|
11
12
|
export declare function duplicatedArticle(copy: ArticleRow, source: ArticleRow): ArticleRow;
|
|
13
|
+
/**
|
|
14
|
+
* The row cut down to the grid's own paths (`fields`: the columns' `field` and `additionalFields`, what the grid
|
|
15
|
+
* reads): a row that took a whole product — a re-read, a save's answer — carries fields without a column, which
|
|
16
|
+
* the duplicate's column flags (`excludeFromDuplicate`) cannot drop. Cut down, a copy carries what the legacy copy
|
|
17
|
+
* carried and nothing else.
|
|
18
|
+
*/
|
|
19
|
+
export declare function gridShaped(row: ArticleRow, fields: string[]): ArticleRow;
|
|
12
20
|
export {};
|
|
13
21
|
//# sourceMappingURL=duplicateArticle.d.ts.map
|
package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/duplicateArticle.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"duplicateArticle.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/AssortmentManager/ArticleData/logic/duplicateArticle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"duplicateArticle.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/AssortmentManager/ArticleData/logic/duplicateArticle.ts"],"names":[],"mappings":"AAGA,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAa1C;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,UAAU,CAgBlF;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAExE"}
|
|
@@ -39,4 +39,8 @@ export declare function isHeaderOutdated(data: Record<string, unknown> | undefin
|
|
|
39
39
|
export declare function hasUnlinkedHeader(data: Record<string, unknown> | undefined, headers: HeaderProducts | undefined): boolean;
|
|
40
40
|
/** Whether the refresh action has something to pull: outdated header values, or a header row not linked yet. */
|
|
41
41
|
export declare function canRefreshHeader(data: Record<string, unknown> | undefined, headers: HeaderProducts | undefined): boolean;
|
|
42
|
+
/** Why the refresh has something to pull for an article ({@link canRefreshHeader}) — none while it has not. */
|
|
43
|
+
export type HeaderRefreshState = 'outdated' | 'unlinked';
|
|
44
|
+
/** The reason behind {@link canRefreshHeader}, for the marker's tooltip: outdated header values, or a header row not linked yet. */
|
|
45
|
+
export declare function headerRefreshState(data: Record<string, unknown> | undefined, headers: HeaderProducts | undefined): HeaderRefreshState | undefined;
|
|
42
46
|
//# sourceMappingURL=headerSync.d.ts.map
|
package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/headerSync.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headerSync.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/AssortmentManager/ArticleData/logic/headerSync.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACnD,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACzD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAI9F;AAED,iGAAiG;AACjG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,cAAc,CAOnF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO,CAcxH;AAYD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO,CAMzH;AAED,gHAAgH;AAChH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO,CAExH"}
|
|
1
|
+
{"version":3,"file":"headerSync.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/AssortmentManager/ArticleData/logic/headerSync.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACnD,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACzD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAI9F;AAED,iGAAiG;AACjG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,cAAc,CAOnF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO,CAcxH;AAYD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO,CAMzH;AAED,gHAAgH;AAChH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO,CAExH;AAED,+GAA+G;AAC/G,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,UAAU,CAAC;AAEzD,oIAAoI;AACpI,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,SAAS,GAAG,kBAAkB,GAAG,SAAS,CAIjJ"}
|
package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/planningTransfer.d.ts
CHANGED
|
@@ -1,4 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transferring a planning by pasting a copied DIVA number onto other articles' DIVA-Nr. cells — the legacy
|
|
3
|
+
* "Basiskonfigurat kopieren / übertragen": the pasted number names the source article, the pasted rows are the
|
|
4
|
+
* targets, each of them receives a copy of the source's planning with a DIVA number of its own. Delete on the
|
|
5
|
+
* DIVA-Nr. cells removes the planning again — the legacy "Basiskonfigurat löschen".
|
|
6
|
+
*/
|
|
7
|
+
import type { GridApi, IRowNode } from 'ag-grid-enterprise';
|
|
1
8
|
type ArticleRow = Record<string, unknown>;
|
|
9
|
+
/** Delete on a DIVA-Nr. cell: the grid and the row of the focused cell. */
|
|
10
|
+
export interface PlanningRemovalParams {
|
|
11
|
+
api: GridApi<ArticleRow>;
|
|
12
|
+
node: IRowNode<ArticleRow>;
|
|
13
|
+
}
|
|
2
14
|
/** The pasted DIVA number: the clipboard's first cell, trimmed — `undefined` when it is empty or no DIVA number. */
|
|
3
15
|
export declare function pastedDivaNr(data: string[][]): string | undefined;
|
|
4
16
|
/** Whether a planning transfer works on the row right now — its DIVA-Nr. cell shows a spinner meanwhile. */
|
|
@@ -21,5 +33,28 @@ export interface PlanningTransferTargets {
|
|
|
21
33
|
* target all the same: its planning may still change.
|
|
22
34
|
*/
|
|
23
35
|
export declare function planningTransferTargets(rows: (ArticleRow | undefined)[], sourceId: string): PlanningTransferTargets;
|
|
36
|
+
/**
|
|
37
|
+
* A copy of the row without its planning's fields, for a removed planning. The re-read row cannot clear them: it
|
|
38
|
+
* merges over the grid row and simply lacks the removed fields. The given row is left alone.
|
|
39
|
+
*/
|
|
40
|
+
export declare function withoutPlanning(row: ArticleRow): ArticleRow;
|
|
41
|
+
/** The ids of the rows a planning removal covers, by whether it may run on them. */
|
|
42
|
+
export interface PlanningRemovalTargets {
|
|
43
|
+
/** Rows with a planning — it is removed. */
|
|
44
|
+
removable: string[];
|
|
45
|
+
/** Rows with a planning a SAP transfer run is working on (`isTransferring`) — left alone, the write would race the transfer. */
|
|
46
|
+
transferring: string[];
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Splits the rows of a Delete on the DIVA-Nr. column. Rows without a planning, without an id (the empty add row) and
|
|
50
|
+
* those a planning transfer or removal works on already are left out. A transferred article is covered all the same:
|
|
51
|
+
* its planning may still change.
|
|
52
|
+
*/
|
|
53
|
+
export declare function planningRemovalTargets(rows: (ArticleRow | undefined)[]): PlanningRemovalTargets;
|
|
54
|
+
/**
|
|
55
|
+
* The rows a Delete on the focused DIVA-Nr. cell covers: those of the cell ranges over the DIVA-Nr. column when the
|
|
56
|
+
* focused row lies in one of them, else the focused row alone.
|
|
57
|
+
*/
|
|
58
|
+
export declare function planningRemovalNodes({ api, node }: PlanningRemovalParams, planningColId: string): IRowNode<ArticleRow>[];
|
|
24
59
|
export {};
|
|
25
60
|
//# sourceMappingURL=planningTransfer.d.ts.map
|