@quenty/transitionmodel 7.19.3 → 7.19.4-canary.559.339cfa7.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/CHANGELOG.md +11 -0
- package/package.json +15 -15
- package/src/Shared/SpringTransitionModel.lua +11 -12
- package/src/Shared/Sustain/SustainModel.lua +31 -17
- package/src/Shared/Timed/TimedTransitionModel.lua +45 -23
- package/src/Shared/TransitionModel.lua +12 -8
- package/src/Shared/TransitionUtils.lua +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
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.4-canary.559.339cfa7.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/transitionmodel@7.19.3...@quenty/transitionmodel@7.19.4-canary.559.339cfa7.0) (2025-05-10)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* Additional type checking updates ([05ba29a](https://github.com/Quenty/NevermoreEngine/commit/05ba29a03efc9f3feed74b34f1d9dfb237496214))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
## [7.19.3](https://github.com/Quenty/NevermoreEngine/compare/@quenty/transitionmodel@7.19.2...@quenty/transitionmodel@7.19.3) (2025-04-10)
|
|
7
18
|
|
|
8
19
|
**Note:** Version bump only for package @quenty/transitionmodel
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quenty/transitionmodel",
|
|
3
|
-
"version": "7.19.
|
|
3
|
+
"version": "7.19.4-canary.559.339cfa7.0",
|
|
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": "
|
|
29
|
-
"@quenty/basicpane": "
|
|
30
|
-
"@quenty/blend": "
|
|
31
|
-
"@quenty/ducktype": "
|
|
32
|
-
"@quenty/instanceutils": "
|
|
33
|
-
"@quenty/loader": "
|
|
34
|
-
"@quenty/maid": "
|
|
35
|
-
"@quenty/promise": "
|
|
36
|
-
"@quenty/rx": "
|
|
37
|
-
"@quenty/signal": "
|
|
38
|
-
"@quenty/spring": "
|
|
39
|
-
"@quenty/timedtween": "
|
|
40
|
-
"@quenty/valueobject": "
|
|
28
|
+
"@quenty/baseobject": "10.8.4-canary.559.339cfa7.0",
|
|
29
|
+
"@quenty/basicpane": "13.17.4-canary.559.339cfa7.0",
|
|
30
|
+
"@quenty/blend": "12.18.4-canary.559.339cfa7.0",
|
|
31
|
+
"@quenty/ducktype": "5.8.5-canary.559.339cfa7.0",
|
|
32
|
+
"@quenty/instanceutils": "13.17.4-canary.559.339cfa7.0",
|
|
33
|
+
"@quenty/loader": "10.8.4-canary.559.339cfa7.0",
|
|
34
|
+
"@quenty/maid": "3.4.4-canary.559.339cfa7.0",
|
|
35
|
+
"@quenty/promise": "10.10.5-canary.559.339cfa7.0",
|
|
36
|
+
"@quenty/rx": "13.17.4-canary.559.339cfa7.0",
|
|
37
|
+
"@quenty/signal": "7.10.4-canary.559.339cfa7.0",
|
|
38
|
+
"@quenty/spring": "10.8.5-canary.559.339cfa7.0",
|
|
39
|
+
"@quenty/timedtween": "7.18.4-canary.559.339cfa7.0",
|
|
40
|
+
"@quenty/valueobject": "13.17.4-canary.559.339cfa7.0"
|
|
41
41
|
},
|
|
42
42
|
"publishConfig": {
|
|
43
43
|
"access": "public"
|
|
44
44
|
},
|
|
45
|
-
"gitHead": "
|
|
45
|
+
"gitHead": "339cfa778736f08768ed7305041f6221faa35bfc"
|
|
46
46
|
}
|
|
@@ -6,13 +6,12 @@
|
|
|
6
6
|
local require = require(script.Parent.loader).load(script)
|
|
7
7
|
|
|
8
8
|
local BasicPane = require("BasicPane")
|
|
9
|
-
local TransitionModel = require("TransitionModel")
|
|
10
|
-
local SpringObject = require("SpringObject")
|
|
11
|
-
local Promise = require("Promise")
|
|
12
9
|
local Maid = require("Maid")
|
|
10
|
+
local Observable = require("Observable")
|
|
11
|
+
local Promise = require("Promise")
|
|
12
|
+
local SpringObject = require("SpringObject")
|
|
13
13
|
local SpringUtils = require("SpringUtils")
|
|
14
|
-
local
|
|
15
|
-
local _Signal = require("Signal")
|
|
14
|
+
local TransitionModel = require("TransitionModel")
|
|
16
15
|
|
|
17
16
|
local SpringTransitionModel = setmetatable({}, BasicPane)
|
|
18
17
|
SpringTransitionModel.ClassName = "SpringTransitionModel"
|
|
@@ -110,7 +109,7 @@ end
|
|
|
110
109
|
Observe is showing is complete
|
|
111
110
|
@return Observable<boolean>
|
|
112
111
|
]=]
|
|
113
|
-
function SpringTransitionModel.ObserveIsShowingComplete<T>(self: SpringTransitionModel<T>):
|
|
112
|
+
function SpringTransitionModel.ObserveIsShowingComplete<T>(self: SpringTransitionModel<T>): Observable.Observable<boolean>
|
|
114
113
|
return self._transitionModel:ObserveIsShowingComplete()
|
|
115
114
|
end
|
|
116
115
|
|
|
@@ -118,7 +117,7 @@ end
|
|
|
118
117
|
Observe is hiding is complete
|
|
119
118
|
@return Observable<boolean>
|
|
120
119
|
]=]
|
|
121
|
-
function SpringTransitionModel.ObserveIsHidingComplete<T>(self: SpringTransitionModel<T>):
|
|
120
|
+
function SpringTransitionModel.ObserveIsHidingComplete<T>(self: SpringTransitionModel<T>): Observable.Observable<boolean>
|
|
122
121
|
return self._transitionModel:ObserveIsHidingComplete()
|
|
123
122
|
end
|
|
124
123
|
|
|
@@ -179,7 +178,7 @@ end
|
|
|
179
178
|
|
|
180
179
|
@param speed number
|
|
181
180
|
]=]
|
|
182
|
-
function SpringTransitionModel.SetSpeed<T>(self: SpringTransitionModel<T>, speed: number |
|
|
181
|
+
function SpringTransitionModel.SetSpeed<T>(self: SpringTransitionModel<T>, speed: number | Observable.Observable<T>)
|
|
183
182
|
assert(type(speed) == "number", "Bad speed")
|
|
184
183
|
|
|
185
184
|
self._springObject.Speed = speed
|
|
@@ -190,7 +189,7 @@ end
|
|
|
190
189
|
|
|
191
190
|
@param damper number
|
|
192
191
|
]=]
|
|
193
|
-
function SpringTransitionModel.SetDamper<T>(self: SpringTransitionModel<T>, damper: number |
|
|
192
|
+
function SpringTransitionModel.SetDamper<T>(self: SpringTransitionModel<T>, damper: number | Observable.Observable<T>)
|
|
194
193
|
assert(type(damper) == "number", "Bad damper")
|
|
195
194
|
|
|
196
195
|
self._springObject.Damper = damper
|
|
@@ -200,7 +199,7 @@ end
|
|
|
200
199
|
Observes the spring animating
|
|
201
200
|
@return Observable<T>
|
|
202
201
|
]=]
|
|
203
|
-
function SpringTransitionModel.ObserveRenderStepped<T>(self: SpringTransitionModel<T>):
|
|
202
|
+
function SpringTransitionModel.ObserveRenderStepped<T>(self: SpringTransitionModel<T>): Observable.Observable<T>
|
|
204
203
|
return self._springObject:ObserveRenderStepped()
|
|
205
204
|
end
|
|
206
205
|
|
|
@@ -209,7 +208,7 @@ end
|
|
|
209
208
|
|
|
210
209
|
@return Observable<T>
|
|
211
210
|
]=]
|
|
212
|
-
function SpringTransitionModel.Observe<T>(self: SpringTransitionModel<T>):
|
|
211
|
+
function SpringTransitionModel.Observe<T>(self: SpringTransitionModel<T>): Observable.Observable<T>
|
|
213
212
|
return self._springObject:Observe()
|
|
214
213
|
end
|
|
215
214
|
|
|
@@ -282,4 +281,4 @@ function SpringTransitionModel._computeHideTarget<T>(self: SpringTransitionModel
|
|
|
282
281
|
end
|
|
283
282
|
end
|
|
284
283
|
|
|
285
|
-
return SpringTransitionModel
|
|
284
|
+
return SpringTransitionModel
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
--!strict
|
|
1
2
|
--[=[
|
|
2
3
|
A sustain model is much like a [TransitionModel] but is responsible for
|
|
3
4
|
sustaining some animation or state. Useful to represent the sustained state
|
|
@@ -17,14 +18,25 @@ local SustainModel = setmetatable({}, BaseObject)
|
|
|
17
18
|
SustainModel.ClassName = "SustainModel"
|
|
18
19
|
SustainModel.__index = SustainModel
|
|
19
20
|
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
export type SustainCallback = (Maid.Maid, boolean?) -> Promise.Promise<()> | any
|
|
22
|
+
|
|
23
|
+
export type SustainModel = typeof(setmetatable(
|
|
24
|
+
{} :: {
|
|
25
|
+
_isSustained: boolean,
|
|
26
|
+
_sustainCallback: SustainCallback?,
|
|
27
|
+
_maid: Maid.Maid,
|
|
28
|
+
SustainChanged: Signal.Signal<(boolean, boolean?)>,
|
|
29
|
+
},
|
|
30
|
+
{} :: typeof({ __index = SustainModel })
|
|
31
|
+
)) & BaseObject.BaseObject
|
|
32
|
+
|
|
33
|
+
function SustainModel.new(): SustainModel
|
|
34
|
+
local self: SustainModel = setmetatable(BaseObject.new() :: any, SustainModel)
|
|
22
35
|
|
|
23
36
|
self._isSustained = false
|
|
24
37
|
self._sustainCallback = nil
|
|
25
38
|
|
|
26
|
-
self.SustainChanged = Signal.new() -- :Fire(isSustained, doNotAnimate)
|
|
27
|
-
self._maid:GiveTask(self.SustainChanged)
|
|
39
|
+
self.SustainChanged = self._maid:Add(Signal.new() :: any) -- :Fire(isSustained, doNotAnimate)
|
|
28
40
|
|
|
29
41
|
self._maid:GiveTask(self.SustainChanged:Connect(function(isSustained, doNotAnimate)
|
|
30
42
|
if isSustained then
|
|
@@ -42,7 +54,7 @@ end
|
|
|
42
54
|
|
|
43
55
|
@param sustainCallback function? -- Callback which should return a promise
|
|
44
56
|
]=]
|
|
45
|
-
function SustainModel
|
|
57
|
+
function SustainModel.SetPromiseSustain(self: SustainModel, sustainCallback: SustainCallback?)
|
|
46
58
|
assert(type(sustainCallback) == "function" or sustainCallback == nil, "Bad sustainCallback")
|
|
47
59
|
|
|
48
60
|
self._sustainCallback = sustainCallback
|
|
@@ -54,7 +66,7 @@ end
|
|
|
54
66
|
@param isSustained boolean
|
|
55
67
|
@param doNotAnimate boolean? -- True if animation should be skipped
|
|
56
68
|
]=]
|
|
57
|
-
function SustainModel
|
|
69
|
+
function SustainModel.SetIsSustained(self: SustainModel, isSustained: boolean, doNotAnimate: boolean?)
|
|
58
70
|
assert(type(isSustained) == "boolean", "Bad isSustained")
|
|
59
71
|
|
|
60
72
|
if self._isSustained ~= isSustained then
|
|
@@ -68,7 +80,7 @@ end
|
|
|
68
80
|
|
|
69
81
|
@param doNotAnimate boolean? -- True if animation should be skipped
|
|
70
82
|
]=]
|
|
71
|
-
function SustainModel
|
|
83
|
+
function SustainModel.Sustain(self: SustainModel, doNotAnimate: boolean?)
|
|
72
84
|
self:SetIsSustained(true, doNotAnimate)
|
|
73
85
|
end
|
|
74
86
|
|
|
@@ -77,7 +89,7 @@ end
|
|
|
77
89
|
|
|
78
90
|
@param doNotAnimate boolean? -- True if animation should be skipped
|
|
79
91
|
]=]
|
|
80
|
-
function SustainModel
|
|
92
|
+
function SustainModel.Stop(self: SustainModel, doNotAnimate: boolean?)
|
|
81
93
|
self:SetIsSustained(false, doNotAnimate)
|
|
82
94
|
end
|
|
83
95
|
|
|
@@ -89,13 +101,13 @@ end
|
|
|
89
101
|
@param doNotAnimate boolean? -- True if animation should be skipped
|
|
90
102
|
@return Promise
|
|
91
103
|
]=]
|
|
92
|
-
function SustainModel
|
|
104
|
+
function SustainModel.PromiseSustain(self: SustainModel, doNotAnimate: boolean?): Promise.Promise<()>
|
|
93
105
|
self:Sustain(doNotAnimate)
|
|
94
106
|
|
|
95
107
|
return self:_promiseSustained()
|
|
96
108
|
end
|
|
97
109
|
|
|
98
|
-
function SustainModel
|
|
110
|
+
function SustainModel._promiseSustained(self: SustainModel): Promise.Promise<()>
|
|
99
111
|
if not self._isSustained then
|
|
100
112
|
return Promise.resolved()
|
|
101
113
|
end
|
|
@@ -118,11 +130,9 @@ function SustainModel:_promiseSustained()
|
|
|
118
130
|
return promise
|
|
119
131
|
end
|
|
120
132
|
|
|
121
|
-
function SustainModel
|
|
133
|
+
function SustainModel._executeSustain(self: SustainModel, doNotAnimate: boolean?): ()
|
|
122
134
|
local maid = Maid.new()
|
|
123
|
-
|
|
124
|
-
local promise = Promise.new()
|
|
125
|
-
maid:GiveTask(promise)
|
|
135
|
+
local promise = maid:Add(Promise.new())
|
|
126
136
|
|
|
127
137
|
if self._sustainCallback then
|
|
128
138
|
local result = self._sustainCallback(maid, doNotAnimate)
|
|
@@ -130,7 +140,12 @@ function SustainModel:_executeSustain(doNotAnimate: boolean?)
|
|
|
130
140
|
promise:Resolve(result)
|
|
131
141
|
else
|
|
132
142
|
promise:Reject()
|
|
133
|
-
error(
|
|
143
|
+
error(
|
|
144
|
+
string.format(
|
|
145
|
+
"[SustainModel] - Expected promise to be returned from sustainCallback, got %q",
|
|
146
|
+
tostring(result)
|
|
147
|
+
)
|
|
148
|
+
)
|
|
134
149
|
end
|
|
135
150
|
end
|
|
136
151
|
|
|
@@ -141,5 +156,4 @@ function SustainModel:_executeSustain(doNotAnimate: boolean?)
|
|
|
141
156
|
self._maid._sustaining = maid
|
|
142
157
|
end
|
|
143
158
|
|
|
144
|
-
|
|
145
|
-
return SustainModel
|
|
159
|
+
return SustainModel
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
--!strict
|
|
1
2
|
--[=[
|
|
2
3
|
@class TimedTransitionModel
|
|
3
4
|
]=]
|
|
@@ -5,24 +6,33 @@
|
|
|
5
6
|
local require = require(script.Parent.loader).load(script)
|
|
6
7
|
|
|
7
8
|
local BasicPane = require("BasicPane")
|
|
8
|
-
local TransitionModel = require("TransitionModel")
|
|
9
|
-
local TimedTween = require("TimedTween")
|
|
10
|
-
local Promise = require("Promise")
|
|
11
9
|
local Maid = require("Maid")
|
|
10
|
+
local Observable = require("Observable")
|
|
11
|
+
local Promise = require("Promise")
|
|
12
|
+
local TimedTween = require("TimedTween")
|
|
13
|
+
local TransitionModel = require("TransitionModel")
|
|
12
14
|
|
|
13
15
|
local TimedTransitionModel = setmetatable({}, BasicPane)
|
|
14
16
|
TimedTransitionModel.ClassName = "TimedTransitionModel"
|
|
15
17
|
TimedTransitionModel.__index = TimedTransitionModel
|
|
16
18
|
|
|
19
|
+
export type TimedTransitionModel = typeof(setmetatable(
|
|
20
|
+
{} :: {
|
|
21
|
+
_transitionModel: TransitionModel.TransitionModel,
|
|
22
|
+
_timedTween: TimedTween.TimedTween,
|
|
23
|
+
},
|
|
24
|
+
{} :: typeof({ __index = TimedTransitionModel })
|
|
25
|
+
)) & BasicPane.BasicPane
|
|
26
|
+
|
|
17
27
|
--[=[
|
|
18
28
|
A transition model that has a spring underlying it. Very useful
|
|
19
29
|
for animations on tracks that need to be on a spring.
|
|
20
30
|
|
|
21
31
|
@param transitionTime number? -- Optional
|
|
22
|
-
@return TimedTransitionModel
|
|
32
|
+
@return TimedTransitionModel
|
|
23
33
|
]=]
|
|
24
|
-
function TimedTransitionModel.new(transitionTime: number?)
|
|
25
|
-
local self = setmetatable(BasicPane.new(), TimedTransitionModel)
|
|
34
|
+
function TimedTransitionModel.new(transitionTime: number?): TimedTransitionModel
|
|
35
|
+
local self: TimedTransitionModel = setmetatable(BasicPane.new() :: any, TimedTransitionModel)
|
|
26
36
|
|
|
27
37
|
self._transitionModel = self._maid:Add(TransitionModel.new())
|
|
28
38
|
self._transitionModel:BindToPaneVisbility(self)
|
|
@@ -40,7 +50,12 @@ function TimedTransitionModel.new(transitionTime: number?)
|
|
|
40
50
|
return self
|
|
41
51
|
end
|
|
42
52
|
|
|
43
|
-
|
|
53
|
+
--[=[
|
|
54
|
+
Sets the transition time
|
|
55
|
+
|
|
56
|
+
@param transitionTime number
|
|
57
|
+
]=]
|
|
58
|
+
function TimedTransitionModel.SetTransitionTime(self: TimedTransitionModel, transitionTime: number)
|
|
44
59
|
self._timedTween:SetTransitionTime(transitionTime)
|
|
45
60
|
end
|
|
46
61
|
|
|
@@ -48,7 +63,7 @@ end
|
|
|
48
63
|
Returns true if showing is complete
|
|
49
64
|
@return boolean
|
|
50
65
|
]=]
|
|
51
|
-
function TimedTransitionModel
|
|
66
|
+
function TimedTransitionModel.IsShowingComplete(self: TimedTransitionModel): boolean
|
|
52
67
|
return self._transitionModel:IsShowingComplete()
|
|
53
68
|
end
|
|
54
69
|
|
|
@@ -56,7 +71,7 @@ end
|
|
|
56
71
|
Returns true if hiding is complete
|
|
57
72
|
@return boolean
|
|
58
73
|
]=]
|
|
59
|
-
function TimedTransitionModel
|
|
74
|
+
function TimedTransitionModel.IsHidingComplete(self: TimedTransitionModel): boolean
|
|
60
75
|
return self._transitionModel:IsHidingComplete()
|
|
61
76
|
end
|
|
62
77
|
|
|
@@ -64,7 +79,7 @@ end
|
|
|
64
79
|
Observe is showing is complete
|
|
65
80
|
@return Observable<boolean>
|
|
66
81
|
]=]
|
|
67
|
-
function TimedTransitionModel
|
|
82
|
+
function TimedTransitionModel.ObserveIsShowingComplete(self: TimedTransitionModel): Observable.Observable<boolean>
|
|
68
83
|
return self._transitionModel:ObserveIsShowingComplete()
|
|
69
84
|
end
|
|
70
85
|
|
|
@@ -72,7 +87,7 @@ end
|
|
|
72
87
|
Observe is hiding is complete
|
|
73
88
|
@return Observable<boolean>
|
|
74
89
|
]=]
|
|
75
|
-
function TimedTransitionModel
|
|
90
|
+
function TimedTransitionModel.ObserveIsHidingComplete(self: TimedTransitionModel): Observable.Observable<boolean>
|
|
76
91
|
return self._transitionModel:ObserveIsHidingComplete()
|
|
77
92
|
end
|
|
78
93
|
|
|
@@ -82,7 +97,7 @@ end
|
|
|
82
97
|
@param pane BasicPane
|
|
83
98
|
@return function -- Cleanup function
|
|
84
99
|
]=]
|
|
85
|
-
function TimedTransitionModel
|
|
100
|
+
function TimedTransitionModel.BindToPaneVisbility(self: TimedTransitionModel, pane: BasicPane.BasicPane): () -> ()
|
|
86
101
|
local maid = Maid.new()
|
|
87
102
|
|
|
88
103
|
maid:GiveTask(pane.VisibleChanged:Connect(function(isVisible, doNotAnimate)
|
|
@@ -109,18 +124,18 @@ end
|
|
|
109
124
|
|
|
110
125
|
--[=[
|
|
111
126
|
Observes the spring animating
|
|
112
|
-
@return Observable<
|
|
127
|
+
@return Observable<number>
|
|
113
128
|
]=]
|
|
114
|
-
function TimedTransitionModel
|
|
129
|
+
function TimedTransitionModel.ObserveRenderStepped(self: TimedTransitionModel): Observable.Observable<number>
|
|
115
130
|
return self._timedTween:ObserveRenderStepped()
|
|
116
131
|
end
|
|
117
132
|
|
|
118
133
|
--[=[
|
|
119
134
|
Alias to spring transition model observation!
|
|
120
135
|
|
|
121
|
-
@return Observable<
|
|
136
|
+
@return Observable<number>
|
|
122
137
|
]=]
|
|
123
|
-
function TimedTransitionModel
|
|
138
|
+
function TimedTransitionModel.Observe(self: TimedTransitionModel): Observable.Observable<number>
|
|
124
139
|
return self._timedTween:Observe()
|
|
125
140
|
end
|
|
126
141
|
|
|
@@ -130,7 +145,7 @@ end
|
|
|
130
145
|
@param doNotAnimate boolean?
|
|
131
146
|
@return Promise
|
|
132
147
|
]=]
|
|
133
|
-
function TimedTransitionModel
|
|
148
|
+
function TimedTransitionModel.PromiseShow(self: TimedTransitionModel, doNotAnimate: boolean?): Promise.Promise<()>
|
|
134
149
|
return self._transitionModel:PromiseShow(doNotAnimate)
|
|
135
150
|
end
|
|
136
151
|
|
|
@@ -140,7 +155,7 @@ end
|
|
|
140
155
|
@param doNotAnimate boolean?
|
|
141
156
|
@return Promise
|
|
142
157
|
]=]
|
|
143
|
-
function TimedTransitionModel
|
|
158
|
+
function TimedTransitionModel.PromiseHide(self: TimedTransitionModel, doNotAnimate: boolean?): Promise.Promise<()>
|
|
144
159
|
return self._transitionModel:PromiseHide(doNotAnimate)
|
|
145
160
|
end
|
|
146
161
|
|
|
@@ -150,11 +165,15 @@ end
|
|
|
150
165
|
@param doNotAnimate boolean
|
|
151
166
|
@return Promise
|
|
152
167
|
]=]
|
|
153
|
-
function TimedTransitionModel
|
|
168
|
+
function TimedTransitionModel.PromiseToggle(self: TimedTransitionModel, doNotAnimate: boolean?): Promise.Promise<()>
|
|
154
169
|
return self._transitionModel:PromiseToggle(doNotAnimate)
|
|
155
170
|
end
|
|
156
171
|
|
|
157
|
-
function TimedTransitionModel
|
|
172
|
+
function TimedTransitionModel._promiseShow(
|
|
173
|
+
self: TimedTransitionModel,
|
|
174
|
+
maid,
|
|
175
|
+
doNotAnimate: boolean?
|
|
176
|
+
): Promise.Promise<()>
|
|
158
177
|
self._timedTween:Show(doNotAnimate)
|
|
159
178
|
|
|
160
179
|
if doNotAnimate then
|
|
@@ -164,7 +183,11 @@ function TimedTransitionModel:_promiseShow(maid, doNotAnimate: boolean?)
|
|
|
164
183
|
end
|
|
165
184
|
end
|
|
166
185
|
|
|
167
|
-
function TimedTransitionModel
|
|
186
|
+
function TimedTransitionModel._promiseHide(
|
|
187
|
+
self: TimedTransitionModel,
|
|
188
|
+
maid: Maid.Maid,
|
|
189
|
+
doNotAnimate: boolean?
|
|
190
|
+
): Promise.Promise<()>
|
|
168
191
|
self._timedTween:Hide(doNotAnimate)
|
|
169
192
|
|
|
170
193
|
if doNotAnimate then
|
|
@@ -174,5 +197,4 @@ function TimedTransitionModel:_promiseHide(maid, doNotAnimate: boolean?)
|
|
|
174
197
|
end
|
|
175
198
|
end
|
|
176
199
|
|
|
177
|
-
|
|
178
|
-
return TimedTransitionModel
|
|
200
|
+
return TimedTransitionModel
|
|
@@ -9,12 +9,11 @@
|
|
|
9
9
|
local require = require(script.Parent.loader).load(script)
|
|
10
10
|
|
|
11
11
|
local BasicPane = require("BasicPane")
|
|
12
|
-
local
|
|
12
|
+
local DuckTypeUtils = require("DuckTypeUtils")
|
|
13
13
|
local Maid = require("Maid")
|
|
14
|
+
local Observable = require("Observable")
|
|
15
|
+
local Promise = require("Promise")
|
|
14
16
|
local ValueObject = require("ValueObject")
|
|
15
|
-
local DuckTypeUtils = require("DuckTypeUtils")
|
|
16
|
-
local _Signal = require("Signal")
|
|
17
|
-
local _Observable = require("Observable")
|
|
18
17
|
|
|
19
18
|
local TransitionModel = setmetatable({}, BasicPane)
|
|
20
19
|
TransitionModel.ClassName = "TransitionModel"
|
|
@@ -132,7 +131,7 @@ end
|
|
|
132
131
|
Observe is showing is complete
|
|
133
132
|
@return Observable<boolean>
|
|
134
133
|
]=]
|
|
135
|
-
function TransitionModel.ObserveIsShowingComplete(self: TransitionModel):
|
|
134
|
+
function TransitionModel.ObserveIsShowingComplete(self: TransitionModel): Observable.Observable<boolean>
|
|
136
135
|
return self._isShowingComplete:Observe()
|
|
137
136
|
end
|
|
138
137
|
|
|
@@ -140,7 +139,7 @@ end
|
|
|
140
139
|
Observe is hiding is complete
|
|
141
140
|
@return Observable<boolean>
|
|
142
141
|
]=]
|
|
143
|
-
function TransitionModel.ObserveIsHidingComplete(self: TransitionModel):
|
|
142
|
+
function TransitionModel.ObserveIsHidingComplete(self: TransitionModel): Observable.Observable<boolean>
|
|
144
143
|
return self._isHidingComplete:Observe()
|
|
145
144
|
end
|
|
146
145
|
|
|
@@ -304,7 +303,12 @@ function TransitionModel._executeHide(self: TransitionModel, doNotAnimate: boole
|
|
|
304
303
|
promise:Resolve(result)
|
|
305
304
|
else
|
|
306
305
|
promise:Reject()
|
|
307
|
-
error(
|
|
306
|
+
error(
|
|
307
|
+
string.format(
|
|
308
|
+
"[TransitionModel] - Expected promise to be returned from hideCallback, got %q",
|
|
309
|
+
tostring(result)
|
|
310
|
+
)
|
|
311
|
+
)
|
|
308
312
|
end
|
|
309
313
|
else
|
|
310
314
|
-- Immediately resolve
|
|
@@ -322,4 +326,4 @@ function TransitionModel._executeHide(self: TransitionModel, doNotAnimate: boole
|
|
|
322
326
|
end
|
|
323
327
|
end
|
|
324
328
|
|
|
325
|
-
return TransitionModel
|
|
329
|
+
return TransitionModel
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
--!strict
|
|
1
2
|
--[=[
|
|
2
3
|
@class TransitionUtils
|
|
3
4
|
]=]
|
|
@@ -19,11 +20,11 @@ local TransitionUtils = {}
|
|
|
19
20
|
@param value any
|
|
20
21
|
@return boolean
|
|
21
22
|
]=]
|
|
22
|
-
function TransitionUtils.isTransition(value)
|
|
23
|
+
function TransitionUtils.isTransition(value: any): boolean
|
|
23
24
|
return BasicPane.isBasicPane(value)
|
|
24
25
|
and type(value.PromiseShow) == "function"
|
|
25
26
|
and type(value.PromiseHide) == "function"
|
|
26
27
|
and type(value.PromiseToggle) == "function"
|
|
27
28
|
end
|
|
28
29
|
|
|
29
|
-
return TransitionUtils
|
|
30
|
+
return TransitionUtils
|