@wavemaker-ai/react-runtime 1.0.0-rc.322 → 1.0.0-rc.324

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 (217) hide show
  1. package/actions/login-action.js +1 -1
  2. package/components/advanced/carousel/index.d.ts +1 -0
  3. package/components/advanced/carousel/template.d.ts +1 -0
  4. package/components/advanced/login/index.d.ts +1 -0
  5. package/components/advanced/marquee/index.d.ts +1 -0
  6. package/components/basic/anchor/index.d.ts +1 -0
  7. package/components/basic/anchor/index.js +16 -14
  8. package/components/basic/audio/index.d.ts +1 -0
  9. package/components/basic/html/index.d.ts +1 -0
  10. package/components/basic/icon/index.d.ts +1 -0
  11. package/components/basic/icon/index.js +13 -16
  12. package/components/basic/iframe/index.d.ts +1 -0
  13. package/components/basic/label/index.d.ts +1 -0
  14. package/components/basic/label/index.js +5 -3
  15. package/components/basic/label/props.d.ts +1 -1
  16. package/components/basic/picture/index.d.ts +1 -0
  17. package/components/basic/picture/index.js +3 -2
  18. package/components/basic/progress-bar/index.d.ts +1 -0
  19. package/components/basic/progress-circle/index.d.ts +1 -0
  20. package/components/basic/richtexteditor/index.d.ts +2 -0
  21. package/components/basic/search/index.d.ts +6 -0
  22. package/components/basic/search/index.js +69 -9
  23. package/components/basic/search/props.d.ts +4 -0
  24. package/components/basic/spinner/index.d.ts +2 -0
  25. package/components/basic/spinner/index.js +11 -9
  26. package/components/basic/spinner/props.d.ts +5 -0
  27. package/components/basic/tile/index.d.ts +1 -0
  28. package/components/basic/tree/index.d.ts +1 -0
  29. package/components/basic/video/index.d.ts +1 -0
  30. package/components/chart/index.d.ts +2 -0
  31. package/components/chart/props.d.ts +1 -0
  32. package/components/chart/src/chart.js +12 -1
  33. package/components/chart/src/types.d.ts +2 -0
  34. package/components/common/WmAppIcon/index.d.ts +15 -0
  35. package/components/common/WmAppIcon/index.js +130 -0
  36. package/components/common/WmAppIcon/props.d.ts +17 -0
  37. package/components/common/WmAppIcon/props.js +0 -0
  38. package/components/common/index.d.ts +3 -1
  39. package/components/common/index.js +10 -2
  40. package/components/common/wm-skeleton.d.ts +7 -0
  41. package/components/common/wm-skeleton.js +11 -1
  42. package/components/container/accordion/accordion-pane/index.d.ts +2 -0
  43. package/components/container/accordion/accordion-pane/index.js +10 -1
  44. package/components/container/accordion/accordion-pane/props.d.ts +1 -0
  45. package/components/container/accordion/index.d.ts +1 -0
  46. package/components/container/accordion/index.js +2 -2
  47. package/components/container/index.d.ts +1 -0
  48. package/components/container/layout-grid/grid-column/index.d.ts +1 -0
  49. package/components/container/layout-grid/grid-row/index.d.ts +1 -0
  50. package/components/container/layout-grid/index.d.ts +1 -0
  51. package/components/container/linear-layout/index.d.ts +1 -0
  52. package/components/container/linear-layout/linear-layout-item/index.d.ts +1 -0
  53. package/components/container/panel/components/panel-header/index.js +16 -16
  54. package/components/container/panel/index.d.ts +1 -0
  55. package/components/container/repeat-template/index.d.ts +1 -0
  56. package/components/container/tabs/index.d.ts +1 -0
  57. package/components/container/tabs/index.js +18 -18
  58. package/components/container/tabs/props.d.ts +1 -0
  59. package/components/container/tabs/tab-pane/index.d.ts +2 -0
  60. package/components/container/tabs/tab-pane/index.js +2 -0
  61. package/components/container/tabs/tab-pane/props.d.ts +1 -0
  62. package/components/container/wizard/components/StepComponents.js +14 -6
  63. package/components/container/wizard/index.d.ts +2 -0
  64. package/components/container/wizard/index.js +2 -2
  65. package/components/container/wizard/props.d.ts +4 -0
  66. package/components/container/wizard/wizard-step/index.d.ts +1 -0
  67. package/components/container/wizard/wizard-step/index.js +6 -0
  68. package/components/data/card/card-actions/index.d.ts +1 -0
  69. package/components/data/card/card-content/index.d.ts +1 -0
  70. package/components/data/card/card-footer/index.d.ts +1 -0
  71. package/components/data/card/index.d.ts +1 -0
  72. package/components/data/card/index.js +13 -6
  73. package/components/data/form/dynamic-fields/index.js +1 -0
  74. package/components/data/form/form-action/index.d.ts +2 -0
  75. package/components/data/form/form-action/index.js +6 -4
  76. package/components/data/form/form-field/index.js +5 -4
  77. package/components/data/form/form-header/index.d.ts +1 -1
  78. package/components/data/form/form-header/index.js +10 -1
  79. package/components/data/form/index.js +5 -3
  80. package/components/data/form/props.d.ts +1 -0
  81. package/components/data/list/components/ListHeader.js +19 -3
  82. package/components/data/list/components/ListItemWithTemplate.js +5 -1
  83. package/components/data/list/components/ListItems.d.ts +1 -1
  84. package/components/data/list/components/ListItems.js +5 -1
  85. package/components/data/list/components/LoadMoreButton.js +14 -2
  86. package/components/data/list/components/StandardListItems.js +1 -1
  87. package/components/data/list/components/props.d.ts +11 -5
  88. package/components/data/list/hooks/props.d.ts +2 -2
  89. package/components/data/list/hooks/useListEventHandlers.js +3 -2
  90. package/components/data/list/index.d.ts +5 -1
  91. package/components/data/list/index.js +17 -4
  92. package/components/data/list/props.d.ts +14 -2
  93. package/components/data/list/utils/list-helpers.d.ts +5 -1
  94. package/components/data/list/utils/list-helpers.js +10 -0
  95. package/components/data/pagination/components/PageSizeSelector.js +49 -155
  96. package/components/data/pagination/hooks/usePagination.js +24 -1
  97. package/components/data/table/components/RowCells.js +1 -1
  98. package/components/data/table/components/TableDataRow.js +16 -3
  99. package/components/data/table/components/TableHeader.js +1 -1
  100. package/components/data/table/components/TablePanelHeading.js +14 -2
  101. package/components/data/table/hooks/useResponsiveColumns.d.ts +1 -0
  102. package/components/data/table/hooks/useTableColumns.js +2 -2
  103. package/components/data/table/hooks/useTableData.js +30 -1
  104. package/components/data/table/index.d.ts +4 -0
  105. package/components/data/table/index.js +47 -30
  106. package/components/data/table/live-table/index.d.ts +1 -0
  107. package/components/data/table/props.d.ts +11 -2
  108. package/components/data/table/table-action/index.d.ts +1 -0
  109. package/components/data/table/table-column/index.d.ts +1 -0
  110. package/components/data/table/table-row/index.d.ts +1 -0
  111. package/components/data/table/table-row-action/index.d.ts +1 -0
  112. package/components/data/table/utils/buildSelectionColumns.d.ts +1 -1
  113. package/components/data/table/utils/buildSelectionColumns.js +97 -71
  114. package/components/data/table/utils/columnBuilder.d.ts +13 -0
  115. package/components/data/table/utils/columnBuilder.js +27 -18
  116. package/components/data/table/utils/columnWidthDistribution.d.ts +1 -1
  117. package/components/data/table/utils/columnWidthDistribution.js +4 -1
  118. package/components/data/table/utils/constants.d.ts +1 -1
  119. package/components/data/table/utils/constants.js +1 -1
  120. package/components/dialogs/alert-dialog/index.d.ts +2 -0
  121. package/components/dialogs/confirm-dialog/index.d.ts +2 -0
  122. package/components/dialogs/dialog/index.d.ts +2 -0
  123. package/components/dialogs/dialog-actions/index.d.ts +1 -0
  124. package/components/dialogs/dialog-body/index.d.ts +1 -0
  125. package/components/dialogs/dialog-content/index.d.ts +1 -0
  126. package/components/dialogs/dialog-header/index.d.ts +1 -0
  127. package/components/dialogs/dialog-header/index.js +11 -12
  128. package/components/dialogs/iframe-dialog/index.d.ts +2 -0
  129. package/components/dialogs/login-dialog/index.d.ts +4 -0
  130. package/components/dialogs/login-dialog/index.js +2 -1
  131. package/components/dialogs/login-dialog/props.d.ts +1 -0
  132. package/components/dialogs/page-dialog/index.d.ts +4 -0
  133. package/components/dialogs/page-dialog/index.js +2 -1
  134. package/components/dialogs/page-dialog/props.d.ts +1 -0
  135. package/components/form/button/index.d.ts +1 -0
  136. package/components/form/button/index.js +29 -33
  137. package/components/form/button-group/index.d.ts +1 -0
  138. package/components/input/calendar/index.d.ts +2 -0
  139. package/components/input/chips/index.d.ts +2 -0
  140. package/components/input/chips/index.js +9 -3
  141. package/components/input/chips/utils.d.ts +5 -0
  142. package/components/input/chips/utils.js +29 -0
  143. package/components/input/color-picker/index.d.ts +2 -0
  144. package/components/input/composite/index.d.ts +1 -0
  145. package/components/input/composite/index.js +1 -0
  146. package/components/input/currency/index.d.ts +2 -0
  147. package/components/input/default/checkbox/index.d.ts +6 -0
  148. package/components/input/default/checkbox/index.js +48 -18
  149. package/components/input/default/checkbox/props.d.ts +8 -0
  150. package/components/input/default/checkboxset/index.d.ts +2 -0
  151. package/components/input/default/radioset/index.d.ts +2 -0
  152. package/components/input/default/switch/index.d.ts +6 -0
  153. package/components/input/default/switch/index.js +36 -9
  154. package/components/input/default/switch/prop.d.ts +2 -0
  155. package/components/input/epoch/date/index.d.ts +1 -0
  156. package/components/input/epoch/datetime/index.d.ts +1 -0
  157. package/components/input/epoch/time/index.d.ts +1 -0
  158. package/components/input/fileupload/components/ListItems.d.ts +5 -1
  159. package/components/input/fileupload/components/ListItems.js +27 -5
  160. package/components/input/fileupload/components/MultiUpload.js +12 -1
  161. package/components/input/fileupload/components/SingleUpload.js +12 -1
  162. package/components/input/fileupload/index.d.ts +3 -0
  163. package/components/input/fileupload/index.js +11 -0
  164. package/components/input/fileupload/props.d.ts +10 -0
  165. package/components/input/number/index.d.ts +2 -0
  166. package/components/input/rating/index.d.ts +6 -0
  167. package/components/input/rating/index.js +10 -5
  168. package/components/input/rating/props.d.ts +8 -0
  169. package/components/input/select/index.d.ts +2 -0
  170. package/components/input/slider/index.d.ts +6 -0
  171. package/components/input/slider/index.js +19 -2
  172. package/components/input/slider/props.d.ts +2 -0
  173. package/components/input/text/index.d.ts +7 -1
  174. package/components/input/text/index.js +25 -6
  175. package/components/input/text/props.d.ts +8 -0
  176. package/components/input/textarea/index.d.ts +2 -0
  177. package/components/input/textarea/index.js +9 -4
  178. package/components/input/textarea/util.d.ts +1 -0
  179. package/components/input/textarea/util.js +17 -0
  180. package/components/input/upload/index.d.ts +2 -0
  181. package/components/navbar/index.d.ts +7 -0
  182. package/components/navbar/index.js +21 -7
  183. package/components/navbar/nav/index.d.ts +1 -0
  184. package/components/navbar/nav-item/index.d.ts +1 -0
  185. package/components/navigation/breadcrumb/index.d.ts +1 -0
  186. package/components/navigation/menu/index.d.ts +3 -1
  187. package/components/navigation/menu/index.js +22 -4
  188. package/components/navigation/menu/props.d.ts +1 -0
  189. package/components/navigation/popover/index.d.ts +1 -0
  190. package/components/navigation/popover/index.js +8 -2
  191. package/components/page/partial/index.d.ts +1 -0
  192. package/core/appstore.d.ts +10 -0
  193. package/core/appstore.js +9 -1
  194. package/core/constants/events.d.ts +3 -0
  195. package/core/constants/events.js +13 -1
  196. package/core/proxy-service.js +1 -1
  197. package/core/util/index.d.ts +2 -0
  198. package/core/util/index.js +29 -0
  199. package/higherOrder/BasePage.js +81 -26
  200. package/higherOrder/props.d.ts +1 -0
  201. package/higherOrder/useActivePageReactivity.d.ts +21 -0
  202. package/higherOrder/useActivePageReactivity.js +57 -0
  203. package/higherOrder/withBaseWrapper.js +2 -0
  204. package/higherOrder/withRenderLogger.d.ts +15 -0
  205. package/higherOrder/withRenderLogger.js +53 -0
  206. package/hooks/useAuth.js +7 -1
  207. package/package-lock.json +219 -198
  208. package/package.json +4 -3
  209. package/runtime-dynamic/factories/dynamic-component.js +18 -5
  210. package/runtime-dynamic/factories/utils.js +7 -1
  211. package/runtime-dynamic/services/compile-render.js +2 -1
  212. package/store/slices/i18nSlice.d.ts +2 -0
  213. package/store/slices/i18nSlice.js +3 -1
  214. package/types/index.d.ts +6 -0
  215. package/utils/attr.js +4 -1
  216. package/utils/svg-icon.d.ts +27 -0
  217. package/utils/svg-icon.js +75 -0
@@ -22,6 +22,7 @@ import { createElement } from "react";
22
22
  import React, {
23
23
  createContext,
24
24
  memo,
25
+ Suspense,
25
26
  useCallback,
26
27
  useContext,
27
28
  useEffect,
@@ -34,12 +35,12 @@ import isEqual from "lodash-es/isEqual";
34
35
  import { Tabs } from "@base-ui-components/react/tabs";
35
36
  import Typography from "@mui/material/Typography";
36
37
  import withBaseWrapper from "../../../higherOrder/withBaseWrapper";
38
+ import { WmAppIcon } from "../../common/WmAppIcon";
37
39
  import WmTabPane from "./tab-pane";
38
40
  import { DEFAULT_PROPS } from "./props";
39
41
  import {
40
42
  WmSkeleton,
41
- SKELETON_REGISTRY,
42
- shouldShowSkeleton
43
+ SKELETON_REGISTRY
43
44
  } from "../../common/wm-skeleton";
44
45
  import {
45
46
  getWidgetState,
@@ -55,6 +56,7 @@ const PANE_HEADER_PROP_KEYS = [
55
56
  "disabled",
56
57
  "show",
57
58
  "paneicon",
59
+ "paneiconurl",
58
60
  "badgevalue",
59
61
  "badgetype",
60
62
  "className",
@@ -67,6 +69,7 @@ const getPaneHeaderProps = (props) => ({
67
69
  disabled: props == null ? void 0 : props.disabled,
68
70
  show: props == null ? void 0 : props.show,
69
71
  paneicon: props == null ? void 0 : props.paneicon,
72
+ paneiconurl: props == null ? void 0 : props.paneiconurl,
70
73
  badgevalue: props == null ? void 0 : props.badgevalue,
71
74
  badgetype: props == null ? void 0 : props.badgetype,
72
75
  className: props == null ? void 0 : props.className,
@@ -95,17 +98,6 @@ const useTabsContext = () => {
95
98
  const WmTabs = memo(
96
99
  (Props) => {
97
100
  const props = __spreadValues(__spreadValues({}, DEFAULT_PROPS), Props);
98
- if (shouldShowSkeleton(props.loading, props.showSkeleton)) {
99
- return /* @__PURE__ */ jsx(
100
- WmSkeleton,
101
- __spreadProps(__spreadValues({}, SKELETON_REGISTRY["WmTabs"]), {
102
- rows: props.skeletonRows,
103
- columns: props.skeletonColumns,
104
- className: clsx("app-tabs clearfix", props.className),
105
- styles: props.styles
106
- })
107
- );
108
- }
109
101
  const {
110
102
  defaultpaneindex,
111
103
  statehandler,
@@ -329,7 +321,7 @@ const WmTabs = memo(
329
321
  active: selectedIndex === index,
330
322
  disabled: item == null ? void 0 : item.disabled
331
323
  }),
332
- hidden: item.show === false,
324
+ hidden: item.show === false || item.show === "false",
333
325
  role: "tab",
334
326
  "aria-selected": selectedIndex === index,
335
327
  tabIndex: selectedIndex === index ? 0 : -1,
@@ -343,11 +335,19 @@ const WmTabs = memo(
343
335
  title: item.title || item.name || `Tab ${index + 1}`,
344
336
  "aria-selected": selectedIndex === index,
345
337
  "aria-disabled": item.disabled,
346
- "aria-hidden": item.show === false,
338
+ "aria-hidden": item.show === false || item.show === "false",
347
339
  "aria-controls": `tabpanel-${index}`,
348
340
  onClick: (e) => handleTabHeaderClick(e, item, index),
349
341
  children: [
350
- item.paneicon && /* @__PURE__ */ jsx("i", { className: `app-icon ${item.paneicon}` }),
342
+ (item.paneicon || item.paneiconurl) && /* @__PURE__ */ jsx(
343
+ WmAppIcon,
344
+ {
345
+ iconclass: item.paneicon,
346
+ iconurl: item.paneiconurl,
347
+ prefabName: props.prefabName,
348
+ alt: "Tab icon"
349
+ }
350
+ ),
351
351
  /* @__PURE__ */ jsx(Typography, { variant: "body2", component: "span", children: item.title || item.name || `Tab ${index + 1}` }),
352
352
  item.badgevalue && /* @__PURE__ */ jsx(
353
353
  Typography,
@@ -427,7 +427,7 @@ const WmTabs = memo(
427
427
  return Array.from(renderedTabIndices).filter((index) => index >= 0 && index < dataset.length).map((index) => {
428
428
  const item = dataset[index];
429
429
  const isActive = selectedIndex === index;
430
- return /* @__PURE__ */ jsx(React.Fragment, { children: render ? /* @__PURE__ */ jsx(Fragment, { children: render(item, index, dataset, isActive) }) : /* @__PURE__ */ createElement(
430
+ return /* @__PURE__ */ jsx(React.Fragment, { children: render ? /* @__PURE__ */ jsx(Fragment, { children: render(item, index, dataset, isActive) }) : /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(WmSkeleton, __spreadValues({}, SKELETON_REGISTRY["WmTabs"])), children: /* @__PURE__ */ createElement(
431
431
  WmTabPane,
432
432
  __spreadProps(__spreadValues({}, item), {
433
433
  key: index,
@@ -440,7 +440,7 @@ const WmTabs = memo(
440
440
  }),
441
441
  index
442
442
  })
443
- ) }, index);
443
+ ) }) }, index);
444
444
  });
445
445
  }
446
446
  const visibleChildren = filterVisibleChildren(children, hiddenTabNames);
@@ -19,6 +19,7 @@ export type PaneHeaderProps = {
19
19
  disabled?: boolean;
20
20
  show?: string | boolean;
21
21
  paneicon?: string;
22
+ paneiconurl?: string;
22
23
  badgevalue?: string | number;
23
24
  badgetype?: string;
24
25
  className?: string;
@@ -29,6 +29,7 @@ declare const _default: React.ComponentType<{
29
29
  badgevalue?: string | number;
30
30
  badgetype?: string;
31
31
  paneicon?: string;
32
+ paneiconurl?: string;
32
33
  isdynamic?: boolean;
33
34
  index?: number;
34
35
  item?: Record<string, unknown>;
@@ -89,5 +90,6 @@ declare const _default: React.ComponentType<{
89
90
  prefabName?: string;
90
91
  loading?: boolean;
91
92
  showSkeleton?: boolean;
93
+ widget?: string;
92
94
  }>;
93
95
  export default _default;
@@ -68,6 +68,7 @@ const WmTabpane = (props) => {
68
68
  disabled,
69
69
  show: props.show,
70
70
  paneicon: props.paneicon,
71
+ paneiconurl: props.paneiconurl,
71
72
  badgevalue: props.badgevalue,
72
73
  badgetype: props.badgetype,
73
74
  className,
@@ -80,6 +81,7 @@ const WmTabpane = (props) => {
80
81
  disabled,
81
82
  props.show,
82
83
  props.paneicon,
84
+ props.paneiconurl,
83
85
  props.badgevalue,
84
86
  props.badgetype,
85
87
  className,
@@ -41,6 +41,7 @@ export interface TabPanePropsBase {
41
41
  * Icon class for the tab header.
42
42
  */
43
43
  paneicon?: string;
44
+ paneiconurl?: string;
44
45
  /**
45
46
  * Whether this pane is from dynamic tabs (injected).
46
47
  */
@@ -2,6 +2,7 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
2
  import { memo, useMemo } from "react";
3
3
  import { Box, Typography } from "@mui/material";
4
4
  import clsx from "clsx";
5
+ import { WmAppIcon } from "../../../common/WmAppIcon";
5
6
  const CustomStepIcon = memo(
6
7
  (props) => {
7
8
  const { step, index = 0, wizardClass = "", active, completed } = props;
@@ -12,20 +13,27 @@ const CustomStepIcon = memo(
12
13
  const isIconStepper = (wizardClass == null ? void 0 : wizardClass.includes("iconstepper")) || (wizardClass == null ? void 0 : wizardClass.includes("tabstepper"));
13
14
  const isCompleted = step.isDone;
14
15
  const iconContent = useMemo(() => {
15
- if (isCompleted && (isDottedStepper || isNumber)) {
16
+ if (isCompleted && (isDottedStepper || isNumber) && !isIconStepper) {
16
17
  return /* @__PURE__ */ jsx(Box, { component: "i", className: "app-icon wi wi-done" });
17
18
  }
18
- if (isNumber && !isCompleted) {
19
+ if (isNumber && !isCompleted && !isIconStepper) {
19
20
  return /* @__PURE__ */ jsx(Box, { component: "span", className: "count", children: index + 1 });
20
21
  }
21
22
  if ((isDottedStepper || isTextInline && !isIconStepper) && !isCompleted) {
22
23
  return /* @__PURE__ */ jsx(Box, { component: "span", className: "dottedstepper" });
23
24
  }
24
- if (isIconStepper && step.iconclass && (!isCompleted || isCompleted && !step.doneiconclass)) {
25
- return /* @__PURE__ */ jsx(Box, { component: "span", className: `app-icon ${step.iconclass}` });
25
+ if (isIconStepper && (step.iconclass || step.iconurl) && (!isCompleted || isCompleted && !step.doneiconclass && !step.doneiconurl)) {
26
+ return /* @__PURE__ */ jsx(WmAppIcon, { iconclass: step.iconclass, iconurl: step.iconurl, alt: "Wizard step icon" });
26
27
  }
27
- if (step.doneiconclass && isCompleted && isIconStepper) {
28
- return /* @__PURE__ */ jsx(Box, { component: "span", className: `app-icon ${step.doneiconclass}` });
28
+ if ((step.doneiconclass || step.doneiconurl) && isCompleted && isIconStepper) {
29
+ return /* @__PURE__ */ jsx(
30
+ WmAppIcon,
31
+ {
32
+ iconclass: step.doneiconclass,
33
+ iconurl: step.doneiconurl,
34
+ alt: "Wizard done icon"
35
+ }
36
+ );
29
37
  }
30
38
  return null;
31
39
  }, [step, index, isCompleted, isDottedStepper, isNumber, isTextInline, isIconStepper]);
@@ -79,6 +79,7 @@ declare const WmWizardStandalone: React.ComponentType<{
79
79
  prefabName?: string;
80
80
  loading?: boolean;
81
81
  showSkeleton?: boolean;
82
+ widget?: string;
82
83
  } & import("@wavemaker-ai/react-runtime/higherOrder/withStandalone").WithStandaloneProps>;
83
84
  export { WmWizardStandalone as WmWizard };
84
85
  /**
@@ -170,5 +171,6 @@ declare const _default: React.ComponentType<{
170
171
  prefabName?: string;
171
172
  loading?: boolean;
172
173
  showSkeleton?: boolean;
174
+ widget?: string;
173
175
  }>;
174
176
  export default _default;
@@ -54,7 +54,7 @@ import withStandalone from "../../../higherOrder/withStandalone";
54
54
  import {
55
55
  WmSkeleton,
56
56
  SKELETON_REGISTRY,
57
- shouldShowSkeleton
57
+ useShouldShowSkeleton
58
58
  } from "../../common/wm-skeleton";
59
59
  const DEFAULT_CLS = "app-wizard panel clearfix";
60
60
  const BODY_CLASS = "app-wizard-body panel-body";
@@ -838,7 +838,7 @@ const WmWizardComponent = memo(
838
838
  }
839
839
  );
840
840
  const WmWizard = (props) => {
841
- if (shouldShowSkeleton(props.loading, props.showSkeleton)) {
841
+ if (useShouldShowSkeleton(props.loading, props.showSkeleton)) {
842
842
  return /* @__PURE__ */ jsx(
843
843
  WmSkeleton,
844
844
  __spreadProps(__spreadValues({}, SKELETON_REGISTRY["WmWizard"]), {
@@ -34,7 +34,9 @@ export interface WizardStepData extends Record<string, unknown> {
34
34
  title: string;
35
35
  subtitle?: string;
36
36
  iconclass: string;
37
+ iconurl?: string;
37
38
  doneiconclass: string;
39
+ doneiconurl?: string;
38
40
  show: boolean | string;
39
41
  enableskip: boolean;
40
42
  enableNext: boolean;
@@ -235,7 +237,9 @@ export interface WmWizardStepProps {
235
237
  title?: string;
236
238
  subtitle?: string;
237
239
  iconclass?: string;
240
+ iconurl?: string;
238
241
  doneiconclass?: string;
242
+ doneiconurl?: string;
239
243
  enableskip?: boolean;
240
244
  disablenext?: boolean;
241
245
  disabledone?: boolean;
@@ -61,5 +61,6 @@ declare const _default: import("react").ComponentType<{
61
61
  prefabName?: string;
62
62
  loading?: boolean;
63
63
  showSkeleton?: boolean;
64
+ widget?: string;
64
65
  }>;
65
66
  export default _default;
@@ -12,7 +12,9 @@ const WmWizardstep = memo(
12
12
  title = "Step Title",
13
13
  subtitle,
14
14
  iconclass = "wi wi-person",
15
+ iconurl,
15
16
  doneiconclass = "wi wi-done",
17
+ doneiconurl,
16
18
  enableskip = false,
17
19
  disablenext = false,
18
20
  disabledone = false,
@@ -40,7 +42,9 @@ const WmWizardstep = memo(
40
42
  title,
41
43
  subtitle,
42
44
  iconclass,
45
+ iconurl,
43
46
  doneiconclass,
47
+ doneiconurl,
44
48
  show,
45
49
  enableskip,
46
50
  enableNext: !disablenext,
@@ -70,7 +74,9 @@ const WmWizardstep = memo(
70
74
  title,
71
75
  subtitle,
72
76
  iconclass,
77
+ iconurl,
73
78
  doneiconclass,
79
+ doneiconurl,
74
80
  show,
75
81
  enableskip,
76
82
  disablenext,
@@ -65,5 +65,6 @@ declare const _default: React.ComponentType<{
65
65
  prefabName?: string;
66
66
  loading?: boolean;
67
67
  showSkeleton?: boolean;
68
+ widget?: string;
68
69
  }>;
69
70
  export default _default;
@@ -65,5 +65,6 @@ declare const _default: React.ComponentType<{
65
65
  prefabName?: string;
66
66
  loading?: boolean;
67
67
  showSkeleton?: boolean;
68
+ widget?: string;
68
69
  }>;
69
70
  export default _default;
@@ -65,5 +65,6 @@ declare const _default: React.ComponentType<{
65
65
  prefabName?: string;
66
66
  loading?: boolean;
67
67
  showSkeleton?: boolean;
68
+ widget?: string;
68
69
  }>;
69
70
  export default _default;
@@ -87,5 +87,6 @@ declare const _default: React.ComponentType<{
87
87
  prefabName?: string;
88
88
  loading?: boolean;
89
89
  showSkeleton?: boolean;
90
+ widget?: string;
90
91
  }>;
91
92
  export default _default;
@@ -23,6 +23,7 @@ import withBaseWrapper from "../../../higherOrder/withBaseWrapper";
23
23
  import { Card, CardHeader, CardMedia, Avatar, Typography, Box } from "@mui/material";
24
24
  import Image from "next/image";
25
25
  import { WmMenu } from "../../navigation/menu";
26
+ import { WmAppIcon } from "../../common/WmAppIcon";
26
27
  import clsx from "clsx";
27
28
  import WmCardContentWithWrapper, { WmCardContent } from "./card-content";
28
29
  import WmCardActionsWithWrapper, { WmCardActions } from "./card-actions";
@@ -156,13 +157,19 @@ const WmCard = (props) => {
156
157
  }
157
158
  };
158
159
  const renderAvatar = () => {
159
- if (iconclass && !iconurl) {
160
- return /* @__PURE__ */ jsx(Avatar, { className: "app-card-avatar", children: /* @__PURE__ */ jsx("i", { className: `app-icon ${iconclass}` }) });
161
- }
162
- if (iconurl) {
163
- return /* @__PURE__ */ jsx(Avatar, { className: "app-card-avatar", children: /* @__PURE__ */ jsx(Image, { src: iconurl, alt: "", width: 40, height: 40, className: "wm-card-avatar-img" }) });
160
+ if (!iconclass && !iconurl) {
161
+ return null;
164
162
  }
165
- return null;
163
+ return /* @__PURE__ */ jsx(Avatar, { className: "app-card-avatar", children: /* @__PURE__ */ jsx(
164
+ WmAppIcon,
165
+ {
166
+ iconclass,
167
+ iconurl,
168
+ prefabName: props.prefabName,
169
+ defaultClasses: iconurl ? "wm-card-avatar-img img-circle" : "",
170
+ alt: ""
171
+ }
172
+ ) });
166
173
  };
167
174
  const renderActionMenu = () => {
168
175
  if (!actions) return null;
@@ -120,6 +120,7 @@ function DynamicForm(props) {
120
120
  caption: $formField.displayname,
121
121
  required: $formField.required,
122
122
  listener,
123
+ hidden: !$formField.displayname,
123
124
  className: clsx(
124
125
  "app-label control-label formfield-label",
125
126
  (formRef == null ? void 0 : formRef.captionCls) || ""
@@ -62,6 +62,7 @@ declare const WmFormActionsStandalone: import("react").ComponentType<{
62
62
  prefabName?: string;
63
63
  loading?: boolean;
64
64
  showSkeleton?: boolean;
65
+ widget?: string;
65
66
  } & import("@wavemaker-ai/react-runtime/higherOrder/withStandalone").WithStandaloneProps>;
66
67
  export { WmFormActionsStandalone as WmFormAction };
67
68
  /**
@@ -137,5 +138,6 @@ declare const _default: import("react").ComponentType<{
137
138
  prefabName?: string;
138
139
  loading?: boolean;
139
140
  showSkeleton?: boolean;
141
+ widget?: string;
140
142
  }>;
141
143
  export default _default;
@@ -41,6 +41,7 @@ const WmFormActions = memo((props) => {
41
41
  var _b;
42
42
  const _a = props, {
43
43
  position = "footer",
44
+ type = "button",
44
45
  btnClass,
45
46
  updateMode,
46
47
  displayName,
@@ -48,6 +49,7 @@ const WmFormActions = memo((props) => {
48
49
  showViewMode
49
50
  } = _a, rest = __objRest(_a, [
50
51
  "position",
52
+ "type",
51
53
  "btnClass",
52
54
  "updateMode",
53
55
  "displayName",
@@ -60,15 +62,15 @@ const WmFormActions = memo((props) => {
60
62
  (event) => {
61
63
  var _a2, _b2, _c;
62
64
  if (props.standalone) {
63
- if (props.type === "submit") {
65
+ if (type === "submit") {
64
66
  (_a2 = formRef == null ? void 0 : formRef.submit) == null ? void 0 : _a2.call(formRef, event);
65
- } else if (props.type === "reset") {
67
+ } else if (type === "reset") {
66
68
  (_b2 = formRef == null ? void 0 : formRef.formreset) == null ? void 0 : _b2.call(formRef);
67
69
  }
68
70
  }
69
71
  (_c = props.onClick) == null ? void 0 : _c.call(props, event);
70
72
  },
71
- [formRef, props.onClick, props.type]
73
+ [formRef, props.onClick, type]
72
74
  );
73
75
  useEffect(() => {
74
76
  if (formRef && position.includes("header") && formRef.registerHeaderAction) {
@@ -93,7 +95,7 @@ const WmFormActions = memo((props) => {
93
95
  className: clsx(btnClass, rest.className),
94
96
  caption: displayName,
95
97
  iconclass: props.iconclass,
96
- type: props.type,
98
+ type,
97
99
  disabled: props.disabled,
98
100
  onClick: handleClick,
99
101
  name: props.name,
@@ -66,10 +66,10 @@ const WmFormField = memo(
66
66
  const onChangeHandler = useCallback(
67
67
  (name, data) => {
68
68
  Object.keys(data).forEach((key) => {
69
- fieldProxyRef.current[key] = key === "datavalue" && isNumber ? Number(data[key]) : data[key];
69
+ fieldProxyRef.current[key] = key === "datavalue" && isNumber && !Array.isArray(data[key]) ? Number(data[key]) : data[key];
70
70
  });
71
71
  setProxyProps((prev) => {
72
- return __spreadValues(__spreadValues({}, prev), isNumber ? __spreadProps(__spreadValues({}, data), { datavalue: Number(data.datavalue) }) : data);
72
+ return __spreadValues(__spreadValues({}, prev), isNumber && !Array.isArray(data.datavalue) ? __spreadProps(__spreadValues({}, data), { datavalue: Number(data.datavalue) }) : data);
73
73
  });
74
74
  },
75
75
  [isNumber]
@@ -130,7 +130,8 @@ const WmFormField = memo(
130
130
  return null;
131
131
  }
132
132
  }
133
- const itemsPerRow = ((_a = props == null ? void 0 : props.formRef) == null ? void 0 : _a.itemsPerRow) || "";
133
+ const isDynamicFormField = typeof props.className === "string" && props.className.includes("app-dynamic-form-field");
134
+ const itemsPerRowClass = !isDynamicFormField && ((_a = props.formRef) == null ? void 0 : _a.itemsPerRow) || "";
134
135
  if (!fieldProxyRef.current) {
135
136
  return null;
136
137
  }
@@ -146,7 +147,7 @@ const WmFormField = memo(
146
147
  return /* @__PURE__ */ jsx(
147
148
  "div",
148
149
  {
149
- className: clsx(props.className, itemsPerRow, DEFAULT_CLASS),
150
+ className: clsx(props.className, itemsPerRowClass, DEFAULT_CLASS),
150
151
  id: props.id,
151
152
  style: __spreadValues(__spreadValues({}, props.conditionalstyle), props.styles),
152
153
  "data-displayname": props.displayname,
@@ -1,5 +1,5 @@
1
1
  import { WmFormProps } from "../props";
2
- type FormHeaderProps = Pick<WmFormProps, "title" | "subheading" | "iconclass" | "collapsible" | "expanded" | "headerActions" | "expandCollapsePanel" | "isViewMode">;
2
+ type FormHeaderProps = Pick<WmFormProps, "title" | "subheading" | "iconclass" | "iconurl" | "prefabName" | "collapsible" | "expanded" | "headerActions" | "expandCollapsePanel" | "isViewMode">;
3
3
  declare const WmFormHeader: {
4
4
  (props: FormHeaderProps): import("react/jsx-runtime").JSX.Element;
5
5
  displayName: string;
@@ -24,7 +24,16 @@ import WmFormActions from "../form-action";
24
24
  import { WmButton } from "../../../form/button";
25
25
  const WmFormHeader = (props) => {
26
26
  return /* @__PURE__ */ jsx("div", { className: "panel-heading", children: /* @__PURE__ */ jsxs("h3", { className: "panel-title", children: [
27
- /* @__PURE__ */ jsx("div", { className: "pull-left", children: props.iconclass && /* @__PURE__ */ jsx(WmIcon, { name: "", listener: {}, iconclass: props.iconclass }) }),
27
+ /* @__PURE__ */ jsx("div", { className: "pull-left", children: (props.iconclass || props.iconurl) && /* @__PURE__ */ jsx(
28
+ WmIcon,
29
+ {
30
+ name: "",
31
+ listener: {},
32
+ iconclass: props.iconclass || "",
33
+ iconurl: props.iconurl,
34
+ prefabName: props.prefabName
35
+ }
36
+ ) }),
28
37
  /* @__PURE__ */ jsxs("div", { className: "pull-left", children: [
29
38
  /* @__PURE__ */ jsx("div", { className: "heading", children: props.title }),
30
39
  /* @__PURE__ */ jsx("div", { className: "description", children: props.subheading })
@@ -28,11 +28,11 @@ import withStandalone from "../../../higherOrder/withStandalone";
28
28
  import {
29
29
  WmSkeleton,
30
30
  SKELETON_REGISTRY,
31
- shouldShowSkeleton
31
+ useShouldShowSkeleton
32
32
  } from "../../common/wm-skeleton";
33
33
  const WmForm = (props) => {
34
34
  var _a, _b, _c, _d;
35
- if (shouldShowSkeleton(props.loading, props.showSkeleton))
35
+ if (useShouldShowSkeleton(props.loading, props.showSkeleton))
36
36
  return /* @__PURE__ */ jsx(
37
37
  WmSkeleton,
38
38
  __spreadProps(__spreadValues({}, SKELETON_REGISTRY["WmForm"]), {
@@ -61,12 +61,14 @@ const WmForm = (props) => {
61
61
  ref: props.formElementRef,
62
62
  noValidate: props.validationtype !== "html",
63
63
  children: [
64
- !shouldHideHeader && ((props == null ? void 0 : props.title) || (props == null ? void 0 : props.subheading) || (props == null ? void 0 : props.iconclass) || (props == null ? void 0 : props.headerActions) && props.headerActions.length > 0 || (props == null ? void 0 : props.collapsible)) && /* @__PURE__ */ jsx(
64
+ !shouldHideHeader && ((props == null ? void 0 : props.title) || (props == null ? void 0 : props.subheading) || (props == null ? void 0 : props.iconclass) || (props == null ? void 0 : props.iconurl) || (props == null ? void 0 : props.headerActions) && props.headerActions.length > 0 || (props == null ? void 0 : props.collapsible)) && /* @__PURE__ */ jsx(
65
65
  WmFormHeader,
66
66
  {
67
67
  title: props.title,
68
68
  subheading: props.subheading,
69
69
  iconclass: props.iconclass,
70
+ iconurl: props.iconurl,
71
+ prefabName: props.prefabName,
70
72
  collapsible: props.collapsible,
71
73
  expanded: props.expanded,
72
74
  headerActions: props.headerActions,
@@ -36,6 +36,7 @@ export interface FormProps {
36
36
  * CSS class for the form icon.
37
37
  */
38
38
  iconclass?: string;
39
+ iconurl?: string;
39
40
  /**
40
41
  * Whether to enable autocomplete for the form.
41
42
  */
@@ -2,10 +2,26 @@ import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import Box from "@mui/material/Box";
3
3
  import Typography from "@mui/material/Typography";
4
4
  import DOMPurify from "dompurify";
5
- const ListHeader = ({ title, subheading, iconclass }) => {
6
- if (!title && !subheading && !iconclass) return null;
5
+ import { WmAppIcon } from "../../../common/WmAppIcon";
6
+ const ListHeader = ({
7
+ title,
8
+ subheading,
9
+ iconclass,
10
+ iconurl,
11
+ prefabName
12
+ }) => {
13
+ if (!title && !subheading && !iconclass && !iconurl) return null;
7
14
  return /* @__PURE__ */ jsx(Box, { component: "div", className: "panel-heading", children: /* @__PURE__ */ jsxs(Typography, { className: "panel-title wm-all-unset", variant: "h6", children: [
8
- /* @__PURE__ */ jsx("span", { className: "pull-left", children: iconclass && /* @__PURE__ */ jsx("i", { className: `app-icon panel-icon ${iconclass}`, "aria-hidden": "true" }) }),
15
+ /* @__PURE__ */ jsx("span", { className: "pull-left", children: /* @__PURE__ */ jsx(
16
+ WmAppIcon,
17
+ {
18
+ iconclass,
19
+ iconurl,
20
+ prefabName,
21
+ defaultClasses: "panel-icon",
22
+ alt: "List icon"
23
+ }
24
+ ) }),
9
25
  /* @__PURE__ */ jsxs("span", { className: "pull-left", children: [
10
26
  title && /* @__PURE__ */ jsx(
11
27
  Typography,
@@ -3,6 +3,7 @@ import { useCallback, useRef, useEffect, useMemo } from "react";
3
3
  import clsx from "clsx";
4
4
  import { WmListItem } from "./ListItem";
5
5
  import { MediaWmListtemplate } from "../templates/media-template";
6
+ import { resolveDisableItem } from "../utils/list-helpers";
6
7
  import { useWidgetProxy } from "../../../../context/WidgetProvider";
7
8
  import isPlainObject from "lodash-es/isPlainObject";
8
9
  const ListItemWithTemplate = ({
@@ -64,11 +65,14 @@ const ListItemWithTemplate = ({
64
65
  return typeof itemclass === "function" ? itemclass(item) : itemclass;
65
66
  }, [itemclass, item]);
66
67
  const itemLayoutAttrs = itemAttrs ? itemAttrs(item, globalIndex != null ? globalIndex : index) : void 0;
68
+ const resolvedDisableItem = useMemo(() => {
69
+ return resolveDisableItem(disableitem, item, globalIndex != null ? globalIndex : index);
70
+ }, [disableitem, item, globalIndex, index]);
67
71
  return /* @__PURE__ */ jsx(
68
72
  WmListItem,
69
73
  {
70
74
  item,
71
- disableItem: disableitem,
75
+ disableItem: resolvedDisableItem,
72
76
  itemClass: clsx(resolvedItemClass, itemsPerRowClass),
73
77
  index: globalIndex != null ? globalIndex : index,
74
78
  isFirst,
@@ -4,4 +4,4 @@ import { ListItemData } from "../props";
4
4
  * Main ListItems component - orchestrates rendering of list items
5
5
  * with support for grouping, pagination, and on-demand loading
6
6
  */
7
- export declare const ListItems: <T extends ListItemData = ListItemData>({ items, groupedData, groupby, navigation, currentPage, pagesize, visibleItems, orderby, disableitem, itemclass, itemsPerRowClass, direction, enablereorder, activeItems, name, tabIndex, renderItem, itemTemplate, nodatamessage, ondemandmessage, loadingicon, loadingdatamsg, paginationclass, isLoadingMore, collapsible, showcount, groupCollapsed, handleListItemClick, handleListItemDoubleClick, handleListItemMouseEnter, handleListItemMouseLeave, handleDragEnd, handleLoadMore, handleHeaderClick, onBeforedatarender, onRender, widgetInstance, rawDataset, datasource, totalItems, isServerSidePagination, showNavigation, itemAttrs, hasListGroupAutoLayout, standalone, }: ListItemsProps<T>) => import("react/jsx-runtime").JSX.Element;
7
+ export declare const ListItems: <T extends ListItemData = ListItemData>({ items, groupedData, groupby, navigation, currentPage, pagesize, visibleItems, orderby, disableitem, itemclass, itemsPerRowClass, direction, enablereorder, activeItems, name, tabIndex, renderItem, itemTemplate, nodatamessage, ondemandmessage, loadingicon, loadingiconurl, loadingdatamsg, paginationclass, isLoadingMore, prefabName, collapsible, showcount, groupCollapsed, handleListItemClick, handleListItemDoubleClick, handleListItemMouseEnter, handleListItemMouseLeave, handleDragEnd, handleLoadMore, handleHeaderClick, onBeforedatarender, onRender, widgetInstance, rawDataset, datasource, totalItems, isServerSidePagination, showNavigation, itemAttrs, hasListGroupAutoLayout, standalone, }: ListItemsProps<T>) => import("react/jsx-runtime").JSX.Element;
@@ -27,9 +27,11 @@ const ListItems = ({
27
27
  nodatamessage,
28
28
  ondemandmessage,
29
29
  loadingicon,
30
+ loadingiconurl,
30
31
  loadingdatamsg,
31
32
  paginationclass,
32
33
  isLoadingMore,
34
+ prefabName,
33
35
  collapsible,
34
36
  showcount,
35
37
  groupCollapsed,
@@ -205,9 +207,11 @@ const ListItems = ({
205
207
  paginationclass,
206
208
  isLoadingMore,
207
209
  loadingicon,
210
+ loadingiconurl,
208
211
  loadingdatamsg,
209
212
  ondemandmessage,
210
- onLoadMore: handleLoadMore
213
+ onLoadMore: handleLoadMore,
214
+ prefabName
211
215
  }
212
216
  )
213
217
  ] });
@@ -2,13 +2,16 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
2
  import clsx from "clsx";
3
3
  import Box from "@mui/material/Box";
4
4
  import Button from "@mui/material/Button";
5
+ import { WmAppIcon } from "../../../common/WmAppIcon";
5
6
  const LoadMoreButton = ({
6
7
  paginationclass,
7
8
  isLoadingMore,
8
9
  loadingicon,
10
+ loadingiconurl,
9
11
  loadingdatamsg,
10
12
  ondemandmessage,
11
- onLoadMore
13
+ onLoadMore,
14
+ prefabName
12
15
  }) => /* @__PURE__ */ jsx(Box, { component: "div", className: "panel-footer wm-load-more-footer wm-text-center", children: /* @__PURE__ */ jsx(
13
16
  Button,
14
17
  {
@@ -17,7 +20,16 @@ const LoadMoreButton = ({
17
20
  onClick: onLoadMore,
18
21
  disabled: isLoadingMore,
19
22
  children: isLoadingMore ? /* @__PURE__ */ jsxs(Fragment, { children: [
20
- /* @__PURE__ */ jsx("i", { className: `app-icon ${loadingicon} fa-spin me-2`, "aria-hidden": "true" }),
23
+ /* @__PURE__ */ jsx(
24
+ WmAppIcon,
25
+ {
26
+ iconclass: loadingicon ? `${loadingicon} fa-spin` : "fa fa-circle-o-notch fa-spin",
27
+ iconurl: loadingiconurl,
28
+ prefabName,
29
+ defaultClasses: clsx("app-icon", "me-2"),
30
+ alt: ""
31
+ }
32
+ ),
21
33
  loadingdatamsg
22
34
  ] }) : ondemandmessage
23
35
  }