Merge branch 'main' of https://github.com/Pyroxenium/Basalt2
This commit is contained in:
10116
BasaltLS.lua
10116
BasaltLS.lua
File diff suppressed because it is too large
Load Diff
760
config.lua
760
config.lua
@@ -1,509 +1,509 @@
|
|||||||
return {
|
return {
|
||||||
|
["metadata"] = {
|
||||||
|
["generated"] = "Sun Nov 2 17:37:23 2025",
|
||||||
|
["version"] = "2.0",
|
||||||
|
},
|
||||||
["categories"] = {
|
["categories"] = {
|
||||||
["plugins"] = {
|
["elements"] = {
|
||||||
["description"] = "Plugins",
|
|
||||||
["files"] = {
|
["files"] = {
|
||||||
["canvas"] = {
|
["Label"] = {
|
||||||
["description"] = "",
|
|
||||||
["size"] = 7873,
|
|
||||||
["default"] = true,
|
|
||||||
["path"] = "plugins/canvas.lua",
|
|
||||||
["requires"] = {
|
|
||||||
},
|
|
||||||
},
|
|
||||||
["animation"] = {
|
|
||||||
["description"] = "",
|
|
||||||
["size"] = 18421,
|
|
||||||
["default"] = true,
|
|
||||||
["path"] = "plugins/animation.lua",
|
|
||||||
["requires"] = {
|
|
||||||
},
|
|
||||||
},
|
|
||||||
["reactive"] = {
|
|
||||||
["description"] = "",
|
|
||||||
["size"] = 11028,
|
|
||||||
["default"] = true,
|
|
||||||
["path"] = "plugins/reactive.lua",
|
|
||||||
["requires"] = {
|
|
||||||
},
|
|
||||||
},
|
|
||||||
["debug"] = {
|
|
||||||
["description"] = "",
|
|
||||||
["size"] = 6250,
|
|
||||||
["default"] = true,
|
|
||||||
["path"] = "plugins/debug.lua",
|
|
||||||
["requires"] = {
|
|
||||||
},
|
|
||||||
},
|
|
||||||
["theme"] = {
|
|
||||||
["description"] = "",
|
|
||||||
["size"] = 6775,
|
|
||||||
["default"] = true,
|
|
||||||
["path"] = "plugins/theme.lua",
|
|
||||||
["requires"] = {
|
|
||||||
},
|
|
||||||
},
|
|
||||||
["benchmark"] = {
|
|
||||||
["description"] = "",
|
|
||||||
["size"] = 12581,
|
|
||||||
["default"] = true,
|
|
||||||
["path"] = "plugins/benchmark.lua",
|
|
||||||
["requires"] = {
|
["requires"] = {
|
||||||
[1] = "VisualElement",
|
[1] = "VisualElement",
|
||||||
},
|
},
|
||||||
|
["default"] = true,
|
||||||
|
["description"] = "A simple text display element that automatically resizes its width based on the text content.",
|
||||||
|
["size"] = 3092,
|
||||||
|
["path"] = "elements/Label.lua",
|
||||||
},
|
},
|
||||||
["xml"] = {
|
["BarChart"] = {
|
||||||
|
["requires"] = {
|
||||||
|
},
|
||||||
|
["default"] = true,
|
||||||
["description"] = "",
|
["description"] = "",
|
||||||
["size"] = 14042,
|
["size"] = 3507,
|
||||||
["default"] = true,
|
["path"] = "elements/BarChart.lua",
|
||||||
["path"] = "plugins/xml.lua",
|
|
||||||
["requires"] = {
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
},
|
["Breadcrumb"] = {
|
||||||
},
|
["requires"] = {
|
||||||
["libraries"] = {
|
[1] = "VisualElement",
|
||||||
["description"] = "Libraries",
|
},
|
||||||
["files"] = {
|
["default"] = true,
|
||||||
["utils"] = {
|
|
||||||
["description"] = "",
|
["description"] = "",
|
||||||
["size"] = 2661,
|
["size"] = 4314,
|
||||||
["default"] = true,
|
["path"] = "elements/Breadcrumb.lua",
|
||||||
["path"] = "libraries/utils.lua",
|
|
||||||
["requires"] = {
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
["collectionentry"] = {
|
["Container"] = {
|
||||||
["description"] = "",
|
|
||||||
["size"] = 3551,
|
|
||||||
["default"] = true,
|
|
||||||
["path"] = "libraries/collectionentry.lua",
|
|
||||||
["requires"] = {
|
["requires"] = {
|
||||||
|
[1] = "VisualElement",
|
||||||
},
|
},
|
||||||
},
|
|
||||||
["expect"] = {
|
|
||||||
["description"] = "",
|
|
||||||
["size"] = 846,
|
|
||||||
["default"] = true,
|
["default"] = true,
|
||||||
["path"] = "libraries/expect.lua",
|
["description"] = "The container class. It is a visual element that can contain other elements. It is the base class for all containers",
|
||||||
["requires"] = {
|
["size"] = 27534,
|
||||||
},
|
["path"] = "elements/Container.lua",
|
||||||
},
|
|
||||||
["colorHex"] = {
|
|
||||||
["description"] = "",
|
|
||||||
["size"] = 132,
|
|
||||||
["default"] = true,
|
|
||||||
["path"] = "libraries/colorHex.lua",
|
|
||||||
["requires"] = {
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
["elements"] = {
|
|
||||||
["description"] = "UI Elements",
|
|
||||||
["files"] = {
|
|
||||||
["TabControl"] = {
|
|
||||||
["description"] = "A TabControl element that provides tabbed interface with multiple content areas.",
|
|
||||||
["size"] = 20903,
|
|
||||||
["default"] = true,
|
|
||||||
["path"] = "elements/TabControl.lua",
|
|
||||||
["requires"] = {
|
|
||||||
[1] = "Container",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
["Display"] = {
|
["Display"] = {
|
||||||
["description"] = "The Display is a special element which uses the CC Window API which you can use.",
|
|
||||||
["size"] = 4668,
|
|
||||||
["default"] = false,
|
|
||||||
["path"] = "elements/Display.lua",
|
|
||||||
["requires"] = {
|
["requires"] = {
|
||||||
[1] = "VisualElement",
|
[1] = "VisualElement",
|
||||||
},
|
},
|
||||||
|
["default"] = false,
|
||||||
|
["description"] = "The Display is a special element which uses the CC Window API which you can use.",
|
||||||
|
["size"] = 4668,
|
||||||
|
["path"] = "elements/Display.lua",
|
||||||
},
|
},
|
||||||
["DropDown"] = {
|
["DropDown"] = {
|
||||||
["description"] = "A DropDown menu that shows a list of selectable items",
|
|
||||||
["size"] = 7887,
|
|
||||||
["default"] = false,
|
|
||||||
["path"] = "elements/DropDown.lua",
|
|
||||||
["requires"] = {
|
["requires"] = {
|
||||||
[1] = "List",
|
[1] = "List",
|
||||||
},
|
},
|
||||||
|
["default"] = false,
|
||||||
|
["description"] = "A DropDown menu that shows a list of selectable items",
|
||||||
|
["size"] = 7887,
|
||||||
|
["path"] = "elements/DropDown.lua",
|
||||||
},
|
},
|
||||||
["Collection"] = {
|
["Slider"] = {
|
||||||
["description"] = "A collection of items",
|
|
||||||
["size"] = 7778,
|
|
||||||
["default"] = true,
|
|
||||||
["path"] = "elements/Collection.lua",
|
|
||||||
["requires"] = {
|
["requires"] = {
|
||||||
[1] = "VisualElement",
|
[1] = "VisualElement",
|
||||||
},
|
},
|
||||||
},
|
|
||||||
["Table"] = {
|
|
||||||
["description"] = "",
|
|
||||||
["size"] = 25362,
|
|
||||||
["default"] = true,
|
["default"] = true,
|
||||||
["path"] = "elements/Table.lua",
|
["description"] = "",
|
||||||
|
["size"] = 4977,
|
||||||
|
["path"] = "elements/Slider.lua",
|
||||||
|
},
|
||||||
|
["Menu"] = {
|
||||||
|
["requires"] = {
|
||||||
|
[1] = "List",
|
||||||
|
},
|
||||||
|
["default"] = true,
|
||||||
|
["description"] = "A horizontal menu bar with selectable items.",
|
||||||
|
["size"] = 8582,
|
||||||
|
["path"] = "elements/Menu.lua",
|
||||||
|
},
|
||||||
|
["List"] = {
|
||||||
["requires"] = {
|
["requires"] = {
|
||||||
[1] = "Collection",
|
[1] = "Collection",
|
||||||
},
|
},
|
||||||
},
|
|
||||||
["Container"] = {
|
|
||||||
["description"] = "The container class. It is a visual element that can contain other elements. It is the base class for all containers",
|
|
||||||
["size"] = 27481,
|
|
||||||
["default"] = true,
|
["default"] = true,
|
||||||
["path"] = "elements/Container.lua",
|
["description"] = "A scrollable list of selectable items",
|
||||||
|
["size"] = 15474,
|
||||||
|
["path"] = "elements/List.lua",
|
||||||
|
},
|
||||||
|
["Image"] = {
|
||||||
["requires"] = {
|
["requires"] = {
|
||||||
[1] = "VisualElement",
|
[1] = "VisualElement",
|
||||||
},
|
},
|
||||||
|
["default"] = false,
|
||||||
|
["description"] = "An element that displays an image in bimg format",
|
||||||
|
["size"] = 15117,
|
||||||
|
["path"] = "elements/Image.lua",
|
||||||
},
|
},
|
||||||
["Timer"] = {
|
["ProgressBar"] = {
|
||||||
["description"] = "",
|
["requires"] = {
|
||||||
["size"] = 2914,
|
[1] = "VisualElement",
|
||||||
|
},
|
||||||
["default"] = true,
|
["default"] = true,
|
||||||
["path"] = "elements/Timer.lua",
|
["description"] = "",
|
||||||
|
["size"] = 3398,
|
||||||
|
["path"] = "elements/ProgressBar.lua",
|
||||||
|
},
|
||||||
|
["BaseFrame"] = {
|
||||||
|
["requires"] = {
|
||||||
|
[1] = "Container",
|
||||||
|
},
|
||||||
|
["default"] = true,
|
||||||
|
["description"] = "This is the base frame class. It is the root element of all elements and the only element without a parent.",
|
||||||
|
["size"] = 9017,
|
||||||
|
["path"] = "elements/BaseFrame.lua",
|
||||||
|
},
|
||||||
|
["Input"] = {
|
||||||
|
["requires"] = {
|
||||||
|
[1] = "VisualElement",
|
||||||
|
},
|
||||||
|
["default"] = true,
|
||||||
|
["description"] = "A text input field with various features",
|
||||||
|
["size"] = 9200,
|
||||||
|
["path"] = "elements/Input.lua",
|
||||||
|
},
|
||||||
|
["Switch"] = {
|
||||||
|
["requires"] = {
|
||||||
|
[1] = "VisualElement",
|
||||||
|
},
|
||||||
|
["default"] = true,
|
||||||
|
["description"] = "The Switch is a standard Switch element with click handling and state management.",
|
||||||
|
["size"] = 3269,
|
||||||
|
["path"] = "elements/Switch.lua",
|
||||||
|
},
|
||||||
|
["Toast"] = {
|
||||||
|
["requires"] = {
|
||||||
|
[1] = "VisualElement",
|
||||||
|
},
|
||||||
|
["default"] = true,
|
||||||
|
["description"] = "A toast notification element that displays temporary messages.",
|
||||||
|
["size"] = 7917,
|
||||||
|
["path"] = "elements/Toast.lua",
|
||||||
|
},
|
||||||
|
["Graph"] = {
|
||||||
|
["requires"] = {
|
||||||
|
},
|
||||||
|
["default"] = false,
|
||||||
|
["description"] = "A point based graph element",
|
||||||
|
["size"] = 6933,
|
||||||
|
["path"] = "elements/Graph.lua",
|
||||||
|
},
|
||||||
|
["TabControl"] = {
|
||||||
|
["requires"] = {
|
||||||
|
[1] = "Container",
|
||||||
|
},
|
||||||
|
["default"] = true,
|
||||||
|
["description"] = "A TabControl element that provides tabbed interface with multiple content areas.",
|
||||||
|
["size"] = 20903,
|
||||||
|
["path"] = "elements/TabControl.lua",
|
||||||
|
},
|
||||||
|
["ContextMenu"] = {
|
||||||
|
["requires"] = {
|
||||||
|
[1] = "Container",
|
||||||
|
},
|
||||||
|
["default"] = true,
|
||||||
|
["description"] = "A ContextMenu element that displays a menu with items and submenus.",
|
||||||
|
["size"] = 10636,
|
||||||
|
["path"] = "elements/ContextMenu.lua",
|
||||||
|
},
|
||||||
|
["Collection"] = {
|
||||||
|
["requires"] = {
|
||||||
|
[1] = "VisualElement",
|
||||||
|
},
|
||||||
|
["default"] = true,
|
||||||
|
["description"] = "A collection of items",
|
||||||
|
["size"] = 7778,
|
||||||
|
["path"] = "elements/Collection.lua",
|
||||||
|
},
|
||||||
|
["VisualElement"] = {
|
||||||
["requires"] = {
|
["requires"] = {
|
||||||
[1] = "BaseElement",
|
[1] = "BaseElement",
|
||||||
},
|
},
|
||||||
},
|
|
||||||
["Menu"] = {
|
|
||||||
["description"] = "A horizontal menu bar with selectable items.",
|
|
||||||
["size"] = 8582,
|
|
||||||
["default"] = true,
|
["default"] = true,
|
||||||
["path"] = "elements/Menu.lua",
|
["description"] = "The Visual Element class which is the base class for all visual UI elements",
|
||||||
["requires"] = {
|
["size"] = 43389,
|
||||||
[1] = "List",
|
["path"] = "elements/VisualElement.lua",
|
||||||
},
|
|
||||||
},
|
},
|
||||||
["Breadcrumb"] = {
|
["Frame"] = {
|
||||||
["description"] = "",
|
|
||||||
["size"] = 4314,
|
|
||||||
["default"] = true,
|
|
||||||
["path"] = "elements/Breadcrumb.lua",
|
|
||||||
["requires"] = {
|
["requires"] = {
|
||||||
[1] = "VisualElement",
|
[1] = "Container",
|
||||||
},
|
},
|
||||||
},
|
|
||||||
["Dialog"] = {
|
|
||||||
["description"] = "A dialog overlay system with common presets (alert, confirm, prompt).",
|
|
||||||
["size"] = 8878,
|
|
||||||
["default"] = true,
|
["default"] = true,
|
||||||
["path"] = "elements/Dialog.lua",
|
["description"] = "A frame element that serves as a grouping container for other elements.",
|
||||||
["requires"] = {
|
["size"] = 6646,
|
||||||
[1] = "Frame",
|
["path"] = "elements/Frame.lua",
|
||||||
},
|
|
||||||
},
|
},
|
||||||
["ComboBox"] = {
|
["ComboBox"] = {
|
||||||
["description"] = "A ComboBox that combines dropdown selection with editable text input",
|
|
||||||
["size"] = 14752,
|
|
||||||
["default"] = false,
|
|
||||||
["path"] = "elements/ComboBox.lua",
|
|
||||||
["requires"] = {
|
["requires"] = {
|
||||||
[1] = "DropDown",
|
[1] = "DropDown",
|
||||||
},
|
},
|
||||||
},
|
|
||||||
["BaseElement"] = {
|
|
||||||
["description"] = "The base class for all UI elements in Basalt.",
|
|
||||||
["size"] = 13870,
|
|
||||||
["default"] = true,
|
|
||||||
["path"] = "elements/BaseElement.lua",
|
|
||||||
["requires"] = {
|
|
||||||
},
|
|
||||||
},
|
|
||||||
["LineChart"] = {
|
|
||||||
["description"] = "",
|
|
||||||
["size"] = 3171,
|
|
||||||
["default"] = false,
|
["default"] = false,
|
||||||
["path"] = "elements/LineChart.lua",
|
["description"] = "A ComboBox that combines dropdown selection with editable text input",
|
||||||
["requires"] = {
|
["size"] = 14752,
|
||||||
},
|
["path"] = "elements/ComboBox.lua",
|
||||||
},
|
},
|
||||||
["BigFont"] = {
|
["Button"] = {
|
||||||
["description"] = "",
|
|
||||||
["size"] = 21551,
|
|
||||||
["default"] = false,
|
|
||||||
["path"] = "elements/BigFont.lua",
|
|
||||||
["requires"] = {
|
["requires"] = {
|
||||||
[1] = "VisualElement",
|
[1] = "VisualElement",
|
||||||
},
|
},
|
||||||
},
|
|
||||||
["VisualElement"] = {
|
|
||||||
["description"] = "The Visual Element class which is the base class for all visual UI elements",
|
|
||||||
["size"] = 43389,
|
|
||||||
["default"] = true,
|
["default"] = true,
|
||||||
["path"] = "elements/VisualElement.lua",
|
["description"] = "The Button is a standard button element with click handling and state management.",
|
||||||
["requires"] = {
|
["size"] = 2437,
|
||||||
[1] = "BaseElement",
|
["path"] = "elements/Button.lua",
|
||||||
},
|
|
||||||
},
|
|
||||||
["ContextMenu"] = {
|
|
||||||
["description"] = "A ContextMenu element that displays a menu with items and submenus.",
|
|
||||||
["size"] = 10636,
|
|
||||||
["default"] = true,
|
|
||||||
["path"] = "elements/ContextMenu.lua",
|
|
||||||
["requires"] = {
|
|
||||||
[1] = "Container",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
["Accordion"] = {
|
["Accordion"] = {
|
||||||
["description"] = "An Accordion element that provides collapsible panels with headers.",
|
|
||||||
["size"] = 14913,
|
|
||||||
["default"] = true,
|
|
||||||
["path"] = "elements/Accordion.lua",
|
|
||||||
["requires"] = {
|
["requires"] = {
|
||||||
[1] = "Container",
|
[1] = "Container",
|
||||||
},
|
},
|
||||||
|
["default"] = true,
|
||||||
|
["description"] = "An Accordion element that provides collapsible panels with headers.",
|
||||||
|
["size"] = 14913,
|
||||||
|
["path"] = "elements/Accordion.lua",
|
||||||
|
},
|
||||||
|
["BaseElement"] = {
|
||||||
|
["requires"] = {
|
||||||
|
},
|
||||||
|
["default"] = true,
|
||||||
|
["description"] = "The base class for all UI elements in Basalt.",
|
||||||
|
["size"] = 13870,
|
||||||
|
["path"] = "elements/BaseElement.lua",
|
||||||
|
},
|
||||||
|
["SideNav"] = {
|
||||||
|
["requires"] = {
|
||||||
|
[1] = "Container",
|
||||||
|
},
|
||||||
|
["default"] = true,
|
||||||
|
["description"] = "A SideNav element that provides sidebar navigation with multiple content areas.",
|
||||||
|
["size"] = 22135,
|
||||||
|
["path"] = "elements/SideNav.lua",
|
||||||
|
},
|
||||||
|
["TextBox"] = {
|
||||||
|
["requires"] = {
|
||||||
|
[1] = "VisualElement",
|
||||||
|
},
|
||||||
|
["default"] = false,
|
||||||
|
["description"] = "A multi-line text editor component with cursor support and text manipulation features",
|
||||||
|
["size"] = 43530,
|
||||||
|
["path"] = "elements/TextBox.lua",
|
||||||
|
},
|
||||||
|
["LineChart"] = {
|
||||||
|
["requires"] = {
|
||||||
|
},
|
||||||
|
["default"] = false,
|
||||||
|
["description"] = "",
|
||||||
|
["size"] = 3171,
|
||||||
|
["path"] = "elements/LineChart.lua",
|
||||||
|
},
|
||||||
|
["ScrollBar"] = {
|
||||||
|
["requires"] = {
|
||||||
|
[1] = "VisualElement",
|
||||||
|
},
|
||||||
|
["default"] = true,
|
||||||
|
["description"] = "A ScrollBar element that can be attached to other elements to control their scroll properties.",
|
||||||
|
["size"] = 9665,
|
||||||
|
["path"] = "elements/ScrollBar.lua",
|
||||||
},
|
},
|
||||||
["CheckBox"] = {
|
["CheckBox"] = {
|
||||||
|
["requires"] = {
|
||||||
|
},
|
||||||
|
["default"] = true,
|
||||||
["description"] = "This is a checkbox. It is a visual element that can be checked.",
|
["description"] = "This is a checkbox. It is a visual element that can be checked.",
|
||||||
["size"] = 3700,
|
["size"] = 3700,
|
||||||
["default"] = true,
|
|
||||||
["path"] = "elements/CheckBox.lua",
|
["path"] = "elements/CheckBox.lua",
|
||||||
["requires"] = {
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
["Toast"] = {
|
["BigFont"] = {
|
||||||
["description"] = "A toast notification element that displays temporary messages.",
|
|
||||||
["size"] = 7917,
|
|
||||||
["default"] = true,
|
|
||||||
["path"] = "elements/Toast.lua",
|
|
||||||
["requires"] = {
|
["requires"] = {
|
||||||
[1] = "VisualElement",
|
[1] = "VisualElement",
|
||||||
},
|
},
|
||||||
},
|
|
||||||
["Input"] = {
|
|
||||||
["description"] = "A text input field with various features",
|
|
||||||
["size"] = 9200,
|
|
||||||
["default"] = true,
|
|
||||||
["path"] = "elements/Input.lua",
|
|
||||||
["requires"] = {
|
|
||||||
[1] = "VisualElement",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
["Slider"] = {
|
|
||||||
["description"] = "",
|
|
||||||
["size"] = 4977,
|
|
||||||
["default"] = true,
|
|
||||||
["path"] = "elements/Slider.lua",
|
|
||||||
["requires"] = {
|
|
||||||
[1] = "VisualElement",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
["Graph"] = {
|
|
||||||
["description"] = "A point based graph element",
|
|
||||||
["size"] = 6933,
|
|
||||||
["default"] = false,
|
["default"] = false,
|
||||||
["path"] = "elements/Graph.lua",
|
["description"] = "",
|
||||||
["requires"] = {
|
["size"] = 21551,
|
||||||
},
|
["path"] = "elements/BigFont.lua",
|
||||||
},
|
},
|
||||||
["List"] = {
|
["Table"] = {
|
||||||
["description"] = "A scrollable list of selectable items",
|
|
||||||
["size"] = 15474,
|
|
||||||
["default"] = true,
|
|
||||||
["path"] = "elements/List.lua",
|
|
||||||
["requires"] = {
|
["requires"] = {
|
||||||
[1] = "Collection",
|
[1] = "Collection",
|
||||||
},
|
},
|
||||||
},
|
|
||||||
["ScrollBar"] = {
|
|
||||||
["description"] = "A ScrollBar element that can be attached to other elements to control their scroll properties.",
|
|
||||||
["size"] = 9665,
|
|
||||||
["default"] = true,
|
["default"] = true,
|
||||||
["path"] = "elements/ScrollBar.lua",
|
["description"] = "",
|
||||||
|
["size"] = 25362,
|
||||||
|
["path"] = "elements/Table.lua",
|
||||||
|
},
|
||||||
|
["Timer"] = {
|
||||||
["requires"] = {
|
["requires"] = {
|
||||||
[1] = "VisualElement",
|
[1] = "BaseElement",
|
||||||
},
|
},
|
||||||
|
["default"] = true,
|
||||||
|
["description"] = "",
|
||||||
|
["size"] = 2914,
|
||||||
|
["path"] = "elements/Timer.lua",
|
||||||
},
|
},
|
||||||
["ScrollFrame"] = {
|
["ScrollFrame"] = {
|
||||||
|
["requires"] = {
|
||||||
|
[1] = "Container",
|
||||||
|
},
|
||||||
|
["default"] = true,
|
||||||
["description"] = "A scrollable container that automatically displays scrollbars when content overflows.",
|
["description"] = "A scrollable container that automatically displays scrollbars when content overflows.",
|
||||||
["size"] = 16330,
|
["size"] = 16330,
|
||||||
["default"] = true,
|
|
||||||
["path"] = "elements/ScrollFrame.lua",
|
["path"] = "elements/ScrollFrame.lua",
|
||||||
["requires"] = {
|
|
||||||
[1] = "Container",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
["ProgressBar"] = {
|
|
||||||
["description"] = "",
|
|
||||||
["size"] = 3398,
|
|
||||||
["default"] = true,
|
|
||||||
["path"] = "elements/ProgressBar.lua",
|
|
||||||
["requires"] = {
|
|
||||||
[1] = "VisualElement",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
["Frame"] = {
|
|
||||||
["description"] = "A frame element that serves as a grouping container for other elements.",
|
|
||||||
["size"] = 6646,
|
|
||||||
["default"] = true,
|
|
||||||
["path"] = "elements/Frame.lua",
|
|
||||||
["requires"] = {
|
|
||||||
[1] = "Container",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
["Image"] = {
|
|
||||||
["description"] = "An element that displays an image in bimg format",
|
|
||||||
["size"] = 15117,
|
|
||||||
["default"] = false,
|
|
||||||
["path"] = "elements/Image.lua",
|
|
||||||
["requires"] = {
|
|
||||||
[1] = "VisualElement",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
["Switch"] = {
|
|
||||||
["description"] = "The Switch is a standard Switch element with click handling and state management.",
|
|
||||||
["size"] = 3269,
|
|
||||||
["default"] = true,
|
|
||||||
["path"] = "elements/Switch.lua",
|
|
||||||
["requires"] = {
|
|
||||||
[1] = "VisualElement",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
["Button"] = {
|
|
||||||
["description"] = "The Button is a standard button element with click handling and state management.",
|
|
||||||
["size"] = 2437,
|
|
||||||
["default"] = true,
|
|
||||||
["path"] = "elements/Button.lua",
|
|
||||||
["requires"] = {
|
|
||||||
[1] = "VisualElement",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
["BaseFrame"] = {
|
|
||||||
["description"] = "This is the base frame class. It is the root element of all elements and the only element without a parent.",
|
|
||||||
["size"] = 9017,
|
|
||||||
["default"] = true,
|
|
||||||
["path"] = "elements/BaseFrame.lua",
|
|
||||||
["requires"] = {
|
|
||||||
[1] = "Container",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
["Tree"] = {
|
["Tree"] = {
|
||||||
|
["requires"] = {
|
||||||
|
[1] = "VisualElement",
|
||||||
|
},
|
||||||
|
["default"] = true,
|
||||||
["description"] = "",
|
["description"] = "",
|
||||||
["size"] = 22144,
|
["size"] = 22144,
|
||||||
["default"] = true,
|
|
||||||
["path"] = "elements/Tree.lua",
|
["path"] = "elements/Tree.lua",
|
||||||
["requires"] = {
|
|
||||||
[1] = "VisualElement",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
["SideNav"] = {
|
|
||||||
["description"] = "A SideNav element that provides sidebar navigation with multiple content areas.",
|
|
||||||
["size"] = 22135,
|
|
||||||
["default"] = true,
|
|
||||||
["path"] = "elements/SideNav.lua",
|
|
||||||
["requires"] = {
|
|
||||||
[1] = "Container",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
["Program"] = {
|
["Program"] = {
|
||||||
|
["requires"] = {
|
||||||
|
[1] = "VisualElement",
|
||||||
|
},
|
||||||
|
["default"] = true,
|
||||||
["description"] = "",
|
["description"] = "",
|
||||||
["size"] = 12730,
|
["size"] = 12730,
|
||||||
["default"] = true,
|
|
||||||
["path"] = "elements/Program.lua",
|
["path"] = "elements/Program.lua",
|
||||||
["requires"] = {
|
|
||||||
[1] = "VisualElement",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
["BarChart"] = {
|
["Dialog"] = {
|
||||||
["description"] = "",
|
["requires"] = {
|
||||||
["size"] = 3507,
|
[1] = "Frame",
|
||||||
|
},
|
||||||
["default"] = true,
|
["default"] = true,
|
||||||
["path"] = "elements/BarChart.lua",
|
["description"] = "A dialog overlay system with common presets (alert, confirm, prompt).",
|
||||||
["requires"] = {
|
["size"] = 8878,
|
||||||
},
|
["path"] = "elements/Dialog.lua",
|
||||||
},
|
|
||||||
["TextBox"] = {
|
|
||||||
["description"] = "A multi-line text editor component with cursor support and text manipulation features",
|
|
||||||
["size"] = 43530,
|
|
||||||
["default"] = false,
|
|
||||||
["path"] = "elements/TextBox.lua",
|
|
||||||
["requires"] = {
|
|
||||||
[1] = "VisualElement",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
["Label"] = {
|
|
||||||
["description"] = "A simple text display element that automatically resizes its width based on the text content.",
|
|
||||||
["size"] = 3092,
|
|
||||||
["default"] = true,
|
|
||||||
["path"] = "elements/Label.lua",
|
|
||||||
["requires"] = {
|
|
||||||
[1] = "VisualElement",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
["description"] = "UI Elements",
|
||||||
|
},
|
||||||
|
["plugins"] = {
|
||||||
|
["files"] = {
|
||||||
|
["benchmark"] = {
|
||||||
|
["requires"] = {
|
||||||
|
[1] = "VisualElement",
|
||||||
|
},
|
||||||
|
["default"] = true,
|
||||||
|
["description"] = "",
|
||||||
|
["size"] = 12581,
|
||||||
|
["path"] = "plugins/benchmark.lua",
|
||||||
|
},
|
||||||
|
["animation"] = {
|
||||||
|
["requires"] = {
|
||||||
|
},
|
||||||
|
["default"] = true,
|
||||||
|
["description"] = "",
|
||||||
|
["size"] = 18421,
|
||||||
|
["path"] = "plugins/animation.lua",
|
||||||
|
},
|
||||||
|
["debug"] = {
|
||||||
|
["requires"] = {
|
||||||
|
},
|
||||||
|
["default"] = true,
|
||||||
|
["description"] = "",
|
||||||
|
["size"] = 6250,
|
||||||
|
["path"] = "plugins/debug.lua",
|
||||||
|
},
|
||||||
|
["canvas"] = {
|
||||||
|
["requires"] = {
|
||||||
|
},
|
||||||
|
["default"] = true,
|
||||||
|
["description"] = "",
|
||||||
|
["size"] = 7873,
|
||||||
|
["path"] = "plugins/canvas.lua",
|
||||||
|
},
|
||||||
|
["theme"] = {
|
||||||
|
["requires"] = {
|
||||||
|
},
|
||||||
|
["default"] = true,
|
||||||
|
["description"] = "",
|
||||||
|
["size"] = 6775,
|
||||||
|
["path"] = "plugins/theme.lua",
|
||||||
|
},
|
||||||
|
["xml"] = {
|
||||||
|
["requires"] = {
|
||||||
|
},
|
||||||
|
["default"] = true,
|
||||||
|
["description"] = "",
|
||||||
|
["size"] = 14042,
|
||||||
|
["path"] = "plugins/xml.lua",
|
||||||
|
},
|
||||||
|
["reactive"] = {
|
||||||
|
["requires"] = {
|
||||||
|
},
|
||||||
|
["default"] = true,
|
||||||
|
["description"] = "",
|
||||||
|
["size"] = 11845,
|
||||||
|
["path"] = "plugins/reactive.lua",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["description"] = "Plugins",
|
||||||
},
|
},
|
||||||
["core"] = {
|
["core"] = {
|
||||||
["description"] = "Core Files",
|
|
||||||
["files"] = {
|
["files"] = {
|
||||||
["main"] = {
|
|
||||||
["description"] = "",
|
|
||||||
["size"] = 19883,
|
|
||||||
["default"] = true,
|
|
||||||
["path"] = "main.lua",
|
|
||||||
["requires"] = {
|
|
||||||
},
|
|
||||||
},
|
|
||||||
["errorManager"] = {
|
|
||||||
["description"] = "",
|
|
||||||
["size"] = 3789,
|
|
||||||
["default"] = true,
|
|
||||||
["path"] = "errorManager.lua",
|
|
||||||
["requires"] = {
|
|
||||||
},
|
|
||||||
},
|
|
||||||
["propertySystem"] = {
|
["propertySystem"] = {
|
||||||
|
["requires"] = {
|
||||||
|
},
|
||||||
|
["default"] = true,
|
||||||
["description"] = "",
|
["description"] = "",
|
||||||
["size"] = 18186,
|
["size"] = 18186,
|
||||||
["default"] = true,
|
|
||||||
["path"] = "propertySystem.lua",
|
["path"] = "propertySystem.lua",
|
||||||
["requires"] = {
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
["init"] = {
|
["errorManager"] = {
|
||||||
["description"] = "",
|
|
||||||
["size"] = 622,
|
|
||||||
["default"] = true,
|
|
||||||
["path"] = "init.lua",
|
|
||||||
["requires"] = {
|
["requires"] = {
|
||||||
},
|
},
|
||||||
|
["default"] = true,
|
||||||
|
["description"] = "",
|
||||||
|
["size"] = 3789,
|
||||||
|
["path"] = "errorManager.lua",
|
||||||
},
|
},
|
||||||
["layoutManager"] = {
|
["layoutManager"] = {
|
||||||
|
["requires"] = {
|
||||||
|
},
|
||||||
|
["default"] = true,
|
||||||
["description"] = "",
|
["description"] = "",
|
||||||
["size"] = 2488,
|
["size"] = 2488,
|
||||||
["default"] = true,
|
|
||||||
["path"] = "layoutManager.lua",
|
["path"] = "layoutManager.lua",
|
||||||
["requires"] = {
|
|
||||||
},
|
|
||||||
},
|
|
||||||
["render"] = {
|
|
||||||
["description"] = "",
|
|
||||||
["size"] = 12422,
|
|
||||||
["default"] = true,
|
|
||||||
["path"] = "render.lua",
|
|
||||||
["requires"] = {
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
["log"] = {
|
["log"] = {
|
||||||
|
["requires"] = {
|
||||||
|
},
|
||||||
|
["default"] = true,
|
||||||
["description"] = "",
|
["description"] = "",
|
||||||
["size"] = 3142,
|
["size"] = 3142,
|
||||||
["default"] = true,
|
|
||||||
["path"] = "log.lua",
|
["path"] = "log.lua",
|
||||||
|
},
|
||||||
|
["init"] = {
|
||||||
["requires"] = {
|
["requires"] = {
|
||||||
},
|
},
|
||||||
|
["default"] = true,
|
||||||
|
["description"] = "",
|
||||||
|
["size"] = 622,
|
||||||
|
["path"] = "init.lua",
|
||||||
|
},
|
||||||
|
["render"] = {
|
||||||
|
["requires"] = {
|
||||||
|
},
|
||||||
|
["default"] = true,
|
||||||
|
["description"] = "",
|
||||||
|
["size"] = 12422,
|
||||||
|
["path"] = "render.lua",
|
||||||
},
|
},
|
||||||
["elementManager"] = {
|
["elementManager"] = {
|
||||||
["description"] = "",
|
|
||||||
["size"] = 15411,
|
|
||||||
["default"] = true,
|
|
||||||
["path"] = "elementManager.lua",
|
|
||||||
["requires"] = {
|
["requires"] = {
|
||||||
},
|
},
|
||||||
|
["default"] = true,
|
||||||
|
["description"] = "",
|
||||||
|
["size"] = 15411,
|
||||||
|
["path"] = "elementManager.lua",
|
||||||
|
},
|
||||||
|
["main"] = {
|
||||||
|
["requires"] = {
|
||||||
|
},
|
||||||
|
["default"] = true,
|
||||||
|
["description"] = "",
|
||||||
|
["size"] = 19883,
|
||||||
|
["path"] = "main.lua",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
["description"] = "Core Files",
|
||||||
|
},
|
||||||
|
["libraries"] = {
|
||||||
|
["files"] = {
|
||||||
|
["expect"] = {
|
||||||
|
["requires"] = {
|
||||||
|
},
|
||||||
|
["default"] = true,
|
||||||
|
["description"] = "",
|
||||||
|
["size"] = 846,
|
||||||
|
["path"] = "libraries/expect.lua",
|
||||||
|
},
|
||||||
|
["utils"] = {
|
||||||
|
["requires"] = {
|
||||||
|
},
|
||||||
|
["default"] = true,
|
||||||
|
["description"] = "",
|
||||||
|
["size"] = 2661,
|
||||||
|
["path"] = "libraries/utils.lua",
|
||||||
|
},
|
||||||
|
["collectionentry"] = {
|
||||||
|
["requires"] = {
|
||||||
|
},
|
||||||
|
["default"] = true,
|
||||||
|
["description"] = "",
|
||||||
|
["size"] = 3551,
|
||||||
|
["path"] = "libraries/collectionentry.lua",
|
||||||
|
},
|
||||||
|
["colorHex"] = {
|
||||||
|
["requires"] = {
|
||||||
|
},
|
||||||
|
["default"] = true,
|
||||||
|
["description"] = "",
|
||||||
|
["size"] = 132,
|
||||||
|
["path"] = "libraries/colorHex.lua",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
["description"] = "Libraries",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
["metadata"] = {
|
|
||||||
["version"] = "2.0",
|
|
||||||
["generated"] = "Sun Nov 2 09:56:24 2025",
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
@@ -1732,9 +1732,10 @@ bc.class=db;return bc end
|
|||||||
function db:init(bc,cc)
|
function db:init(bc,cc)
|
||||||
ab.init(self,bc,cc)self.set("type","Container")
|
ab.init(self,bc,cc)self.set("type","Container")
|
||||||
self:observe("width",function()
|
self:observe("width",function()
|
||||||
self.set("childrenSorted",false)self.set("childrenEventsSorted",false)end)
|
self.set("childrenSorted",false)self.set("childrenEventsSorted",false)
|
||||||
|
self:updateRender()end)
|
||||||
self:observe("height",function()self.set("childrenSorted",false)
|
self:observe("height",function()self.set("childrenSorted",false)
|
||||||
self.set("childrenEventsSorted",false)end)end
|
self.set("childrenEventsSorted",false)self:updateRender()end)end
|
||||||
function db:isChildVisible(bc)
|
function db:isChildVisible(bc)
|
||||||
if not bc:isType("VisualElement")then return false end;if(bc.get("visible")==false)then return false end;if(bc._destroyed)then return
|
if not bc:isType("VisualElement")then return false end;if(bc.get("visible")==false)then return false end;if(bc._destroyed)then return
|
||||||
false end
|
false end
|
||||||
@@ -1759,9 +1760,9 @@ function db:clear()self.set("children",{})
|
|||||||
self.set("childrenEvents",{})self.set("visibleChildren",{})
|
self.set("childrenEvents",{})self.set("visibleChildren",{})
|
||||||
self.set("visibleChildrenEvents",{})self.set("childrenSorted",true)
|
self.set("visibleChildrenEvents",{})self.set("childrenSorted",true)
|
||||||
self.set("childrenEventsSorted",true)return self end
|
self.set("childrenEventsSorted",true)return self end
|
||||||
function db:sortChildren()
|
function db:sortChildren()self.set("childrenSorted",true)if self._layoutInstance then
|
||||||
self.set("visibleChildren",_c(self,self._values.children))self.set("childrenSorted",true)if self._layoutInstance then
|
self:updateLayout()end
|
||||||
self:updateLayout()end;return self end
|
self.set("visibleChildren",_c(self,self._values.children))return self end
|
||||||
function db:sortChildrenEvents(bc)if self._values.childrenEvents[bc]then
|
function db:sortChildrenEvents(bc)if self._values.childrenEvents[bc]then
|
||||||
self._values.visibleChildrenEvents[bc]=_c(self,self._values.childrenEvents[bc])end
|
self._values.visibleChildrenEvents[bc]=_c(self,self._values.childrenEvents[bc])end
|
||||||
self.set("childrenEventsSorted",true)return self end
|
self.set("childrenEventsSorted",true)return self end
|
||||||
@@ -3471,102 +3472,108 @@ if bd then local cd=bd.readAll()bd.close()
|
|||||||
cb.default=textutils.unserializeJSON(cd)if not cb.default then
|
cb.default=textutils.unserializeJSON(cd)if not cb.default then
|
||||||
ab.error("Failed to load theme from "..ad)end else
|
ab.error("Failed to load theme from "..ad)end else
|
||||||
ab.error("Could not open theme file: "..ad)end end;return{BaseElement=_c,API=_d} end
|
ab.error("Could not open theme file: "..ad)end end;return{BaseElement=_c,API=_d} end
|
||||||
project["plugins/reactive.lua"] = function(...) local bb=require("errorManager")
|
project["plugins/reactive.lua"] = function(...) local cb=require("errorManager")
|
||||||
local cb=require("propertySystem")local db={colors=true,math=true,clamp=true,round=true}
|
local db=require("propertySystem")local _c={colors=true,math=true,clamp=true,round=true}
|
||||||
local _c={clamp=function(cd,dd,__a)return
|
local ac={clamp=function(__a,a_a,b_a)return
|
||||||
math.min(math.max(cd,dd),__a)end,round=function(cd)
|
math.min(math.max(__a,a_a),b_a)end,round=function(__a)
|
||||||
return math.floor(cd+0.5)end,floor=math.floor,ceil=math.ceil,abs=math.abs}
|
return math.floor(__a+0.5)end,floor=math.floor,ceil=math.ceil,abs=math.abs}
|
||||||
local function ac(cd)return
|
local function bc(__a)return
|
||||||
{parent=cd:find("parent%."),self=cd:find("self%."),other=cd:find("[^(parent)][^(self)]%.")}end
|
{parent=__a:find("parent%."),self=__a:find("self%."),other=__a:find("[^(parent)][^(self)]%.")}end
|
||||||
local function bc(cd,dd,__a)local a_a=ac(cd)
|
local function cc(__a,a_a,b_a)local c_a=bc(__a)
|
||||||
if a_a.parent and not dd.parent then
|
if c_a.parent and not a_a.parent then
|
||||||
bb.header="Reactive evaluation error"
|
cb.header="Reactive evaluation error"
|
||||||
bb.error("Expression uses parent but no parent available")return function()return nil end end;cd=cd:gsub("^{(.+)}$","%1")
|
cb.error("Expression uses parent but no parent available")return function()return nil end end;__a=__a:gsub("^{(.+)}$","%1")
|
||||||
cd=cd:gsub("([%w_]+)%$([%w_]+)",function(_aa,aaa)
|
__a=__a:gsub("([%w_]+)%$([%w_]+)",function(baa,caa)
|
||||||
if _aa=="self"then return
|
if baa=="self"then return
|
||||||
string.format('__getState("%s")',aaa)elseif _aa=="parent"then return
|
string.format('__getState("%s")',caa)elseif baa=="parent"then return
|
||||||
string.format('__getParentState("%s")',aaa)else return
|
string.format('__getParentState("%s")',caa)else return
|
||||||
string.format('__getElementState("%s", "%s")',_aa,aaa)end end)
|
string.format('__getElementState("%s", "%s")',baa,caa)end end)
|
||||||
cd=cd:gsub("([%w_]+)%.([%w_]+)",function(_aa,aaa)if db[_aa]then return _aa.."."..aaa end;if
|
__a=__a:gsub("([%w_]+)%.([%w_]+)",function(baa,caa)if _c[baa]then return baa.."."..caa end;if
|
||||||
tonumber(_aa)then return _aa.."."..aaa end;return
|
tonumber(baa)then return baa.."."..caa end;return
|
||||||
string.format('__getProperty("%s", "%s")',_aa,aaa)end)
|
string.format('__getProperty("%s", "%s")',baa,caa)end)
|
||||||
local b_a=setmetatable({colors=colors,math=math,tostring=tostring,tonumber=tonumber,__getState=function(_aa)return dd:getState(_aa)end,__getParentState=function(_aa)return
|
local d_a=setmetatable({colors=colors,math=math,tostring=tostring,tonumber=tonumber,__getState=function(baa)return a_a:getState(baa)end,__getParentState=function(baa)return
|
||||||
dd.parent:getState(_aa)end,__getElementState=function(_aa,aaa)if tonumber(_aa)then return nil end
|
a_a.parent:getState(baa)end,__getElementState=function(baa,caa)if tonumber(baa)then return nil end
|
||||||
local baa=dd:getBaseFrame():getChild(_aa)if not baa then bb.header="Reactive evaluation error"
|
local daa=a_a:getBaseFrame():getChild(baa)if not daa then cb.header="Reactive evaluation error"
|
||||||
bb.error("Could not find element: ".._aa)return nil end;return
|
cb.error("Could not find element: "..baa)return nil end;return
|
||||||
baa:getState(aaa).value end,__getProperty=function(_aa,aaa)if
|
daa:getState(caa).value end,__getProperty=function(baa,caa)if
|
||||||
tonumber(_aa)then return nil end
|
tonumber(baa)then return nil end
|
||||||
if _aa=="self"then
|
if baa=="self"then if a_a._properties[caa]then
|
||||||
if dd._properties[aaa]then return dd.get(aaa)end;if dd._registeredStates and dd._registeredStates[aaa]then return
|
return a_a.get(caa)end;if
|
||||||
dd:hasState(aaa)end
|
a_a._registeredStates and a_a._registeredStates[caa]then return a_a:hasState(caa)end
|
||||||
local baa=dd.get("states")if baa and baa[aaa]~=nil then return true end
|
local daa=a_a.get("states")if daa and daa[caa]~=nil then return true end
|
||||||
bb.header="Reactive evaluation error"
|
cb.header="Reactive evaluation error"
|
||||||
bb.error("Property or state '"..
|
cb.error("Property or state '"..caa..
|
||||||
aaa.."' not found in element '"..dd:getType().."'")return nil elseif _aa=="parent"then if dd.parent._properties[aaa]then
|
"' not found in element '"..a_a:getType().."'")return nil elseif baa=="parent"then if a_a.parent._properties[caa]then return
|
||||||
return dd.parent.get(aaa)end
|
a_a.parent.get(caa)end;if a_a.parent._registeredStates and
|
||||||
if dd.parent._registeredStates and
|
a_a.parent._registeredStates[caa]then
|
||||||
dd.parent._registeredStates[aaa]then return dd.parent:hasState(aaa)end;local baa=dd.parent.get("states")if baa and baa[aaa]~=nil then
|
return a_a.parent:hasState(caa)end
|
||||||
return true end;bb.header="Reactive evaluation error"
|
local daa=a_a.parent.get("states")if daa and daa[caa]~=nil then return true end
|
||||||
bb.error(
|
cb.header="Reactive evaluation error"
|
||||||
"Property or state '"..aaa.."' not found in parent element")return nil else local baa=dd.parent:getChild(_aa)if not baa then
|
cb.error("Property or state '"..caa.."' not found in parent element")return nil else local daa=a_a.parent:getChild(baa)if not daa then
|
||||||
bb.header="Reactive evaluation error"
|
cb.header="Reactive evaluation error"
|
||||||
bb.error("Could not find element: ".._aa)return nil end;if
|
cb.error("Could not find element: "..baa)return nil end;if
|
||||||
baa._properties[aaa]then return baa.get(aaa)end
|
daa._properties[caa]then return daa.get(caa)end
|
||||||
if baa._registeredStates and
|
if daa._registeredStates and
|
||||||
baa._registeredStates[aaa]then return baa:hasState(aaa)end;local caa=baa.get("states")
|
daa._registeredStates[caa]then return daa:hasState(caa)end;local _ba=daa.get("states")
|
||||||
if caa and caa[aaa]~=nil then return true end;bb.header="Reactive evaluation error"
|
if _ba and _ba[caa]~=nil then return true end;cb.header="Reactive evaluation error"
|
||||||
bb.error("Property or state '"..aaa..
|
cb.error("Property or state '"..caa..
|
||||||
"' not found in element '".._aa.."'")return nil end end},{__index=_c})if(dd._properties[__a].type=="string")then
|
"' not found in element '"..baa.."'")return nil end end},{__index=ac})if(a_a._properties[b_a].type=="string")then
|
||||||
cd="tostring("..cd..")"elseif(dd._properties[__a].type=="number")then
|
__a="tostring("..__a..")"elseif(a_a._properties[b_a].type=="number")then
|
||||||
cd="tonumber("..cd..")"end;local c_a,d_a=load(
|
__a="tonumber("..__a..")"end;local _aa,aaa=load(
|
||||||
"return "..cd,"reactive","t",b_a)
|
"return "..__a,"reactive","t",d_a)
|
||||||
if not c_a then
|
if not _aa then
|
||||||
bb.header="Reactive evaluation error"bb.error("Invalid expression: "..d_a)return
|
cb.header="Reactive evaluation error"cb.error("Invalid expression: "..aaa)return
|
||||||
function()return nil end end;return c_a end
|
function()return nil end end;return _aa end
|
||||||
local function cc(cd,dd)
|
local function dc(__a,a_a)
|
||||||
for __a in cd:gmatch("([%w_]+)%.")do
|
for b_a in __a:gmatch("([%w_]+)%.")do
|
||||||
if not db[__a]then
|
if not _c[b_a]then
|
||||||
if __a=="self"then elseif __a=="parent"then
|
if b_a=="self"then elseif b_a=="parent"then
|
||||||
if not dd.parent then
|
if not a_a.parent then
|
||||||
bb.header="Reactive evaluation error"bb.error("No parent element available")return false end else
|
cb.header="Reactive evaluation error"cb.error("No parent element available")return false end else
|
||||||
if(tonumber(__a)==nil)then local a_a=dd.parent:getChild(__a)if not a_a then
|
if(tonumber(b_a)==nil)then local c_a=a_a.parent:getChild(b_a)if not c_a then
|
||||||
bb.header="Reactive evaluation error"
|
cb.header="Reactive evaluation error"
|
||||||
bb.error("Referenced element not found: "..__a)return false end end end end end;return true end;local dc=setmetatable({},{__mode="k"})
|
cb.error("Referenced element not found: "..b_a)return false end end end end end;return true end;local _d=setmetatable({},{__mode="k"})
|
||||||
local _d=setmetatable({},{__mode="k",__index=function(cd,dd)cd[dd]={}
|
local ad=setmetatable({},{__mode="k",__index=function(__a,a_a)__a[a_a]={}return
|
||||||
return cd[dd]end})
|
__a[a_a]end})
|
||||||
local function ad(cd,dd,__a)local a_a=ac(dd)
|
local bd=setmetatable({},{__mode="k",__index=function(__a,a_a)__a[a_a]={}return __a[a_a]end})
|
||||||
if _d[cd][__a]then for c_a,d_a in ipairs(_d[cd][__a])do
|
local function cd(__a,a_a,b_a)local c_a=bc(a_a)
|
||||||
d_a.target:removeObserver(d_a.property,d_a.callback)end end;local b_a={}
|
if ad[__a][b_a]then for _aa,aaa in ipairs(ad[__a][b_a])do
|
||||||
for c_a,d_a in dd:gmatch("([%w_]+)%.([%w_]+)")do
|
aaa.target:removeObserver(aaa.property,aaa.callback)end end;local d_a={}
|
||||||
if not db[c_a]then local _aa
|
for _aa,aaa in a_a:gmatch("([%w_]+)%.([%w_]+)")do
|
||||||
|
if not _c[_aa]then local baa
|
||||||
if
|
if
|
||||||
c_a=="self"and a_a.self then _aa=cd elseif c_a=="parent"and a_a.parent then _aa=cd.parent elseif a_a.other then
|
_aa=="self"and c_a.self then baa=__a elseif _aa=="parent"and c_a.parent then baa=__a.parent elseif c_a.other then
|
||||||
_aa=cd:getBaseFrame():getChild(c_a)end
|
baa=__a:getBaseFrame():getChild(_aa)end
|
||||||
if _aa then local aaa=false
|
if baa then local caa=false
|
||||||
if _aa._properties[d_a]then aaa=false elseif _aa._registeredStates and
|
if baa._properties[aaa]then caa=false elseif baa._registeredStates and
|
||||||
_aa._registeredStates[d_a]then aaa=true else local caa=_aa.get("states")if caa and
|
baa._registeredStates[aaa]then caa=true else local _ba=baa.get("states")if _ba and
|
||||||
caa[d_a]~=nil then aaa=true end end
|
_ba[aaa]~=nil then caa=true end end
|
||||||
local baa={target=_aa,property=aaa and"states"or d_a,callback=function()cd:updateRender()end}_aa:observe(baa.property,baa.callback)
|
local daa={target=baa,property=caa and"states"or aaa,callback=function()local _ba=bd[__a][b_a]local aba=__a.get(b_a)
|
||||||
table.insert(b_a,baa)end end end;_d[cd][__a]=b_a end
|
if
|
||||||
cb.addSetterHook(function(cd,dd,__a,a_a)
|
_ba~=aba then bd[__a][b_a]=aba
|
||||||
if type(__a)=="string"and __a:match("^{.+}$")then
|
if
|
||||||
local b_a=__a:gsub("^{(.+)}$","%1")local c_a=ac(b_a)
|
__a._observers and __a._observers[b_a]then for bba,cba in ipairs(__a._observers[b_a])do cba()end end;__a:updateRender()end end}baa:observe(daa.property,daa.callback)
|
||||||
if c_a.parent and not cd.parent then return a_a.default end;if not cc(b_a,cd)then return a_a.default end;ad(cd,b_a,dd)if not
|
table.insert(d_a,daa)end end end;ad[__a][b_a]=d_a end
|
||||||
dc[cd]then dc[cd]={}end;if not dc[cd][__a]then local d_a=bc(__a,cd,dd)
|
db.addSetterHook(function(__a,a_a,b_a,c_a)
|
||||||
dc[cd][__a]=d_a end
|
if type(b_a)=="string"and b_a:match("^{.+}$")then
|
||||||
|
local d_a=b_a:gsub("^{(.+)}$","%1")local _aa=bc(d_a)
|
||||||
|
if _aa.parent and not __a.parent then return c_a.default end;if not dc(d_a,__a)then return c_a.default end
|
||||||
|
cd(__a,d_a,a_a)if not _d[__a]then _d[__a]={}end;if not _d[__a][b_a]then
|
||||||
|
local aaa=cc(b_a,__a,a_a)_d[__a][b_a]=aaa end
|
||||||
return
|
return
|
||||||
function(d_a)if
|
function(aaa)
|
||||||
cd._destroyed or(c_a.parent and not cd.parent)then return a_a.default end
|
if __a._destroyed or(_aa.parent and not
|
||||||
local _aa,aaa=pcall(dc[cd][__a])
|
__a.parent)then return c_a.default end;local baa,caa=pcall(_d[__a][b_a])
|
||||||
if not _aa then if aaa and aaa:match("attempt to index.-nil value")then return
|
if not baa then
|
||||||
a_a.default end
|
if caa and
|
||||||
bb.header="Reactive evaluation error"
|
caa:match("attempt to index.-nil value")then return c_a.default end;cb.header="Reactive evaluation error"if type(caa)=="string"then cb.error(
|
||||||
if type(aaa)=="string"then
|
"Error evaluating expression: "..caa)else
|
||||||
bb.error("Error evaluating expression: "..aaa)else bb.error("Error evaluating expression")end;return a_a.default end;return aaa end end end)local bd={}
|
cb.error("Error evaluating expression")end
|
||||||
bd.hooks={destroy=function(cd)
|
return c_a.default end;bd[__a][a_a]=caa;return caa end end end)local dd={}
|
||||||
if _d[cd]then
|
dd.hooks={destroy=function(__a)
|
||||||
for dd,__a in pairs(_d[cd])do for a_a,b_a in ipairs(__a)do
|
if ad[__a]then
|
||||||
b_a.target:removeObserver(b_a.property,b_a.callback)end end;_d[cd]=nil;dc[cd]=nil end end}return{BaseElement=bd} end
|
for a_a,b_a in pairs(ad[__a])do for c_a,d_a in ipairs(b_a)do
|
||||||
|
d_a.target:removeObserver(d_a.property,d_a.callback)end end;ad[__a]=nil;bd[__a]=nil;_d[__a]=nil end end}return{BaseElement=dd} end
|
||||||
project["plugins/xml.lua"] = function(...) local bb=require("errorManager")local cb=require("log")
|
project["plugins/xml.lua"] = function(...) local bb=require("errorManager")local cb=require("log")
|
||||||
local db={new=function(cd)
|
local db={new=function(cd)
|
||||||
return
|
return
|
||||||
|
|||||||
Reference in New Issue
Block a user