@bit.rhplus/ag-grid 0.0.114 → 0.0.115
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/AgGridOnRowDataChanged.js +3 -8
- package/CheckBoxRenderer.jsx +1 -0
- package/Components/ExtendButton.jsx +1 -0
- package/Renderers/CheckboxRenderer.jsx +1 -0
- package/Renderers/CountrySelectRenderer.jsx +1 -0
- package/Renderers/SelectCellRenderer.jsx +1 -0
- package/dist/AgGridAddNewItem.d.ts +1 -0
- package/dist/AgGridAddNewItem.js +6 -0
- package/dist/AgGridAddNewItem.js.map +1 -0
- package/dist/AgGridColumn.d.ts +3 -0
- package/dist/AgGridColumn.js +357 -0
- package/dist/AgGridColumn.js.map +1 -0
- package/dist/AgGridColumnFilter.d.ts +4 -0
- package/dist/AgGridColumnFilter.js +19 -0
- package/dist/AgGridColumnFilter.js.map +1 -0
- package/dist/AgGridOnGridReady.d.ts +1 -0
- package/dist/AgGridOnGridReady.js +6 -0
- package/dist/AgGridOnGridReady.js.map +1 -0
- package/dist/AgGridOnRowDataChanged.d.ts +1 -0
- package/dist/AgGridOnRowDataChanged.js +4 -0
- package/dist/AgGridOnRowDataChanged.js.map +1 -0
- package/dist/AgGridOnRowDataUpdated.d.ts +1 -0
- package/dist/AgGridOnRowDataUpdated.js +27 -0
- package/dist/AgGridOnRowDataUpdated.js.map +1 -0
- package/dist/AgGridPostSort.d.ts +1 -0
- package/dist/AgGridPostSort.js +32 -0
- package/dist/AgGridPostSort.js.map +1 -0
- package/dist/AggregationNotification.d.ts +1 -0
- package/dist/AggregationNotification.js +121 -0
- package/dist/AggregationNotification.js.map +1 -0
- package/dist/AggregationStatusBar.d.ts +3 -0
- package/dist/AggregationStatusBar.js +122 -0
- package/dist/AggregationStatusBar.js.map +1 -0
- package/dist/Aggregations.d.ts +2 -0
- package/dist/Aggregations.js +313 -0
- package/dist/Aggregations.js.map +1 -0
- package/dist/BulkEdit/BulkEditButton.d.ts +14 -0
- package/dist/BulkEdit/BulkEditButton.js +140 -0
- package/dist/BulkEdit/BulkEditButton.js.map +1 -0
- package/dist/BulkEdit/BulkEditDatePicker.d.ts +11 -0
- package/dist/BulkEdit/BulkEditDatePicker.js +160 -0
- package/dist/BulkEdit/BulkEditDatePicker.js.map +1 -0
- package/dist/BulkEdit/BulkEditInput.d.ts +14 -0
- package/dist/BulkEdit/BulkEditInput.js +34 -0
- package/dist/BulkEdit/BulkEditInput.js.map +1 -0
- package/dist/BulkEdit/BulkEditModule.d.ts +11 -0
- package/dist/BulkEdit/BulkEditModule.js +34 -0
- package/dist/BulkEdit/BulkEditModule.js.map +1 -0
- package/dist/BulkEdit/BulkEditPopover.d.ts +14 -0
- package/dist/BulkEdit/BulkEditPopover.js +125 -0
- package/dist/BulkEdit/BulkEditPopover.js.map +1 -0
- package/dist/BulkEdit/BulkEditSelect.d.ts +18 -0
- package/dist/BulkEdit/BulkEditSelect.js +56 -0
- package/dist/BulkEdit/BulkEditSelect.js.map +1 -0
- package/dist/BulkEdit/BulkEditTagsSelect.d.ts +15 -0
- package/dist/BulkEdit/BulkEditTagsSelect.js +45 -0
- package/dist/BulkEdit/BulkEditTagsSelect.js.map +1 -0
- package/dist/BulkEdit/index.d.ts +1 -0
- package/dist/BulkEdit/index.js +11 -0
- package/dist/BulkEdit/index.js.map +1 -0
- package/dist/BulkEdit/useBulkCellEdit.d.ts +1 -0
- package/dist/BulkEdit/useBulkCellEdit.js +397 -0
- package/dist/BulkEdit/useBulkCellEdit.js.map +1 -0
- package/dist/BulkEdit/utils.d.ts +7 -0
- package/dist/BulkEdit/utils.js +568 -0
- package/dist/BulkEdit/utils.js.map +1 -0
- package/dist/CheckBoxRenderer.d.ts +6 -0
- package/dist/CheckBoxRenderer.js +19 -0
- package/dist/CheckBoxRenderer.js.map +1 -0
- package/dist/Components/ExtendButton.css +6 -0
- package/dist/Components/ExtendButton.d.ts +2 -0
- package/dist/Components/ExtendButton.js +13 -0
- package/dist/Components/ExtendButton.js.map +1 -0
- package/dist/CountryCellRenderer.d.ts +1 -0
- package/dist/CountryCellRenderer.js +12 -0
- package/dist/CountryCellRenderer.js.map +1 -0
- package/dist/Editors/DatePickerEditor.d.ts +9 -0
- package/dist/Editors/DatePickerEditor.js +55 -0
- package/dist/Editors/DatePickerEditor.js.map +1 -0
- package/dist/Editors/index.d.ts +1 -0
- package/dist/Editors/index.js +2 -0
- package/dist/Editors/index.js.map +1 -0
- package/dist/Functions/index.d.ts +2 -0
- package/dist/Functions/index.js +27 -0
- package/dist/Functions/index.js.map +1 -0
- package/dist/HeaderTemplates/CommonHeaderTemplate.d.ts +1 -0
- package/dist/HeaderTemplates/CommonHeaderTemplate.js +15 -0
- package/dist/HeaderTemplates/CommonHeaderTemplate.js.map +1 -0
- package/dist/HyperModuleEditor.d.ts +1 -0
- package/dist/HyperModuleEditor.js +119 -0
- package/dist/HyperModuleEditor.js.map +1 -0
- package/dist/HyperModuleRenderer.d.ts +1 -0
- package/dist/HyperModuleRenderer.js +138 -0
- package/dist/HyperModuleRenderer.js.map +1 -0
- package/dist/NotificationOptions.d.ts +10 -0
- package/dist/NotificationOptions.js +80 -0
- package/dist/NotificationOptions.js.map +1 -0
- package/dist/OnCellDoubleClicked.d.ts +1 -0
- package/dist/OnCellDoubleClicked.js +6 -0
- package/dist/OnCellDoubleClicked.js.map +1 -0
- package/dist/OnCellEditingStarted.d.ts +1 -0
- package/dist/OnCellEditingStarted.js +7 -0
- package/dist/OnCellEditingStarted.js.map +1 -0
- package/dist/OnCellValueChanged.d.ts +1 -0
- package/dist/OnCellValueChanged.js +10 -0
- package/dist/OnCellValueChanged.js.map +1 -0
- package/dist/Renderers/BooleanRenderer.d.ts +3 -0
- package/dist/Renderers/BooleanRenderer.js +55 -0
- package/dist/Renderers/BooleanRenderer.js.map +1 -0
- package/dist/Renderers/ButtonRenderer.d.ts +3 -0
- package/dist/Renderers/ButtonRenderer.js +66 -0
- package/dist/Renderers/ButtonRenderer.js.map +1 -0
- package/dist/Renderers/CheckboxRenderer.d.ts +7 -0
- package/dist/Renderers/CheckboxRenderer.js +37 -0
- package/dist/Renderers/CheckboxRenderer.js.map +1 -0
- package/dist/Renderers/CountrySelectRenderer.d.ts +7 -0
- package/dist/Renderers/CountrySelectRenderer.js +56 -0
- package/dist/Renderers/CountrySelectRenderer.js.map +1 -0
- package/dist/Renderers/IconRenderer.d.ts +3 -0
- package/dist/Renderers/IconRenderer.js +187 -0
- package/dist/Renderers/IconRenderer.js.map +1 -0
- package/dist/Renderers/ImageRenderer.d.ts +3 -0
- package/dist/Renderers/ImageRenderer.js +58 -0
- package/dist/Renderers/ImageRenderer.js.map +1 -0
- package/dist/Renderers/LinkRenderer.d.ts +3 -0
- package/dist/Renderers/LinkRenderer.js +76 -0
- package/dist/Renderers/LinkRenderer.js.map +1 -0
- package/dist/Renderers/ObjectRenderer.d.ts +3 -0
- package/dist/Renderers/ObjectRenderer.js +96 -0
- package/dist/Renderers/ObjectRenderer.js.map +1 -0
- package/dist/Renderers/SelectCellRenderer.d.ts +4 -0
- package/dist/Renderers/SelectCellRenderer.js +19 -0
- package/dist/Renderers/SelectCellRenderer.js.map +1 -0
- package/dist/Renderers/SelectRenderer.d.ts +3 -0
- package/dist/Renderers/SelectRenderer.js +56 -0
- package/dist/Renderers/SelectRenderer.js.map +1 -0
- package/dist/Renderers/StateRenderer.d.ts +3 -0
- package/dist/Renderers/StateRenderer.js +137 -0
- package/dist/Renderers/StateRenderer.js.map +1 -0
- package/dist/Renderers/index.d.ts +1 -0
- package/dist/Renderers/index.js +2 -0
- package/dist/Renderers/index.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +868 -0
- package/dist/index.js.map +1 -0
- package/dist/preview-1773758831838.js +7 -0
- package/dist/util.d.ts +15 -0
- package/dist/util.js +108 -0
- package/dist/util.js.map +1 -0
- package/package.json +5 -5
- package/types/asset.d.ts +43 -0
- package/types/env.d.ts +15 -0
- package/types/style.d.ts +42 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { createMemoComparison } from '@bit.rhplus/react-memo';
|
|
5
|
+
import { CircleHelp, Check, X } from 'lucide-react';
|
|
6
|
+
// Memoized Icon component
|
|
7
|
+
const Icon = React.memo(({ innerValue, size, colorTrue, colorFalse, visibleTrue, visibleFalse, defaultIcon, defaultIconColor, iconStyle }) => {
|
|
8
|
+
if (innerValue === undefined ||
|
|
9
|
+
(!visibleFalse && !innerValue) ||
|
|
10
|
+
(!visibleTrue && innerValue)) {
|
|
11
|
+
if (defaultIcon)
|
|
12
|
+
return _jsx(CircleHelp, { size: size, color: defaultIconColor, style: iconStyle });
|
|
13
|
+
return _jsx("div", {});
|
|
14
|
+
}
|
|
15
|
+
if (innerValue)
|
|
16
|
+
return _jsx(Check, { size: size, color: colorTrue, style: iconStyle });
|
|
17
|
+
return _jsx(X, { size: size, color: colorFalse, style: iconStyle });
|
|
18
|
+
});
|
|
19
|
+
Icon.displayName = 'BooleanIcon';
|
|
20
|
+
// Icon style constant
|
|
21
|
+
const ICON_STYLE = {
|
|
22
|
+
display: 'inline-block',
|
|
23
|
+
height: '100%',
|
|
24
|
+
};
|
|
25
|
+
function BooleanRenderer(props) {
|
|
26
|
+
const { data, value, colDef: { booleanRendererParams = {} } = {} } = props;
|
|
27
|
+
if (!booleanRendererParams)
|
|
28
|
+
return null;
|
|
29
|
+
const { cellAlign, visibleGetter, showOnGroup, visibleTrue = true, visibleFalse = true, defaultIcon = true, defaultIconColor = '#898989', size = 16, colorTrue = 'green', colorFalse = 'red', } = booleanRendererParams;
|
|
30
|
+
const visibleResult = React.useMemo(() => visibleGetter ? visibleGetter(data) : true, [visibleGetter, data]);
|
|
31
|
+
const showCondition = React.useMemo(() => {
|
|
32
|
+
const newItem = (data && data._rh_plus_ag_grid_new_item) || false;
|
|
33
|
+
return !newItem && (showOnGroup || !!data) && visibleResult;
|
|
34
|
+
}, [data, showOnGroup, visibleResult]);
|
|
35
|
+
const containerStyle = React.useMemo(() => ({
|
|
36
|
+
width: '100%',
|
|
37
|
+
display: 'flex',
|
|
38
|
+
justifyContent: cellAlign ?? 'center',
|
|
39
|
+
alignItems: 'center',
|
|
40
|
+
height: '100%',
|
|
41
|
+
}), [cellAlign]);
|
|
42
|
+
if (!showCondition)
|
|
43
|
+
return null;
|
|
44
|
+
return (_jsx("span", { style: containerStyle, children: _jsx(Icon, { style: ICON_STYLE, innerValue: value, size: size, colorTrue: colorTrue, colorFalse: colorFalse, visibleTrue: visibleTrue, visibleFalse: visibleFalse, defaultIcon: defaultIcon, defaultIconColor: defaultIconColor, iconStyle: ICON_STYLE }) }));
|
|
45
|
+
}
|
|
46
|
+
// React.memo optimalizace pro AG-Grid renderer
|
|
47
|
+
// ✅ PERFORMANCE FIX: colDef NESMÍ být v kritických props!
|
|
48
|
+
// AG Grid v35 s deferRender posílá novou referenci colDef při selection change
|
|
49
|
+
// To způsobuje rerender všech buněk → šedé loading buňky
|
|
50
|
+
// Renderer rerenduje pouze když se změní value nebo data
|
|
51
|
+
const arePropsEqual = createMemoComparison(['value', 'data'], // ✅ Pouze value a data
|
|
52
|
+
['colDef'], // ✅ colDef je ignorováno (obsahuje jen params)
|
|
53
|
+
false, 'BooleanRenderer');
|
|
54
|
+
export default React.memo(BooleanRenderer, arePropsEqual);
|
|
55
|
+
//# sourceMappingURL=BooleanRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BooleanRenderer.js","sourceRoot":"","sources":["../../Renderers/BooleanRenderer.jsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
import React, { useState, useCallback, useMemo } from 'react';
|
|
4
|
+
import Button from 'antd/es/button';
|
|
5
|
+
import { createMemoComparison } from '@bit.rhplus/react-memo';
|
|
6
|
+
const DEFAULT_STYLE = {
|
|
7
|
+
fontSize: '12px'
|
|
8
|
+
};
|
|
9
|
+
const SPAN_STYLE = { flexGrow: 1 };
|
|
10
|
+
const LARGE_CONTAINER_STYLE = { display: 'flex', gap: '8px', width: '100%' };
|
|
11
|
+
const SMALL_CONTAINER_STYLE = { display: 'flex', gap: '8px' };
|
|
12
|
+
const LargeButton = React.memo(({ button, onClick, props }) => {
|
|
13
|
+
const { id, label, largeLabel, style, className, icon } = button;
|
|
14
|
+
const largeLabelValue = largeLabel instanceof Function ? largeLabel(props) : largeLabel;
|
|
15
|
+
const labelValue = label instanceof Function ? label(props) : label;
|
|
16
|
+
const buttonStyle = useMemo(() => ({ ...DEFAULT_STYLE, ...style }), [style]);
|
|
17
|
+
const handleClick = useCallback((e) => onClick(e, id), [onClick, id]);
|
|
18
|
+
return (_jsx(Button, { type: "primary", size: "small", onClick: handleClick, style: buttonStyle, className: className, icon: icon, children: largeLabelValue || labelValue }, id));
|
|
19
|
+
});
|
|
20
|
+
LargeButton.displayName = 'LargeButton';
|
|
21
|
+
const SmallButton = React.memo(({ button, onClick, props }) => {
|
|
22
|
+
const { id, label, style, className, icon } = button;
|
|
23
|
+
const labelValue = label instanceof Function ? label(props) : label;
|
|
24
|
+
const handleClick = useCallback((e) => onClick(e, id), [onClick, id]);
|
|
25
|
+
return (_jsx(Button, { type: "primary", size: "small", onClick: handleClick, style: style, className: className, icon: icon, children: labelValue }, id));
|
|
26
|
+
});
|
|
27
|
+
SmallButton.displayName = 'SmallButton';
|
|
28
|
+
function ButtonRenderer(props) {
|
|
29
|
+
const [hovered, setHovered] = useState(false);
|
|
30
|
+
const { value, colDef: { buttonRendererParams = {} } = {} } = props;
|
|
31
|
+
if (!buttonRendererParams)
|
|
32
|
+
return value;
|
|
33
|
+
const { visibleGetter, buttons = [] } = buttonRendererParams;
|
|
34
|
+
const onMouseEnter = useCallback(() => {
|
|
35
|
+
setHovered(true);
|
|
36
|
+
}, []);
|
|
37
|
+
const onMouseLeave = useCallback(() => {
|
|
38
|
+
setHovered(false);
|
|
39
|
+
}, []);
|
|
40
|
+
const onClick = useCallback((e, id) => {
|
|
41
|
+
e.preventDefault();
|
|
42
|
+
const { context: { componentParent: { onButtonClick } = {} } = {} } = props || {};
|
|
43
|
+
if (onButtonClick)
|
|
44
|
+
onButtonClick(props, id);
|
|
45
|
+
}, [props]);
|
|
46
|
+
const isEmptyValue = value === null || value === '' || value === undefined;
|
|
47
|
+
// ✅ FIX: Odstranit props z dependencies - props objekt se mění každý render
|
|
48
|
+
// visibleGetter je stabilní funkce, props bereme přímo z closure
|
|
49
|
+
const visible = useMemo(() => visibleGetter(props), [visibleGetter]);
|
|
50
|
+
const containerStyle = useMemo(() => ({
|
|
51
|
+
display: 'flex',
|
|
52
|
+
alignItems: 'center',
|
|
53
|
+
justifyContent: isEmptyValue ? 'center' : 'space-between',
|
|
54
|
+
height: '100%',
|
|
55
|
+
width: '100%',
|
|
56
|
+
}), [isEmptyValue]);
|
|
57
|
+
return (_jsxs("div", { className: "custom-cell-renderer", onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, style: containerStyle, children: [!isEmptyValue && _jsx("span", { style: SPAN_STYLE, children: value }), visible && hovered && buttons.length > 0 && (isEmptyValue ? (_jsx("div", { style: LARGE_CONTAINER_STYLE, children: buttons.map((button, index) => (_jsx(LargeButton, { button: button, onClick: onClick, props: props }, index))) })) : (_jsx("div", { style: SMALL_CONTAINER_STYLE, children: buttons.map((button, index) => (_jsx(SmallButton, { button: button, onClick: onClick, props: props }, index))) })))] }));
|
|
58
|
+
}
|
|
59
|
+
ButtonRenderer.displayName = 'ButtonRenderer';
|
|
60
|
+
// React.memo optimalizace s custom comparison
|
|
61
|
+
// AG-Grid renderery dostávají props které obsahují AG-Grid API reference
|
|
62
|
+
// ✅ PERFORMANCE FIX: colDef NESMÍ být v kritických props!
|
|
63
|
+
// AG Grid v35 s deferRender posílá novou referenci colDef při selection change
|
|
64
|
+
const arePropsEqual = createMemoComparison(['value', 'data'], ['colDef'], false, 'ButtonRenderer');
|
|
65
|
+
export default React.memo(ButtonRenderer, arePropsEqual);
|
|
66
|
+
//# sourceMappingURL=ButtonRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ButtonRenderer.js","sourceRoot":"","sources":["../../Renderers/ButtonRenderer.jsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
declare const _default: React.MemoExoticComponent<typeof CheckboxRenderer>;
|
|
2
|
+
export default _default;
|
|
3
|
+
declare function CheckboxRenderer(props: any): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
declare namespace CheckboxRenderer {
|
|
5
|
+
let displayName: string;
|
|
6
|
+
}
|
|
7
|
+
import * as React from 'react';
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
// Style constant
|
|
5
|
+
const CONTAINER_STYLE = {
|
|
6
|
+
textAlign: "center",
|
|
7
|
+
display: "flex",
|
|
8
|
+
alignItems: "center",
|
|
9
|
+
justifyContent: "center",
|
|
10
|
+
height: "100%",
|
|
11
|
+
};
|
|
12
|
+
// Memoizovaný CheckboxElement sub-komponenta
|
|
13
|
+
const CheckboxElement = React.memo(({ checked, onChange }) => (_jsx("input", { type: "checkbox", checked: checked, onChange: onChange })));
|
|
14
|
+
CheckboxElement.displayName = 'CheckboxElement';
|
|
15
|
+
function CheckboxRenderer(props) {
|
|
16
|
+
const { value, data, column: { colDef: { cellTypeParams: { showOnGroup, condition } = {} } = {} } = {}, } = props;
|
|
17
|
+
const onChange = React.useCallback((e) => {
|
|
18
|
+
e.preventDefault();
|
|
19
|
+
const { context: { componentParent: { onCheckboxChange } = {} } = {} } = props || {};
|
|
20
|
+
if (onCheckboxChange) {
|
|
21
|
+
onCheckboxChange(props);
|
|
22
|
+
}
|
|
23
|
+
}, [props]);
|
|
24
|
+
const visibleCondition = React.useMemo(() => condition ? condition(data) : true, [condition, data]);
|
|
25
|
+
const showCondition = React.useMemo(() => {
|
|
26
|
+
const newItem = (data && data._rh_plus_ag_grid_new_item) || false;
|
|
27
|
+
return !newItem && (showOnGroup || !!data) && visibleCondition;
|
|
28
|
+
}, [data, showOnGroup, visibleCondition]);
|
|
29
|
+
if (!showCondition)
|
|
30
|
+
return null;
|
|
31
|
+
if (value === undefined)
|
|
32
|
+
return null;
|
|
33
|
+
return (_jsx("div", { style: CONTAINER_STYLE, children: _jsx(CheckboxElement, { checked: value, onChange: onChange }) }));
|
|
34
|
+
}
|
|
35
|
+
CheckboxRenderer.displayName = 'CheckboxRenderer';
|
|
36
|
+
export default React.memo(CheckboxRenderer);
|
|
37
|
+
//# sourceMappingURL=CheckboxRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckboxRenderer.js","sourceRoot":"","sources":["../../Renderers/CheckboxRenderer.jsx"],"names":[],"mappings":";AAAA,oBAAoB;AACpB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,iBAAiB;AACjB,MAAM,eAAe,GAAG;IACtB,SAAS,EAAE,QAAQ;IACnB,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,cAAc,EAAE,QAAQ;IACxB,MAAM,EAAE,MAAM;CACf,CAAC;AAEF,6CAA6C;AAC7C,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAC5D,gBAAO,IAAI,EAAC,UAAU,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAChE,CAAC,CAAC;AAEH,eAAe,CAAC,WAAW,GAAG,iBAAiB,CAAC;AAEhD,SAAS,gBAAgB,CAAC,KAAK;IAC7B,MAAM,EACJ,KAAK,EACL,IAAI,EACJ,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAClF,GAAG,KAAK,CAAC;IAEV,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE;QACvC,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,MAAM,EAAE,OAAO,EAAE,EAAE,eAAe,EAAE,EAAE,gBAAgB,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,KAAK,IAAI,EAAE,CAAC;QACrF,IAAI,gBAAgB,EAAE,CAAC;YACrB,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAC1C,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAClC,CAAC,SAAS,EAAE,IAAI,CAAC,CAClB,CAAC;IAEF,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACvC,MAAM,OAAO,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,yBAAyB,CAAC,IAAI,KAAK,CAAC;QAClE,OAAO,CAAC,OAAO,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC;IACjE,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAE1C,IAAI,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAErC,OAAO,CACL,cAAK,KAAK,EAAE,eAAe,YACzB,KAAC,eAAe,IAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAI,GACnD,CACP,CAAC;AACJ,CAAC;AAED,gBAAgB,CAAC,WAAW,GAAG,kBAAkB,CAAC;AAElD,eAAe,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
declare const _default: React.MemoExoticComponent<typeof SimpleCountryCellRenderer>;
|
|
2
|
+
export default _default;
|
|
3
|
+
declare function SimpleCountryCellRenderer(params: any): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
declare namespace SimpleCountryCellRenderer {
|
|
5
|
+
let displayName: string;
|
|
6
|
+
}
|
|
7
|
+
import * as React from 'react';
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
// Style constants
|
|
5
|
+
const CONTAINER_STYLE = {
|
|
6
|
+
display: 'flex',
|
|
7
|
+
alignItems: 'center',
|
|
8
|
+
height: '100%',
|
|
9
|
+
};
|
|
10
|
+
const FLAG_WRAPPER_STYLE = {
|
|
11
|
+
marginLeft: 10,
|
|
12
|
+
marginRight: 10,
|
|
13
|
+
display: 'inline-flex',
|
|
14
|
+
alignItems: 'center',
|
|
15
|
+
};
|
|
16
|
+
const IMG_STYLE = {
|
|
17
|
+
marginTop: -5,
|
|
18
|
+
objectFit: 'contain',
|
|
19
|
+
};
|
|
20
|
+
// Memoizovaná CountryFlag sub-komponenta
|
|
21
|
+
const CountryFlag = React.memo(({ code, size = 16 }) => {
|
|
22
|
+
const [hasError, setHasError] = React.useState(false);
|
|
23
|
+
const imageUrl = React.useMemo(() => {
|
|
24
|
+
if (!code)
|
|
25
|
+
return "";
|
|
26
|
+
return `https://rhplus.blob.core.windows.net/countries/${code.toUpperCase()}.png`;
|
|
27
|
+
}, [code]);
|
|
28
|
+
const handleError = React.useCallback(() => {
|
|
29
|
+
setHasError(true);
|
|
30
|
+
}, []);
|
|
31
|
+
React.useEffect(() => {
|
|
32
|
+
setHasError(false);
|
|
33
|
+
}, [imageUrl]);
|
|
34
|
+
if (hasError || !imageUrl)
|
|
35
|
+
return null;
|
|
36
|
+
return (_jsx("img", { alt: "country flag", style: { ...IMG_STYLE, width: size, height: size }, src: imageUrl, loading: "lazy", onError: handleError }));
|
|
37
|
+
});
|
|
38
|
+
CountryFlag.displayName = 'CountryFlag';
|
|
39
|
+
function SimpleCountryCellRenderer(params) {
|
|
40
|
+
const { value = {}, data, column: { colDef: { cellTypeParams: { showOnGroup, condition } = {}, } = {}, } = {}, } = params;
|
|
41
|
+
const { id, name, code } = value;
|
|
42
|
+
// Memoizovaná visibleCondition
|
|
43
|
+
const visibleCondition = React.useMemo(() => condition ? condition(data) : true, [condition, data]);
|
|
44
|
+
const showCondition = React.useMemo(() => {
|
|
45
|
+
const newItem = (data && data._rh_plus_ag_grid_new_item) || false;
|
|
46
|
+
return !newItem && (showOnGroup || !!data) && visibleCondition;
|
|
47
|
+
}, [data, showOnGroup, visibleCondition]);
|
|
48
|
+
if (!showCondition)
|
|
49
|
+
return null;
|
|
50
|
+
if (!id || !code)
|
|
51
|
+
return null;
|
|
52
|
+
return (_jsxs("div", { style: CONTAINER_STYLE, children: [_jsx("span", { style: FLAG_WRAPPER_STYLE, children: _jsx(CountryFlag, { code: code, size: 16 }) }), name] }));
|
|
53
|
+
}
|
|
54
|
+
SimpleCountryCellRenderer.displayName = 'SimpleCountryCellRenderer';
|
|
55
|
+
export default React.memo(SimpleCountryCellRenderer);
|
|
56
|
+
//# sourceMappingURL=CountrySelectRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CountrySelectRenderer.js","sourceRoot":"","sources":["../../Renderers/CountrySelectRenderer.jsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { createMemoComparison } from '@bit.rhplus/react-memo';
|
|
5
|
+
import { CircleHelp } from 'lucide-react';
|
|
6
|
+
import * as LucideIcons from 'lucide-react';
|
|
7
|
+
// Helper funkce pro získání hodnoty z nested path (např. 'accountingType.icon')
|
|
8
|
+
const getValueByPath = (obj, path) => {
|
|
9
|
+
if (!path || !obj)
|
|
10
|
+
return undefined;
|
|
11
|
+
return path.split('.').reduce((acc, part) => acc?.[part], obj);
|
|
12
|
+
};
|
|
13
|
+
// Style constants
|
|
14
|
+
const ICON_WRAPPER_STYLE = {
|
|
15
|
+
display: 'inline-flex',
|
|
16
|
+
alignItems: 'center',
|
|
17
|
+
height: '100%',
|
|
18
|
+
flexShrink: 0,
|
|
19
|
+
};
|
|
20
|
+
const TEXT_WRAPPER_STYLE = {
|
|
21
|
+
flexShrink: 1,
|
|
22
|
+
minWidth: 0,
|
|
23
|
+
};
|
|
24
|
+
const BADGE_CONTAINER_BASE_STYLE = {
|
|
25
|
+
position: 'relative',
|
|
26
|
+
display: 'inline-flex',
|
|
27
|
+
alignItems: 'center',
|
|
28
|
+
justifyContent: 'center',
|
|
29
|
+
};
|
|
30
|
+
const BADGE_BASE_STYLE = {
|
|
31
|
+
position: 'absolute',
|
|
32
|
+
borderRadius: '50%',
|
|
33
|
+
minWidth: '16px',
|
|
34
|
+
height: '16px',
|
|
35
|
+
fontSize: '10px',
|
|
36
|
+
display: 'flex',
|
|
37
|
+
alignItems: 'center',
|
|
38
|
+
justifyContent: 'center',
|
|
39
|
+
fontWeight: 'bold',
|
|
40
|
+
lineHeight: 1,
|
|
41
|
+
zIndex: 1
|
|
42
|
+
};
|
|
43
|
+
function IconRenderer(props) {
|
|
44
|
+
const { data, value, colDef: { iconRendererParams = {} } = {} } = props;
|
|
45
|
+
if (!iconRendererParams)
|
|
46
|
+
return null;
|
|
47
|
+
const { cellAlign, visibleGetter, showOnGroup, icon, // Komponenta nebo funkce pro ikonu
|
|
48
|
+
iconField, // Cesta k poli s názvem ikony (např. 'accountingType.icon')
|
|
49
|
+
iconColor, // Barva ikony nebo funkce vracející barvu
|
|
50
|
+
badge, // Číslo nebo funkce pro badge
|
|
51
|
+
showZero = false, // Zda zobrazit badge když je hodnota 0
|
|
52
|
+
size = 16, iconLeft = false, iconRight = false, showText = true, textGap = 5, badgeColor = '#dc3545', badgeTextColor = 'white', badgePosition = 'top-right', } = iconRendererParams;
|
|
53
|
+
const visibleResult = React.useMemo(() => visibleGetter ? visibleGetter(data) : true, [visibleGetter, data]);
|
|
54
|
+
const getIconColor = React.useCallback(() => {
|
|
55
|
+
if (!iconColor)
|
|
56
|
+
return undefined;
|
|
57
|
+
if (typeof iconColor === 'function') {
|
|
58
|
+
return iconColor({ data, value, props });
|
|
59
|
+
}
|
|
60
|
+
return iconColor;
|
|
61
|
+
}, [iconColor, data, value, props]);
|
|
62
|
+
const renderIcon = React.useCallback((IconComponent, iconProps = {}) => {
|
|
63
|
+
const computedIconColor = getIconColor();
|
|
64
|
+
const finalStyle = {
|
|
65
|
+
fontSize: size,
|
|
66
|
+
...(iconProps.style || {}),
|
|
67
|
+
...(computedIconColor && { color: `${computedIconColor} !important` })
|
|
68
|
+
};
|
|
69
|
+
const finalIconProps = {
|
|
70
|
+
size,
|
|
71
|
+
style: finalStyle,
|
|
72
|
+
...(computedIconColor && { color: computedIconColor }),
|
|
73
|
+
...iconProps
|
|
74
|
+
};
|
|
75
|
+
let iconElement;
|
|
76
|
+
if (typeof IconComponent === 'function') {
|
|
77
|
+
iconElement = IconComponent({ data, value, ...finalIconProps });
|
|
78
|
+
}
|
|
79
|
+
else if (React.isValidElement(IconComponent)) {
|
|
80
|
+
iconElement = React.cloneElement(IconComponent, finalIconProps);
|
|
81
|
+
}
|
|
82
|
+
else if (IconComponent && typeof IconComponent === 'object' && IconComponent.$$typeof) {
|
|
83
|
+
iconElement = _jsx(IconComponent, { ...finalIconProps });
|
|
84
|
+
}
|
|
85
|
+
else if (typeof IconComponent === 'string') {
|
|
86
|
+
iconElement = _jsx("span", { style: finalStyle, children: IconComponent });
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
if (computedIconColor) {
|
|
92
|
+
return (_jsx("span", { style: {
|
|
93
|
+
color: computedIconColor,
|
|
94
|
+
display: 'inline-flex',
|
|
95
|
+
alignItems: 'center',
|
|
96
|
+
height: '100%'
|
|
97
|
+
}, children: iconElement }));
|
|
98
|
+
}
|
|
99
|
+
return iconElement;
|
|
100
|
+
}, [size, getIconColor, data, value]);
|
|
101
|
+
const badgeValue = React.useMemo(() => {
|
|
102
|
+
if (!badge)
|
|
103
|
+
return null;
|
|
104
|
+
if (typeof badge === 'function') {
|
|
105
|
+
return badge({ data, value });
|
|
106
|
+
}
|
|
107
|
+
return badge;
|
|
108
|
+
}, [badge, data, value]);
|
|
109
|
+
const badgePositionStyle = React.useMemo(() => {
|
|
110
|
+
const positions = {
|
|
111
|
+
'top-right': { top: '2px', right: '-2px' },
|
|
112
|
+
'top-left': { top: '2px', left: '-2px' },
|
|
113
|
+
'bottom-right': { bottom: '2px', right: '-2px' },
|
|
114
|
+
'bottom-left': { bottom: '2px', left: '-2px' }
|
|
115
|
+
};
|
|
116
|
+
return positions[badgePosition] || positions['top-right'];
|
|
117
|
+
}, [badgePosition]);
|
|
118
|
+
const badgeStyle = React.useMemo(() => ({
|
|
119
|
+
...BADGE_BASE_STYLE,
|
|
120
|
+
...badgePositionStyle,
|
|
121
|
+
backgroundColor: badgeColor,
|
|
122
|
+
color: badgeTextColor,
|
|
123
|
+
border: `1px solid ${badgeTextColor}`,
|
|
124
|
+
}), [badgePositionStyle, badgeColor, badgeTextColor]);
|
|
125
|
+
const Icon = React.useMemo(() => {
|
|
126
|
+
const iconElement = (() => {
|
|
127
|
+
// Priorita 1: Pokud je definován iconField, získej název ikony z dat a načti z Lucide
|
|
128
|
+
if (iconField) {
|
|
129
|
+
const iconName = getValueByPath(data, iconField);
|
|
130
|
+
if (iconName) {
|
|
131
|
+
const LucideIcon = LucideIcons[iconName];
|
|
132
|
+
if (LucideIcon) {
|
|
133
|
+
return _jsx(LucideIcon, { size: size });
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
// Pokud ikona z iconField neexistuje, vrať null (nic nezobrazit)
|
|
137
|
+
return null;
|
|
138
|
+
}
|
|
139
|
+
// Priorita 2: Použij icon prop (funkce nebo komponenta)
|
|
140
|
+
if (icon) {
|
|
141
|
+
return renderIcon(icon, {});
|
|
142
|
+
}
|
|
143
|
+
// Priorita 3: Default - nic nezobrazit pokud není ani iconField ani icon
|
|
144
|
+
return null;
|
|
145
|
+
})();
|
|
146
|
+
if (!badgeValue && (badgeValue !== 0 || !showZero)) {
|
|
147
|
+
return iconElement;
|
|
148
|
+
}
|
|
149
|
+
return (_jsxs("div", { style: BADGE_CONTAINER_BASE_STYLE, children: [iconElement, _jsx("span", { style: badgeStyle, children: badgeValue > 99 ? '99+' : badgeValue })] }));
|
|
150
|
+
}, [icon, iconField, renderIcon, badgeValue, showZero, badgeStyle, size, data]);
|
|
151
|
+
const showCondition = React.useMemo(() => {
|
|
152
|
+
const newItem = (data && data._rh_plus_ag_grid_new_item) || false;
|
|
153
|
+
return !newItem && (showOnGroup || !!data) && visibleResult;
|
|
154
|
+
}, [data, showOnGroup, visibleResult]);
|
|
155
|
+
const hasIcon = iconLeft || iconRight || (!iconLeft && !iconRight);
|
|
156
|
+
const hasText = showText && value != null && value !== '';
|
|
157
|
+
const content = React.useMemo(() => {
|
|
158
|
+
const iconElement = hasIcon ? (_jsx("div", { style: ICON_WRAPPER_STYLE, children: Icon })) : null;
|
|
159
|
+
const textElement = hasText ? (_jsx("span", { style: TEXT_WRAPPER_STYLE, children: value })) : null;
|
|
160
|
+
if (!hasIcon)
|
|
161
|
+
return textElement;
|
|
162
|
+
if (!hasText)
|
|
163
|
+
return iconElement;
|
|
164
|
+
if (iconRight) {
|
|
165
|
+
return (_jsxs(_Fragment, { children: [textElement, iconElement] }));
|
|
166
|
+
}
|
|
167
|
+
return (_jsxs(_Fragment, { children: [iconElement, textElement] }));
|
|
168
|
+
}, [hasIcon, hasText, Icon, value, iconRight]);
|
|
169
|
+
const containerStyle = React.useMemo(() => ({
|
|
170
|
+
width: '100%',
|
|
171
|
+
display: 'flex',
|
|
172
|
+
justifyContent: cellAlign ?? (hasText ? 'flex-start' : 'center'),
|
|
173
|
+
alignItems: 'center',
|
|
174
|
+
height: '100%',
|
|
175
|
+
gap: hasIcon && hasText ? `${textGap}px` : '0',
|
|
176
|
+
}), [cellAlign, hasText, hasIcon, textGap]);
|
|
177
|
+
if (!showCondition)
|
|
178
|
+
return null;
|
|
179
|
+
if (!hasIcon && !hasText)
|
|
180
|
+
return null;
|
|
181
|
+
return (_jsx("span", { style: containerStyle, children: content }));
|
|
182
|
+
}
|
|
183
|
+
// React.memo optimalizace pro AG-Grid renderer
|
|
184
|
+
// ✅ PERFORMANCE FIX: colDef NESMÍ být v kritických props!
|
|
185
|
+
const arePropsEqual = createMemoComparison(['value', 'data'], ['colDef'], false, 'IconRenderer');
|
|
186
|
+
export default React.memo(IconRenderer, arePropsEqual);
|
|
187
|
+
//# sourceMappingURL=IconRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IconRenderer.js","sourceRoot":"","sources":["../../Renderers/IconRenderer.jsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { createMemoComparison } from '@bit.rhplus/react-memo';
|
|
5
|
+
function ImageRenderer(props) {
|
|
6
|
+
const { data, value, colDef: { imageRendererParams = {} } = {} } = props;
|
|
7
|
+
if (!imageRendererParams)
|
|
8
|
+
return null;
|
|
9
|
+
const { cellAlign = 'center', visibleGetter, showOnGroup = false, imageUrl, fallbackText = true, alt, imageSize = 24, imageStyle, } = imageRendererParams;
|
|
10
|
+
const [hasError, setHasError] = React.useState(false);
|
|
11
|
+
const visibleResult = React.useMemo(() => visibleGetter ? visibleGetter(data) : true, [visibleGetter, data]);
|
|
12
|
+
const computedImageUrl = React.useMemo(() => {
|
|
13
|
+
if (!imageUrl)
|
|
14
|
+
return null;
|
|
15
|
+
if (typeof imageUrl === 'function') {
|
|
16
|
+
return imageUrl({ data, value, props });
|
|
17
|
+
}
|
|
18
|
+
return imageUrl;
|
|
19
|
+
}, [imageUrl, data, value, props]);
|
|
20
|
+
const handleImageError = React.useCallback(() => {
|
|
21
|
+
setHasError(true);
|
|
22
|
+
}, []);
|
|
23
|
+
React.useEffect(() => {
|
|
24
|
+
setHasError(false);
|
|
25
|
+
}, [computedImageUrl]);
|
|
26
|
+
const showCondition = React.useMemo(() => {
|
|
27
|
+
const newItem = (data && data._rh_plus_ag_grid_new_item) || false;
|
|
28
|
+
return !newItem && (showOnGroup || !!data) && visibleResult;
|
|
29
|
+
}, [data, showOnGroup, visibleResult]);
|
|
30
|
+
const containerStyle = React.useMemo(() => ({
|
|
31
|
+
width: '100%',
|
|
32
|
+
display: 'flex',
|
|
33
|
+
justifyContent: cellAlign || 'center',
|
|
34
|
+
alignItems: 'center',
|
|
35
|
+
height: '100%',
|
|
36
|
+
}), [cellAlign]);
|
|
37
|
+
const finalImageStyle = React.useMemo(() => ({
|
|
38
|
+
width: imageSize,
|
|
39
|
+
height: imageSize,
|
|
40
|
+
objectFit: 'contain',
|
|
41
|
+
...(typeof imageStyle === 'function' ? imageStyle({ data, value, props }) : imageStyle || {}),
|
|
42
|
+
}), [imageSize, imageStyle, data, value, props]);
|
|
43
|
+
if (!showCondition)
|
|
44
|
+
return null;
|
|
45
|
+
if (hasError || !computedImageUrl) {
|
|
46
|
+
if (fallbackText && value) {
|
|
47
|
+
return (_jsx("span", { style: containerStyle, children: value }));
|
|
48
|
+
}
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
return (_jsx("span", { style: containerStyle, children: _jsx("img", { src: computedImageUrl, alt: alt || value || 'Image', style: finalImageStyle, onError: handleImageError, loading: "lazy" }) }));
|
|
52
|
+
}
|
|
53
|
+
ImageRenderer.displayName = 'ImageRenderer';
|
|
54
|
+
// React.memo optimalizace pro AG-Grid renderer
|
|
55
|
+
// ✅ PERFORMANCE FIX: colDef NESMÍ být v kritických props!
|
|
56
|
+
const arePropsEqual = createMemoComparison(['value', 'data'], ['colDef'], false, 'ImageRenderer');
|
|
57
|
+
export default React.memo(ImageRenderer, arePropsEqual);
|
|
58
|
+
//# sourceMappingURL=ImageRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImageRenderer.js","sourceRoot":"","sources":["../../Renderers/ImageRenderer.jsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { createMemoComparison } from '@bit.rhplus/react-memo';
|
|
5
|
+
// Style constants
|
|
6
|
+
const CONTAINER_STYLE = {
|
|
7
|
+
width: '100%',
|
|
8
|
+
height: '100%',
|
|
9
|
+
display: 'flex',
|
|
10
|
+
alignItems: 'center',
|
|
11
|
+
};
|
|
12
|
+
const DEFAULT_LINK_STYLE = {
|
|
13
|
+
color: '#1a73e8',
|
|
14
|
+
textDecoration: 'none',
|
|
15
|
+
cursor: 'pointer',
|
|
16
|
+
};
|
|
17
|
+
const DEFAULT_HOVER_STYLE = {
|
|
18
|
+
textDecoration: 'underline',
|
|
19
|
+
};
|
|
20
|
+
function LinkRenderer(props) {
|
|
21
|
+
const { value, data, colDef: { linkRendererParams = {} } = {}, } = props;
|
|
22
|
+
const { onClick, linkStyle, hoverStyle, overviewToggle = false, showOnGroup = false, visibleGetter, } = linkRendererParams;
|
|
23
|
+
const [isHovered, setIsHovered] = React.useState(false);
|
|
24
|
+
const handleMouseEnter = React.useCallback(() => {
|
|
25
|
+
setIsHovered(true);
|
|
26
|
+
}, []);
|
|
27
|
+
const handleMouseLeave = React.useCallback(() => {
|
|
28
|
+
setIsHovered(false);
|
|
29
|
+
}, []);
|
|
30
|
+
const handleClick = React.useCallback((event) => {
|
|
31
|
+
event.stopPropagation();
|
|
32
|
+
if (overviewToggle && props.api) {
|
|
33
|
+
props.api.dispatchEvent({
|
|
34
|
+
type: 'overviewToggle',
|
|
35
|
+
data: props.data,
|
|
36
|
+
params: props,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
if (onClick) {
|
|
40
|
+
onClick(props);
|
|
41
|
+
}
|
|
42
|
+
}, [onClick, overviewToggle, props]);
|
|
43
|
+
const handleKeyPress = React.useCallback((event) => {
|
|
44
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
45
|
+
handleClick(event);
|
|
46
|
+
}
|
|
47
|
+
}, [handleClick]);
|
|
48
|
+
const visibleResult = React.useMemo(() => visibleGetter ? visibleGetter(data) : true, [visibleGetter, data]);
|
|
49
|
+
const showCondition = React.useMemo(() => {
|
|
50
|
+
const newItem = (data && data._rh_plus_ag_grid_new_item) || false;
|
|
51
|
+
return !newItem && (showOnGroup || !!data) && visibleResult;
|
|
52
|
+
}, [data, showOnGroup, visibleResult]);
|
|
53
|
+
const computedLinkStyle = React.useMemo(() => ({
|
|
54
|
+
...DEFAULT_LINK_STYLE,
|
|
55
|
+
...(typeof linkStyle === 'function'
|
|
56
|
+
? linkStyle(props)
|
|
57
|
+
: linkStyle || {}),
|
|
58
|
+
}), [linkStyle, props]);
|
|
59
|
+
const computedHoverStyle = React.useMemo(() => ({
|
|
60
|
+
...DEFAULT_LINK_STYLE,
|
|
61
|
+
...computedLinkStyle,
|
|
62
|
+
...DEFAULT_HOVER_STYLE,
|
|
63
|
+
...(typeof hoverStyle === 'function'
|
|
64
|
+
? hoverStyle(props)
|
|
65
|
+
: hoverStyle || {}),
|
|
66
|
+
}), [computedLinkStyle, hoverStyle, props]);
|
|
67
|
+
if (!showCondition || !value)
|
|
68
|
+
return null;
|
|
69
|
+
return (_jsx("div", { className: "link-cell-container", style: CONTAINER_STYLE, children: _jsx("span", { onClick: handleClick, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onKeyPress: handleKeyPress, style: isHovered ? computedHoverStyle : computedLinkStyle, role: "button", tabIndex: 0, children: value }) }));
|
|
70
|
+
}
|
|
71
|
+
LinkRenderer.displayName = 'LinkRenderer';
|
|
72
|
+
// React.memo optimalizace pro AG-Grid renderer
|
|
73
|
+
// ✅ PERFORMANCE FIX: colDef NESMÍ být v kritických props!
|
|
74
|
+
const arePropsEqual = createMemoComparison(['value', 'data'], ['colDef'], false, 'LinkRenderer');
|
|
75
|
+
export default React.memo(LinkRenderer, arePropsEqual);
|
|
76
|
+
//# sourceMappingURL=LinkRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkRenderer.js","sourceRoot":"","sources":["../../Renderers/LinkRenderer.jsx"],"names":[],"mappings":"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"}
|