qsharp-lang 1.25.5-dev → 1.25.8-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.
- package/dist/data-structures/circuit.d.ts +8 -1
- package/docs/Microsoft.Quantum.Core/IsRangeEmpty.md +1 -1
- package/docs/Microsoft.Quantum.Core/Length.md +1 -1
- package/docs/Microsoft.Quantum.Core/RangeEnd.md +1 -1
- package/docs/Microsoft.Quantum.Core/RangeStart.md +1 -1
- package/docs/Microsoft.Quantum.Core/Repeated.md +1 -1
- package/docs/Microsoft.Quantum.Core/index.md +1 -1
- package/docs/Std.Arithmetic/AddLE.md +1 -1
- package/docs/Std.Arithmetic/ApplyIfEqualL.md +1 -1
- package/docs/Std.Arithmetic/ApplyIfEqualLE.md +1 -1
- package/docs/Std.Arithmetic/ApplyIfGreaterL.md +1 -1
- package/docs/Std.Arithmetic/ApplyIfGreaterLE.md +1 -1
- package/docs/Std.Arithmetic/ApplyIfGreaterOrEqualL.md +1 -1
- package/docs/Std.Arithmetic/ApplyIfGreaterOrEqualLE.md +1 -1
- package/docs/Std.Arithmetic/ApplyIfLessL.md +1 -1
- package/docs/Std.Arithmetic/ApplyIfLessLE.md +1 -1
- package/docs/Std.Arithmetic/ApplyIfLessOrEqualL.md +1 -1
- package/docs/Std.Arithmetic/ApplyIfLessOrEqualLE.md +1 -1
- package/docs/Std.Arithmetic/FourierTDIncByLE.md +1 -1
- package/docs/Std.Arithmetic/IncByI.md +1 -1
- package/docs/Std.Arithmetic/IncByIUsingIncByLE.md +1 -1
- package/docs/Std.Arithmetic/IncByL.md +1 -1
- package/docs/Std.Arithmetic/IncByLE.md +1 -1
- package/docs/Std.Arithmetic/IncByLEUsingAddLE.md +1 -1
- package/docs/Std.Arithmetic/IncByLUsingIncByLE.md +1 -1
- package/docs/Std.Arithmetic/LookAheadDKRSAddLE.md +1 -1
- package/docs/Std.Arithmetic/MAJ.md +1 -1
- package/docs/Std.Arithmetic/ReflectAboutInteger.md +1 -1
- package/docs/Std.Arithmetic/RippleCarryCGAddLE.md +1 -1
- package/docs/Std.Arithmetic/RippleCarryCGIncByLE.md +1 -1
- package/docs/Std.Arithmetic/RippleCarryTTKIncByLE.md +1 -1
- package/docs/Std.Arithmetic/index.md +1 -1
- package/docs/Std.Arrays/All.md +1 -1
- package/docs/Std.Arrays/Any.md +1 -1
- package/docs/Std.Arrays/Chunks.md +1 -1
- package/docs/Std.Arrays/CircularlyShifted.md +1 -1
- package/docs/Std.Arrays/ColumnAt.md +1 -1
- package/docs/Std.Arrays/Count.md +1 -1
- package/docs/Std.Arrays/Diagonal.md +1 -1
- package/docs/Std.Arrays/DrawMany.md +1 -1
- package/docs/Std.Arrays/Enumerated.md +1 -1
- package/docs/Std.Arrays/Excluding.md +1 -1
- package/docs/Std.Arrays/Filtered.md +1 -1
- package/docs/Std.Arrays/FlatMapped.md +1 -1
- package/docs/Std.Arrays/Flattened.md +1 -1
- package/docs/Std.Arrays/Fold.md +1 -1
- package/docs/Std.Arrays/ForEach.md +1 -1
- package/docs/Std.Arrays/Head.md +1 -1
- package/docs/Std.Arrays/HeadAndRest.md +1 -1
- package/docs/Std.Arrays/IndexOf.md +1 -1
- package/docs/Std.Arrays/IndexRange.md +1 -1
- package/docs/Std.Arrays/Interleaved.md +1 -1
- package/docs/Std.Arrays/IsEmpty.md +1 -1
- package/docs/Std.Arrays/IsRectangularArray.md +1 -1
- package/docs/Std.Arrays/IsSorted.md +1 -1
- package/docs/Std.Arrays/IsSquareArray.md +1 -1
- package/docs/Std.Arrays/Mapped.md +1 -1
- package/docs/Std.Arrays/MappedByIndex.md +1 -1
- package/docs/Std.Arrays/MappedOverRange.md +1 -1
- package/docs/Std.Arrays/Most.md +1 -1
- package/docs/Std.Arrays/MostAndTail.md +1 -1
- package/docs/Std.Arrays/Padded.md +1 -1
- package/docs/Std.Arrays/Partitioned.md +1 -1
- package/docs/Std.Arrays/Rest.md +1 -1
- package/docs/Std.Arrays/Reversed.md +1 -1
- package/docs/Std.Arrays/SequenceI.md +1 -1
- package/docs/Std.Arrays/SequenceL.md +1 -1
- package/docs/Std.Arrays/Sorted.md +1 -1
- package/docs/Std.Arrays/Subarray.md +1 -1
- package/docs/Std.Arrays/Swapped.md +1 -1
- package/docs/Std.Arrays/Tail.md +1 -1
- package/docs/Std.Arrays/Transposed.md +1 -1
- package/docs/Std.Arrays/Unzipped.md +1 -1
- package/docs/Std.Arrays/Where.md +1 -1
- package/docs/Std.Arrays/Windows.md +1 -1
- package/docs/Std.Arrays/Zipped.md +1 -1
- package/docs/Std.Arrays/index.md +1 -1
- package/docs/Std.Canon/ApplyCNOTChain.md +1 -1
- package/docs/Std.Canon/ApplyControlledOnBitString.md +1 -1
- package/docs/Std.Canon/ApplyControlledOnInt.md +1 -1
- package/docs/Std.Canon/ApplyOperationPowerA.md +1 -1
- package/docs/Std.Canon/ApplyOperationPowerCA.md +1 -1
- package/docs/Std.Canon/ApplyP.md +1 -1
- package/docs/Std.Canon/ApplyPauli.md +1 -1
- package/docs/Std.Canon/ApplyPauliFromBitString.md +1 -1
- package/docs/Std.Canon/ApplyPauliFromInt.md +1 -1
- package/docs/Std.Canon/ApplyQFT.md +1 -1
- package/docs/Std.Canon/ApplyQPE.md +1 -1
- package/docs/Std.Canon/ApplyToEach.md +1 -1
- package/docs/Std.Canon/ApplyToEachA.md +1 -1
- package/docs/Std.Canon/ApplyToEachC.md +1 -1
- package/docs/Std.Canon/ApplyToEachCA.md +1 -1
- package/docs/Std.Canon/ApplyXorInPlace.md +1 -1
- package/docs/Std.Canon/ApplyXorInPlaceL.md +1 -1
- package/docs/Std.Canon/CX.md +1 -1
- package/docs/Std.Canon/CY.md +1 -1
- package/docs/Std.Canon/CZ.md +1 -1
- package/docs/Std.Canon/Fst.md +1 -1
- package/docs/Std.Canon/MapPauliAxis.md +1 -1
- package/docs/Std.Canon/Relabel.md +1 -1
- package/docs/Std.Canon/Snd.md +1 -1
- package/docs/Std.Canon/SwapReverseRegister.md +1 -1
- package/docs/Std.Canon/index.md +1 -1
- package/docs/Std.Convert/BigIntAsBoolArray.md +1 -1
- package/docs/Std.Convert/BigIntAsInt.md +1 -1
- package/docs/Std.Convert/BoolArrayAsBigInt.md +1 -1
- package/docs/Std.Convert/BoolArrayAsInt.md +1 -1
- package/docs/Std.Convert/BoolArrayAsResultArray.md +1 -1
- package/docs/Std.Convert/BoolAsResult.md +1 -1
- package/docs/Std.Convert/ComplexAsComplexPolar.md +1 -1
- package/docs/Std.Convert/ComplexPolarAsComplex.md +1 -1
- package/docs/Std.Convert/DoubleAsStringWithPrecision.md +1 -1
- package/docs/Std.Convert/IntAsBigInt.md +1 -1
- package/docs/Std.Convert/IntAsBoolArray.md +1 -1
- package/docs/Std.Convert/IntAsDouble.md +1 -1
- package/docs/Std.Convert/ResultArrayAsBoolArray.md +1 -1
- package/docs/Std.Convert/ResultArrayAsInt.md +1 -1
- package/docs/Std.Convert/ResultAsBool.md +1 -1
- package/docs/Std.Convert/index.md +1 -1
- package/docs/Std.Core/Complex.md +1 -1
- package/docs/Std.Core/Length.md +1 -1
- package/docs/Std.Core/Repeated.md +1 -1
- package/docs/Std.Core/index.md +1 -1
- package/docs/Std.Diagnostics/ApplyIdleNoise.md +1 -1
- package/docs/Std.Diagnostics/BitFlipNoise.md +1 -1
- package/docs/Std.Diagnostics/CheckAllZero.md +1 -1
- package/docs/Std.Diagnostics/CheckOperationsAreEqual.md +1 -1
- package/docs/Std.Diagnostics/CheckZero.md +1 -1
- package/docs/Std.Diagnostics/ConfigurePauliNoise.md +1 -1
- package/docs/Std.Diagnostics/ConfigureQubitLoss.md +1 -1
- package/docs/Std.Diagnostics/DepolarizingNoise.md +1 -1
- package/docs/Std.Diagnostics/DumpMachine.md +1 -1
- package/docs/Std.Diagnostics/DumpOperation.md +1 -1
- package/docs/Std.Diagnostics/DumpRegister.md +1 -1
- package/docs/Std.Diagnostics/Fact.md +1 -1
- package/docs/Std.Diagnostics/NoNoise.md +1 -1
- package/docs/Std.Diagnostics/PhaseFlipNoise.md +1 -1
- package/docs/Std.Diagnostics/StartCountingFunction.md +1 -1
- package/docs/Std.Diagnostics/StartCountingOperation.md +1 -1
- package/docs/Std.Diagnostics/StartCountingQubits.md +1 -1
- package/docs/Std.Diagnostics/StopCountingFunction.md +1 -1
- package/docs/Std.Diagnostics/StopCountingOperation.md +1 -1
- package/docs/Std.Diagnostics/StopCountingQubits.md +1 -1
- package/docs/Std.Diagnostics/index.md +1 -1
- package/docs/Std.Intrinsic/AND.md +1 -1
- package/docs/Std.Intrinsic/ApplyUnitary.md +1 -1
- package/docs/Std.Intrinsic/CCNOT.md +1 -1
- package/docs/Std.Intrinsic/CNOT.md +1 -1
- package/docs/Std.Intrinsic/Exp.md +1 -1
- package/docs/Std.Intrinsic/H.md +1 -1
- package/docs/Std.Intrinsic/I.md +1 -1
- package/docs/Std.Intrinsic/M.md +1 -1
- package/docs/Std.Intrinsic/Measure.md +1 -1
- package/docs/Std.Intrinsic/Message.md +1 -1
- package/docs/Std.Intrinsic/R.md +1 -1
- package/docs/Std.Intrinsic/R1.md +1 -1
- package/docs/Std.Intrinsic/R1Frac.md +1 -1
- package/docs/Std.Intrinsic/RFrac.md +1 -1
- package/docs/Std.Intrinsic/Reset.md +1 -1
- package/docs/Std.Intrinsic/ResetAll.md +1 -1
- package/docs/Std.Intrinsic/Rx.md +1 -1
- package/docs/Std.Intrinsic/Rxx.md +1 -1
- package/docs/Std.Intrinsic/Ry.md +1 -1
- package/docs/Std.Intrinsic/Ryy.md +1 -1
- package/docs/Std.Intrinsic/Rz.md +1 -1
- package/docs/Std.Intrinsic/Rzz.md +1 -1
- package/docs/Std.Intrinsic/S.md +1 -1
- package/docs/Std.Intrinsic/SWAP.md +1 -1
- package/docs/Std.Intrinsic/SX.md +1 -1
- package/docs/Std.Intrinsic/T.md +1 -1
- package/docs/Std.Intrinsic/X.md +1 -1
- package/docs/Std.Intrinsic/Y.md +1 -1
- package/docs/Std.Intrinsic/Z.md +1 -1
- package/docs/Std.Intrinsic/index.md +1 -1
- package/docs/Std.Logical/Xor.md +1 -1
- package/docs/Std.Logical/index.md +1 -1
- package/docs/Std.Math/AbsComplex.md +1 -1
- package/docs/Std.Math/AbsComplexPolar.md +1 -1
- package/docs/Std.Math/AbsD.md +1 -1
- package/docs/Std.Math/AbsI.md +1 -1
- package/docs/Std.Math/AbsL.md +1 -1
- package/docs/Std.Math/AbsSquaredComplex.md +1 -1
- package/docs/Std.Math/AbsSquaredComplexPolar.md +1 -1
- package/docs/Std.Math/ApproximateFactorial.md +1 -1
- package/docs/Std.Math/ArcCos.md +1 -1
- package/docs/Std.Math/ArcCosh.md +1 -1
- package/docs/Std.Math/ArcSin.md +1 -1
- package/docs/Std.Math/ArcSinh.md +1 -1
- package/docs/Std.Math/ArcTan.md +1 -1
- package/docs/Std.Math/ArcTan2.md +1 -1
- package/docs/Std.Math/ArcTanh.md +1 -1
- package/docs/Std.Math/ArgComplex.md +1 -1
- package/docs/Std.Math/ArgComplexPolar.md +1 -1
- package/docs/Std.Math/Binom.md +1 -1
- package/docs/Std.Math/BitSizeI.md +1 -1
- package/docs/Std.Math/BitSizeL.md +1 -1
- package/docs/Std.Math/Ceiling.md +1 -1
- package/docs/Std.Math/Complex.md +1 -1
- package/docs/Std.Math/ComplexPolar.md +1 -1
- package/docs/Std.Math/ContinuedFractionConvergentI.md +1 -1
- package/docs/Std.Math/ContinuedFractionConvergentL.md +1 -1
- package/docs/Std.Math/Cos.md +1 -1
- package/docs/Std.Math/Cosh.md +1 -1
- package/docs/Std.Math/DivRemI.md +1 -1
- package/docs/Std.Math/DivRemL.md +1 -1
- package/docs/Std.Math/DividedByC.md +1 -1
- package/docs/Std.Math/DividedByCP.md +1 -1
- package/docs/Std.Math/E.md +1 -1
- package/docs/Std.Math/ExpModI.md +1 -1
- package/docs/Std.Math/ExpModL.md +1 -1
- package/docs/Std.Math/ExtendedGreatestCommonDivisorI.md +1 -1
- package/docs/Std.Math/ExtendedGreatestCommonDivisorL.md +1 -1
- package/docs/Std.Math/FactorialI.md +1 -1
- package/docs/Std.Math/FactorialL.md +1 -1
- package/docs/Std.Math/Floor.md +1 -1
- package/docs/Std.Math/GreatestCommonDivisorI.md +1 -1
- package/docs/Std.Math/GreatestCommonDivisorL.md +1 -1
- package/docs/Std.Math/HammingWeightI.md +1 -1
- package/docs/Std.Math/InverseModI.md +1 -1
- package/docs/Std.Math/InverseModL.md +1 -1
- package/docs/Std.Math/IsCoprimeI.md +1 -1
- package/docs/Std.Math/IsCoprimeL.md +1 -1
- package/docs/Std.Math/IsInfinite.md +1 -1
- package/docs/Std.Math/IsNaN.md +1 -1
- package/docs/Std.Math/LargestFixedPoint.md +1 -1
- package/docs/Std.Math/Lg.md +1 -1
- package/docs/Std.Math/Log.md +1 -1
- package/docs/Std.Math/Log10.md +1 -1
- package/docs/Std.Math/LogFactorialD.md +1 -1
- package/docs/Std.Math/LogGammaD.md +1 -1
- package/docs/Std.Math/LogOf2.md +1 -1
- package/docs/Std.Math/Max.md +1 -1
- package/docs/Std.Math/MaxD.md +1 -1
- package/docs/Std.Math/MaxI.md +1 -1
- package/docs/Std.Math/MaxL.md +1 -1
- package/docs/Std.Math/Min.md +1 -1
- package/docs/Std.Math/MinD.md +1 -1
- package/docs/Std.Math/MinI.md +1 -1
- package/docs/Std.Math/MinL.md +1 -1
- package/docs/Std.Math/MinusC.md +1 -1
- package/docs/Std.Math/MinusCP.md +1 -1
- package/docs/Std.Math/ModulusI.md +1 -1
- package/docs/Std.Math/ModulusL.md +1 -1
- package/docs/Std.Math/NegationC.md +1 -1
- package/docs/Std.Math/NegationCP.md +1 -1
- package/docs/Std.Math/PI.md +1 -1
- package/docs/Std.Math/PNorm.md +1 -1
- package/docs/Std.Math/PNormalized.md +1 -1
- package/docs/Std.Math/PlusC.md +1 -1
- package/docs/Std.Math/PlusCP.md +1 -1
- package/docs/Std.Math/PowC.md +1 -1
- package/docs/Std.Math/PowCP.md +1 -1
- package/docs/Std.Math/RealMod.md +1 -1
- package/docs/Std.Math/Round.md +1 -1
- package/docs/Std.Math/RoundHalfAwayFromZero.md +1 -1
- package/docs/Std.Math/SignD.md +1 -1
- package/docs/Std.Math/SignI.md +1 -1
- package/docs/Std.Math/SignL.md +1 -1
- package/docs/Std.Math/Sin.md +1 -1
- package/docs/Std.Math/Sinh.md +1 -1
- package/docs/Std.Math/SmallestFixedPoint.md +1 -1
- package/docs/Std.Math/Sqrt.md +1 -1
- package/docs/Std.Math/SquaredNorm.md +1 -1
- package/docs/Std.Math/Tan.md +1 -1
- package/docs/Std.Math/Tanh.md +1 -1
- package/docs/Std.Math/TimesC.md +1 -1
- package/docs/Std.Math/TimesCP.md +1 -1
- package/docs/Std.Math/TrailingZeroCountI.md +1 -1
- package/docs/Std.Math/TrailingZeroCountL.md +1 -1
- package/docs/Std.Math/Truncate.md +1 -1
- package/docs/Std.Math/index.md +1 -1
- package/docs/Std.Measurement/IsLossResult.md +1 -1
- package/docs/Std.Measurement/MResetEachZ.md +1 -1
- package/docs/Std.Measurement/MResetX.md +1 -1
- package/docs/Std.Measurement/MResetY.md +1 -1
- package/docs/Std.Measurement/MResetZ.md +1 -1
- package/docs/Std.Measurement/MResetZChecked.md +1 -1
- package/docs/Std.Measurement/MeasureAllZ.md +1 -1
- package/docs/Std.Measurement/MeasureEachZ.md +1 -1
- package/docs/Std.Measurement/MeasureInteger.md +1 -1
- package/docs/Std.Measurement/index.md +1 -1
- package/docs/Std.Random/DrawRandomBool.md +1 -1
- package/docs/Std.Random/DrawRandomDouble.md +1 -1
- package/docs/Std.Random/DrawRandomInt.md +1 -1
- package/docs/Std.Random/index.md +1 -1
- package/docs/Std.Range/IsRangeEmpty.md +1 -1
- package/docs/Std.Range/RangeEnd.md +1 -1
- package/docs/Std.Range/RangeReverse.md +1 -1
- package/docs/Std.Range/RangeStart.md +1 -1
- package/docs/Std.Range/RangeStep.md +1 -1
- package/docs/Std.Range/index.md +1 -1
- package/docs/Std.ResourceEstimation/AccountForEstimates.md +1 -1
- package/docs/Std.ResourceEstimation/AuxQubitCount.md +1 -1
- package/docs/Std.ResourceEstimation/BeginEstimateCaching.md +1 -1
- package/docs/Std.ResourceEstimation/BeginRepeatEstimates.md +1 -1
- package/docs/Std.ResourceEstimation/CczCount.md +1 -1
- package/docs/Std.ResourceEstimation/EnableMemoryComputeArchitecture.md +1 -1
- package/docs/Std.ResourceEstimation/EndEstimateCaching.md +1 -1
- package/docs/Std.ResourceEstimation/EndRepeatEstimates.md +1 -1
- package/docs/Std.ResourceEstimation/LeastFrequentlyUsed.md +1 -1
- package/docs/Std.ResourceEstimation/LeastRecentlyUsed.md +1 -1
- package/docs/Std.ResourceEstimation/MeasurementCount.md +1 -1
- package/docs/Std.ResourceEstimation/PSSPCLayout.md +1 -1
- package/docs/Std.ResourceEstimation/RepeatEstimates.md +1 -1
- package/docs/Std.ResourceEstimation/RotationCount.md +1 -1
- package/docs/Std.ResourceEstimation/RotationDepth.md +1 -1
- package/docs/Std.ResourceEstimation/SingleVariant.md +1 -1
- package/docs/Std.ResourceEstimation/TCount.md +1 -1
- package/docs/Std.ResourceEstimation/index.md +1 -1
- package/docs/Std.StatePreparation/ApproximatelyPreparePureStateCP.md +1 -1
- package/docs/Std.StatePreparation/PreparePureStateD.md +1 -1
- package/docs/Std.StatePreparation/PrepareUniformSuperposition.md +1 -1
- package/docs/Std.StatePreparation/index.md +1 -1
- package/docs/Std.TableLookup/Select.md +1 -1
- package/docs/Std.TableLookup/index.md +1 -1
- package/docs/index.md +1 -1
- package/lib/nodejs/qsc_wasm.cjs +2 -2
- package/lib/nodejs/qsc_wasm.d.cts +1 -1
- package/lib/nodejs/qsc_wasm_bg.wasm +0 -0
- package/lib/web/qsc_wasm.d.ts +1 -1
- package/lib/web/qsc_wasm.js +2 -2
- package/lib/web/qsc_wasm_bg.wasm +0 -0
- package/package.json +1 -1
- package/ux/circuit-vis/constants.ts +4 -4
- package/ux/circuit-vis/draggable.ts +1 -1
- package/ux/circuit-vis/events.ts +3 -12
- package/ux/circuit-vis/formatters/gateFormatter.ts +168 -73
- package/ux/circuit-vis/formatters/registerFormatter.ts +7 -2
- package/ux/circuit-vis/gateRenderData.ts +3 -1
- package/ux/circuit-vis/index.ts +9 -1
- package/ux/circuit-vis/process.ts +64 -87
- package/ux/circuit-vis/sqore.ts +103 -55
- package/ux/circuit-vis/state-viz/stateViz.ts +22 -37
- package/ux/circuit-vis/utils.ts +9 -19
- package/ux/circuit.tsx +12 -95
- package/ux/qsharp-circuit.css +6 -49
package/ux/circuit.tsx
CHANGED
|
@@ -68,9 +68,9 @@ function ZoomableCircuit(props: {
|
|
|
68
68
|
editor?: qviz.EditorHandlers;
|
|
69
69
|
}) {
|
|
70
70
|
const circuitDiv = useRef<HTMLDivElement>(null);
|
|
71
|
+
const qvizObj = useRef<ReturnType<typeof qviz.draw> | null>(null);
|
|
71
72
|
const [zoomLevel, setZoomLevel] = useState(100);
|
|
72
73
|
const [rendering, setRendering] = useState(true);
|
|
73
|
-
const [zoomOnResize, setZoomOnResize] = useState(true);
|
|
74
74
|
|
|
75
75
|
const isEditable = props.editor != null;
|
|
76
76
|
|
|
@@ -85,36 +85,18 @@ function ZoomableCircuit(props: {
|
|
|
85
85
|
if (rendering) {
|
|
86
86
|
const container = circuitDiv.current!;
|
|
87
87
|
// Draw the circuits - may take a while for large circuits
|
|
88
|
-
|
|
89
|
-
props.
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
88
|
+
qvizObj.current = qviz.draw(props.circuitGroup, container, {
|
|
89
|
+
renderLocations: props.renderLocations,
|
|
90
|
+
editor: props.editor,
|
|
91
|
+
onZoomChange: (zoom) => {
|
|
92
|
+
setZoomLevel(zoom);
|
|
93
|
+
},
|
|
94
|
+
});
|
|
94
95
|
|
|
95
|
-
if (!isEditable) {
|
|
96
|
-
const initialZoom = calculateZoomToFit(container, svg as SVGElement);
|
|
97
|
-
// Set the initial zoom level
|
|
98
|
-
setZoomLevel(initialZoom);
|
|
99
|
-
// Resize the SVG to fit
|
|
100
|
-
updateWidth();
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
// Calculate the initial zoom level based on the container width
|
|
104
96
|
// Disable "rendering" text
|
|
105
97
|
setRendering(false);
|
|
106
|
-
} else if (!isEditable) {
|
|
107
|
-
// Initial drawing done, attach window resize handler
|
|
108
|
-
window.addEventListener("resize", onResize);
|
|
109
|
-
return () => {
|
|
110
|
-
window.removeEventListener("resize", onResize);
|
|
111
|
-
};
|
|
112
98
|
}
|
|
113
|
-
}, [rendering
|
|
114
|
-
|
|
115
|
-
useEffect(() => {
|
|
116
|
-
updateWidth();
|
|
117
|
-
}, [zoomLevel]);
|
|
99
|
+
}, [rendering]);
|
|
118
100
|
|
|
119
101
|
return (
|
|
120
102
|
<div>
|
|
@@ -132,76 +114,11 @@ function ZoomableCircuit(props: {
|
|
|
132
114
|
</div>
|
|
133
115
|
);
|
|
134
116
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
*/
|
|
139
|
-
function onResize() {
|
|
140
|
-
if (!zoomOnResize) {
|
|
141
|
-
return;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
const [container, svg] = [circuitDiv.current, currentSvg()];
|
|
145
|
-
if (container && svg) {
|
|
146
|
-
// Recalculate the zoom level based on the container width
|
|
147
|
-
const initialZoom = calculateZoomToFit(container, svg);
|
|
148
|
-
// Set the zoom level
|
|
149
|
-
setZoomLevel(initialZoom);
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
/**
|
|
154
|
-
* Update the width of the SVG element based on the current zoom level.
|
|
155
|
-
*/
|
|
156
|
-
function updateWidth() {
|
|
157
|
-
const svg = currentSvg();
|
|
158
|
-
if (svg) {
|
|
159
|
-
// The width attribute contains the true width, generated by qviz.
|
|
160
|
-
// We'll leave this attribute untouched, so we can use it again if the
|
|
161
|
-
// zoom level is ever updated.
|
|
162
|
-
const width = svg.getAttribute("width")!;
|
|
163
|
-
|
|
164
|
-
// We'll set the width in the style attribute to (true width * zoom level).
|
|
165
|
-
// This value takes precedence over the true width in the width attribute.
|
|
166
|
-
svg.setAttribute(
|
|
167
|
-
"style",
|
|
168
|
-
`max-width: ${width}; width: ${(parseInt(width) * (zoomLevel || 100)) / 100}; height: auto`,
|
|
169
|
-
);
|
|
117
|
+
function userSetZoomLevel(zoomLevel: number) {
|
|
118
|
+
if (qvizObj.current && circuitDiv.current) {
|
|
119
|
+
qvizObj.current.userSetZoomLevel(zoomLevel);
|
|
170
120
|
}
|
|
171
121
|
}
|
|
172
|
-
|
|
173
|
-
function renderCircuits(
|
|
174
|
-
circuitGroup: qviz.CircuitGroup,
|
|
175
|
-
container: HTMLDivElement,
|
|
176
|
-
renderLocations?: (s: SourceLocation[]) => { title: string; href: string },
|
|
177
|
-
editor?: qviz.EditorHandlers,
|
|
178
|
-
) {
|
|
179
|
-
qviz.draw(circuitGroup, container, { renderLocations, editor });
|
|
180
|
-
return container.getElementsByClassName("qviz")[0]!;
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
/**
|
|
184
|
-
* Calculate the zoom level that will fit the circuit into the current size of the container.
|
|
185
|
-
*/
|
|
186
|
-
function calculateZoomToFit(container: HTMLDivElement, svg: SVGElement) {
|
|
187
|
-
const containerWidth = container.clientWidth;
|
|
188
|
-
// width and height are the true dimensions generated by qviz
|
|
189
|
-
const width = parseInt(svg.getAttribute("width")!);
|
|
190
|
-
const height = svg.getAttribute("height")!;
|
|
191
|
-
|
|
192
|
-
svg.setAttribute("viewBox", `0 0 ${width} ${height}`);
|
|
193
|
-
const zoom = Math.min(Math.ceil((containerWidth / width) * 100), 100);
|
|
194
|
-
return zoom;
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
function currentSvg(): SVGElement | undefined {
|
|
198
|
-
return circuitDiv.current?.querySelector(".qviz") ?? undefined;
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
function userSetZoomLevel(zoom: number) {
|
|
202
|
-
setZoomOnResize(false);
|
|
203
|
-
setZoomLevel(zoom);
|
|
204
|
-
}
|
|
205
122
|
}
|
|
206
123
|
|
|
207
124
|
function Unrenderable(props: {
|
package/ux/qsharp-circuit.css
CHANGED
|
@@ -180,59 +180,17 @@
|
|
|
180
180
|
display: none;
|
|
181
181
|
}
|
|
182
182
|
|
|
183
|
-
.classically-controlled-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
.classically-controlled-one .classical-container,
|
|
188
|
-
.classically-controlled-one .classical-line {
|
|
189
|
-
stroke: #4059bd;
|
|
190
|
-
stroke-width: 1.3;
|
|
191
|
-
fill: #4059bd;
|
|
192
|
-
fill-opacity: 0.1;
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
.classically-controlled-zero .classical-container,
|
|
196
|
-
.classically-controlled-zero .classical-line {
|
|
197
|
-
stroke: #c40000;
|
|
198
|
-
stroke-width: 1.3;
|
|
199
|
-
fill: #c40000;
|
|
200
|
-
fill-opacity: 0.1;
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
.classically-controlled-btn {
|
|
204
|
-
cursor: pointer;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
.classically-controlled-unknown .classically-controlled-btn {
|
|
208
|
-
fill: #e5e5e5;
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
.classically-controlled-one .classically-controlled-btn {
|
|
212
|
-
fill: #4059bd;
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
.classically-controlled-zero .classically-controlled-btn {
|
|
216
|
-
fill: #c40000;
|
|
183
|
+
.classically-controlled-btn circle {
|
|
184
|
+
fill: var(--main-background);
|
|
185
|
+
stroke-width: 1;
|
|
217
186
|
}
|
|
218
187
|
|
|
219
188
|
.classically-controlled-btn text {
|
|
220
189
|
dominant-baseline: middle;
|
|
221
190
|
text-anchor: middle;
|
|
222
191
|
stroke: none;
|
|
223
|
-
font-family:
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
.classically-controlled-unknown .classically-controlled-btn text {
|
|
227
|
-
fill: #000000;
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
.classically-controlled-one .classically-controlled-btn text {
|
|
231
|
-
fill: #ffffff;
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
.classically-controlled-zero .classically-controlled-btn text {
|
|
235
|
-
fill: #ffffff;
|
|
192
|
+
font-family: "KaTeX_Main", "MJXZERO", "MJXTEX", sans-serif;
|
|
193
|
+
fill: var(--main-color);
|
|
236
194
|
}
|
|
237
195
|
|
|
238
196
|
.qviz .gate-collapse,
|
|
@@ -633,8 +591,7 @@
|
|
|
633
591
|
}
|
|
634
592
|
|
|
635
593
|
.state-edge:focus {
|
|
636
|
-
outline:
|
|
637
|
-
outline-offset: -2px;
|
|
594
|
+
outline: none;
|
|
638
595
|
}
|
|
639
596
|
|
|
640
597
|
.state-edge-text {
|