@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
package/types/index.d.ts CHANGED
@@ -10,6 +10,7 @@ export interface PageContextState {
10
10
  Variables: Record<string, VariableState>;
11
11
  Actions: Record<string, any>;
12
12
  onReady: () => void;
13
+ pageReady: () => void;
13
14
  serviceDefinitions: Record<string, any>;
14
15
  baseUrl: string;
15
16
  [key: string]: any;
package/utils/attr.js CHANGED
@@ -6,30 +6,87 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.removeInvalidAttributes = void 0;
8
8
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
9
+ var INTERNAL_ATTRIBUTES = new Set(["clearSearch", "conditionalclass", "conditionalstyle", "dataset", "destroy", "eventCallback", "formfield", "forwardedRef", "inbound", "iswidget", "listener", "onHeaderclick", "onHeaderClick", "onLoad", "onDestroy", "onNavHeightChange", "onRender", "outbound", "prefab", "ref", "showindevice", "styles", "viewParent"]);
10
+ var SAFE_ATTRIBUTES = new Set(["accessKey", "autoCapitalize", "autoComplete", "autoCorrect", "autoFocus", "capture", "cellPadding", "cellSpacing", "charSet", "className", "cols", "colSpan", "content", "contentEditable", "controls", "coords", "crossOrigin", "dateTime", "default", "defaultChecked", "defaultValue", "dir", "disabled", "download", "draggable", "encType", "form", "height", "hidden", "hint", "href", "hrefLang", "htmlFor", "id", "inputMode", "label", "lang", "list", "max", "maxLength", "media", "method", "min", "minLength", "multiple", "name", "noValidate", "pattern", "placeholder", "readOnly", "rel", "required", "role", "rows", "rowSpan", "selected", "slot", "spellCheck", "src", "step", "style", "tabIndex", "target", "title", "translate", "type", "value", "width"]);
11
+ var VALID_DOM_EVENT_HANDLERS = new Set(["onAbort", "onAnimationEnd", "onAnimationIteration", "onAnimationStart", "onAuxClick", "onBeforeInput", "onBlur", "onCanPlay", "onCanPlayThrough", "onChange", "onClick", "onCompositionEnd", "onCompositionStart", "onCompositionUpdate", "onContextMenu", "onCopy", "onCut", "onDoubleClick", "onDrag", "onDragEnd", "onDragEnter", "onDragExit", "onDragLeave", "onDragOver", "onDragStart", "onDrop", "onDurationChange", "onEmptied", "onEncrypted", "onEnded", "onError", "onFocus", "onGotPointerCapture", "onInput", "onInvalid", "onKeyDown", "onKeyPress", "onKeyUp", "onLoad", "onLoadedData", "onLoadedMetadata", "onLoadStart", "onLostPointerCapture", "onMouseDown", "onMouseEnter", "onMouseLeave", "onMouseMove", "onMouseOut", "onMouseOver", "onMouseUp", "onPaste", "onPause", "onPlay", "onPlaying", "onPointerCancel", "onPointerDown", "onPointerEnter", "onPointerLeave", "onPointerMove", "onPointerOut", "onPointerOver", "onPointerUp", "onProgress", "onRateChange", "onReset", "onScroll", "onSeeked", "onSeeking", "onSelect", "onStalled", "onSubmit", "onSuspend", "onTimeUpdate", "onTouchCancel", "onTouchEnd", "onTouchMove", "onTouchStart", "onTransitionEnd", "onVolumeChange", "onWaiting", "onWheel"]);
12
+
13
+ // Maps lowercase HTML attribute names to their React camelCase equivalents.
14
+ // Lowercase attributes that appear here are normalized on the way out; those
15
+ // NOT in this map but still all-lowercase are passed through as-is (custom /
16
+ // data-like attributes handled elsewhere).
17
+ var LOWERCASE_TO_REACT_ATTR = {
18
+ autocomplete: "autoComplete",
19
+ autocapitalize: "autoCapitalize",
20
+ autocorrect: "autoCorrect",
21
+ autofocus: "autoFocus",
22
+ accesskey: "accessKey",
23
+ classname: "className",
24
+ colspan: "colSpan",
25
+ contenteditable: "contentEditable",
26
+ crossorigin: "crossOrigin",
27
+ datetime: "dateTime",
28
+ defaultchecked: "defaultChecked",
29
+ defaultvalue: "defaultValue",
30
+ enctype: "encType",
31
+ hreflang: "hrefLang",
32
+ htmlfor: "htmlFor",
33
+ inputmode: "inputMode",
34
+ maxlength: "maxLength",
35
+ minlength: "minLength",
36
+ novalidate: "noValidate",
37
+ readonly: "readOnly",
38
+ rowspan: "rowSpan",
39
+ spellcheck: "spellCheck",
40
+ tabindex: "tabIndex"
41
+ };
42
+ var isLowercaseAttribute = function isLowercaseAttribute(key) {
43
+ return key === key.toLowerCase();
44
+ };
45
+ var isSafeAttributeName = function isSafeAttributeName(key) {
46
+ return SAFE_ATTRIBUTES.has(key) || key.startsWith("aria-") || key.startsWith("data-") || isLowercaseAttribute(key) || VALID_DOM_EVENT_HANDLERS.has(key);
47
+ };
48
+ var isObjectLikeString = function isObjectLikeString(value) {
49
+ var trimmed = value.trim();
50
+ if (/^\[object\s*,?\s*object\]$/i.test(trimmed)) {
51
+ return true;
52
+ }
53
+ if (trimmed.startsWith("{") && trimmed.endsWith("}") || trimmed.startsWith("[") && trimmed.endsWith("]")) {
54
+ try {
55
+ var parsed = JSON.parse(trimmed);
56
+ return (0, _typeof2["default"])(parsed) === "object" && parsed !== null;
57
+ } catch (e) {
58
+ return false;
59
+ }
60
+ }
61
+ return false;
62
+ };
63
+ var shouldStringifyBooleanAttribute = function shouldStringifyBooleanAttribute(key, value) {
64
+ return typeof value === "boolean" && isLowercaseAttribute(key) && !SAFE_ATTRIBUTES.has(key) && !key.startsWith("aria-") && !key.startsWith("data-");
65
+ };
9
66
  var removeInvalidAttributes = exports.removeInvalidAttributes = function removeInvalidAttributes(attributes, explicitRemoveAttributes) {
10
67
  var filteredAttributes = {};
11
68
  Object.keys(attributes).forEach(function (key) {
12
- if (explicitRemoveAttributes !== null && explicitRemoveAttributes !== void 0 && explicitRemoveAttributes.includes(key)) {
69
+ var _LOWERCASE_TO_REACT_A;
70
+ if (explicitRemoveAttributes !== null && explicitRemoveAttributes !== void 0 && explicitRemoveAttributes.includes(key) || INTERNAL_ATTRIBUTES.has(key) || !isSafeAttributeName(key)) {
13
71
  return;
14
72
  }
15
73
  var value = attributes[key];
16
74
  if (Array.isArray(value) || (0, _typeof2["default"])(value) === "object" && value !== null) {
17
75
  return;
18
76
  }
19
- if (typeof value === "string") {
20
- var trimmed = value.trim();
21
- if (trimmed.startsWith("{") && trimmed.endsWith("}") || trimmed.startsWith("[") && trimmed.endsWith("]")) {
22
- try {
23
- var parsed = JSON.parse(value);
24
- if ((0, _typeof2["default"])(parsed) === "object" && parsed !== null) {
25
- return;
26
- }
27
- } catch (e) {
28
- // invalid json, ignore
29
- }
30
- }
77
+ if (typeof value === "function" && !VALID_DOM_EVENT_HANDLERS.has(key)) {
78
+ return;
79
+ }
80
+ if (typeof value === "string" && value.trim() === "") {
81
+ return;
82
+ }
83
+ if (typeof value === "string" && isObjectLikeString(value)) {
84
+ return;
31
85
  }
32
- filteredAttributes[key] = value;
86
+ // Normalize lowercase HTML attribute names to their React camelCase form
87
+ // to prevent "Invalid DOM property" warnings (e.g. autocomplete → autoComplete).
88
+ var normalizedKey = (_LOWERCASE_TO_REACT_A = LOWERCASE_TO_REACT_ATTR[key]) !== null && _LOWERCASE_TO_REACT_A !== void 0 ? _LOWERCASE_TO_REACT_A : key;
89
+ filteredAttributes[normalizedKey] = shouldStringifyBooleanAttribute(normalizedKey, value) ? value.toString() : value;
33
90
  });
34
91
  return filteredAttributes;
35
92
  };
@@ -0,0 +1,43 @@
1
+ import { transformMarkup } from "@wavemaker-ai/react-codegen/transpiler";
2
+ import type { CustomExpressionComponent, TransformedMarkupInput } from "./parser";
3
+ import { parseCustomExpressionToJsx } from "./parser";
4
+ export type { CustomExpressionComponent, TransformedMarkupInput } from "./parser";
5
+ export { parseCustomExpressionToJsx } from "./parser";
6
+ /** Re-export for callers that need the same WaveMaker transpiler the table uses. */
7
+ export { transformMarkup };
8
+ /** Column-like objects that expose WaveMaker `customExpression` markup per field key. */
9
+ export type CustomExpressionColumnSource = Record<string, {
10
+ customExpression?: string | undefined;
11
+ }>;
12
+ /**
13
+ * WaveMaker transpiler often emits `(row) => …`. Normalize arrow params so the row cell
14
+ * binding stays consistent with compiled JSX.
15
+ */
16
+ export declare function normalizeTransformedMarkupRowBinding(transformedMarkup: TransformedMarkupInput): TransformedMarkupInput;
17
+ /**
18
+ * Pass column custom-expression markup and get a row renderer for `customColumns` /
19
+ * `customExpressionColumns` state. Uses codegen `transformMarkup` unless overridden.
20
+ */
21
+ export declare function compileCustomExpressionMarkup(markup: string, options: {
22
+ listener: unknown;
23
+ transformMarkup?: (markup: string) => TransformedMarkupInput;
24
+ parse?: typeof parseCustomExpressionToJsx;
25
+ }): Promise<CustomExpressionComponent>;
26
+ /**
27
+ * Stable fingerprint of all custom markup strings (sorted keys) — use for memo deps / merge dedupe.
28
+ */
29
+ export declare function buildCustomExpressionSignature(columnSource: CustomExpressionColumnSource): string;
30
+ export type BuildCustomExpressionComponentsMapOptions = {
31
+ columnSource: CustomExpressionColumnSource;
32
+ /** Listener / fragment passed through to the parser (e.g. Studio listener). */
33
+ listener: unknown;
34
+ /** Defaults to `@wavemaker-ai/react-codegen/transpiler` `transformMarkup`. */
35
+ transformMarkup?: (markup: string) => TransformedMarkupInput;
36
+ /** Override for tests or alternate parsers. */
37
+ parseCustomExpressionToJsx?: typeof parseCustomExpressionToJsx;
38
+ };
39
+ /**
40
+ * Parses every column on `columnSource` that defines `customExpression` into render callables.
41
+ * Store the result in table `customColumns` (or any map of column id → row renderer).
42
+ */
43
+ export declare function buildCustomExpressionComponentsMap(options: BuildCustomExpressionComponentsMapOptions): Promise<Record<string, CustomExpressionComponent>>;
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.buildCustomExpressionComponentsMap = buildCustomExpressionComponentsMap;
8
+ exports.buildCustomExpressionSignature = buildCustomExpressionSignature;
9
+ exports.compileCustomExpressionMarkup = compileCustomExpressionMarkup;
10
+ exports.normalizeTransformedMarkupRowBinding = normalizeTransformedMarkupRowBinding;
11
+ Object.defineProperty(exports, "parseCustomExpressionToJsx", {
12
+ enumerable: true,
13
+ get: function get() {
14
+ return _parser.parseCustomExpressionToJsx;
15
+ }
16
+ });
17
+ Object.defineProperty(exports, "transformMarkup", {
18
+ enumerable: true,
19
+ get: function get() {
20
+ return _transpiler.transformMarkup;
21
+ }
22
+ });
23
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
24
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
25
+ var _transpiler = require("@wavemaker-ai/react-codegen/transpiler");
26
+ var _parser = require("./parser");
27
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
28
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
29
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } /** Re-export for callers that need the same WaveMaker transpiler the table uses. */
30
+ /** Column-like objects that expose WaveMaker `customExpression` markup per field key. */
31
+
32
+ /**
33
+ * WaveMaker transpiler often emits `(row) => …`. Normalize arrow params so the row cell
34
+ * binding stays consistent with compiled JSX.
35
+ */
36
+ function normalizeTransformedMarkupRowBinding(transformedMarkup) {
37
+ transformedMarkup.markup = transformedMarkup.markup.replace(/\(([^)]*)\)\s*=>/g, function (_match, params) {
38
+ var cleaned = params.split(",").map(function (p) {
39
+ return p.trim();
40
+ }).filter(function (p) {
41
+ return p !== "row";
42
+ }).join(", ");
43
+ return "(".concat(cleaned, ") =>");
44
+ });
45
+ return transformedMarkup;
46
+ }
47
+
48
+ /**
49
+ * Pass column custom-expression markup and get a row renderer for `customColumns` /
50
+ * `customExpressionColumns` state. Uses codegen `transformMarkup` unless overridden.
51
+ */
52
+ function compileCustomExpressionMarkup(_x, _x2) {
53
+ return _compileCustomExpressionMarkup.apply(this, arguments);
54
+ }
55
+ /**
56
+ * Stable fingerprint of all custom markup strings (sorted keys) — use for memo deps / merge dedupe.
57
+ */
58
+ function _compileCustomExpressionMarkup() {
59
+ _compileCustomExpressionMarkup = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(markup, options) {
60
+ var _options$parse, _options$transformMar;
61
+ var parse, tm, transformedMarkup;
62
+ return _regenerator["default"].wrap(function _callee$(_context) {
63
+ while (1) switch (_context.prev = _context.next) {
64
+ case 0:
65
+ parse = (_options$parse = options.parse) !== null && _options$parse !== void 0 ? _options$parse : _parser.parseCustomExpressionToJsx;
66
+ tm = (_options$transformMar = options.transformMarkup) !== null && _options$transformMar !== void 0 ? _options$transformMar : _transpiler.transformMarkup;
67
+ transformedMarkup = normalizeTransformedMarkupRowBinding(tm(markup));
68
+ return _context.abrupt("return", parse(transformedMarkup, options.listener));
69
+ case 4:
70
+ case "end":
71
+ return _context.stop();
72
+ }
73
+ }, _callee);
74
+ }));
75
+ return _compileCustomExpressionMarkup.apply(this, arguments);
76
+ }
77
+ function buildCustomExpressionSignature(columnSource) {
78
+ try {
79
+ return Object.keys(columnSource).filter(function (key) {
80
+ var _columnSource$key;
81
+ return (_columnSource$key = columnSource[key]) === null || _columnSource$key === void 0 ? void 0 : _columnSource$key.customExpression;
82
+ }).map(function (key) {
83
+ return "".concat(key, "\0").concat(String(columnSource[key].customExpression));
84
+ }).sort().join("\x1F");
85
+ } catch (_unused) {
86
+ return "";
87
+ }
88
+ }
89
+ /**
90
+ * Parses every column on `columnSource` that defines `customExpression` into render callables.
91
+ * Store the result in table `customColumns` (or any map of column id → row renderer).
92
+ */
93
+ function buildCustomExpressionComponentsMap(_x3) {
94
+ return _buildCustomExpressionComponentsMap.apply(this, arguments);
95
+ }
96
+ function _buildCustomExpressionComponentsMap() {
97
+ _buildCustomExpressionComponentsMap = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(options) {
98
+ var columnSource, transformMarkupOpt, listener, _options$parseCustomE, parseFn, tm, keys, results, out, _iterator, _step, _step$value, key, component;
99
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
100
+ while (1) switch (_context3.prev = _context3.next) {
101
+ case 0:
102
+ columnSource = options.columnSource, transformMarkupOpt = options.transformMarkup, listener = options.listener, _options$parseCustomE = options.parseCustomExpressionToJsx, parseFn = _options$parseCustomE === void 0 ? _parser.parseCustomExpressionToJsx : _options$parseCustomE;
103
+ tm = transformMarkupOpt !== null && transformMarkupOpt !== void 0 ? transformMarkupOpt : _transpiler.transformMarkup;
104
+ keys = Object.keys(columnSource).filter(function (key) {
105
+ return columnSource[key].customExpression;
106
+ });
107
+ if (!(keys.length === 0)) {
108
+ _context3.next = 5;
109
+ break;
110
+ }
111
+ return _context3.abrupt("return", {});
112
+ case 5:
113
+ _context3.next = 7;
114
+ return Promise.all(keys.map(/*#__PURE__*/function () {
115
+ var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(key) {
116
+ var transformedMarkup, component;
117
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
118
+ while (1) switch (_context2.prev = _context2.next) {
119
+ case 0:
120
+ transformedMarkup = normalizeTransformedMarkupRowBinding(tm(columnSource[key].customExpression));
121
+ _context2.next = 3;
122
+ return parseFn(transformedMarkup, listener);
123
+ case 3:
124
+ component = _context2.sent;
125
+ return _context2.abrupt("return", {
126
+ key: key,
127
+ component: component
128
+ });
129
+ case 5:
130
+ case "end":
131
+ return _context2.stop();
132
+ }
133
+ }, _callee2);
134
+ }));
135
+ return function (_x4) {
136
+ return _ref.apply(this, arguments);
137
+ };
138
+ }()));
139
+ case 7:
140
+ results = _context3.sent;
141
+ out = {};
142
+ _iterator = _createForOfIteratorHelper(results);
143
+ try {
144
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
145
+ _step$value = _step.value, key = _step$value.key, component = _step$value.component;
146
+ out[key] = component;
147
+ }
148
+ } catch (err) {
149
+ _iterator.e(err);
150
+ } finally {
151
+ _iterator.f();
152
+ }
153
+ return _context3.abrupt("return", out);
154
+ case 12:
155
+ case "end":
156
+ return _context3.stop();
157
+ }
158
+ }, _callee3);
159
+ }));
160
+ return _buildCustomExpressionComponentsMap.apply(this, arguments);
161
+ }
@@ -0,0 +1,15 @@
1
+ import React from "react";
2
+ export interface TransformedMarkupInput {
3
+ markup: string;
4
+ components?: Record<string, unknown>;
5
+ partials?: string[];
6
+ prefabs?: string[];
7
+ imports: Array<{
8
+ name: string;
9
+ as?: string;
10
+ from: string;
11
+ lazy?: boolean;
12
+ }>;
13
+ }
14
+ export type CustomExpressionComponent = (rowData: any) => React.ReactNode;
15
+ export declare function parseCustomExpressionToJsx(transformedMarkup: TransformedMarkupInput, fragment: any): Promise<CustomExpressionComponent>;
@@ -0,0 +1,208 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.parseCustomExpressionToJsx = parseCustomExpressionToJsx;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _construct2 = _interopRequireDefault(require("@babel/runtime/helpers/construct"));
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
+ var _react = _interopRequireDefault(require("react"));
14
+ var _sucrase = require("sucrase");
15
+ var _registry = require("@wavemaker-ai/react-runtime/runtime-dynamic/registry");
16
+ var _util = require("@wavemaker-ai/react-runtime/core/util");
17
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
18
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
19
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
20
+ var UTIL_SCOPE = {
21
+ formatMessage: _util.formatMessage,
22
+ _get: _util._get,
23
+ toNumber: _util.toNumber
24
+ };
25
+
26
+ /** WaveMaker column expressions are often `(row) => <WmLabel … />`. Strip that so we compile JSX only (same idea as markup-transpiler wrapping fragment content). */
27
+ function stripLeadingArrow(markup) {
28
+ var trimmed = markup.trim();
29
+ var arrow = trimmed.match(/^\([^)]*\)\s*=>\s*/);
30
+ return arrow ? trimmed.slice(arrow[0].length).trim() : trimmed;
31
+ }
32
+ function extractMarkupComponents(markup) {
33
+ var matches = markup.match(/\bWm[A-Z]\w*/g);
34
+ return matches ? (0, _toConsumableArray2["default"])(new Set(matches)) : [];
35
+ }
36
+
37
+ /**
38
+ * Align with runtime-dynamic `markup-transpiler` resolveScope: React, fragment,
39
+ * row (cell), Widgets/Variables from fragment, imported + inferred Wm* components, utils.
40
+ */
41
+ function resolveCustomExpressionScope(imports, fragment, markupForInference) {
42
+ var fr = fragment;
43
+ var names = ["React", "fragment", "row", "Widgets", "Variables"];
44
+ var values = [_react["default"], fragment, undefined, fr === null || fr === void 0 ? void 0 : fr.Widgets, fr === null || fr === void 0 ? void 0 : fr.Variables];
45
+ var seen = new Set(names);
46
+ var _iterator = _createForOfIteratorHelper(imports),
47
+ _step;
48
+ try {
49
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
50
+ var importDef = _step.value;
51
+ var binding = importDef.as || importDef.name;
52
+ if (seen.has(binding)) continue;
53
+ var component = (0, _registry.getComponent)(importDef.name);
54
+ if (component) {
55
+ seen.add(binding);
56
+ names.push(binding);
57
+ values.push(component);
58
+ }
59
+ }
60
+ } catch (err) {
61
+ _iterator.e(err);
62
+ } finally {
63
+ _iterator.f();
64
+ }
65
+ var _iterator2 = _createForOfIteratorHelper(extractMarkupComponents(markupForInference)),
66
+ _step2;
67
+ try {
68
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
69
+ var wmName = _step2.value;
70
+ if (seen.has(wmName)) continue;
71
+ var _component = (0, _registry.getComponent)(wmName);
72
+ if (_component) {
73
+ seen.add(wmName);
74
+ names.push(wmName);
75
+ values.push(_component);
76
+ }
77
+ }
78
+ } catch (err) {
79
+ _iterator2.e(err);
80
+ } finally {
81
+ _iterator2.f();
82
+ }
83
+ for (var _i = 0, _Object$entries = Object.entries(UTIL_SCOPE); _i < _Object$entries.length; _i++) {
84
+ var _Object$entries$_i = (0, _slicedToArray2["default"])(_Object$entries[_i], 2),
85
+ name = _Object$entries$_i[0],
86
+ value = _Object$entries$_i[1];
87
+ if (!seen.has(name)) {
88
+ seen.add(name);
89
+ names.push(name);
90
+ values.push(value);
91
+ }
92
+ }
93
+ return {
94
+ names: names,
95
+ values: values
96
+ };
97
+ }
98
+ function compileJsxToRenderBody(jsxWrapped) {
99
+ var result = (0, _sucrase.transform)(jsxWrapped, {
100
+ transforms: ["typescript", "jsx"],
101
+ jsxRuntime: "classic",
102
+ production: true
103
+ });
104
+ return result.code || "";
105
+ }
106
+ var cache = new Map();
107
+ function parseCustomExpressionToJsx(_x, _x2) {
108
+ return _parseCustomExpressionToJsx.apply(this, arguments);
109
+ }
110
+ function _parseCustomExpressionToJsx() {
111
+ _parseCustomExpressionToJsx = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(transformedMarkup, fragment) {
112
+ var markup, _transformedMarkup$im, imports, jsxInner, jsxWrapped, compiledCode, fallback, fullCode, _resolveCustomExpress, names, templateValues, rowIdx, fragmentIdx, widgetsIdx, variablesIdx, _fallback, renderFn, _fallback2, stopPropagation, renderComponent;
113
+ return _regenerator["default"].wrap(function _callee$(_context) {
114
+ while (1) switch (_context.prev = _context.next) {
115
+ case 0:
116
+ markup = transformedMarkup.markup, _transformedMarkup$im = transformedMarkup.imports, imports = _transformedMarkup$im === void 0 ? [] : _transformedMarkup$im;
117
+ if (markup !== null && markup !== void 0 && markup.trim()) {
118
+ _context.next = 3;
119
+ break;
120
+ }
121
+ return _context.abrupt("return", function () {
122
+ return null;
123
+ });
124
+ case 3:
125
+ if (!cache.has(markup)) {
126
+ _context.next = 5;
127
+ break;
128
+ }
129
+ return _context.abrupt("return", cache.get(markup));
130
+ case 5:
131
+ jsxInner = stripLeadingArrow(markup);
132
+ jsxWrapped = "function __render__() { return (<React.Fragment>".concat(jsxInner.trim() || "null", "</React.Fragment>); }");
133
+ _context.prev = 7;
134
+ compiledCode = compileJsxToRenderBody(jsxWrapped);
135
+ _context.next = 17;
136
+ break;
137
+ case 11:
138
+ _context.prev = 11;
139
+ _context.t0 = _context["catch"](7);
140
+ console.error("[customExpressionParser] Sucrase transform failed:", _context.t0);
141
+ fallback = function fallback() {
142
+ return null;
143
+ };
144
+ cache.set(markup, fallback);
145
+ return _context.abrupt("return", fallback);
146
+ case 17:
147
+ compiledCode = compiledCode.replace(/^["']use strict["'];?\s*/, "").replace(/\/\*#__PURE__\*\//g, "");
148
+ fullCode = "".concat(compiledCode, "\nreturn __render__();");
149
+ _resolveCustomExpress = resolveCustomExpressionScope(imports, fragment, "".concat(markup, "\n").concat(jsxInner)), names = _resolveCustomExpress.names, templateValues = _resolveCustomExpress.values;
150
+ rowIdx = names.indexOf("row");
151
+ fragmentIdx = names.indexOf("fragment");
152
+ widgetsIdx = names.indexOf("Widgets");
153
+ variablesIdx = names.indexOf("Variables");
154
+ if (!(rowIdx < 0)) {
155
+ _context.next = 29;
156
+ break;
157
+ }
158
+ console.error("[customExpressionParser] Internal error: row not in scope");
159
+ _fallback = function _fallback() {
160
+ return null;
161
+ };
162
+ cache.set(markup, _fallback);
163
+ return _context.abrupt("return", _fallback);
164
+ case 29:
165
+ _context.prev = 29;
166
+ renderFn = (0, _construct2["default"])(Function, (0, _toConsumableArray2["default"])(names).concat([fullCode]));
167
+ _context.next = 39;
168
+ break;
169
+ case 33:
170
+ _context.prev = 33;
171
+ _context.t1 = _context["catch"](29);
172
+ console.error("[customExpressionParser] Function compilation failed:", _context.t1);
173
+ _fallback2 = function _fallback2() {
174
+ return null;
175
+ };
176
+ cache.set(markup, _fallback2);
177
+ return _context.abrupt("return", _fallback2);
178
+ case 39:
179
+ stopPropagation = function stopPropagation(e) {
180
+ return e.stopPropagation();
181
+ };
182
+ renderComponent = function renderComponent(rowData) {
183
+ try {
184
+ var args = templateValues.slice();
185
+ args[rowIdx] = rowData;
186
+ var fr = fragment;
187
+ if (fragmentIdx >= 0) args[fragmentIdx] = fragment;
188
+ if (widgetsIdx >= 0) args[widgetsIdx] = fr === null || fr === void 0 ? void 0 : fr.Widgets;
189
+ if (variablesIdx >= 0) args[variablesIdx] = fr === null || fr === void 0 ? void 0 : fr.Variables;
190
+ return /*#__PURE__*/_react["default"].createElement("span", {
191
+ className: "custom-expr-wrapper",
192
+ onClick: stopPropagation
193
+ }, renderFn.apply(void 0, (0, _toConsumableArray2["default"])(args)));
194
+ } catch (err) {
195
+ console.error("[customExpressionParser] Render error:", err);
196
+ return null;
197
+ }
198
+ };
199
+ cache.set(markup, renderComponent);
200
+ return _context.abrupt("return", renderComponent);
201
+ case 43:
202
+ case "end":
203
+ return _context.stop();
204
+ }
205
+ }, _callee, null, [[7, 11], [29, 33]]);
206
+ }));
207
+ return _parseCustomExpressionToJsx.apply(this, arguments);
208
+ }
@@ -0,0 +1 @@
1
+ export declare function layoutSizeUtil(el: HTMLElement, widget?: string, height?: string): void;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.layoutSizeUtil = layoutSizeUtil;
7
+ // alligening flexgrow, flexShrink,selfAlign and minWidth/minHeight to achieve the desired
8
+ // auto layout behavior based on parent flex context and provided value (fill/hug/number).
9
+
10
+ function applySize(el, key, nv) {
11
+ var parent = el.parentElement;
12
+ var parentStyle = parent ? getComputedStyle(parent) : null;
13
+ var isParentFlex = !!parentStyle && ["flex", "inline-flex"].includes(parentStyle.display);
14
+ var isMainAxis = false;
15
+ if (isParentFlex) {
16
+ var flexDir = parentStyle.flexDirection;
17
+ var isRow = ["row", "row-reverse"].includes(flexDir);
18
+ isMainAxis = key === "width" && isRow || key === "height" && !isRow;
19
+ }
20
+ var minKey = key === "width" ? "minWidth" : "minHeight";
21
+ if (nv === "fill") {
22
+ if (!isParentFlex) {
23
+ el.style[key] = "100%";
24
+ } else {
25
+ el.style[key] = "";
26
+ if (isMainAxis) {
27
+ el.style.flexGrow = "1";
28
+ el.style.flexShrink = "";
29
+ el.style[minKey] = "0";
30
+ } else {
31
+ el.style.alignSelf = "stretch";
32
+ }
33
+ }
34
+ } else {
35
+ if (nv === "hug") {
36
+ el.style[key] = "fit-content";
37
+ }
38
+ if (isParentFlex) {
39
+ if (isMainAxis) {
40
+ el.style.flexGrow = "";
41
+ el.style.flexShrink = "0";
42
+ el.style[minKey] = "";
43
+ } else {
44
+ el.style.alignSelf = "";
45
+ }
46
+ } else {
47
+ el.style.flexGrow = "";
48
+ el.style.flexShrink = "0";
49
+ el.style.alignSelf = "";
50
+ el.style[minKey] = "";
51
+ }
52
+ }
53
+ }
54
+ function layoutSizeUtil(el, widget, height) {
55
+ if (widget) applySize(el, "width", widget);
56
+ if (height) applySize(el, "height", height);
57
+ }
@@ -1,33 +1,11 @@
1
1
  /**
2
- * Utility to wrap all methods in a script object with jQuery error handling
3
- * This prevents jQuery usage from breaking the React application
4
- */
5
- /**
6
- * Configuration for unsupported libraries
7
- */
8
- interface LibraryConfig {
9
- identifiers: string[];
10
- errorMessage: string;
11
- notificationMessage: string;
12
- }
13
- interface UnsupportedLibraries {
14
- [key: string]: LibraryConfig;
15
- }
16
- /**
17
- * Checks if an error is related to jQuery usage
18
- * @param error - The error object to check
19
- * @returns true if the error is jQuery-related
2
+ * Wraps page/prefab script methods with error handling that detects
3
+ * unsupported library usage (e.g. jQuery) and surfaces all other errors
4
+ * with full context instead of swallowing them.
20
5
  */
21
6
  export declare const isJQueryError: (error: any) => boolean;
22
7
  interface AppContext {
23
8
  notifyApp?: (message: string, type: string) => void;
24
9
  }
25
- /**
26
- * Wraps all methods with unsupported library error handling
27
- * @param pageProxy - The page/prefab proxy object
28
- * @param appContext - App context for notifications
29
- * @param componentName - Name of component for logging
30
- * @param libraryConfig - Optional: specific libraries to check (default: all)
31
- */
32
- export declare const wrapWithThirdPartyErrorGuard: (pageProxy: Record<string, any>, appContext: AppContext | null | undefined, componentName: string, libraryConfig?: UnsupportedLibraries) => void;
10
+ export declare const wrapWithThirdPartyErrorGuard: (pageProxy: Record<string, any>, appContext: AppContext | null | undefined, componentName: string) => void;
33
11
  export {};