@quenty/transitionmodel 7.19.2 → 7.19.3
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/CHANGELOG.md +8 -0
- package/package.json +15 -15
- package/src/Shared/SpringTransitionModel.lua +3 -10
- package/src/Shared/TransitionModel.lua +22 -24
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [7.19.3](https://github.com/Quenty/NevermoreEngine/compare/@quenty/transitionmodel@7.19.2...@quenty/transitionmodel@7.19.3) (2025-04-10)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @quenty/transitionmodel
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
## [7.19.2](https://github.com/Quenty/NevermoreEngine/compare/@quenty/transitionmodel@7.19.0...@quenty/transitionmodel@7.19.2) (2025-04-07)
|
|
7
15
|
|
|
8
16
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quenty/transitionmodel",
|
|
3
|
-
"version": "7.19.
|
|
3
|
+
"version": "7.19.3",
|
|
4
4
|
"description": "Helps with Gui visiblity showing and hiding",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Roblox",
|
|
@@ -25,22 +25,22 @@
|
|
|
25
25
|
"Quenty"
|
|
26
26
|
],
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@quenty/baseobject": "^10.8.
|
|
29
|
-
"@quenty/basicpane": "^13.17.
|
|
30
|
-
"@quenty/blend": "^12.18.
|
|
31
|
-
"@quenty/ducktype": "^5.8.
|
|
32
|
-
"@quenty/instanceutils": "^13.17.
|
|
33
|
-
"@quenty/loader": "^10.8.
|
|
34
|
-
"@quenty/maid": "^3.4.
|
|
35
|
-
"@quenty/promise": "^10.10.
|
|
36
|
-
"@quenty/rx": "^13.17.
|
|
37
|
-
"@quenty/signal": "^7.10.
|
|
38
|
-
"@quenty/spring": "^10.8.
|
|
39
|
-
"@quenty/timedtween": "^7.18.
|
|
40
|
-
"@quenty/valueobject": "^13.17.
|
|
28
|
+
"@quenty/baseobject": "^10.8.3",
|
|
29
|
+
"@quenty/basicpane": "^13.17.3",
|
|
30
|
+
"@quenty/blend": "^12.18.3",
|
|
31
|
+
"@quenty/ducktype": "^5.8.4",
|
|
32
|
+
"@quenty/instanceutils": "^13.17.3",
|
|
33
|
+
"@quenty/loader": "^10.8.3",
|
|
34
|
+
"@quenty/maid": "^3.4.3",
|
|
35
|
+
"@quenty/promise": "^10.10.4",
|
|
36
|
+
"@quenty/rx": "^13.17.3",
|
|
37
|
+
"@quenty/signal": "^7.10.3",
|
|
38
|
+
"@quenty/spring": "^10.8.4",
|
|
39
|
+
"@quenty/timedtween": "^7.18.3",
|
|
40
|
+
"@quenty/valueobject": "^13.17.3"
|
|
41
41
|
},
|
|
42
42
|
"publishConfig": {
|
|
43
43
|
"access": "public"
|
|
44
44
|
},
|
|
45
|
-
"gitHead": "
|
|
45
|
+
"gitHead": "b06c070ae91d5dab7bd8de6e290ad2caabb15d8f"
|
|
46
46
|
}
|
|
@@ -20,20 +20,13 @@ SpringTransitionModel.__index = SpringTransitionModel
|
|
|
20
20
|
|
|
21
21
|
export type SpringTransitionModel<T> = typeof(setmetatable(
|
|
22
22
|
{} :: {
|
|
23
|
-
_maid: Maid.Maid,
|
|
24
23
|
_showTarget: any,
|
|
25
24
|
_hideTarget: any,
|
|
26
25
|
_springObject: any,
|
|
27
26
|
_transitionModel: TransitionModel.TransitionModel,
|
|
28
|
-
|
|
29
|
-
-- From BasicPane
|
|
30
|
-
IsVisible: (self: SpringTransitionModel<T>) -> boolean,
|
|
31
|
-
SetVisible: (self: SpringTransitionModel<T>, isVisible: boolean, doNotAnimate: boolean?) -> (),
|
|
32
|
-
VisibleChanged: _Signal.Signal<boolean, boolean>,
|
|
33
|
-
Destroy: (self: SpringTransitionModel<T>) -> (),
|
|
34
27
|
},
|
|
35
|
-
SpringTransitionModel
|
|
36
|
-
))
|
|
28
|
+
{} :: typeof({ __index = SpringTransitionModel })
|
|
29
|
+
)) & BasicPane.BasicPane
|
|
37
30
|
|
|
38
31
|
--[=[
|
|
39
32
|
A transition model that has a spring underlying it. Very useful
|
|
@@ -44,7 +37,7 @@ export type SpringTransitionModel<T> = typeof(setmetatable(
|
|
|
44
37
|
@return SpringTransitionModel<T>
|
|
45
38
|
]=]
|
|
46
39
|
function SpringTransitionModel.new<T>(showTarget: T?, hideTarget: T?): SpringTransitionModel<T>
|
|
47
|
-
local self = setmetatable(BasicPane.new() :: any, SpringTransitionModel)
|
|
40
|
+
local self: SpringTransitionModel<T> = setmetatable(BasicPane.new() :: any, SpringTransitionModel)
|
|
48
41
|
|
|
49
42
|
self._showTarget = showTarget or 1
|
|
50
43
|
self._hideTarget = hideTarget
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
--!strict
|
|
1
2
|
--[=[
|
|
2
3
|
This model deduplicates and handles transitions for showing, hiding, and
|
|
3
4
|
toggling. Inherits from [BasicPane]. See for more API.
|
|
@@ -19,20 +20,17 @@ local TransitionModel = setmetatable({}, BasicPane)
|
|
|
19
20
|
TransitionModel.ClassName = "TransitionModel"
|
|
20
21
|
TransitionModel.__index = TransitionModel
|
|
21
22
|
|
|
23
|
+
export type ShowHideCallback = (maid: Maid.Maid, doNotAnimate: boolean?) -> Promise.Promise<()>
|
|
24
|
+
|
|
22
25
|
export type TransitionModel = typeof(setmetatable(
|
|
23
26
|
{} :: {
|
|
24
27
|
_isShowingComplete: ValueObject.ValueObject<boolean>,
|
|
25
28
|
_isHidingComplete: ValueObject.ValueObject<boolean>,
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
_maid: Maid.Maid,
|
|
29
|
-
IsVisible: (self: TransitionModel) -> boolean,
|
|
30
|
-
SetVisible: (self: TransitionModel, isVisible: boolean, doNotAnimate: boolean?) -> (),
|
|
31
|
-
VisibleChanged: _Signal.Signal<boolean, boolean>,
|
|
32
|
-
Destroy: (self: TransitionModel) -> (),
|
|
29
|
+
_hideCallback: ShowHideCallback?,
|
|
30
|
+
_showCallback: ShowHideCallback?,
|
|
33
31
|
},
|
|
34
|
-
TransitionModel
|
|
35
|
-
))
|
|
32
|
+
{} :: typeof({ __index = TransitionModel })
|
|
33
|
+
)) & BasicPane.BasicPane
|
|
36
34
|
|
|
37
35
|
--[=[
|
|
38
36
|
A transition model that takes a set amount of time to show
|
|
@@ -43,7 +41,7 @@ export type TransitionModel = typeof(setmetatable(
|
|
|
43
41
|
@return TransitionModel
|
|
44
42
|
]=]
|
|
45
43
|
function TransitionModel.new(): TransitionModel
|
|
46
|
-
local self = setmetatable(BasicPane.new(), TransitionModel)
|
|
44
|
+
local self: TransitionModel = setmetatable(BasicPane.new() :: any, TransitionModel)
|
|
47
45
|
|
|
48
46
|
self._isShowingComplete = self._maid:Add(ValueObject.new(false, "boolean"))
|
|
49
47
|
self._isHidingComplete = self._maid:Add(ValueObject.new(false, "boolean"))
|
|
@@ -78,7 +76,7 @@ end
|
|
|
78
76
|
@param doNotAnimate boolean
|
|
79
77
|
@return Promise
|
|
80
78
|
]=]
|
|
81
|
-
function TransitionModel
|
|
79
|
+
function TransitionModel.PromiseShow(self: TransitionModel, doNotAnimate: boolean?): Promise.Promise<()>
|
|
82
80
|
local promise = self:_promiseIsShown()
|
|
83
81
|
|
|
84
82
|
self:Show(doNotAnimate)
|
|
@@ -92,7 +90,7 @@ end
|
|
|
92
90
|
@param doNotAnimate boolean
|
|
93
91
|
@return Promise
|
|
94
92
|
]=]
|
|
95
|
-
function TransitionModel
|
|
93
|
+
function TransitionModel.PromiseHide(self: TransitionModel, doNotAnimate: boolean?): Promise.Promise<()>
|
|
96
94
|
local promise = self:_promiseIsHidden()
|
|
97
95
|
|
|
98
96
|
self:Hide(doNotAnimate)
|
|
@@ -106,7 +104,7 @@ end
|
|
|
106
104
|
@param doNotAnimate boolean
|
|
107
105
|
@return Promise
|
|
108
106
|
]=]
|
|
109
|
-
function TransitionModel
|
|
107
|
+
function TransitionModel.PromiseToggle(self: TransitionModel, doNotAnimate: boolean?): Promise.Promise<()>
|
|
110
108
|
if self:IsVisible() then
|
|
111
109
|
return self:PromiseShow(doNotAnimate)
|
|
112
110
|
else
|
|
@@ -118,7 +116,7 @@ end
|
|
|
118
116
|
Returns true if showing is complete
|
|
119
117
|
@return boolean?
|
|
120
118
|
]=]
|
|
121
|
-
function TransitionModel
|
|
119
|
+
function TransitionModel.IsShowingComplete(self: TransitionModel): boolean
|
|
122
120
|
return self._isShowingComplete.Value
|
|
123
121
|
end
|
|
124
122
|
|
|
@@ -126,7 +124,7 @@ end
|
|
|
126
124
|
Returns true if hiding is complete
|
|
127
125
|
@return boolean?
|
|
128
126
|
]=]
|
|
129
|
-
function TransitionModel
|
|
127
|
+
function TransitionModel.IsHidingComplete(self: TransitionModel): boolean
|
|
130
128
|
return self._isHidingComplete.Value
|
|
131
129
|
end
|
|
132
130
|
|
|
@@ -134,7 +132,7 @@ end
|
|
|
134
132
|
Observe is showing is complete
|
|
135
133
|
@return Observable<boolean>
|
|
136
134
|
]=]
|
|
137
|
-
function TransitionModel
|
|
135
|
+
function TransitionModel.ObserveIsShowingComplete(self: TransitionModel): _Observable.Observable<boolean>
|
|
138
136
|
return self._isShowingComplete:Observe()
|
|
139
137
|
end
|
|
140
138
|
|
|
@@ -142,7 +140,7 @@ end
|
|
|
142
140
|
Observe is hiding is complete
|
|
143
141
|
@return Observable<boolean>
|
|
144
142
|
]=]
|
|
145
|
-
function TransitionModel
|
|
143
|
+
function TransitionModel.ObserveIsHidingComplete(self: TransitionModel): _Observable.Observable<boolean>
|
|
146
144
|
return self._isHidingComplete:Observe()
|
|
147
145
|
end
|
|
148
146
|
|
|
@@ -152,7 +150,7 @@ end
|
|
|
152
150
|
@param pane BasicPane
|
|
153
151
|
@return function -- Cleanup function
|
|
154
152
|
]=]
|
|
155
|
-
function TransitionModel
|
|
153
|
+
function TransitionModel.BindToPaneVisbility(self: TransitionModel, pane: BasicPane.BasicPane): () -> ()
|
|
156
154
|
local maid = Maid.new()
|
|
157
155
|
|
|
158
156
|
maid:GiveTask(pane.VisibleChanged:Connect(function(isVisible, doNotAnimate)
|
|
@@ -178,7 +176,7 @@ end
|
|
|
178
176
|
|
|
179
177
|
@param showCallback function? -- Callback which should return a promise
|
|
180
178
|
]=]
|
|
181
|
-
function TransitionModel
|
|
179
|
+
function TransitionModel.SetPromiseShow(self: TransitionModel, showCallback)
|
|
182
180
|
assert(type(showCallback) == "function" or showCallback == nil, "Bad showCallback")
|
|
183
181
|
|
|
184
182
|
self._showCallback = showCallback
|
|
@@ -189,13 +187,13 @@ end
|
|
|
189
187
|
|
|
190
188
|
@param hideCallback function? -- Callback which should return a promise
|
|
191
189
|
]=]
|
|
192
|
-
function TransitionModel
|
|
190
|
+
function TransitionModel.SetPromiseHide(self: TransitionModel, hideCallback)
|
|
193
191
|
assert(type(hideCallback) == "function" or hideCallback == nil, "Bad hideCallback")
|
|
194
192
|
|
|
195
193
|
self._hideCallback = hideCallback
|
|
196
194
|
end
|
|
197
195
|
|
|
198
|
-
function TransitionModel
|
|
196
|
+
function TransitionModel._promiseIsShown(self: TransitionModel): Promise.Promise<()>
|
|
199
197
|
if self._isShowingComplete.Value then
|
|
200
198
|
return Promise.resolved()
|
|
201
199
|
end
|
|
@@ -224,7 +222,7 @@ function TransitionModel:_promiseIsShown(): Promise.Promise<()>
|
|
|
224
222
|
return promise
|
|
225
223
|
end
|
|
226
224
|
|
|
227
|
-
function TransitionModel
|
|
225
|
+
function TransitionModel._promiseIsHidden(self: TransitionModel): Promise.Promise<()>
|
|
228
226
|
if self._isHidingComplete.Value then
|
|
229
227
|
return Promise.resolved()
|
|
230
228
|
end
|
|
@@ -253,7 +251,7 @@ function TransitionModel:_promiseIsHidden(): Promise.Promise<()>
|
|
|
253
251
|
return promise
|
|
254
252
|
end
|
|
255
253
|
|
|
256
|
-
function TransitionModel
|
|
254
|
+
function TransitionModel._executeShow(self: TransitionModel, doNotAnimate: boolean?)
|
|
257
255
|
self._maid._transition = nil
|
|
258
256
|
|
|
259
257
|
local maid = Maid.new()
|
|
@@ -291,7 +289,7 @@ function TransitionModel:_executeShow(doNotAnimate: boolean?)
|
|
|
291
289
|
end
|
|
292
290
|
end
|
|
293
291
|
|
|
294
|
-
function TransitionModel
|
|
292
|
+
function TransitionModel._executeHide(self: TransitionModel, doNotAnimate: boolean?)
|
|
295
293
|
self._maid._transition = nil
|
|
296
294
|
|
|
297
295
|
local maid = Maid.new()
|