@quenty/multipleclickutils 13.17.3 → 13.17.4-canary.11a5dcf.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
+ ## [13.17.4-canary.11a5dcf.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/multipleclickutils@13.17.3...@quenty/multipleclickutils@13.17.4-canary.11a5dcf.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
  ## [13.17.3](https://github.com/Quenty/NevermoreEngine/compare/@quenty/multipleclickutils@13.17.2...@quenty/multipleclickutils@13.17.3) (2025-04-10)
7
18
 
8
19
  **Note:** Version bump only for package @quenty/multipleclickutils
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quenty/multipleclickutils",
3
- "version": "13.17.3",
3
+ "version": "13.17.4-canary.11a5dcf.0",
4
4
  "description": "Utility library for detecting multiple clicks or taps. Not good UX, but good for opening up a debug menus",
5
5
  "keywords": [
6
6
  "Roblox",
@@ -26,13 +26,13 @@
26
26
  "Quenty"
27
27
  ],
28
28
  "dependencies": {
29
- "@quenty/loader": "^10.8.3",
30
- "@quenty/maid": "^3.4.3",
31
- "@quenty/rx": "^13.17.3",
32
- "@quenty/signal": "^7.10.3"
29
+ "@quenty/loader": "10.8.4-canary.11a5dcf.0",
30
+ "@quenty/maid": "3.4.4-canary.11a5dcf.0",
31
+ "@quenty/rx": "13.17.4-canary.11a5dcf.0",
32
+ "@quenty/signal": "7.10.4-canary.11a5dcf.0"
33
33
  },
34
34
  "publishConfig": {
35
35
  "access": "public"
36
36
  },
37
- "gitHead": "b06c070ae91d5dab7bd8de6e290ad2caabb15d8f"
37
+ "gitHead": "11a5dcf7d4c7a0bfbf3337e97d30e8346ea09d3f"
38
38
  }
@@ -1,3 +1,4 @@
1
+ --!strict
1
2
  --[=[
2
3
  Utility library for detecting multiple clicks or taps. Not good UX, but good for opening up a debug
3
4
  menus.
@@ -7,16 +8,16 @@
7
8
 
8
9
  local require = require(script.Parent.loader).load(script)
9
10
 
10
- local Signal = require("Signal")
11
11
  local Maid = require("Maid")
12
12
  local Observable = require("Observable")
13
+ local Signal = require("Signal")
13
14
 
14
15
  local MultipleClickUtils = {}
15
16
 
16
17
  local TIME_TO_CLICK_AGAIN = 0.5 -- Based upon windows default
17
18
  local VALID_TYPES = {
18
- [Enum.UserInputType.MouseButton1] = true;
19
- [Enum.UserInputType.Touch] = true;
19
+ [Enum.UserInputType.MouseButton1] = true,
20
+ [Enum.UserInputType.Touch] = true,
20
21
  }
21
22
 
22
23
  --[=[
@@ -24,7 +25,7 @@ local VALID_TYPES = {
24
25
  @param gui GuiObject
25
26
  @return Observable<InputObject>
26
27
  ]=]
27
- function MultipleClickUtils.observeDoubleClick(gui: GuiObject)
28
+ function MultipleClickUtils.observeDoubleClick(gui: GuiObject): Observable.Observable<InputObject>
28
29
  return MultipleClickUtils.observeMultipleClicks(gui, 2)
29
30
  end
30
31
 
@@ -35,7 +36,7 @@ end
35
36
  @param gui GuiObject
36
37
  @return Signal<InputObject>
37
38
  ]=]
38
- function MultipleClickUtils.getDoubleClickSignal(maid, gui: GuiObject)
39
+ function MultipleClickUtils.getDoubleClickSignal(maid: Maid.Maid, gui: GuiObject): Signal.Signal<InputObject>
39
40
  return MultipleClickUtils.getMultipleClickSignal(maid, gui, 2)
40
41
  end
41
42
 
@@ -46,7 +47,10 @@ end
46
47
  @param requiredCount number
47
48
  @return Observable<InputObject>
48
49
  ]=]
49
- function MultipleClickUtils.observeMultipleClicks(gui: GuiObject, requiredCount: number)
50
+ function MultipleClickUtils.observeMultipleClicks(
51
+ gui: GuiObject,
52
+ requiredCount: number
53
+ ): Observable.Observable<InputObject>
50
54
  assert(typeof(gui) == "Instance", "Bad gui")
51
55
  assert(type(requiredCount) == "number", "Bad requiredCount")
52
56
 
@@ -58,7 +62,7 @@ function MultipleClickUtils.observeMultipleClicks(gui: GuiObject, requiredCount:
58
62
  end))
59
63
 
60
64
  return maid
61
- end)
65
+ end) :: any
62
66
  end
63
67
 
64
68
  --[=[
@@ -75,7 +79,9 @@ end
75
79
  @param requiredCount number
76
80
  @return (gui: GuiObject) -> Observable<InputObject>
77
81
  ]=]
78
- function MultipleClickUtils.onMultipleClicks(requiredCount: number)
82
+ function MultipleClickUtils.onMultipleClicks(
83
+ requiredCount: number
84
+ ): (gui: GuiObject) -> Observable.Observable<InputObject>
79
85
  assert(type(requiredCount) == "number", "Bad requiredCount")
80
86
 
81
87
  return function(gui: GuiObject)
@@ -92,27 +98,31 @@ end
92
98
  @param requiredCount number
93
99
  @return Signal<InputObject>
94
100
  ]=]
95
- function MultipleClickUtils.getMultipleClickSignal(maid, gui: GuiObject, requiredCount: number)
101
+ function MultipleClickUtils.getMultipleClickSignal(
102
+ maid,
103
+ gui: GuiObject,
104
+ requiredCount: number
105
+ ): Signal.Signal<InputObject>
96
106
  assert(Maid.isMaid(maid), "Bad maid")
97
107
  assert(typeof(gui) == "Instance", "Bad gui")
98
108
  assert(type(requiredCount) == "number", "Bad requiredCount")
99
109
 
100
- local signal = Signal.new()
101
- maid:GiveTask(signal)
110
+ local signal: Signal.Signal<InputObject> = maid:Add(Signal.new() :: any)
102
111
 
103
- local lastInputTime = 0
104
- local lastInputObject = nil
105
- local inputCount = 0
112
+ local lastInputTime: number = 0
113
+ local lastInputObject: InputObject? = nil
114
+ local inputCount: number = 0
106
115
 
107
116
  maid:GiveTask(gui.InputBegan:Connect(function(inputObject)
108
117
  if not VALID_TYPES[inputObject.UserInputType] then
109
118
  return
110
119
  end
111
120
 
112
- if lastInputObject
121
+ if
122
+ lastInputObject
113
123
  and inputObject.UserInputType == lastInputObject.UserInputType
114
- and (tick() - lastInputTime) <= TIME_TO_CLICK_AGAIN then
115
-
124
+ and (os.clock() - lastInputTime) <= TIME_TO_CLICK_AGAIN
125
+ then
116
126
  inputCount = inputCount + 1
117
127
 
118
128
  if inputCount >= requiredCount then
@@ -123,7 +133,7 @@ function MultipleClickUtils.getMultipleClickSignal(maid, gui: GuiObject, require
123
133
  end
124
134
  else
125
135
  inputCount = 1
126
- lastInputTime = tick()
136
+ lastInputTime = os.clock()
127
137
  lastInputObject = inputObject
128
138
  end
129
139
  end))
@@ -131,4 +141,4 @@ function MultipleClickUtils.getMultipleClickSignal(maid, gui: GuiObject, require
131
141
  return signal
132
142
  end
133
143
 
134
- return MultipleClickUtils
144
+ return MultipleClickUtils