rotor-framework 0.3.7 β†’ 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.
package/README.md CHANGED
@@ -22,6 +22,12 @@
22
22
 
23
23
  ---
24
24
 
25
+ ## 🎯 Quick Start with Starter Template
26
+
27
+ Want to get started quickly? Check out **[rotor-starter](https://github.com/mobalazs/rotor-starter)** - a ready-to-use project template with Rotor Framework pre-configured, sample components, and best practices built in.
28
+
29
+ ---
30
+
25
31
  ## πŸ“¦ Installation
26
32
 
27
33
  ### Prerequisites
@@ -90,7 +96,7 @@ You can find [🌱](./docs/ai/readme.opt.yaml) symbols in all documentation page
90
96
 
91
97
  ## πŸ“š Learn More
92
98
 
93
- ![Version](https://img.shields.io/badge/version-v0.3.7-blue?label=Documents%20TAG)
99
+ ![Version](https://img.shields.io/badge/version-v0.4.0-blue?label=Documents%20TAG)
94
100
 
95
101
  ### Framework Core
96
102
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rotor-framework",
3
- "version": "0.3.7",
3
+ "version": "0.4.0",
4
4
  "description": "Roku toolkit library providing a ViewBuilder, full UI lifecycle with focus handling and many core features, plus MVI-based state management.",
5
5
  "author": "BalΓ‘zs MolnΓ‘r",
6
6
  "license": "MIT",
@@ -4,7 +4,7 @@
4
4
  ' β–β–›β–€β–šβ––β–β–Œ β–β–Œ β–ˆ β–β–Œ β–β–Œβ–β–›β–€β–šβ–– β–β–›β–€β–€β–˜β–β–›β–€β–šβ––β–β–›β–€β–œβ–Œβ–β–Œ β–β–Œβ–β–›β–€β–€β–˜β–β–Œ β–β–Œβ–β–Œ β–β–Œβ–β–›β–€β–šβ––β–β–›β–šβ––
5
5
  ' β–β–Œ β–β–Œβ–β–šβ–„β–žβ–˜ β–ˆ β–β–šβ–„β–žβ–˜β–β–Œ β–β–Œ β–β–Œ β–β–Œ β–β–Œβ–β–Œ β–β–Œβ–β–Œ β–β–Œβ–β–™β–„β–„β––β–β–™β–ˆβ–Ÿβ–Œβ–β–šβ–„β–žβ–˜β–β–Œ β–β–Œβ–β–Œ β–β–Œ
6
6
  ' Rotor Frameworkβ„’
7
- ' Version 0.3.7
7
+ ' Version 0.4.0
8
8
  ' Β© 2025 BalΓ‘zs MolnΓ‘r β€” MIT License
9
9
  ' =========================================================================
10
10
 
@@ -85,7 +85,7 @@ namespace Rotor
85
85
  class Framework
86
86
 
87
87
  name = "Rotor Framework"
88
- version = "0.3.7"
88
+ version = "0.4.0"
89
89
 
90
90
  config = {
91
91
  tasks: invalid, ' @array (optional)
@@ -4,7 +4,7 @@
4
4
  ' β–β–›β–€β–šβ––β–β–Œ β–β–Œ β–ˆ β–β–Œ β–β–Œβ–β–›β–€β–šβ–– β–β–›β–€β–€β–˜β–β–›β–€β–šβ––β–β–›β–€β–œβ–Œβ–β–Œ β–β–Œβ–β–›β–€β–€β–˜β–β–Œ β–β–Œβ–β–Œ β–β–Œβ–β–›β–€β–šβ––β–β–›β–šβ––
5
5
  ' β–β–Œ β–β–Œβ–β–šβ–„β–žβ–˜ β–ˆ β–β–šβ–„β–žβ–˜β–β–Œ β–β–Œ β–β–Œ β–β–Œ β–β–Œβ–β–Œ β–β–Œβ–β–Œ β–β–Œβ–β–™β–„β–„β––β–β–™β–ˆβ–Ÿβ–Œβ–β–šβ–„β–žβ–˜β–β–Œ β–β–Œβ–β–Œ β–β–Œ
6
6
  ' Rotor Frameworkβ„’
7
- ' Version 0.3.7
7
+ ' Version 0.4.0
8
8
  ' Β© 2025 BalΓ‘zs MolnΓ‘r β€” MIT License
9
9
  ' =========================================================================
10
10
 
@@ -70,7 +70,7 @@ namespace Rotor
70
70
  class FrameworkTask
71
71
 
72
72
  name = "Rotor Framework"
73
- version = "0.3.7"
73
+ version = "0.4.0"
74
74
 
75
75
  config = {
76
76
  tasks: invalid, ' optional
@@ -184,9 +184,9 @@ namespace Rotor
184
184
  data = msg.getData()
185
185
  extraInfo = msg.GetInfo() ' Info AA passed during observeFieldScoped
186
186
 
187
- if extraInfo?.asyncReducerCallbackId <> invalid and m.dispatcherProvider.get(extraInfo?.asyncReducerCallbackId) <> invalid
187
+ if extraInfo?.dispatcherId <> invalid and m.dispatcherProvider.get(extraInfo?.dispatcherId) <> invalid
188
188
  ' Catch by dispatcherId
189
- m.dispatcherProvider.get(extraInfo?.asyncReducerCallbackId).asyncReducerCallback(msg)
189
+ m.dispatcherProvider.get(extraInfo?.dispatcherId).asyncReducerCallback(msg)
190
190
  else
191
191
  dispatcherId = fieldId
192
192
  dispatcherInstance = m.dispatcherProvider.get(dispatcherId)
@@ -133,6 +133,18 @@ namespace Rotor.ViewBuilder
133
133
  return m.getFrameworkInstance().dispatcherProvider.getFacade(dispatcherId, m)
134
134
  end function
135
135
 
136
+ ' Dispatch shortcut - Dispatches an event via specific dispatcher'
137
+ widget.dispatchTo = sub(dispatcherId as string, dispatchObject as object)
138
+ dispatcherFaced = m.getDispatcher(dispatcherId)
139
+ dispatcherFaced.dispatch(dispatchObject)
140
+ end sub
141
+
142
+ ' Listen shortcut - Listen to specific dispatcher'
143
+ widget.getStateFrom = function(dispatcherId as string)
144
+ dispatcherFaced = m.getDispatcher(dispatcherId)
145
+ return dispatcherFaced.getState()
146
+ end function
147
+
136
148
  ' animator - Gets animator factory by ID *'
137
149
  widget.animator = function(animatorId) as object
138
150
  return m.getFrameworkInstance().animatorProvider.getFactory(animatorId, m)