@tap-payments/os-micro-frontend-shared 0.1.373-test.2-test.3-test.4-test.5 → 0.1.373-test.2-test.3-test.4-test.5-test.6-test.7
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/TableHeader/FiltersRow.d.ts +1 -1
- package/build/components/TableHeader/FiltersRow.js +2 -2
- package/build/components/TableHeader/TableHeader.d.ts +1 -1
- package/build/components/TableHeader/TableHeader.js +2 -2
- package/build/components/TableHeader/TableView/CreateViewDialog.js +0 -1
- package/build/components/TableHeader/TableView/ViewSelector.d.ts +1 -1
- package/build/components/TableHeader/TableView/ViewSelector.js +2 -1
- package/build/components/TableHeader/TableView/ViewsDropdown.js +26 -10
- package/build/components/TableHeader/TableView/hooks/useViewSelector.d.ts +3 -2
- package/build/components/TableHeader/TableView/hooks/useViewSelector.js +8 -5
- package/build/components/TableHeader/TableView/index.d.ts +1 -1
- package/build/components/TableHeader/TableView/types.d.ts +18 -0
- package/build/components/TableHeader/type.d.ts +2 -1
- package/package.json +2 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { FilterRowProps } from './type';
|
|
2
|
-
export default function FiltersRow({ date, calendarMode, onDateChange, onCalendarModeSwitch, tableReportsComponent, tableFilterComponent, isReportsButtonVisible, onViewChange, onSearchChange, onToggleViewButtonClick, rightActions, leftActions, setTableViews, tableViews, resetTableViews, onToggleTextButtonClick, calendarGroupBy, onCalendarGroupChange, maxDateRange, searchPlaceholder, isAcceptance, tableMode, timezone, browserTimezone, defaultCountryTimezone, onChangeTimezone, segmentCountries, customViews, onCreateCustomView, onEditCustomView, onDeleteCustomView, onTableViewsChange, initialTableViews, onCustomViewsChange, initialCustomViews, layoutData, templates, lang, }: FilterRowProps): import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export default function FiltersRow({ date, calendarMode, onDateChange, onCalendarModeSwitch, tableReportsComponent, tableFilterComponent, isReportsButtonVisible, onViewChange, onSearchChange, onToggleViewButtonClick, rightActions, leftActions, setTableViews, tableViews, resetTableViews, onToggleTextButtonClick, calendarGroupBy, onCalendarGroupChange, maxDateRange, searchPlaceholder, isAcceptance, tableMode, timezone, browserTimezone, defaultCountryTimezone, onChangeTimezone, segmentCountries, customViews, onCreateCustomView, onEditCustomView, onDeleteCustomView, onTableViewsChange, initialTableViews, onCustomViewsChange, initialCustomViews, layoutData, templates, lang, apiMetadata, }: FilterRowProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -6,7 +6,7 @@ import FiltersRowWrapper from './FiltersRowWrapper';
|
|
|
6
6
|
import TableView from './TableView';
|
|
7
7
|
import { ViewSelector } from './TableView';
|
|
8
8
|
import TableModeButton from './TableModeButton';
|
|
9
|
-
export default function FiltersRow({ date, calendarMode, onDateChange, onCalendarModeSwitch, tableReportsComponent, tableFilterComponent, isReportsButtonVisible, onViewChange, onSearchChange, onToggleViewButtonClick, rightActions, leftActions, setTableViews, tableViews, resetTableViews, onToggleTextButtonClick, calendarGroupBy, onCalendarGroupChange, maxDateRange = 31, searchPlaceholder, isAcceptance, tableMode = 'default', timezone, browserTimezone, defaultCountryTimezone, onChangeTimezone, segmentCountries, customViews, onCreateCustomView, onEditCustomView, onDeleteCustomView, onTableViewsChange, initialTableViews, onCustomViewsChange, initialCustomViews, layoutData, templates, lang, }) {
|
|
9
|
+
export default function FiltersRow({ date, calendarMode, onDateChange, onCalendarModeSwitch, tableReportsComponent, tableFilterComponent, isReportsButtonVisible, onViewChange, onSearchChange, onToggleViewButtonClick, rightActions, leftActions, setTableViews, tableViews, resetTableViews, onToggleTextButtonClick, calendarGroupBy, onCalendarGroupChange, maxDateRange = 31, searchPlaceholder, isAcceptance, tableMode = 'default', timezone, browserTimezone, defaultCountryTimezone, onChangeTimezone, segmentCountries, customViews, onCreateCustomView, onEditCustomView, onDeleteCustomView, onTableViewsChange, initialTableViews, onCustomViewsChange, initialCustomViews, layoutData, templates, lang, apiMetadata, }) {
|
|
10
10
|
const [isViewVisible, setIsViewVisible] = useState(false);
|
|
11
11
|
const timezoneCountriesCodes = useMemo(() => segmentCountries.map(({ code }) => code), [segmentCountries]);
|
|
12
12
|
const tableModeButton = useMemo(() => _jsx(TableModeButton, { tableMode: tableMode, onToggle: onToggleTextButtonClick }), [tableMode, onToggleTextButtonClick]);
|
|
@@ -16,5 +16,5 @@ export default function FiltersRow({ date, calendarMode, onDateChange, onCalenda
|
|
|
16
16
|
onDateChange === null || onDateChange === void 0 ? void 0 : onDateChange([startDate, endDate]);
|
|
17
17
|
}
|
|
18
18
|
}, mode: calendarMode, onCalendarModeSwitch: onCalendarModeSwitch, maxDateRange: maxDateRange, groupBy: calendarGroupBy, onCalendarGroupChange: onCalendarGroupChange, browserTimezone: browserTimezone, defaultCountryTimezone: defaultCountryTimezone, timezone: timezone, onChangeTimezone: onChangeTimezone, timezoneCountriesCodes: timezoneCountriesCodes })), isReportsButtonVisible && tableReportsComponent, onToggleTextButtonClick && isAcceptance && tableModeButton] })), onToggleViewButtonClick && (_jsx(StyledButton, { children: _jsx(Icon, { src: viewIcon, alt: "view", sx: { width: 14, height: 14 } }) })), onViewChange &&
|
|
19
|
-
(customViews || onCreateCustomView ? (_jsx(ViewSelector, { onViewChange: onViewChange, setIsViewVisible: setIsViewVisible, tableViews: tableViews, setTableViews: setTableViews, resetTableViews: resetTableViews, customViews: customViews, onCreateCustomView: onCreateCustomView, onEditCustomView: onEditCustomView, onDeleteCustomView: onDeleteCustomView, tableMode: tableMode, onTableViewsChange: onTableViewsChange, initialTableViews: initialTableViews, onCustomViewsChange: onCustomViewsChange, initialCustomViews: initialCustomViews, layoutData: layoutData, templates: templates, lang: lang })) : (_jsx(TableView, { onViewChange: onViewChange, setIsViewVisible: setIsViewVisible, tableViews: tableViews, setTableViews: setTableViews, resetTableViews: resetTableViews }))), rightActions && !isViewVisible && rightActions] }));
|
|
19
|
+
(customViews || onCreateCustomView ? (_jsx(ViewSelector, { onViewChange: onViewChange, setIsViewVisible: setIsViewVisible, tableViews: tableViews, setTableViews: setTableViews, resetTableViews: resetTableViews, customViews: customViews, onCreateCustomView: onCreateCustomView, onEditCustomView: onEditCustomView, onDeleteCustomView: onDeleteCustomView, tableMode: tableMode, onTableViewsChange: onTableViewsChange, initialTableViews: initialTableViews, onCustomViewsChange: onCustomViewsChange, initialCustomViews: initialCustomViews, layoutData: layoutData, templates: templates, lang: lang, apiMetadata: apiMetadata })) : (_jsx(TableView, { onViewChange: onViewChange, setIsViewVisible: setIsViewVisible, tableViews: tableViews, setTableViews: setTableViews, resetTableViews: resetTableViews }))), rightActions && !isViewVisible && rightActions] }));
|
|
20
20
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { TableHeaderProps } from './type';
|
|
2
2
|
import { type TableHeaderStatus } from '../../types/index.js';
|
|
3
|
-
export declare function TableHeader<IStatus extends TableHeaderStatus | TableHeaderStatus[] = undefined>({ date, status, availableStatuses, showMaximizedView, title, calendarMode, tableReportsComponent, tableFilterComponent, onStatusChange, onViewChange, onDateChange, onCalendarModeSwitch, filteredIds, onCancelFilteredIdsClick, isFilteredIdsShown, cardNumber, leftActions, rightActions, isReportsButtonVisible, onSearchChange, onToggleViewButtonClick, leftComponent, tableViews, setTableViews, resetTableViews, onToggleTextButtonClick, calendarGroupBy, onCalendarGroupChange, children, maxDateRange, isAcceptance, startComponent, searchPlaceholder, tableMode, timezone, browserTimezone, defaultCountryTimezone, onChangeTimezone, segmentCountries, customViews, onCreateCustomView, onEditCustomView, onDeleteCustomView, onTableViewsChange, initialTableViews, onCustomViewsChange, initialCustomViews, layoutData, templates, lang, ...StatusBarProps }: TableHeaderProps<IStatus>): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
export declare function TableHeader<IStatus extends TableHeaderStatus | TableHeaderStatus[] = undefined>({ date, status, availableStatuses, showMaximizedView, title, calendarMode, tableReportsComponent, tableFilterComponent, onStatusChange, onViewChange, onDateChange, onCalendarModeSwitch, filteredIds, onCancelFilteredIdsClick, isFilteredIdsShown, cardNumber, leftActions, rightActions, isReportsButtonVisible, onSearchChange, onToggleViewButtonClick, leftComponent, tableViews, setTableViews, resetTableViews, onToggleTextButtonClick, calendarGroupBy, onCalendarGroupChange, children, maxDateRange, isAcceptance, startComponent, searchPlaceholder, tableMode, timezone, browserTimezone, defaultCountryTimezone, onChangeTimezone, segmentCountries, customViews, onCreateCustomView, onEditCustomView, onDeleteCustomView, onTableViewsChange, initialTableViews, onCustomViewsChange, initialCustomViews, layoutData, templates, lang, apiMetadata, ...StatusBarProps }: TableHeaderProps<IStatus>): import("react/jsx-runtime").JSX.Element;
|
|
4
4
|
declare const _default: typeof TableHeader;
|
|
5
5
|
export default _default;
|
|
@@ -15,8 +15,8 @@ import { FilteredIds, StatusBar, TableHeaderWrapper } from '../index.js';
|
|
|
15
15
|
import FiltersRow from './FiltersRow';
|
|
16
16
|
import { StatusButtonsContainer, TitleContainer, TableHeaderTitle, TableHeaderRow } from './style';
|
|
17
17
|
export function TableHeader(_a) {
|
|
18
|
-
var { date, status, availableStatuses, showMaximizedView, title, calendarMode, tableReportsComponent, tableFilterComponent, onStatusChange, onViewChange, onDateChange, onCalendarModeSwitch, filteredIds, onCancelFilteredIdsClick, isFilteredIdsShown, cardNumber, leftActions, rightActions, isReportsButtonVisible, onSearchChange, onToggleViewButtonClick, leftComponent, tableViews, setTableViews, resetTableViews, onToggleTextButtonClick, calendarGroupBy, onCalendarGroupChange, children, maxDateRange, isAcceptance, startComponent, searchPlaceholder, tableMode, timezone, browserTimezone, defaultCountryTimezone, onChangeTimezone, segmentCountries = [], customViews, onCreateCustomView, onEditCustomView, onDeleteCustomView, onTableViewsChange, initialTableViews, onCustomViewsChange, initialCustomViews, layoutData, templates, lang } = _a, StatusBarProps = __rest(_a, ["date", "status", "availableStatuses", "showMaximizedView", "title", "calendarMode", "tableReportsComponent", "tableFilterComponent", "onStatusChange", "onViewChange", "onDateChange", "onCalendarModeSwitch", "filteredIds", "onCancelFilteredIdsClick", "isFilteredIdsShown", "cardNumber", "leftActions", "rightActions", "isReportsButtonVisible", "onSearchChange", "onToggleViewButtonClick", "leftComponent", "tableViews", "setTableViews", "resetTableViews", "onToggleTextButtonClick", "calendarGroupBy", "onCalendarGroupChange", "children", "maxDateRange", "isAcceptance", "startComponent", "searchPlaceholder", "tableMode", "timezone", "browserTimezone", "defaultCountryTimezone", "onChangeTimezone", "segmentCountries", "customViews", "onCreateCustomView", "onEditCustomView", "onDeleteCustomView", "onTableViewsChange", "initialTableViews", "onCustomViewsChange", "initialCustomViews", "layoutData", "templates", "lang"]);
|
|
19
|
-
const filtersRow = (_jsx(FiltersRow, { date: date, calendarMode: calendarMode, onDateChange: onDateChange, onCalendarModeSwitch: onCalendarModeSwitch, tableReportsComponent: tableReportsComponent, tableFilterComponent: tableFilterComponent, onViewChange: onViewChange, leftActions: leftActions, rightActions: rightActions, onSearchChange: onSearchChange, onToggleViewButtonClick: onToggleViewButtonClick, isReportsButtonVisible: isReportsButtonVisible, tableViews: tableViews, setTableViews: setTableViews, resetTableViews: resetTableViews, onToggleTextButtonClick: onToggleTextButtonClick, tableMode: tableMode, onCalendarGroupChange: onCalendarGroupChange, calendarGroupBy: calendarGroupBy, maxDateRange: maxDateRange, isAcceptance: isAcceptance, searchPlaceholder: searchPlaceholder, timezone: timezone, browserTimezone: browserTimezone, defaultCountryTimezone: defaultCountryTimezone, onChangeTimezone: onChangeTimezone, segmentCountries: segmentCountries, customViews: customViews, onCreateCustomView: onCreateCustomView, onEditCustomView: onEditCustomView, onDeleteCustomView: onDeleteCustomView, onTableViewsChange: onTableViewsChange, initialTableViews: initialTableViews, onCustomViewsChange: onCustomViewsChange, initialCustomViews: initialCustomViews, layoutData: layoutData, templates: templates, lang: lang }));
|
|
18
|
+
var { date, status, availableStatuses, showMaximizedView, title, calendarMode, tableReportsComponent, tableFilterComponent, onStatusChange, onViewChange, onDateChange, onCalendarModeSwitch, filteredIds, onCancelFilteredIdsClick, isFilteredIdsShown, cardNumber, leftActions, rightActions, isReportsButtonVisible, onSearchChange, onToggleViewButtonClick, leftComponent, tableViews, setTableViews, resetTableViews, onToggleTextButtonClick, calendarGroupBy, onCalendarGroupChange, children, maxDateRange, isAcceptance, startComponent, searchPlaceholder, tableMode, timezone, browserTimezone, defaultCountryTimezone, onChangeTimezone, segmentCountries = [], customViews, onCreateCustomView, onEditCustomView, onDeleteCustomView, onTableViewsChange, initialTableViews, onCustomViewsChange, initialCustomViews, layoutData, templates, lang, apiMetadata } = _a, StatusBarProps = __rest(_a, ["date", "status", "availableStatuses", "showMaximizedView", "title", "calendarMode", "tableReportsComponent", "tableFilterComponent", "onStatusChange", "onViewChange", "onDateChange", "onCalendarModeSwitch", "filteredIds", "onCancelFilteredIdsClick", "isFilteredIdsShown", "cardNumber", "leftActions", "rightActions", "isReportsButtonVisible", "onSearchChange", "onToggleViewButtonClick", "leftComponent", "tableViews", "setTableViews", "resetTableViews", "onToggleTextButtonClick", "calendarGroupBy", "onCalendarGroupChange", "children", "maxDateRange", "isAcceptance", "startComponent", "searchPlaceholder", "tableMode", "timezone", "browserTimezone", "defaultCountryTimezone", "onChangeTimezone", "segmentCountries", "customViews", "onCreateCustomView", "onEditCustomView", "onDeleteCustomView", "onTableViewsChange", "initialTableViews", "onCustomViewsChange", "initialCustomViews", "layoutData", "templates", "lang", "apiMetadata"]);
|
|
19
|
+
const filtersRow = (_jsx(FiltersRow, { date: date, calendarMode: calendarMode, onDateChange: onDateChange, onCalendarModeSwitch: onCalendarModeSwitch, tableReportsComponent: tableReportsComponent, tableFilterComponent: tableFilterComponent, onViewChange: onViewChange, leftActions: leftActions, rightActions: rightActions, onSearchChange: onSearchChange, onToggleViewButtonClick: onToggleViewButtonClick, isReportsButtonVisible: isReportsButtonVisible, tableViews: tableViews, setTableViews: setTableViews, resetTableViews: resetTableViews, onToggleTextButtonClick: onToggleTextButtonClick, tableMode: tableMode, onCalendarGroupChange: onCalendarGroupChange, calendarGroupBy: calendarGroupBy, maxDateRange: maxDateRange, isAcceptance: isAcceptance, searchPlaceholder: searchPlaceholder, timezone: timezone, browserTimezone: browserTimezone, defaultCountryTimezone: defaultCountryTimezone, onChangeTimezone: onChangeTimezone, segmentCountries: segmentCountries, customViews: customViews, onCreateCustomView: onCreateCustomView, onEditCustomView: onEditCustomView, onDeleteCustomView: onDeleteCustomView, onTableViewsChange: onTableViewsChange, initialTableViews: initialTableViews, onCustomViewsChange: onCustomViewsChange, initialCustomViews: initialCustomViews, layoutData: layoutData, templates: templates, lang: lang, apiMetadata: apiMetadata }));
|
|
20
20
|
return (_jsxs(TableHeaderWrapper, { children: [showMaximizedView && (_jsxs(TitleContainer, { children: [_jsx("span", { children: !!title && _jsx(TableHeaderTitle, { children: title }) }), filtersRow] }, "TitleContainer")), _jsxs(TableHeaderRow, Object.assign({ as: "section" }, { children: [_jsxs(StatusButtonsContainer, Object.assign({ as: "aside" }, { children: [startComponent, _jsx(StatusBar, Object.assign({ status: status, availableStatuses: availableStatuses, onStatusChange: onStatusChange, isFilteredIdsShown: isFilteredIdsShown }, StatusBarProps)), leftComponent, isFilteredIdsShown && (_jsx(FilteredIds, { cardNumber: cardNumber, Ids: filteredIds, isShown: isFilteredIdsShown, onCancelClick: onCancelFilteredIdsClick }, "FilteredIds"))] })), !showMaximizedView && filtersRow] }), "FiltersWrapper"), children] }));
|
|
21
21
|
}
|
|
22
22
|
export default memo(TableHeader);
|
|
@@ -63,7 +63,6 @@ function CreateViewDialog({ open, onClose, onCreate, availableColumns = [], defa
|
|
|
63
63
|
if (!editingView || isDeleting || isLoading)
|
|
64
64
|
return;
|
|
65
65
|
const templateId = editingView.templateId || editingView.id;
|
|
66
|
-
console.log({ templateId });
|
|
67
66
|
setIsDeleting(true);
|
|
68
67
|
try {
|
|
69
68
|
yield (onDelete === null || onDelete === void 0 ? void 0 : onDelete(templateId));
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import type { ViewSelectorProps } from './types';
|
|
3
|
-
declare function ViewSelector({ onViewChange, setIsViewVisible, setTableViews, tableViews: externalTableViews, resetTableViews, customViews: externalCustomViews, onCreateCustomView, onEditCustomView, onDeleteCustomView, tableMode, onTableViewsChange, onCustomViewsChange, templates, lang, }: ViewSelectorProps): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
declare function ViewSelector({ onViewChange, setIsViewVisible, setTableViews, tableViews: externalTableViews, resetTableViews, customViews: externalCustomViews, onCreateCustomView, onEditCustomView, onDeleteCustomView, tableMode, onTableViewsChange, onCustomViewsChange, templates, lang, apiMetadata, }: ViewSelectorProps): import("react/jsx-runtime").JSX.Element;
|
|
4
4
|
declare const _default: import("react").MemoExoticComponent<typeof ViewSelector>;
|
|
5
5
|
export default _default;
|
|
@@ -9,7 +9,7 @@ import CreateViewDialog from './CreateViewDialog';
|
|
|
9
9
|
import { ViewWrapper } from './styles';
|
|
10
10
|
import { useViewsManager } from './hooks';
|
|
11
11
|
import { useViewSelector } from './hooks/useViewSelector';
|
|
12
|
-
function ViewSelector({ onViewChange, setIsViewVisible, setTableViews, tableViews: externalTableViews, resetTableViews, customViews: externalCustomViews, onCreateCustomView, onEditCustomView, onDeleteCustomView, tableMode = 'default', onTableViewsChange, onCustomViewsChange, templates, lang = 'en', }) {
|
|
12
|
+
function ViewSelector({ onViewChange, setIsViewVisible, setTableViews, tableViews: externalTableViews, resetTableViews, customViews: externalCustomViews, onCreateCustomView, onEditCustomView, onDeleteCustomView, tableMode = 'default', onTableViewsChange, onCustomViewsChange, templates, lang = 'en', apiMetadata, }) {
|
|
13
13
|
const { t } = useTranslation();
|
|
14
14
|
// Map tableMode to viewMode: 'sheet' → 'sheet', 'default' → 'advanced'
|
|
15
15
|
const mode = tableMode === 'sheet' ? 'sheet' : 'advanced';
|
|
@@ -37,6 +37,7 @@ function ViewSelector({ onViewChange, setIsViewVisible, setTableViews, tableView
|
|
|
37
37
|
setInternalCustomViews,
|
|
38
38
|
setInternalTableViews,
|
|
39
39
|
setDefaultColumns,
|
|
40
|
+
apiMetadata,
|
|
40
41
|
});
|
|
41
42
|
return (_jsxs(_Fragment, { children: [_jsx(ClickAwayListener, Object.assign({ onClickAway: handleCloseViewDropdown }, { children: _jsxs(ViewWrapper, Object.assign({ sx: { width: '32px' }, "data-testid": "ViewSelector" }, { children: [_jsx(StyledButton, Object.assign({ title: t('tableView'), "data-testid": "ViewSelector_button", onClick: handleViewButtonClick }, { children: _jsx(Icon, { src: viewIcon, alt: "view", sx: { width: 14, height: 14 } }) })), _jsx(ViewsDropdown, { open: Boolean(defaultViewEl), anchorEl: anchorViewEl, setSelectedViewInfo: handleSelectedViewInfo, selectedViewInfo: selectedViewInfo, onSelect: (e, selectedView) => {
|
|
42
43
|
setDefaultViewElement(defaultViewEl ? null : e.currentTarget);
|
|
@@ -39,16 +39,34 @@ function ViewsDropdown({ open, selectedViewInfo, setSelectedViewInfo, onSelect,
|
|
|
39
39
|
// Default templates are merged into built-in Default view, so no need to sort
|
|
40
40
|
const viewList = [...defaultViewList, ...customViews];
|
|
41
41
|
const handleViewClick = (item) => {
|
|
42
|
+
// Mark as if Okay was clicked to prevent restoring original state
|
|
43
|
+
// When clicking directly on a view item, user wants to apply the view as-is
|
|
44
|
+
setIsOkayClicked(true);
|
|
45
|
+
// Close submenu immediately when clicking on a view (don't wait for hover to end)
|
|
46
|
+
forceCloseSubmenu();
|
|
47
|
+
// Clear original state since we're committing to this view
|
|
48
|
+
clearOriginalState();
|
|
42
49
|
if (item.columns)
|
|
43
50
|
setViews === null || setViews === void 0 ? void 0 : setViews(item.columns);
|
|
44
|
-
//
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
51
|
+
// For default view, construct a complete view object with submenu (defaultColumns)
|
|
52
|
+
// For custom views, pass the view object as-is
|
|
53
|
+
let viewToPass;
|
|
54
|
+
if (item.id === 'default') {
|
|
55
|
+
// Create a complete default view with current default columns
|
|
56
|
+
viewToPass = {
|
|
57
|
+
id: 'default',
|
|
58
|
+
label: item.label,
|
|
59
|
+
submenu: defaultColumns,
|
|
60
|
+
columns: defaultColumns.map((col) => col.name),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
else if (item.isCustom) {
|
|
64
|
+
viewToPass = item;
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
viewToPass = undefined;
|
|
68
|
+
}
|
|
69
|
+
// Update selected view info with the view object - this will trigger view change
|
|
52
70
|
setSelectedViewInfo(item, viewToPass);
|
|
53
71
|
};
|
|
54
72
|
const toggleColumnSelection = (columnName) => {
|
|
@@ -181,7 +199,6 @@ function ViewsDropdown({ open, selectedViewInfo, setSelectedViewInfo, onSelect,
|
|
|
181
199
|
height: 15,
|
|
182
200
|
}, className: "check-icon", src: smallBlueCheckIcon, alt: "check" })) : (_jsx(Space, {})), _jsxs("span", Object.assign({ style: { flex: 1, fontSize: 11 } }, { children: [item.label, item.id === 'default' && isDefaultModified && _jsx("span", Object.assign({ style: ModifiedTextSx }, { children: "(Modified)" }))] })), item.isCustom && hoveredCustomView === item.id && (_jsx("img", { src: editIcon, alt: "edit", style: { width: 12, height: 12, cursor: 'pointer' }, onClick: (e) => {
|
|
183
201
|
e.stopPropagation();
|
|
184
|
-
onSelect(e);
|
|
185
202
|
onEditCustomView === null || onEditCustomView === void 0 ? void 0 : onEditCustomView(item);
|
|
186
203
|
} })), !item.isCustom && hasSubmenu(item, defaultColumns) && _jsx("img", { src: blackRightArrowIcon, alt: "arrow", style: { height: 12 } })] }), item.id))), _jsx(Tooltip, Object.assign({ title: "Limit reached. Delete a view to create a new one.", placement: "left", disableHoverListener: !shouldDimNewCustomView }, { children: _jsxs(StyledMenuItem, Object.assign({ sx: {
|
|
187
204
|
border: 'none',
|
|
@@ -194,7 +211,6 @@ function ViewsDropdown({ open, selectedViewInfo, setSelectedViewInfo, onSelect,
|
|
|
194
211
|
}
|
|
195
212
|
e.stopPropagation();
|
|
196
213
|
handleSubmenuLeave();
|
|
197
|
-
onSelect(e);
|
|
198
214
|
onCreateCustomView === null || onCreateCustomView === void 0 ? void 0 : onCreateCustomView(false); // Don't use current state for "New Custom View"
|
|
199
215
|
} }, { children: [_jsx(Space, {}), _jsxs(Box, Object.assign({ sx: { display: 'flex', alignItems: 'center', gap: 0.5 } }, { children: [_jsx("img", { src: bluePlusIcon, alt: "icon", style: { opacity: shouldDimNewCustomView ? 0.5 : 1, width: 10, height: 10 } }), _jsx("span", Object.assign({ style: { color: shouldDimNewCustomView ? '#999' : '#1F88D0', fontSize: 11, fontWeight: 500 } }, { children: t('New Custom View') }))] })), _jsx(SpaceAfter, {})] })) }))] }) })), hoveredItem && submenuAnchorEl && getHoveredSubmenu().length > 0 && (_jsx(Menu, Object.assign({ open: Boolean(hoveredItem), anchorEl: submenuAnchorEl, placement: "auto-end", onMouseEnter: handleSubmenuEnter, onMouseLeave: handleSubmenuLeave, modifiers: [
|
|
200
216
|
{
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type MouseEvent } from 'react';
|
|
2
2
|
import type { ColumnViewProps } from '../../../../types/index.js';
|
|
3
|
-
import type { ViewMenuItem, LayoutSection, ViewMode } from '../types';
|
|
3
|
+
import type { ViewMenuItem, LayoutSection, ViewMode, TemplateAPIMetadata } from '../types';
|
|
4
4
|
import type { ViewOption } from '../../type';
|
|
5
5
|
export interface UseViewSelectorProps {
|
|
6
6
|
mode: ViewMode;
|
|
@@ -30,8 +30,9 @@ export interface UseViewSelectorProps {
|
|
|
30
30
|
setInternalCustomViews: (views: ViewMenuItem[]) => void;
|
|
31
31
|
setInternalTableViews: (views: ColumnViewProps[]) => void;
|
|
32
32
|
setDefaultColumns?: (columns: ColumnViewProps[]) => void;
|
|
33
|
+
apiMetadata?: TemplateAPIMetadata;
|
|
33
34
|
}
|
|
34
|
-
export declare const useViewSelector: ({ mode, onViewChange, onTableViewsChange, onCustomViewsChange, onCreateCustomView, onEditCustomView, onDeleteCustomView, resetTableViews, setTableViews, tableViews, customViews, defaultColumns, defaultTemplate, setInternalCustomViews, setInternalTableViews, setDefaultColumns, }: UseViewSelectorProps) => {
|
|
35
|
+
export declare const useViewSelector: ({ mode, onViewChange, onTableViewsChange, onCustomViewsChange, onCreateCustomView, onEditCustomView, onDeleteCustomView, resetTableViews, setTableViews, tableViews, customViews, defaultColumns, defaultTemplate, setInternalCustomViews, setInternalTableViews, setDefaultColumns, apiMetadata, }: UseViewSelectorProps) => {
|
|
35
36
|
anchorViewEl: HTMLDivElement | null;
|
|
36
37
|
defaultViewEl: HTMLDivElement | null;
|
|
37
38
|
setDefaultViewElement: import("react").Dispatch<import("react").SetStateAction<HTMLDivElement | null>>;
|
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
};
|
|
10
10
|
import { useState, useCallback, useEffect, useRef } from 'react';
|
|
11
11
|
import { createCustomViewMenuItem } from '../utils';
|
|
12
|
-
export const useViewSelector = ({ mode, onViewChange, onTableViewsChange, onCustomViewsChange, onCreateCustomView, onEditCustomView, onDeleteCustomView, resetTableViews, setTableViews, tableViews, customViews, defaultColumns, defaultTemplate, setInternalCustomViews, setInternalTableViews, setDefaultColumns, }) => {
|
|
12
|
+
export const useViewSelector = ({ mode, onViewChange, onTableViewsChange, onCustomViewsChange, onCreateCustomView, onEditCustomView, onDeleteCustomView, resetTableViews, setTableViews, tableViews, customViews, defaultColumns, defaultTemplate, setInternalCustomViews, setInternalTableViews, setDefaultColumns, apiMetadata, }) => {
|
|
13
13
|
const [anchorViewEl, setAnchorViewEl] = useState(null);
|
|
14
14
|
const [defaultViewEl, setDefaultViewElement] = useState(null);
|
|
15
15
|
const [isCreateDialogOpen, setIsCreateDialogOpen] = useState(false);
|
|
@@ -51,7 +51,6 @@ export const useViewSelector = ({ mode, onViewChange, onTableViewsChange, onCust
|
|
|
51
51
|
return;
|
|
52
52
|
// Use defaultTemplate if available, otherwise undefined (built-in default view)
|
|
53
53
|
const initialView = defaultTemplate || undefined;
|
|
54
|
-
console.log('initialView', initialView);
|
|
55
54
|
setSelectedView(initialView);
|
|
56
55
|
onViewChange === null || onViewChange === void 0 ? void 0 : onViewChange(initialView);
|
|
57
56
|
hasInitializedRef.current = true;
|
|
@@ -81,7 +80,6 @@ export const useViewSelector = ({ mode, onViewChange, onTableViewsChange, onCust
|
|
|
81
80
|
setSelectedViewInfo(selected);
|
|
82
81
|
// Update selected view and notify parent
|
|
83
82
|
const newSelectedView = viewMenuItem || undefined;
|
|
84
|
-
console.log('newSelectedView', newSelectedView);
|
|
85
83
|
setSelectedView(newSelectedView);
|
|
86
84
|
onViewChange === null || onViewChange === void 0 ? void 0 : onViewChange(newSelectedView);
|
|
87
85
|
handleCloseViewDropdown();
|
|
@@ -112,7 +110,9 @@ export const useViewSelector = ({ mode, onViewChange, onTableViewsChange, onCust
|
|
|
112
110
|
const handleSaveView = useCallback((data) => __awaiter(void 0, void 0, void 0, function* () {
|
|
113
111
|
try {
|
|
114
112
|
if (editingView) {
|
|
115
|
-
|
|
113
|
+
// Use templateId for API calls, not the internal view id
|
|
114
|
+
const templateId = editingView.templateId || editingView.id;
|
|
115
|
+
yield (onEditCustomView === null || onEditCustomView === void 0 ? void 0 : onEditCustomView(templateId, data));
|
|
116
116
|
// Update state after promise resolves successfully
|
|
117
117
|
const updatedView = Object.assign(Object.assign({}, editingView), { label: data.name, columns: data.selectedColumns.map((col) => col.name), submenu: data.selectedColumns });
|
|
118
118
|
const updatedViews = customViews.map((view) => (view.id === editingView.id ? updatedView : view));
|
|
@@ -140,7 +140,10 @@ export const useViewSelector = ({ mode, onViewChange, onTableViewsChange, onCust
|
|
|
140
140
|
}), [editingView, customViews, handleCustomViewsChange, onEditCustomView, onCreateCustomView, selectedView, onViewChange]);
|
|
141
141
|
const handleDeleteView = useCallback((viewId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
142
142
|
try {
|
|
143
|
-
|
|
143
|
+
// Find the view to get its templateId
|
|
144
|
+
const viewToDelete = customViews.find((view) => view.id === viewId);
|
|
145
|
+
const templateId = (viewToDelete === null || viewToDelete === void 0 ? void 0 : viewToDelete.templateId) || viewId;
|
|
146
|
+
yield (onDeleteCustomView === null || onDeleteCustomView === void 0 ? void 0 : onDeleteCustomView(templateId));
|
|
144
147
|
// Update state after promise resolves successfully
|
|
145
148
|
const updatedViews = customViews.filter((view) => view.id !== viewId);
|
|
146
149
|
handleCustomViewsChange(updatedViews);
|
|
@@ -5,7 +5,7 @@ export { default as CustomViews } from './CustomViews';
|
|
|
5
5
|
export { default as ViewSelector } from './ViewSelector';
|
|
6
6
|
export { default as ViewsDropdown } from './ViewsDropdown';
|
|
7
7
|
export { default as CreateViewDialog } from './CreateViewDialog';
|
|
8
|
-
export type { ViewMenuItem, ViewMode, CreateCustomViewDialogProps, LayoutSection, ColumnItem, FieldItem, TemplateResponse, TemplatesListResponse, } from './types';
|
|
8
|
+
export type { ViewMenuItem, ViewMode, CreateCustomViewDialogProps, LayoutSection, ColumnItem, FieldItem, TemplateResponse, TemplatesListResponse, TemplateAPIMetadata, CreateTemplatePayload, UpdateTemplatePayload, } from './types';
|
|
9
9
|
export { transformLayoutToColumns, getColumnsByMode, createCustomViewMenuItem, setViewAsDefault, transformTemplatesToViewMenuItems, convertColumnsToLayoutSection, isDateColumn, getColumnCheckState, } from './utils';
|
|
10
10
|
export { useSubmenuHover } from './hooks';
|
|
11
11
|
export { DIALOG_WIDTH, DIALOG_HEIGHT, MAX_CUSTOM_VIEWS, TEMPLATE_NAME_MAX_LENGTH } from './constants';
|
|
@@ -34,6 +34,23 @@ export interface LayoutSection {
|
|
|
34
34
|
code: string;
|
|
35
35
|
columns: ColumnItem[];
|
|
36
36
|
}
|
|
37
|
+
export interface TemplateAPIMetadata {
|
|
38
|
+
segment: string;
|
|
39
|
+
app: string;
|
|
40
|
+
service: string;
|
|
41
|
+
user: {
|
|
42
|
+
id: string;
|
|
43
|
+
};
|
|
44
|
+
master_template_id?: string;
|
|
45
|
+
}
|
|
46
|
+
export interface CreateTemplatePayload extends TemplateAPIMetadata {
|
|
47
|
+
name: string;
|
|
48
|
+
layout: LayoutSection[];
|
|
49
|
+
}
|
|
50
|
+
export interface UpdateTemplatePayload extends TemplateAPIMetadata {
|
|
51
|
+
name: string;
|
|
52
|
+
layout: LayoutSection[];
|
|
53
|
+
}
|
|
37
54
|
export interface TemplateResponse {
|
|
38
55
|
templateId: string;
|
|
39
56
|
segment: string;
|
|
@@ -117,6 +134,7 @@ export interface ViewSelectorProps {
|
|
|
117
134
|
layoutData?: LayoutSection[];
|
|
118
135
|
templates?: TemplatesListResponse | TemplateResponse[];
|
|
119
136
|
lang?: string;
|
|
137
|
+
apiMetadata?: TemplateAPIMetadata;
|
|
120
138
|
}
|
|
121
139
|
export interface ViewsDropdownProps {
|
|
122
140
|
open: boolean;
|
|
@@ -2,7 +2,7 @@ import React, { ReactNode } from 'react';
|
|
|
2
2
|
import type { CalenderMode, TableHeaderStatus, ColumnViewProps, TableMode, Timezone, SegmentCountry } from '../../types/index.js';
|
|
3
3
|
import { AvailableStatus } from '../StatusBar/type';
|
|
4
4
|
import { PartialExcept } from '../../types/index.js';
|
|
5
|
-
import type { ViewMenuItem, LayoutSection } from './TableView/types';
|
|
5
|
+
import type { ViewMenuItem, LayoutSection, TemplateAPIMetadata } from './TableView/types';
|
|
6
6
|
type ViewsOptions = {
|
|
7
7
|
default: {};
|
|
8
8
|
developer: {};
|
|
@@ -64,6 +64,7 @@ export interface TableHeaderProps<IStatus extends TableHeaderStatus | TableHeade
|
|
|
64
64
|
layoutData?: import('./TableView/types').LayoutSection[];
|
|
65
65
|
templates?: import('./TableView/types').TemplatesListResponse | import('./TableView/types').TemplateResponse[];
|
|
66
66
|
lang?: string;
|
|
67
|
+
apiMetadata?: TemplateAPIMetadata;
|
|
67
68
|
onToggleTextButtonClick?: () => void;
|
|
68
69
|
children?: ReactNode;
|
|
69
70
|
calendarGroupBy?: string;
|
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.373-test.2-test.3-test.4-test.5",
|
|
5
|
-
"testVersion":
|
|
4
|
+
"version": "0.1.373-test.2-test.3-test.4-test.5-test.6-test.7",
|
|
5
|
+
"testVersion": 7,
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "build/index.js",
|
|
8
8
|
"module": "build/index.js",
|