@doenet/doenetml 0.7.25-dev.507 → 0.7.25-dev.508

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 (112) hide show
  1. package/{AnswerResponseButton-CtqKA20c.js → AnswerResponseButton-cEdq4RZO.js} +2 -2
  2. package/{Description-DfuIwBpF.js → Description-9xkiCcAk.js} +1 -1
  3. package/{DynamicMath-MXYV2Z9s.js → DynamicMath-Bmg5p72t.js} +1 -1
  4. package/{EditorViewer-CgJ46gDZ.js → EditorViewer-BUzTzRpa.js} +6 -6
  5. package/{GraphFrame-B_WIM5Fa.js → GraphFrame-BBe_OHun.js} +2 -2
  6. package/{JSXGraphRenderer-D6iPo1FB.js → JSXGraphRenderer-D-h7eH-Q.js} +1 -1
  7. package/{NonInlineMediaWrapper-Ddzb1tjn.js → NonInlineMediaWrapper-DqF3Wxsr.js} +1 -1
  8. package/Viewer/renderers/legend.d.ts.map +1 -1
  9. package/{_error-DJ8idE9P.js → _error-xoPS4ylR.js} +2 -2
  10. package/{alert-Dg_JJZaI.js → alert-Bd-rOjK5.js} +3 -3
  11. package/{angle-BBttztM-.js → angle-ByHQbkot.js} +7 -7
  12. package/{answer-Dr2sqqfc.js → answer-C7iWerJU.js} +6 -6
  13. package/{asList-CGpwUZ9I.js → asList-D5Rmgn6J.js} +2 -2
  14. package/{blockQuote-LOCNH0lp.js → blockQuote-DytO_fho.js} +3 -3
  15. package/{boolean-D8I4O_iy.js → boolean-CHkxx77b.js} +2 -2
  16. package/{booleanInput-C5IVX59c.js → booleanInput-C7X8yxsi.js} +6 -6
  17. package/{br-BVVK8kVv.js → br-BAqzBJXy.js} +2 -2
  18. package/{button-DF_UHrT2.js → button-Bx5TNS-p.js} +4 -4
  19. package/{c-RBY7uyc3.js → c-8yJmTtwG.js} +3 -3
  20. package/{cell-C0bjjzLU.js → cell-CfF5x6ah.js} +3 -3
  21. package/{choiceInput-CHRv9fJO.js → choiceInput-CP_MrBMk.js} +4 -4
  22. package/{circle-DXj8GT6s.js → circle-DuJCg1NM.js} +6 -6
  23. package/{cobwebPolyline-Bbvw_Prm.js → cobwebPolyline-C_8dB69b.js} +4 -4
  24. package/{codeEditor-Dda818hM.js → codeEditor-BOlD1E56.js} +2 -2
  25. package/{composites-B7gjrcIm.js → composites-CSSw1VLF.js} +1 -1
  26. package/{containerBlock-DkAni0TI.js → containerBlock-BcrzJRO5.js} +4 -4
  27. package/{containerInline-DlAWnUee.js → containerInline-B2CNSZKZ.js} +4 -4
  28. package/{curve-HYrKNUaq.js → curve-DhoP5Bw3.js} +4 -4
  29. package/{doenetml-u1YndSm7.js → doenetml-D-MlvjpX.js} +3 -3
  30. package/doenetml-external-worker.js +2 -2
  31. package/doenetml-inline-worker.js +4 -4
  32. package/doenetml-worker/index.esm.js +1 -1
  33. package/doenetml-worker/index.js +1 -1
  34. package/doenetml-worker/lib_doenetml_worker_bg.wasm +0 -0
  35. package/{ellipsis-CGWbjf4O.js → ellipsis-BLIkiXMS.js} +2 -2
  36. package/{em-0urWJrEp.js → em-DRpem1-2.js} +3 -3
  37. package/{embed-Dh_KMrqC.js → embed-rqTRzFAq.js} +2 -2
  38. package/{feedback-lbIB9yRs.js → feedback-Cllga3c8.js} +4 -4
  39. package/{figure-DURZ6MUy.js → figure-g0KPrh2g.js} +3 -3
  40. package/{fillPatterns-CiqcTsVU.js → fillPatterns-Bkcc1kgf.js} +1 -1
  41. package/{footnote-B7xEbVoh.js → footnote-NbaFHPVN.js} +3 -3
  42. package/{fractionInput-CcM3yQ6H.js → fractionInput-CDrDh9Fv.js} +4 -4
  43. package/{graph-8Ybpt4il.js → graph-DEJxLN7s.js} +6 -6
  44. package/{hint-dTCFBf4b.js → hint-DrALFzMS.js} +4 -4
  45. package/{hovercard-store-BGkBLOUR.js → hovercard-store-C6w9Xi6E.js} +1 -1
  46. package/{hr-KjzPCylH.js → hr-D60yVJF8.js} +2 -2
  47. package/{image-BY2kWQDS.js → image-D2AAKAkE.js} +7 -7
  48. package/{index-DTp6nKt2.js → index-jxUM0uwb.js} +1 -1
  49. package/{index.es-CVZDHLHO.js → index.es-BZY0c1t3.js} +1 -1
  50. package/index.js +1 -1
  51. package/{label-BtGqQYDT.js → label-C9mDUeLa.js} +7 -7
  52. package/{labelWithLatex-D3pZxBkq.js → labelWithLatex-BVYdTe81.js} +2 -2
  53. package/legend-C6fv77U1.js +437 -0
  54. package/{line-B-8MvE7D.js → line-D70Ga1ZR.js} +7 -7
  55. package/{lineFamilyDragHandlers-Bq8re2Ed.js → lineFamilyDragHandlers-Bcg80hj8.js} +1 -1
  56. package/{lineSegment-DJD3nVc9.js → lineSegment-CY56NKgL.js} +5 -5
  57. package/{list-Db6KRvBk.js → list-ByHyqkne.js} +4 -4
  58. package/{lq-B4KrrgWc.js → lq-BsjmRGG-.js} +2 -2
  59. package/{lsq-BeihCm4v.js → lsq-Coc4hkoA.js} +2 -2
  60. package/{markupRenderer-7jFjXtsT.js → markupRenderer-DACpRdKz.js} +1 -1
  61. package/{math-x6xu20vw.js → math-BuIKoKOy.js} +7 -7
  62. package/{mathInput-CdpOR3tk.js → mathInput-qYk3ZYyj.js} +7 -7
  63. package/{matrixInput-WxwT7tYN.js → matrixInput-BN8rvPJ1.js} +4 -4
  64. package/{mdash-LMwfFv_m.js → mdash-DY8x56Gi.js} +2 -2
  65. package/{nbsp-B0-mrSk5.js → nbsp-CXbufv9K.js} +2 -2
  66. package/{ndash-Cfw6anMG.js → ndash-fuyshFxl.js} +2 -2
  67. package/{number-7lcbkhYE.js → number-Eb5VzM_3.js} +7 -7
  68. package/{orbitalDiagram-DWKurxgW.js → orbitalDiagram-DH3M6stA.js} +2 -2
  69. package/{orbitalDiagramInput-B014S41N.js → orbitalDiagramInput-Dp9_SsaS.js} +2 -2
  70. package/{p-B14UxMHP.js → p-C-ElLn48.js} +4 -4
  71. package/package.json +1 -1
  72. package/{paginatorControls-Qrptmean.js → paginatorControls-CsvOFtmD.js} +2 -2
  73. package/{pegboard-D9dk47VA.js → pegboard-DykTEm7O.js} +4 -4
  74. package/{point-ByStthGH.js → point-B2E2eTId.js} +7 -7
  75. package/{polygon-qGW-bKQw.js → polygon-CMbtwfIV.js} +6 -6
  76. package/{polyline-s5TCnP7t.js → polyline-C3B4nNLP.js} +5 -5
  77. package/{pre-vKUqNf3r.js → pre-Bz1ObVxi.js} +3 -3
  78. package/{prefigure-5X9DVBfV.js → prefigure-CjSd_o5R.js} +1 -1
  79. package/{pretzel-BOxrLmzQ.js → pretzel-CUqywVnZ.js} +4 -4
  80. package/{q-DeY9kaHW.js → q-CfaZ9Q4M.js} +3 -3
  81. package/{ray-DbYRpWOe.js → ray-BHE803z-.js} +5 -5
  82. package/{ref-DrK-Ea1E.js → ref-XzKSEd_P.js} +2 -2
  83. package/{regionBetweenCurveXAxis-BFuIu9WS.js → regionBetweenCurveXAxis-Cene1PWc.js} +5 -5
  84. package/{regionBetweenCurves-BDSV5pAv.js → regionBetweenCurves-UUj2tPjD.js} +5 -5
  85. package/{row-BLHRD33U.js → row-AdEMsZm3.js} +2 -2
  86. package/{rq-CrBdSxfp.js → rq-DpsoAxFh.js} +2 -2
  87. package/{rsq-7g2LSCpC.js → rsq-BUIvQK49.js} +2 -2
  88. package/{section-jYCdH-Aa.js → section-DFB_LR6S.js} +5 -5
  89. package/{sha256-DT5xJ2Hv-aw2L9wQT.js → sha256-DT5xJ2Hv-CQavxI1o.js} +1 -1
  90. package/{sideBySide-CnztT9JG.js → sideBySide-BpVt_Czj.js} +2 -2
  91. package/{slider-BpDumYmt.js → slider-H18xbWk7.js} +3 -3
  92. package/{slopeField-BIi2Gqgu.js → slopeField-CKdArhAk.js} +2 -2
  93. package/{solution-B1vv-4wl.js → solution-Du-CeIET.js} +4 -4
  94. package/{spreadsheet-DVGxaJ12.js → spreadsheet-CMoTjyKf.js} +2 -2
  95. package/{sq-CjiGjXUE.js → sq-CVP4ayps.js} +3 -3
  96. package/{subsetOfRealsInput-DlDQbv1v.js → subsetOfRealsInput-cxMNVNKR.js} +2 -2
  97. package/{summaryStatistics-CnJBRB-2.js → summaryStatistics-C3s88_nN.js} +2 -2
  98. package/{table-BzSa1HfY.js → table-C_FNmcaC.js} +2 -2
  99. package/{tabular-BgoXaZGa.js → tabular-Bx24zu-e.js} +2 -2
  100. package/{tag-01PSjwFf.js → tag-DaUHHQR-.js} +2 -2
  101. package/{text-BxPZX-K3.js → text-Bwv6foAp.js} +6 -6
  102. package/{textInput-sJQiLyIq.js → textInput-ngbf4QtZ.js} +6 -6
  103. package/{tooltip-provider-DGFLtEVi.js → tooltip-provider-srILFzBI.js} +2 -2
  104. package/{useAnchoredGraphDragHandler-BFxdkMVn.js → useAnchoredGraphDragHandler-DxzKZzL0.js} +1 -1
  105. package/useDoenetRenderer-UyWCNuKB.js +114 -0
  106. package/{useFieldCurve-D2aEaoKQ.js → useFieldCurve-BeALHbXl.js} +2 -2
  107. package/{useSubmitActionWithDelay-DUYvY61i.js → useSubmitActionWithDelay-Dlm36ClP.js} +2 -2
  108. package/{vector-pTEAgwh0.js → vector-DWL6PO2D.js} +7 -7
  109. package/{vectorField-Cs8RmjI1.js → vectorField-DgzpZYlm.js} +2 -2
  110. package/{video-BX46joJU.js → video-OMWIgpoH.js} +4 -4
  111. package/legend-D_nZziIf.js +0 -347
  112. package/useDoenetRenderer-CUfcSgne.js +0 -114
@@ -1,6 +1,6 @@
1
- import { u as useT, G as useRecordVisibilityChanges, q as jsxRuntimeExports, W as ToggleButtonGroup, U as ToggleButton, R as ActionButtonGroup, S as ActionButton } from "./doenetml-u1YndSm7.js";
1
+ import { u as useT, G as useRecordVisibilityChanges, q as jsxRuntimeExports, W as ToggleButtonGroup, U as ToggleButton, R as ActionButtonGroup, S as ActionButton } from "./doenetml-D-MlvjpX.js";
2
2
  import React__default, { useState, useRef } from "react";
3
- import { u as useDoenetRenderer } from "./useDoenetRenderer-CUfcSgne.js";
3
+ import { u as useDoenetRenderer } from "./useDoenetRenderer-UyWCNuKB.js";
4
4
  import { l as ltrIslandProps } from "./direction-BwrU7jHk.js";
5
5
  const subsetOfRealsInput = React__default.memo(function subsetOfReals(props) {
6
6
  let { id, SVs, actions, callAction } = useDoenetRenderer(props, false);
@@ -1,6 +1,6 @@
1
- import { u as useT, v as useChromeLangDir, G as useRecordVisibilityChanges, q as jsxRuntimeExports } from "./doenetml-u1YndSm7.js";
1
+ import { u as useT, v as useChromeLangDir, G as useRecordVisibilityChanges, q as jsxRuntimeExports } from "./doenetml-D-MlvjpX.js";
2
2
  import React__default, { useRef } from "react";
3
- import { u as useDoenetRenderer } from "./useDoenetRenderer-CUfcSgne.js";
3
+ import { u as useDoenetRenderer } from "./useDoenetRenderer-UyWCNuKB.js";
4
4
  import { s as sizeToCSS } from "./css-BJLDLYRJ.js";
5
5
  const summaryStatistics = React__default.memo(function SummaryStatistics(props) {
6
6
  let { id, SVs, actions, callAction } = useDoenetRenderer(props);
@@ -1,6 +1,6 @@
1
- import { G as useRecordVisibilityChanges, q as jsxRuntimeExports } from "./doenetml-u1YndSm7.js";
1
+ import { G as useRecordVisibilityChanges, q as jsxRuntimeExports } from "./doenetml-D-MlvjpX.js";
2
2
  import React__default, { useRef } from "react";
3
- import { u as useDoenetRenderer } from "./useDoenetRenderer-CUfcSgne.js";
3
+ import { u as useDoenetRenderer } from "./useDoenetRenderer-UyWCNuKB.js";
4
4
  const table = React__default.memo(function Table(props) {
5
5
  let { id, SVs, children, actions, callAction } = useDoenetRenderer(props);
6
6
  const ref = useRef(null);
@@ -1,6 +1,6 @@
1
- import { G as useRecordVisibilityChanges, q as jsxRuntimeExports } from "./doenetml-u1YndSm7.js";
1
+ import { G as useRecordVisibilityChanges, q as jsxRuntimeExports } from "./doenetml-D-MlvjpX.js";
2
2
  import React__default, { useRef } from "react";
3
- import { u as useDoenetRenderer } from "./useDoenetRenderer-CUfcSgne.js";
3
+ import { u as useDoenetRenderer } from "./useDoenetRenderer-UyWCNuKB.js";
4
4
  import { s as sizeToCSS } from "./css-BJLDLYRJ.js";
5
5
  import { a as getBlockMarginWithOptionalTopSuppression } from "./nonInlineMediaLayout-CkXHaqzo.js";
6
6
  const tabular = React__default.memo(function Tabular(props) {
@@ -1,6 +1,6 @@
1
- import { q as jsxRuntimeExports } from "./doenetml-u1YndSm7.js";
1
+ import { q as jsxRuntimeExports } from "./doenetml-D-MlvjpX.js";
2
2
  import React__default from "react";
3
- import { u as useDoenetRenderer } from "./useDoenetRenderer-CUfcSgne.js";
3
+ import { u as useDoenetRenderer } from "./useDoenetRenderer-UyWCNuKB.js";
4
4
  const tag = React__default.memo(function Tag(props) {
5
5
  let { id, SVs, children } = useDoenetRenderer(props);
6
6
  if (SVs.hidden) {
@@ -1,13 +1,13 @@
1
- import { A as DocContext, H as Context, q as jsxRuntimeExports, B as textRendererStyle } from "./doenetml-u1YndSm7.js";
1
+ import { A as DocContext, H as Context, q as jsxRuntimeExports, B as textRendererStyle } from "./doenetml-D-MlvjpX.js";
2
2
  import React__default, { useRef, useContext } from "react";
3
- import { j as jxg } from "./JSXGraphRenderer-D6iPo1FB.js";
4
- import { BoardContext, TEXT_LAYER_OFFSET } from "./graph-8Ybpt4il.js";
5
- import { u as useDoenetRenderer } from "./useDoenetRenderer-CUfcSgne.js";
3
+ import { j as jxg } from "./JSXGraphRenderer-D-h7eH-Q.js";
4
+ import { BoardContext, TEXT_LAYER_OFFSET } from "./graph-DEJxLN7s.js";
5
+ import { u as useDoenetRenderer } from "./useDoenetRenderer-UyWCNuKB.js";
6
6
  import { g as getPositionFromAnchorByCoordinate } from "./graph-W6vrFcBu.js";
7
- import { ChoiceInputInlineContext } from "./choiceInput-CHRv9fJO.js";
7
+ import { ChoiceInputInlineContext } from "./choiceInput-CP_MrBMk.js";
8
8
  import { u as usePointerDragState, a as useBoardPointerTracking } from "./useBoardPointerTracking-DV6a8Wvg.js";
9
9
  import { u as useDraggableRefs } from "./useDraggableRefs-QaTfkVuD.js";
10
- import { d as detachAnchoredGraphElement, a as attachAnchoredGraphDragHandlers } from "./useAnchoredGraphDragHandler-BFxdkMVn.js";
10
+ import { d as detachAnchoredGraphElement, a as attachAnchoredGraphDragHandlers } from "./useAnchoredGraphDragHandler-DxzKZzL0.js";
11
11
  import { u as useJSXGraphCleanup } from "./useJSXGraphCleanup-BNk4sn6x.js";
12
12
  const text = React__default.memo(function Text(props) {
13
13
  let { componentIdx, id, SVs, actions, callAction } = useDoenetRenderer(props);
@@ -1,12 +1,12 @@
1
- import { F as useContentT, H as Context, q as jsxRuntimeExports, T as MathJax } from "./doenetml-u1YndSm7.js";
1
+ import { F as useContentT, H as Context, q as jsxRuntimeExports, T as MathJax } from "./doenetml-D-MlvjpX.js";
2
2
  import { useState, useRef, useContext, useEffect } from "react";
3
- import { j as jxg } from "./JSXGraphRenderer-D6iPo1FB.js";
4
- import { u as useDoenetRenderer } from "./useDoenetRenderer-CUfcSgne.js";
3
+ import { j as jxg } from "./JSXGraphRenderer-D-h7eH-Q.js";
4
+ import { u as useDoenetRenderer } from "./useDoenetRenderer-UyWCNuKB.js";
5
5
  import { s as sizeToCSS } from "./css-BJLDLYRJ.js";
6
- import { BoardContext } from "./graph-8Ybpt4il.js";
6
+ import { BoardContext } from "./graph-DEJxLN7s.js";
7
7
  import { g as getPositionFromAnchorByCoordinate, P as POINTER_DRAG_THRESHOLD } from "./graph-W6vrFcBu.js";
8
- import { c as calculateValidationState, u as useSubmitActionWithDelay, a as createCheckWorkComponent } from "./useSubmitActionWithDelay-DUYvY61i.js";
9
- import { D as DescriptionPopover } from "./Description-DfuIwBpF.js";
8
+ import { c as calculateValidationState, u as useSubmitActionWithDelay, a as createCheckWorkComponent } from "./useSubmitActionWithDelay-Dlm36ClP.js";
9
+ import { D as DescriptionPopover } from "./Description-9xkiCcAk.js";
10
10
  import { a as addValidationStateToShortDescription } from "./validationState-DI_lxk1a.js";
11
11
  function TextInput(props) {
12
12
  let { id, SVs, children, actions, ignoreUpdate, callAction } = useDoenetRenderer(props);
@@ -1,5 +1,5 @@
1
- import { ae as createStoreContext, af as createDialogComponent, Y as forwardRef, Z as createElement, $ as createHook, a1 as invariant, ag as useWrapElement, q as jsxRuntimeExports, a2 as useStoreState, ah as isFalsyBooleanCallback, ai as contains, aj as sync, ak as chain, al as useEvent, am as createStore, an as defaultValue, ao as useStore, ap as useStoreProps } from "./doenetml-u1YndSm7.js";
2
- import { H as HovercardScopedContextProvider, a as HovercardContextProvider, u as useHovercard, b as useHovercardAnchor, c as createHovercardStore, d as useHovercardStoreProps } from "./hovercard-store-BGkBLOUR.js";
1
+ import { ae as createStoreContext, af as createDialogComponent, Y as forwardRef, Z as createElement, $ as createHook, a1 as invariant, ag as useWrapElement, q as jsxRuntimeExports, a2 as useStoreState, ah as isFalsyBooleanCallback, ai as contains, aj as sync, ak as chain, al as useEvent, am as createStore, an as defaultValue, ao as useStore, ap as useStoreProps } from "./doenetml-D-MlvjpX.js";
2
+ import { H as HovercardScopedContextProvider, a as HovercardContextProvider, u as useHovercard, b as useHovercardAnchor, c as createHovercardStore, d as useHovercardStoreProps } from "./hovercard-store-C6w9Xi6E.js";
3
3
  import { useRef, useEffect } from "react";
4
4
  const ctx = createStoreContext([HovercardContextProvider], [HovercardScopedContextProvider]);
5
5
  const useTooltipProviderContext = ctx.useProviderContext;
@@ -1,4 +1,4 @@
1
- import { r as removeJXGEventHandlers, L as LINE_FAMILY_EVENTS, j as jxg } from "./JSXGraphRenderer-D6iPo1FB.js";
1
+ import { r as removeJXGEventHandlers, L as LINE_FAMILY_EVENTS, j as jxg } from "./JSXGraphRenderer-D-h7eH-Q.js";
2
2
  import { e as exceededDragThreshold, p as pointerEventToUserCoords } from "./dragThreshold-DuSSFrIU.js";
3
3
  function attachAnchoredGraphDragHandlers(params) {
4
4
  const {
@@ -0,0 +1,114 @@
1
+ import { x as useAppSelector, y as mainSlice, z as renderersLoadComponent, _ as __variableDynamicImportRuntimeHelper } from "./doenetml-D-MlvjpX.js";
2
+ import React__default, { useState, useEffect } from "react";
3
+ function useDoenetRenderer(props, initializeChildrenOnConstruction = true) {
4
+ const actions = props.componentInstructions.actions;
5
+ const componentIdx = props.componentInstructions.componentIdx;
6
+ const effectiveIdx = props.componentInstructions.effectiveIdx;
7
+ const id = props.componentInstructions.id;
8
+ const rendererName = props.coreId + componentIdx;
9
+ const [renderersToLoad, setRenderersToLoad] = useState({});
10
+ const componentInfo = useAppSelector(
11
+ (state) => mainSlice.selectors.componentInfo(state)[rendererName]
12
+ );
13
+ const {
14
+ stateValues,
15
+ sourceOfUpdate = {},
16
+ ignoreUpdate,
17
+ childrenInstructions,
18
+ prefixForIds
19
+ } = componentInfo || {
20
+ stateValues: {},
21
+ sourceOfUpdate: {},
22
+ ignoreUpdate: false,
23
+ childrenInstructions: [],
24
+ prefixForIds: ""
25
+ };
26
+ let children = [];
27
+ const loadMoreRenderers = Object.keys(renderersToLoad).length === 0;
28
+ for (let childInstructions of childrenInstructions) {
29
+ let child = createChildFromInstructions(
30
+ childInstructions,
31
+ loadMoreRenderers
32
+ );
33
+ children.push(child);
34
+ }
35
+ useEffect(() => {
36
+ const entries = Object.entries(renderersToLoad);
37
+ if (entries.length > 0) {
38
+ const names = entries.map(([name]) => name);
39
+ const loaders = entries.map(([, loader]) => loader);
40
+ renderersLoadComponent(loaders, names).then(
41
+ ({ rendererClasses: newRendererClasses }) => {
42
+ Object.assign(props.rendererClasses, newRendererClasses);
43
+ setRenderersToLoad({});
44
+ }
45
+ );
46
+ }
47
+ }, [renderersToLoad, props.rendererClasses]);
48
+ function createChildFromInstructions(childInstructions, loadMoreRenderers2) {
49
+ if (typeof childInstructions === "string" || childInstructions === null) {
50
+ return childInstructions;
51
+ }
52
+ let propsForChild = {
53
+ key: props.coreId + childInstructions.componentIdx,
54
+ componentInstructions: childInstructions,
55
+ rendererClasses: props.rendererClasses,
56
+ coreId: props.coreId,
57
+ docId: props.docId,
58
+ activityId: props.activityId,
59
+ callAction: props.callAction,
60
+ fetchExternalDoenetML: props.fetchExternalDoenetML,
61
+ requestScrollTo: props.requestScrollTo,
62
+ flags: props.flags
63
+ };
64
+ let rendererClass = props.rendererClasses[childInstructions.rendererType];
65
+ if (!rendererClass) {
66
+ if (loadMoreRenderers2) {
67
+ setRenderersToLoad((old) => {
68
+ let rendererLoaders = { ...old };
69
+ if (!(childInstructions.rendererType in rendererLoaders)) {
70
+ rendererLoaders[childInstructions.rendererType] = () => __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./renderers/GraphFrame.tsx": () => import("./GraphFrame-BBe_OHun.js"), "./renderers/JSXGraphRenderer.tsx": () => import("./JSXGraphRenderer-D-h7eH-Q.js").then((n) => n.m), "./renderers/_error.tsx": () => import("./_error-xoPS4ylR.js"), "./renderers/alert.tsx": () => import("./alert-Bd-rOjK5.js"), "./renderers/angle.tsx": () => import("./angle-ByHQbkot.js"), "./renderers/answer.tsx": () => import("./answer-C7iWerJU.js"), "./renderers/asList.tsx": () => import("./asList-D5Rmgn6J.js"), "./renderers/blockQuote.tsx": () => import("./blockQuote-DytO_fho.js"), "./renderers/boolean.tsx": () => import("./boolean-CHkxx77b.js"), "./renderers/booleanInput.tsx": () => import("./booleanInput-C7X8yxsi.js"), "./renderers/br.tsx": () => import("./br-BAqzBJXy.js"), "./renderers/button.tsx": () => import("./button-Bx5TNS-p.js"), "./renderers/c.tsx": () => import("./c-8yJmTtwG.js"), "./renderers/cell.tsx": () => import("./cell-CfF5x6ah.js"), "./renderers/choiceInput.tsx": () => import("./choiceInput-CP_MrBMk.js"), "./renderers/circle.tsx": () => import("./circle-DuJCg1NM.js"), "./renderers/cobwebPolyline.tsx": () => import("./cobwebPolyline-C_8dB69b.js"), "./renderers/codeEditor.tsx": () => import("./codeEditor-BOlD1E56.js"), "./renderers/containerBlock.tsx": () => import("./containerBlock-BcrzJRO5.js"), "./renderers/containerInline.tsx": () => import("./containerInline-B2CNSZKZ.js"), "./renderers/curve.tsx": () => import("./curve-DhoP5Bw3.js"), "./renderers/ellipsis.tsx": () => import("./ellipsis-BLIkiXMS.js"), "./renderers/em.tsx": () => import("./em-DRpem1-2.js"), "./renderers/embed.tsx": () => import("./embed-rqTRzFAq.js"), "./renderers/feedback.tsx": () => import("./feedback-Cllga3c8.js"), "./renderers/figure.tsx": () => import("./figure-g0KPrh2g.js"), "./renderers/footnote.tsx": () => import("./footnote-NbaFHPVN.js"), "./renderers/fractionInput.tsx": () => import("./fractionInput-CDrDh9Fv.js"), "./renderers/graph.tsx": () => import("./graph-DEJxLN7s.js"), "./renderers/hint.tsx": () => import("./hint-DrALFzMS.js"), "./renderers/hr.tsx": () => import("./hr-D60yVJF8.js"), "./renderers/image.tsx": () => import("./image-D2AAKAkE.js"), "./renderers/label.tsx": () => import("./label-C9mDUeLa.js"), "./renderers/legend.tsx": () => import("./legend-C6fv77U1.js"), "./renderers/line.tsx": () => import("./line-D70Ga1ZR.js"), "./renderers/lineSegment.tsx": () => import("./lineSegment-CY56NKgL.js"), "./renderers/list.tsx": () => import("./list-ByHyqkne.js"), "./renderers/lq.tsx": () => import("./lq-BsjmRGG-.js"), "./renderers/lsq.tsx": () => import("./lsq-Coc4hkoA.js"), "./renderers/math.tsx": () => import("./math-BuIKoKOy.js"), "./renderers/mathInput.tsx": () => import("./mathInput-qYk3ZYyj.js"), "./renderers/matrixInput.tsx": () => import("./matrixInput-BN8rvPJ1.js"), "./renderers/mdash.tsx": () => import("./mdash-DY8x56Gi.js"), "./renderers/nbsp.tsx": () => import("./nbsp-CXbufv9K.js"), "./renderers/ndash.tsx": () => import("./ndash-fuyshFxl.js"), "./renderers/number.tsx": () => import("./number-Eb5VzM_3.js"), "./renderers/orbitalDiagram.tsx": () => import("./orbitalDiagram-DH3M6stA.js"), "./renderers/orbitalDiagramInput.tsx": () => import("./orbitalDiagramInput-Dp9_SsaS.js"), "./renderers/p.tsx": () => import("./p-C-ElLn48.js"), "./renderers/paginatorControls.tsx": () => import("./paginatorControls-CsvOFtmD.js"), "./renderers/pegboard.tsx": () => import("./pegboard-DykTEm7O.js"), "./renderers/point.tsx": () => import("./point-B2E2eTId.js"), "./renderers/polygon.tsx": () => import("./polygon-CMbtwfIV.js"), "./renderers/polyline.tsx": () => import("./polyline-C3B4nNLP.js"), "./renderers/pre.tsx": () => import("./pre-Bz1ObVxi.js"), "./renderers/prefigure.tsx": () => import("./prefigure-CjSd_o5R.js"), "./renderers/pretzel.tsx": () => import("./pretzel-CUqywVnZ.js"), "./renderers/q.tsx": () => import("./q-CfaZ9Q4M.js"), "./renderers/ray.tsx": () => import("./ray-BHE803z-.js"), "./renderers/ref.tsx": () => import("./ref-XzKSEd_P.js"), "./renderers/regionBetweenCurveXAxis.tsx": () => import("./regionBetweenCurveXAxis-Cene1PWc.js"), "./renderers/regionBetweenCurves.tsx": () => import("./regionBetweenCurves-UUj2tPjD.js"), "./renderers/row.tsx": () => import("./row-AdEMsZm3.js"), "./renderers/rq.tsx": () => import("./rq-DpsoAxFh.js"), "./renderers/rsq.tsx": () => import("./rsq-BUIvQK49.js"), "./renderers/section.tsx": () => import("./section-DFB_LR6S.js"), "./renderers/sideBySide.tsx": () => import("./sideBySide-BpVt_Czj.js"), "./renderers/slider.tsx": () => import("./slider-H18xbWk7.js"), "./renderers/slopeField.tsx": () => import("./slopeField-CKdArhAk.js"), "./renderers/solution.tsx": () => import("./solution-Du-CeIET.js"), "./renderers/spreadsheet.tsx": () => import("./spreadsheet-CMoTjyKf.js"), "./renderers/sq.tsx": () => import("./sq-CVP4ayps.js"), "./renderers/subsetOfRealsInput.tsx": () => import("./subsetOfRealsInput-cxMNVNKR.js"), "./renderers/summaryStatistics.tsx": () => import("./summaryStatistics-C3s88_nN.js"), "./renderers/table.tsx": () => import("./table-C_FNmcaC.js"), "./renderers/tabular.tsx": () => import("./tabular-Bx24zu-e.js"), "./renderers/tag.tsx": () => import("./tag-DaUHHQR-.js"), "./renderers/text.tsx": () => import("./text-Bwv6foAp.js"), "./renderers/textInput.tsx": () => import("./textInput-ngbf4QtZ.js"), "./renderers/vector.tsx": () => import("./vector-DWL6PO2D.js"), "./renderers/vectorField.tsx": () => import("./vectorField-DgzpZYlm.js"), "./renderers/video.tsx": () => import("./video-OMWIgpoH.js") }), `./renderers/${childInstructions.rendererType}.tsx`, 3);
71
+ }
72
+ return rendererLoaders;
73
+ });
74
+ }
75
+ return null;
76
+ }
77
+ let child = React__default.createElement(rendererClass, propsForChild);
78
+ return child;
79
+ }
80
+ let rendererType = props.componentInstructions.rendererType;
81
+ const callAction = (argObj) => {
82
+ if (!argObj.componentIdx) {
83
+ argObj = { ...argObj };
84
+ argObj.componentIdx = componentIdx;
85
+ }
86
+ if (!argObj.rendererType) {
87
+ argObj = { ...argObj };
88
+ argObj.rendererType = rendererType;
89
+ }
90
+ return props.callAction(argObj);
91
+ };
92
+ return {
93
+ componentIdx: effectiveIdx,
94
+ id: prefixForIds + id,
95
+ SVs: stateValues,
96
+ docId: props.docId,
97
+ activityId: props.activityId,
98
+ actions,
99
+ children,
100
+ sourceOfUpdate,
101
+ ignoreUpdate,
102
+ rendererName,
103
+ initializeChildren: () => {
104
+ },
105
+ callAction,
106
+ doenetViewerUrl: props.doenetViewerUrl,
107
+ fetchExternalDoenetML: props.fetchExternalDoenetML,
108
+ requestScrollTo: props.requestScrollTo,
109
+ flags: props.flags
110
+ };
111
+ }
112
+ export {
113
+ useDoenetRenderer as u
114
+ };
@@ -1,6 +1,6 @@
1
1
  import { useMemo, useContext, useRef } from "react";
2
- import { BoardContext, LINE_LAYER_OFFSET } from "./graph-8Ybpt4il.js";
3
- import { K as createFunctionFromDefinition, A as DocContext } from "./doenetml-u1YndSm7.js";
2
+ import { BoardContext, LINE_LAYER_OFFSET } from "./graph-DEJxLN7s.js";
3
+ import { K as createFunctionFromDefinition, A as DocContext } from "./doenetml-D-MlvjpX.js";
4
4
  import { s as styleToDash } from "./styleToDash-DWb71gbd.js";
5
5
  import { u as useJSXGraphCleanup } from "./useJSXGraphCleanup-BNk4sn6x.js";
6
6
  function fieldFunctionFromDefinition(fDefinition) {
@@ -1,5 +1,5 @@
1
- import { q as jsxRuntimeExports } from "./doenetml-u1YndSm7.js";
2
- import { F as FontAwesomeIcon } from "./index.es-CVZDHLHO.js";
1
+ import { q as jsxRuntimeExports } from "./doenetml-D-MlvjpX.js";
2
+ import { F as FontAwesomeIcon } from "./index.es-BZY0c1t3.js";
3
3
  import { d as faSpinner, e as faLevelDownAlt, g as faCheck, h as faTimes, i as faCloud } from "./index-BDlitCgu.js";
4
4
  import React__default, { useCallback } from "react";
5
5
  function calculateValidationState(SVs) {
@@ -1,11 +1,11 @@
1
- import { A as DocContext, q as jsxRuntimeExports, B as textRendererStyle } from "./doenetml-u1YndSm7.js";
1
+ import { A as DocContext, q as jsxRuntimeExports, B as textRendererStyle } from "./doenetml-D-MlvjpX.js";
2
2
  import React__default, { useContext, useRef } from "react";
3
- import { j as jxg, s as syncLayer, g as syncVisPropValues, e as syncLineStrokeStyle, a as syncWithLabelToggle, f as syncLabelStrokeColor, b as syncLabelMaskCssStyle, i as applyLineFamilyLabelPlacement, k as buildLineFamilyLabelAttributes, d as attachLabelHoverHighlight, c as computeLabelMaskCssStyle, l as stabilizeInitialLineFamilyLabelPlacement, r as removeJXGEventHandlers } from "./JSXGraphRenderer-D6iPo1FB.js";
4
- import { u as useDoenetRenderer } from "./useDoenetRenderer-CUfcSgne.js";
5
- import { BoardContext, VERTEX_LAYER_OFFSET, LINE_LAYER_OFFSET } from "./graph-8Ybpt4il.js";
6
- import { D as DynamicMath } from "./DynamicMath-MXYV2Z9s.js";
7
- import { u as useSourceNavigation, a as attachLineFamilyDragHandlers } from "./lineFamilyDragHandlers-Bq8re2Ed.js";
8
- import { ChoiceInputInlineContext } from "./choiceInput-CHRv9fJO.js";
3
+ import { j as jxg, s as syncLayer, g as syncVisPropValues, e as syncLineStrokeStyle, a as syncWithLabelToggle, f as syncLabelStrokeColor, b as syncLabelMaskCssStyle, i as applyLineFamilyLabelPlacement, k as buildLineFamilyLabelAttributes, d as attachLabelHoverHighlight, c as computeLabelMaskCssStyle, l as stabilizeInitialLineFamilyLabelPlacement, r as removeJXGEventHandlers } from "./JSXGraphRenderer-D-h7eH-Q.js";
4
+ import { u as useDoenetRenderer } from "./useDoenetRenderer-UyWCNuKB.js";
5
+ import { BoardContext, VERTEX_LAYER_OFFSET, LINE_LAYER_OFFSET } from "./graph-DEJxLN7s.js";
6
+ import { D as DynamicMath } from "./DynamicMath-Bmg5p72t.js";
7
+ import { u as useSourceNavigation, a as attachLineFamilyDragHandlers } from "./lineFamilyDragHandlers-Bcg80hj8.js";
8
+ import { ChoiceInputInlineContext } from "./choiceInput-CP_MrBMk.js";
9
9
  import { a as buildLineLikeAttributes, c as buildDragHandleAttributes } from "./buildGraphicalAttributes-BTKBJYXD.js";
10
10
  import { u as usePointerDragState, a as useBoardPointerTracking } from "./useBoardPointerTracking-DV6a8Wvg.js";
11
11
  import { p as pointerEventToUserCoords } from "./dragThreshold-DuSSFrIU.js";
@@ -1,6 +1,6 @@
1
1
  import React__default from "react";
2
- import { u as useDoenetRenderer } from "./useDoenetRenderer-CUfcSgne.js";
3
- import { u as useFieldFunction, a as useFieldCurve, c as buildVectorFieldData } from "./useFieldCurve-D2aEaoKQ.js";
2
+ import { u as useDoenetRenderer } from "./useDoenetRenderer-UyWCNuKB.js";
3
+ import { u as useFieldFunction, a as useFieldCurve, c as buildVectorFieldData } from "./useFieldCurve-BeALHbXl.js";
4
4
  const vectorField = React__default.memo(function VectorField(props) {
5
5
  let { SVs } = useDoenetRenderer(props);
6
6
  VectorField.ignoreActionsWithoutCore = () => true;
@@ -1,10 +1,10 @@
1
- import { G as useRecordVisibilityChanges, q as jsxRuntimeExports } from "./doenetml-u1YndSm7.js";
1
+ import { G as useRecordVisibilityChanges, q as jsxRuntimeExports } from "./doenetml-D-MlvjpX.js";
2
2
  import React__default, { useState, useEffect, useRef } from "react";
3
- import { u as useDoenetRenderer } from "./useDoenetRenderer-CUfcSgne.js";
3
+ import { u as useDoenetRenderer } from "./useDoenetRenderer-UyWCNuKB.js";
4
4
  import { s as sizeToCSS } from "./css-BJLDLYRJ.js";
5
- import { D as DescriptionPopover, a as DescriptionAsDetails } from "./Description-DfuIwBpF.js";
5
+ import { D as DescriptionPopover, a as DescriptionAsDetails } from "./Description-9xkiCcAk.js";
6
6
  import { g as getNonInlineMediaLayoutStyles } from "./nonInlineMediaLayout-CkXHaqzo.js";
7
- import { N as NonInlineMediaWrapper } from "./NonInlineMediaWrapper-Ddzb1tjn.js";
7
+ import { N as NonInlineMediaWrapper } from "./NonInlineMediaWrapper-DqF3Wxsr.js";
8
8
  const YT_API_SRC = "https://www.youtube.com/iframe_api";
9
9
  const listeners = /* @__PURE__ */ new Set();
10
10
  let installed = false;
@@ -1,347 +0,0 @@
1
- import { A as DocContext, M as deepCompare, q as jsxRuntimeExports, C as loadMathJax } from "./doenetml-u1YndSm7.js";
2
- import React__default, { useContext, useRef, useEffect } from "react";
3
- import { j as jxg } from "./JSXGraphRenderer-D6iPo1FB.js";
4
- import { u as useDoenetRenderer } from "./useDoenetRenderer-CUfcSgne.js";
5
- import { BoardContext, BASE_LAYER_OFFSET, LINE_LAYER_OFFSET, POINT_LAYER_OFFSET, TEXT_LAYER_OFFSET } from "./graph-8Ybpt4il.js";
6
- import { s as styleToDash } from "./styleToDash-DWb71gbd.js";
7
- import { e as resolveBackgroundColor, b as resolveCanvasColor, f as resolveTextColor, g as resolvePanelBorderColor } from "./styleColors-CKo0M7P-.js";
8
- const legend = React__default.memo(function Legend(props) {
9
- let { id, SVs } = useDoenetRenderer(props);
10
- const board = useContext(BoardContext);
11
- const { darkMode } = useContext(DocContext) || {};
12
- let swatches = useRef([]);
13
- let labels = useRef([]);
14
- let box = useRef(null);
15
- let previousDependencies = useRef(null);
16
- const layoutGeneration = useRef(0);
17
- const boxFillColor = resolveBackgroundColor(SVs.selectedStyle, darkMode) || resolveCanvasColor(darkMode);
18
- const boxBorderColor = resolvePanelBorderColor(darkMode);
19
- const labelTextColor = resolveTextColor(SVs.selectedStyle, darkMode);
20
- const boxLayer = 10 * SVs.layer + BASE_LAYER_OFFSET;
21
- const lineSwatchLayer = 10 * SVs.layer + LINE_LAYER_OFFSET;
22
- const markerSwatchLayer = 10 * SVs.layer + POINT_LAYER_OFFSET;
23
- const labelLayer = 10 * SVs.layer + TEXT_LAYER_OFFSET;
24
- useEffect(() => {
25
- return () => {
26
- deleteLegend();
27
- };
28
- }, []);
29
- function createLegend() {
30
- if (board === null) {
31
- return;
32
- }
33
- const generation = ++layoutGeneration.current;
34
- let { xMin, xMax, yMin, yMax } = SVs.graphLimits;
35
- let legendDy = (yMax - yMin) * 0.06;
36
- let legendLineLength = (xMax - xMin) * 0.05;
37
- let legendDx = (xMax - xMin) * 0.02;
38
- const baseLegendX = xMin + (xMax - xMin) * 0.05;
39
- let legendX = baseLegendX;
40
- let legendY;
41
- if (SVs.position.slice(0, 5) === "upper") {
42
- legendY = yMin + (yMax - yMin) * 0.95;
43
- } else {
44
- legendY = yMin + (yMax - yMin) * 0.05 + legendDy * SVs.legendElements.length;
45
- }
46
- let atRight = SVs.position.slice(SVs.position.length - 5, SVs.position.length) === "right";
47
- swatches.current = [];
48
- labels.current = [];
49
- let maxTextWidth = 0;
50
- let usedMathJax = false;
51
- for (let [ind, element] of SVs.legendElements.entries()) {
52
- if (element.label) {
53
- let y = legendY - ind * legendDy;
54
- let textAttrs = {
55
- fixed: true,
56
- highlight: false,
57
- layer: labelLayer,
58
- strokeColor: labelTextColor,
59
- highlightStrokeColor: labelTextColor,
60
- // A label is an absolutely positioned div inside the
61
- // board, so left to itself it is only as wide as the room
62
- // beside it and wraps to fit. The legend gives each entry
63
- // one row, and the box is drawn around those rows, so a
64
- // label that wraps is taller than the row it was given: it
65
- // overlaps the entry below and overflows the box. Kept on
66
- // one line it runs past the graph's edge instead, which is
67
- // the lesser of the two (see #1750).
68
- cssStyle: "white-space: nowrap"
69
- };
70
- if (element.label.hasLatex) {
71
- textAttrs.useMathJax = true;
72
- textAttrs.parse = false;
73
- usedMathJax = true;
74
- }
75
- let txt = board.create(
76
- "text",
77
- [
78
- legendX + legendLineLength + legendDx,
79
- y,
80
- element.label.value
81
- ],
82
- textAttrs
83
- );
84
- labels.current.push(txt);
85
- maxTextWidth = Math.max(maxTextWidth, txt.rendNode.offsetWidth);
86
- }
87
- }
88
- maxTextWidth /= board.unitX;
89
- if (atRight) {
90
- legendX = Math.max(
91
- baseLegendX,
92
- xMax - legendLineLength - 3 * legendDx - maxTextWidth
93
- );
94
- }
95
- function currentBoxCorners() {
96
- const padX = legendDx / 2;
97
- const padY = legendDy / 4;
98
- const left = legendX - padX;
99
- const right = legendX + legendLineLength + legendDx + maxTextWidth + padX;
100
- const top = legendY + legendDy / 2 + padY;
101
- const bottom = legendY - (SVs.legendElements.length - 1) * legendDy - legendDy / 2 - padY;
102
- return [
103
- [left, top],
104
- [right, top],
105
- [right, bottom],
106
- [left, bottom]
107
- ];
108
- }
109
- if (SVs.boxed && SVs.legendElements.length > 0) {
110
- box.current = board.create("polygon", currentBoxCorners(), {
111
- fillColor: boxFillColor,
112
- fillOpacity: 1,
113
- fixed: true,
114
- highlight: false,
115
- layer: boxLayer,
116
- vertices: { visible: false },
117
- borders: {
118
- strokeColor: boxBorderColor,
119
- strokeWidth: 1,
120
- strokeOpacity: 1,
121
- fixed: true,
122
- highlight: false,
123
- layer: boxLayer
124
- }
125
- });
126
- }
127
- for (let [ind, element] of SVs.legendElements.entries()) {
128
- let y = legendY - ind * legendDy;
129
- if (element.swatchType === "marker") {
130
- let pointStyle = {
131
- fillColor: element.markerColor,
132
- fillOpacity: element.lineOpacity,
133
- strokeColor: "none",
134
- size: element.markerSize,
135
- face: normalizeStyle(element.markerStyle),
136
- fixed: true,
137
- highlight: false,
138
- withLabel: false,
139
- showInfoBox: false,
140
- layer: markerSwatchLayer
141
- };
142
- let point = board.create(
143
- "point",
144
- [legendX + legendLineLength / 2, y],
145
- pointStyle
146
- );
147
- swatches.current.push(point);
148
- } else if (element.swatchType === "rectangle") {
149
- let rectangleStyle = {
150
- fillColor: element.filled ? element.fillColor : "none",
151
- fillOpacity: element.fillOpacity,
152
- fixed: true,
153
- highlight: false,
154
- layer: lineSwatchLayer,
155
- vertices: { visible: false },
156
- borders: {
157
- strokeColor: element.lineColor,
158
- strokeWidth: element.lineWidth,
159
- strokeOpacity: element.lineOpacity,
160
- dash: styleToDash(element.lineStyle),
161
- fixed: true,
162
- highlight: false,
163
- layer: lineSwatchLayer
164
- }
165
- };
166
- let seg = board.create(
167
- "polygon",
168
- [
169
- [legendX, y + legendDy / 4],
170
- [legendX + legendLineLength, y + legendDy / 4],
171
- [legendX + legendLineLength, y - legendDy / 4],
172
- [legendX, y - legendDy / 4]
173
- ],
174
- rectangleStyle
175
- );
176
- swatches.current.push(seg);
177
- } else {
178
- let lineStyle = {
179
- strokeColor: element.lineColor,
180
- strokeWidth: element.lineWidth,
181
- strokeOpacity: element.lineOpacity,
182
- dash: styleToDash(element.lineStyle),
183
- fixed: true,
184
- highlight: false,
185
- layer: lineSwatchLayer
186
- };
187
- let seg = board.create(
188
- "segment",
189
- [
190
- [legendX, y],
191
- [legendX + legendLineLength, y]
192
- ],
193
- lineStyle
194
- );
195
- swatches.current.push(seg);
196
- }
197
- if (atRight && element.label) {
198
- labels.current[ind].coords.setCoordinates(jxg.COORDS_BY_USER, [
199
- legendX + legendLineLength + legendDx,
200
- y
201
- ]);
202
- }
203
- }
204
- if (usedMathJax && (atRight || box.current)) {
205
- layOutAfterTypesetting().then(() => {
206
- if (layoutGeneration.current !== generation) {
207
- return;
208
- }
209
- maxTextWidth = 0;
210
- for (let txt of labels.current) {
211
- maxTextWidth = Math.max(
212
- maxTextWidth,
213
- txt.rendNode.offsetWidth
214
- );
215
- }
216
- maxTextWidth /= board.unitX;
217
- if (atRight) {
218
- legendX = Math.max(
219
- baseLegendX,
220
- xMax - legendLineLength - 3 * legendDx - maxTextWidth
221
- );
222
- for (let [ind, swatch] of swatches.current.entries()) {
223
- let y = legendY - ind * legendDy;
224
- if (swatch.elType === "point") {
225
- swatch.coords.setCoordinates(
226
- jxg.COORDS_BY_USER,
227
- [legendX + legendLineLength / 2, y]
228
- );
229
- swatch.needsUpdate = true;
230
- swatch.update();
231
- } else if (swatch.elType === "polygon") {
232
- movePolygon(swatch, [
233
- [legendX, y + legendDy / 4],
234
- [
235
- legendX + legendLineLength,
236
- y + legendDy / 4
237
- ],
238
- [
239
- legendX + legendLineLength,
240
- y - legendDy / 4
241
- ],
242
- [legendX, y - legendDy / 4]
243
- ]);
244
- } else {
245
- const line = swatch;
246
- line.point1.coords.setCoordinates(
247
- jxg.COORDS_BY_USER,
248
- [legendX, y]
249
- );
250
- line.point2.coords.setCoordinates(
251
- jxg.COORDS_BY_USER,
252
- [legendX + legendLineLength, y]
253
- );
254
- line.needsUpdate = true;
255
- line.update();
256
- }
257
- if (labels.current[ind]) {
258
- labels.current[ind].coords.setCoordinates(
259
- jxg.COORDS_BY_USER,
260
- [legendX + legendLineLength + legendDx, y]
261
- );
262
- labels.current[ind].needsUpdate = true;
263
- labels.current[ind].update();
264
- }
265
- }
266
- }
267
- if (box.current) {
268
- movePolygon(box.current, currentBoxCorners());
269
- }
270
- board.updateRenderer();
271
- }).catch((e) => {
272
- console.error(
273
- "Failed to lay out legend after typesetting",
274
- e
275
- );
276
- });
277
- }
278
- }
279
- async function layOutAfterTypesetting() {
280
- const mathJax = await loadMathJax();
281
- await mathJax.startup?.promise;
282
- }
283
- function deleteLegend() {
284
- layoutGeneration.current++;
285
- for (let swatch of swatches.current) {
286
- board?.removeObject(swatch);
287
- }
288
- for (let txt of labels.current) {
289
- board?.removeObject(txt);
290
- }
291
- if (box.current) {
292
- board?.removeObject(box.current);
293
- box.current = null;
294
- }
295
- swatches.current = [];
296
- labels.current = [];
297
- }
298
- if (board) {
299
- const dependencies = {
300
- hidden: SVs.hidden,
301
- legendElements: [...SVs.legendElements],
302
- graphLimits: { ...SVs.graphLimits },
303
- position: SVs.position,
304
- layer: SVs.layer,
305
- boxed: SVs.boxed,
306
- boxFillColor,
307
- boxBorderColor,
308
- labelTextColor
309
- };
310
- if (!deepCompare(previousDependencies.current, dependencies)) {
311
- deleteLegend();
312
- if (!SVs.hidden) {
313
- createLegend();
314
- }
315
- }
316
- previousDependencies.current = dependencies;
317
- return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { id }) });
318
- }
319
- if (SVs.hidden) {
320
- return null;
321
- }
322
- return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { id }) });
323
- });
324
- function normalizeStyle(style) {
325
- if (style === "triangle") {
326
- return "triangleup";
327
- } else {
328
- return style;
329
- }
330
- }
331
- function movePolygon(polygon, corners) {
332
- for (let i = 0; i < corners.length; i++) {
333
- polygon.vertices[i].coords.setCoordinates(
334
- jxg.COORDS_BY_USER,
335
- corners[i]
336
- );
337
- polygon.vertices[i].needsUpdate = true;
338
- polygon.vertices[i].update();
339
- polygon.borders[i].needsUpdate = true;
340
- polygon.borders[i].update();
341
- }
342
- polygon.needsUpdate = true;
343
- polygon.update();
344
- }
345
- export {
346
- legend as default
347
- };