{"content": "\n<div class=\"djDebugPanelTitle\">\n  <button type=\"button\" class=\"djDebugClose\">\u00bb</button>\n  <h3>Template source: <code>page.html</code></h3>\n</div>\n<div class=\"djDebugPanelContent\">\n  <div class=\"djdt-scroll\">\n    <div class=\"highlight\"><pre><span></span><span class=\"cp\">{%</span> <span class=\"k\">extends</span> <span class=\"s2\">\"base.html\"</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">load</span> <span class=\"nv\">static</span> <span class=\"nv\">i18n</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">load</span> <span class=\"nv\">account</span> <span class=\"nv\">socialaccount</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">load</span> <span class=\"nv\">crispy_forms_tags</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">load</span> <span class=\"nv\">sass_tags</span> <span class=\"cp\">%}</span>\n\n<span class=\"cp\">{%</span> <span class=\"k\">block</span> <span class=\"nv\">extra_css</span> <span class=\"cp\">%}</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">link</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">\"text/css\"</span> <span class=\"na\">href</span><span class=\"o\">=</span><span class=\"s\">\"</span><span class=\"cp\">{%</span> <span class=\"k\">sass_src</span> <span class=\"s1\">'css/components/reader.scss'</span> <span class=\"cp\">%}</span><span class=\"s\">\"</span> <span class=\"na\">rel</span><span class=\"o\">=</span><span class=\"s\">\"stylesheet\"</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endblock</span> <span class=\"nv\">extra_css</span> <span class=\"cp\">%}</span>\n\n<span class=\"cp\">{%</span> <span class=\"k\">block</span> <span class=\"nv\">nav</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">include</span> <span class=\"s1\">'_page/_navbar.html'</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endblock</span> <span class=\"nv\">nav</span> <span class=\"cp\">%}</span>\n\n<span class=\"cp\">{%</span> <span class=\"k\">block</span> <span class=\"nv\">content</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">block</span> <span class=\"nv\">inner</span> <span class=\"cp\">%}</span>\n\n<span class=\"cm\">&lt;!-- uiAction search --&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">div</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">\"modal-search\"</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">\"reader-modal\"</span> <span class=\"na\">uk-modal</span><span class=\"p\">&gt;</span>\n  <span class=\"p\">&lt;</span><span class=\"nt\">div</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">\"uk-modal-dialog uk-padding-small\"</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">button</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">\"uk-modal-close-full uk-padding-small uk-margin-small-top uk-close-small\"</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">\"button\"</span> <span class=\"na\">uk-close</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">button</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">volume-search</span> <span class=\"na\">pid</span><span class=\"o\">=</span><span class=\"s\">\"</span><span class=\"cp\">{{</span> <span class=\"nv\">volume.pid</span> <span class=\"cp\">}}</span><span class=\"s\">\"</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">volume-search</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">volume-annotations</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">\"uk-margin-small-top\"</span> <span class=\"na\">:manifest-count</span><span class=\"o\">=</span><span class=\"s\">\"</span><span class=\"cp\">{{</span> <span class=\"nv\">user_annotation_count</span> <span class=\"cp\">}}</span><span class=\"s\">\"</span> <span class=\"na\">:page-count</span><span class=\"o\">=</span><span class=\"s\">\"</span><span class=\"cp\">{{</span> <span class=\"nv\">user_annotation_page_count</span> <span class=\"cp\">}}</span><span class=\"s\">\"</span> <span class=\"na\">:is-all</span><span class=\"o\">=</span><span class=\"s\">\"</span><span class=\"cp\">{{</span> <span class=\"nv\">is_all</span><span class=\"o\">|</span><span class=\"nf\">yesno</span><span class=\"s1\">:'true,false'</span> <span class=\"cp\">}}</span><span class=\"s\">\"</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">volume-annotations</span><span class=\"p\">&gt;</span>\n  <span class=\"p\">&lt;/</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n<span class=\"cm\">&lt;!-- uiAction search --&gt;</span>\n\n<span class=\"cm\">&lt;!-- uiAction information --&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">div</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">\"modal-info\"</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">\"reader-modal\"</span> <span class=\"na\">uk-modal</span><span class=\"p\">&gt;</span>\n  <span class=\"p\">&lt;</span><span class=\"nt\">div</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">\"uk-modal-dialog uk-padding-small\"</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">button</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">\"uk-modal-close-full uk-padding-small uk-margin-small-top uk-close-small\"</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">\"button\"</span> <span class=\"na\">uk-close</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">button</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">ul</span> <span class=\"na\">uk-tab</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">\"uk-text-bold uk-text-large\"</span><span class=\"p\">&gt;</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">li</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">\"uk-active\"</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">a</span> <span class=\"na\">href</span><span class=\"o\">=</span><span class=\"s\">\"#\"</span><span class=\"p\">&gt;</span>Info<span class=\"p\">&lt;/</span><span class=\"nt\">a</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">li</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">a</span> <span class=\"na\">href</span><span class=\"o\">=</span><span class=\"s\">\"#\"</span><span class=\"p\">&gt;</span>URLs<span class=\"p\">&lt;/</span><span class=\"nt\">a</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;/</span><span class=\"nt\">ul</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">ul</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">\"uk-switcher uk-margin-top\"</span><span class=\"p\">&gt;</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span><span class=\"cp\">{%</span> <span class=\"k\">include</span> <span class=\"s1\">'_page/_information.html'</span> <span class=\"cp\">%}</span><span class=\"p\">&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span><span class=\"cp\">{%</span> <span class=\"k\">include</span> <span class=\"s1\">'_page/_urls.html'</span> <span class=\"cp\">%}</span><span class=\"p\">&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;/</span><span class=\"nt\">ul</span><span class=\"p\">&gt;</span>\n  <span class=\"p\">&lt;/</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n<span class=\"cm\">&lt;!-- uiAction information --&gt;</span>\n\n<span class=\"cm\">&lt;!-- uiAction urls and exports --&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">div</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">\"modal-urls\"</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">\"reader-modal\"</span> <span class=\"na\">uk-modal</span><span class=\"p\">&gt;</span>\n  <span class=\"p\">&lt;</span><span class=\"nt\">div</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">\"uk-modal-dialog uk-padding-small\"</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">button</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">\"uk-modal-close-full uk-padding-small uk-margin-small-top uk-close-small\"</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">\"button\"</span> <span class=\"na\">uk-close</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">button</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">include</span> <span class=\"s1\">'_page/_exports.html'</span> <span class=\"cp\">%}</span>\n  <span class=\"p\">&lt;/</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n<span class=\"cm\">&lt;!-- uiAction urls and exports --&gt;</span>\n\n<span class=\"cm\">&lt;!-- uiAction ocr --&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">div</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">\"modal-ocr\"</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">\"reader-modal\"</span> <span class=\"na\">uk-modal</span><span class=\"p\">&gt;</span>\n  <span class=\"p\">&lt;</span><span class=\"nt\">div</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">\"uk-modal-dialog uk-padding-small\"</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">button</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">\"uk-modal-close-full uk-padding-small uk-margin-small-top uk-close-small\"</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">\"button\"</span> <span class=\"na\">uk-close</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">button</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">include</span> <span class=\"s1\">'_page/_ocr.html'</span> <span class=\"cp\">%}</span>\n  <span class=\"p\">&lt;/</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n<span class=\"cm\">&lt;!-- uiAction ocr --&gt;</span>\n\n<span class=\"cp\">{%</span> <span class=\"k\">endblock</span> <span class=\"nv\">inner</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endblock</span> <span class=\"nv\">content</span> <span class=\"cp\">%}</span>\n\n<span class=\"cp\">{%</span> <span class=\"k\">block</span> <span class=\"nv\">viewer</span> <span class=\"cp\">%}</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">div</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">\"rdx-viewer-container\"</span><span class=\"p\">&gt;</span>\n  <span class=\"p\">&lt;</span><span class=\"nt\">div</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">\"rdx-viewer\"</span> <span class=\"na\">role</span><span class=\"o\">=</span><span class=\"s\">\"region\"</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">page.pid</span> <span class=\"k\">is</span> <span class=\"k\">not</span> <span class=\"nf\">None</span> <span class=\"cp\">%}</span>\n<span class=\"cm\">&lt;!--</span>\n<span class=\"cm\">  &lt;p id=\"test\"&gt;&lt;/p&gt;</span>\n<span class=\"cm\">  &lt;a class=\"facebook\" href='http://www.facebook.com/sharer.php?s=100&amp;p[url]=http://</span><span class=\"cp\">{{</span> <span class=\"nv\">request.META.HTTP_HOST</span> <span class=\"cp\">}}{{</span> <span class=\"nv\">request.path</span> <span class=\"cp\">}}</span><span class=\"cm\">&amp;p[images][0]</span><span class=\"cp\">{{</span> <span class=\"nv\">page.IIIF_IMAGE_SERVER_BASE</span> <span class=\"cp\">}}{{</span> <span class=\"nv\">page.pid</span> <span class=\"cp\">}}</span><span class=\"cm\">/full/600,/0/default.jpg' target=\"_blank\"&gt;</span>\n<span class=\"cm\">  &lt;img src=\"https://www.cabq.gov/culturalservices/biopark/images/share-on-facebook.png/@@images/image.png\" title=\"Facebook\" alt=\"Facebook\" &gt;&lt;/a&gt;</span>\n<span class=\"cm\">--&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endblock</span> <span class=\"nv\">viewer</span> <span class=\"cp\">%}</span>\n\n<span class=\"cp\">{%</span> <span class=\"k\">block</span> <span class=\"nv\">javascript</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">comment</span> <span class=\"cp\">%}</span>\n<span class=\"c\">Rendered here (outside #v-readux, before main.js loads) rather than inside</span>\n<span class=\"c\">the content block: Vue 3 strips &lt;script&gt; tags when it compiles an in-DOM</span>\n<span class=\"c\">template, so a json_script tag placed anywhere inside the #v-readux mount</span>\n<span class=\"c\">target never survives to be read by VolumeAnnotations.vue's mounted() hook \u2014</span>\n<span class=\"c\">document.getElementById(\"context\") comes back null every time, even though</span>\n<span class=\"c\">the server renders this tag correctly on every request. Keeping it outside</span>\n<span class=\"c\">Vue's mount target (and before main.js, so it's already in the DOM by the</span>\n<span class=\"c\">time Vue mounts) is what makes it actually readable.</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endcomment</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{{</span> <span class=\"nv\">json_data</span><span class=\"o\">|</span><span class=\"nf\">json_script</span><span class=\"s2\">:\"context\"</span> <span class=\"cp\">}}</span>\n<span class=\"cp\">{{</span> <span class=\"nb\">block</span><span class=\"nv\">.super</span> <span class=\"cp\">}}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endblock</span> <span class=\"nv\">javascript</span> <span class=\"cp\">%}</span>\n\n<span class=\"cp\">{%</span> <span class=\"k\">block</span> <span class=\"nv\">extra_javascript</span> <span class=\"cp\">%}</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">script</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">\"text/javascript\"</span><span class=\"p\">&gt;</span>\n<span class=\"nb\">window</span><span class=\"p\">.</span><span class=\"nx\">onload</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"kd\">function</span><span class=\"p\">()</span><span class=\"w\"> </span><span class=\"p\">{</span>\n<span class=\"w\">  </span><span class=\"kd\">const</span><span class=\"w\"> </span><span class=\"nx\">options</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"p\">{</span>\n<span class=\"w\">    </span><span class=\"nx\">manifest</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"s1\">'https://</span><span class=\"cp\">{{</span> <span class=\"nv\">request.META.HTTP_HOST</span> <span class=\"cp\">}}</span><span class=\"s1\">/iiif/v3/</span><span class=\"cp\">{{</span> <span class=\"nv\">volume.pid</span> <span class=\"cp\">}}</span><span class=\"s1\">/manifest'</span><span class=\"p\">,</span>\n<span class=\"w\">    </span><span class=\"nx\">id</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"s1\">'rdx-viewer'</span><span class=\"p\">,</span>\n<span class=\"w\">    </span><span class=\"nx\">token</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"nb\">document</span><span class=\"p\">.</span><span class=\"nx\">getElementsByName</span><span class=\"p\">(</span><span class=\"s1\">'csrfmiddlewaretoken'</span><span class=\"p\">)[</span><span class=\"mf\">0</span><span class=\"p\">].</span><span class=\"nx\">value</span><span class=\"p\">,</span>\n<span class=\"w\">    </span><span class=\"nx\">uiActions</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"p\">[</span>\n<span class=\"w\">      </span><span class=\"p\">{</span>\n<span class=\"w\">        </span><span class=\"nx\">id</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"s1\">'action-info'</span><span class=\"p\">,</span>\n<span class=\"w\">        </span><span class=\"nx\">tooltipContent</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"s1\">'Information'</span><span class=\"p\">,</span>\n<span class=\"w\">        </span><span class=\"nx\">onClick</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"p\">()</span><span class=\"w\"> </span><span class=\"p\">=&gt;</span><span class=\"w\"> </span><span class=\"nx\">UIkit</span><span class=\"p\">.</span><span class=\"nx\">modal</span><span class=\"p\">(</span><span class=\"s1\">'#modal-info'</span><span class=\"p\">).</span><span class=\"nx\">show</span><span class=\"p\">(),</span>\n<span class=\"w\">        </span><span class=\"nx\">icon</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"s2\">\"&lt;span uk-icon='icon: info'&gt;&lt;/span&gt;\"</span>\n<span class=\"w\">      </span><span class=\"p\">},</span><span class=\"w\"> </span><span class=\"p\">{</span>\n<span class=\"w\">        </span><span class=\"nx\">id</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"s1\">'action-search'</span><span class=\"p\">,</span>\n<span class=\"w\">        </span><span class=\"nx\">tooltipContent</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"s1\">'Search within this volume'</span><span class=\"p\">,</span>\n<span class=\"w\">        </span><span class=\"nx\">onClick</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"p\">()</span><span class=\"w\"> </span><span class=\"p\">=&gt;</span><span class=\"w\"> </span><span class=\"nx\">UIkit</span><span class=\"p\">.</span><span class=\"nx\">modal</span><span class=\"p\">(</span><span class=\"s1\">'#modal-search'</span><span class=\"p\">).</span><span class=\"nx\">show</span><span class=\"p\">(),</span>\n<span class=\"w\">        </span><span class=\"nx\">icon</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"s2\">\"&lt;span uk-icon='icon: search'&gt;&lt;/span&gt;\"</span>\n<span class=\"w\">      </span><span class=\"p\">},</span><span class=\"w\"> </span><span class=\"p\">{</span>\n<span class=\"w\">        </span><span class=\"nx\">id</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"s1\">'action-links'</span><span class=\"p\">,</span>\n<span class=\"w\">        </span><span class=\"nx\">tooltipContent</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"s1\">'Export'</span><span class=\"p\">,</span>\n<span class=\"w\">        </span><span class=\"nx\">onClick</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"p\">()</span><span class=\"w\"> </span><span class=\"p\">=&gt;</span><span class=\"w\"> </span><span class=\"nx\">UIkit</span><span class=\"p\">.</span><span class=\"nx\">modal</span><span class=\"p\">(</span><span class=\"s1\">'#modal-urls'</span><span class=\"p\">).</span><span class=\"nx\">show</span><span class=\"p\">(),</span>\n<span class=\"w\">        </span><span class=\"nx\">icon</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"s2\">\"&lt;span uk-icon='icon: cloud-download'&gt;&lt;/span&gt;\"</span>\n<span class=\"w\">      </span><span class=\"p\">},</span><span class=\"w\"> </span><span class=\"p\">{</span>\n<span class=\"w\">        </span><span class=\"nx\">id</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"s1\">'action-ocr'</span><span class=\"p\">,</span>\n<span class=\"w\">        </span><span class=\"nx\">tooltipContent</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"s1\">'OCR Options'</span><span class=\"p\">,</span>\n<span class=\"w\">        </span><span class=\"nx\">onClick</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"p\">()</span><span class=\"w\"> </span><span class=\"p\">=&gt;</span><span class=\"w\"> </span><span class=\"nx\">UIkit</span><span class=\"p\">.</span><span class=\"nx\">modal</span><span class=\"p\">(</span><span class=\"s1\">'#modal-ocr'</span><span class=\"p\">).</span><span class=\"nx\">show</span><span class=\"p\">(),</span>\n<span class=\"w\">        </span><span class=\"nx\">icon</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"s2\">\"&lt;span uk-icon='icon: file-text'&gt;&lt;/span&gt;\"</span><span class=\"p\">,</span>\n<span class=\"w\">        </span><span class=\"nx\">hideOnAll</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"kc\">true</span>\n<span class=\"w\">      </span><span class=\"p\">}</span>\n<span class=\"w\">    </span><span class=\"p\">]</span>\n<span class=\"w\">  </span><span class=\"p\">};</span>\n\n<span class=\"w\">  </span><span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"k\">not</span> <span class=\"nv\">user.is_anonymouns</span> <span class=\"cp\">%}</span>\n<span class=\"w\">    </span><span class=\"nx\">options</span><span class=\"p\">.</span><span class=\"nx\">user</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"p\">{</span>\n<span class=\"w\">      </span><span class=\"nx\">id</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"s1\">'</span><span class=\"cp\">{{</span><span class=\"nv\">user.get_username</span><span class=\"cp\">}}</span><span class=\"s1\">'</span><span class=\"p\">,</span>\n<span class=\"w\">      </span><span class=\"nx\">displayName</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"s1\">'</span><span class=\"cp\">{{</span><span class=\"nv\">user.name</span><span class=\"cp\">}}</span><span class=\"s1\">'</span>\n<span class=\"w\">    </span><span class=\"p\">};</span>\n<span class=\"w\">  </span><span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n\n<span class=\"w\">  </span><span class=\"nx\">ECDSAnnotator</span><span class=\"p\">.</span><span class=\"nx\">init</span><span class=\"p\">(</span><span class=\"nx\">options</span><span class=\"p\">);</span>\n\n<span class=\"w\">  </span><span class=\"c1\">// The r6o editor lives inside OSD's viewer element. OSD's MouseTracker</span>\n<span class=\"w\">  </span><span class=\"c1\">// registers bubble-phase pointerdown/mousedown handlers on viewer.element</span>\n<span class=\"w\">  </span><span class=\"c1\">// that call preventDefault(), which cancels focus transfer to Jodit.</span>\n<span class=\"w\">  </span><span class=\"c1\">//</span>\n<span class=\"w\">  </span><span class=\"c1\">// The r6o editor is rendered immediately at init (opacity:0, not added/removed</span>\n<span class=\"w\">  </span><span class=\"c1\">// from DOM), so we query it directly after a short React render delay.</span>\n<span class=\"w\">  </span><span class=\"c1\">// stopImmediatePropagation() stops the event from bubbling to OSD's handler</span>\n<span class=\"w\">  </span><span class=\"c1\">// without calling preventDefault(), so the browser's focus transfer still fires.</span>\n<span class=\"w\">  </span><span class=\"c1\">// An open UIkit modal fights the annotation editor: its focus trap pulls</span>\n<span class=\"w\">  </span><span class=\"c1\">// focus back into the modal on every focusin, and the resulting focus</span>\n<span class=\"w\">  </span><span class=\"c1\">// tug-of-war can drive Jodit's toolbar into an infinite update loop that</span>\n<span class=\"w\">  </span><span class=\"c1\">// freezes the page. Two defenses:</span>\n<span class=\"w\">  </span><span class=\"c1\">//</span>\n<span class=\"w\">  </span><span class=\"c1\">// 1. Close any open reader modal as soon as the user interacts with the</span>\n<span class=\"w\">  </span><span class=\"c1\">//    viewer, so the annotation editor never opens beneath a live modal.</span>\n<span class=\"w\">  </span><span class=\"kd\">var</span><span class=\"w\"> </span><span class=\"nx\">_readerModalIds</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"p\">[</span><span class=\"s1\">'#modal-search'</span><span class=\"p\">,</span><span class=\"w\"> </span><span class=\"s1\">'#modal-info'</span><span class=\"p\">,</span><span class=\"w\"> </span><span class=\"s1\">'#modal-urls'</span><span class=\"p\">,</span><span class=\"w\"> </span><span class=\"s1\">'#modal-ocr'</span><span class=\"p\">];</span>\n<span class=\"w\">  </span><span class=\"nb\">document</span><span class=\"p\">.</span><span class=\"nx\">getElementById</span><span class=\"p\">(</span><span class=\"s1\">'rdx-viewer'</span><span class=\"p\">).</span><span class=\"nx\">addEventListener</span><span class=\"p\">(</span><span class=\"s1\">'pointerdown'</span><span class=\"p\">,</span><span class=\"w\"> </span><span class=\"kd\">function</span><span class=\"p\">()</span><span class=\"w\"> </span><span class=\"p\">{</span>\n<span class=\"w\">    </span><span class=\"nx\">_readerModalIds</span><span class=\"p\">.</span><span class=\"nx\">forEach</span><span class=\"p\">(</span><span class=\"kd\">function</span><span class=\"p\">(</span><span class=\"nx\">id</span><span class=\"p\">)</span><span class=\"w\"> </span><span class=\"p\">{</span>\n<span class=\"w\">      </span><span class=\"kd\">var</span><span class=\"w\"> </span><span class=\"nx\">el</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"nb\">document</span><span class=\"p\">.</span><span class=\"nx\">querySelector</span><span class=\"p\">(</span><span class=\"nx\">id</span><span class=\"p\">);</span>\n<span class=\"w\">      </span><span class=\"k\">if</span><span class=\"w\"> </span><span class=\"p\">(</span><span class=\"nx\">el</span><span class=\"w\"> </span><span class=\"o\">&amp;&amp;</span><span class=\"w\"> </span><span class=\"nx\">el</span><span class=\"p\">.</span><span class=\"nx\">classList</span><span class=\"p\">.</span><span class=\"nx\">contains</span><span class=\"p\">(</span><span class=\"s1\">'uk-open'</span><span class=\"p\">))</span><span class=\"w\"> </span><span class=\"nx\">UIkit</span><span class=\"p\">.</span><span class=\"nx\">modal</span><span class=\"p\">(</span><span class=\"nx\">id</span><span class=\"p\">).</span><span class=\"nx\">hide</span><span class=\"p\">();</span>\n<span class=\"w\">    </span><span class=\"p\">});</span>\n<span class=\"w\">  </span><span class=\"p\">},</span><span class=\"w\"> </span><span class=\"kc\">true</span><span class=\"p\">);</span>\n\n<span class=\"w\">  </span><span class=\"c1\">// 2. Hide editor focus events from UIkit's focus trap (capture phase runs</span>\n<span class=\"w\">  </span><span class=\"c1\">//    before UIkit's document-level focusin listener), so typing keeps</span>\n<span class=\"w\">  </span><span class=\"c1\">//    working even if a modal is somehow opened while the editor is up.</span>\n<span class=\"w\">  </span><span class=\"nb\">document</span><span class=\"p\">.</span><span class=\"nx\">addEventListener</span><span class=\"p\">(</span><span class=\"s1\">'focusin'</span><span class=\"p\">,</span><span class=\"w\"> </span><span class=\"kd\">function</span><span class=\"p\">(</span><span class=\"nx\">e</span><span class=\"p\">)</span><span class=\"w\"> </span><span class=\"p\">{</span>\n<span class=\"w\">    </span><span class=\"k\">if</span><span class=\"w\"> </span><span class=\"p\">(</span><span class=\"nx\">e</span><span class=\"p\">.</span><span class=\"nx\">target</span><span class=\"p\">.</span><span class=\"nx\">closest</span><span class=\"w\"> </span><span class=\"o\">&amp;&amp;</span><span class=\"w\"> </span><span class=\"nx\">e</span><span class=\"p\">.</span><span class=\"nx\">target</span><span class=\"p\">.</span><span class=\"nx\">closest</span><span class=\"p\">(</span><span class=\"s1\">'.r6o-editor'</span><span class=\"p\">))</span><span class=\"w\"> </span><span class=\"p\">{</span>\n<span class=\"w\">      </span><span class=\"nx\">e</span><span class=\"p\">.</span><span class=\"nx\">stopImmediatePropagation</span><span class=\"p\">();</span>\n<span class=\"w\">    </span><span class=\"p\">}</span>\n<span class=\"w\">  </span><span class=\"p\">},</span><span class=\"w\"> </span><span class=\"kc\">true</span><span class=\"p\">);</span>\n<span class=\"p\">}</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">script</span><span class=\"p\">&gt;</span>\n\n<span class=\"cp\">{%</span> <span class=\"k\">endblock</span> <span class=\"nv\">extra_javascript</span> <span class=\"cp\">%}</span>\n</pre></div>\n\n  </div>\n</div>\n"}