<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Scroll View</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <style>
    [dropzone] {
      background-color: grey;
      margin: 1px;
      border-width: 1px;
      border-style: dashed;
    }
    [data-fact-id] {
        background-color: lightgray;
    }
    [data-hint-available] {
      background-color: yellow
    }
    math {
      display: inline-flex;
      align-items: center;
      flex-wrap: wrap;
    }
    .legacySlot {
      width: 100px;
      height: 100px;
      margin: 50px;
      border-width: 1px;
    }
    #rectangle {
      width: 10px;
      height: 10px;
      position: absolute;
      background-color: red;
    }
  </style>
</head>
<body>
  <div id="scrollContainer">
    <div>No scroll selected</div>
    <scroll-description title='OppositeLenScroll' alt='Given a triangle △A B C right-angled at ⊾C, the opposite side has length CA = tan(angleB) ⋅ BC.'>
      <span>Given a triangle</span>
      <math>
          <mi>&xutri;<!-- △ --></mi>
          <mi data-slot-id="http://mathhub.info/FrameIT/frameworld?TriangleProblem?A"></mi>
          <mi data-slot-id="http://mathhub.info/FrameIT/frameworld?TriangleProblem?B"></mi>
          <mi data-slot-id="http://mathhub.info/FrameIT/frameworld?TriangleProblem?C"></mi>
      </math>
      <span>right-angled at</span>
      <math>
          <!--<mi>&angrtvbd;</mi>--><!-- ⦝ -->
          <mi data-slot-id="http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC?rightAngleC"></mi>
      </math>,<br />
      <span>the opposite side has length</span>
      <math>
          <mi data-solution-id="http://mathhub.info/FrameIT/frameworld?OppositeLen/Solution?deducedLineCA"></mi>
          <mo>&equals;</mo>
          <mrow>
              <mi>tan</mi>
              <!--<mo>&#8289;</mo>-->
              <mo>(</mo>
              <mi data-slot-id="http://mathhub.info/FrameIT/frameworld?TriangleProblem_AngleAtB?angleB"></mi>
              <mo>)</mo>
          </mrow>
          <mo>&#8290;</mo>
          <mi data-slot-id="http://mathhub.info/FrameIT/frameworld?OppositeLen/Problem?distanceBC"></mi>
      </math>
      <span>.</span>
      <div>
          <svg
          width='50mm'
          height='45mm'
          viewBox='35 0 90 70'
          version='1.1'
          id='triangle'
          xmlns='http://www.w3.org/2000/svg'
          xmlns:svg='http://www.w3.org/2000/svg'>
          <g id='shape'>
              <path
                  style='fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1'
                  d='M 42.871972,64.67128 H 84.290656 V 7.6297578 Z'
                  id='triangle' />
              <path
                  id='angleABC'
                  style='fill:none;stroke:#000000;stroke-width:0.265;stroke-dasharray:none;stroke-opacity:1'
                  d='m 46.024276,60.304806 a 5.3589964,5.3589964 0 0 1 2.252109,4.366474 h -5.358996 z' />
              <g
                  id='angleBCA'>
                  <path
                      style='fill:none;stroke:#000000;stroke-width:0.264999;stroke-dasharray:none;stroke-opacity:1'
                      id='rightAngle'
                      d='m 78.972396,64.665062 a 5.3308268,5.3308268 0 0 1 5.330827,-5.330827 v 5.330827 z' />
                  <circle
                      style='fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264999;stroke-dasharray:none;stroke-opacity:1'
                      id='rightAngleDot'
                      cx='82.081886'
                      cy='62.813831'
                      r='0.32113415' />
              </g>
          </g>
          <g
              id='labels'
              style='font-size:4.23333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583'
          >
              <text
                  xml:space='preserve'
                  x='39.242592'
                  y='67.117035'
                  id='pointB'
                  style='fill:#0000ff'
                  data-slot-id='http://mathhub.info/FrameIT/frameworld?TriangleProblem?B'>${lverb B}</text>
              <text
                  xml:space='preserve'
                  x='85.100548'
                  y='68.080437'
                  id='pointC'
                  style='fill:#0000ff'
                  data-slot-id='http://mathhub.info/FrameIT/frameworld?TriangleProblem?C'>${lverb C}</text>
              <text
                  xml:space='preserve'
                  x='84.650963'
                  y='6.551136'
                  id='pointA'
                  style='fill:#0000ff'
                  data-slot-id='http://mathhub.info/FrameIT/frameworld?TriangleProblem?A'>${lverb A}</text>
              <text
                  xml:space='preserve'
                  x='48.234348'
                  y='62.492699'
                  id='angleAtB'
                  style='fill:#ffcc00'
                  data-slot-id='http://mathhub.info/FrameIT/frameworld?TriangleProblem_AngleAtB?angleB'>${lverb angleB}</text>
              <text
                  xml:space='preserve'
                  x='71.548683'
                  y='60.951256'
                  id='rightAngleAtC'
                  style='fill:#ffcc00'
                  data-slot-id='http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC?rightAngleC'>${lverb rightAngleC}</text>
              <text
                  xml:space='preserve'
                  x='59.409813'
                  y='68.273117'
                  id='distanceBC'
                  style='fill:#008000'
                  data-slot-id='http://mathhub.info/FrameIT/frameworld?OppositeLen/Problem?distanceBC'>${lverb distanceBC}</text>
              <text
                  xml:space='preserve'
                  x='84.972092'
                  y='35.260529'
                  id='solutionCA'
                  style='fill:#008000'
                  data-solution-id='http://mathhub.info/FrameIT/frameworld?OppositeLen/Solution?deducedLineCA'>${lverb deducedLineCA}</text>
          </g>
          </svg>
      </div>
  </scroll-description>
  </div>
  <button type="button" title="Apply the scroll" onclick="applyScroll('')">Apply</button><br>
  <p>You can right click on yellow slots to get a hint.</p>

  <script>  
    /** 
     * Load all .js files for interactive scrolls. (So we can use e.g. Typescript)
     * 
     * This is no more dangerous than having this file in the streaming assets. 
     * Any malicious code could just be written in here as well ¯\_(ツ)_/¯. 
    */
    function loadScript(url)
    {    
        const head = document.getElementsByTagName('head')[0];
        const script = document.createElement('script');
        script.type = 'text/javascript';
        script.src = url;
        head.appendChild(script);
    }

    loadScript("./scroll_interaction/Drop_facts.js")
    loadScript("./scroll_interaction/SetScrollContent.js")

  </script>
  <data id="assignments" hidden data-assignments="{&quot;http://mathhub.info/FrameIT/frameworld?TriangleProblem?A&quot;:{&quot;Item1&quot;:&quot;(C)&quot;,&quot;Item2&quot;:&quot;http://mathhub.info/FrameIT/frameworld?DefaultSituationSpace/SituationTheory1?fact310&quot;},&quot;http://mathhub.info/FrameIT/frameworld?TriangleProblem?B&quot;:{&quot;Item1&quot;:&quot;(B)&quot;,&quot;Item2&quot;:&quot;http://mathhub.info/FrameIT/frameworld?DefaultSituationSpace/SituationTheory1?fact309&quot;},&quot;http://mathhub.info/FrameIT/frameworld?TriangleProblem?C&quot;:{&quot;Item1&quot;:&quot;C&quot;,&quot;Item2&quot;:&quot;&quot;},&quot;http://mathhub.info/FrameIT/frameworld?TriangleProblem_RightAngleAtC?rightAngleC&quot;:{&quot;Item1&quot;:&quot;⊾C&quot;,&quot;Item2&quot;:&quot;&quot;},&quot;http://mathhub.info/FrameIT/frameworld?OppositeLen/Problem?distanceBC&quot;:{&quot;Item1&quot;:&quot;BC&quot;,&quot;Item2&quot;:&quot;&quot;},&quot;http://mathhub.info/FrameIT/frameworld?TriangleProblem_AngleAtB?angleB&quot;:{&quot;Item1&quot;:&quot;∠ABC&quot;,&quot;Item2&quot;:&quot;&quot;},&quot;http://mathhub.info/FrameIT/frameworld?OppositeLen/Solution?deducedLineCA&quot;:{&quot;Item1&quot;:&quot;CA&quot;,&quot;Item2&quot;:&quot;&quot;}}">hi</data>
  
  <!--<script src="visualiseCursor.mjs" defer type="module"></script>-->
  <!--<script>
  /* mouse and pointer event handling */
  const rectangle = document.createElement("div");
  rectangle.id = "rectangle";
  
  console.log("appendChild to", document.body)
  document.body.appendChild(rectangle);
  
  function followCursor(event) {
  const cursorX = event.clientX;
  const cursorY = event.clientY +5;
  //console.log(`MouseEvent X: ${cursorX}, Y: ${cursorY}, Event type: ${event.type}`, event);
  rectangle.style.left = `${cursorX}px`;
  rectangle.style.top = `${cursorY}px`;
  }
  
  document.addEventListener("mousemove", followCursor);
  document.addEventListener("pointermove", followCursor);
  
  document.addEventListener("mouseover", followCursor);
  document.addEventListener("pointerover", followCursor);
  
  document.addEventListener("mouseout", followCursor);
  document.addEventListener("pointerout", followCursor);
  </script>-->
</body>
</html>