@wavemaker-ai/react-runtime 1.0.0-rc.647469 → 1.0.0-rc.647499

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 (315) hide show
  1. package/actions/base-action.d.ts +7 -0
  2. package/actions/login-action.d.ts +11 -0
  3. package/actions/logout-action.d.ts +10 -0
  4. package/actions/navigation-action.d.ts +35 -0
  5. package/actions/navigation-action.js +23 -5
  6. package/actions/notification-action.d.ts +20 -0
  7. package/actions/timer-action.d.ts +27 -0
  8. package/components/advanced/carousel/index.d.ts +1 -0
  9. package/components/advanced/carousel/index.js +2 -1
  10. package/components/advanced/carousel/template.d.ts +1 -0
  11. package/components/advanced/carousel/template.js +2 -1
  12. package/components/advanced/login/index.d.ts +1 -0
  13. package/components/advanced/marquee/index.d.ts +1 -0
  14. package/components/advanced/marquee/index.js +2 -1
  15. package/components/basic/anchor/index.d.ts +1 -0
  16. package/components/basic/anchor/index.js +4 -3
  17. package/components/basic/audio/index.d.ts +1 -0
  18. package/components/basic/audio/index.js +3 -2
  19. package/components/basic/html/index.d.ts +1 -0
  20. package/components/basic/icon/index.d.ts +1 -0
  21. package/components/basic/icon/index.js +4 -7
  22. package/components/basic/iframe/iframe.utils.d.ts +1 -1
  23. package/components/basic/iframe/iframe.utils.js +8 -4
  24. package/components/basic/iframe/index.d.ts +1 -0
  25. package/components/basic/label/index.d.ts +1 -0
  26. package/components/basic/label/index.js +3 -2
  27. package/components/basic/message/index.js +1 -1
  28. package/components/basic/picture/index.d.ts +1 -0
  29. package/components/basic/picture/index.js +3 -4
  30. package/components/basic/progress-bar/index.d.ts +1 -0
  31. package/components/basic/progress-bar/index.js +2 -1
  32. package/components/basic/progress-circle/index.d.ts +1 -0
  33. package/components/basic/richtexteditor/index.d.ts +2 -0
  34. package/components/basic/search/index.d.ts +3 -0
  35. package/components/basic/search/index.js +7 -4
  36. package/components/basic/search/props.d.ts +2 -0
  37. package/components/basic/spinner/index.d.ts +1 -0
  38. package/components/basic/tile/index.d.ts +1 -0
  39. package/components/basic/tile/index.js +2 -1
  40. package/components/basic/tree/Components/TreeNodeComponent.js +9 -5
  41. package/components/basic/tree/index.d.ts +1 -0
  42. package/components/basic/tree/index.js +14 -3
  43. package/components/basic/tree/utils.d.ts +2 -0
  44. package/components/basic/tree/utils.js +11 -1
  45. package/components/basic/video/index.d.ts +1 -0
  46. package/components/basic/video/index.js +40 -23
  47. package/components/chart/index.d.ts +1 -0
  48. package/components/common/AppSpinner.js +2 -5
  49. package/components/container/accordion/accordion-pane/index.d.ts +1 -0
  50. package/components/container/accordion/accordion-pane/index.js +1 -4
  51. package/components/container/accordion/index.d.ts +1 -0
  52. package/components/container/index.d.ts +3 -0
  53. package/components/container/index.js +6 -1
  54. package/components/container/layout-grid/grid-column/index.d.ts +1 -0
  55. package/components/container/layout-grid/grid-row/index.d.ts +1 -0
  56. package/components/container/layout-grid/index.d.ts +1 -0
  57. package/components/container/layout-grid/index.js +4 -8
  58. package/components/container/linear-layout/index.d.ts +1 -0
  59. package/components/container/linear-layout/linear-layout-item/index.d.ts +1 -0
  60. package/components/container/panel/components/panel-header/index.js +11 -6
  61. package/components/container/panel/components/panel-header/props.d.ts +5 -0
  62. package/components/container/panel/index.d.ts +1 -0
  63. package/components/container/panel/index.js +2 -1
  64. package/components/container/props.d.ts +2 -0
  65. package/components/container/repeat-template/index.d.ts +22 -1
  66. package/components/container/repeat-template/index.js +2 -1
  67. package/components/container/tabs/index.d.ts +3 -1
  68. package/components/container/tabs/index.js +102 -51
  69. package/components/container/tabs/props.d.ts +12 -0
  70. package/components/container/tabs/tab-pane/index.d.ts +1 -0
  71. package/components/container/tabs/tab-pane/index.js +28 -11
  72. package/components/container/wizard/index.d.ts +2 -0
  73. package/components/container/wizard/wizard-step/index.d.ts +1 -0
  74. package/components/container/wizard/wizard-step/index.js +2 -2
  75. package/components/data/card/card-actions/index.d.ts +1 -0
  76. package/components/data/card/card-actions/index.js +3 -5
  77. package/components/data/card/card-content/index.d.ts +1 -0
  78. package/components/data/card/card-content/index.js +3 -13
  79. package/components/data/card/card-footer/index.d.ts +1 -0
  80. package/components/data/card/card-footer/index.js +3 -5
  81. package/components/data/card/index.d.ts +1 -0
  82. package/components/data/card/index.js +3 -14
  83. package/components/data/form/dynamic-fields/index.js +7 -1
  84. package/components/data/form/dynamic-fields/props.d.ts +1 -0
  85. package/components/data/form/form-action/index.d.ts +2 -0
  86. package/components/data/form/form-body/index.js +2 -1
  87. package/components/data/form/form-field/base-field.js +4 -3
  88. package/components/data/form/form-footer/index.js +2 -1
  89. package/components/data/list/components/ListItemWithTemplate.js +4 -2
  90. package/components/data/list/hooks/props.d.ts +2 -2
  91. package/components/data/list/hooks/useListEventHandlers.js +6 -6
  92. package/components/data/list/index.d.ts +2 -0
  93. package/components/data/list/index.js +3 -4
  94. package/components/data/list/props.d.ts +2 -1
  95. package/components/data/list/utils/list-widget-methods.d.ts +2 -1
  96. package/components/data/table/components/RowCells.d.ts +16 -2
  97. package/components/data/table/components/RowCells.js +38 -24
  98. package/components/data/table/components/TableBody.js +11 -3
  99. package/components/data/table/components/TableDataRow.d.ts +3 -0
  100. package/components/data/table/components/TableDataRow.js +11 -3
  101. package/components/data/table/components/TableHeader.js +1 -4
  102. package/components/data/table/hooks/index.d.ts +1 -0
  103. package/components/data/table/hooks/index.js +12 -0
  104. package/components/data/table/hooks/useCustomExpressionColumns.d.ts +16 -0
  105. package/components/data/table/hooks/useCustomExpressionColumns.js +88 -0
  106. package/components/data/table/hooks/useDynamicColumns.js +1 -1
  107. package/components/data/table/hooks/useResponsiveColumns.d.ts +1 -0
  108. package/components/data/table/hooks/useRowSelection.d.ts +1 -1
  109. package/components/data/table/hooks/useRowSelection.js +26 -5
  110. package/components/data/table/hooks/useTableInitialization.js +2 -1
  111. package/components/data/table/index.d.ts +4 -0
  112. package/components/data/table/index.js +77 -12
  113. package/components/data/table/live-table/index.d.ts +1 -0
  114. package/components/data/table/props.d.ts +7 -0
  115. package/components/data/table/table-action/index.d.ts +1 -0
  116. package/components/data/table/table-column/index.d.ts +1 -0
  117. package/components/data/table/table-row/index.d.ts +1 -0
  118. package/components/data/table/table-row-action/index.d.ts +1 -0
  119. package/components/data/table/utils/buildSelectionColumns.js +7 -1
  120. package/components/data/table/utils/columnBuilder.js +1 -1
  121. package/components/data/table/utils/index.js +2 -2
  122. package/components/data/table/utils/renderDisplayCell.js +1 -1
  123. package/components/dialogs/alert-dialog/index.d.ts +2 -0
  124. package/components/dialogs/confirm-dialog/index.d.ts +2 -0
  125. package/components/dialogs/dialog/index.d.ts +2 -0
  126. package/components/dialogs/dialog/index.js +2 -4
  127. package/components/dialogs/dialog-actions/index.d.ts +1 -0
  128. package/components/dialogs/dialog-body/index.d.ts +1 -0
  129. package/components/dialogs/dialog-content/index.d.ts +1 -0
  130. package/components/dialogs/dialog-header/index.d.ts +1 -0
  131. package/components/dialogs/iframe-dialog/index.d.ts +2 -0
  132. package/components/dialogs/login-dialog/index.d.ts +2 -0
  133. package/components/dialogs/page-dialog/index.d.ts +2 -0
  134. package/components/form/button/index.d.ts +1 -0
  135. package/components/form/button/index.js +4 -3
  136. package/components/form/button-group/index.d.ts +1 -0
  137. package/components/form/button-group/index.js +2 -1
  138. package/components/input/calendar/index.d.ts +2 -0
  139. package/components/input/chips/index.d.ts +2 -0
  140. package/components/input/color-picker/index.d.ts +2 -0
  141. package/components/input/composite/index.d.ts +1 -0
  142. package/components/input/currency/index.d.ts +2 -0
  143. package/components/input/default/checkbox/index.d.ts +2 -0
  144. package/components/input/default/checkboxset/index.d.ts +2 -0
  145. package/components/input/default/radioset/index.d.ts +2 -0
  146. package/components/input/default/switch/index.d.ts +2 -0
  147. package/components/input/epoch/date/components/DatePickerPopover.js +11 -29
  148. package/components/input/epoch/date/index.d.ts +1 -0
  149. package/components/input/epoch/datetime/index.d.ts +1 -0
  150. package/components/input/epoch/datetime/index.js +10 -25
  151. package/components/input/epoch/time/index.d.ts +1 -0
  152. package/components/input/epoch/time/index.js +1 -1
  153. package/components/input/epoch/time/utils.d.ts +0 -17
  154. package/components/input/epoch/time/utils.js +1 -18
  155. package/components/input/fileupload/index.d.ts +1 -0
  156. package/components/input/number/index.d.ts +2 -0
  157. package/components/input/rating/index.d.ts +2 -0
  158. package/components/input/rating/index.js +14 -17
  159. package/components/input/select/index.d.ts +2 -0
  160. package/components/input/select/index.js +1 -4
  161. package/components/input/slider/index.d.ts +2 -0
  162. package/components/input/slider/index.js +13 -12
  163. package/components/input/text/index.d.ts +2 -0
  164. package/components/input/text/index.js +3 -14
  165. package/components/input/textarea/index.d.ts +2 -0
  166. package/components/input/textarea/index.js +7 -10
  167. package/components/input/upload/index.d.ts +2 -0
  168. package/components/input/upload/index.js +3 -5
  169. package/components/layout/footer/index.js +2 -1
  170. package/components/layout/footer/props.d.ts +1 -0
  171. package/components/layout/header/index.js +2 -1
  172. package/components/layout/header/props.d.ts +1 -0
  173. package/components/layout/leftnav/index.js +2 -1
  174. package/components/layout/leftnav/props.d.ts +1 -0
  175. package/components/layout/rightnav/index.js +2 -1
  176. package/components/layout/rightnav/props.d.ts +1 -0
  177. package/components/layout/topnav/index.js +2 -1
  178. package/components/layout/topnav/props.d.ts +1 -0
  179. package/components/navbar/index.d.ts +1 -0
  180. package/components/navbar/index.js +2 -1
  181. package/components/navbar/nav/index.d.ts +1 -0
  182. package/components/navbar/nav-item/index.d.ts +1 -0
  183. package/components/navbar/nav-item/index.js +2 -1
  184. package/components/navigation/breadcrumb/index.d.ts +1 -0
  185. package/components/navigation/menu/index.d.ts +1 -0
  186. package/components/navigation/menu/index.js +5 -4
  187. package/components/navigation/popover/index.d.ts +2 -1
  188. package/components/navigation/popover/index.js +1 -1
  189. package/components/page/error-boundary/index.js +5 -5
  190. package/components/page/index.js +13 -9
  191. package/components/page/partial/index.d.ts +1 -0
  192. package/components/prefab/container/index.js +2 -1
  193. package/context/WidgetProvider.js +2 -2
  194. package/core/app.service.js +40 -35
  195. package/core/constants/events.js +6 -0
  196. package/core/constants/index.d.ts +9 -1
  197. package/core/constants/index.js +32 -5
  198. package/core/formatter/date-formatters.d.ts +1 -1
  199. package/core/formatter/date-formatters.js +38 -13
  200. package/core/formatter/types.d.ts +1 -1
  201. package/core/proxy-service.js +15 -5
  202. package/core/security.service.d.ts +12 -0
  203. package/core/util/index.js +3 -2
  204. package/higherOrder/BaseApp.js +2 -2
  205. package/higherOrder/BasePage.d.ts +0 -17
  206. package/higherOrder/BasePage.js +53 -104
  207. package/higherOrder/BasePrefab.js +69 -59
  208. package/higherOrder/props.d.ts +1 -0
  209. package/higherOrder/withBaseWrapper.js +3 -4
  210. package/hooks/useAccess.js +13 -0
  211. package/mui-config/theme-provider.d.ts +3 -0
  212. package/mui-config/theme.d.ts +2 -0
  213. package/mui-config/theme.js +1 -4
  214. package/package-lock.json +2640 -615
  215. package/package.json +23 -4
  216. package/runtime-dynamic/App.d.ts +7 -0
  217. package/runtime-dynamic/App.js +144 -0
  218. package/runtime-dynamic/app-initializer.d.ts +15 -0
  219. package/runtime-dynamic/app-initializer.js +447 -0
  220. package/runtime-dynamic/components/ErrorBoundary.d.ts +18 -0
  221. package/runtime-dynamic/components/ErrorBoundary.js +93 -0
  222. package/runtime-dynamic/components/PageWrapper.d.ts +1 -0
  223. package/runtime-dynamic/components/PageWrapper.js +43 -0
  224. package/runtime-dynamic/components/PrefabPreview.d.ts +1 -0
  225. package/runtime-dynamic/components/PrefabPreview.js +84 -0
  226. package/runtime-dynamic/components/partial-content.d.ts +15 -0
  227. package/runtime-dynamic/components/partial-content.js +50 -0
  228. package/runtime-dynamic/components/prefab-content.d.ts +10 -0
  229. package/runtime-dynamic/components/prefab-content.js +31 -0
  230. package/runtime-dynamic/components/use-dynamic-component.d.ts +10 -0
  231. package/runtime-dynamic/components/use-dynamic-component.js +165 -0
  232. package/runtime-dynamic/factories/build-base-page-like-component.d.ts +8 -0
  233. package/runtime-dynamic/factories/build-base-page-like-component.js +59 -0
  234. package/runtime-dynamic/factories/prefab-factory.d.ts +3 -0
  235. package/runtime-dynamic/factories/prefab-factory.js +82 -0
  236. package/runtime-dynamic/factories/startup-info.d.ts +6 -0
  237. package/runtime-dynamic/factories/startup-info.js +28 -0
  238. package/runtime-dynamic/factories/utils.d.ts +23 -0
  239. package/runtime-dynamic/factories/utils.js +131 -0
  240. package/runtime-dynamic/index.d.ts +14 -0
  241. package/runtime-dynamic/index.js +191 -0
  242. package/runtime-dynamic/main.d.ts +2 -0
  243. package/runtime-dynamic/main.js +84 -0
  244. package/runtime-dynamic/preview-mode.d.ts +15 -0
  245. package/runtime-dynamic/preview-mode.js +31 -0
  246. package/runtime-dynamic/preview-navigation.d.ts +6 -0
  247. package/runtime-dynamic/preview-navigation.js +38 -0
  248. package/runtime-dynamic/preview-resource-base.d.ts +12 -0
  249. package/runtime-dynamic/preview-resource-base.js +65 -0
  250. package/runtime-dynamic/registry/component-registry.d.ts +3 -0
  251. package/runtime-dynamic/registry/component-registry.js +353 -0
  252. package/runtime-dynamic/registry/custom-widget-registry.d.ts +7 -0
  253. package/runtime-dynamic/registry/custom-widget-registry.js +18 -0
  254. package/runtime-dynamic/registry/index.d.ts +2 -0
  255. package/runtime-dynamic/registry/index.js +63 -0
  256. package/runtime-dynamic/registry/store.d.ts +9 -0
  257. package/runtime-dynamic/registry/store.js +26 -0
  258. package/runtime-dynamic/routes.d.ts +2 -0
  259. package/runtime-dynamic/routes.js +107 -0
  260. package/runtime-dynamic/services/app-extension-provider.d.ts +1 -0
  261. package/runtime-dynamic/services/app-extension-provider.js +45 -0
  262. package/runtime-dynamic/services/cache.d.ts +29 -0
  263. package/runtime-dynamic/services/cache.js +57 -0
  264. package/runtime-dynamic/services/component-ref-provider.d.ts +12 -0
  265. package/runtime-dynamic/services/component-ref-provider.js +149 -0
  266. package/runtime-dynamic/services/css-scoping.d.ts +2 -0
  267. package/runtime-dynamic/services/css-scoping.js +53 -0
  268. package/runtime-dynamic/services/fragment-url.d.ts +16 -0
  269. package/runtime-dynamic/services/fragment-url.js +74 -0
  270. package/runtime-dynamic/services/index.d.ts +10 -0
  271. package/runtime-dynamic/services/index.js +152 -0
  272. package/runtime-dynamic/services/markup-transpiler.d.ts +12 -0
  273. package/runtime-dynamic/services/markup-transpiler.js +250 -0
  274. package/runtime-dynamic/services/prefab-resources.d.ts +18 -0
  275. package/runtime-dynamic/services/prefab-resources.js +159 -0
  276. package/runtime-dynamic/services/resource-manager.d.ts +2 -0
  277. package/runtime-dynamic/services/resource-manager.js +66 -0
  278. package/runtime-dynamic/services/script-executor.d.ts +8 -0
  279. package/runtime-dynamic/services/script-executor.js +90 -0
  280. package/runtime-dynamic/services/variable-factory.d.ts +2 -0
  281. package/runtime-dynamic/services/variable-factory.js +260 -0
  282. package/runtime-dynamic/services/variable-registry.d.ts +12 -0
  283. package/runtime-dynamic/services/variable-registry.js +118 -0
  284. package/runtime-dynamic/services/variable-transpiler.d.ts +5 -0
  285. package/runtime-dynamic/services/variable-transpiler.js +159 -0
  286. package/runtime-dynamic/shims/next-image.d.ts +35 -0
  287. package/runtime-dynamic/shims/next-image.js +60 -0
  288. package/runtime-dynamic/shims/next-link.d.ts +25 -0
  289. package/runtime-dynamic/shims/next-link.js +33 -0
  290. package/runtime-dynamic/shims/next-navigation.d.ts +16 -0
  291. package/runtime-dynamic/shims/next-navigation.js +52 -0
  292. package/runtime-dynamic/utils/index.d.ts +9 -0
  293. package/runtime-dynamic/utils/index.js +40 -0
  294. package/store/middleware/navigationMiddleware.js +1 -1
  295. package/store/slices/appConfigSlice.js +10 -8
  296. package/store/slices/authSlice.js +46 -32
  297. package/tsconfig.declaration.tsbuildinfo +1 -1
  298. package/types/index.d.ts +1 -0
  299. package/utils/attr.js +71 -14
  300. package/utils/custom-expression/index.d.ts +43 -0
  301. package/utils/custom-expression/index.js +161 -0
  302. package/utils/custom-expression/parser.d.ts +15 -0
  303. package/utils/custom-expression/parser.js +208 -0
  304. package/utils/layoutsize-util.d.ts +1 -0
  305. package/utils/layoutsize-util.js +57 -0
  306. package/utils/lib-error-skipper.d.ts +4 -26
  307. package/utils/lib-error-skipper.js +41 -165
  308. package/utils/style-utils.d.ts +6 -0
  309. package/utils/style-utils.js +10 -1
  310. package/variables/metadata.service.js +2 -3
  311. package/variables/model-variable.js +10 -7
  312. package/variables/service-variable.d.ts +1 -0
  313. package/variables/service-variable.js +26 -6
  314. package/components/input/epoch/datetime/styled.d.ts +0 -78
  315. package/components/input/epoch/datetime/styled.js +0 -90
@@ -5,34 +5,24 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports["default"] = exports.WmCardContent = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
8
  var _react = _interopRequireDefault(require("react"));
9
+ var _clsx = _interopRequireDefault(require("clsx"));
10
10
  var _withBaseWrapper = _interopRequireDefault(require("@wavemaker-ai/react-runtime/higherOrder/withBaseWrapper"));
11
11
  var _material = require("@mui/material");
12
12
  var __jsx = _react["default"].createElement;
13
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
14
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
15
13
  var WmCardContent = exports.WmCardContent = function WmCardContent(props) {
16
14
  var content = props.content,
17
15
  children = props.children,
18
16
  className = props.className,
19
17
  styles = props.styles;
20
18
  return __jsx(_material.CardContent, {
21
- className: "app-card-content card-body card-block ".concat(className || ""),
22
- sx: {
23
- padding: "0",
24
- margin: "0",
25
- backgroundColor: "transparent",
26
- "&:last-child": {
27
- paddingBottom: "0"
28
- }
29
- }
19
+ className: (0, _clsx["default"])("app-card-content", "card-body", "card-block", "wm-card-content-root", className)
30
20
  }, content && __jsx("div", {
31
21
  dangerouslySetInnerHTML: {
32
22
  __html: content
33
23
  }
34
24
  }), __jsx(_material.Box, {
35
- style: _objectSpread({}, styles)
25
+ style: styles
36
26
  }, props.renderPartial ? props.renderPartial(props, props.onLoad) : children));
37
27
  };
38
28
 
@@ -40,6 +40,7 @@ declare const _default: React.ComponentType<{
40
40
  eventCallback?: (eventName: string, data: any) => void;
41
41
  forwardedRef?: React.ForwardedRef<any>;
42
42
  viewParent?: any;
43
+ destroy?: ((names: string[]) => void) | ((formName?: string) => void);
43
44
  hint?: string;
44
45
  arialabel?: string;
45
46
  tabindex?: number;
@@ -5,20 +5,18 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports["default"] = exports.WmCardFooter = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
8
  var _react = _interopRequireDefault(require("react"));
9
+ var _clsx = _interopRequireDefault(require("clsx"));
10
10
  var _withBaseWrapper = _interopRequireDefault(require("@wavemaker-ai/react-runtime/higherOrder/withBaseWrapper"));
11
11
  var _material = require("@mui/material");
12
12
  var __jsx = _react["default"].createElement;
13
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
14
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
15
13
  var WmCardFooter = exports.WmCardFooter = function WmCardFooter(props) {
16
14
  var children = props.children,
17
15
  className = props.className,
18
16
  styles = props.styles;
19
17
  return __jsx(_material.Box, {
20
- className: "app-card-footer text-muted card-footer ".concat(className || ""),
21
- style: _objectSpread({}, styles)
18
+ className: (0, _clsx["default"])("app-card-footer", "text-muted", "card-footer", className),
19
+ style: styles
22
20
  }, children);
23
21
  };
24
22
 
@@ -62,6 +62,7 @@ declare const _default: React.ComponentType<{
62
62
  eventCallback?: (eventName: string, data: any) => void;
63
63
  forwardedRef?: React.ForwardedRef<any>;
64
64
  viewParent?: any;
65
+ destroy?: ((names: string[]) => void) | ((formName?: string) => void);
65
66
  hint?: string;
66
67
  arialabel?: string;
67
68
  tabindex?: number;
@@ -160,9 +160,7 @@ var WmCard = exports.WmCard = function WmCard(props) {
160
160
  alt: "",
161
161
  width: 40,
162
162
  height: 40,
163
- style: {
164
- borderRadius: "50%"
165
- }
163
+ className: "wm-card-avatar-img"
166
164
  }));
167
165
  }
168
166
  return null;
@@ -207,14 +205,9 @@ var WmCard = exports.WmCard = function WmCard(props) {
207
205
  });
208
206
  return __jsx(_material.Card, cardProps, showHeader && __jsx(_material.CardHeader, cardHeaderProps), picturesource && __jsx(_material.CardMedia, {
209
207
  component: "div",
210
- className: "app-card-image",
208
+ className: (0, _clsx["default"])("app-card-image", "wm-card-media-root"),
211
209
  style: {
212
210
  maxHeight: imageheight
213
- },
214
- sx: {
215
- padding: "0",
216
- margin: "0",
217
- backgroundColor: "transparent"
218
211
  }
219
212
  }, __jsx(_image["default"], {
220
213
  src: picturesource,
@@ -222,11 +215,7 @@ var WmCard = exports.WmCard = function WmCard(props) {
222
215
  width: 0,
223
216
  height: 0,
224
217
  sizes: "100vw",
225
- className: "card-image",
226
- style: {
227
- width: "100%",
228
- height: "100%"
229
- }
218
+ className: (0, _clsx["default"])("card-image", "wm-card-media-img")
230
219
  })), _react["default"].Children.map(children, function (child) {
231
220
  if (isComponentType(child, _cardContent.WmCardContent) || isComponentType(child, _cardContent["default"])) {
232
221
  return child;
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports["default"] = DynamicForm;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
12
  var _react = _interopRequireWildcard(require("react"));
12
13
  var _isArray = _interopRequireDefault(require("lodash-es/isArray"));
@@ -20,6 +21,7 @@ var _label = _interopRequireDefault(require("../../../basic/label"));
20
21
  var _formField = _interopRequireDefault(require("../form-field"));
21
22
  var _utils = require("./utils");
22
23
  var _constant = require("./constant");
24
+ var _excluded = ["class"];
23
25
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
24
26
  var __jsx = _react["default"].createElement;
25
27
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -83,7 +85,11 @@ function DynamicForm(props) {
83
85
  formContext: formContext,
84
86
  onChangeHandler: formContext.onChangeHandler
85
87
  });
86
- return __jsx(ComponentToRender, fieldProps);
88
+ var className = fieldProps["class"],
89
+ restProps = (0, _objectWithoutProperties2["default"])(fieldProps, _excluded);
90
+ return __jsx(ComponentToRender, (0, _extends2["default"])({}, restProps, {
91
+ className: className || fieldProps.className
92
+ }));
87
93
  };
88
94
 
89
95
  // Render form field with label using FormField wrapper
@@ -30,6 +30,7 @@ export interface FormFieldMetadata {
30
30
  onBlur?: () => void;
31
31
  onFocus?: () => void;
32
32
  [key: string]: any;
33
+ class?: string;
33
34
  }
34
35
  export interface DynamicFormProps {
35
36
  metadata: FormFieldMetadata[];
@@ -38,6 +38,7 @@ declare const WmFormActionsStandalone: import("react").ComponentType<{
38
38
  eventCallback?: (eventName: string, data: any) => void;
39
39
  forwardedRef?: React.ForwardedRef<any>;
40
40
  viewParent?: any;
41
+ destroy?: ((names: string[]) => void) | ((formName?: string) => void);
41
42
  hint?: string;
42
43
  arialabel?: string;
43
44
  tabindex?: number;
@@ -110,6 +111,7 @@ declare const _default: import("react").ComponentType<{
110
111
  eventCallback?: (eventName: string, data: any) => void;
111
112
  forwardedRef?: React.ForwardedRef<any>;
112
113
  viewParent?: any;
114
+ destroy?: ((names: string[]) => void) | ((formName?: string) => void);
113
115
  hint?: string;
114
116
  arialabel?: string;
115
117
  tabindex?: number;
@@ -10,6 +10,7 @@ var _react = _interopRequireDefault(require("react"));
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
12
12
  var _clsx = _interopRequireDefault(require("clsx"));
13
+ var _attr = require("@wavemaker-ai/react-runtime/utils/attr");
13
14
  var _excluded = ["children", "className", "styles"];
14
15
  var __jsx = _react["default"].createElement;
15
16
  var DEFAULT_CLASS = "panel-body form-body";
@@ -21,7 +22,7 @@ function FormBody(props) {
21
22
  return __jsx("div", (0, _extends2["default"])({
22
23
  className: (0, _clsx["default"])(DEFAULT_CLASS, className),
23
24
  style: styles
24
- }, rest), children);
25
+ }, (0, _attr.removeInvalidAttributes)(rest)), children);
25
26
  }
26
27
  var FormBodyStandalone = exports.WmFormBody = FormBody;
27
28
  var _default = exports["default"] = FormBody;
@@ -113,9 +113,10 @@ var BaseField = function BaseField(WrappedComponent) {
113
113
  }
114
114
  }
115
115
 
116
- // For any field where searchkey exists and differs from formKey, use searchkey
117
- // This handles cases where searchkey contains the actual data key
118
- if (props.searchkey && props.searchkey !== props.formKey) {
116
+ // Prefer searchkey over formKey only for dotted form paths (related / nested binding).
117
+ // Chips and other widgets set searchkey for dataset lookup (e.g. "name"); that must not
118
+ // become the react-hook-form field id or every such field collides on the same key.
119
+ if (props.formKey && props.searchkey && props.searchkey !== props.formKey) {
119
120
  return props.searchkey;
120
121
  }
121
122
 
@@ -10,6 +10,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
10
10
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
11
  var _clsx = _interopRequireDefault(require("clsx"));
12
12
  var _Box = _interopRequireDefault(require("@mui/material/Box"));
13
+ var _attr = require("@wavemaker-ai/react-runtime/utils/attr");
13
14
  var _excluded = ["className", "children"];
14
15
  var __jsx = _react["default"].createElement;
15
16
  var DEFAULT_CLASS = "basic-btn-grp form-action panel-footer clearfix";
@@ -20,7 +21,7 @@ var WmFormFooter = exports.WmFormFooter = function WmFormFooter(props) {
20
21
  return __jsx(_Box["default"], (0, _extends2["default"])({
21
22
  component: "div",
22
23
  className: (0, _clsx["default"])(DEFAULT_CLASS, className)
23
- }, rest), children);
24
+ }, (0, _attr.removeInvalidAttributes)(rest)), children);
24
25
  };
25
26
  WmFormFooter.displayName = "WmFormFooter";
26
27
  var _default = exports["default"] = WmFormFooter;
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.ListItemWithTemplate = void 0;
9
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
9
  var _react = _interopRequireWildcard(require("react"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
11
  var _clsx = _interopRequireDefault(require("clsx"));
12
12
  var _ListItem = require("./ListItem");
13
13
  var _mediaTemplate = require("../templates/media-template");
@@ -83,7 +83,9 @@ var ListItemWithTemplate = exports.ListItemWithTemplate = function ListItemWithT
83
83
  var templateContent = renderItem ? renderItem(item, globalIndex !== null && globalIndex !== void 0 ? globalIndex : index, WidgetProxy[name], getCurrentItemWidgets) : itemTemplate || __jsx(_mediaTemplate.MediaWmListtemplate, null);
84
84
 
85
85
  // Resolve item class: support string or function callback
86
- var resolvedItemClass = typeof itemclass === "function" ? itemclass(item) : itemclass;
86
+ var resolvedItemClass = (0, _react.useMemo)(function () {
87
+ return typeof itemclass === "function" ? itemclass(item) : itemclass;
88
+ }, [itemclass, item]);
87
89
 
88
90
  // Apply list template attrs to li (itemAttrs → layoutClassName on li)
89
91
  var itemLayoutAttrs = itemAttrs ? itemAttrs(item, globalIndex !== null && globalIndex !== void 0 ? globalIndex : index) : undefined;
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
  import { DefaultEventHandler, IPaginationMeta } from "../components/props";
3
- import { WmListProps, ListItemData, ListPaginationChangeHandler, ListSetRecordHandler, ListItemEventHandler } from "../props";
3
+ import { WmListProps, ListItemData, ListPaginationChangeHandler, ListSetRecordHandler, ListItemEventHandler, ListSelectHandler } from "../props";
4
4
  export interface GroupedDataItem<T = ListItemData> {
5
5
  key: string;
6
6
  data: T[];
@@ -32,7 +32,7 @@ export interface UseListEventHandlersProps<T extends ListItemData = ListItemData
32
32
  onDblclick?: ListItemEventHandler;
33
33
  onMouseEnter?: ListItemEventHandler;
34
34
  onMouseLeave?: ListItemEventHandler;
35
- onSelect?: (widget: unknown, selectedItem: T | null) => void;
35
+ onSelect?: ListSelectHandler<T>;
36
36
  onSelectionlimitexceed?: (event: React.MouseEvent | null, widget: unknown) => void;
37
37
  onPaginationchange?: (event: React.MouseEvent | null, widget: unknown, index: number) => void;
38
38
  onPageChange?: (event: React.MouseEvent | null, page: number) => void;
@@ -65,14 +65,14 @@ var useListEventHandlers = exports.useListEventHandlers = function useListEventH
65
65
  }, [selectedItems]);
66
66
 
67
67
  // Helper function to call onSelect and mark as user-initiated
68
- var callOnSelect = (0, _react.useCallback)(function (selectedItem) {
68
+ var callOnSelect = (0, _react.useCallback)(function (selectedItem, event) {
69
69
  if (onSelect && widgetInstance && selectedItem) {
70
70
  if (userInitiatedSelectionRef) {
71
71
  userInitiatedSelectionRef.current = true;
72
72
  }
73
73
  // Set $index on widget instance
74
74
  (0, _widgetInstanceUtils.setWidgetIndex)(widgetInstance, items, selectedItem);
75
- onSelect(widgetInstance, selectedItem);
75
+ onSelect(widgetInstance, selectedItem, event !== null && event !== void 0 ? event : undefined);
76
76
  }
77
77
  }, [onSelect, userInitiatedSelectionRef, items]);
78
78
  var handleListItemClick = (0, _react.useCallback)(function (event, item) {
@@ -104,7 +104,7 @@ var useListEventHandlers = exports.useListEventHandlers = function useListEventH
104
104
  setActiveItems(new Set(rangeItems));
105
105
  // Only call onSelect if this is a new selection (not already active)
106
106
  if (!isItemActive) {
107
- callOnSelect(item); // Pass the current item that triggered the range selection
107
+ callOnSelect(item, event); // Pass the current item that triggered the range selection
108
108
  }
109
109
  (0, _widgetInstanceUtils.setWidgetIndex)(widgetInstance, items, item);
110
110
  onClick === null || onClick === void 0 || onClick(event, widgetInstance); // Use widgetInstance instead of item
@@ -137,7 +137,7 @@ var useListEventHandlers = exports.useListEventHandlers = function useListEventH
137
137
  setActiveItems(_newActiveItems);
138
138
  // Only call onSelect if this is a new selection (not already active)
139
139
  if (!isItemActive) {
140
- callOnSelect(item); // Pass the current item being selected
140
+ callOnSelect(item, event); // Pass the current item being selected
141
141
  }
142
142
  }
143
143
  setFirstSelectedItem(item);
@@ -152,7 +152,7 @@ var useListEventHandlers = exports.useListEventHandlers = function useListEventH
152
152
  setFirstSelectedItem(item);
153
153
  // Only call onSelect if this is a new selection (not already active)
154
154
  if (!isItemActive) {
155
- callOnSelect(item); // Pass the current item being selected
155
+ callOnSelect(item, event); // Pass the current item being selected
156
156
  }
157
157
  }
158
158
  // If item is already selected, do nothing (don't deselect)
@@ -168,7 +168,7 @@ var useListEventHandlers = exports.useListEventHandlers = function useListEventH
168
168
  setFirstSelectedItem(item);
169
169
  // Only call onSelect if this is a new selection (not already active)
170
170
  if (!isItemActive) {
171
- callOnSelect(item); // Pass the current item being selected
171
+ callOnSelect(item, event); // Pass the current item being selected
172
172
  }
173
173
  }
174
174
  // If item is already selected, do nothing (don't deselect)
@@ -95,6 +95,7 @@ declare const WmListStandalone: React.ComponentType<{
95
95
  eventCallback?: (eventName: string, data: any) => void;
96
96
  forwardedRef?: React.ForwardedRef<any>;
97
97
  viewParent?: any;
98
+ destroy?: ((names: string[]) => void) | ((formName?: string) => void);
98
99
  hint?: string;
99
100
  arialabel?: string;
100
101
  tabindex?: number;
@@ -146,6 +147,7 @@ declare const _default: React.ComponentType<{
146
147
  eventCallback?: (eventName: string, data: any) => void;
147
148
  forwardedRef?: React.ForwardedRef<any>;
148
149
  viewParent?: any;
150
+ destroy?: ((names: string[]) => void) | ((formName?: string) => void);
149
151
  hint?: string;
150
152
  arialabel?: string;
151
153
  tabindex?: number;
@@ -535,13 +535,12 @@ var WmList = function WmList(props) {
535
535
  }))();
536
536
  }, [datasource]);
537
537
  var showHorizontalScrollSentinel = showNavigation && navigation === _constants.LIST_NAVIGATION_TYPES.SCROLL && (direction === _constants.LIST_DIRECTION.HORIZONTAL || direction === "row");
538
- //position and width/height tailwind classNames are applying to the wrapper div
538
+ var hostAutoLayoutPrefixes = ["pos-"].concat((0, _toConsumableArray2["default"])(_constants.INSETION_POSITION), ["zi-", "w-", "h-"]);
539
539
  var wrapper_autoLayout_Classes = (0, _react.useMemo)(function () {
540
- return (0, _styleUtils.filterAutoLayoutClasses)(layoutClassName, ["pos-"].concat((0, _toConsumableArray2["default"])(_constants.INSETION_POSITION), ["zi-"]));
540
+ return (0, _styleUtils.filterAutoLayoutClasses)(layoutClassName, hostAutoLayoutPrefixes);
541
541
  }, [layoutClassName]);
542
- // excluding the AutoLayout position properties tailwind classNames which are applied to the ul tag
543
542
  var ul_autoLayout_Classes = (0, _react.useMemo)(function () {
544
- return (0, _styleUtils.filterAutoLayoutClasses)(layoutClassName, ["pos-"].concat((0, _toConsumableArray2["default"])(_constants.INSETION_POSITION), ["zi-"]), "exclude");
543
+ return (0, _styleUtils.filterAutoLayoutClasses)(layoutClassName, hostAutoLayoutPrefixes, "exclude");
545
544
  }, [layoutClassName]);
546
545
  var hasListGroupAutoLayout = (0, _react.useMemo)(function () {
547
546
  return (0, _listHelpers.hasListGroupAutoLayoutClass)({
@@ -1,3 +1,4 @@
1
+ import type { SyntheticEvent } from "react";
1
2
  import { BaseProps, Prettify } from "@wavemaker-ai/react-runtime/higherOrder/props";
2
3
  import { DefaultEventHandler } from "./components/props";
3
4
  import { StorageType } from "@wavemaker-ai/react-runtime/utils/state-persistance";
@@ -29,7 +30,7 @@ export type ListPageEventHandler = (event: React.MouseEvent | null, page: number
29
30
  export type ListReorderEventHandler<T = ListItemData> = (event: React.MouseEvent | null, data: T[], changedItem: T) => void;
30
31
  export type ListSelectionLimitExceededHandler = (event: React.MouseEvent | null, widget: unknown) => void;
31
32
  export type ListBeforeDataRenderHandler<T = ListItemData> = (widget: unknown, data: T[]) => void;
32
- export type ListSelectHandler<T = ListItemData> = (widget: unknown, selectedItem: T | null) => void;
33
+ export type ListSelectHandler<T = ListItemData> = (widget: unknown, selectedItem: T | null, event?: SyntheticEvent | null) => void;
33
34
  export type ListPaginationChangeHandler = (event: React.MouseEvent | null, widget: unknown, index: number) => void;
34
35
  export type ListSetRecordHandler<T = ListItemData> = (event: React.MouseEvent | null, widget: unknown, index: number, data: T) => void;
35
36
  export type ListRenderItemHandler<T = ListItemData> = (item: T, index: number) => React.ReactNode;
@@ -1,3 +1,4 @@
1
+ import type { SyntheticEvent } from "react";
1
2
  import { ListItemData } from "../props";
2
3
  import { ListState, ListWidgetMethods } from "../props";
3
- export declare const useListWidgetMethods: (items: ListItemData[], listState: ListState, multiselect: boolean, onSelect?: (widgetInstance: any, item: ListItemData) => void, widgetInstance?: any, listener?: any, userInitiatedSelectionRef?: React.MutableRefObject<boolean>, name?: string, Widgets?: any, size?: number, setIsListCleared?: (isListCleared: boolean) => void, handlePageSizeChange?: (newPageSize: number) => void) => ListWidgetMethods;
4
+ export declare const useListWidgetMethods: (items: ListItemData[], listState: ListState, multiselect: boolean, onSelect?: (widgetInstance: any, item: ListItemData, event?: SyntheticEvent | null) => void, widgetInstance?: any, listener?: any, userInitiatedSelectionRef?: React.MutableRefObject<boolean>, name?: string, Widgets?: any, size?: number, setIsListCleared?: (isListCleared: boolean) => void, handlePageSizeChange?: (newPageSize: number) => void) => ListWidgetMethods;
@@ -1,4 +1,14 @@
1
- import React, { ReactNode } from "react";
1
+ import { type ReactNode } from "react";
2
+ export type CustomExpressionRenderBodyProps = {
3
+ rowData: unknown;
4
+ render: (rowData: any) => ReactNode;
5
+ };
6
+ /**
7
+ * Memoized wrapper for WaveMaker custom column markup (`(row) => <WmLabel … />`).
8
+ * Only re-renders when `rowData` or the parsed `render` function reference changes — safe to use
9
+ * outside WmTable (lists, cards, etc.).
10
+ */
11
+ export declare const CustomExpressionRenderBody: import("react").NamedExoticComponent<CustomExpressionRenderBodyProps>;
2
12
  export interface MemoizedRowCellsProps {
3
13
  cells: any[];
4
14
  hasExpansion: boolean;
@@ -11,5 +21,9 @@ export interface MemoizedRowCellsProps {
11
21
  tableData?: any[];
12
22
  isEditingRow?: boolean;
13
23
  isSelected?: boolean;
24
+ customExpressionColumns?: Record<string, (rowData: any) => ReactNode>;
25
+ /** Incremented when custom-expression JSX is re-parsed into new components. */
26
+ customColumnsRevision?: number;
27
+ columnsVersion?: number;
14
28
  }
15
- export declare const RowCells: React.NamedExoticComponent<MemoizedRowCellsProps>;
29
+ export declare const RowCells: import("react").NamedExoticComponent<MemoizedRowCellsProps>;
@@ -5,10 +5,10 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.RowCells = void 0;
8
+ exports.RowCells = exports.CustomExpressionRenderBody = void 0;
9
+ var _react = _interopRequireWildcard(require("react"));
9
10
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
- var _react = _interopRequireWildcard(require("react"));
12
12
  var _material = require("@mui/material");
13
13
  var _reactTable = require("@tanstack/react-table");
14
14
  var _utils = require("../utils");
@@ -17,23 +17,36 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
17
17
  var __jsx = _react["default"].createElement;
18
18
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
19
19
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
20
- // Memoized cell content component to prevent re-renders when activeRowIds changes
21
-
22
- var RowCells = exports.RowCells = /*#__PURE__*/(0, _react.memo)(function (_ref) {
23
- var cells = _ref.cells,
24
- hasExpansion = _ref.hasExpansion,
25
- expansionInsertIndex = _ref.expansionInsertIndex,
26
- renderExpansionCell = _ref.renderExpansionCell,
27
- rowId = _ref.rowId,
28
- rowData = _ref.rowData,
29
- isEditingRow = _ref.isEditingRow;
20
+ /**
21
+ * Memoized wrapper for WaveMaker custom column markup (`(row) => <WmLabel … />`).
22
+ * Only re-renders when `rowData` or the parsed `render` function reference changes — safe to use
23
+ * outside WmTable (lists, cards, etc.).
24
+ */
25
+ var CustomExpressionRenderBody = exports.CustomExpressionRenderBody = /*#__PURE__*/(0, _react.memo)(function CustomExpressionRenderBody(_ref) {
26
+ var rowData = _ref.rowData,
27
+ render = _ref.render;
28
+ return __jsx(_react["default"].Fragment, null, render(rowData));
29
+ }, function (prev, next) {
30
+ return prev.rowData === next.rowData && prev.render === next.render;
31
+ });
32
+ CustomExpressionRenderBody.displayName = "CustomExpressionRenderBody";
33
+ var RowCells = exports.RowCells = /*#__PURE__*/(0, _react.memo)(function (_ref2) {
34
+ var cells = _ref2.cells,
35
+ hasExpansion = _ref2.hasExpansion,
36
+ expansionInsertIndex = _ref2.expansionInsertIndex,
37
+ renderExpansionCell = _ref2.renderExpansionCell,
38
+ rowId = _ref2.rowId,
39
+ rowData = _ref2.rowData,
40
+ isEditingRow = _ref2.isEditingRow,
41
+ customExpressionColumns = _ref2.customExpressionColumns;
30
42
  return __jsx(_react["default"].Fragment, null, cells.map(function (cell, cellIndex) {
31
- var _cell$column$columnDe, _cell$column, _cell$column$columnDe2, _cell$column$columnDe3, _cell$column$columnDe4, _cell$column$columnDe5, _cell$column$columnDe6, _cell$column$columnDe7;
43
+ var _cell$column$columnDe, _cell$column, _cell$column$columnDe2, _cell$id, _cell$column$columnDe3, _cell$column$columnDe4, _cell$column$columnDe5, _cell$column$columnDe6, _cell$column$columnDe7;
32
44
  var colClassExpression = (cell === null || cell === void 0 || (_cell$column$columnDe = cell.column.columnDef.meta) === null || _cell$column$columnDe === void 0 ? void 0 : _cell$column$columnDe.colClass) || "";
33
45
  var columnId = (cell === null || cell === void 0 || (_cell$column = cell.column) === null || _cell$column === void 0 ? void 0 : _cell$column.id) || (cell === null || cell === void 0 || (_cell$column$columnDe2 = cell.column.columnDef) === null || _cell$column$columnDe2 === void 0 ? void 0 : _cell$column$columnDe2.accessorKey) || "";
34
46
  var colClass = (0, _utils.getColClass)(colClassExpression, rowData, columnId);
47
+ var customRender = customExpressionColumns === null || customExpressionColumns === void 0 ? void 0 : customExpressionColumns[columnId];
35
48
  return __jsx(_react.Fragment, {
36
- key: "cell-".concat(cellIndex)
49
+ key: (_cell$id = cell === null || cell === void 0 ? void 0 : cell.id) !== null && _cell$id !== void 0 ? _cell$id : "cell-".concat(columnId, "-").concat(cellIndex)
37
50
  }, hasExpansion && cellIndex === expansionInsertIndex && renderExpansionCell(rowId, rowData), __jsx(_material.TableCell, {
38
51
  key: cell.id,
39
52
  title: cell.getValue() ? String(cell.getValue()) : "",
@@ -46,22 +59,23 @@ var RowCells = exports.RowCells = /*#__PURE__*/(0, _react.memo)(function (_ref)
46
59
  textAlign: (_cell$column$columnDe4 = cell.column.columnDef.meta) === null || _cell$column$columnDe4 === void 0 ? void 0 : _cell$column$columnDe4.textAlign,
47
60
  backgroundColor: (_cell$column$columnDe5 = cell.column.columnDef.meta) === null || _cell$column$columnDe5 === void 0 ? void 0 : _cell$column$columnDe5.backgroundColor
48
61
  }, function () {
49
- var _ref2 = cell.column.columnDef.meta || {},
50
- className = _ref2.className,
51
- textAlign = _ref2.textAlign,
52
- backgroundColor = _ref2.backgroundColor,
53
- otherMeta = (0, _objectWithoutProperties2["default"])(_ref2, _excluded);
62
+ var _ref3 = cell.column.columnDef.meta || {},
63
+ className = _ref3.className,
64
+ textAlign = _ref3.textAlign,
65
+ backgroundColor = _ref3.backgroundColor,
66
+ otherMeta = (0, _objectWithoutProperties2["default"])(_ref3, _excluded);
54
67
  return otherMeta;
55
68
  }()), {}, {
56
69
  fontSize: "inherit",
57
70
  color: "inherit"
58
71
  })
59
- }, (_cell$column$columnDe6 = cell.column.columnDef.meta) !== null && _cell$column$columnDe6 !== void 0 && _cell$column$columnDe6.renderCellContent && !isEditingRow ? (_cell$column$columnDe7 = cell.column.columnDef.meta) === null || _cell$column$columnDe7 === void 0 ? void 0 : _cell$column$columnDe7.renderCellContent(rowData, cell.column.columnDef) : (0, _reactTable.flexRender)(cell.column.columnDef.cell, cell.getContext())));
72
+ }, customRender ? __jsx(CustomExpressionRenderBody, {
73
+ rowData: rowData,
74
+ render: customRender
75
+ }) : (_cell$column$columnDe6 = cell.column.columnDef.meta) !== null && _cell$column$columnDe6 !== void 0 && _cell$column$columnDe6.renderCellContent && !isEditingRow ? (_cell$column$columnDe7 = cell.column.columnDef.meta) === null || _cell$column$columnDe7 === void 0 ? void 0 : _cell$column$columnDe7.renderCellContent(rowData, cell.column.columnDef) : (0, _reactTable.flexRender)(cell.column.columnDef.cell, cell.getContext())));
60
76
  }));
61
77
  }, function (prevProps, nextProps) {
62
- // Compare rowData, isEditingRow, ColClassSignature, and isSelected for rendering updates
63
- // Note: cells comparison removed to avoid conflicts with external DOM manipulation
64
- // isSelected is compared to trigger re-renders when selection state changes
65
- return prevProps.rowData === nextProps.rowData && prevProps.isEditingRow === nextProps.isEditingRow && prevProps.isSelected === nextProps.isSelected && prevProps.ColClassSignature === nextProps.ColClassSignature;
78
+ var skipRender = prevProps.rowData === nextProps.rowData && prevProps.isEditingRow === nextProps.isEditingRow && prevProps.isSelected === nextProps.isSelected && prevProps.ColClassSignature === nextProps.ColClassSignature && prevProps.customExpressionColumns === nextProps.customExpressionColumns && prevProps.customColumnsRevision === nextProps.customColumnsRevision && prevProps.columnsVersion === nextProps.columnsVersion && prevProps.cells === nextProps.cells && prevProps.rowsVersion === nextProps.rowsVersion;
79
+ return skipRender;
66
80
  });
67
81
  RowCells.displayName = "RowCells";
@@ -198,7 +198,12 @@ var TableBodyComponentBase = function TableBodyComponentBase(_ref4) {
198
198
  editingRowId = _ref4$editingRowId === void 0 ? null : _ref4$editingRowId,
199
199
  _ref4$isAddingNewRow = _ref4.isAddingNewRow,
200
200
  isAddingNewRow = _ref4$isAddingNewRow === void 0 ? false : _ref4$isAddingNewRow,
201
- registerRowDefInstance = _ref4.registerRowDefInstance;
201
+ registerRowDefInstance = _ref4.registerRowDefInstance,
202
+ customExpressionColumns = _ref4.customExpressionColumns,
203
+ _ref4$customColumnsRe = _ref4.customColumnsRevision,
204
+ customColumnsRevision = _ref4$customColumnsRe === void 0 ? 0 : _ref4$customColumnsRe,
205
+ _ref4$columnsVersion = _ref4.columnsVersion,
206
+ columnsVersion = _ref4$columnsVersion === void 0 ? 0 : _ref4$columnsVersion;
202
207
  var hasExpansion = !!(rowExpansionConfig !== null && rowExpansionConfig !== void 0 && rowExpansionConfig.show && toggleRowExpansion && isRowExpanded);
203
208
  var expansionInsertIndex = useExpansionPosition(hasExpansion, rowExpansionConfig || null, columns);
204
209
  var totalColumns = columns.length + (hasExpansion ? 1 : 0);
@@ -250,7 +255,10 @@ var TableBodyComponentBase = function TableBodyComponentBase(_ref4) {
250
255
  ExpandedContent: ExpandedContent,
251
256
  rowExpansionConfig: rowExpansionConfig,
252
257
  totalColumns: totalColumns,
253
- onInstanceLoad: registerRowDefInstance
258
+ onInstanceLoad: registerRowDefInstance,
259
+ customExpressionColumns: customExpressionColumns,
260
+ customColumnsRevision: customColumnsRevision,
261
+ columnsVersion: columnsVersion
254
262
  });
255
263
  });
256
264
  };
@@ -259,7 +267,7 @@ var TableBodyComponentBase = function TableBodyComponentBase(_ref4) {
259
267
  }, formposition === "top" && renderAddNewRow(), renderTableContent(), formposition === "bottom" && renderAddNewRow());
260
268
  };
261
269
  var TableBodyComponent = exports.TableBodyComponent = /*#__PURE__*/(0, _react.memo)(TableBodyComponentBase, function (prev, current) {
262
- var keys = ["rowClass", "formposition", "nodatamessage", "rowsVersion", "tableData", "ColClassSignature", "activeRowIds", "selectedRowIds", "editingRowId", "table", "renderAddNewRow", "isAddingNewRow"];
270
+ var keys = ["rowClass", "formposition", "nodatamessage", "rowsVersion", "tableData", "ColClassSignature", "activeRowIds", "selectedRowIds", "editingRowId", "table", "renderAddNewRow", "isAddingNewRow", "customExpressionColumns", "customColumnsRevision", "columnsVersion"];
263
271
  return keys.every(function (key) {
264
272
  if (key === "activeRowIds" || key === "selectedRowIds") {
265
273
  return (0, _isEqual["default"])(prev[key], current[key]);
@@ -19,6 +19,9 @@ interface DataRowProps {
19
19
  totalColumns: number;
20
20
  index: number;
21
21
  onInstanceLoad?: (rowId: string, instance: any, rowData: any) => void;
22
+ customExpressionColumns?: Record<string, (rowData: any) => React.ReactNode>;
23
+ customColumnsRevision?: number;
24
+ columnsVersion?: number;
22
25
  }
23
26
  export declare const TableDataRow: React.NamedExoticComponent<DataRowProps>;
24
27
  export {};
@@ -35,7 +35,12 @@ var TableDataRowComponent = function TableDataRowComponent(_ref) {
35
35
  rowExpansionConfig = _ref.rowExpansionConfig,
36
36
  totalColumns = _ref.totalColumns,
37
37
  index = _ref.index,
38
- onInstanceLoad = _ref.onInstanceLoad;
38
+ onInstanceLoad = _ref.onInstanceLoad,
39
+ customExpressionColumns = _ref.customExpressionColumns,
40
+ _ref$customColumnsRev = _ref.customColumnsRevision,
41
+ customColumnsRevision = _ref$customColumnsRev === void 0 ? 0 : _ref$customColumnsRev,
42
+ _ref$columnsVersion = _ref.columnsVersion,
43
+ columnsVersion = _ref$columnsVersion === void 0 ? 0 : _ref$columnsVersion;
39
44
  // Subscribe to edits for this specific row.
40
45
  // This hook will only trigger a re-render for THIS component if the data for this row changes.
41
46
  var editedTableData = (0, _useEditedRows.useEditedRow)(rowId);
@@ -94,7 +99,10 @@ var TableDataRowComponent = function TableDataRowComponent(_ref) {
94
99
  rowsVersion: rowsVersion,
95
100
  tableData: tableData,
96
101
  isEditingRow: isEditingRow,
97
- isSelected: isSelected
102
+ isSelected: isSelected,
103
+ customExpressionColumns: customExpressionColumns,
104
+ customColumnsRevision: customColumnsRevision,
105
+ columnsVersion: columnsVersion
98
106
  })), hasExpansion && rowIsExpanded && rowExpansionConfig && __jsx(ExpandedContent, {
99
107
  rowId: rowId,
100
108
  rowData: row.original,
@@ -104,7 +112,7 @@ var TableDataRowComponent = function TableDataRowComponent(_ref) {
104
112
  }));
105
113
  };
106
114
  var TableDataRow = exports.TableDataRow = /*#__PURE__*/(0, _react.memo)(TableDataRowComponent, function (prev, next) {
107
- var keys = ["isSelected", "isActive", "rowIsExpanded", "isEditingRow", "rowClass", "ColClassSignature", "rowsVersion", "row", "index"];
115
+ var keys = ["isSelected", "isActive", "rowIsExpanded", "isEditingRow", "rowClass", "ColClassSignature", "rowsVersion", "row", "index", "customExpressionColumns", "customColumnsRevision", "columnsVersion"];
108
116
  return keys.every(function (key) {
109
117
  return prev[key] === next[key];
110
118
  });
@@ -388,10 +388,7 @@ var TableHeaderComponent = exports.TableHeaderComponent = /*#__PURE__*/(0, _reac
388
388
  "data-col-id": headerIndex,
389
389
  tabIndex: 0,
390
390
  "data-col-field": header.column.id
391
- }, __jsx(_material.Box, {
392
- component: "span",
393
- className: "header-data"
394
- }, header.isPlaceholder ? null : (0, _reactTable.flexRender)(header.column.columnDef.header, header.getContext())), enablesort && !enablecolumnselection && header.column.getCanSort() && __jsx(_material.Box, {
391
+ }, header.isPlaceholder ? null : (0, _reactTable.flexRender)(header.column.columnDef.header, header.getContext()), enablesort && !enablecolumnselection && header.column.getCanSort() && __jsx(_material.Box, {
395
392
  style: {
396
393
  zIndex: 90
397
394
  },
@@ -16,3 +16,4 @@ export * from "./useTableEffects";
16
16
  export * from "./useTableStateManager";
17
17
  export * from "./useTableFilter";
18
18
  export * from "./useDynamicColumns";
19
+ export * from "./useCustomExpressionColumns";