xmlui 0.7.14 → 0.7.15

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 (392) hide show
  1. package/dist/{apiInterceptorWorker-FBzCR_-x.mjs → apiInterceptorWorker-yKpXImCG.mjs} +1 -1
  2. package/dist/{index-rxu3P0l4.mjs → index-XNGGyvQ0.mjs} +9904 -9653
  3. package/dist/index.css +1 -1
  4. package/dist/scripts/bin/build.js +17 -7
  5. package/dist/scripts/bin/vite-ueml-plugin.js +17 -7
  6. package/dist/scripts/bin/viteConfig.js +17 -7
  7. package/dist/scripts/package.json +209 -0
  8. package/dist/scripts/src/abstractions/scripting/ScriptingSourceTreeExp.js +51 -0
  9. package/dist/scripts/src/components/APICall/APICall.js +74 -0
  10. package/dist/scripts/src/components/APICall/APICallNative.js +31 -0
  11. package/dist/scripts/src/components/Accordion/Accordion.js +78 -0
  12. package/dist/scripts/src/components/Accordion/AccordionContext.js +20 -0
  13. package/dist/scripts/src/components/Accordion/AccordionItem.js +28 -0
  14. package/dist/scripts/src/components/Accordion/AccordionItemNative.js +79 -0
  15. package/dist/scripts/src/components/Accordion/AccordionNative.js +122 -0
  16. package/dist/scripts/src/components/Alert/Alert.js +42 -0
  17. package/dist/scripts/src/components/Alert/AlertNative.js +8 -0
  18. package/dist/scripts/src/components/Animation/Animation.js +59 -0
  19. package/dist/scripts/src/components/Animation/AnimationNative.js +75 -0
  20. package/dist/scripts/src/components/App/App.js +76 -0
  21. package/dist/scripts/src/components/App/AppLayoutContext.js +49 -0
  22. package/dist/scripts/src/components/App/AppNative.js +204 -0
  23. package/dist/scripts/src/components/App/AppStateContext.js +9 -0
  24. package/dist/scripts/src/components/App/Sheet.js +99 -0
  25. package/dist/scripts/src/components/AppHeader/AppHeader.js +59 -0
  26. package/dist/scripts/src/components/AppHeader/AppHeaderNative.js +58 -0
  27. package/dist/scripts/src/components/AppState/AppState.js +26 -0
  28. package/dist/scripts/src/components/AppState/AppStateNative.js +24 -0
  29. package/dist/scripts/src/components/AutoComplete/AutoComplete.js +83 -0
  30. package/dist/scripts/src/components/AutoComplete/AutoCompleteContext.js +16 -0
  31. package/dist/scripts/src/components/AutoComplete/AutoCompleteNative.js +225 -0
  32. package/dist/scripts/src/components/Avatar/Avatar.js +47 -0
  33. package/dist/scripts/src/components/Avatar/AvatarNative.js +40 -0
  34. package/dist/scripts/src/components/Backdrop/Backdrop.js +31 -0
  35. package/dist/scripts/src/components/Backdrop/BackdropNative.js +14 -0
  36. package/dist/scripts/src/components/Badge/Badge.js +58 -0
  37. package/dist/scripts/src/components/Badge/BadgeNative.js +22 -0
  38. package/dist/scripts/src/components/BarChart/BarChart.js +49 -0
  39. package/dist/scripts/src/components/BarChart/BarChartNative.js +176 -0
  40. package/dist/scripts/src/components/Bookmark/Bookmark.js +23 -0
  41. package/dist/scripts/src/components/Bookmark/BookmarkNative.js +24 -0
  42. package/dist/scripts/src/components/Breakout/Breakout.js +16 -0
  43. package/dist/scripts/src/components/Breakout/BreakoutNative.js +12 -0
  44. package/dist/scripts/src/components/Button/Button.js +142 -0
  45. package/dist/scripts/src/components/Button/ButtonNative.js +88 -0
  46. package/dist/scripts/src/components/ButtonGroup/ButtonGroup.js +41 -0
  47. package/dist/scripts/src/components/ButtonGroup/ButtonGroupNative.js +8 -0
  48. package/dist/scripts/src/components/Card/Card.js +57 -0
  49. package/dist/scripts/src/components/Card/CardNative.js +26 -0
  50. package/dist/scripts/src/components/Carousel/Carousel.js +68 -0
  51. package/dist/scripts/src/components/Carousel/CarouselItem.js +16 -0
  52. package/dist/scripts/src/components/Carousel/CarouselItemNative.js +13 -0
  53. package/dist/scripts/src/components/Carousel/CarouselNative.js +163 -0
  54. package/dist/scripts/src/components/ChangeListener/ChangeListener.js +24 -0
  55. package/dist/scripts/src/components/ChangeListener/ChangeListenerNative.js +26 -0
  56. package/dist/scripts/src/components/Chart/Chart.js +24 -0
  57. package/dist/scripts/src/components/Chart/ChartNative.js +165 -0
  58. package/dist/scripts/src/components/Checkbox/Checkbox.js +68 -0
  59. package/dist/scripts/src/components/Column/Column.js +34 -0
  60. package/dist/scripts/src/components/Column/ColumnNative.js +38 -0
  61. package/dist/scripts/src/components/Column/TableContext.js +12 -0
  62. package/dist/scripts/src/components/ComponentProvider.js +503 -0
  63. package/dist/scripts/src/components/ComponentRegistryContext.js +44 -0
  64. package/dist/scripts/src/components/ContentSeparator/ContentSeparator.js +38 -0
  65. package/dist/scripts/src/components/ContentSeparator/ContentSeparatorNative.js +16 -0
  66. package/dist/scripts/src/components/DatePicker/DatePicker.js +62 -0
  67. package/dist/scripts/src/components/DatePicker/DatePickerNative.js +196 -0
  68. package/dist/scripts/src/components/DropdownMenu/DropdownMenu.js +125 -0
  69. package/dist/scripts/src/components/DropdownMenu/DropdownMenuNative.js +95 -0
  70. package/dist/scripts/src/components/EmojiSelector/EmojiSelector.js +26 -0
  71. package/dist/scripts/src/components/EmojiSelector/EmojiSelectorNative.js +52 -0
  72. package/dist/scripts/src/components/FileInput/FileInput.js +64 -0
  73. package/dist/scripts/src/components/FileInput/FileInputNative.js +128 -0
  74. package/dist/scripts/src/components/FileUploadDropZone/FileUploadDropZone.js +46 -0
  75. package/dist/scripts/src/components/FileUploadDropZone/FileUploadDropZoneNative.js +112 -0
  76. package/dist/scripts/src/components/FlowLayout/FlowLayout.js +53 -0
  77. package/dist/scripts/src/components/FlowLayout/FlowLayoutNative.js +108 -0
  78. package/dist/scripts/src/components/Footer/Footer.js +35 -0
  79. package/dist/scripts/src/components/Footer/FooterNative.js +20 -0
  80. package/dist/scripts/src/components/Form/Form.js +89 -0
  81. package/dist/scripts/src/components/Form/FormContext.js +9 -0
  82. package/dist/scripts/src/components/Form/FormNative.js +317 -0
  83. package/dist/scripts/src/components/Form/formActions.js +114 -0
  84. package/dist/scripts/src/components/FormItem/FormItem.js +125 -0
  85. package/dist/scripts/src/components/FormItem/FormItemNative.js +157 -0
  86. package/dist/scripts/src/components/FormItem/HelperText.js +27 -0
  87. package/dist/scripts/src/components/FormItem/ItemWithLabel.js +40 -0
  88. package/dist/scripts/src/components/FormItem/Validations.js +351 -0
  89. package/dist/scripts/src/components/FormSection/FormSection.js +41 -0
  90. package/dist/scripts/src/components/Heading/Heading.js +258 -0
  91. package/dist/scripts/src/components/Heading/HeadingNative.js +45 -0
  92. package/dist/scripts/src/components/HoverCard/HoverCard.js +19 -0
  93. package/dist/scripts/src/components/HoverCard/HovercardNative.js +44 -0
  94. package/dist/scripts/src/components/Icon/ApiIcon.js +10 -0
  95. package/dist/scripts/src/components/Icon/Attach.js +10 -0
  96. package/dist/scripts/src/components/Icon/Binding.js +11 -0
  97. package/dist/scripts/src/components/Icon/BoardIcon.js +7 -0
  98. package/dist/scripts/src/components/Icon/BoxIcon.js +10 -0
  99. package/dist/scripts/src/components/Icon/CheckIcon.js +7 -0
  100. package/dist/scripts/src/components/Icon/ChevronLeft.js +7 -0
  101. package/dist/scripts/src/components/Icon/ChevronRight.js +7 -0
  102. package/dist/scripts/src/components/Icon/CodeFileIcon.js +10 -0
  103. package/dist/scripts/src/components/Icon/CodeSandbox.js +10 -0
  104. package/dist/scripts/src/components/Icon/CompactListIcon.js +7 -0
  105. package/dist/scripts/src/components/Icon/ContentCopyIcon.js +7 -0
  106. package/dist/scripts/src/components/Icon/DatabaseIcon.js +11 -0
  107. package/dist/scripts/src/components/Icon/DocFileIcon.js +10 -0
  108. package/dist/scripts/src/components/Icon/DocIcon.js +10 -0
  109. package/dist/scripts/src/components/Icon/DotMenuHorizontalIcon.js +7 -0
  110. package/dist/scripts/src/components/Icon/DotMenuIcon.js +7 -0
  111. package/dist/scripts/src/components/Icon/EmailIcon.js +7 -0
  112. package/dist/scripts/src/components/Icon/EmptyFolderIcon.js +10 -0
  113. package/dist/scripts/src/components/Icon/ErrorIcon.js +7 -0
  114. package/dist/scripts/src/components/Icon/ExpressionIcon.js +10 -0
  115. package/dist/scripts/src/components/Icon/FillPlusCricleIcon.js +7 -0
  116. package/dist/scripts/src/components/Icon/FilterIcon.js +10 -0
  117. package/dist/scripts/src/components/Icon/FolderIcon.js +10 -0
  118. package/dist/scripts/src/components/Icon/GlobeIcon.js +7 -0
  119. package/dist/scripts/src/components/Icon/HomeIcon.js +7 -0
  120. package/dist/scripts/src/components/Icon/HyperLinkIcon.js +7 -0
  121. package/dist/scripts/src/components/Icon/Icon.js +32 -0
  122. package/dist/scripts/src/components/Icon/IconNative.js +102 -0
  123. package/dist/scripts/src/components/Icon/ImageFileIcon.js +10 -0
  124. package/dist/scripts/src/components/Icon/LinkIcon.js +7 -0
  125. package/dist/scripts/src/components/Icon/ListIcon.js +7 -0
  126. package/dist/scripts/src/components/Icon/LooseListIcon.js +7 -0
  127. package/dist/scripts/src/components/Icon/MoonIcon.js +10 -0
  128. package/dist/scripts/src/components/Icon/MoreOptionsIcon.js +7 -0
  129. package/dist/scripts/src/components/Icon/NoSortIcon.js +8 -0
  130. package/dist/scripts/src/components/Icon/PDFIcon.js +10 -0
  131. package/dist/scripts/src/components/Icon/PenIcon.js +7 -0
  132. package/dist/scripts/src/components/Icon/PhoneIcon.js +7 -0
  133. package/dist/scripts/src/components/Icon/PhotoIcon.js +10 -0
  134. package/dist/scripts/src/components/Icon/PlusIcon.js +7 -0
  135. package/dist/scripts/src/components/Icon/SearchIcon.js +7 -0
  136. package/dist/scripts/src/components/Icon/ShareIcon.js +10 -0
  137. package/dist/scripts/src/components/Icon/SortAscendingIcon.js +8 -0
  138. package/dist/scripts/src/components/Icon/SortDescendingIcon.js +8 -0
  139. package/dist/scripts/src/components/Icon/SunIcon.js +10 -0
  140. package/dist/scripts/src/components/Icon/TrashIcon.js +7 -0
  141. package/dist/scripts/src/components/Icon/TrendingDownIcon.js +10 -0
  142. package/dist/scripts/src/components/Icon/TrendingLevelIcon.js +10 -0
  143. package/dist/scripts/src/components/Icon/TrendingUpIcon.js +10 -0
  144. package/dist/scripts/src/components/Icon/TxtIcon.js +10 -0
  145. package/dist/scripts/src/components/Icon/UnknownFileIcon.js +10 -0
  146. package/dist/scripts/src/components/Icon/UnlinkIcon.js +10 -0
  147. package/dist/scripts/src/components/Icon/UserIcon.js +7 -0
  148. package/dist/scripts/src/components/Icon/WarningIcon.js +7 -0
  149. package/dist/scripts/src/components/Icon/XlsIcon.js +10 -0
  150. package/dist/scripts/src/components/IconInfoCard/IconInfoCard.js +39 -0
  151. package/dist/scripts/src/components/IconProvider.js +264 -0
  152. package/dist/scripts/src/components/IconRegistryContext.js +317 -0
  153. package/dist/scripts/src/components/Image/Image.js +35 -0
  154. package/dist/scripts/src/components/Image/ImageNative.js +15 -0
  155. package/dist/scripts/src/components/Input/InputAdornment.js +14 -0
  156. package/dist/scripts/src/components/Items/Items.js +33 -0
  157. package/dist/scripts/src/components/Items/ItemsNative.js +29 -0
  158. package/dist/scripts/src/components/Link/Link.js +64 -0
  159. package/dist/scripts/src/components/Link/LinkNative.js +26 -0
  160. package/dist/scripts/src/components/List/List.js +81 -0
  161. package/dist/scripts/src/components/List/ListNative.js +425 -0
  162. package/dist/scripts/src/components/Logo/Logo.js +16 -0
  163. package/dist/scripts/src/components/Logo/LogoNative.js +15 -0
  164. package/dist/scripts/src/components/Map/Map.js +75 -0
  165. package/dist/scripts/src/components/Map/world_countries.json +45307 -0
  166. package/dist/scripts/src/components/Markdown/Markdown.js +45 -0
  167. package/dist/scripts/src/components/Markdown/MarkdownNative.js +107 -0
  168. package/dist/scripts/src/components/ModalDialog/ConfirmationModalContextProvider.js +116 -0
  169. package/dist/scripts/src/components/ModalDialog/Dialog.js +20 -0
  170. package/dist/scripts/src/components/ModalDialog/ModalDialog.js +64 -0
  171. package/dist/scripts/src/components/ModalDialog/ModalDialogNative.js +167 -0
  172. package/dist/scripts/src/components/ModalDialog/ModalVisibilityContext.js +60 -0
  173. package/dist/scripts/src/components/NavGroup/NavGroup.js +34 -0
  174. package/dist/scripts/src/components/NavGroup/NavGroupNative.js +91 -0
  175. package/dist/scripts/src/components/NavLink/NavLink.js +71 -0
  176. package/dist/scripts/src/components/NavLink/NavLinkNative.js +61 -0
  177. package/dist/scripts/src/components/NavPanel/NavPanel.js +31 -0
  178. package/dist/scripts/src/components/NavPanel/NavPanelNative.js +74 -0
  179. package/dist/scripts/src/components/NoResult/NoResult.js +38 -0
  180. package/dist/scripts/src/components/NoResult/NoResultNative.js +13 -0
  181. package/dist/scripts/src/components/NumberBox/NumberBox.js +61 -0
  182. package/dist/scripts/src/components/NumberBox/NumberBoxNative.js +337 -0
  183. package/dist/scripts/src/components/NumberBox/numberbox-abstractions.js +74 -0
  184. package/dist/scripts/src/components/OffCanvas/OffCanvas.js +57 -0
  185. package/dist/scripts/src/components/OffCanvas/OffCanvasNative.js +48 -0
  186. package/dist/scripts/src/components/Option/Option.js +33 -0
  187. package/dist/scripts/src/components/Option/OptionTypeProvider.js +16 -0
  188. package/dist/scripts/src/components/PageHeader/PageHeader.js +36 -0
  189. package/dist/scripts/src/components/PageMetaTitle/PageMetaTilteNative.js +9 -0
  190. package/dist/scripts/src/components/PageMetaTitle/PageMetaTitle.js +18 -0
  191. package/dist/scripts/src/components/Pages/Pages.js +33 -0
  192. package/dist/scripts/src/components/Pages/PagesNative.js +69 -0
  193. package/dist/scripts/src/components/PieChart/PieChart.js +45 -0
  194. package/dist/scripts/src/components/PieChart/PieChartNative.js +165 -0
  195. package/dist/scripts/src/components/PositionedContainer/PositionedContainer.js +24 -0
  196. package/dist/scripts/src/components/PositionedContainer/PositionedContainerNative.js +14 -0
  197. package/dist/scripts/src/components/ProgressBar/ProgressBar.js +36 -0
  198. package/dist/scripts/src/components/ProgressBar/ProgressBarNative.js +12 -0
  199. package/dist/scripts/src/components/Queue/Queue.js +71 -0
  200. package/dist/scripts/src/components/Queue/QueueNative.js +278 -0
  201. package/dist/scripts/src/components/Queue/queueActions.js +87 -0
  202. package/dist/scripts/src/components/RadioGroup/RadioGroup.js +68 -0
  203. package/dist/scripts/src/components/RadioGroup/RadioGroupNative.js +104 -0
  204. package/dist/scripts/src/components/Range/Range.js +56 -0
  205. package/dist/scripts/src/components/Range/RangeNative.js +8 -0
  206. package/dist/scripts/src/components/RealTimeAdapter/RealTimeAdapter.js +21 -0
  207. package/dist/scripts/src/components/RealTimeAdapter/RealTimeAdapterNative.js +131 -0
  208. package/dist/scripts/src/components/Redirect/Redirect.js +20 -0
  209. package/dist/scripts/src/components/Select/OptionContext.js +12 -0
  210. package/dist/scripts/src/components/Select/Select.js +98 -0
  211. package/dist/scripts/src/components/Select/SelectContext.js +9 -0
  212. package/dist/scripts/src/components/Select/SelectNative.js +214 -0
  213. package/dist/scripts/src/components/SelectionStore/SelectionStore.js +22 -0
  214. package/dist/scripts/src/components/SelectionStore/SelectionStoreNative.js +94 -0
  215. package/dist/scripts/src/components/Slider/Slider.js +54 -0
  216. package/dist/scripts/src/components/Slider/SliderNative.js +8 -0
  217. package/dist/scripts/src/components/SpaceFiller/SpaceFiller.js +19 -0
  218. package/dist/scripts/src/components/SpaceFiller/SpaceFillerNative.js +10 -0
  219. package/dist/scripts/src/components/Spinner/Spinner.js +42 -0
  220. package/dist/scripts/src/components/Spinner/SpinnerNative.js +31 -0
  221. package/dist/scripts/src/components/Splitter/Splitter.js +89 -0
  222. package/dist/scripts/src/components/Splitter/SplitterNative.js +159 -0
  223. package/dist/scripts/src/components/Splitter/utils.js +17 -0
  224. package/dist/scripts/src/components/Stack/Stack.js +110 -0
  225. package/dist/scripts/src/components/Stack/StackNative.js +39 -0
  226. package/dist/scripts/src/components/StateViewer/StateViewerNative.js +19 -0
  227. package/dist/scripts/src/components/StickyBox/StickyBox.js +30 -0
  228. package/dist/scripts/src/components/StickyBox/StickyBoxNative.js +15 -0
  229. package/dist/scripts/src/components/Switch/Switch.js +72 -0
  230. package/dist/scripts/src/components/Table/Table.js +184 -0
  231. package/dist/scripts/src/components/Table/TableNative.js +470 -0
  232. package/dist/scripts/src/components/Table/useRowSelection.js +245 -0
  233. package/dist/scripts/src/components/TableHeader/TableHeader.js +34 -0
  234. package/dist/scripts/src/components/TableOfContents/TableOfContents.js +74 -0
  235. package/dist/scripts/src/components/TableOfContents/TableOfContentsNative.js +55 -0
  236. package/dist/scripts/src/components/Tabs/TabContext.js +45 -0
  237. package/dist/scripts/src/components/Tabs/TabItem.js +20 -0
  238. package/dist/scripts/src/components/Tabs/TabItemNative.js +24 -0
  239. package/dist/scripts/src/components/Tabs/Tabs.js +55 -0
  240. package/dist/scripts/src/components/Tabs/TabsNative.js +72 -0
  241. package/dist/scripts/src/components/Text/Text.js +122 -0
  242. package/dist/scripts/src/components/Text/TextNative.js +124 -0
  243. package/dist/scripts/src/components/TextArea/TextArea.js +65 -0
  244. package/dist/scripts/src/components/TextArea/TextAreaNative.js +176 -0
  245. package/dist/scripts/src/components/TextArea/TextAreaResizable.js +73 -0
  246. package/dist/scripts/src/components/TextArea/useComposedRef.js +60 -0
  247. package/dist/scripts/src/components/TextBox/TextBox.js +85 -0
  248. package/dist/scripts/src/components/TextBox/TextBoxNative.js +109 -0
  249. package/dist/scripts/src/components/Theme/NotificationToast.js +50 -0
  250. package/dist/scripts/src/components/Theme/Theme.js +43 -0
  251. package/dist/scripts/src/components/Theme/ThemeNative.js +126 -0
  252. package/dist/scripts/src/components/ThemeChanger/ThemeChanger.js +115 -0
  253. package/dist/scripts/src/components/ThemeChanger/ToneChangerButton.js +28 -0
  254. package/dist/scripts/src/components/Toggle/Toggle.js +99 -0
  255. package/dist/scripts/src/components/Toolbar/Toolbar.js +32 -0
  256. package/dist/scripts/src/components/ToolbarButton/ToolbarButton.js +38 -0
  257. package/dist/scripts/src/components/Tree/TreeComponent.js +32 -0
  258. package/dist/scripts/src/components/Tree/TreeNative.js +69 -0
  259. package/dist/scripts/src/components/TrendLabel/TrendLabel.js +37 -0
  260. package/dist/scripts/src/components/ValidationSummary/ValidationSummary.js +59 -0
  261. package/dist/scripts/src/components/abstractions.js +151 -0
  262. package/dist/scripts/src/components/chart-color-schemes.js +43 -0
  263. package/dist/scripts/src/components/component-utils.js +17 -0
  264. package/dist/scripts/src/components/container-helpers.js +25 -0
  265. package/dist/scripts/src/components/metadata-helpers.js +245 -0
  266. package/dist/scripts/src/components/slot-helpers.js +22 -0
  267. package/dist/scripts/src/components-core/ApiBoundComponent.js +194 -0
  268. package/dist/scripts/src/components-core/AppContext.js +16 -0
  269. package/dist/scripts/src/components-core/AppRoot.js +424 -0
  270. package/dist/scripts/src/components-core/ComponentBed.js +325 -0
  271. package/dist/scripts/src/components-core/ComponentDecorator.js +90 -0
  272. package/dist/scripts/src/components-core/CompoundComponent.js +144 -0
  273. package/dist/scripts/src/components-core/DebugViewProvider.js +43 -0
  274. package/dist/scripts/src/components-core/EngineError.js +91 -0
  275. package/dist/scripts/src/components-core/ErrorBoundary.js +59 -0
  276. package/dist/scripts/src/components-core/Fragment.js +15 -0
  277. package/dist/scripts/src/components-core/InspectorContext.js +176 -0
  278. package/dist/scripts/src/components-core/InvalidComponent.js +17 -0
  279. package/dist/scripts/src/components-core/LoaderComponent.js +92 -0
  280. package/dist/scripts/src/components-core/RestApiProxy.js +354 -0
  281. package/dist/scripts/src/components-core/ScrollContext.js +11 -0
  282. package/dist/scripts/src/components-core/Slot.js +17 -0
  283. package/dist/scripts/src/components-core/StandaloneApp.js +589 -0
  284. package/dist/scripts/src/components-core/StandaloneComponentManager.js +51 -0
  285. package/dist/scripts/src/components-core/TableOfContentsContext.js +110 -0
  286. package/dist/scripts/src/components-core/UnknownComponent.js +15 -0
  287. package/dist/scripts/src/components-core/XmluiCodeHighlighter.js +110 -0
  288. package/dist/scripts/src/components-core/abstractions/ComponentRenderer.js +2 -0
  289. package/dist/scripts/src/components-core/abstractions/LoaderRenderer.js +2 -0
  290. package/dist/scripts/src/components-core/abstractions/containers.js +18 -0
  291. package/dist/scripts/src/components-core/abstractions/standalone.js +2 -0
  292. package/dist/scripts/src/components-core/abstractions/treeAbstractions.js +2 -0
  293. package/dist/scripts/src/components-core/action/APICall.js +283 -0
  294. package/dist/scripts/src/components-core/action/FileDownloadAction.js +80 -0
  295. package/dist/scripts/src/components-core/action/FileUploadAction.js +88 -0
  296. package/dist/scripts/src/components-core/action/NavigateAction.js +20 -0
  297. package/dist/scripts/src/components-core/action/TimedAction.js +21 -0
  298. package/dist/scripts/src/components-core/action/actions.js +15 -0
  299. package/dist/scripts/src/components-core/appContext/date-functions.js +19 -0
  300. package/dist/scripts/src/components-core/appContext/math-function.js +27 -0
  301. package/dist/scripts/src/components-core/appContext/misc-utils.js +12 -0
  302. package/dist/scripts/src/components-core/component-hooks.js +25 -0
  303. package/dist/scripts/src/components-core/constants.js +18 -0
  304. package/dist/scripts/src/components-core/container/Container.js +1241 -0
  305. package/dist/scripts/src/components-core/container/buildProxy.js +54 -0
  306. package/dist/scripts/src/components-core/container/collectFnVarDeps.js +49 -0
  307. package/dist/scripts/src/components-core/container/valueExtractor.js +205 -0
  308. package/dist/scripts/src/components-core/descriptorHelper.js +72 -0
  309. package/dist/scripts/src/components-core/interception/ApiInterceptor.js +198 -0
  310. package/dist/scripts/src/components-core/interception/ApiInterceptorProvider.js +94 -0
  311. package/dist/scripts/src/components-core/interception/Backend.js +129 -0
  312. package/dist/scripts/src/components-core/interception/Errors.js +129 -0
  313. package/dist/scripts/src/components-core/interception/InMemoryDb.js +41 -0
  314. package/dist/scripts/src/components-core/interception/IndexedDb.js +205 -0
  315. package/dist/scripts/src/components-core/interception/ReadonlyCollection.js +145 -0
  316. package/dist/scripts/src/components-core/interception/abstractions.js +2 -0
  317. package/dist/scripts/src/components-core/interception/apiInterceptorWorker.js +46 -0
  318. package/dist/scripts/src/components-core/interception/useApiInterceptorContext.js +9 -0
  319. package/dist/scripts/src/components-core/loader/ApiLoader.js +54 -0
  320. package/dist/scripts/src/components-core/loader/DataLoader.js +149 -0
  321. package/dist/scripts/src/components-core/loader/ExternalDataLoader.js +62 -0
  322. package/dist/scripts/src/components-core/loader/Loader.js +126 -0
  323. package/dist/scripts/src/components-core/loader/MockLoaderRenderer.js +40 -0
  324. package/dist/scripts/src/components-core/loader/PageableLoader.js +262 -0
  325. package/dist/scripts/src/components-core/markup-check.js +279 -0
  326. package/dist/scripts/src/components-core/renderers.js +45 -0
  327. package/dist/scripts/src/components-core/reportEngineError.js +62 -0
  328. package/dist/scripts/src/components-core/script-runner/BindingTreeEvaluationContext.js +35 -0
  329. package/dist/scripts/src/components-core/script-runner/ICustomOperations.js +34 -0
  330. package/dist/scripts/src/components-core/script-runner/ParameterParser.js +117 -0
  331. package/dist/scripts/src/components-core/script-runner/asyncProxy.js +149 -0
  332. package/dist/scripts/src/components-core/script-runner/bannedFunctions.js +34 -0
  333. package/dist/scripts/src/components-core/script-runner/custom-operations-registry.js +40 -0
  334. package/dist/scripts/src/components-core/script-runner/custom-ui-data.js +40 -0
  335. package/dist/scripts/src/components-core/script-runner/eval-tree-async.js +593 -0
  336. package/dist/scripts/src/components-core/script-runner/eval-tree-common.js +497 -0
  337. package/dist/scripts/src/components-core/script-runner/eval-tree-sync.js +482 -0
  338. package/dist/scripts/src/components-core/script-runner/process-statement-async.js +766 -0
  339. package/dist/scripts/src/components-core/script-runner/process-statement-common.js +193 -0
  340. package/dist/scripts/src/components-core/script-runner/process-statement-sync.js +752 -0
  341. package/dist/scripts/src/components-core/script-runner/statement-queue.js +62 -0
  342. package/dist/scripts/src/components-core/script-runner/syncProxy.js +31 -0
  343. package/dist/scripts/src/components-core/script-runner/visitors.js +361 -0
  344. package/dist/scripts/src/components-core/theming/ThemeContext.js +53 -0
  345. package/dist/scripts/src/components-core/theming/ThemeProvider.js +335 -0
  346. package/dist/scripts/src/components-core/theming/abstractions.js +11 -0
  347. package/dist/scripts/src/components-core/theming/extendThemeUtils.js +114 -0
  348. package/dist/scripts/src/components-core/theming/hvar.js +105 -0
  349. package/dist/scripts/src/components-core/theming/themeVars.js +62 -0
  350. package/dist/scripts/src/components-core/theming/themes/base-utils.js +31 -0
  351. package/dist/scripts/src/components-core/theming/themes/palette.js +55 -0
  352. package/dist/scripts/src/components-core/theming/themes/root.js +287 -0
  353. package/dist/scripts/src/components-core/theming/themes/solid.js +16 -0
  354. package/dist/scripts/src/components-core/theming/themes/theme-colors.js +561 -0
  355. package/dist/scripts/src/components-core/theming/themes/xmlui.js +58 -0
  356. package/dist/scripts/src/components-core/theming/transformThemeVars.js +300 -0
  357. package/dist/scripts/src/components-core/utils/DataLoaderQueryKeyGenerator.js +35 -0
  358. package/dist/scripts/src/components-core/utils/LruCache.js +184 -0
  359. package/dist/scripts/src/components-core/utils/actionUtils.js +32 -0
  360. package/dist/scripts/src/components-core/utils/classnames.js +58 -0
  361. package/dist/scripts/src/components-core/utils/compound-utils.js +11 -0
  362. package/dist/scripts/src/components-core/utils/css-utils.js +163 -0
  363. package/dist/scripts/src/components-core/utils/date-utils.js +78 -0
  364. package/dist/scripts/src/components-core/utils/extractParam.js +148 -0
  365. package/dist/scripts/src/components-core/utils/hooks.js +249 -0
  366. package/dist/scripts/src/components-core/utils/mergeProps.js +45 -0
  367. package/dist/scripts/src/components-core/utils/misc.js +472 -0
  368. package/dist/scripts/src/components-core/utils/request-params.js +70 -0
  369. package/dist/scripts/src/components-core/utils/statementUtils.js +221 -0
  370. package/dist/scripts/src/components-core/utils/treeUtils.js +48 -0
  371. package/dist/scripts/src/index.js +69 -0
  372. package/dist/scripts/src/parsers/common/GenericToken.js +2 -0
  373. package/dist/scripts/src/parsers/scripting-exp/TokenType.js +112 -0
  374. package/dist/scripts/src/parsers/style-parser/StyleInputStream.js +39 -0
  375. package/dist/scripts/src/parsers/style-parser/StyleLexer.js +623 -0
  376. package/dist/scripts/src/parsers/style-parser/StyleParser.js +1036 -0
  377. package/dist/scripts/src/parsers/style-parser/errors.js +37 -0
  378. package/dist/scripts/src/parsers/style-parser/source-tree.js +2 -0
  379. package/dist/scripts/src/parsers/style-parser/style-compiler.js +558 -0
  380. package/dist/scripts/src/parsers/style-parser/tokens.js +43 -0
  381. package/dist/scripts/src/parsers/xmlui-parser/ParserError.js +7 -0
  382. package/dist/scripts/src/parsers/xmlui-parser/transform.js +80 -32
  383. package/dist/scripts/src/syntax/grammar.tmLanguage.json +328 -0
  384. package/dist/scripts/src/syntax/textMate/xmlui.json +630 -0
  385. package/dist/style.css +1 -1
  386. package/dist/xmlui-metadata.mjs +2669 -2601
  387. package/dist/xmlui-metadata.umd.js +16 -16
  388. package/dist/xmlui-standalone.umd.js +186 -186
  389. package/dist/xmlui.d.ts +1868 -13
  390. package/dist/xmlui.mjs +1 -1
  391. package/package.json +5 -5
  392. package/dist/xmlui.umd.js +0 -293
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.createApiInterceptorWorker = void 0;
13
+ const browser_1 = require("msw/browser");
14
+ const lodash_es_1 = require("lodash-es");
15
+ const msw_1 = require("msw");
16
+ const ApiInterceptor_1 = require("@components-core/interception/ApiInterceptor");
17
+ // Create handlers for the specified API interceptor
18
+ function createHandlers(api) {
19
+ const operations = api.getOperations();
20
+ let handlers = [];
21
+ Object.entries(operations).forEach(([operationId, operation]) => {
22
+ let urls = [operation.url];
23
+ if ((0, lodash_es_1.isArray)(operation.url)) {
24
+ urls = operation.url;
25
+ }
26
+ urls.forEach((operationUrl) => {
27
+ handlers.push(msw_1.http[operation.method](`${api.getApiUrl()}${operationUrl}`, (_a) => __awaiter(this, [_a], void 0, function* ({ request, cookies, params }) {
28
+ return yield api.executeOperation(operationId, request, cookies, params);
29
+ })));
30
+ });
31
+ });
32
+ return handlers;
33
+ }
34
+ // Create the worker for the ApiInterceptorProvider
35
+ const createApiInterceptorWorker = (apiInterceptorDefinition, apiWorker) => __awaiter(void 0, void 0, void 0, function* () {
36
+ const apiInstance = new ApiInterceptor_1.ApiInterceptor(apiInterceptorDefinition);
37
+ yield apiInstance.initialize();
38
+ const handlers = createHandlers(apiInstance);
39
+ let worker = apiWorker;
40
+ if (!worker) {
41
+ worker = (0, browser_1.setupWorker)();
42
+ }
43
+ worker.use(...handlers);
44
+ return worker;
45
+ });
46
+ exports.createApiInterceptorWorker = createApiInterceptorWorker;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiInterceptorContext = void 0;
4
+ exports.useApiInterceptorContext = useApiInterceptorContext;
5
+ const react_1 = require("react");
6
+ exports.ApiInterceptorContext = (0, react_1.createContext)(null);
7
+ function useApiInterceptorContext() {
8
+ return (0, react_1.useContext)(exports.ApiInterceptorContext);
9
+ }
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.apiLoaderRenderer = void 0;
13
+ const jsx_runtime_1 = require("react/jsx-runtime");
14
+ const react_1 = require("react");
15
+ const ComponentDefs_1 = require("@abstractions/ComponentDefs");
16
+ const Loader_1 = require("./Loader");
17
+ const misc_1 = require("@components-core/utils/misc");
18
+ const extractParam_1 = require("@components-core/utils/extractParam");
19
+ const renderers_1 = require("@components-core/renderers");
20
+ const AppContext_1 = require("@components-core/AppContext");
21
+ /**
22
+ * Represents a non-displayed React component, which handles the specified API loader
23
+ */
24
+ function ApiLoader({ loader, loaderInProgressChanged, loaderLoaded, loaderError, state, doNotRemoveNulls, }) {
25
+ const appContext = (0, AppContext_1.useAppContext)();
26
+ const url = (0, extractParam_1.extractParam)(state, loader.props.url, appContext);
27
+ const loadable = !!url;
28
+ const doLoad = (0, react_1.useCallback)(() => __awaiter(this, void 0, void 0, function* () {
29
+ if (!loadable) {
30
+ return;
31
+ }
32
+ console.log("doLoad ", url);
33
+ const response = yield fetch(url);
34
+ if (loader.props.raw) {
35
+ return yield response.text();
36
+ }
37
+ const responseObj = yield response.json();
38
+ if (!doNotRemoveNulls) {
39
+ (0, misc_1.removeNullProperties)(responseObj);
40
+ }
41
+ return responseObj;
42
+ }), [doNotRemoveNulls, loadable, loader.props.raw, url]);
43
+ return ((0, jsx_runtime_1.jsx)(Loader_1.Loader, { state: state, loader: loader, loaderInProgressChanged: loaderInProgressChanged, loaderLoaded: loaderLoaded, loaderError: loaderError, loaderFn: doLoad }));
44
+ }
45
+ const ApiLoaderMd = (0, ComponentDefs_1.createMetadata)({
46
+ description: `Represents a loader that calls an API through an HTTP/HTTPS GET request`,
47
+ props: {
48
+ url: (0, ComponentDefs_1.d)("URL segment to use in the GET request"),
49
+ raw: (0, ComponentDefs_1.d)("If true, the loader returns the raw text response instead of parsing it as JSON"),
50
+ },
51
+ });
52
+ exports.apiLoaderRenderer = (0, renderers_1.createLoaderRenderer)("ApiLoader", ({ loader, state, dispatch, loaderInProgressChanged, loaderLoaded, loaderError }) => {
53
+ return ((0, jsx_runtime_1.jsx)(ApiLoader, { loader: loader, state: state, loaderInProgressChanged: loaderInProgressChanged, loaderLoaded: loaderLoaded, loaderError: loaderError }));
54
+ }, ApiLoaderMd);
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.dataLoaderRenderer = exports.DataLoaderMd = void 0;
16
+ const jsx_runtime_1 = require("react/jsx-runtime");
17
+ const react_1 = require("react");
18
+ const react_hot_toast_1 = __importDefault(require("react-hot-toast"));
19
+ const ComponentDefs_1 = require("@abstractions/ComponentDefs");
20
+ const renderers_1 = require("@components-core/renderers");
21
+ const RestApiProxy_1 = __importDefault(require("@components-core/RestApiProxy"));
22
+ const extractParam_1 = require("@components-core/utils/extractParam");
23
+ const DataLoaderQueryKeyGenerator_1 = require("@components-core/utils/DataLoaderQueryKeyGenerator");
24
+ const PageableLoader_1 = require("@components-core/loader/PageableLoader");
25
+ const Loader_1 = require("@components-core/loader/Loader");
26
+ const AppContext_1 = require("@components-core/AppContext");
27
+ const hooks_1 = require("@components-core/utils/hooks");
28
+ function DataLoader({ loader, state, registerComponentApi, onLoaded, onError, loaderInProgressChanged, loaderLoaded, loaderError, transformResult, }) {
29
+ const appContext = (0, AppContext_1.useAppContext)();
30
+ const url = (0, extractParam_1.extractParam)(state, loader.props.url, appContext);
31
+ const queryParamsInner = (0, react_1.useMemo)(() => {
32
+ return (0, extractParam_1.extractParam)(state, loader.props.queryParams, appContext);
33
+ }, [appContext, loader.props.queryParams, state]);
34
+ const queryParams = (0, hooks_1.useShallowCompareMemoize)(queryParamsInner);
35
+ const pagingDirection = (0, react_1.useMemo)(() => {
36
+ if (loader.props.prevPageSelector && loader.props.nextPageSelector) {
37
+ return "BIDIRECTIONAL";
38
+ }
39
+ if (loader.props.prevPageSelector) {
40
+ return "BACKWARD";
41
+ }
42
+ if (loader.props.nextPageSelector) {
43
+ return "FORWARD";
44
+ }
45
+ return null;
46
+ }, [loader.props.nextPageSelector, loader.props.prevPageSelector]);
47
+ const hasPaging = pagingDirection !== null;
48
+ const api = (0, react_1.useMemo)(() => {
49
+ return new RestApiProxy_1.default(appContext);
50
+ }, [appContext]);
51
+ const doLoad = (0, react_1.useCallback)((abortSignal, pageParams) => __awaiter(this, void 0, void 0, function* () {
52
+ return yield api.execute({
53
+ abortSignal,
54
+ operation: loader.props,
55
+ params: Object.assign(Object.assign({}, state), { $pageParams: pageParams }),
56
+ resolveBindingExpressions: true,
57
+ });
58
+ }), [api, loader.props, state]);
59
+ const queryId = (0, react_1.useMemo)(() => {
60
+ return new DataLoaderQueryKeyGenerator_1.DataLoaderQueryKeyGenerator(url, queryParams, appContext === null || appContext === void 0 ? void 0 : appContext.appGlobals.apiUrl).asKey();
61
+ }, [appContext === null || appContext === void 0 ? void 0 : appContext.appGlobals.apiUrl, queryParams, url]);
62
+ const stateRef = (0, react_1.useRef)({ state, appContext });
63
+ stateRef.current = { state, appContext };
64
+ const loadingToastIdRef = (0, react_1.useRef)(undefined);
65
+ const inProgress = (0, react_1.useCallback)((isInProgress) => {
66
+ loaderInProgressChanged(isInProgress);
67
+ const inProgressMessage = (0, extractParam_1.extractParam)(stateRef.current.state, loader.props.inProgressNotificationMessage, stateRef.current.appContext);
68
+ if (isInProgress && inProgressMessage) {
69
+ if (loadingToastIdRef.current) {
70
+ react_hot_toast_1.default.dismiss(loadingToastIdRef.current);
71
+ }
72
+ loadingToastIdRef.current = react_hot_toast_1.default.loading(inProgressMessage);
73
+ }
74
+ else {
75
+ if (loadingToastIdRef.current) {
76
+ react_hot_toast_1.default.dismiss(loadingToastIdRef.current);
77
+ }
78
+ }
79
+ }, [loader.props.inProgressNotificationMessage, loaderInProgressChanged]);
80
+ const loaded = (0, react_1.useCallback)((data, pageInfo) => {
81
+ loaderLoaded(data, pageInfo);
82
+ const completedMessage = (0, extractParam_1.extractParam)(Object.assign(Object.assign({}, stateRef.current.state), { $result: data }), loader.props.completedNotificationMessage, stateRef.current.appContext);
83
+ if (completedMessage) {
84
+ react_hot_toast_1.default.success(completedMessage, {
85
+ id: loadingToastIdRef.current,
86
+ });
87
+ }
88
+ else {
89
+ if (loadingToastIdRef.current) {
90
+ react_hot_toast_1.default.dismiss(loadingToastIdRef.current);
91
+ }
92
+ }
93
+ }, [loader.props.completedNotificationMessage, loaderLoaded]);
94
+ const error = (0, react_1.useCallback)((error) => __awaiter(this, void 0, void 0, function* () {
95
+ loaderError(error);
96
+ if (onError) {
97
+ const result = yield onError(error);
98
+ if (result === false) {
99
+ if (loadingToastIdRef.current) {
100
+ react_hot_toast_1.default.dismiss(loadingToastIdRef.current);
101
+ }
102
+ return;
103
+ }
104
+ }
105
+ const errorMessage = (0, extractParam_1.extractParam)(Object.assign(Object.assign({}, stateRef.current.state), { $error: error }), loader.props.errorNotificationMessage, stateRef.current.appContext);
106
+ if (errorMessage) {
107
+ react_hot_toast_1.default.error(errorMessage, {
108
+ id: loadingToastIdRef.current,
109
+ });
110
+ }
111
+ else {
112
+ if (loadingToastIdRef.current) {
113
+ react_hot_toast_1.default.dismiss(loadingToastIdRef.current);
114
+ }
115
+ }
116
+ if (errorMessage === undefined) {
117
+ appContext.signError(error);
118
+ }
119
+ }), [appContext, loader.props.errorNotificationMessage, loaderError, onError]);
120
+ const pollIntervalInSeconds = (0, extractParam_1.extractParam)(state, loader.props.pollIntervalInSeconds, appContext);
121
+ return hasPaging ? ((0, jsx_runtime_1.jsx)(PageableLoader_1.PageableLoader, { queryId: queryId, state: state, loader: loader, loaderInProgressChanged: inProgress, loaderLoaded: loaded, loaderError: error, loaderFn: doLoad, registerComponentApi: registerComponentApi, pollIntervalInSeconds: pollIntervalInSeconds, onLoaded: onLoaded, transformResult: transformResult }, queryId === null || queryId === void 0 ? void 0 : queryId.join(""))) : ((0, jsx_runtime_1.jsx)(Loader_1.Loader, { queryId: queryId, state: state, loader: loader, loaderInProgressChanged: inProgress, loaderLoaded: loaded, loaderError: error, loaderFn: doLoad, pollIntervalInSeconds: pollIntervalInSeconds, registerComponentApi: registerComponentApi, onLoaded: onLoaded, transformResult: transformResult }, queryId === null || queryId === void 0 ? void 0 : queryId.join("")));
122
+ }
123
+ exports.DataLoaderMd = (0, ComponentDefs_1.createMetadata)({
124
+ description: "This component manages data fetching from a web API",
125
+ props: {
126
+ method: (0, ComponentDefs_1.d)("The HTTP method to use"),
127
+ url: (0, ComponentDefs_1.d)("The URL to fetch data from"),
128
+ rawBody: (0, ComponentDefs_1.d)("The raw body of the request"),
129
+ body: (0, ComponentDefs_1.d)("The body of the request to be sent as JSON"),
130
+ queryParams: (0, ComponentDefs_1.d)("Query parameters to send with the request"),
131
+ headers: (0, ComponentDefs_1.d)("Headers to send with the request"),
132
+ pollIntervalInSeconds: (0, ComponentDefs_1.d)("The interval in seconds to poll the API for refreshing data"),
133
+ resultSelector: (0, ComponentDefs_1.d)("An expression to extract the result from the response"),
134
+ prevPageSelector: (0, ComponentDefs_1.d)("An expression to extract the previous page parameter from the response"),
135
+ nextPageSelector: (0, ComponentDefs_1.d)("An expression to extract the next page parameter from the response"),
136
+ inProgressNotificationMessage: (0, ComponentDefs_1.d)("The message to show when the loader is in progress"),
137
+ completedNotificationMessage: (0, ComponentDefs_1.d)("The message to show when the loader completes"),
138
+ errorNotificationMessage: (0, ComponentDefs_1.d)("The message to show when an error occurs"),
139
+ transformResult: (0, ComponentDefs_1.d)("Function for transforming the datasource result"),
140
+ },
141
+ events: {
142
+ loaded: (0, ComponentDefs_1.d)("Event to trigger when the data is loaded"),
143
+ error: (0, ComponentDefs_1.d)("This event fires when an error occurs while fetching data"),
144
+ },
145
+ });
146
+ exports.dataLoaderRenderer = (0, renderers_1.createLoaderRenderer)("DataLoader", ({ loader, state, loaderLoaded, loaderInProgressChanged, loaderError, registerComponentApi, lookupAction, lookupSyncCallback, }) => {
147
+ var _a, _b;
148
+ return ((0, jsx_runtime_1.jsx)(DataLoader, { loader: loader, state: state, loaderInProgressChanged: loaderInProgressChanged, loaderLoaded: loaderLoaded, loaderError: loaderError, registerComponentApi: registerComponentApi, transformResult: lookupSyncCallback(loader.props.transformResult), onLoaded: lookupAction((_a = loader.events) === null || _a === void 0 ? void 0 : _a.loaded, { eventName: "loaded" }), onError: lookupAction((_b = loader.events) === null || _b === void 0 ? void 0 : _b.error, { eventName: "error" }) }));
149
+ }, exports.DataLoaderMd);
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.externalDataLoaderRenderer = exports.ExternalDataLoaderMd = void 0;
13
+ const jsx_runtime_1 = require("react/jsx-runtime");
14
+ const react_1 = require("react");
15
+ const ComponentDefs_1 = require("@abstractions/ComponentDefs");
16
+ const Loader_1 = require("./Loader");
17
+ const misc_1 = require("@components-core/utils/misc");
18
+ const extractParam_1 = require("@components-core/utils/extractParam");
19
+ const renderers_1 = require("@components-core/renderers");
20
+ const AppContext_1 = require("@components-core/AppContext");
21
+ /**
22
+ * Represents a non-displayed React component, which handles the specified API loader
23
+ */
24
+ function ExternalDataLoader({ loader, loaderInProgressChanged, loaderError, loaderLoaded, state, doNotRemoveNulls, }) {
25
+ const appContext = (0, AppContext_1.useAppContext)();
26
+ const method = (0, extractParam_1.extractParam)(state, loader.props.method, appContext);
27
+ const headers = (0, extractParam_1.extractParam)(state, loader.props.headers, appContext);
28
+ const data = (0, extractParam_1.extractParam)(state, loader.props.data, appContext);
29
+ console.log("resolve");
30
+ const url = (0, extractParam_1.extractParam)(state, loader.props.url, appContext);
31
+ const urlLoadable = !!url;
32
+ const doLoad = (0, react_1.useCallback)(() => __awaiter(this, void 0, void 0, function* () {
33
+ if (!urlLoadable) {
34
+ return;
35
+ }
36
+ console.log("doLoad ", url, data);
37
+ const response = yield fetch(url, {
38
+ method: method || "POST",
39
+ headers: Object.assign({ "Content-Type": "application/json" }, headers),
40
+ body: JSON.stringify(data),
41
+ });
42
+ const responseObj = yield response.json();
43
+ if (!doNotRemoveNulls) {
44
+ (0, misc_1.removeNullProperties)(responseObj);
45
+ }
46
+ console.log("result", responseObj);
47
+ return responseObj;
48
+ }), [urlLoadable, headers, data, url, method, doNotRemoveNulls]);
49
+ return ((0, jsx_runtime_1.jsx)(Loader_1.Loader, { state: state, loader: loader, loaderInProgressChanged: loaderInProgressChanged, loaderLoaded: loaderLoaded, loaderError: loaderError, loaderFn: doLoad }));
50
+ }
51
+ exports.ExternalDataLoaderMd = (0, ComponentDefs_1.createMetadata)({
52
+ description: `Represents a loader that calls an API through an HTTP/HTTPS GET request`,
53
+ props: {
54
+ url: (0, ComponentDefs_1.d)("URL segment to use in the GET request"),
55
+ method: (0, ComponentDefs_1.d)("The HTTP method to use"),
56
+ headers: (0, ComponentDefs_1.d)("Headers to send with the request"),
57
+ data: (0, ComponentDefs_1.d)("The body of the request to be sent as JSON"),
58
+ },
59
+ });
60
+ exports.externalDataLoaderRenderer = (0, renderers_1.createLoaderRenderer)("ExternalDataLoader", ({ loader, state, loaderInProgressChanged, loaderError, loaderLoaded }) => {
61
+ return ((0, jsx_runtime_1.jsx)(ExternalDataLoader, { loader: loader, state: state, loaderInProgressChanged: loaderInProgressChanged, loaderLoaded: loaderLoaded, loaderError: loaderError }));
62
+ }, exports.ExternalDataLoaderMd);
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.Loader = Loader;
13
+ const react_1 = require("react");
14
+ const react_query_1 = require("@tanstack/react-query");
15
+ const extractParam_1 = require("@components-core/utils/extractParam");
16
+ const immer_1 = require("immer");
17
+ const AppContext_1 = require("@components-core/AppContext");
18
+ const hooks_1 = require("@components-core/utils/hooks");
19
+ function Loader({ state, loader, loaderFn, queryId, pollIntervalInSeconds, registerComponentApi, onLoaded, loaderLoaded, loaderInProgressChanged, loaderError, transformResult }) {
20
+ const { uid } = loader;
21
+ const appContext = (0, AppContext_1.useAppContext)();
22
+ // --- Rely on react-query to decide when data fetching should use the cache or when is should fetch the data from
23
+ // --- its data source.
24
+ // --- data: The data obtained by the query
25
+ // --- status: Query execution status
26
+ // --- error: Error information about the current query error (in "error" state)
27
+ // --- refetch: The function that can be used to re-fetch the data (because of data/state changes)
28
+ const { data, status, isFetching, error, refetch } = (0, react_query_1.useQuery)({
29
+ queryKey: (0, react_1.useMemo)(() => queryId ? queryId : [uid, (0, extractParam_1.extractParam)(state, loader.props, appContext)], [appContext, loader.props, queryId, state, uid]),
30
+ queryFn: (0, react_1.useCallback)((_a) => __awaiter(this, [_a], void 0, function* ({ signal }) {
31
+ const newVar = yield loaderFn(signal);
32
+ if (newVar === undefined) {
33
+ return null;
34
+ }
35
+ return newVar;
36
+ }), [loaderFn]),
37
+ select: (0, react_1.useCallback)((data) => {
38
+ let result = data;
39
+ const resultSelector = loader.props.resultSelector;
40
+ if (resultSelector) {
41
+ result = (0, extractParam_1.extractParam)({ $response: data }, resultSelector.startsWith("{") ? resultSelector : `{$response.${resultSelector}}`);
42
+ }
43
+ return transformResult ? transformResult(result) : result;
44
+ }, [loader.props.resultSelector, transformResult]),
45
+ retry: false
46
+ });
47
+ (0, react_1.useEffect)(() => {
48
+ let intervalId;
49
+ if (pollIntervalInSeconds) {
50
+ intervalId = setInterval(() => {
51
+ refetch();
52
+ }, pollIntervalInSeconds * 1000);
53
+ }
54
+ return () => {
55
+ if (intervalId) {
56
+ clearInterval(intervalId);
57
+ }
58
+ };
59
+ }, [pollIntervalInSeconds, refetch]);
60
+ const prevData = (0, hooks_1.usePrevious)(data);
61
+ const prevError = (0, hooks_1.usePrevious)(error);
62
+ (0, react_1.useLayoutEffect)(() => {
63
+ loaderInProgressChanged(isFetching);
64
+ }, [isFetching, loaderInProgressChanged]);
65
+ (0, react_1.useLayoutEffect)(() => {
66
+ if (status === "success" && data !== prevData) {
67
+ loaderLoaded(data);
68
+ //we do this to push the onLoaded callback to the next event loop.
69
+ // It works, because useLayoutEffect will run synchronously after the render, and the onLoaded callback will have
70
+ // access to the latest loader value
71
+ setTimeout(() => {
72
+ onLoaded === null || onLoaded === void 0 ? void 0 : onLoaded(data);
73
+ }, 0);
74
+ }
75
+ else if (status === "error" && error !== prevError) {
76
+ loaderError(error);
77
+ }
78
+ }, [data, error, loaderError, loaderLoaded, onLoaded, prevData, prevError, status]);
79
+ (0, react_1.useLayoutEffect)(() => {
80
+ return () => {
81
+ loaderLoaded(undefined);
82
+ };
83
+ }, [loaderLoaded, uid]);
84
+ (0, react_1.useEffect)(() => {
85
+ registerComponentApi === null || registerComponentApi === void 0 ? void 0 : registerComponentApi({
86
+ refetch,
87
+ update: (updater) => __awaiter(this, void 0, void 0, function* () {
88
+ var _a, _b;
89
+ const oldData = (_a = appContext.queryClient) === null || _a === void 0 ? void 0 : _a.getQueryData(queryId);
90
+ if (!oldData) {
91
+ //loader not loaded yet, we skip the update
92
+ return;
93
+ }
94
+ const draft = (0, immer_1.createDraft)(oldData);
95
+ const ret = yield updater(draft); //if it returns a value, we take it as the new data
96
+ const newData = ret || (0, immer_1.finishDraft)(draft);
97
+ if (oldData.length !== newData.length) {
98
+ throw new Error("Use this method for update only. If you want to add or delete, call the addItem/deleteItem method.");
99
+ }
100
+ // console.log("BEFORE: ", appContext.queryClient?.getQueryData(queryId!));
101
+ (_b = appContext.queryClient) === null || _b === void 0 ? void 0 : _b.setQueryData(queryId, newData);
102
+ // console.log("AFTER: ", appContext.queryClient?.getQueryData(queryId!));
103
+ }),
104
+ addItem: (element, indexToInsert) => __awaiter(this, void 0, void 0, function* () {
105
+ var _a, _b;
106
+ const oldData = (_a = appContext.queryClient) === null || _a === void 0 ? void 0 : _a.getQueryData(queryId);
107
+ const draft = (0, immer_1.createDraft)(oldData);
108
+ if (indexToInsert === undefined) {
109
+ draft.push(element);
110
+ }
111
+ else {
112
+ draft.splice(indexToInsert, 0, element);
113
+ }
114
+ const newData = (0, immer_1.finishDraft)(draft);
115
+ (_b = appContext.queryClient) === null || _b === void 0 ? void 0 : _b.setQueryData(queryId, newData);
116
+ }),
117
+ getItems: () => __awaiter(this, void 0, void 0, function* () {
118
+ return data;
119
+ }),
120
+ deleteItem: (element) => __awaiter(this, void 0, void 0, function* () {
121
+ throw new Error("not implemented");
122
+ }),
123
+ });
124
+ }, [appContext.queryClient, queryId, refetch, registerComponentApi, data]);
125
+ return null;
126
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.mockLoaderRenderer = exports.MockLoaderMd = void 0;
13
+ const jsx_runtime_1 = require("react/jsx-runtime");
14
+ const react_1 = require("react");
15
+ const ComponentDefs_1 = require("@abstractions/ComponentDefs");
16
+ const Loader_1 = require("./Loader");
17
+ const misc_1 = require("@components-core/utils/misc");
18
+ const extractParam_1 = require("@components-core/utils/extractParam");
19
+ const renderers_1 = require("@components-core/renderers");
20
+ const AppContext_1 = require("@components-core/AppContext");
21
+ function ApiLoader({ loader, loaderInProgressChanged, loaderError, loaderLoaded, state, }) {
22
+ const appContext = (0, AppContext_1.useAppContext)();
23
+ const waitTime = (0, extractParam_1.extractParam)(state, loader.props.waitTime, appContext);
24
+ const responseObj = (0, extractParam_1.extractParam)(state, loader.props.data, appContext);
25
+ const doLoad = (0, react_1.useCallback)(() => __awaiter(this, void 0, void 0, function* () {
26
+ waitTime && (yield (0, misc_1.asyncWait)(waitTime));
27
+ return responseObj;
28
+ }), [responseObj, waitTime]);
29
+ return ((0, jsx_runtime_1.jsx)(Loader_1.Loader, { state: state, loader: loader, loaderInProgressChanged: loaderInProgressChanged, loaderLoaded: loaderLoaded, loaderError: loaderError, loaderFn: doLoad }));
30
+ }
31
+ exports.MockLoaderMd = (0, ComponentDefs_1.createMetadata)({
32
+ description: "A loader that simulates a delay and returns a predefined response",
33
+ props: {
34
+ waitTime: (0, ComponentDefs_1.d)("The time to wait before returning the response"),
35
+ data: (0, ComponentDefs_1.d)("The data to return"),
36
+ },
37
+ });
38
+ exports.mockLoaderRenderer = (0, renderers_1.createLoaderRenderer)("MockLoader", ({ loader, state, loaderInProgressChanged, loaderLoaded, loaderError }) => {
39
+ return ((0, jsx_runtime_1.jsx)(ApiLoader, { loader: loader, state: state, loaderInProgressChanged: loaderInProgressChanged, loaderLoaded: loaderLoaded, loaderError: loaderError }));
40
+ }, exports.MockLoaderMd);