@quenty/transitionmodel 7.19.0 → 7.19.1-canary.545.2374fb2.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 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.1-canary.545.2374fb2.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/transitionmodel@7.19.0...@quenty/transitionmodel@7.19.1-canary.545.2374fb2.0) (2025-04-05)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * Add types to packages ([2374fb2](https://github.com/Quenty/NevermoreEngine/commit/2374fb2b043cfbe0e9b507b3316eec46a4e353a0))
12
+
13
+
14
+
15
+
16
+
6
17
  # [7.19.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/transitionmodel@7.18.2...@quenty/transitionmodel@7.19.0) (2025-04-02)
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.0",
3
+ "version": "7.19.1-canary.545.2374fb2.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": "^10.8.0",
29
- "@quenty/basicpane": "^13.17.0",
30
- "@quenty/blend": "^12.18.0",
31
- "@quenty/ducktype": "^5.8.1",
32
- "@quenty/instanceutils": "^13.17.0",
33
- "@quenty/loader": "^10.8.0",
34
- "@quenty/maid": "^3.4.0",
35
- "@quenty/promise": "^10.10.1",
36
- "@quenty/rx": "^13.17.0",
37
- "@quenty/signal": "^7.10.0",
38
- "@quenty/spring": "^10.8.1",
39
- "@quenty/timedtween": "^7.18.0",
40
- "@quenty/valueobject": "^13.17.0"
28
+ "@quenty/baseobject": "10.8.1-canary.545.2374fb2.0",
29
+ "@quenty/basicpane": "13.17.1-canary.545.2374fb2.0",
30
+ "@quenty/blend": "12.18.1-canary.545.2374fb2.0",
31
+ "@quenty/ducktype": "5.8.2-canary.545.2374fb2.0",
32
+ "@quenty/instanceutils": "13.17.1-canary.545.2374fb2.0",
33
+ "@quenty/loader": "10.8.1-canary.545.2374fb2.0",
34
+ "@quenty/maid": "3.4.1-canary.545.2374fb2.0",
35
+ "@quenty/promise": "10.10.2-canary.545.2374fb2.0",
36
+ "@quenty/rx": "13.17.1-canary.545.2374fb2.0",
37
+ "@quenty/signal": "7.10.1-canary.545.2374fb2.0",
38
+ "@quenty/spring": "10.8.2-canary.545.2374fb2.0",
39
+ "@quenty/timedtween": "7.18.1-canary.545.2374fb2.0",
40
+ "@quenty/valueobject": "13.17.1-canary.545.2374fb2.0"
41
41
  },
42
42
  "publishConfig": {
43
43
  "access": "public"
44
44
  },
45
- "gitHead": "e8ea56930e65322fcffc05a1556d5df988068f0b"
45
+ "gitHead": "2374fb2b043cfbe0e9b507b3316eec46a4e353a0"
46
46
  }
@@ -1,3 +1,4 @@
1
+ --!strict
1
2
  --[=[
2
3
  @class SpringTransitionModel
3
4
  ]=]
@@ -10,11 +11,30 @@ local SpringObject = require("SpringObject")
10
11
  local Promise = require("Promise")
11
12
  local Maid = require("Maid")
12
13
  local SpringUtils = require("SpringUtils")
14
+ local _Observable = require("Observable")
15
+ local _Signal = require("Signal")
13
16
 
14
17
  local SpringTransitionModel = setmetatable({}, BasicPane)
15
18
  SpringTransitionModel.ClassName = "SpringTransitionModel"
16
19
  SpringTransitionModel.__index = SpringTransitionModel
17
20
 
21
+ export type SpringTransitionModel<T> = typeof(setmetatable(
22
+ {} :: {
23
+ _maid: Maid.Maid,
24
+ _showTarget: any,
25
+ _hideTarget: any,
26
+ _springObject: any,
27
+ _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
+ },
35
+ SpringTransitionModel
36
+ ))
37
+
18
38
  --[=[
19
39
  A transition model that has a spring underlying it. Very useful
20
40
  for animations on tracks that need to be on a spring.
@@ -23,8 +43,8 @@ SpringTransitionModel.__index = SpringTransitionModel
23
43
  @param hideTarget T? -- Defaults to 0*showTarget
24
44
  @return SpringTransitionModel<T>
25
45
  ]=]
26
- function SpringTransitionModel.new(showTarget, hideTarget)
27
- local self = setmetatable(BasicPane.new(), SpringTransitionModel)
46
+ function SpringTransitionModel.new<T>(showTarget: T?, hideTarget: T?): SpringTransitionModel<T>
47
+ local self = setmetatable(BasicPane.new() :: any, SpringTransitionModel)
28
48
 
29
49
  self._showTarget = showTarget or 1
30
50
  self._hideTarget = hideTarget
@@ -51,7 +71,7 @@ end
51
71
  @param showTarget T?
52
72
  @param doNotAnimate boolean?
53
73
  ]=]
54
- function SpringTransitionModel:SetShowTarget(showTarget, doNotAnimate)
74
+ function SpringTransitionModel.SetShowTarget<T>(self: SpringTransitionModel<T>, showTarget: T?, doNotAnimate: boolean?)
55
75
  self._showTarget = SpringUtils.toLinearIfNeeded(showTarget or 1)
56
76
 
57
77
  if self:IsVisible() then
@@ -67,7 +87,7 @@ end
67
87
  @param hideTarget T?
68
88
  @param doNotAnimate boolean?
69
89
  ]=]
70
- function SpringTransitionModel:SetHideTarget(hideTarget, doNotAnimate)
90
+ function SpringTransitionModel.SetHideTarget<T>(self: SpringTransitionModel<T>, hideTarget: T?, doNotAnimate: boolean?)
71
91
  self._hideTarget = hideTarget
72
92
 
73
93
  if self:IsVisible() then
@@ -81,7 +101,7 @@ end
81
101
  Returns true if showing is complete
82
102
  @return boolean
83
103
  ]=]
84
- function SpringTransitionModel:IsShowingComplete()
104
+ function SpringTransitionModel.IsShowingComplete<T>(self: SpringTransitionModel<T>): boolean
85
105
  return self._transitionModel:IsShowingComplete()
86
106
  end
87
107
 
@@ -89,7 +109,7 @@ end
89
109
  Returns true if hiding is complete
90
110
  @return boolean
91
111
  ]=]
92
- function SpringTransitionModel:IsHidingComplete()
112
+ function SpringTransitionModel.IsHidingComplete<T>(self: SpringTransitionModel<T>): boolean
93
113
  return self._transitionModel:IsHidingComplete()
94
114
  end
95
115
 
@@ -97,7 +117,7 @@ end
97
117
  Observe is showing is complete
98
118
  @return Observable<boolean>
99
119
  ]=]
100
- function SpringTransitionModel:ObserveIsShowingComplete()
120
+ function SpringTransitionModel.ObserveIsShowingComplete<T>(self: SpringTransitionModel<T>): _Observable.Observable<boolean>
101
121
  return self._transitionModel:ObserveIsShowingComplete()
102
122
  end
103
123
 
@@ -105,7 +125,7 @@ end
105
125
  Observe is hiding is complete
106
126
  @return Observable<boolean>
107
127
  ]=]
108
- function SpringTransitionModel:ObserveIsHidingComplete()
128
+ function SpringTransitionModel.ObserveIsHidingComplete<T>(self: SpringTransitionModel<T>): _Observable.Observable<boolean>
109
129
  return self._transitionModel:ObserveIsHidingComplete()
110
130
  end
111
131
 
@@ -115,7 +135,7 @@ end
115
135
  @param pane BasicPane
116
136
  @return function -- Cleanup function
117
137
  ]=]
118
- function SpringTransitionModel:BindToPaneVisbility(pane)
138
+ function SpringTransitionModel.BindToPaneVisbility<T>(self: SpringTransitionModel<T>, pane: BasicPane.BasicPane): () -> ()
119
139
  local maid = Maid.new()
120
140
 
121
141
  maid:GiveTask(pane.VisibleChanged:Connect(function(isVisible, doNotAnimate)
@@ -145,7 +165,7 @@ end
145
165
 
146
166
  @return T
147
167
  ]=]
148
- function SpringTransitionModel:GetVelocity()
168
+ function SpringTransitionModel.GetVelocity<T>(self: SpringTransitionModel<T>)
149
169
  return self._springObject.Velocity
150
170
  end
151
171
 
@@ -155,7 +175,7 @@ end
155
175
 
156
176
  @param epsilon number
157
177
  ]=]
158
- function SpringTransitionModel:SetEpsilon(epsilon)
178
+ function SpringTransitionModel.SetEpsilon<T>(self: SpringTransitionModel<T>, epsilon: number)
159
179
  assert(type(epsilon) == "number", "Bad epsilon")
160
180
 
161
181
  self._springObject.Epsilon = epsilon
@@ -166,7 +186,7 @@ end
166
186
 
167
187
  @param speed number
168
188
  ]=]
169
- function SpringTransitionModel:SetSpeed(speed)
189
+ function SpringTransitionModel.SetSpeed<T>(self: SpringTransitionModel<T>, speed: number | _Observable.Observable<T>)
170
190
  assert(type(speed) == "number", "Bad speed")
171
191
 
172
192
  self._springObject.Speed = speed
@@ -177,7 +197,7 @@ end
177
197
 
178
198
  @param damper number
179
199
  ]=]
180
- function SpringTransitionModel:SetDamper(damper)
200
+ function SpringTransitionModel.SetDamper<T>(self: SpringTransitionModel<T>, damper: number | _Observable.Observable<T>)
181
201
  assert(type(damper) == "number", "Bad damper")
182
202
 
183
203
  self._springObject.Damper = damper
@@ -187,7 +207,7 @@ end
187
207
  Observes the spring animating
188
208
  @return Observable<T>
189
209
  ]=]
190
- function SpringTransitionModel:ObserveRenderStepped()
210
+ function SpringTransitionModel.ObserveRenderStepped<T>(self: SpringTransitionModel<T>): _Observable.Observable<T>
191
211
  return self._springObject:ObserveRenderStepped()
192
212
  end
193
213
 
@@ -196,7 +216,7 @@ end
196
216
 
197
217
  @return Observable<T>
198
218
  ]=]
199
- function SpringTransitionModel:Observe()
219
+ function SpringTransitionModel.Observe<T>(self: SpringTransitionModel<T>): _Observable.Observable<T>
200
220
  return self._springObject:Observe()
201
221
  end
202
222
 
@@ -206,7 +226,7 @@ end
206
226
  @param doNotAnimate boolean
207
227
  @return Promise
208
228
  ]=]
209
- function SpringTransitionModel:PromiseShow(doNotAnimate)
229
+ function SpringTransitionModel.PromiseShow<T>(self: SpringTransitionModel<T>, doNotAnimate: boolean?): Promise.Promise<()>
210
230
  return self._transitionModel:PromiseShow(doNotAnimate)
211
231
  end
212
232
 
@@ -216,7 +236,7 @@ end
216
236
  @param doNotAnimate boolean
217
237
  @return Promise
218
238
  ]=]
219
- function SpringTransitionModel:PromiseHide(doNotAnimate)
239
+ function SpringTransitionModel.PromiseHide<T>(self: SpringTransitionModel<T>, doNotAnimate: boolean?): Promise.Promise<()>
220
240
  return self._transitionModel:PromiseHide(doNotAnimate)
221
241
  end
222
242
 
@@ -226,11 +246,18 @@ end
226
246
  @param doNotAnimate boolean
227
247
  @return Promise
228
248
  ]=]
229
- function SpringTransitionModel:PromiseToggle(doNotAnimate)
249
+ function SpringTransitionModel.PromiseToggle<T>(
250
+ self: SpringTransitionModel<T>,
251
+ doNotAnimate: boolean?
252
+ ): Promise.Promise<()>
230
253
  return self._transitionModel:PromiseToggle(doNotAnimate)
231
254
  end
232
255
 
233
- function SpringTransitionModel:_promiseShow(maid, doNotAnimate)
256
+ function SpringTransitionModel._promiseShow<T>(
257
+ self: SpringTransitionModel<T>,
258
+ maid: Maid.Maid,
259
+ doNotAnimate: boolean?
260
+ ): Promise.Promise<()>
234
261
  self._springObject:SetTarget(self._showTarget, doNotAnimate)
235
262
 
236
263
  if doNotAnimate then
@@ -240,7 +267,11 @@ function SpringTransitionModel:_promiseShow(maid, doNotAnimate)
240
267
  end
241
268
  end
242
269
 
243
- function SpringTransitionModel:_promiseHide(maid, doNotAnimate)
270
+ function SpringTransitionModel._promiseHide<T>(
271
+ self: SpringTransitionModel<T>,
272
+ maid: Maid.Maid,
273
+ doNotAnimate: boolean?
274
+ ): Promise.Promise<()>
244
275
  self._springObject:SetTarget(self:_computeHideTarget(), doNotAnimate)
245
276
 
246
277
  if doNotAnimate then
@@ -250,11 +281,11 @@ function SpringTransitionModel:_promiseHide(maid, doNotAnimate)
250
281
  end
251
282
  end
252
283
 
253
- function SpringTransitionModel:_computeHideTarget()
284
+ function SpringTransitionModel._computeHideTarget<T>(self: SpringTransitionModel<T>): any
254
285
  if self._hideTarget then
255
286
  return SpringUtils.toLinearIfNeeded(self._hideTarget)
256
287
  else
257
- return 0*SpringUtils.toLinearIfNeeded(self._showTarget)
288
+ return 0 * SpringUtils.toLinearIfNeeded(self._showTarget) :: any
258
289
  end
259
290
  end
260
291
 
@@ -54,7 +54,7 @@ end
54
54
  @param isSustained boolean
55
55
  @param doNotAnimate boolean? -- True if animation should be skipped
56
56
  ]=]
57
- function SustainModel:SetIsSustained(isSustained, doNotAnimate)
57
+ function SustainModel:SetIsSustained(isSustained, doNotAnimate: boolean?)
58
58
  assert(type(isSustained) == "boolean", "Bad isSustained")
59
59
 
60
60
  if self._isSustained ~= isSustained then
@@ -68,7 +68,7 @@ end
68
68
 
69
69
  @param doNotAnimate boolean? -- True if animation should be skipped
70
70
  ]=]
71
- function SustainModel:Sustain(doNotAnimate)
71
+ function SustainModel:Sustain(doNotAnimate: boolean?)
72
72
  self:SetIsSustained(true, doNotAnimate)
73
73
  end
74
74
 
@@ -77,7 +77,7 @@ end
77
77
 
78
78
  @param doNotAnimate boolean? -- True if animation should be skipped
79
79
  ]=]
80
- function SustainModel:Stop(doNotAnimate)
80
+ function SustainModel:Stop(doNotAnimate: boolean?)
81
81
  self:SetIsSustained(false, doNotAnimate)
82
82
  end
83
83
 
@@ -89,7 +89,7 @@ end
89
89
  @param doNotAnimate boolean? -- True if animation should be skipped
90
90
  @return Promise
91
91
  ]=]
92
- function SustainModel:PromiseSustain(doNotAnimate)
92
+ function SustainModel:PromiseSustain(doNotAnimate: boolean?)
93
93
  self:Sustain(doNotAnimate)
94
94
 
95
95
  return self:_promiseSustained()
@@ -118,7 +118,7 @@ function SustainModel:_promiseSustained()
118
118
  return promise
119
119
  end
120
120
 
121
- function SustainModel:_executeSustain(doNotAnimate)
121
+ function SustainModel:_executeSustain(doNotAnimate: boolean?)
122
122
  local maid = Maid.new()
123
123
 
124
124
  local promise = Promise.new()
@@ -21,7 +21,7 @@ TimedTransitionModel.__index = TimedTransitionModel
21
21
  @param transitionTime number? -- Optional
22
22
  @return TimedTransitionModel<T>
23
23
  ]=]
24
- function TimedTransitionModel.new(transitionTime)
24
+ function TimedTransitionModel.new(transitionTime: number?)
25
25
  local self = setmetatable(BasicPane.new(), TimedTransitionModel)
26
26
 
27
27
  self._transitionModel = self._maid:Add(TransitionModel.new())
@@ -40,7 +40,7 @@ function TimedTransitionModel.new(transitionTime)
40
40
  return self
41
41
  end
42
42
 
43
- function TimedTransitionModel:SetTransitionTime(transitionTime)
43
+ function TimedTransitionModel:SetTransitionTime(transitionTime: number)
44
44
  self._timedTween:SetTransitionTime(transitionTime)
45
45
  end
46
46
 
@@ -48,7 +48,7 @@ end
48
48
  Returns true if showing is complete
49
49
  @return boolean
50
50
  ]=]
51
- function TimedTransitionModel:IsShowingComplete()
51
+ function TimedTransitionModel:IsShowingComplete(): boolean
52
52
  return self._transitionModel:IsShowingComplete()
53
53
  end
54
54
 
@@ -56,7 +56,7 @@ end
56
56
  Returns true if hiding is complete
57
57
  @return boolean
58
58
  ]=]
59
- function TimedTransitionModel:IsHidingComplete()
59
+ function TimedTransitionModel:IsHidingComplete(): boolean
60
60
  return self._transitionModel:IsHidingComplete()
61
61
  end
62
62
 
@@ -127,20 +127,20 @@ end
127
127
  --[=[
128
128
  Shows the model and promises when the showing is complete.
129
129
 
130
- @param doNotAnimate boolean
130
+ @param doNotAnimate boolean?
131
131
  @return Promise
132
132
  ]=]
133
- function TimedTransitionModel:PromiseShow(doNotAnimate)
133
+ function TimedTransitionModel:PromiseShow(doNotAnimate: boolean?)
134
134
  return self._transitionModel:PromiseShow(doNotAnimate)
135
135
  end
136
136
 
137
137
  --[=[
138
138
  Hides the model and promises when the showing is complete.
139
139
 
140
- @param doNotAnimate boolean
140
+ @param doNotAnimate boolean?
141
141
  @return Promise
142
142
  ]=]
143
- function TimedTransitionModel:PromiseHide(doNotAnimate)
143
+ function TimedTransitionModel:PromiseHide(doNotAnimate: boolean?)
144
144
  return self._transitionModel:PromiseHide(doNotAnimate)
145
145
  end
146
146
 
@@ -150,11 +150,11 @@ end
150
150
  @param doNotAnimate boolean
151
151
  @return Promise
152
152
  ]=]
153
- function TimedTransitionModel:PromiseToggle(doNotAnimate)
153
+ function TimedTransitionModel:PromiseToggle(doNotAnimate: boolean?)
154
154
  return self._transitionModel:PromiseToggle(doNotAnimate)
155
155
  end
156
156
 
157
- function TimedTransitionModel:_promiseShow(maid, doNotAnimate)
157
+ function TimedTransitionModel:_promiseShow(maid, doNotAnimate: boolean?)
158
158
  self._timedTween:Show(doNotAnimate)
159
159
 
160
160
  if doNotAnimate then
@@ -164,7 +164,7 @@ function TimedTransitionModel:_promiseShow(maid, doNotAnimate)
164
164
  end
165
165
  end
166
166
 
167
- function TimedTransitionModel:_promiseHide(maid, doNotAnimate)
167
+ function TimedTransitionModel:_promiseHide(maid, doNotAnimate: boolean?)
168
168
  self._timedTween:Hide(doNotAnimate)
169
169
 
170
170
  if doNotAnimate then
@@ -12,11 +12,28 @@ local Promise = require("Promise")
12
12
  local Maid = require("Maid")
13
13
  local ValueObject = require("ValueObject")
14
14
  local DuckTypeUtils = require("DuckTypeUtils")
15
+ local _Signal = require("Signal")
16
+ local _Observable = require("Observable")
15
17
 
16
18
  local TransitionModel = setmetatable({}, BasicPane)
17
19
  TransitionModel.ClassName = "TransitionModel"
18
20
  TransitionModel.__index = TransitionModel
19
21
 
22
+ export type TransitionModel = typeof(setmetatable(
23
+ {} :: {
24
+ _isShowingComplete: ValueObject.ValueObject<boolean>,
25
+ _isHidingComplete: ValueObject.ValueObject<boolean>,
26
+
27
+ -- From BasicPane
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) -> (),
33
+ },
34
+ TransitionModel
35
+ ))
36
+
20
37
  --[=[
21
38
  A transition model that takes a set amount of time to show
22
39
  and hide. Can be used just like a [BasicPane] (in fact, it
@@ -25,7 +42,7 @@ TransitionModel.__index = TransitionModel
25
42
 
26
43
  @return TransitionModel
27
44
  ]=]
28
- function TransitionModel.new()
45
+ function TransitionModel.new(): TransitionModel
29
46
  local self = setmetatable(BasicPane.new(), TransitionModel)
30
47
 
31
48
  self._isShowingComplete = self._maid:Add(ValueObject.new(false, "boolean"))
@@ -51,7 +68,7 @@ end
51
68
  @param value any
52
69
  @return boolean
53
70
  ]=]
54
- function TransitionModel.isTransitionModel(value)
71
+ function TransitionModel.isTransitionModel(value: any): boolean
55
72
  return DuckTypeUtils.isImplementation(TransitionModel, value)
56
73
  end
57
74
 
@@ -61,7 +78,7 @@ end
61
78
  @param doNotAnimate boolean
62
79
  @return Promise
63
80
  ]=]
64
- function TransitionModel:PromiseShow(doNotAnimate)
81
+ function TransitionModel:PromiseShow(doNotAnimate: boolean?): Promise.Promise<()>
65
82
  local promise = self:_promiseIsShown()
66
83
 
67
84
  self:Show(doNotAnimate)
@@ -75,7 +92,7 @@ end
75
92
  @param doNotAnimate boolean
76
93
  @return Promise
77
94
  ]=]
78
- function TransitionModel:PromiseHide(doNotAnimate)
95
+ function TransitionModel:PromiseHide(doNotAnimate: boolean?): Promise.Promise<()>
79
96
  local promise = self:_promiseIsHidden()
80
97
 
81
98
  self:Hide(doNotAnimate)
@@ -89,7 +106,7 @@ end
89
106
  @param doNotAnimate boolean
90
107
  @return Promise
91
108
  ]=]
92
- function TransitionModel:PromiseToggle(doNotAnimate)
109
+ function TransitionModel:PromiseToggle(doNotAnimate: boolean?): Promise.Promise<()>
93
110
  if self:IsVisible() then
94
111
  return self:PromiseShow(doNotAnimate)
95
112
  else
@@ -99,17 +116,17 @@ end
99
116
 
100
117
  --[=[
101
118
  Returns true if showing is complete
102
- @return boolean
119
+ @return boolean?
103
120
  ]=]
104
- function TransitionModel:IsShowingComplete()
121
+ function TransitionModel:IsShowingComplete(): boolean
105
122
  return self._isShowingComplete.Value
106
123
  end
107
124
 
108
125
  --[=[
109
126
  Returns true if hiding is complete
110
- @return boolean
127
+ @return boolean?
111
128
  ]=]
112
- function TransitionModel:IsHidingComplete()
129
+ function TransitionModel:IsHidingComplete(): boolean?
113
130
  return self._isHidingComplete.Value
114
131
  end
115
132
 
@@ -117,7 +134,7 @@ end
117
134
  Observe is showing is complete
118
135
  @return Observable<boolean>
119
136
  ]=]
120
- function TransitionModel:ObserveIsShowingComplete()
137
+ function TransitionModel:ObserveIsShowingComplete(): _Observable.Observable<boolean>
121
138
  return self._isShowingComplete:Observe()
122
139
  end
123
140
 
@@ -125,7 +142,7 @@ end
125
142
  Observe is hiding is complete
126
143
  @return Observable<boolean>
127
144
  ]=]
128
- function TransitionModel:ObserveIsHidingComplete()
145
+ function TransitionModel:ObserveIsHidingComplete(): _Observable.Observable<boolean>
129
146
  return self._isHidingComplete:Observe()
130
147
  end
131
148
 
@@ -135,7 +152,7 @@ end
135
152
  @param pane BasicPane
136
153
  @return function -- Cleanup function
137
154
  ]=]
138
- function TransitionModel:BindToPaneVisbility(pane)
155
+ function TransitionModel:BindToPaneVisbility(pane: BasicPane.BasicPane): () -> ()
139
156
  local maid = Maid.new()
140
157
 
141
158
  maid:GiveTask(pane.VisibleChanged:Connect(function(isVisible, doNotAnimate)
@@ -178,7 +195,7 @@ function TransitionModel:SetPromiseHide(hideCallback)
178
195
  self._hideCallback = hideCallback
179
196
  end
180
197
 
181
- function TransitionModel:_promiseIsShown()
198
+ function TransitionModel:_promiseIsShown(): Promise.Promise<()>
182
199
  if self._isShowingComplete.Value then
183
200
  return Promise.resolved()
184
201
  end
@@ -207,8 +224,7 @@ function TransitionModel:_promiseIsShown()
207
224
  return promise
208
225
  end
209
226
 
210
-
211
- function TransitionModel:_promiseIsHidden()
227
+ function TransitionModel:_promiseIsHidden(): Promise.Promise<()>
212
228
  if self._isHidingComplete.Value then
213
229
  return Promise.resolved()
214
230
  end
@@ -237,7 +253,7 @@ function TransitionModel:_promiseIsHidden()
237
253
  return promise
238
254
  end
239
255
 
240
- function TransitionModel:_executeShow(doNotAnimate)
256
+ function TransitionModel:_executeShow(doNotAnimate: boolean?)
241
257
  self._maid._transition = nil
242
258
 
243
259
  local maid = Maid.new()
@@ -252,7 +268,12 @@ function TransitionModel:_executeShow(doNotAnimate)
252
268
  promise:Resolve(result)
253
269
  else
254
270
  promise:Reject()
255
- error(string.format("[TransitionModel] - Expected promise to be returned from showCallback, got %q", tostring(result)))
271
+ error(
272
+ string.format(
273
+ "[TransitionModel] - Expected promise to be returned from showCallback, got %q",
274
+ tostring(result)
275
+ )
276
+ )
256
277
  end
257
278
  else
258
279
  -- Immediately resolve
@@ -270,7 +291,7 @@ function TransitionModel:_executeShow(doNotAnimate)
270
291
  end
271
292
  end
272
293
 
273
- function TransitionModel:_executeHide(doNotAnimate)
294
+ function TransitionModel:_executeHide(doNotAnimate: boolean?)
274
295
  self._maid._transition = nil
275
296
 
276
297
  local maid = Maid.new()