xmlui 0.4.0

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 (308) hide show
  1. package/dist/Pdf-DeGhSMXe.mjs +19537 -0
  2. package/dist/Pdf.css +1 -0
  3. package/dist/apiInterceptorWorker-CwuUhYyc.mjs +9229 -0
  4. package/dist/array-USo-Szhp.mjs +12 -0
  5. package/dist/index-C24dkfpd.mjs +1434 -0
  6. package/dist/index-ao27SnVp.mjs +145185 -0
  7. package/dist/index.css +1 -0
  8. package/dist/nivo-bar.es-CWh0ZlxB.mjs +1666 -0
  9. package/dist/nivo-geo.es-BTqNt5Db.mjs +1579 -0
  10. package/dist/nivo-legends.es-BuIxHGSU.mjs +6916 -0
  11. package/dist/nivo-pie.es-BvCBFA0L.mjs +700 -0
  12. package/dist/react-apexcharts.min-DqWuDOyO.mjs +8881 -0
  13. package/dist/scripts/bin/bootstrap.js +11 -0
  14. package/dist/scripts/bin/build.js +256 -0
  15. package/dist/scripts/bin/index.js +88 -0
  16. package/dist/scripts/bin/preview.js +27 -0
  17. package/dist/scripts/bin/start.js +41 -0
  18. package/dist/scripts/bin/vite-ueml-plugin.js +113 -0
  19. package/dist/scripts/bin/viteConfig.js +112 -0
  20. package/dist/scripts/src/abstractions/ActionDefs.js +2 -0
  21. package/dist/scripts/src/abstractions/AppContextDefs.js +2 -0
  22. package/dist/scripts/src/abstractions/BlockScope.js +4 -0
  23. package/dist/scripts/src/abstractions/ComponentDefs.js +2 -0
  24. package/dist/scripts/src/abstractions/ComponentDescriptorDefs.js +2 -0
  25. package/dist/scripts/src/abstractions/ContainerDefs.js +2 -0
  26. package/dist/scripts/src/abstractions/FunctionDefs.js +2 -0
  27. package/dist/scripts/src/abstractions/RendererDefs.js +2 -0
  28. package/dist/scripts/src/abstractions/scripting/ScriptParserError.js +2 -0
  29. package/dist/scripts/src/abstractions/scripting/ScriptingSourceTree.js +2 -0
  30. package/dist/scripts/src/abstractions/scripting/Token.js +110 -0
  31. package/dist/scripts/src/components/App/App.js +253 -0
  32. package/dist/scripts/src/components/App/AppLayoutContext.js +9 -0
  33. package/dist/scripts/src/components/App/AppStateContext.js +9 -0
  34. package/dist/scripts/src/components/App/Sheet.js +89 -0
  35. package/dist/scripts/src/components/AppHeader/AppHeader.js +121 -0
  36. package/dist/scripts/src/components/AppState/AppState.js +29 -0
  37. package/dist/scripts/src/components/Avatar/Avatar.js +81 -0
  38. package/dist/scripts/src/components/Badge/Badge.js +56 -0
  39. package/dist/scripts/src/components/BarChart/BarChart.js +199 -0
  40. package/dist/scripts/src/components/Bookmark/Bookmark.js +11 -0
  41. package/dist/scripts/src/components/Button/Button.js +196 -0
  42. package/dist/scripts/src/components/Card/Card.js +65 -0
  43. package/dist/scripts/src/components/ChangeListener/ChangeListener.js +43 -0
  44. package/dist/scripts/src/components/Chart/Chart.js +158 -0
  45. package/dist/scripts/src/components/Checkbox/Checkbox.js +43 -0
  46. package/dist/scripts/src/components/Combobox/Combobox.js +145 -0
  47. package/dist/scripts/src/components/ComponentProvider.js +357 -0
  48. package/dist/scripts/src/components/ContentSeparator/ContentSeparator.js +40 -0
  49. package/dist/scripts/src/components/DatePicker/DatePicker.js +196 -0
  50. package/dist/scripts/src/components/DropdownMenu/DropdownMenu.js +175 -0
  51. package/dist/scripts/src/components/EmojiSelector/EmojiSelector.js +56 -0
  52. package/dist/scripts/src/components/FileInput/FileInput.js +127 -0
  53. package/dist/scripts/src/components/FileUploadDropZone/FileUploadDropZone.js +106 -0
  54. package/dist/scripts/src/components/FlowLayout/FlowLayout.js +139 -0
  55. package/dist/scripts/src/components/Footer/Footer.js +42 -0
  56. package/dist/scripts/src/components/Form/Form.js +320 -0
  57. package/dist/scripts/src/components/Form/FormContext.js +9 -0
  58. package/dist/scripts/src/components/Form/formActions.js +86 -0
  59. package/dist/scripts/src/components/FormItem/FormItem.js +204 -0
  60. package/dist/scripts/src/components/FormItem/HelperText.js +27 -0
  61. package/dist/scripts/src/components/FormItem/ItemWithLabel.js +39 -0
  62. package/dist/scripts/src/components/FormItem/Validations.js +346 -0
  63. package/dist/scripts/src/components/FormSection/FormSection.js +45 -0
  64. package/dist/scripts/src/components/Heading/Heading.js +206 -0
  65. package/dist/scripts/src/components/HoverCard/HoverCard.js +45 -0
  66. package/dist/scripts/src/components/Icon/ApiIcon.js +10 -0
  67. package/dist/scripts/src/components/Icon/Attach.js +10 -0
  68. package/dist/scripts/src/components/Icon/Binding.js +11 -0
  69. package/dist/scripts/src/components/Icon/BoardIcon.js +7 -0
  70. package/dist/scripts/src/components/Icon/BoxIcon.js +10 -0
  71. package/dist/scripts/src/components/Icon/CheckIcon.js +7 -0
  72. package/dist/scripts/src/components/Icon/ChevronDownIcon.js +7 -0
  73. package/dist/scripts/src/components/Icon/ChevronLeft.js +7 -0
  74. package/dist/scripts/src/components/Icon/ChevronRight.js +7 -0
  75. package/dist/scripts/src/components/Icon/ChevronUpIcon.js +7 -0
  76. package/dist/scripts/src/components/Icon/CodeFileIcon.js +10 -0
  77. package/dist/scripts/src/components/Icon/CodeSandbox.js +10 -0
  78. package/dist/scripts/src/components/Icon/CompactListIcon.js +7 -0
  79. package/dist/scripts/src/components/Icon/ContentCopyIcon.js +7 -0
  80. package/dist/scripts/src/components/Icon/DatabaseIcon.js +11 -0
  81. package/dist/scripts/src/components/Icon/DocFileIcon.js +10 -0
  82. package/dist/scripts/src/components/Icon/DocIcon.js +10 -0
  83. package/dist/scripts/src/components/Icon/DotMenuHorizontalIcon.js +7 -0
  84. package/dist/scripts/src/components/Icon/DotMenuIcon.js +7 -0
  85. package/dist/scripts/src/components/Icon/EmailIcon.js +7 -0
  86. package/dist/scripts/src/components/Icon/EmptyFolderIcon.js +10 -0
  87. package/dist/scripts/src/components/Icon/ErrorIcon.js +7 -0
  88. package/dist/scripts/src/components/Icon/ExpressionIcon.js +10 -0
  89. package/dist/scripts/src/components/Icon/FillPlusCricleIcon.js +7 -0
  90. package/dist/scripts/src/components/Icon/FilterIcon.js +10 -0
  91. package/dist/scripts/src/components/Icon/FolderIcon.js +10 -0
  92. package/dist/scripts/src/components/Icon/GlobeIcon.js +7 -0
  93. package/dist/scripts/src/components/Icon/HomeIcon.js +7 -0
  94. package/dist/scripts/src/components/Icon/HyperLinkIcon.js +7 -0
  95. package/dist/scripts/src/components/Icon/Icon.js +101 -0
  96. package/dist/scripts/src/components/Icon/ImageFileIcon.js +10 -0
  97. package/dist/scripts/src/components/Icon/LinkIcon.js +7 -0
  98. package/dist/scripts/src/components/Icon/ListIcon.js +7 -0
  99. package/dist/scripts/src/components/Icon/LooseListIcon.js +7 -0
  100. package/dist/scripts/src/components/Icon/MoonIcon.js +10 -0
  101. package/dist/scripts/src/components/Icon/MoreOptionsIcon.js +7 -0
  102. package/dist/scripts/src/components/Icon/PDFIcon.js +10 -0
  103. package/dist/scripts/src/components/Icon/PenIcon.js +7 -0
  104. package/dist/scripts/src/components/Icon/PhoneIcon.js +7 -0
  105. package/dist/scripts/src/components/Icon/PhotoIcon.js +10 -0
  106. package/dist/scripts/src/components/Icon/PlusIcon.js +7 -0
  107. package/dist/scripts/src/components/Icon/SearchIcon.js +7 -0
  108. package/dist/scripts/src/components/Icon/ShareIcon.js +10 -0
  109. package/dist/scripts/src/components/Icon/SunIcon.js +10 -0
  110. package/dist/scripts/src/components/Icon/TrashIcon.js +7 -0
  111. package/dist/scripts/src/components/Icon/TxtIcon.js +10 -0
  112. package/dist/scripts/src/components/Icon/UnknownFileIcon.js +10 -0
  113. package/dist/scripts/src/components/Icon/UnlinkIcon.js +10 -0
  114. package/dist/scripts/src/components/Icon/UserIcon.js +7 -0
  115. package/dist/scripts/src/components/Icon/WarningIcon.js +7 -0
  116. package/dist/scripts/src/components/Icon/XlsIcon.js +10 -0
  117. package/dist/scripts/src/components/IconProvider.js +249 -0
  118. package/dist/scripts/src/components/IconRegistryContext.js +307 -0
  119. package/dist/scripts/src/components/Image/Image.js +34 -0
  120. package/dist/scripts/src/components/Input/InputAdornment.js +14 -0
  121. package/dist/scripts/src/components/Input/input-abstractions.js +44 -0
  122. package/dist/scripts/src/components/Items/Items.js +48 -0
  123. package/dist/scripts/src/components/Link/Link.js +72 -0
  124. package/dist/scripts/src/components/List/List.js +442 -0
  125. package/dist/scripts/src/components/Logo/Logo.js +25 -0
  126. package/dist/scripts/src/components/Map/Map.js +60 -0
  127. package/dist/scripts/src/components/Map/world_countries.json +45307 -0
  128. package/dist/scripts/src/components/Markdown/Markdown.js +120 -0
  129. package/dist/scripts/src/components/ModalDialog/ConfirmationModalContextProvider.js +106 -0
  130. package/dist/scripts/src/components/ModalDialog/Dialog.js +20 -0
  131. package/dist/scripts/src/components/ModalDialog/ModalDialog.js +145 -0
  132. package/dist/scripts/src/components/MultiCombobox/MultiCombobox.js +249 -0
  133. package/dist/scripts/src/components/MultiSelect/MultiSelect.js +192 -0
  134. package/dist/scripts/src/components/NavGroup/NavGroup.js +113 -0
  135. package/dist/scripts/src/components/NavLink/NavLink.js +115 -0
  136. package/dist/scripts/src/components/NavPanel/NavPanel.js +101 -0
  137. package/dist/scripts/src/components/NoResult/NoResult.js +39 -0
  138. package/dist/scripts/src/components/NumberBox/NumberBox.js +373 -0
  139. package/dist/scripts/src/components/Option/Option.js +41 -0
  140. package/dist/scripts/src/components/PageMetaTitle/PageMetaTitle.js +22 -0
  141. package/dist/scripts/src/components/Pages/Pages.js +74 -0
  142. package/dist/scripts/src/components/Pdf/LazyPdf.js +44 -0
  143. package/dist/scripts/src/components/Pdf/Pdf.js +19 -0
  144. package/dist/scripts/src/components/PieChart/PieChart.js +184 -0
  145. package/dist/scripts/src/components/PositionedContainer/PositionedContainer.js +29 -0
  146. package/dist/scripts/src/components/ProgressBar/ProgressBar.js +38 -0
  147. package/dist/scripts/src/components/Queue/Queue.js +286 -0
  148. package/dist/scripts/src/components/Queue/queueActions.js +87 -0
  149. package/dist/scripts/src/components/RadioGroup/RadioGroup.js +144 -0
  150. package/dist/scripts/src/components/RealTimeAdapter/RealTimeAdapter.js +147 -0
  151. package/dist/scripts/src/components/Redirect/Redirect.js +10 -0
  152. package/dist/scripts/src/components/Select/Select.js +139 -0
  153. package/dist/scripts/src/components/Select/SelectContext.js +45 -0
  154. package/dist/scripts/src/components/SelectionStore/SelectionStore.js +88 -0
  155. package/dist/scripts/src/components/SpaceFiller/SpaceFiller.js +22 -0
  156. package/dist/scripts/src/components/Spinner/Spinner.js +59 -0
  157. package/dist/scripts/src/components/Splitter/Splitter.js +205 -0
  158. package/dist/scripts/src/components/Splitter/utils.js +17 -0
  159. package/dist/scripts/src/components/Stack/Stack.js +117 -0
  160. package/dist/scripts/src/components/StickyBox/StickyBox.js +33 -0
  161. package/dist/scripts/src/components/Switch/Switch.js +50 -0
  162. package/dist/scripts/src/components/Table/Table.js +499 -0
  163. package/dist/scripts/src/components/Table/useRowSelection.js +169 -0
  164. package/dist/scripts/src/components/TableColumnDef/TableColumnDef.js +44 -0
  165. package/dist/scripts/src/components/TableColumnDef/TableContext.js +12 -0
  166. package/dist/scripts/src/components/Tabs/Tabs.js +85 -0
  167. package/dist/scripts/src/components/Text/Text.js +175 -0
  168. package/dist/scripts/src/components/TextArea/TextArea.js +194 -0
  169. package/dist/scripts/src/components/TextArea/TextAreaResizable.js +63 -0
  170. package/dist/scripts/src/components/TextArea/useComposedRef.js +50 -0
  171. package/dist/scripts/src/components/TextBox/TextBox.js +145 -0
  172. package/dist/scripts/src/components/Theme/NotificationToast.js +39 -0
  173. package/dist/scripts/src/components/Theme/Theme.js +153 -0
  174. package/dist/scripts/src/components/ThemeChanger/ThemeChanger.js +125 -0
  175. package/dist/scripts/src/components/Toggle/Toggle.js +88 -0
  176. package/dist/scripts/src/components/Tree/TreeComponent.js +79 -0
  177. package/dist/scripts/src/components/ValidationSummary/ValidationSummary.js +59 -0
  178. package/dist/scripts/src/components/ViewComponentRegistryContext.js +34 -0
  179. package/dist/scripts/src/components/abstractions.js +2 -0
  180. package/dist/scripts/src/components/chart-color-schemes.js +43 -0
  181. package/dist/scripts/src/components/component-utils.js +32 -0
  182. package/dist/scripts/src/components/container-helpers.js +18 -0
  183. package/dist/scripts/src/components-core/ApiBoundComponent.js +189 -0
  184. package/dist/scripts/src/components-core/AppContext.js +17 -0
  185. package/dist/scripts/src/components-core/ChildrenSlot.js +10 -0
  186. package/dist/scripts/src/components-core/Component.js +280 -0
  187. package/dist/scripts/src/components-core/ComponentDecorator.js +63 -0
  188. package/dist/scripts/src/components-core/CompoundComponent.js +132 -0
  189. package/dist/scripts/src/components-core/EngineError.js +91 -0
  190. package/dist/scripts/src/components-core/ErrorBoundary.js +58 -0
  191. package/dist/scripts/src/components-core/Fragment.js +14 -0
  192. package/dist/scripts/src/components-core/InvalidComponent.js +15 -0
  193. package/dist/scripts/src/components-core/LoaderComponent.js +78 -0
  194. package/dist/scripts/src/components-core/RestApiProxy.js +341 -0
  195. package/dist/scripts/src/components-core/RootComponent.js +272 -0
  196. package/dist/scripts/src/components-core/RouteContext.js +45 -0
  197. package/dist/scripts/src/components-core/ScrollContext.js +9 -0
  198. package/dist/scripts/src/components-core/UnknownComponent.js +15 -0
  199. package/dist/scripts/src/components-core/abstractions/ComponentRenderer.js +2 -0
  200. package/dist/scripts/src/components-core/abstractions/LoaderRenderer.js +2 -0
  201. package/dist/scripts/src/components-core/abstractions/containers.js +18 -0
  202. package/dist/scripts/src/components-core/abstractions/treeAbstractions.js +2 -0
  203. package/dist/scripts/src/components-core/action/ApiAction.js +276 -0
  204. package/dist/scripts/src/components-core/action/DownloadFileAction.js +80 -0
  205. package/dist/scripts/src/components-core/action/NavigateAction.js +20 -0
  206. package/dist/scripts/src/components-core/action/TimedAction.js +21 -0
  207. package/dist/scripts/src/components-core/action/UploadAction.js +88 -0
  208. package/dist/scripts/src/components-core/action/actions.js +15 -0
  209. package/dist/scripts/src/components-core/appContext/date-functions.js +19 -0
  210. package/dist/scripts/src/components-core/appContext/misc-utils.js +12 -0
  211. package/dist/scripts/src/components-core/component-hooks.js +25 -0
  212. package/dist/scripts/src/components-core/constants.js +18 -0
  213. package/dist/scripts/src/components-core/container/Container.js +1110 -0
  214. package/dist/scripts/src/components-core/container/ContainerComponentDef.js +16 -0
  215. package/dist/scripts/src/components-core/container/buildProxy.js +54 -0
  216. package/dist/scripts/src/components-core/container/collectFnVarDeps.js +26 -0
  217. package/dist/scripts/src/components-core/container/valueExtractor.js +195 -0
  218. package/dist/scripts/src/components-core/descriptorHelper.js +75 -0
  219. package/dist/scripts/src/components-core/interception/abstractions.js +2 -0
  220. package/dist/scripts/src/components-core/interception/useApiInterceptorContext.js +9 -0
  221. package/dist/scripts/src/components-core/loader/ApiLoader.js +46 -0
  222. package/dist/scripts/src/components-core/loader/DataLoader.js +160 -0
  223. package/dist/scripts/src/components-core/loader/ExternalDataLoader.js +52 -0
  224. package/dist/scripts/src/components-core/loader/Loader.js +115 -0
  225. package/dist/scripts/src/components-core/loader/MockLoaderRenderer.js +32 -0
  226. package/dist/scripts/src/components-core/loader/PageableLoader.js +240 -0
  227. package/dist/scripts/src/components-core/renderers.js +45 -0
  228. package/dist/scripts/src/components-core/reportEngineError.js +59 -0
  229. package/dist/scripts/src/components-core/script-runner/BindingTreeEvaluationContext.js +35 -0
  230. package/dist/scripts/src/components-core/script-runner/ICustomOperations.js +34 -0
  231. package/dist/scripts/src/components-core/script-runner/LogicalThread.js +2 -0
  232. package/dist/scripts/src/components-core/script-runner/LoopScope.js +2 -0
  233. package/dist/scripts/src/components-core/script-runner/ParameterParser.js +117 -0
  234. package/dist/scripts/src/components-core/script-runner/TryScope.js +2 -0
  235. package/dist/scripts/src/components-core/script-runner/asyncProxy.js +96 -0
  236. package/dist/scripts/src/components-core/script-runner/bannedFunctions.js +34 -0
  237. package/dist/scripts/src/components-core/script-runner/custom-operations-registry.js +40 -0
  238. package/dist/scripts/src/components-core/script-runner/custom-ui-data.js +40 -0
  239. package/dist/scripts/src/components-core/script-runner/eval-tree-async.js +551 -0
  240. package/dist/scripts/src/components-core/script-runner/eval-tree-common.js +498 -0
  241. package/dist/scripts/src/components-core/script-runner/eval-tree-sync.js +434 -0
  242. package/dist/scripts/src/components-core/script-runner/modules.js +250 -0
  243. package/dist/scripts/src/components-core/script-runner/process-statement-async.js +818 -0
  244. package/dist/scripts/src/components-core/script-runner/process-statement-common.js +193 -0
  245. package/dist/scripts/src/components-core/script-runner/process-statement-sync.js +740 -0
  246. package/dist/scripts/src/components-core/script-runner/statement-queue.js +62 -0
  247. package/dist/scripts/src/components-core/script-runner/visitors.js +352 -0
  248. package/dist/scripts/src/components-core/theming/ThemeContext.js +43 -0
  249. package/dist/scripts/src/components-core/theming/ThemeProvider.js +334 -0
  250. package/dist/scripts/src/components-core/theming/abstractions.js +11 -0
  251. package/dist/scripts/src/components-core/theming/extendThemeUtils.js +114 -0
  252. package/dist/scripts/src/components-core/theming/hvar.js +105 -0
  253. package/dist/scripts/src/components-core/theming/themeVars.js +62 -0
  254. package/dist/scripts/src/components-core/theming/themes/base-utils.js +31 -0
  255. package/dist/scripts/src/components-core/theming/themes/palette.js +53 -0
  256. package/dist/scripts/src/components-core/theming/themes/root.js +257 -0
  257. package/dist/scripts/src/components-core/theming/themes/solid.js +16 -0
  258. package/dist/scripts/src/components-core/theming/themes/theme-colors.js +407 -0
  259. package/dist/scripts/src/components-core/theming/themes/xmlui.js +32 -0
  260. package/dist/scripts/src/components-core/theming/transformThemeVars.js +286 -0
  261. package/dist/scripts/src/components-core/utils/DataLoaderQueryKeyGenerator.js +34 -0
  262. package/dist/scripts/src/components-core/utils/LruCache.js +184 -0
  263. package/dist/scripts/src/components-core/utils/actionUtils.js +32 -0
  264. package/dist/scripts/src/components-core/utils/classnames.js +58 -0
  265. package/dist/scripts/src/components-core/utils/css-utils.js +127 -0
  266. package/dist/scripts/src/components-core/utils/date-utils.js +78 -0
  267. package/dist/scripts/src/components-core/utils/extractParam.js +148 -0
  268. package/dist/scripts/src/components-core/utils/hooks.js +221 -0
  269. package/dist/scripts/src/components-core/utils/mergeProps.js +45 -0
  270. package/dist/scripts/src/components-core/utils/misc.js +460 -0
  271. package/dist/scripts/src/components-core/utils/statementUtils.js +205 -0
  272. package/dist/scripts/src/components-core/utils/treeUtils.js +48 -0
  273. package/dist/scripts/src/components-core/xmlui-parser.js +52 -0
  274. package/dist/scripts/src/parsers/scripting/InputStream.js +59 -0
  275. package/dist/scripts/src/parsers/scripting/Lexer.js +1028 -0
  276. package/dist/scripts/src/parsers/scripting/Parser.js +2647 -0
  277. package/dist/scripts/src/parsers/scripting/ParserError.js +46 -0
  278. package/dist/scripts/src/parsers/scripting/TokenTrait.js +109 -0
  279. package/dist/scripts/src/parsers/scripting/code-behind-collect.js +118 -0
  280. package/dist/scripts/src/parsers/scripting/tree-visitor.js +602 -0
  281. package/dist/scripts/src/parsers/style-parser/StyleInputStream.js +39 -0
  282. package/dist/scripts/src/parsers/style-parser/StyleLexer.js +621 -0
  283. package/dist/scripts/src/parsers/style-parser/StyleParser.js +1000 -0
  284. package/dist/scripts/src/parsers/style-parser/errors.js +37 -0
  285. package/dist/scripts/src/parsers/style-parser/source-tree.js +2 -0
  286. package/dist/scripts/src/parsers/style-parser/style-compiler.js +513 -0
  287. package/dist/scripts/src/parsers/style-parser/tokens.js +42 -0
  288. package/dist/scripts/src/parsers/ueml/ParserError.js +54 -0
  289. package/dist/scripts/src/parsers/ueml/UemlHelper.js +579 -0
  290. package/dist/scripts/src/parsers/ueml/UemlInputStream.js +59 -0
  291. package/dist/scripts/src/parsers/ueml/UemlLexer.js +868 -0
  292. package/dist/scripts/src/parsers/ueml/UemlParser.js +1439 -0
  293. package/dist/scripts/src/parsers/ueml/UemlToken.js +24 -0
  294. package/dist/scripts/src/parsers/ueml/fileExtensions.js +6 -0
  295. package/dist/scripts/src/parsers/ueml/source-tree.js +2 -0
  296. package/dist/scripts/src/parsers/ueml/ueml-tree.js +2 -0
  297. package/dist/scripts/src/parsers/xmlui-parser/CharacterCodes.js +136 -0
  298. package/dist/scripts/src/parsers/xmlui-parser/diagnostics.js +100 -0
  299. package/dist/scripts/src/parsers/xmlui-parser/parser.js +476 -0
  300. package/dist/scripts/src/parsers/xmlui-parser/scanner.js +415 -0
  301. package/dist/scripts/src/parsers/xmlui-parser/syntax-kind.js +106 -0
  302. package/dist/scripts/src/parsers/xmlui-parser/syntax-node.js +2 -0
  303. package/dist/scripts/src/parsers/xmlui-parser/transform.js +922 -0
  304. package/dist/scripts/src/parsers/xmlui-parser/utils.js +83 -0
  305. package/dist/xmlui.es.d.ts +1667 -0
  306. package/dist/xmlui.es.js +17 -0
  307. package/dist/xmlui.umd.js +1589 -0
  308. package/package.json +175 -0
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.inputComponentEventDescriptors = exports.inputComponentPropertyDescriptors = exports.inputViewPropertyDescriptors = void 0;
4
+ const descriptorHelper_1 = require("@components-core/descriptorHelper");
5
+ // Use these property descriptor in concrete input view component metadata
6
+ exports.inputViewPropertyDescriptors = {
7
+ placeholder: (0, descriptorHelper_1.desc)("Placeholder text to sign the input is empty"),
8
+ initialValue: (0, descriptorHelper_1.desc)("The initial value to display"),
9
+ maxLength: (0, descriptorHelper_1.desc)("The maximum length of the input text"),
10
+ autoFocus: (0, descriptorHelper_1.desc)("Should the component be automatically focused?"),
11
+ helperText: (0, descriptorHelper_1.desc)("Helper text to display with the component"),
12
+ required: (0, descriptorHelper_1.desc)("Is the component value required (use for indication)?"),
13
+ label: (0, descriptorHelper_1.desc)("Optional label to display"),
14
+ readOnly: (0, descriptorHelper_1.desc)("Is the component read-only?"),
15
+ allowCopy: (0, descriptorHelper_1.desc)("Allow copying the component value to the clipboard?"),
16
+ validators: (0, descriptorHelper_1.desc)("Optional list of validators to check the component's value"),
17
+ enabled: (0, descriptorHelper_1.desc)("Is the component enabled?"),
18
+ hideHelperText: (0, descriptorHelper_1.desc)("Indicate that the component should hide its helper text"),
19
+ status: (0, descriptorHelper_1.desc)("The validation status of the component"),
20
+ };
21
+ // --- Use these property descriptor in concrete input view component metadata
22
+ exports.inputComponentPropertyDescriptors = {
23
+ placeholder: (0, descriptorHelper_1.desc)("Placeholder text to sign the input is empty"),
24
+ value: (0, descriptorHelper_1.desc)("The current value to display"),
25
+ initialValue: (0, descriptorHelper_1.desc)("The initial value to display"),
26
+ labelId: (0, descriptorHelper_1.desc)("ID of the label attached to this input"),
27
+ maxLength: (0, descriptorHelper_1.desc)("The maximum length of the input text"),
28
+ autoFocus: (0, descriptorHelper_1.desc)("Should the component be automatically focused?"),
29
+ required: (0, descriptorHelper_1.desc)("Is the component value required (use for indication)?"),
30
+ readOnly: (0, descriptorHelper_1.desc)("Is the component read-only?"),
31
+ allowCopy: (0, descriptorHelper_1.desc)("Allow copying the component value to the clipboard?"),
32
+ enabled: (0, descriptorHelper_1.desc)("Is the component enabled?"),
33
+ validationStatus: (0, descriptorHelper_1.desc)("The validation status of the component"),
34
+ // --- Adornment props
35
+ startText: (0, descriptorHelper_1.desc)("Text rendered at the start of the input"),
36
+ startIcon: (0, descriptorHelper_1.desc)("Icon rendered at the start of the input"),
37
+ endText: (0, descriptorHelper_1.desc)("Text rendered at the end of the input"),
38
+ endIcon: (0, descriptorHelper_1.desc)("Icon rendered at the end of the input"),
39
+ };
40
+ exports.inputComponentEventDescriptors = {
41
+ change: (0, descriptorHelper_1.desc)("Triggered when the input value changes"),
42
+ gotFocus: (0, descriptorHelper_1.desc)("Triggered when the input gains focus"),
43
+ lostFocus: (0, descriptorHelper_1.desc)("triggered when the input has lost focus"),
44
+ };
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.itemsComponentRenderer = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const container_helpers_1 = require("../container-helpers");
7
+ const lodash_es_1 = require("lodash-es");
8
+ const renderers_1 = require("@components-core/renderers");
9
+ // =====================================================================================================================
10
+ // React Items component implementation
11
+ function Items({ items, renderItem, reverse = false, }) {
12
+ const itemsToRender = (0, react_1.useMemo)(() => {
13
+ if (!items) {
14
+ return [];
15
+ }
16
+ let normalizedItems = items;
17
+ if ((0, lodash_es_1.isPlainObject)(items)) {
18
+ normalizedItems = Object.values(items);
19
+ }
20
+ return reverse ? [...normalizedItems].reverse() : normalizedItems;
21
+ }, [items, reverse]);
22
+ if (!itemsToRender) {
23
+ return null;
24
+ }
25
+ return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: itemsToRender.map((item, index) => renderItem({
26
+ $item: item,
27
+ $itemIndex: index,
28
+ $isFirst: index === 0,
29
+ $isLast: index === itemsToRender.length - 1
30
+ }, index)) });
31
+ }
32
+ const metadata = {
33
+ displayName: "Items",
34
+ description: "A component displaying a list of items",
35
+ props: {
36
+ itemTemplate: {
37
+ description: "The component template to display a single item",
38
+ valueType: "ComponentDef",
39
+ },
40
+ },
41
+ opaque: true,
42
+ };
43
+ exports.itemsComponentRenderer = (0, renderers_1.createComponentRenderer)("Items", (rendererContext) => {
44
+ const { node, renderChild, extractValue, layoutContext } = rendererContext;
45
+ return ((0, jsx_runtime_1.jsx)(Items, { items: extractValue(node.props.items) || extractValue(node.props.data), reverse: extractValue(node.props.reverse), renderItem: (contextVars, key) => {
46
+ return ((0, jsx_runtime_1.jsx)(container_helpers_1.MemoizedItem, { contextVars: contextVars, node: node.children || node.props.itemTemplate, renderChild: renderChild, layoutContext: layoutContext }, key));
47
+ } }));
48
+ }, metadata);
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.localLinkComponentRenderer = exports.LocalLink = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const react_1 = require("@remix-run/react");
9
+ const react_2 = require("react");
10
+ const Link_module_scss_1 = __importDefault(require("./Link.module.scss"));
11
+ const classnames_1 = __importDefault(require("@components-core/utils/classnames"));
12
+ const Icon_1 = require("@components/Icon/Icon");
13
+ const renderers_1 = require("@components-core/renderers");
14
+ const themeVars_1 = require("@components-core/theming/themeVars");
15
+ const descriptorHelper_1 = require("@components-core/descriptorHelper");
16
+ const component_utils_1 = require("@components/component-utils");
17
+ const LocalLink = ({ to, children, icon, active, onClick, target, disabled, style }) => {
18
+ const iconLink = !!icon && !children;
19
+ const smartTo = (0, react_2.useMemo)(() => {
20
+ return (0, component_utils_1.createUrlWithQueryParams)(to);
21
+ }, [to]);
22
+ const Node = !to ? "div" : react_1.Link;
23
+ return ((0, jsx_runtime_1.jsxs)(Node, { to: smartTo, style: style, target: target, onClick: onClick, className: (0, classnames_1.default)(Link_module_scss_1.default.container, {
24
+ [Link_module_scss_1.default.iconLink]: iconLink,
25
+ [Link_module_scss_1.default.active]: active,
26
+ [Link_module_scss_1.default.disabled]: disabled,
27
+ }), children: [icon && ((0, jsx_runtime_1.jsx)("div", { className: Link_module_scss_1.default.iconWrapper, children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: icon }) })), (0, jsx_runtime_1.jsx)("span", { className: (0, classnames_1.default)(Link_module_scss_1.default.inner, Link_module_scss_1.default.actions), children: children })] }));
28
+ };
29
+ exports.LocalLink = LocalLink;
30
+ const metadata = {
31
+ displayName: "Link",
32
+ description: "Represents a local link the user can use to navigate within the application",
33
+ props: {
34
+ to: (0, descriptorHelper_1.desc)("The target URL"),
35
+ enabled: (0, descriptorHelper_1.desc)("Is the link enabled?"),
36
+ active: (0, descriptorHelper_1.desc)("Indicates if the link is active"),
37
+ target: (0, descriptorHelper_1.desc)("the target type of the link: '_self', '_blank', '_parent', '_top'"),
38
+ label: (0, descriptorHelper_1.desc)("Optional text label for the component, indicates hover and active states"),
39
+ icon: (0, descriptorHelper_1.desc)("Optional icon for the component, indicates hover and active states"),
40
+ },
41
+ themeVars: (0, themeVars_1.parseScssVar)(Link_module_scss_1.default.themeVars),
42
+ defaultThemeVars: {
43
+ "color-text-Link--hover--active": "$color-text-Link--active",
44
+ "color-text-decoration-Link--hover": "$color-surface-400A80",
45
+ "color-text-decoration-Link--active": "$color-surface200",
46
+ "font-weight-Link--active": "$font-weight-bold",
47
+ "color-decoration-Link": "$color-surface-400",
48
+ "offset-decoration-Link": "$space-1",
49
+ "line-decoration-Link": "underline",
50
+ "style-decoration-Link": "dashed",
51
+ "thickness-decoration-Link": "$space-0_5",
52
+ "color-outline-Link--focus": "$color-outline--focus",
53
+ "thickness-outline-Link--focus": "$thickness-outline--focus",
54
+ "style-outline-Link--focus": "$style-outline--focus",
55
+ "offset-outline-Link--focus": "$offset-outline--focus",
56
+ light: {
57
+ "color-text-Link": "$color-surface-950",
58
+ "color-text-Link--active": "$color-primary-700",
59
+ },
60
+ dark: {
61
+ "color-text-Link": "$color-surface-50",
62
+ "color-text-Link--active": "$color-primary-300",
63
+ },
64
+ },
65
+ };
66
+ /**
67
+ * This function define the renderer for the Limk component.
68
+ */
69
+ exports.localLinkComponentRenderer = (0, renderers_1.createComponentRenderer)("Link", ({ node, extractValue, lookupEventHandler, renderChild, layoutCss }) => {
70
+ var _a, _b;
71
+ return ((0, jsx_runtime_1.jsx)(exports.LocalLink, { to: extractValue(node.props.to), icon: extractValue(node.props.icon), active: extractValue.asOptionalBoolean(node.props.active, false), target: extractValue((_a = node.props) === null || _a === void 0 ? void 0 : _a.target), style: layoutCss, disabled: !extractValue.asOptionalBoolean((_b = node.props.enabled) !== null && _b !== void 0 ? _b : true), children: node.props.label ? extractValue.asDisplayText(node.props.label) : renderChild(node.children) }));
72
+ }, metadata);
@@ -0,0 +1,442 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.dynamicHeightListComponentRenderer = exports.metadata = void 0;
39
+ exports.useListData = useListData;
40
+ const jsx_runtime_1 = require("react/jsx-runtime");
41
+ const react_1 = require("react");
42
+ const react_2 = __importStar(require("react"));
43
+ const react_virtual_1 = require("@tanstack/react-virtual");
44
+ const List_module_scss_1 = __importDefault(require("./List.module.scss"));
45
+ const lodash_es_1 = require("lodash-es");
46
+ const container_helpers_1 = require("@components/container-helpers");
47
+ const renderers_1 = require("@components-core/renderers");
48
+ const constants_1 = require("@components-core/constants");
49
+ const ScrollContext_1 = require("@components-core/ScrollContext");
50
+ const themeVars_1 = require("@components-core/theming/themeVars");
51
+ const descriptorHelper_1 = require("@components-core/descriptorHelper");
52
+ const react_compose_refs_1 = require("@radix-ui/react-compose-refs");
53
+ const Card_1 = require("@components/Card/Card");
54
+ const Text_1 = require("@components/Text/Text");
55
+ const Spinner_1 = require("@components/Spinner/Spinner");
56
+ const hooks_1 = require("@components-core/utils/hooks");
57
+ const ListContext = react_2.default.createContext({
58
+ isExpanded: (id) => false,
59
+ toggleExpanded: (id, isExpanded) => { },
60
+ });
61
+ const Item = ({ children, onHeightChanged, rowIndex, itemType }) => {
62
+ const ref = (0, react_2.useRef)(null);
63
+ (0, hooks_1.useResizeObserver)(ref, (0, react_2.useCallback)((entries) => {
64
+ onHeightChanged === null || onHeightChanged === void 0 ? void 0 : onHeightChanged(ref.current);
65
+ }, [onHeightChanged]));
66
+ return ((0, jsx_runtime_1.jsx)("div", { ref: (divElement) => {
67
+ onHeightChanged === null || onHeightChanged === void 0 ? void 0 : onHeightChanged(divElement);
68
+ ref.current = divElement;
69
+ }, "data-list-item-type": itemType, "data-index": rowIndex, children: children }));
70
+ };
71
+ var RowType;
72
+ (function (RowType) {
73
+ RowType["SECTION"] = "SECTION";
74
+ RowType["SECTION_FOOTER"] = "SECTION_FOOTER";
75
+ RowType["ITEM"] = "ITEM";
76
+ })(RowType || (RowType = {}));
77
+ function useListData({ sectionsInitiallyExpanded = true, expanded = constants_1.EMPTY_OBJECT, items, limit, sectionBy, orderBy, availableSections, defaultSections = constants_1.EMPTY_ARRAY, }) {
78
+ const sortedItems = (0, react_2.useMemo)(() => {
79
+ if (!orderBy) {
80
+ return items;
81
+ }
82
+ let arrayOrderBy = orderBy;
83
+ if (!Array.isArray(orderBy)) {
84
+ arrayOrderBy = [orderBy];
85
+ }
86
+ const fieldSelectorsToOrderBy = arrayOrderBy.map((ob) => {
87
+ return (item) => {
88
+ return (0, lodash_es_1.get)(item, ob.field);
89
+ };
90
+ });
91
+ const fieldDirectionsToOrderBy = arrayOrderBy.map((ob) => ob.direction);
92
+ return (0, lodash_es_1.orderBy)(items, fieldSelectorsToOrderBy, fieldDirectionsToOrderBy);
93
+ }, [items, orderBy]);
94
+ const cappedItems = (0, react_2.useMemo)(() => {
95
+ if (!limit) {
96
+ return sortedItems;
97
+ }
98
+ return sortedItems.slice(0, limit - 1);
99
+ }, [sortedItems, limit]);
100
+ const sectionedItems = (0, react_2.useMemo)(() => {
101
+ if (sectionBy === undefined) {
102
+ return constants_1.EMPTY_OBJECT;
103
+ }
104
+ return (0, lodash_es_1.groupBy)(cappedItems, (item) => item[sectionBy]);
105
+ }, [cappedItems, sectionBy]);
106
+ const sections = (0, react_2.useMemo)(() => {
107
+ if (sectionBy === undefined) {
108
+ return constants_1.EMPTY_ARRAY;
109
+ }
110
+ let foundSectionKeys = (0, lodash_es_1.uniq)([...defaultSections, ...Object.keys(sectionedItems)]);
111
+ if (availableSections) {
112
+ foundSectionKeys = (0, lodash_es_1.sortBy)(foundSectionKeys, (item) => {
113
+ return availableSections.indexOf(item);
114
+ });
115
+ }
116
+ return foundSectionKeys;
117
+ }, [sectionBy, sectionedItems, defaultSections, availableSections]);
118
+ const rows = (0, react_2.useMemo)(() => {
119
+ if (sectionBy === undefined) {
120
+ return cappedItems;
121
+ }
122
+ const ret = [];
123
+ sections.forEach((section) => {
124
+ ret.push({
125
+ id: section,
126
+ sectionItems: sectionedItems[section],
127
+ _row_type: RowType.SECTION,
128
+ sectionKey: section,
129
+ });
130
+ if (expanded[section] || (expanded[section] === undefined && sectionsInitiallyExpanded)) {
131
+ ret.push(...(sectionedItems[section] || []));
132
+ ret.push({
133
+ id: `${section}_footer`,
134
+ sectionItems: sectionedItems[section],
135
+ _row_type: RowType.SECTION_FOOTER,
136
+ sectionKey: section,
137
+ });
138
+ }
139
+ });
140
+ return ret;
141
+ }, [sectionBy, sections, cappedItems, expanded, sectionsInitiallyExpanded, sectionedItems]);
142
+ return {
143
+ rows,
144
+ sectionedItems,
145
+ sections,
146
+ };
147
+ }
148
+ const defaultItemRenderer = (item, id) => {
149
+ if (!item) {
150
+ return null;
151
+ }
152
+ let title;
153
+ let subTitle;
154
+ if (typeof item === "object") {
155
+ const values = Object.values((0, lodash_es_1.omit)(item, "id"));
156
+ if (!values.length) {
157
+ return null;
158
+ }
159
+ title = values[0];
160
+ subTitle = undefined;
161
+ if (values.length > 1) {
162
+ subTitle = values[1];
163
+ }
164
+ }
165
+ else if (typeof item === "string" || typeof item === "number") {
166
+ title = item + "";
167
+ subTitle = undefined;
168
+ }
169
+ else {
170
+ return null;
171
+ }
172
+ return (0, jsx_runtime_1.jsx)(Card_1.Card, { title: title, subTitle: subTitle });
173
+ };
174
+ const DynamicHeightList = (0, react_2.forwardRef)(function DynamicHeightList({ items = constants_1.EMPTY_ARRAY, itemRenderer = defaultItemRenderer, sectionRenderer, sectionFooterRenderer, loading, limit, sectionBy, orderBy, availableSections, scrollAnchor = "top", requestFetchPrevPage = lodash_es_1.noop, selectedIndex, resetSelectedIndex = lodash_es_1.noop, pageInfo, idKey = "id", layout, emptyListPlaceholder, scrollPaddingStart = 0, scrollPaddingEnd = 0, sectionsInitiallyExpanded = true, defaultSections = constants_1.EMPTY_ARRAY, }, ref) {
175
+ var _a;
176
+ // The scrollable element for your list
177
+ const scrollRef = (0, react_2.useContext)(ScrollContext_1.ScrollContext);
178
+ const parentRef = (0, react_2.useRef)(null);
179
+ const rootRef = ref ? (0, react_compose_refs_1.composeRefs)(parentRef, ref) : parentRef;
180
+ const rowsContainerRef = (0, react_2.useRef)(null);
181
+ const [suspendInfiniteLoad, setSuspendInfiniteLoad] = (0, react_2.useState)(true);
182
+ const [expanded, setExpanded] = (0, react_2.useState)({});
183
+ const toggleExpanded = (0, react_2.useCallback)((id, isExpanded) => {
184
+ setExpanded((prev) => (Object.assign(Object.assign({}, prev), { [id]: isExpanded })));
185
+ }, []);
186
+ const expandContextValue = (0, react_2.useMemo)(() => {
187
+ return {
188
+ isExpanded: (id) => expanded[id] || (expanded[id] === undefined && sectionsInitiallyExpanded),
189
+ toggleExpanded,
190
+ };
191
+ }, [expanded, sectionsInitiallyExpanded, toggleExpanded]);
192
+ const { rows } = useListData({
193
+ sectionsInitiallyExpanded,
194
+ defaultSections,
195
+ expanded,
196
+ items,
197
+ limit,
198
+ sectionBy,
199
+ orderBy,
200
+ availableSections,
201
+ });
202
+ const hasOutsideScroll = scrollRef && (layout === null || layout === void 0 ? void 0 : layout.maxHeight) === undefined && (layout === null || layout === void 0 ? void 0 : layout.height) === undefined && (layout === null || layout === void 0 ? void 0 : layout.flex) === undefined;
203
+ const scrollElementRef = hasOutsideScroll ? scrollRef : parentRef;
204
+ const overscan = 5;
205
+ const myObserveElementOffset = (0, react_2.useCallback)((instance, cb) => {
206
+ return (0, react_virtual_1.observeElementOffset)(instance, (offset, isScrolling) => {
207
+ var _a;
208
+ //based on this: https://github.com/TanStack/virtual/issues/387
209
+ const parentContainerOffset = !hasOutsideScroll ? 0 : ((_a = parentRef.current) === null || _a === void 0 ? void 0 : _a.offsetTop) || 0;
210
+ cb(offset - parentContainerOffset, isScrolling);
211
+ });
212
+ }, [hasOutsideScroll]);
213
+ const rowVirtualizer = (0, react_virtual_1.useVirtualizer)({
214
+ count: rows.length,
215
+ // paddingStart: scrollPaddingStart,
216
+ // paddingEnd: scrollPaddingEnd,
217
+ observeElementOffset: myObserveElementOffset,
218
+ getScrollElement: (0, react_2.useCallback)(() => {
219
+ return scrollElementRef.current;
220
+ }, [scrollElementRef]),
221
+ estimateSize: (0, react_2.useCallback)(() => {
222
+ return 30;
223
+ }, []),
224
+ rangeExtractor: (0, react_2.useCallback)((range) => {
225
+ return (0, react_virtual_1.defaultRangeExtractor)(range);
226
+ }, []),
227
+ getItemKey: (0, react_2.useCallback)((index) => {
228
+ var _a;
229
+ return (_a = rows[index][idKey]) !== null && _a !== void 0 ? _a : index;
230
+ }, [idKey, rows]),
231
+ overscan: overscan,
232
+ });
233
+ // useSyncListViewState({
234
+ // offsetTop: offsetTopRef.current,
235
+ // rowVirtualizer: rowVirtualizer,
236
+ // estimateRowSize,
237
+ // estimatedRowSize: estimatedRowSizeRef.current,
238
+ // uid,
239
+ // scrollElementRef,
240
+ // trackViewState,
241
+ // setExpanded,
242
+ // expanded,
243
+ // });
244
+ const prevRows = (0, hooks_1.usePrevious)(rows);
245
+ const tryToScrollToIndex = (0, react_2.useCallback)((index, onFinished) => {
246
+ rowVirtualizer.scrollToIndex(index);
247
+ requestAnimationFrame(() => {
248
+ onFinished === null || onFinished === void 0 ? void 0 : onFinished();
249
+ });
250
+ // requestAnimationFrame(() => {
251
+ // requestAnimationFrame(() => {
252
+ // const {startIndex, endIndex} = visibleRangeRef.current;
253
+ // const isVisible = index >= startIndex && index <= endIndex;
254
+ //
255
+ // if (!isVisible) {
256
+ // tryToScrollToIndex(index, onFinished);
257
+ // } else {
258
+ // onFinished?.();
259
+ // }
260
+ // });
261
+ // });
262
+ }, [rowVirtualizer]);
263
+ (0, react_2.useEffect)(() => {
264
+ if (scrollAnchor === "bottom") {
265
+ if (rows.length &&
266
+ (!prevRows || !prevRows.length || rows[rows.length - 1][idKey] !== prevRows[prevRows.length - 1][idKey])) {
267
+ setSuspendInfiniteLoad(true);
268
+ // console.log("TRying to scroll to index");
269
+ tryToScrollToIndex(rows.length - 1, () => {
270
+ setSuspendInfiniteLoad(false);
271
+ });
272
+ }
273
+ }
274
+ }, [idKey, prevRows, rows, scrollAnchor, tryToScrollToIndex]);
275
+ const virtualItems = rowVirtualizer.getVirtualItems();
276
+ const totalSize = rowVirtualizer.getTotalSize();
277
+ (0, react_2.useEffect)(() => {
278
+ if (selectedIndex && rowVirtualizer) {
279
+ const index = virtualItems.findIndex((item) => item.key === selectedIndex);
280
+ tryToScrollToIndex(index);
281
+ resetSelectedIndex();
282
+ }
283
+ }, [resetSelectedIndex, rowVirtualizer, selectedIndex, tryToScrollToIndex, virtualItems]);
284
+ const prevTotalSize = (0, hooks_1.usePrevious)(totalSize);
285
+ const firstRenderedItem = virtualItems[0];
286
+ (0, react_1.useLayoutEffect)(() => {
287
+ if (prevTotalSize && prevTotalSize !== totalSize && scrollAnchor === "bottom" && (firstRenderedItem === null || firstRenderedItem === void 0 ? void 0 : firstRenderedItem.index) === 0) {
288
+ const delta2 = totalSize - prevTotalSize;
289
+ // console.log("restore scroll pos", {
290
+ // prevTotalSize: prevTotalSize,
291
+ // totalSize: totalSize,
292
+ // scrollTop: scrollElementRef.current.scrollTop,
293
+ // delta: delta2,
294
+ // newScrollTop: scrollElementRef.current.scrollTop + delta2,
295
+ // });
296
+ queueMicrotask(() => {
297
+ scrollElementRef.current.scrollBy({ left: 0, top: delta2 });
298
+ // console.log("scrolled to", scrollElementRef.current.scrollTop);
299
+ setSuspendInfiniteLoad(false);
300
+ });
301
+ }
302
+ }, [firstRenderedItem === null || firstRenderedItem === void 0 ? void 0 : firstRenderedItem.index, prevTotalSize, rowVirtualizer, scrollAnchor, scrollElementRef, totalSize]);
303
+ const suspendTimerRef = (0, react_2.useRef)(null);
304
+ (0, react_2.useEffect)(() => {
305
+ // console.log({
306
+ // suspendState: suspendInfiniteLoad,
307
+ // pageInfo,
308
+ // firstRenderedItem,
309
+ // // visibleRange
310
+ // });
311
+ if (suspendInfiniteLoad) {
312
+ return;
313
+ }
314
+ if (!pageInfo) {
315
+ return;
316
+ }
317
+ if (!firstRenderedItem) {
318
+ return;
319
+ }
320
+ if (firstRenderedItem.index === 0 && pageInfo.hasPrevPage && !pageInfo.isFetchingPrevPage) {
321
+ (() => __awaiter(this, void 0, void 0, function* () {
322
+ setSuspendInfiniteLoad(true);
323
+ if (suspendTimerRef.current) {
324
+ clearTimeout(suspendTimerRef.current);
325
+ }
326
+ // console.log("fetching prev page START", pageInfo);
327
+ yield requestFetchPrevPage();
328
+ // console.log("fetching prev page END", pageInfo);
329
+ suspendTimerRef.current = setTimeout(() => {
330
+ setSuspendInfiniteLoad(false);
331
+ }, 500);
332
+ }))();
333
+ }
334
+ }, [firstRenderedItem, pageInfo, requestFetchPrevPage, suspendInfiniteLoad]);
335
+ return ((0, jsx_runtime_1.jsx)(ListContext.Provider, { value: expandContextValue, children: (0, jsx_runtime_1.jsxs)("div", { ref: rootRef, className: List_module_scss_1.default.scrollParent, style: Object.assign({ overflow: hasOutsideScroll ? "initial" : "auto", maxHeight: "100%" }, layout), children: [loading && virtualItems.length === 0 && ((0, jsx_runtime_1.jsx)("div", { className: List_module_scss_1.default.loadingWrapper, children: (0, jsx_runtime_1.jsx)(Spinner_1.Spinner, {}) })), !loading &&
336
+ virtualItems.length === 0 &&
337
+ (emptyListPlaceholder !== null && emptyListPlaceholder !== void 0 ? emptyListPlaceholder : ((0, jsx_runtime_1.jsx)("div", { className: List_module_scss_1.default.noRows, children: (0, jsx_runtime_1.jsx)(Text_1.Text, { children: "No data available" }) }))), ((!loading && virtualItems.length > 0) || items.length > 0) && ((0, jsx_runtime_1.jsx)("div", { ref: rowsContainerRef, style: {
338
+ height: `${totalSize}px`,
339
+ width: "100%",
340
+ position: "relative",
341
+ }, children: (0, jsx_runtime_1.jsx)("div", { "data-list-container": true, style: {
342
+ position: "absolute",
343
+ top: 0,
344
+ left: 0,
345
+ width: "100%",
346
+ transform: `translateY(${(_a = firstRenderedItem === null || firstRenderedItem === void 0 ? void 0 : firstRenderedItem.start) !== null && _a !== void 0 ? _a : 0}px)`,
347
+ }, children: virtualItems.map((virtualItem) => {
348
+ var _a, _b;
349
+ const item = rows[virtualItem.index];
350
+ let key = virtualItem.key;
351
+ let itemContent;
352
+ switch (item._row_type) {
353
+ case RowType.SECTION:
354
+ itemContent = (_a = sectionRenderer === null || sectionRenderer === void 0 ? void 0 : sectionRenderer(item, item[idKey])) !== null && _a !== void 0 ? _a : null;
355
+ key = `section_${key}`;
356
+ break;
357
+ case RowType.SECTION_FOOTER:
358
+ itemContent = sectionFooterRenderer === null || sectionFooterRenderer === void 0 ? void 0 : sectionFooterRenderer(item, item[idKey]);
359
+ key = `section_footer_${key}`;
360
+ break;
361
+ default:
362
+ itemContent = (_b = itemRenderer(item, item[idKey])) !== null && _b !== void 0 ? _b : null;
363
+ break;
364
+ }
365
+ return ((0, jsx_runtime_1.jsx)(Item, { onHeightChanged: rowVirtualizer.measureElement, rowIndex: virtualItem.index, itemType: item._row_type || RowType.ITEM, children: itemContent }, key));
366
+ }) }) }))] }) }));
367
+ });
368
+ exports.metadata = {
369
+ displayName: "List",
370
+ description: "A virtualized list component",
371
+ props: {
372
+ items: (0, descriptorHelper_1.desc)("The items to display in the list"),
373
+ loading: (0, descriptorHelper_1.desc)("Is the list being loaded?"),
374
+ limit: (0, descriptorHelper_1.desc)("The maximum number of items to display"),
375
+ scrollAnchor: (0, descriptorHelper_1.desc)("Anchor point of the scroll (top, bottom)"),
376
+ sectionBy: (0, descriptorHelper_1.desc)("the name of the data field to create sections within the list"),
377
+ orderBy: (0, descriptorHelper_1.desc)("The name of the data field the items are ordered by"),
378
+ availableSections: (0, descriptorHelper_1.desc)("List of available sections"),
379
+ sectionTemplate: {
380
+ description: "Component template for a section header",
381
+ valueType: "ComponentDef",
382
+ },
383
+ sectionFooterTemplate: {
384
+ description: "Component template for a section footer",
385
+ valueType: "ComponentDef",
386
+ },
387
+ itemTemplate: {
388
+ description: "Component template for a list item",
389
+ valueType: "ComponentDef",
390
+ },
391
+ emptyListTemplate: {
392
+ description: "Component template representing an empty list item",
393
+ valueType: "ComponentDef",
394
+ },
395
+ pageInfo: (0, descriptorHelper_1.desc)("Information about a particular page"),
396
+ idKey: (0, descriptorHelper_1.desc)("The field of data items to use as the identifier of the item."),
397
+ selectedIndex: (0, descriptorHelper_1.desc)("The index of the list item selected by default"),
398
+ scrollPaddingStart: (0, descriptorHelper_1.desc)("padding to use at the start of the scrolling area"),
399
+ scrollPaddingEnd: (0, descriptorHelper_1.desc)("padding to use at the end of the scrolling area"),
400
+ sectionsInitiallyExpanded: (0, descriptorHelper_1.desc)("Indicates if table sections should be initially expanded"),
401
+ defaultSections: (0, descriptorHelper_1.desc)("Use these sections as the default ones"),
402
+ },
403
+ events: {
404
+ resetSelectedIndex: (0, descriptorHelper_1.desc)("Triggered when the selected index is reset"),
405
+ requestFetchNextPage: (0, descriptorHelper_1.desc)("Triggered when the component asks for the previous page's data"),
406
+ requestFetchPrevPage: (0, descriptorHelper_1.desc)("Triggered when the component asks for the next page's data"),
407
+ itemsLoaded: (0, descriptorHelper_1.desc)("Triggered when the items have been loaded"),
408
+ },
409
+ themeVars: (0, themeVars_1.parseScssVar)(List_module_scss_1.default.themeVars),
410
+ };
411
+ // --- Helper function for List item rendering
412
+ function MemoizedSection({ node, renderChild, item }) {
413
+ const { isExpanded, toggleExpanded } = (0, react_2.useContext)(ListContext);
414
+ const id = item.id;
415
+ const expanded = isExpanded(id);
416
+ const sectionContext = (0, react_2.useMemo)(() => {
417
+ return {
418
+ isExpanded: expanded,
419
+ toggle: () => {
420
+ toggleExpanded(id, !expanded);
421
+ },
422
+ };
423
+ }, [expanded, id, toggleExpanded]);
424
+ return (0, jsx_runtime_1.jsx)(container_helpers_1.MemoizedItem, { node: node, renderChild: renderChild, item: item, context: sectionContext });
425
+ }
426
+ exports.dynamicHeightListComponentRenderer = (0, renderers_1.createComponentRenderer)("List", ({ node, extractValue, renderChild, lookupAction, layoutCss, layoutContext, lookupEventHandler }) => {
427
+ var _a;
428
+ return ((0, jsx_runtime_1.jsx)(DynamicHeightList, { layout: layoutCss, loading: extractValue.asOptionalBoolean(node.props.loading), items: extractValue(node.props.items) || extractValue(node.props.data), limit: extractValue(node.props.limit), sectionBy: extractValue(node.props.sectionBy), orderBy: extractValue(node.props.orderBy), availableSections: extractValue(node.props.availableSections), scrollAnchor: node.props.scrollAnchor, pageInfo: extractValue(node.props.pageInfo), idKey: extractValue(node.props.idKey), requestFetchPrevPage: lookupEventHandler("requestFetchPrevPage"), selectedIndex: extractValue(node.props.selectedIndex), resetSelectedIndex: lookupAction((_a = node.events) === null || _a === void 0 ? void 0 : _a.resetSelectedIndex), emptyListPlaceholder: renderChild(node.props.emptyListTemplate), scrollPaddingStart: extractValue.asOptionalNumber(node.props.scrollPaddingStart), scrollPaddingEnd: extractValue.asOptionalNumber(node.props.scrollPaddingEnd), sectionsInitiallyExpanded: extractValue.asOptionalBoolean(node.props.sectionsInitiallyExpanded), defaultSections: extractValue(node.props.defaultSections), itemRenderer: node.props.itemTemplate &&
429
+ ((item) => {
430
+ return ((0, jsx_runtime_1.jsx)(container_helpers_1.MemoizedItem, { node: node.props.itemTemplate, item: item, renderChild: renderChild, layoutContext: layoutContext }));
431
+ }), sectionRenderer: node.props.sectionBy
432
+ ? (item) => {
433
+ var _a;
434
+ return ((0, jsx_runtime_1.jsx)(MemoizedSection, { node: (_a = node.props.sectionTemplate) !== null && _a !== void 0 ? _a : { type: "Fragment" }, renderChild: renderChild, item: item }));
435
+ }
436
+ : undefined, sectionFooterRenderer: node.props.sectionFooterTemplate
437
+ ? (item) => {
438
+ var _a;
439
+ return ((0, jsx_runtime_1.jsx)(container_helpers_1.MemoizedItem, { node: (_a = node.props.sectionFooterTemplate) !== null && _a !== void 0 ? _a : { type: "Fragment" }, item: item, renderChild: renderChild }));
440
+ }
441
+ : undefined }));
442
+ }, exports.metadata);
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.logoComponentRenderer = exports.Logo = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const NavLink_1 = require("@components/NavLink/NavLink");
6
+ const Image_1 = require("@components/Image/Image");
7
+ const renderers_1 = require("@components-core/renderers");
8
+ const AppHeader_1 = require("@components/AppHeader/AppHeader");
9
+ // =====================================================================================================================
10
+ // React Logo component implementation
11
+ const Logo = ({ inDrawer, style, title }) => {
12
+ const logoUrl = (0, AppHeader_1.useLogoUrl)(inDrawer);
13
+ if (!logoUrl) {
14
+ return null;
15
+ }
16
+ return ((0, jsx_runtime_1.jsxs)(NavLink_1.NavLink, { to: "/", displayActive: false, style: Object.assign({ padding: 0, height: "100%", fontWeight: '500' }, style), children: [(0, jsx_runtime_1.jsx)(Image_1.Image, { src: logoUrl, alt: "Logo" }), " ", title] }));
17
+ };
18
+ exports.Logo = Logo;
19
+ const metadata = {
20
+ displayName: "Logo",
21
+ description: "Displays the application logo",
22
+ };
23
+ exports.logoComponentRenderer = (0, renderers_1.createComponentRenderer)("Logo", ({ node, layoutCss, extractValue }) => {
24
+ return (0, jsx_runtime_1.jsx)(exports.Logo, { style: layoutCss, title: extractValue(node.props.title) });
25
+ }, metadata);