qsharp-lang 1.14.4-dev → 1.14.5-dev

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.
Files changed (303) hide show
  1. package/dist/samples.generated.js +36 -11
  2. package/docs/Microsoft.Quantum.Core/Length.md +1 -1
  3. package/docs/Microsoft.Quantum.Core/Repeated.md +1 -1
  4. package/docs/Microsoft.Quantum.Core/index.md +1 -1
  5. package/docs/Std.Arithmetic/AddLE.md +1 -1
  6. package/docs/Std.Arithmetic/ApplyIfEqualL.md +1 -1
  7. package/docs/Std.Arithmetic/ApplyIfEqualLE.md +1 -1
  8. package/docs/Std.Arithmetic/ApplyIfGreaterL.md +1 -1
  9. package/docs/Std.Arithmetic/ApplyIfGreaterLE.md +1 -1
  10. package/docs/Std.Arithmetic/ApplyIfGreaterOrEqualL.md +1 -1
  11. package/docs/Std.Arithmetic/ApplyIfGreaterOrEqualLE.md +1 -1
  12. package/docs/Std.Arithmetic/ApplyIfLessL.md +1 -1
  13. package/docs/Std.Arithmetic/ApplyIfLessLE.md +1 -1
  14. package/docs/Std.Arithmetic/ApplyIfLessOrEqualL.md +1 -1
  15. package/docs/Std.Arithmetic/ApplyIfLessOrEqualLE.md +1 -1
  16. package/docs/Std.Arithmetic/FourierTDIncByLE.md +1 -1
  17. package/docs/Std.Arithmetic/IncByI.md +1 -1
  18. package/docs/Std.Arithmetic/IncByIUsingIncByLE.md +1 -1
  19. package/docs/Std.Arithmetic/IncByL.md +1 -1
  20. package/docs/Std.Arithmetic/IncByLE.md +1 -1
  21. package/docs/Std.Arithmetic/IncByLEUsingAddLE.md +1 -1
  22. package/docs/Std.Arithmetic/IncByLUsingIncByLE.md +1 -1
  23. package/docs/Std.Arithmetic/LookAheadDKRSAddLE.md +1 -1
  24. package/docs/Std.Arithmetic/MAJ.md +1 -1
  25. package/docs/Std.Arithmetic/ReflectAboutInteger.md +1 -1
  26. package/docs/Std.Arithmetic/RippleCarryCGAddLE.md +1 -1
  27. package/docs/Std.Arithmetic/RippleCarryCGIncByLE.md +1 -1
  28. package/docs/Std.Arithmetic/RippleCarryTTKIncByLE.md +1 -1
  29. package/docs/Std.Arithmetic/index.md +1 -1
  30. package/docs/Std.Arrays/All.md +1 -1
  31. package/docs/Std.Arrays/Any.md +1 -1
  32. package/docs/Std.Arrays/Chunks.md +1 -1
  33. package/docs/Std.Arrays/CircularlyShifted.md +1 -1
  34. package/docs/Std.Arrays/ColumnAt.md +1 -1
  35. package/docs/Std.Arrays/Count.md +1 -1
  36. package/docs/Std.Arrays/Diagonal.md +1 -1
  37. package/docs/Std.Arrays/DrawMany.md +1 -1
  38. package/docs/Std.Arrays/Enumerated.md +1 -1
  39. package/docs/Std.Arrays/Excluding.md +1 -1
  40. package/docs/Std.Arrays/Filtered.md +1 -1
  41. package/docs/Std.Arrays/FlatMapped.md +1 -1
  42. package/docs/Std.Arrays/Flattened.md +1 -1
  43. package/docs/Std.Arrays/Fold.md +1 -1
  44. package/docs/Std.Arrays/ForEach.md +1 -1
  45. package/docs/Std.Arrays/Head.md +1 -1
  46. package/docs/Std.Arrays/HeadAndRest.md +1 -1
  47. package/docs/Std.Arrays/IndexOf.md +1 -1
  48. package/docs/Std.Arrays/IndexRange.md +1 -1
  49. package/docs/Std.Arrays/Interleaved.md +1 -1
  50. package/docs/Std.Arrays/IsEmpty.md +1 -1
  51. package/docs/Std.Arrays/IsRectangularArray.md +1 -1
  52. package/docs/Std.Arrays/IsSorted.md +1 -1
  53. package/docs/Std.Arrays/IsSquareArray.md +1 -1
  54. package/docs/Std.Arrays/Mapped.md +1 -1
  55. package/docs/Std.Arrays/MappedByIndex.md +1 -1
  56. package/docs/Std.Arrays/MappedOverRange.md +1 -1
  57. package/docs/Std.Arrays/Most.md +1 -1
  58. package/docs/Std.Arrays/MostAndTail.md +1 -1
  59. package/docs/Std.Arrays/Padded.md +1 -1
  60. package/docs/Std.Arrays/Partitioned.md +1 -1
  61. package/docs/Std.Arrays/Rest.md +1 -1
  62. package/docs/Std.Arrays/Reversed.md +1 -1
  63. package/docs/Std.Arrays/SequenceI.md +1 -1
  64. package/docs/Std.Arrays/SequenceL.md +1 -1
  65. package/docs/Std.Arrays/Sorted.md +1 -1
  66. package/docs/Std.Arrays/Subarray.md +1 -1
  67. package/docs/Std.Arrays/Swapped.md +1 -1
  68. package/docs/Std.Arrays/Tail.md +1 -1
  69. package/docs/Std.Arrays/Transposed.md +1 -1
  70. package/docs/Std.Arrays/Unzipped.md +1 -1
  71. package/docs/Std.Arrays/Where.md +1 -1
  72. package/docs/Std.Arrays/Windows.md +1 -1
  73. package/docs/Std.Arrays/Zipped.md +1 -1
  74. package/docs/Std.Arrays/index.md +1 -1
  75. package/docs/Std.Canon/ApplyCNOTChain.md +1 -1
  76. package/docs/Std.Canon/ApplyControlledOnBitString.md +1 -1
  77. package/docs/Std.Canon/ApplyControlledOnInt.md +1 -1
  78. package/docs/Std.Canon/ApplyP.md +1 -1
  79. package/docs/Std.Canon/ApplyPauli.md +1 -1
  80. package/docs/Std.Canon/ApplyPauliFromBitString.md +1 -1
  81. package/docs/Std.Canon/ApplyPauliFromInt.md +1 -1
  82. package/docs/Std.Canon/ApplyQFT.md +1 -1
  83. package/docs/Std.Canon/ApplyToEach.md +1 -1
  84. package/docs/Std.Canon/ApplyToEachA.md +1 -1
  85. package/docs/Std.Canon/ApplyToEachC.md +1 -1
  86. package/docs/Std.Canon/ApplyToEachCA.md +1 -1
  87. package/docs/Std.Canon/ApplyXorInPlace.md +1 -1
  88. package/docs/Std.Canon/ApplyXorInPlaceL.md +1 -1
  89. package/docs/Std.Canon/CX.md +1 -1
  90. package/docs/Std.Canon/CY.md +1 -1
  91. package/docs/Std.Canon/CZ.md +1 -1
  92. package/docs/Std.Canon/Fst.md +1 -1
  93. package/docs/Std.Canon/Relabel.md +1 -1
  94. package/docs/Std.Canon/Snd.md +1 -1
  95. package/docs/Std.Canon/SwapReverseRegister.md +1 -1
  96. package/docs/Std.Canon/index.md +1 -1
  97. package/docs/Std.Convert/BigIntAsBoolArray.md +1 -1
  98. package/docs/Std.Convert/BoolArrayAsBigInt.md +1 -1
  99. package/docs/Std.Convert/BoolArrayAsInt.md +1 -1
  100. package/docs/Std.Convert/BoolArrayAsResultArray.md +1 -1
  101. package/docs/Std.Convert/BoolAsResult.md +1 -1
  102. package/docs/Std.Convert/ComplexAsComplexPolar.md +1 -1
  103. package/docs/Std.Convert/ComplexPolarAsComplex.md +1 -1
  104. package/docs/Std.Convert/DoubleAsStringWithPrecision.md +1 -1
  105. package/docs/Std.Convert/IntAsBigInt.md +1 -1
  106. package/docs/Std.Convert/IntAsBoolArray.md +1 -1
  107. package/docs/Std.Convert/IntAsDouble.md +1 -1
  108. package/docs/Std.Convert/ResultArrayAsBoolArray.md +1 -1
  109. package/docs/Std.Convert/ResultArrayAsInt.md +1 -1
  110. package/docs/Std.Convert/ResultAsBool.md +1 -1
  111. package/docs/Std.Convert/index.md +1 -1
  112. package/docs/Std.Core/Length.md +1 -1
  113. package/docs/Std.Core/Repeated.md +1 -1
  114. package/docs/Std.Core/index.md +1 -1
  115. package/docs/Std.Diagnostics/ApplyIdleNoise.md +1 -1
  116. package/docs/Std.Diagnostics/BitFlipNoise.md +1 -1
  117. package/docs/Std.Diagnostics/CheckAllZero.md +1 -1
  118. package/docs/Std.Diagnostics/CheckOperationsAreEqual.md +1 -1
  119. package/docs/Std.Diagnostics/CheckZero.md +1 -1
  120. package/docs/Std.Diagnostics/ConfigurePauliNoise.md +1 -1
  121. package/docs/Std.Diagnostics/DepolarizingNoise.md +1 -1
  122. package/docs/Std.Diagnostics/DumpMachine.md +1 -1
  123. package/docs/Std.Diagnostics/DumpOperation.md +1 -1
  124. package/docs/Std.Diagnostics/DumpRegister.md +1 -1
  125. package/docs/Std.Diagnostics/Fact.md +1 -1
  126. package/docs/Std.Diagnostics/NoNoise.md +1 -1
  127. package/docs/Std.Diagnostics/PhaseFlipNoise.md +1 -1
  128. package/docs/Std.Diagnostics/StartCountingFunction.md +1 -1
  129. package/docs/Std.Diagnostics/StartCountingOperation.md +1 -1
  130. package/docs/Std.Diagnostics/StartCountingQubits.md +1 -1
  131. package/docs/Std.Diagnostics/StopCountingFunction.md +1 -1
  132. package/docs/Std.Diagnostics/StopCountingOperation.md +1 -1
  133. package/docs/Std.Diagnostics/StopCountingQubits.md +1 -1
  134. package/docs/Std.Diagnostics/index.md +1 -1
  135. package/docs/Std.Intrinsic/AND.md +1 -1
  136. package/docs/Std.Intrinsic/ApplyUnitary.md +1 -1
  137. package/docs/Std.Intrinsic/CCNOT.md +1 -1
  138. package/docs/Std.Intrinsic/CNOT.md +1 -1
  139. package/docs/Std.Intrinsic/Exp.md +1 -1
  140. package/docs/Std.Intrinsic/H.md +1 -1
  141. package/docs/Std.Intrinsic/I.md +1 -1
  142. package/docs/Std.Intrinsic/M.md +1 -1
  143. package/docs/Std.Intrinsic/Measure.md +1 -1
  144. package/docs/Std.Intrinsic/Message.md +1 -1
  145. package/docs/Std.Intrinsic/R.md +1 -1
  146. package/docs/Std.Intrinsic/R1.md +1 -1
  147. package/docs/Std.Intrinsic/R1Frac.md +1 -1
  148. package/docs/Std.Intrinsic/RFrac.md +1 -1
  149. package/docs/Std.Intrinsic/Reset.md +1 -1
  150. package/docs/Std.Intrinsic/ResetAll.md +1 -1
  151. package/docs/Std.Intrinsic/Rx.md +1 -1
  152. package/docs/Std.Intrinsic/Rxx.md +1 -1
  153. package/docs/Std.Intrinsic/Ry.md +1 -1
  154. package/docs/Std.Intrinsic/Ryy.md +1 -1
  155. package/docs/Std.Intrinsic/Rz.md +1 -1
  156. package/docs/Std.Intrinsic/Rzz.md +1 -1
  157. package/docs/Std.Intrinsic/S.md +1 -1
  158. package/docs/Std.Intrinsic/SWAP.md +1 -1
  159. package/docs/Std.Intrinsic/T.md +1 -1
  160. package/docs/Std.Intrinsic/X.md +1 -1
  161. package/docs/Std.Intrinsic/Y.md +1 -1
  162. package/docs/Std.Intrinsic/Z.md +1 -1
  163. package/docs/Std.Intrinsic/index.md +1 -1
  164. package/docs/Std.Logical/Xor.md +1 -1
  165. package/docs/Std.Logical/index.md +1 -1
  166. package/docs/Std.Math/AbsComplex.md +1 -1
  167. package/docs/Std.Math/AbsComplexPolar.md +1 -1
  168. package/docs/Std.Math/AbsD.md +1 -1
  169. package/docs/Std.Math/AbsI.md +1 -1
  170. package/docs/Std.Math/AbsL.md +1 -1
  171. package/docs/Std.Math/AbsSquaredComplex.md +1 -1
  172. package/docs/Std.Math/AbsSquaredComplexPolar.md +1 -1
  173. package/docs/Std.Math/ApproximateFactorial.md +1 -1
  174. package/docs/Std.Math/ArcCos.md +1 -1
  175. package/docs/Std.Math/ArcCosh.md +1 -1
  176. package/docs/Std.Math/ArcSin.md +1 -1
  177. package/docs/Std.Math/ArcSinh.md +1 -1
  178. package/docs/Std.Math/ArcTan.md +1 -1
  179. package/docs/Std.Math/ArcTan2.md +1 -1
  180. package/docs/Std.Math/ArcTanh.md +1 -1
  181. package/docs/Std.Math/ArgComplex.md +1 -1
  182. package/docs/Std.Math/ArgComplexPolar.md +1 -1
  183. package/docs/Std.Math/Binom.md +1 -1
  184. package/docs/Std.Math/BitSizeI.md +1 -1
  185. package/docs/Std.Math/BitSizeL.md +1 -1
  186. package/docs/Std.Math/Ceiling.md +1 -1
  187. package/docs/Std.Math/Complex.md +1 -1
  188. package/docs/Std.Math/ComplexPolar.md +1 -1
  189. package/docs/Std.Math/ContinuedFractionConvergentI.md +1 -1
  190. package/docs/Std.Math/ContinuedFractionConvergentL.md +1 -1
  191. package/docs/Std.Math/Cos.md +1 -1
  192. package/docs/Std.Math/Cosh.md +1 -1
  193. package/docs/Std.Math/DivRemI.md +1 -1
  194. package/docs/Std.Math/DivRemL.md +1 -1
  195. package/docs/Std.Math/DividedByC.md +1 -1
  196. package/docs/Std.Math/DividedByCP.md +1 -1
  197. package/docs/Std.Math/E.md +1 -1
  198. package/docs/Std.Math/ExpModI.md +1 -1
  199. package/docs/Std.Math/ExpModL.md +1 -1
  200. package/docs/Std.Math/ExtendedGreatestCommonDivisorI.md +1 -1
  201. package/docs/Std.Math/ExtendedGreatestCommonDivisorL.md +1 -1
  202. package/docs/Std.Math/FactorialI.md +1 -1
  203. package/docs/Std.Math/FactorialL.md +1 -1
  204. package/docs/Std.Math/Floor.md +1 -1
  205. package/docs/Std.Math/GreatestCommonDivisorI.md +1 -1
  206. package/docs/Std.Math/GreatestCommonDivisorL.md +1 -1
  207. package/docs/Std.Math/HammingWeightI.md +1 -1
  208. package/docs/Std.Math/InverseModI.md +1 -1
  209. package/docs/Std.Math/InverseModL.md +1 -1
  210. package/docs/Std.Math/IsCoprimeI.md +1 -1
  211. package/docs/Std.Math/IsCoprimeL.md +1 -1
  212. package/docs/Std.Math/IsInfinite.md +1 -1
  213. package/docs/Std.Math/IsNaN.md +1 -1
  214. package/docs/Std.Math/LargestFixedPoint.md +1 -1
  215. package/docs/Std.Math/Lg.md +1 -1
  216. package/docs/Std.Math/Log.md +1 -1
  217. package/docs/Std.Math/Log10.md +1 -1
  218. package/docs/Std.Math/LogFactorialD.md +1 -1
  219. package/docs/Std.Math/LogGammaD.md +1 -1
  220. package/docs/Std.Math/LogOf2.md +1 -1
  221. package/docs/Std.Math/Max.md +1 -1
  222. package/docs/Std.Math/MaxD.md +1 -1
  223. package/docs/Std.Math/MaxI.md +1 -1
  224. package/docs/Std.Math/MaxL.md +1 -1
  225. package/docs/Std.Math/Min.md +1 -1
  226. package/docs/Std.Math/MinD.md +1 -1
  227. package/docs/Std.Math/MinI.md +1 -1
  228. package/docs/Std.Math/MinL.md +1 -1
  229. package/docs/Std.Math/MinusC.md +1 -1
  230. package/docs/Std.Math/MinusCP.md +1 -1
  231. package/docs/Std.Math/ModulusI.md +1 -1
  232. package/docs/Std.Math/ModulusL.md +1 -1
  233. package/docs/Std.Math/NegationC.md +1 -1
  234. package/docs/Std.Math/NegationCP.md +1 -1
  235. package/docs/Std.Math/PI.md +1 -1
  236. package/docs/Std.Math/PNorm.md +1 -1
  237. package/docs/Std.Math/PNormalized.md +1 -1
  238. package/docs/Std.Math/PlusC.md +1 -1
  239. package/docs/Std.Math/PlusCP.md +1 -1
  240. package/docs/Std.Math/PowC.md +1 -1
  241. package/docs/Std.Math/PowCP.md +1 -1
  242. package/docs/Std.Math/RealMod.md +1 -1
  243. package/docs/Std.Math/Round.md +1 -1
  244. package/docs/Std.Math/SignD.md +1 -1
  245. package/docs/Std.Math/SignI.md +1 -1
  246. package/docs/Std.Math/SignL.md +1 -1
  247. package/docs/Std.Math/Sin.md +1 -1
  248. package/docs/Std.Math/Sinh.md +1 -1
  249. package/docs/Std.Math/SmallestFixedPoint.md +1 -1
  250. package/docs/Std.Math/Sqrt.md +1 -1
  251. package/docs/Std.Math/SquaredNorm.md +1 -1
  252. package/docs/Std.Math/Tan.md +1 -1
  253. package/docs/Std.Math/Tanh.md +1 -1
  254. package/docs/Std.Math/TimesC.md +1 -1
  255. package/docs/Std.Math/TimesCP.md +1 -1
  256. package/docs/Std.Math/TrailingZeroCountI.md +1 -1
  257. package/docs/Std.Math/TrailingZeroCountL.md +1 -1
  258. package/docs/Std.Math/Truncate.md +1 -1
  259. package/docs/Std.Math/index.md +1 -1
  260. package/docs/Std.Measurement/MResetEachZ.md +1 -1
  261. package/docs/Std.Measurement/MResetX.md +1 -1
  262. package/docs/Std.Measurement/MResetY.md +1 -1
  263. package/docs/Std.Measurement/MResetZ.md +1 -1
  264. package/docs/Std.Measurement/MeasureAllZ.md +1 -1
  265. package/docs/Std.Measurement/MeasureEachZ.md +1 -1
  266. package/docs/Std.Measurement/MeasureInteger.md +1 -1
  267. package/docs/Std.Measurement/index.md +1 -1
  268. package/docs/Std.Random/DrawRandomBool.md +1 -1
  269. package/docs/Std.Random/DrawRandomDouble.md +1 -1
  270. package/docs/Std.Random/DrawRandomInt.md +1 -1
  271. package/docs/Std.Random/index.md +1 -1
  272. package/docs/Std.Range/IsRangeEmpty.md +1 -1
  273. package/docs/Std.Range/RangeEnd.md +1 -1
  274. package/docs/Std.Range/RangeReverse.md +1 -1
  275. package/docs/Std.Range/RangeStart.md +1 -1
  276. package/docs/Std.Range/RangeStep.md +1 -1
  277. package/docs/Std.Range/index.md +1 -1
  278. package/docs/Std.ResourceEstimation/AccountForEstimates.md +1 -1
  279. package/docs/Std.ResourceEstimation/AuxQubitCount.md +1 -1
  280. package/docs/Std.ResourceEstimation/BeginEstimateCaching.md +1 -1
  281. package/docs/Std.ResourceEstimation/BeginRepeatEstimates.md +1 -1
  282. package/docs/Std.ResourceEstimation/CczCount.md +1 -1
  283. package/docs/Std.ResourceEstimation/EndEstimateCaching.md +1 -1
  284. package/docs/Std.ResourceEstimation/EndRepeatEstimates.md +1 -1
  285. package/docs/Std.ResourceEstimation/MeasurementCount.md +1 -1
  286. package/docs/Std.ResourceEstimation/PSSPCLayout.md +1 -1
  287. package/docs/Std.ResourceEstimation/RepeatEstimates.md +1 -1
  288. package/docs/Std.ResourceEstimation/RotationCount.md +1 -1
  289. package/docs/Std.ResourceEstimation/RotationDepth.md +1 -1
  290. package/docs/Std.ResourceEstimation/SingleVariant.md +1 -1
  291. package/docs/Std.ResourceEstimation/TCount.md +1 -1
  292. package/docs/Std.ResourceEstimation/index.md +1 -1
  293. package/docs/Std.StatePreparation/ApproximatelyPreparePureStateCP.md +1 -1
  294. package/docs/Std.StatePreparation/PreparePureStateD.md +1 -1
  295. package/docs/Std.StatePreparation/PrepareUniformSuperposition.md +1 -1
  296. package/docs/Std.StatePreparation/index.md +1 -1
  297. package/docs/Std.TableLookup/Select.md +1 -1
  298. package/docs/Std.TableLookup/index.md +1 -1
  299. package/docs/index.md +1 -1
  300. package/lib/node/qsc_wasm_bg.wasm +0 -0
  301. package/lib/web/qsc_wasm_bg.wasm +0 -0
  302. package/package.json +1 -1
  303. package/ux/histogram.tsx +26 -19
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Std.StatePreparation.PrepareUniformSuperposition
3
3
  title: PrepareUniformSuperposition operation
4
4
  description: "Q# PrepareUniformSuperposition operation: Prepares a uniform superposition of states that represent integers 0 through `nStates - 1` in a little-endian `qubits` register."
5
- ms.date: 03/20/2025
5
+ ms.date: 03/31/2025
6
6
  ms.topic: managed-reference
7
7
  qsharp.kind: operation
8
8
  qsharp.package: __Std__
@@ -4,7 +4,7 @@ title: Std.StatePreparation namespace
4
4
  description: Table of contents for the Q# StatePreparation namespace
5
5
  author: {AUTHOR}
6
6
  ms.author: {MS_AUTHOR}
7
- ms.date: 03/20/2025
7
+ ms.date: 03/31/2025
8
8
  ms.topic: landing-page
9
9
  ---
10
10
 
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Std.TableLookup.Select
3
3
  title: Select operation
4
4
  description: "Q# Select operation: Performs table lookup using a SELECT network"
5
- ms.date: 03/20/2025
5
+ ms.date: 03/31/2025
6
6
  ms.topic: managed-reference
7
7
  qsharp.kind: operation
8
8
  qsharp.package: __Std__
@@ -4,7 +4,7 @@ title: Std.TableLookup namespace
4
4
  description: Table of contents for the Q# TableLookup namespace
5
5
  author: {AUTHOR}
6
6
  ms.author: {MS_AUTHOR}
7
- ms.date: 03/20/2025
7
+ ms.date: 03/31/2025
8
8
  ms.topic: landing-page
9
9
  ---
10
10
 
package/docs/index.md CHANGED
@@ -4,7 +4,7 @@ title: Q# standard libraries for the Azure Quantum Development Kit
4
4
  description: Table of contents for the Q# standard libraries for Azure Quantum Development Kit
5
5
  author: {AUTHOR}
6
6
  ms.author: {MS_AUTHOR}
7
- ms.date: 03/20/2025
7
+ ms.date: 03/31/2025
8
8
  ms.topic: landing-page
9
9
  ---
10
10
 
Binary file
Binary file
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "qsharp-lang",
3
3
  "description": "qsharp language package for quantum development",
4
- "version": "1.14.4-dev",
4
+ "version": "1.14.5-dev",
5
5
  "license": "MIT",
6
6
  "engines": {
7
7
  "node": ">=16.17.0"
package/ux/histogram.tsx CHANGED
@@ -3,9 +3,6 @@
3
3
 
4
4
  import { useRef, useState } from "preact/hooks";
5
5
 
6
- const enablePanning = false;
7
- const altKeyPans = true;
8
-
9
6
  const menuItems = [
10
7
  {
11
8
  category: "itemCount",
@@ -181,6 +178,21 @@ export function Histogram(props: {
181
178
  const showLabels = barBoxWidth > 5 && menuSelection["labels"] !== 2;
182
179
 
183
180
  function onWheel(e: WheelEvent): void {
181
+ // Ctrl+scroll is the event sent by pinch-to-zoom on a trackpad. Shift+scroll is common for
182
+ // panning horizontally. See https://danburzo.ro/dom-gestures/ for the messy details.
183
+ if (!e.ctrlKey && !e.shiftKey) return;
184
+
185
+ // When using a mouse wheel, the deltaY is the scroll amount, but if the shift key is pressed
186
+ // this swaps and deltaX is the scroll amount. The swap doesn't happen for trackpad scrolling.
187
+ // To complicate matters more, on the trackpad sometimes both deltaX and deltaY have a value.
188
+ // So, if the shift key is pressed and deltaY is 0, then assume mouse wheel and use deltaX.
189
+ let delta = e.shiftKey && !e.deltaY ? e.deltaX : e.deltaY;
190
+
191
+ // Scrolling with the wheel can result in really large deltas, so we need to cap them.
192
+ if (Math.abs(delta) > 20) {
193
+ delta = Math.sign(delta) * 20;
194
+ }
195
+
184
196
  e.preventDefault();
185
197
 
186
198
  // currentTarget is the element the listener is attached to, the main svg
@@ -207,9 +219,9 @@ export function Histogram(props: {
207
219
  let newScrollOffset = scale.offset;
208
220
  let newZoom = scale.zoom;
209
221
 
210
- // *** First handle any zooming ***
211
- if (!altKeyPans || !e.altKey) {
212
- newZoom = scale.zoom + e.deltaY * 0.05;
222
+ if (!e.shiftKey) {
223
+ // *** Zooming ***
224
+ newZoom = scale.zoom - delta * 0.05;
213
225
  newZoom = Math.min(Math.max(1, newZoom), 50);
214
226
 
215
227
  // On zooming in, need to shift left to maintain mouse point, and vice verca.
@@ -220,14 +232,9 @@ export function Histogram(props: {
220
232
  newZoom * barAreaWidth - scale.zoom * barAreaWidth;
221
233
  const shiftLeftAdjust = percentRightOnChart * chartWidthGrowth;
222
234
  newScrollOffset = scale.offset - shiftLeftAdjust;
223
- }
224
-
225
- // *** Then handle any panning ***
226
- if (enablePanning) {
227
- newScrollOffset -= e.deltaX;
228
- }
229
- if (!enablePanning && altKeyPans && e.altKey) {
230
- newScrollOffset -= e.deltaY;
235
+ } else {
236
+ // *** Panning ***
237
+ newScrollOffset -= delta;
231
238
  }
232
239
 
233
240
  // Don't allow offset > 1 (scrolls the first bar right of the left edge of the area)
@@ -414,18 +421,18 @@ export function Histogram(props: {
414
421
  Click the top-left 'settings' icon for display options.
415
422
  </tspan>
416
423
  <tspan x="10" dy="10">
417
- You can zoom the chart using the mouse scroll wheel.
424
+ You can zoom the chart using the pinch-to-zoom gesture,
418
425
  </tspan>
419
- <tspan x="10" dy="7">
420
- (Or using a trackpad gesture).
426
+ <tspan x="10" dy="10">
427
+ or use Ctrl+scroll wheel to zoom in/out.
421
428
  </tspan>
422
429
  <tspan x="10" dy="10">
423
- When zoomed, to pan left &amp; right, press 'Alt' while scrolling.
430
+ To pan left &amp; right, press Shift while zooming.
424
431
  </tspan>
425
432
  <tspan x="10" dy="10">
426
433
  Click on a bar to filter the shot details to that result.
427
434
  </tspan>
428
- <tspan x="10" dy="12">
435
+ <tspan x="10" dy="10">
429
436
  Click anywhere in this box to dismiss it.
430
437
  </tspan>
431
438
  </text>