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,593 @@
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.evalBindingAsync = evalBindingAsync;
13
+ exports.executeArrowExpression = executeArrowExpression;
14
+ exports.isConstVar = isConstVar;
15
+ const lodash_es_1 = require("lodash-es");
16
+ const process_statement_async_1 = require("./process-statement-async");
17
+ const eval_tree_common_1 = require("./eval-tree-common");
18
+ const process_statement_common_1 = require("./process-statement-common");
19
+ const asyncProxy_1 = require("./asyncProxy");
20
+ const bannedFunctions_1 = require("./bannedFunctions");
21
+ /**
22
+ * Evaluates a binding represented by the specified expression
23
+ * @param expr Expression to evaluate
24
+ * @param evalContext Evaluation context to use
25
+ * @param thread The logical thread to use for evaluation
26
+ * @param onStatementCompleted Execute this function when a statement is completed
27
+ */
28
+ function evalBindingAsync(expr, evalContext, thread, onStatementCompleted) {
29
+ return __awaiter(this, void 0, void 0, function* () {
30
+ const thisStack = [];
31
+ (0, process_statement_common_1.ensureMainThread)(evalContext);
32
+ thread !== null && thread !== void 0 ? thread : (thread = evalContext.mainThread);
33
+ return yield evalBindingExpressionTreeAsync(thisStack, expr, evalContext, thread !== null && thread !== void 0 ? thread : evalContext.mainThread, onStatementCompleted);
34
+ });
35
+ }
36
+ /**
37
+ * Executes the specified arrow function
38
+ * @param expr Arrow function expression to run
39
+ * @param evalContext Evaluation context to use
40
+ * @param onStatementCompleted Execute this function when a statement is completed
41
+ * @param thread The logical thread to use for evaluation
42
+ * @param args Arguments of the arrow function to execute
43
+ */
44
+ function executeArrowExpression(expr, evalContext, onStatementCompleted, thread, ...args) {
45
+ return __awaiter(this, void 0, void 0, function* () {
46
+ // --- Just an extra safety check
47
+ if (expr.type !== "ArrowE") {
48
+ throw new Error("executeArrowExpression expects an 'ArrowExpression' object.");
49
+ }
50
+ // --- This is the evaluator that an arrow expression uses internally
51
+ const evaluator = evalBindingExpressionTreeAsync;
52
+ // --- Compiles the Arrow function to a JavaScript function
53
+ const nativeFunction = yield createArrowFunctionAsync(evaluator, expr);
54
+ // --- Run the compiled arrow function. Note, we have two prefix arguments:
55
+ // --- #1: The names of arrow function arguments
56
+ // --- #2: The evaluation context the arrow function runs in
57
+ // --- #others: The real arguments of the arrow function
58
+ return yield nativeFunction(expr.args, evalContext, thread !== null && thread !== void 0 ? thread : evalContext.mainThread, onStatementCompleted, ...args);
59
+ });
60
+ }
61
+ /**
62
+ * Evaluates the specified binding expression tree and retrieves the evaluated value
63
+ * @param expr Binding tree expression
64
+ * @param thisStack Stack of "this" object to use with function calls
65
+ * @param evalContext Evaluation context
66
+ * @param thread The logical thread to use for evaluation
67
+ * @param onStatementCompleted Execute this function when a statement is completed
68
+ * This code uses the JavaScript semantics and errors when evaluating the code.
69
+ * We use `thisStack` to keep track of the partial results of the evaluation tree so that we can set
70
+ * the real `this` context when invoking a function.
71
+ */
72
+ function evalBindingExpressionTreeAsync(thisStack, expr, evalContext, thread, onStatementCompleted) {
73
+ return __awaiter(this, void 0, void 0, function* () {
74
+ if (!evalContext.options) {
75
+ evalContext.options = { defaultToOptionalMemberAccess: true };
76
+ }
77
+ // --- Prepare evaluation
78
+ let customOp = null;
79
+ const evaluator = evalBindingExpressionTreeAsync;
80
+ // --- Reset the expression scope
81
+ expr.valueScope = expr.valueIndex = undefined;
82
+ // --- Process the expression according to its type
83
+ try {
84
+ switch (expr.type) {
85
+ case "TempLitE":
86
+ return evalTemplateLiteralAsync(evaluator, thisStack, expr, evalContext, thread, onStatementCompleted);
87
+ case "LitE":
88
+ return (0, eval_tree_common_1.evalLiteral)(thisStack, expr);
89
+ case "IdE":
90
+ return (0, eval_tree_common_1.evalIdentifier)(thisStack, expr, evalContext, thread);
91
+ case "MembE":
92
+ return yield evalMemberAccessAsync(evaluator, thisStack, expr, evalContext, thread, onStatementCompleted);
93
+ case "CMembE":
94
+ return yield evalCalculatedMemberAccessAsync(evaluator, thisStack, expr, evalContext, thread, onStatementCompleted);
95
+ case "SeqE":
96
+ return yield evalSequenceAsync(evaluator, thisStack, expr, evalContext, thread, onStatementCompleted);
97
+ case "ALitE":
98
+ return yield evalArrayLiteralAsync(evaluator, thisStack, expr, evalContext, thread, onStatementCompleted);
99
+ case "OLitE":
100
+ return yield evalObjectLiteralAsync(evaluator, thisStack, expr, evalContext, thread, onStatementCompleted);
101
+ case "UnaryE":
102
+ return yield evalUnaryAsync(evaluator, thisStack, customOp, expr, evalContext, thread, onStatementCompleted);
103
+ case "BinaryE":
104
+ return yield evalBinaryAsync(evaluator, thisStack, customOp, expr, evalContext, thread, onStatementCompleted);
105
+ case "CondE":
106
+ return yield evalConditionalAsync(evaluator, thisStack, expr, evalContext, thread, onStatementCompleted);
107
+ case "AsgnE":
108
+ return yield evalAssignmentAsync(evaluator, thisStack, expr, evalContext, thread, onStatementCompleted);
109
+ case "PrefE":
110
+ case "PostfE":
111
+ return yield evalPreOrPostAsync(evaluator, thisStack, expr, evalContext, thread, onStatementCompleted);
112
+ case "InvokeE":
113
+ // --- Special async handling
114
+ return yield evalFunctionInvocationAsync(evaluator, thisStack, expr, evalContext, thread, onStatementCompleted);
115
+ case "ArrowE":
116
+ return (0, eval_tree_common_1.evalArrow)(thisStack, expr, thread);
117
+ case "SpreadE":
118
+ throw new Error("Cannot use spread expression (...) with the current intermediate value.");
119
+ default:
120
+ throw new Error(`Unknown expression tree node: ${expr.type}`);
121
+ }
122
+ }
123
+ catch (e) {
124
+ //TODO decorate error with expression details (startColumn, startLine, startPosition, etc.)
125
+ throw e;
126
+ }
127
+ });
128
+ }
129
+ function evalMemberAccessAsync(evaluator, thisStack, expr, evalContext, thread, onStatementCompleted) {
130
+ return __awaiter(this, void 0, void 0, function* () {
131
+ const parentObj = yield evaluator(thisStack, expr.object, evalContext, thread, onStatementCompleted);
132
+ return (0, eval_tree_common_1.evalMemberAccessCore)(parentObj, thisStack, expr, evalContext);
133
+ });
134
+ }
135
+ function evalCalculatedMemberAccessAsync(evaluator, thisStack, expr, evalContext, thread, onStatementCompleted) {
136
+ return __awaiter(this, void 0, void 0, function* () {
137
+ const parentObj = yield evaluator(thisStack, expr.object, evalContext, thread, onStatementCompleted);
138
+ // --- At this point we definitely keep the parent object on `thisStack`, as it will be the context object
139
+ // --- of a FunctionInvocationExpression, if that follows the MemberAccess. Other operations would call
140
+ // --- `thisStack.pop()` to remove the result from the previous `evalBindingExpressionTree` call.
141
+ const memberObj = yield evaluator(thisStack, expr.member, evalContext, thread, onStatementCompleted);
142
+ thisStack.pop();
143
+ return (0, eval_tree_common_1.evalCalculatedMemberAccessCore)(parentObj, memberObj, thisStack, expr, evalContext);
144
+ });
145
+ }
146
+ function evalSequenceAsync(evaluator, thisStack, expr, evalContext, thread, onStatementCompleted) {
147
+ return __awaiter(this, void 0, void 0, function* () {
148
+ if (!expr.expressions || expr.expressions.length === 0) {
149
+ throw new Error(`Missing expression sequence`);
150
+ }
151
+ const result = expr.expressions.map((e) => __awaiter(this, void 0, void 0, function* () {
152
+ const exprValue = yield evaluator(thisStack, e, evalContext, thread, onStatementCompleted);
153
+ thisStack.pop();
154
+ return exprValue;
155
+ }));
156
+ const lastObj = result[result.length - 1];
157
+ thisStack.push(lastObj);
158
+ return lastObj;
159
+ });
160
+ }
161
+ function evalArrayLiteralAsync(evaluator, thisStack, expr, evalContext, thread, onStatementCompleted) {
162
+ return __awaiter(this, void 0, void 0, function* () {
163
+ const arrayValue = [];
164
+ for (const item of expr.items) {
165
+ if (item.type === "SpreadE") {
166
+ const spreadArray = yield evaluator(thisStack, item.operand, evalContext, thread, onStatementCompleted);
167
+ thisStack.pop();
168
+ if (!Array.isArray(spreadArray)) {
169
+ throw new Error("Spread operator within an array literal expects an array operand.");
170
+ }
171
+ arrayValue.push(...spreadArray);
172
+ }
173
+ else {
174
+ arrayValue.push(yield evaluator(thisStack, item, evalContext, thread, onStatementCompleted));
175
+ thisStack.pop();
176
+ thisStack.push(arrayValue);
177
+ }
178
+ }
179
+ return arrayValue;
180
+ });
181
+ }
182
+ function evalObjectLiteralAsync(evaluator, thisStack, expr, evalContext, thread, onStatementCompleted) {
183
+ return __awaiter(this, void 0, void 0, function* () {
184
+ const objectHash = {};
185
+ for (const prop of expr.props) {
186
+ if (!Array.isArray(prop)) {
187
+ // --- We're using a spread expression
188
+ const spreadItems = yield evaluator(thisStack, prop.operand, evalContext, thread, onStatementCompleted);
189
+ thisStack.pop();
190
+ if (Array.isArray(spreadItems)) {
191
+ // --- Spread of an array
192
+ for (let i = 0; i < spreadItems.length; i++) {
193
+ objectHash[i] = spreadItems[i];
194
+ }
195
+ }
196
+ else if (typeof spreadItems === "object") {
197
+ // --- Spread of a hash object
198
+ for (const [key, value] of Object.entries(spreadItems)) {
199
+ objectHash[key] = value;
200
+ }
201
+ }
202
+ continue;
203
+ }
204
+ // --- We're using key/[value] pairs
205
+ let key;
206
+ switch (prop[0].type) {
207
+ case "LitE":
208
+ key = prop[0].value;
209
+ break;
210
+ case "IdE":
211
+ key = prop[0].name;
212
+ break;
213
+ default:
214
+ key = yield evaluator(thisStack, prop[0], evalContext, thread, onStatementCompleted);
215
+ thisStack.pop();
216
+ break;
217
+ }
218
+ objectHash[key] = yield evaluator(thisStack, prop[1], evalContext, thread, onStatementCompleted);
219
+ thisStack.pop();
220
+ }
221
+ thisStack.push(objectHash);
222
+ return objectHash;
223
+ });
224
+ }
225
+ function evalUnaryAsync(evaluator, thisStack, customOp, expr, evalContext, thread, onStatementCompleted) {
226
+ return __awaiter(this, void 0, void 0, function* () {
227
+ const operand = yield evaluator(thisStack, expr.operand, evalContext, thread, onStatementCompleted);
228
+ thisStack.pop();
229
+ return (0, eval_tree_common_1.evalUnaryCore)(expr, operand, thisStack, customOp);
230
+ });
231
+ }
232
+ function evalBinaryAsync(evaluator, thisStack, customOp, expr, evalContext, thread, onStatementCompleted) {
233
+ return __awaiter(this, void 0, void 0, function* () {
234
+ const l = yield evaluator(thisStack, expr.left, evalContext, thread, onStatementCompleted);
235
+ thisStack.pop();
236
+ if (expr.operator === "&&" && !l) {
237
+ thisStack.push(l);
238
+ return l;
239
+ }
240
+ if (expr.operator === "||" && l) {
241
+ thisStack.push(l);
242
+ return l;
243
+ }
244
+ const r = yield evaluator(thisStack, expr.right, evalContext, thread, onStatementCompleted);
245
+ thisStack.pop();
246
+ return (0, eval_tree_common_1.evalBinaryCore)(l, r, thisStack, customOp, expr.operator);
247
+ });
248
+ }
249
+ function evalConditionalAsync(evaluator, thisStack, expr, evalContext, thread, onStatementCompleted) {
250
+ return __awaiter(this, void 0, void 0, function* () {
251
+ const condition = yield evaluator(thisStack, expr.condition, evalContext, thread, onStatementCompleted);
252
+ thisStack.pop();
253
+ return yield evaluator(thisStack, condition ? expr.consequent : expr.alternate, evalContext, thread, onStatementCompleted);
254
+ });
255
+ }
256
+ function runAssignment(evalContext, doAssignment) {
257
+ return __awaiter(this, void 0, void 0, function* () {
258
+ const updateHook = evalContext.onUpdateHook || ((updateFn) => __awaiter(this, void 0, void 0, function* () { return yield updateFn(); }));
259
+ return yield updateHook(() => __awaiter(this, void 0, void 0, function* () {
260
+ return yield doAssignment();
261
+ }));
262
+ });
263
+ }
264
+ function evalAssignmentAsync(evaluator, thisStack, expr, evalContext, thread, onStatementCompleted) {
265
+ return __awaiter(this, void 0, void 0, function* () {
266
+ return runAssignment(evalContext, () => __awaiter(this, void 0, void 0, function* () {
267
+ const leftValue = expr.leftValue;
268
+ yield evaluator(thisStack, leftValue, evalContext, thread, onStatementCompleted);
269
+ thisStack.pop();
270
+ const newValue = yield evaluator(thisStack, expr.operand, evalContext, thread, onStatementCompleted);
271
+ thisStack.pop();
272
+ return (0, eval_tree_common_1.evalAssignmentCore)(leftValue, newValue, thisStack, expr, thread);
273
+ }));
274
+ });
275
+ }
276
+ function evalPreOrPostAsync(evaluator, thisStack, expr, evalContext, thread, onStatementCompleted) {
277
+ return __awaiter(this, void 0, void 0, function* () {
278
+ return runAssignment(evalContext, () => __awaiter(this, void 0, void 0, function* () {
279
+ const operand = expr.operand;
280
+ yield evaluator(thisStack, operand, evalContext, thread, onStatementCompleted);
281
+ thisStack.pop();
282
+ return (0, eval_tree_common_1.evalPreOrPostCore)(operand, thisStack, expr, evalContext, thread);
283
+ }));
284
+ });
285
+ }
286
+ function evalFunctionInvocationAsync(evaluator, thisStack, expr, evalContext, thread, onStatementCompleted) {
287
+ return __awaiter(this, void 0, void 0, function* () {
288
+ var _a, _b, _c, _d;
289
+ let functionObj;
290
+ let implicitContextObject = null;
291
+ let hostObject;
292
+ // --- Check for contexted object
293
+ if (expr.object.type === "MembE") {
294
+ hostObject = yield evaluator(thisStack, expr.object.object, evalContext, thread, onStatementCompleted);
295
+ functionObj = (0, eval_tree_common_1.evalMemberAccessCore)(hostObject, thisStack, expr.object, evalContext);
296
+ if (expr.object.object.type === "IdE" && (hostObject === null || hostObject === void 0 ? void 0 : hostObject._SUPPORT_IMPLICIT_CONTEXT)) {
297
+ implicitContextObject = hostObject;
298
+ }
299
+ }
300
+ else {
301
+ // --- Get the object on which to invoke the function
302
+ functionObj = yield evaluator(thisStack, expr.object, evalContext, thread, onStatementCompleted);
303
+ }
304
+ thisStack.pop();
305
+ // --- Keep function arguments here, we pass it to the function later
306
+ const functionArgs = [];
307
+ // --- The functionObj may be an ArrowExpression. In this care we need to create the invokable arrow function
308
+ if (functionObj === null || functionObj === void 0 ? void 0 : functionObj._ARROW_EXPR_) {
309
+ functionArgs.push(functionObj.args, evalContext, thread, onStatementCompleted, ...expr.arguments.map((a) => (Object.assign(Object.assign({}, a), { _EXPRESSION_: true }))));
310
+ functionObj = yield createArrowFunctionAsync(evaluator, functionObj);
311
+ }
312
+ else if (expr.object.type === "ArrowE") {
313
+ // --- We delay evaluating expression values. We pass the argument names as the first parameter, and then
314
+ // --- all parameter expressions
315
+ functionArgs.push(expr.object.args.map((a) => a.name), evalContext, thread, onStatementCompleted, ...expr.arguments.map((a) => (Object.assign(Object.assign({}, a), { _EXPRESSION_: true }))));
316
+ }
317
+ else {
318
+ // --- We evaluate the argument values to pass to a JavaScript function
319
+ for (let i = 0; i < expr.arguments.length; i++) {
320
+ const arg = expr.arguments[i];
321
+ if (arg.type === "SpreadE") {
322
+ const funcArg = yield evaluator([], arg.operand, evalContext, thread, onStatementCompleted);
323
+ if (!Array.isArray(funcArg)) {
324
+ throw new Error("Spread operator within a function invocation expects an array operand.");
325
+ }
326
+ functionArgs.push(...funcArg);
327
+ }
328
+ else {
329
+ if (arg.type === "ArrowE") {
330
+ const funcArg = yield createArrowFunctionAsync(evaluator, arg);
331
+ const wrappedFunc = (...args) => __awaiter(this, void 0, void 0, function* () {
332
+ return funcArg(arg.args, evalContext, thread, onStatementCompleted, ...args);
333
+ });
334
+ functionArgs.push(wrappedFunc);
335
+ }
336
+ else {
337
+ const funcArg = yield evaluator([], arg, evalContext, thread, onStatementCompleted);
338
+ if (funcArg === null || funcArg === void 0 ? void 0 : funcArg._ARROW_EXPR_) {
339
+ const wrappedFuncArg = yield createArrowFunctionAsync(evaluator, funcArg);
340
+ const wrappedFunc = (...args) => wrappedFuncArg(funcArg.args, evalContext, thread, onStatementCompleted, ...args);
341
+ functionArgs.push(wrappedFunc);
342
+ }
343
+ else {
344
+ functionArgs.push(funcArg);
345
+ }
346
+ }
347
+ }
348
+ }
349
+ // --- We can pass implicit arguments to JavaScript function
350
+ if (implicitContextObject) {
351
+ // --- Let's obtain the implicit context
352
+ if (evalContext.implicitContextGetter) {
353
+ const implicitContext = evalContext.implicitContextGetter(implicitContextObject);
354
+ functionArgs.unshift(implicitContext);
355
+ }
356
+ else {
357
+ throw new Error("Cannot use implicitContextGetter, it is undefined");
358
+ }
359
+ }
360
+ }
361
+ // --- Check if the function is banned from running
362
+ const bannedInfo = (0, bannedFunctions_1.isBannedFunction)(functionObj);
363
+ if (bannedInfo.banned) {
364
+ throw new Error(`Function ${(_b = (_a = bannedInfo.func) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : "unknown"} is not allowed to call. ${(_c = bannedInfo === null || bannedInfo === void 0 ? void 0 : bannedInfo.help) !== null && _c !== void 0 ? _c : ""}`);
365
+ }
366
+ // --- We use context for "this"
367
+ const currentContext = thisStack.length > 0 ? thisStack.pop() : evalContext.localContext;
368
+ // --- We need to use proxies for JavaScript functions (such as Array.prototype.filter) not supporting
369
+ // --- async arguments
370
+ functionObj = (0, asyncProxy_1.getAsyncProxy)(functionObj, functionArgs, currentContext);
371
+ // --- Now, invoke the function
372
+ try {
373
+ const value = ((_d = evalContext.options) === null || _d === void 0 ? void 0 : _d.defaultToOptionalMemberAccess)
374
+ ? functionObj === null || functionObj === void 0 ? void 0 : functionObj.call(currentContext, ...functionArgs)
375
+ : functionObj.call(currentContext, ...functionArgs);
376
+ let returnValue = yield completePromise(value);
377
+ thisStack.push(returnValue);
378
+ return returnValue;
379
+ }
380
+ catch (err) {
381
+ throw err;
382
+ }
383
+ });
384
+ }
385
+ function createArrowFunctionAsync(evaluator, expr) {
386
+ return __awaiter(this, void 0, void 0, function* () {
387
+ // --- Use this function, it evaluates the arrow function
388
+ return (...args) => __awaiter(this, void 0, void 0, function* () {
389
+ var _a, _b;
390
+ // --- Prepare the variables to pass
391
+ const runTimeEvalContext = args[1];
392
+ const runtimeThread = args[2];
393
+ const runTimeOnStatementCompleted = args[3];
394
+ // --- Create the thread that runs the arrow function
395
+ const workingThread = {
396
+ parent: runtimeThread,
397
+ childThreads: [],
398
+ blocks: [{ vars: {} }],
399
+ loops: [],
400
+ breakLabelValue: -1,
401
+ closures: expr.closureContext,
402
+ };
403
+ runtimeThread.childThreads.push(workingThread);
404
+ // --- Create a block for a named arrow function
405
+ if (expr.name) {
406
+ const functionBlock = { vars: {} };
407
+ (_a = workingThread.blocks) !== null && _a !== void 0 ? _a : (workingThread.blocks = []);
408
+ workingThread.blocks.push(functionBlock);
409
+ functionBlock.vars[expr.name] = expr;
410
+ functionBlock.constVars = new Set([expr.name]);
411
+ }
412
+ // --- Assign argument values to names
413
+ const arrowBlock = { vars: {} };
414
+ (_b = workingThread.blocks) !== null && _b !== void 0 ? _b : (workingThread.blocks = []);
415
+ workingThread.blocks.push(arrowBlock);
416
+ const argSpecs = args[0];
417
+ let restFound = false;
418
+ for (let i = 0; i < argSpecs.length; i++) {
419
+ // --- Turn argument specification into processable variable declarations
420
+ const argSpec = argSpecs[i];
421
+ let decl;
422
+ switch (argSpec.type) {
423
+ case "IdE": {
424
+ decl = {
425
+ type: "VarD",
426
+ id: argSpec.name,
427
+ };
428
+ break;
429
+ }
430
+ case "Destr": {
431
+ decl = {
432
+ type: "VarD",
433
+ id: argSpec.id,
434
+ arrayDestruct: argSpec.arrayDestruct,
435
+ objectDestruct: argSpec.objectDestruct,
436
+ };
437
+ break;
438
+ }
439
+ case "SpreadE": {
440
+ restFound = true;
441
+ decl = {
442
+ type: "VarD",
443
+ id: argSpec.operand.name,
444
+ };
445
+ break;
446
+ }
447
+ default:
448
+ throw new Error("Unexpected arrow argument specification");
449
+ }
450
+ if (decl) {
451
+ if (restFound) {
452
+ // --- Get the rest of the arguments
453
+ const restArgs = args.slice(i + 4);
454
+ let argVals = [];
455
+ for (const arg of restArgs) {
456
+ if (arg === null || arg === void 0 ? void 0 : arg._EXPRESSION_) {
457
+ argVals.push(yield evaluator([], arg, runTimeEvalContext, runtimeThread, runTimeOnStatementCompleted));
458
+ }
459
+ else {
460
+ argVals.push(arg);
461
+ }
462
+ }
463
+ yield (0, process_statement_async_1.processDeclarationsAsync)(arrowBlock, runTimeEvalContext, runtimeThread, runTimeOnStatementCompleted, [decl], false, true, argVals);
464
+ }
465
+ else {
466
+ // --- Get the actual value to work with
467
+ let argVal = args[i + 4];
468
+ if (argVal === null || argVal === void 0 ? void 0 : argVal._EXPRESSION_) {
469
+ argVal = yield evaluator([], argVal, runTimeEvalContext, runtimeThread, runTimeOnStatementCompleted);
470
+ }
471
+ yield (0, process_statement_async_1.processDeclarationsAsync)(arrowBlock, runTimeEvalContext, runtimeThread, runTimeOnStatementCompleted, [decl], false, true, argVal);
472
+ }
473
+ }
474
+ }
475
+ // --- Evaluate the arrow expression body
476
+ let returnValue;
477
+ let statements;
478
+ switch (expr.statement.type) {
479
+ case "EmptyS":
480
+ statements = [];
481
+ break;
482
+ case "ExprS":
483
+ // --- Create a new thread for the call
484
+ statements = [
485
+ {
486
+ type: "RetS",
487
+ expression: expr.statement.expression,
488
+ },
489
+ ];
490
+ break;
491
+ case "BlockS":
492
+ // --- Create a new thread for the call
493
+ statements = expr.statement.statements;
494
+ break;
495
+ default:
496
+ throw new Error(`Arrow expression with a body of '${expr.statement.type}' is not supported yet.`);
497
+ }
498
+ // --- Process the statement with a new processor
499
+ yield (0, process_statement_async_1.processStatementQueueAsync)(statements, runTimeEvalContext, workingThread, runTimeOnStatementCompleted);
500
+ // --- Return value is in a return value slot
501
+ returnValue = workingThread.returnValue;
502
+ // --- Remove the current working thread
503
+ const workingIndex = runtimeThread.childThreads.indexOf(workingThread);
504
+ if (workingIndex < 0) {
505
+ throw new Error("Cannot find thread to remove.");
506
+ }
507
+ runtimeThread.childThreads.splice(workingIndex, 1);
508
+ // --- Remove the function level block
509
+ workingThread.blocks.pop();
510
+ // --- Return the function value
511
+ return returnValue;
512
+ });
513
+ });
514
+ }
515
+ // --- Completes all promises within the input
516
+ function completePromise(input) {
517
+ return __awaiter(this, void 0, void 0, function* () {
518
+ const visited = new Map();
519
+ return completePromiseInternal(input);
520
+ function completePromiseInternal(input) {
521
+ return __awaiter(this, void 0, void 0, function* () {
522
+ // --- No need to resolve undefined or null
523
+ if (input === undefined || input === null)
524
+ return input;
525
+ // --- Already visited?
526
+ const resolved = visited.get(input);
527
+ if (resolved)
528
+ return resolved;
529
+ // --- Resolve the chain of promises
530
+ if ((0, eval_tree_common_1.isPromise)(input)) {
531
+ const awaited = yield input;
532
+ visited.set(input, awaited);
533
+ return completePromiseInternal(awaited);
534
+ }
535
+ // --- In any other cases, we keep the input reference
536
+ visited.set(input, input);
537
+ // --- Resolve promises within an array
538
+ if (Array.isArray(input)) {
539
+ for (let i = 0; i < input.length; i++) {
540
+ const completedPromise = yield completePromiseInternal(input[i]);
541
+ if (input[i] !== completedPromise) {
542
+ //prevent write if it's the same reference (can cause problems in frozen objects)
543
+ input.splice(i, 1, completedPromise);
544
+ }
545
+ }
546
+ return input;
547
+ }
548
+ // --- Resolve promises in object properties
549
+ if ((0, lodash_es_1.isPlainObject)(input)) {
550
+ for (const key of Object.keys(input)) {
551
+ let completedPromise = yield completePromiseInternal(input[key]);
552
+ if (input[key] !== completedPromise) {
553
+ //prevent write if it's the same reference (can cause problems in frozen objects)
554
+ input[key] = completedPromise;
555
+ }
556
+ }
557
+ return input;
558
+ }
559
+ // --- Done.
560
+ return input;
561
+ });
562
+ }
563
+ });
564
+ }
565
+ /**
566
+ * Gets the context of the variable
567
+ * @param id Identifier to test
568
+ * @param thread Thread to use for evaluation
569
+ */
570
+ function isConstVar(id, thread) {
571
+ var _a;
572
+ // --- Start search the block context
573
+ if (thread.blocks) {
574
+ for (let idx = thread.blocks.length; idx >= 0; idx--) {
575
+ const constContext = (_a = thread.blocks[idx]) === null || _a === void 0 ? void 0 : _a.constVars;
576
+ if (constContext && constContext.has(id))
577
+ return true;
578
+ }
579
+ }
580
+ // --- Not in block context
581
+ return false;
582
+ }
583
+ function evalTemplateLiteralAsync(evaluator, thisStack, expr, evalContext, thread, onStatementCompleted) {
584
+ return __awaiter(this, void 0, void 0, function* () {
585
+ const segmentValues = new Array(expr.segments.length);
586
+ for (let i = 0; i < expr.segments.length; ++i) {
587
+ const evaledValue = yield evaluator(thisStack, expr.segments[i], evalContext, thread, onStatementCompleted);
588
+ thisStack.pop();
589
+ segmentValues[i] = (evaledValue);
590
+ }
591
+ return (0, eval_tree_common_1.evalTemplateLiteralCore)(segmentValues);
592
+ });
593
+ }