@tap-payments/os-micro-frontend-shared 0.1.415-test.1 → 0.1.415-test.1-test.2
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/components/FilterDropdown/components/index.d.ts +0 -2
- package/build/components/FilterDropdown/components/index.js +0 -2
- package/build/components/TableHeader/TableView/index.d.ts +1 -1
- package/build/components/TableHeader/TableView/index.js +1 -1
- package/build/components/TableHeader/TableView/utils/index.d.ts +1 -1
- package/build/components/TableHeader/TableView/utils/index.js +1 -1
- package/build/components/TableHeader/TableView/utils/templateToColumnsView.d.ts +8 -0
- package/build/components/TableHeader/TableView/utils/templateToColumnsView.js +11 -2
- package/build/components/TableHeader/TableView/utils/viewMenu.d.ts +4 -10
- package/build/components/TableHeader/TableView/utils/viewMenu.js +4 -3
- package/build/components/TableHeader/index.d.ts +1 -1
- package/build/components/TableHeader/index.js +1 -1
- package/package.json +2 -2
- package/build/components/FilterDropdown/components/MerchantsFilterItem/MerchantsFilterItem.d.ts +0 -3
- package/build/components/FilterDropdown/components/MerchantsFilterItem/MerchantsFilterItem.js +0 -45
- package/build/components/FilterDropdown/components/MerchantsFilterItem/index.d.ts +0 -4
- package/build/components/FilterDropdown/components/MerchantsFilterItem/index.js +0 -4
- package/build/components/FilterDropdown/components/MerchantsFilterItem/type.d.ts +0 -20
- package/build/components/FilterDropdown/components/MerchantsFilterItem/type.js +0 -7
- package/build/components/FilterDropdown/components/MerchantsFilterItem/utils.d.ts +0 -5
- package/build/components/FilterDropdown/components/MerchantsFilterItem/utils.js +0 -55
|
@@ -2,5 +2,3 @@ export { default as MerchantItem } from './MerchantItem';
|
|
|
2
2
|
export { default as RetailersItem } from './RetailersItem';
|
|
3
3
|
export { default as CountriesItem } from './CountriesItem';
|
|
4
4
|
export { default as CurrenciesItem } from './CurrenciesItem';
|
|
5
|
-
export { default as MerchantsFilterItem } from './MerchantsFilterItem';
|
|
6
|
-
export * from './MerchantsFilterItem';
|
|
@@ -2,5 +2,3 @@ export { default as MerchantItem } from './MerchantItem';
|
|
|
2
2
|
export { default as RetailersItem } from './RetailersItem';
|
|
3
3
|
export { default as CountriesItem } from './CountriesItem';
|
|
4
4
|
export { default as CurrenciesItem } from './CurrenciesItem';
|
|
5
|
-
export { default as MerchantsFilterItem } from './MerchantsFilterItem';
|
|
6
|
-
export * from './MerchantsFilterItem';
|
|
@@ -6,6 +6,6 @@ export { default as ViewsMenu } from './ViewsMenu';
|
|
|
6
6
|
export { default as ViewsDropdown } from './ViewsDropdown';
|
|
7
7
|
export { default as CreateViewDialog } from './CreateViewDialog';
|
|
8
8
|
export type { ViewMenuItem, CreateCustomViewDialogProps, CreateOrEditViewPayload, ColumnChange, LayoutSection, ColumnItem, FieldItem, Template, CreateTemplatePayload, UpdateTemplatePayload, } from './types';
|
|
9
|
-
export { transformLayoutToColumns, getColumnsByMode, createCustomViewMenuItem, setViewAsDefault, transformTemplatesToViewMenuItems, convertColumnsToLayoutSection, isDateColumn, getColumnCheckState, mapTemplatesToMenuItems, mapColumnsToLayoutSection, getSubmenuFromTemplateLayout, getColumnOrder, updateTemplate, templateToViewMenuItem, convertTemplateToColumnsView, convertTemplatesToColumnsView, } from './utils';
|
|
9
|
+
export { getTemplateId, transformLayoutToColumns, getColumnsByMode, createCustomViewMenuItem, setViewAsDefault, transformTemplatesToViewMenuItems, convertColumnsToLayoutSection, isDateColumn, getColumnCheckState, mapTemplatesToMenuItems, mapColumnsToLayoutSection, getSubmenuFromTemplateLayout, getColumnOrder, updateTemplate, templateToViewMenuItem, convertTemplateToColumnsView, convertTemplatesToColumnsView, } from './utils';
|
|
10
10
|
export { useSubmenuHover, useViewsManager, useViewsMenu } from './hooks';
|
|
11
11
|
export { DIALOG_WIDTH, DIALOG_HEIGHT, MAX_CUSTOM_VIEWS, TEMPLATE_NAME_MAX_LENGTH, INDEX_COLUMN_CONFIG, DATE_COLUMN_CONFIG } from './constants';
|
|
@@ -5,6 +5,6 @@ export { default as CustomViews } from './CustomViews';
|
|
|
5
5
|
export { default as ViewsMenu } from './ViewsMenu';
|
|
6
6
|
export { default as ViewsDropdown } from './ViewsDropdown';
|
|
7
7
|
export { default as CreateViewDialog } from './CreateViewDialog';
|
|
8
|
-
export { transformLayoutToColumns, getColumnsByMode, createCustomViewMenuItem, setViewAsDefault, transformTemplatesToViewMenuItems, convertColumnsToLayoutSection, isDateColumn, getColumnCheckState, mapTemplatesToMenuItems, mapColumnsToLayoutSection, getSubmenuFromTemplateLayout, getColumnOrder, updateTemplate, templateToViewMenuItem, convertTemplateToColumnsView, convertTemplatesToColumnsView, } from './utils';
|
|
8
|
+
export { getTemplateId, transformLayoutToColumns, getColumnsByMode, createCustomViewMenuItem, setViewAsDefault, transformTemplatesToViewMenuItems, convertColumnsToLayoutSection, isDateColumn, getColumnCheckState, mapTemplatesToMenuItems, mapColumnsToLayoutSection, getSubmenuFromTemplateLayout, getColumnOrder, updateTemplate, templateToViewMenuItem, convertTemplateToColumnsView, convertTemplatesToColumnsView, } from './utils';
|
|
9
9
|
export { useSubmenuHover, useViewsManager, useViewsMenu } from './hooks';
|
|
10
10
|
export { DIALOG_WIDTH, DIALOG_HEIGHT, MAX_CUSTOM_VIEWS, TEMPLATE_NAME_MAX_LENGTH, INDEX_COLUMN_CONFIG, DATE_COLUMN_CONFIG } from './constants';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { isDateColumn, transformLayoutToColumns, getColumnsByMode, convertColumnsToLayoutSection, mapColumnsToLayoutSection, getLayoutDataFromTemplates, } from './layoutTransform';
|
|
2
2
|
export { createCustomViewMenuItem, setViewAsDefault, transformTemplatesToViewMenuItems, mapTemplatesToMenuItems, getSubmenuItems, getSubmenuItemsForDisplay, hasSubmenu, } from './viewMenu';
|
|
3
3
|
export { getColumnCheckState, toggleColumn, toggleSubItem, toggleAllColumns, areAllColumnsSelected, areSomeColumnsSelected, isValidTemplateName, deepCloneColumns, toggleSingleColumn, toggleAllCurrentColumns, areAllCurrentColumnsSelected, areSomeCurrentColumnsSelected, normalizeColumnsSelected, areColumnsEqual, resetColumnsToDefault, initializeEditingColumns, initializeCreateColumns, initializeCreateColumnsWithCurrentState, } from './columnState';
|
|
4
|
-
export { getSubmenuFromTemplateLayout, getColumnOrder, updateTemplate, templateToViewMenuItem, convertTemplateToColumnsView, convertTemplatesToColumnsView, } from './templateToColumnsView';
|
|
4
|
+
export { getTemplateId, getSubmenuFromTemplateLayout, getColumnOrder, updateTemplate, templateToViewMenuItem, convertTemplateToColumnsView, convertTemplatesToColumnsView, } from './templateToColumnsView';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { isDateColumn, transformLayoutToColumns, getColumnsByMode, convertColumnsToLayoutSection, mapColumnsToLayoutSection, getLayoutDataFromTemplates, } from './layoutTransform';
|
|
2
2
|
export { createCustomViewMenuItem, setViewAsDefault, transformTemplatesToViewMenuItems, mapTemplatesToMenuItems, getSubmenuItems, getSubmenuItemsForDisplay, hasSubmenu, } from './viewMenu';
|
|
3
3
|
export { getColumnCheckState, toggleColumn, toggleSubItem, toggleAllColumns, areAllColumnsSelected, areSomeColumnsSelected, isValidTemplateName, deepCloneColumns, toggleSingleColumn, toggleAllCurrentColumns, areAllCurrentColumnsSelected, areSomeCurrentColumnsSelected, normalizeColumnsSelected, areColumnsEqual, resetColumnsToDefault, initializeEditingColumns, initializeCreateColumns, initializeCreateColumnsWithCurrentState, } from './columnState';
|
|
4
|
-
export { getSubmenuFromTemplateLayout, getColumnOrder, updateTemplate, templateToViewMenuItem, convertTemplateToColumnsView, convertTemplatesToColumnsView, } from './templateToColumnsView';
|
|
4
|
+
export { getTemplateId, getSubmenuFromTemplateLayout, getColumnOrder, updateTemplate, templateToViewMenuItem, convertTemplateToColumnsView, convertTemplatesToColumnsView, } from './templateToColumnsView';
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import type { ColumnsView, TableMode, ColumnViewProps } from '../../../../types/index.js';
|
|
2
2
|
import type { ViewMenuItem, Template } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Canonical template resource id. Use this for API calls, state lookups, and callbacks.
|
|
5
|
+
* Prefers `id` (REST convention); falls back to `templateId`.
|
|
6
|
+
*/
|
|
7
|
+
export declare function getTemplateId(t: {
|
|
8
|
+
id?: string;
|
|
9
|
+
templateId?: string;
|
|
10
|
+
} | null | undefined): string;
|
|
3
11
|
export declare function getSubmenuFromTemplateLayout(template: Template, tableMode: TableMode, lang?: string): ColumnViewProps[];
|
|
4
12
|
export declare const getColumnOrder: (col: {
|
|
5
13
|
order?: number | string | null;
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical template resource id. Use this for API calls, state lookups, and callbacks.
|
|
3
|
+
* Prefers `id` (REST convention); falls back to `templateId`.
|
|
4
|
+
*/
|
|
5
|
+
export function getTemplateId(t) {
|
|
6
|
+
var _a, _b;
|
|
7
|
+
return (_b = (_a = t === null || t === void 0 ? void 0 : t.id) !== null && _a !== void 0 ? _a : t === null || t === void 0 ? void 0 : t.templateId) !== null && _b !== void 0 ? _b : '';
|
|
8
|
+
}
|
|
1
9
|
export function getSubmenuFromTemplateLayout(template, tableMode, lang = 'en') {
|
|
2
10
|
var _a, _b;
|
|
3
11
|
if (!((_a = template === null || template === void 0 ? void 0 : template.layout) === null || _a === void 0 ? void 0 : _a.length))
|
|
@@ -45,10 +53,11 @@ export function templateToViewMenuItem(template, tableMode) {
|
|
|
45
53
|
return (Object.assign(Object.assign({}, section), { columns: [...((_a = section.columns) !== null && _a !== void 0 ? _a : [])].sort((a, b) => getColumnOrder(a) - getColumnOrder(b)) }));
|
|
46
54
|
});
|
|
47
55
|
const submenu = getSubmenuFromTemplateLayout(template, tableMode);
|
|
56
|
+
const resourceId = getTemplateId(template);
|
|
48
57
|
return {
|
|
49
|
-
id: template.
|
|
58
|
+
id: template.default ? 'default' : resourceId,
|
|
50
59
|
label: template.name,
|
|
51
|
-
templateId:
|
|
60
|
+
templateId: resourceId,
|
|
52
61
|
layout,
|
|
53
62
|
submenu,
|
|
54
63
|
columns: submenu.map((c) => c.name),
|
|
@@ -3,28 +3,22 @@ import type { LayoutSection, ViewMenuItem } from '../types';
|
|
|
3
3
|
export declare const createCustomViewMenuItem: (name: string, selectedColumns: ColumnViewProps[], isDefault?: boolean) => ViewMenuItem;
|
|
4
4
|
export declare const setViewAsDefault: (views: ViewMenuItem[], viewId: string) => ViewMenuItem[];
|
|
5
5
|
export declare const transformTemplatesToViewMenuItems: (templates: Array<{
|
|
6
|
-
id
|
|
7
|
-
timestamp: number;
|
|
8
|
-
date: string;
|
|
9
|
-
};
|
|
6
|
+
id?: string;
|
|
10
7
|
name: string;
|
|
11
8
|
default: boolean;
|
|
12
9
|
layout: LayoutSection[];
|
|
13
|
-
templateId
|
|
10
|
+
templateId?: string;
|
|
14
11
|
}>, mode?: TableMode, lang?: string) => {
|
|
15
12
|
customViews: ViewMenuItem[];
|
|
16
13
|
defaultTemplateColumns?: ColumnViewProps[] | undefined;
|
|
17
14
|
defaultTemplate?: ViewMenuItem | undefined;
|
|
18
15
|
};
|
|
19
16
|
export declare const mapTemplatesToMenuItems: (templates: Array<{
|
|
20
|
-
id
|
|
21
|
-
timestamp: number;
|
|
22
|
-
date: string;
|
|
23
|
-
};
|
|
17
|
+
id?: string;
|
|
24
18
|
name: string;
|
|
25
19
|
default: boolean;
|
|
26
20
|
layout: LayoutSection[];
|
|
27
|
-
templateId
|
|
21
|
+
templateId?: string;
|
|
28
22
|
}>, mode?: TableMode, lang?: string) => {
|
|
29
23
|
menuItems: ViewMenuItem[];
|
|
30
24
|
defaultItem?: ViewMenuItem | undefined;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { INDEX_COLUMN_CONFIG, DATE_COLUMN_CONFIG } from '../constants';
|
|
2
2
|
import { transformLayoutToColumns } from './layoutTransform';
|
|
3
|
+
import { getTemplateId } from './templateToColumnsView';
|
|
3
4
|
export const createCustomViewMenuItem = (name, selectedColumns, isDefault = false) => ({
|
|
4
5
|
label: name,
|
|
5
6
|
id: `custom_${Date.now()}`,
|
|
@@ -17,7 +18,7 @@ export const transformTemplatesToViewMenuItems = (templates, mode = 'sheet', lan
|
|
|
17
18
|
const sectionCode = mode === 'sheet' ? 'sheet' : 'advanced';
|
|
18
19
|
const section = template.layout.find((s) => s.code.toLowerCase() === sectionCode);
|
|
19
20
|
const columns = section ? transformLayoutToColumns([section], lang) : [];
|
|
20
|
-
const
|
|
21
|
+
const resourceId = getTemplateId(template);
|
|
21
22
|
const indexColumn = INDEX_COLUMN_CONFIG;
|
|
22
23
|
const dateColumn = DATE_COLUMN_CONFIG;
|
|
23
24
|
const withDate = columns.some((c) => { var _a; return ((_a = c.name) !== null && _a !== void 0 ? _a : '').toLowerCase() === 'date'; }) ? columns : [dateColumn, ...columns];
|
|
@@ -25,8 +26,8 @@ export const transformTemplatesToViewMenuItems = (templates, mode = 'sheet', lan
|
|
|
25
26
|
const withDateFirst = dateIndex > 0 ? [withDate[dateIndex], ...withDate.filter((c) => { var _a; return ((_a = c.name) !== null && _a !== void 0 ? _a : '').toLowerCase() !== 'date'; })] : withDate;
|
|
26
27
|
const finalColumns = [indexColumn, ...withDateFirst];
|
|
27
28
|
const item = {
|
|
28
|
-
id: template.default ? 'default' :
|
|
29
|
-
templateId:
|
|
29
|
+
id: template.default ? 'default' : resourceId,
|
|
30
|
+
templateId: resourceId,
|
|
30
31
|
label: template.name,
|
|
31
32
|
isCustom: !template.default,
|
|
32
33
|
default: !!template.default,
|
|
@@ -7,4 +7,4 @@ export { default as FiltersRow } from './FiltersRow';
|
|
|
7
7
|
export * from './style';
|
|
8
8
|
export * from './type';
|
|
9
9
|
export type { Template, LayoutSection, ViewMenuItem, ColumnChange, CreateOrEditViewPayload } from './TableView/types';
|
|
10
|
-
export { getSubmenuFromTemplateLayout, getColumnOrder, updateTemplate, templateToViewMenuItem, convertTemplateToColumnsView, convertTemplatesToColumnsView, } from './TableView';
|
|
10
|
+
export { getTemplateId, getSubmenuFromTemplateLayout, getColumnOrder, updateTemplate, templateToViewMenuItem, convertTemplateToColumnsView, convertTemplatesToColumnsView, } from './TableView';
|
|
@@ -6,4 +6,4 @@ export { default as FiltersRowWrapper } from './FiltersRowWrapper';
|
|
|
6
6
|
export { default as FiltersRow } from './FiltersRow';
|
|
7
7
|
export * from './style';
|
|
8
8
|
export * from './type';
|
|
9
|
-
export { getSubmenuFromTemplateLayout, getColumnOrder, updateTemplate, templateToViewMenuItem, convertTemplateToColumnsView, convertTemplatesToColumnsView, } from './TableView';
|
|
9
|
+
export { getTemplateId, getSubmenuFromTemplateLayout, getColumnOrder, updateTemplate, templateToViewMenuItem, convertTemplateToColumnsView, convertTemplatesToColumnsView, } from './TableView';
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tap-payments/os-micro-frontend-shared",
|
|
3
3
|
"description": "Shared components and utilities for Tap Payments micro frontends",
|
|
4
|
-
"version": "0.1.415-test.1",
|
|
5
|
-
"testVersion":
|
|
4
|
+
"version": "0.1.415-test.1-test.2",
|
|
5
|
+
"testVersion": 2,
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "build/index.js",
|
|
8
8
|
"module": "build/index.js",
|
package/build/components/FilterDropdown/components/MerchantsFilterItem/MerchantsFilterItem.js
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { MenuItem, SelectedState, Text, TreeDropdown, TreeManager } from '../../../index.js';
|
|
3
|
-
import { useState, useMemo, useCallback, useRef } from 'react';
|
|
4
|
-
import { useTranslation } from 'react-i18next';
|
|
5
|
-
import { createTreeDefinitions } from './utils';
|
|
6
|
-
import { TreeLevel } from './type';
|
|
7
|
-
import { rightArrow } from '../../../../constants/index.js';
|
|
8
|
-
const MerchantsFilterItem = (props) => {
|
|
9
|
-
const { brands, isLoading, initialValue, onFilterChange, BrandLogoComponent } = props;
|
|
10
|
-
const [anchorEl, setAnchorEl] = useState(null);
|
|
11
|
-
const [merchantSelectStatus, setMerchantSelectStatus] = useState(SelectedState.UNCHECKED);
|
|
12
|
-
const treeDropdownRef = useRef(null);
|
|
13
|
-
const open = Boolean(anchorEl);
|
|
14
|
-
const { t, i18n } = useTranslation();
|
|
15
|
-
const treeDefinition = useMemo(() => createTreeDefinitions(brands, initialValue, i18n.language), [brands, initialValue, i18n.language]);
|
|
16
|
-
const brandsTreeItems = treeDefinition.children;
|
|
17
|
-
const isDisabled = isLoading || !brandsTreeItems.length;
|
|
18
|
-
const getMerchantSelectStatus = useCallback((selectedTree) => {
|
|
19
|
-
const checkedBrands = selectedTree.filter((brand) => brand.status === SelectedState.CHECKED);
|
|
20
|
-
const indeterminateBrands = selectedTree.filter((brand) => brand.status === SelectedState.INDETERMINATE);
|
|
21
|
-
return checkedBrands.length === brandsTreeItems.length
|
|
22
|
-
? SelectedState.CHECKED
|
|
23
|
-
: indeterminateBrands.length > 0 || checkedBrands.length > 0
|
|
24
|
-
? SelectedState.INDETERMINATE
|
|
25
|
-
: SelectedState.UNCHECKED;
|
|
26
|
-
}, [brandsTreeItems]);
|
|
27
|
-
const handleTreeMounted = useCallback(({ selectedTree }) => {
|
|
28
|
-
setMerchantSelectStatus(getMerchantSelectStatus(selectedTree));
|
|
29
|
-
}, [getMerchantSelectStatus]);
|
|
30
|
-
const handleTreeChange = useCallback((nextTree) => {
|
|
31
|
-
setMerchantSelectStatus(getMerchantSelectStatus(nextTree));
|
|
32
|
-
const mids = TreeManager.filterNodesByLevelKey(nextTree, TreeLevel.MERCHANT).map(({ id }) => id);
|
|
33
|
-
onFilterChange === null || onFilterChange === void 0 ? void 0 : onFilterChange(mids);
|
|
34
|
-
}, [onFilterChange, getMerchantSelectStatus]);
|
|
35
|
-
const handleClick = useCallback(() => {
|
|
36
|
-
var _a;
|
|
37
|
-
(_a = treeDropdownRef.current) === null || _a === void 0 ? void 0 : _a.toggleAll(merchantSelectStatus !== SelectedState.CHECKED);
|
|
38
|
-
}, [merchantSelectStatus]);
|
|
39
|
-
return (_jsxs(MenuItem, Object.assign({ isSelected: merchantSelectStatus === SelectedState.CHECKED, isIndeterminate: merchantSelectStatus === SelectedState.INDETERMINATE, isDisabled: isDisabled, onMouseEnter: (e) => setAnchorEl(e.currentTarget), onMouseLeave: () => setAnchorEl(null), onClick: handleClick, sx: Object.assign(Object.assign({ maxHeight: 36, minHeight: 36, padding: '12px 8px 12px 16px' }, (open && { boxShadow: '0px 0px 16px 0px #00000021' })), (isDisabled && {
|
|
40
|
-
pointerEvents: 'none',
|
|
41
|
-
opacity: 0.5,
|
|
42
|
-
cursor: 'default',
|
|
43
|
-
})) }, { children: [_jsx(Text, Object.assign({ sx: { fontSize: '11px', flex: 1 } }, { children: t('merchant') })), brands.length > 0 && _jsx("img", { src: rightArrow, alt: "arrow", style: { height: 12 } }), !isLoading && (_jsx(TreeDropdown, { ref: treeDropdownRef, placement: "right-start", anchorEl: anchorEl, exposeOnlySelectedTree: true, treeDefinition: treeDefinition, onChange: handleTreeChange, onMounted: handleTreeMounted, IconComponent: BrandLogoComponent }))] })));
|
|
44
|
-
};
|
|
45
|
-
export default MerchantsFilterItem;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { Brand } from '../../../../types/index.js';
|
|
3
|
-
export declare enum TreeLevel {
|
|
4
|
-
BRAND = "BRAND",
|
|
5
|
-
COUNTRY = "COUNTRY",
|
|
6
|
-
ENTITY = "ENTITY",
|
|
7
|
-
MERCHANT = "MERCHANT"
|
|
8
|
-
}
|
|
9
|
-
export type MerchantsFilterItemProps = {
|
|
10
|
-
brands: Brand[];
|
|
11
|
-
isLoading: boolean;
|
|
12
|
-
initialValue: string[];
|
|
13
|
-
atLeastOneMerchantSelected?: boolean | undefined;
|
|
14
|
-
showSearchInput?: boolean | undefined;
|
|
15
|
-
hideCheckbox?: boolean | undefined;
|
|
16
|
-
onFilterChange?: ((value: string[]) => void) | undefined;
|
|
17
|
-
BrandLogoComponent: React.ComponentType<{
|
|
18
|
-
fileId: string;
|
|
19
|
-
}>;
|
|
20
|
-
};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { TreeDefinition } from '../../../index.js';
|
|
2
|
-
import { Brand } from '../../../../types/index.js';
|
|
3
|
-
export declare const ID_SEPERATOR = "/";
|
|
4
|
-
export declare const generateIdFromParts: (...args: string[]) => string;
|
|
5
|
-
export declare const createTreeDefinitions: (brands: Brand[], selectedMerchantIds: string[], language: string) => TreeDefinition;
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { CountryFlag, SelectedState } from '../../../index.js';
|
|
3
|
-
import { getNameText } from '../../../../utils/index.js';
|
|
4
|
-
import { TreeLevel } from './type';
|
|
5
|
-
export const ID_SEPERATOR = '/';
|
|
6
|
-
export const generateIdFromParts = (...args) => args.join(ID_SEPERATOR);
|
|
7
|
-
export const createTreeDefinitions = (brands, selectedMerchantIds, language) => {
|
|
8
|
-
const children = brands.map((brand) => {
|
|
9
|
-
var _a, _b;
|
|
10
|
-
const entities = (_a = brand.entities) !== null && _a !== void 0 ? _a : [];
|
|
11
|
-
// level 2: unique countries per brand
|
|
12
|
-
const countries = Array.from(new Set(entities.map((entity) => entity.country).filter(Boolean)));
|
|
13
|
-
const countryNodes = countries.map((countryCode) => {
|
|
14
|
-
const entitiesInCountry = entities.filter((entity) => entity.country === countryCode);
|
|
15
|
-
// level 3: entities per country
|
|
16
|
-
const entityNodes = entitiesInCountry.map((entity) => {
|
|
17
|
-
var _a, _b;
|
|
18
|
-
const merchants = (_a = entity.merchants) !== null && _a !== void 0 ? _a : [];
|
|
19
|
-
// level 4: merchants per entity
|
|
20
|
-
const merchantNodes = merchants.map((merchant) => ({
|
|
21
|
-
id: merchant.legacy_id,
|
|
22
|
-
label: merchant.display_name,
|
|
23
|
-
levelKey: TreeLevel.MERCHANT,
|
|
24
|
-
status: selectedMerchantIds.includes(merchant.legacy_id) ? SelectedState.CHECKED : SelectedState.UNCHECKED,
|
|
25
|
-
hintText: merchant.legacy_id,
|
|
26
|
-
}));
|
|
27
|
-
return Object.assign({ id: generateIdFromParts(brand.id, countryCode, entity.id), label: (_b = getNameText(entity.legal_name, language)) !== null && _b !== void 0 ? _b : entity.id, levelKey: TreeLevel.ENTITY, children: merchantNodes, header: 'Merchants' }, (merchantNodes.length > 10 && {
|
|
28
|
-
searchProps: {
|
|
29
|
-
getValues: (item) => [item.label, item.id],
|
|
30
|
-
},
|
|
31
|
-
}));
|
|
32
|
-
});
|
|
33
|
-
return Object.assign({ id: generateIdFromParts(brand.id, countryCode), label: countryCode, levelKey: TreeLevel.COUNTRY, children: entityNodes, header: 'Entities', iconComponent: _jsx(CountryFlag, { countryCode: countryCode, width: 14 }) }, (entityNodes.length > 10 && {
|
|
34
|
-
searchProps: {
|
|
35
|
-
getValues: (item) => [item.label, item.id],
|
|
36
|
-
},
|
|
37
|
-
}));
|
|
38
|
-
});
|
|
39
|
-
return {
|
|
40
|
-
id: brand.id,
|
|
41
|
-
label: (_b = getNameText(brand.name, language)) !== null && _b !== void 0 ? _b : brand.id,
|
|
42
|
-
levelKey: TreeLevel.BRAND,
|
|
43
|
-
children: countryNodes,
|
|
44
|
-
header: 'Countries',
|
|
45
|
-
icon: {
|
|
46
|
-
fileId: brand.logo,
|
|
47
|
-
},
|
|
48
|
-
};
|
|
49
|
-
});
|
|
50
|
-
return Object.assign({ levelKey: TreeLevel.BRAND, children, header: 'Brands' }, (children.length > 10 && {
|
|
51
|
-
searchProps: {
|
|
52
|
-
getValues: (item) => [item.label, item.id],
|
|
53
|
-
},
|
|
54
|
-
}));
|
|
55
|
-
};
|