@bit.rhplus/ag-grid 0.0.114 → 0.0.116

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/AgGridOnRowDataChanged.js +3 -8
  2. package/CheckBoxRenderer.jsx +1 -0
  3. package/Components/ExtendButton.jsx +1 -0
  4. package/Editors/ModuleLookupEditor.jsx +65 -0
  5. package/Editors/index.jsx +1 -0
  6. package/Renderers/CheckboxRenderer.jsx +1 -0
  7. package/Renderers/CountrySelectRenderer.jsx +1 -0
  8. package/Renderers/ModuleLookupRenderer.jsx +40 -0
  9. package/Renderers/SelectCellRenderer.jsx +1 -0
  10. package/Renderers/index.jsx +1 -0
  11. package/dist/AgGridAddNewItem.d.ts +1 -0
  12. package/dist/AgGridAddNewItem.js +6 -0
  13. package/dist/AgGridAddNewItem.js.map +1 -0
  14. package/dist/AgGridColumn.d.ts +3 -0
  15. package/dist/AgGridColumn.js +357 -0
  16. package/dist/AgGridColumn.js.map +1 -0
  17. package/dist/AgGridColumnFilter.d.ts +4 -0
  18. package/dist/AgGridColumnFilter.js +19 -0
  19. package/dist/AgGridColumnFilter.js.map +1 -0
  20. package/dist/AgGridOnGridReady.d.ts +1 -0
  21. package/dist/AgGridOnGridReady.js +6 -0
  22. package/dist/AgGridOnGridReady.js.map +1 -0
  23. package/dist/AgGridOnRowDataChanged.d.ts +1 -0
  24. package/dist/AgGridOnRowDataChanged.js +4 -0
  25. package/dist/AgGridOnRowDataChanged.js.map +1 -0
  26. package/dist/AgGridOnRowDataUpdated.d.ts +1 -0
  27. package/dist/AgGridOnRowDataUpdated.js +27 -0
  28. package/dist/AgGridOnRowDataUpdated.js.map +1 -0
  29. package/dist/AgGridPostSort.d.ts +1 -0
  30. package/dist/AgGridPostSort.js +32 -0
  31. package/dist/AgGridPostSort.js.map +1 -0
  32. package/dist/AggregationNotification.d.ts +1 -0
  33. package/dist/AggregationNotification.js +121 -0
  34. package/dist/AggregationNotification.js.map +1 -0
  35. package/dist/AggregationStatusBar.d.ts +3 -0
  36. package/dist/AggregationStatusBar.js +122 -0
  37. package/dist/AggregationStatusBar.js.map +1 -0
  38. package/dist/Aggregations.d.ts +2 -0
  39. package/dist/Aggregations.js +313 -0
  40. package/dist/Aggregations.js.map +1 -0
  41. package/dist/BulkEdit/BulkEditButton.d.ts +14 -0
  42. package/dist/BulkEdit/BulkEditButton.js +140 -0
  43. package/dist/BulkEdit/BulkEditButton.js.map +1 -0
  44. package/dist/BulkEdit/BulkEditDatePicker.d.ts +11 -0
  45. package/dist/BulkEdit/BulkEditDatePicker.js +160 -0
  46. package/dist/BulkEdit/BulkEditDatePicker.js.map +1 -0
  47. package/dist/BulkEdit/BulkEditInput.d.ts +14 -0
  48. package/dist/BulkEdit/BulkEditInput.js +34 -0
  49. package/dist/BulkEdit/BulkEditInput.js.map +1 -0
  50. package/dist/BulkEdit/BulkEditModule.d.ts +11 -0
  51. package/dist/BulkEdit/BulkEditModule.js +34 -0
  52. package/dist/BulkEdit/BulkEditModule.js.map +1 -0
  53. package/dist/BulkEdit/BulkEditPopover.d.ts +14 -0
  54. package/dist/BulkEdit/BulkEditPopover.js +125 -0
  55. package/dist/BulkEdit/BulkEditPopover.js.map +1 -0
  56. package/dist/BulkEdit/BulkEditSelect.d.ts +18 -0
  57. package/dist/BulkEdit/BulkEditSelect.js +56 -0
  58. package/dist/BulkEdit/BulkEditSelect.js.map +1 -0
  59. package/dist/BulkEdit/BulkEditTagsSelect.d.ts +15 -0
  60. package/dist/BulkEdit/BulkEditTagsSelect.js +45 -0
  61. package/dist/BulkEdit/BulkEditTagsSelect.js.map +1 -0
  62. package/dist/BulkEdit/index.d.ts +1 -0
  63. package/dist/BulkEdit/index.js +11 -0
  64. package/dist/BulkEdit/index.js.map +1 -0
  65. package/dist/BulkEdit/useBulkCellEdit.d.ts +1 -0
  66. package/dist/BulkEdit/useBulkCellEdit.js +397 -0
  67. package/dist/BulkEdit/useBulkCellEdit.js.map +1 -0
  68. package/dist/BulkEdit/utils.d.ts +7 -0
  69. package/dist/BulkEdit/utils.js +568 -0
  70. package/dist/BulkEdit/utils.js.map +1 -0
  71. package/dist/CheckBoxRenderer.d.ts +6 -0
  72. package/dist/CheckBoxRenderer.js +19 -0
  73. package/dist/CheckBoxRenderer.js.map +1 -0
  74. package/dist/Components/ExtendButton.css +6 -0
  75. package/dist/Components/ExtendButton.d.ts +2 -0
  76. package/dist/Components/ExtendButton.js +13 -0
  77. package/dist/Components/ExtendButton.js.map +1 -0
  78. package/dist/CountryCellRenderer.d.ts +1 -0
  79. package/dist/CountryCellRenderer.js +12 -0
  80. package/dist/CountryCellRenderer.js.map +1 -0
  81. package/dist/Editors/DatePickerEditor.d.ts +9 -0
  82. package/dist/Editors/DatePickerEditor.js +55 -0
  83. package/dist/Editors/DatePickerEditor.js.map +1 -0
  84. package/dist/Editors/ModuleLookupEditor.d.ts +8 -0
  85. package/dist/Editors/ModuleLookupEditor.js +43 -0
  86. package/dist/Editors/ModuleLookupEditor.js.map +1 -0
  87. package/dist/Editors/index.d.ts +1 -0
  88. package/dist/Editors/index.js +3 -0
  89. package/dist/Editors/index.js.map +1 -0
  90. package/dist/Functions/index.d.ts +2 -0
  91. package/dist/Functions/index.js +27 -0
  92. package/dist/Functions/index.js.map +1 -0
  93. package/dist/HeaderTemplates/CommonHeaderTemplate.d.ts +1 -0
  94. package/dist/HeaderTemplates/CommonHeaderTemplate.js +15 -0
  95. package/dist/HeaderTemplates/CommonHeaderTemplate.js.map +1 -0
  96. package/dist/HyperModuleEditor.d.ts +1 -0
  97. package/dist/HyperModuleEditor.js +119 -0
  98. package/dist/HyperModuleEditor.js.map +1 -0
  99. package/dist/HyperModuleRenderer.d.ts +1 -0
  100. package/dist/HyperModuleRenderer.js +138 -0
  101. package/dist/HyperModuleRenderer.js.map +1 -0
  102. package/dist/NotificationOptions.d.ts +10 -0
  103. package/dist/NotificationOptions.js +80 -0
  104. package/dist/NotificationOptions.js.map +1 -0
  105. package/dist/OnCellDoubleClicked.d.ts +1 -0
  106. package/dist/OnCellDoubleClicked.js +6 -0
  107. package/dist/OnCellDoubleClicked.js.map +1 -0
  108. package/dist/OnCellEditingStarted.d.ts +1 -0
  109. package/dist/OnCellEditingStarted.js +7 -0
  110. package/dist/OnCellEditingStarted.js.map +1 -0
  111. package/dist/OnCellValueChanged.d.ts +1 -0
  112. package/dist/OnCellValueChanged.js +10 -0
  113. package/dist/OnCellValueChanged.js.map +1 -0
  114. package/dist/Renderers/BooleanRenderer.d.ts +3 -0
  115. package/dist/Renderers/BooleanRenderer.js +55 -0
  116. package/dist/Renderers/BooleanRenderer.js.map +1 -0
  117. package/dist/Renderers/ButtonRenderer.d.ts +3 -0
  118. package/dist/Renderers/ButtonRenderer.js +66 -0
  119. package/dist/Renderers/ButtonRenderer.js.map +1 -0
  120. package/dist/Renderers/CheckboxRenderer.d.ts +7 -0
  121. package/dist/Renderers/CheckboxRenderer.js +37 -0
  122. package/dist/Renderers/CheckboxRenderer.js.map +1 -0
  123. package/dist/Renderers/CountrySelectRenderer.d.ts +7 -0
  124. package/dist/Renderers/CountrySelectRenderer.js +56 -0
  125. package/dist/Renderers/CountrySelectRenderer.js.map +1 -0
  126. package/dist/Renderers/IconRenderer.d.ts +3 -0
  127. package/dist/Renderers/IconRenderer.js +187 -0
  128. package/dist/Renderers/IconRenderer.js.map +1 -0
  129. package/dist/Renderers/ImageRenderer.d.ts +3 -0
  130. package/dist/Renderers/ImageRenderer.js +58 -0
  131. package/dist/Renderers/ImageRenderer.js.map +1 -0
  132. package/dist/Renderers/LinkRenderer.d.ts +3 -0
  133. package/dist/Renderers/LinkRenderer.js +76 -0
  134. package/dist/Renderers/LinkRenderer.js.map +1 -0
  135. package/dist/Renderers/ModuleLookupRenderer.d.ts +3 -0
  136. package/dist/Renderers/ModuleLookupRenderer.js +28 -0
  137. package/dist/Renderers/ModuleLookupRenderer.js.map +1 -0
  138. package/dist/Renderers/ObjectRenderer.d.ts +3 -0
  139. package/dist/Renderers/ObjectRenderer.js +96 -0
  140. package/dist/Renderers/ObjectRenderer.js.map +1 -0
  141. package/dist/Renderers/SelectCellRenderer.d.ts +4 -0
  142. package/dist/Renderers/SelectCellRenderer.js +19 -0
  143. package/dist/Renderers/SelectCellRenderer.js.map +1 -0
  144. package/dist/Renderers/SelectRenderer.d.ts +3 -0
  145. package/dist/Renderers/SelectRenderer.js +56 -0
  146. package/dist/Renderers/SelectRenderer.js.map +1 -0
  147. package/dist/Renderers/StateRenderer.d.ts +3 -0
  148. package/dist/Renderers/StateRenderer.js +137 -0
  149. package/dist/Renderers/StateRenderer.js.map +1 -0
  150. package/dist/Renderers/index.d.ts +1 -0
  151. package/dist/Renderers/index.js +3 -0
  152. package/dist/Renderers/index.js.map +1 -0
  153. package/dist/index.d.ts +3 -0
  154. package/dist/index.js +868 -0
  155. package/dist/index.js.map +1 -0
  156. package/dist/preview-1773828129212.js +7 -0
  157. package/dist/util.d.ts +15 -0
  158. package/dist/util.js +108 -0
  159. package/dist/util.js.map +1 -0
  160. package/package.json +5 -5
  161. package/types/asset.d.ts +43 -0
  162. package/types/env.d.ts +15 -0
  163. package/types/style.d.ts +42 -0
@@ -0,0 +1,7 @@
1
+ export const RhPlusOnCellEditingStarted = (event, options) => {
2
+ // call overrided function
3
+ if (options.onCellEditingStarted)
4
+ options.onCellEditingStarted(event);
5
+ event.api.refreshCells({ force: true });
6
+ };
7
+ //# sourceMappingURL=OnCellEditingStarted.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OnCellEditingStarted.js","sourceRoot":"","sources":["../OnCellEditingStarted.js"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IAE3D,2BAA2B;IAC3B,IAAI,OAAO,CAAC,oBAAoB;QAC9B,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACtC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;AAExC,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export function RhPlusOnCellValueChanged(event: any, options: any): void;
@@ -0,0 +1,10 @@
1
+ /* eslint-disable no-param-reassign */
2
+ export const RhPlusOnCellValueChanged = (event, options) => {
3
+ event.data._rh_plus_ag_grid_new_item = false;
4
+ event.data._rh_plus_ag_grid_row_changed = true;
5
+ // call overrided function
6
+ if (options.onCellValueChanged)
7
+ options.onCellValueChanged(event);
8
+ // event.api.refreshCells({force: true});
9
+ };
10
+ //# sourceMappingURL=OnCellValueChanged.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OnCellValueChanged.js","sourceRoot":"","sources":["../OnCellValueChanged.js"],"names":[],"mappings":"AACA,sCAAsC;AACtC,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IAEzD,KAAK,CAAC,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;IAC7C,KAAK,CAAC,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC;IAE/C,2BAA2B;IAC3B,IAAI,OAAO,CAAC,kBAAkB;QAC5B,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACpC,yCAAyC;AAC3C,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ declare const _default: React.NamedExoticComponent<any>;
2
+ export default _default;
3
+ import * as React from 'react';
@@ -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,3 @@
1
+ declare const _default: React.NamedExoticComponent<any>;
2
+ export default _default;
3
+ import React from 'react';
@@ -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,3 @@
1
+ declare const _default: React.NamedExoticComponent<any>;
2
+ export default _default;
3
+ import * as React from 'react';
@@ -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,3 @@
1
+ declare const _default: React.NamedExoticComponent<any>;
2
+ export default _default;
3
+ import * as React from 'react';
@@ -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,3 @@
1
+ declare const _default: React.NamedExoticComponent<any>;
2
+ export default _default;
3
+ import * as React from 'react';