@eastgatesystems/tbx-reader 0.1.6 → 0.1.7

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.
@@ -164,7 +164,7 @@ var TbxDocument=(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`
164
164
  #tbx-gaudi-pane.tbx-gaudi-dragging,
165
165
  #tbx-gaudi-pane.tbx-gaudi-dragging path { cursor: grabbing; }
166
166
  #tbx-gaudi-pane .tbx-gaudi-sel { stroke: var(--tbx-accent, #2266cc); stroke-width: 4; animation: tbx-svg-pulse 500ms ease-in-out infinite alternate; }
167
- `,Rr=/[ \t\r\n\f\v.,;:!?()\[\]{}"]/;function zr(e){return!Rr.test(e)}function Br(e,t){if(t<0||t>e.length)return null;let n=Math.min(t,e.length-1);if(!zr(e[n]))return null;let r=n;for(;r>0&&zr(e[r-1]);)r--;let i=n+1;for(;i<e.length&&zr(e[i]);)i++;return e.slice(r,i)||null}function Vr(e,t,n){if(e.caretRangeFromPoint){let r=e.caretRangeFromPoint(t,n);if(r?.startContainer.nodeType===Node.TEXT_NODE)return{node:r.startContainer,offset:r.startOffset}}if(e.caretPositionFromPoint){let r=e.caretPositionFromPoint(t,n);if(r?.offsetNode?.nodeType===Node.TEXT_NODE)return{node:r.offsetNode,offset:r.offset}}return null}function Hr(e,t,n){let r=Vr(n.ownerDocument,e,t);if(r&&n.contains(r.node))return Br(r.node.textContent??``,r.offset);let i=document.createTreeWalker(n,NodeFilter.SHOW_TEXT),a;for(;a=i.nextNode();){let n=a.textContent??``;if(!n)continue;let r=document.createRange();r.selectNodeContents(a);let i=[...r.getClientRects()];if(i.length>0){for(let r of i)if(e>=r.left&&e<=r.right&&t>=r.top&&t<=r.bottom){(r.top+r.bottom)/2;let t=0,i=n.length-1;for(;t<i;){let n=t+i>>1,o=document.createRange();o.setStart(a,n),o.setEnd(a,n+1);let s=o.getBoundingClientRect(),c=(s.top+s.bottom)/2;c<r.top?t=n+1:c>=r.bottom?i=n:s.right<=e?t=n+1:i=n}return Br(n,t)}continue}let o=a.parentElement;if(!o)continue;let s=o.getBoundingClientRect();if(!(t<s.top||t>s.bottom))return Br(n,Ur(o,n,e-s.left))}return null}function Ur(e,t,n){let r=window.getComputedStyle(e),i=document.createElement(`canvas`).getContext(`2d`);if(!i)return 0;i.font=`${r.fontStyle} ${r.fontWeight} ${r.fontSize} ${r.fontFamily}`;for(let e=1;e<=t.length;e++)if(i.measureText(t.slice(0,e)).width>=n)return e-1;return t.length-1}function Wr(e){return[`map`,`outline`,`treemap`,`gaudi`,`hyperbolic`].includes(e)}var Gr=class{constructor(e,t,n,r,i){this.panes=e,this._mode=t,this.leftColEl=n,this.outlineEl=r,this.getToolbarLeft=i}connectBreadcrumbs(e){this.updateBreadcrumbsFn=e;for(let{view:t}of this.panes.values())t.onViewRootChange=e}updateBreadcrumbs(){this.updateBreadcrumbsFn?.()}get mode(){return this._mode}get activeView(){return this.panes.get(this._mode).view}switchTo(e){this._mode=e}updateVisibility(){let{wide:e,fillHeight:t}=this.panes.get(this._mode);this.leftColEl.style.width=e?`50%`:``,this.outlineEl.style.overflowX=e?`auto`:`hidden`,this.outlineEl.style.paddingRight=e?`0`:``,this.outlineEl.style.height=t?`100%`:``;let n=this.getToolbarLeft();n&&(n.style.width=e?`${this.leftColEl.offsetWidth}px`:``);for(let[e,{view:t}]of this.panes)t.el.style.display=e===this._mode?``:`none`}renderCurrent(e){this.activeView.render(e)}scrollToSelected(){this.activeView.scrollToSelected()}onArrow(e){return this.activeView.onArrow(e)}getViewRoot(){return this.activeView.getViewRoot()}hoistTo(e,t){this.activeView.hoistTo(e,t)}renderOnSwitch(e){this.activeView.willRender(e),this.activeView.render(e)}switchView(e,t){this.activeView.suspend(),this.switchTo(e),this.updateVisibility(),this.updateBreadcrumbs(),t&&(this.renderOnSwitch(t),this.scrollToSelected())}},Kr=`
167
+ `,Rr=/[ \t\r\n\f\v.,;:!?()\[\]{}"]/;function zr(e){return!Rr.test(e)}function Br(e,t){if(t<0||t>e.length)return null;let n=Math.min(t,e.length-1);if(!zr(e[n]))return null;let r=n;for(;r>0&&zr(e[r-1]);)r--;let i=n+1;for(;i<e.length&&zr(e[i]);)i++;return e.slice(r,i)||null}function Vr(e,t,n){if(e.caretRangeFromPoint){let r=e.caretRangeFromPoint(t,n);if(r?.startContainer.nodeType===Node.TEXT_NODE)return{node:r.startContainer,offset:r.startOffset}}if(e.caretPositionFromPoint){let r=e.caretPositionFromPoint(t,n);if(r?.offsetNode?.nodeType===Node.TEXT_NODE)return{node:r.offsetNode,offset:r.offset}}return null}function Hr(e,t,n){let r=Vr(n.ownerDocument,e,t);if(r&&n.contains(r.node))return Br(r.node.textContent??``,r.offset);let i=document.createTreeWalker(n,NodeFilter.SHOW_TEXT),a;for(;a=i.nextNode();){let n=a.textContent??``;if(!n)continue;let r=document.createRange();r.selectNodeContents(a);let i=[...r.getClientRects()];if(i.length>0){for(let r of i)if(e>=r.left&&e<=r.right&&t>=r.top&&t<=r.bottom){(r.top+r.bottom)/2;let t=0,i=n.length-1;for(;t<i;){let n=t+i>>1,o=document.createRange();o.setStart(a,n),o.setEnd(a,n+1);let s=o.getBoundingClientRect(),c=(s.top+s.bottom)/2;c<r.top?t=n+1:c>=r.bottom?i=n:s.right<=e?t=n+1:i=n}return Br(n,t)}continue}let o=a.parentElement;if(!o)continue;let s=o.getBoundingClientRect();if(!(t<s.top||t>s.bottom))return Br(n,Ur(o,n,e-s.left))}return null}function Ur(e,t,n){let r=window.getComputedStyle(e),i=document.createElement(`canvas`).getContext(`2d`);if(!i)return 0;i.font=`${r.fontStyle} ${r.fontWeight} ${r.fontSize} ${r.fontFamily}`;for(let e=1;e<=t.length;e++)if(i.measureText(t.slice(0,e)).width>=n)return e-1;return t.length-1}function Wr(e){return[`map`,`outline`,`treemap`,`gaudi`,`hyperbolic`].includes(e)}var Gr=class{constructor(e,t,n,r,i){this.panes=e,this._mode=t,this.leftColEl=n,this.outlineEl=r,this.getToolbarLeft=i}connectBreadcrumbs(e){this.updateBreadcrumbsFn=e;for(let{view:t}of this.panes.values())t.onViewRootChange=e}updateBreadcrumbs(){this.updateBreadcrumbsFn?.()}get mode(){return this._mode}get activeView(){return this.panes.get(this._mode).view}switchTo(e){this._mode=e}updateVisibility(){let{wide:e,fillHeight:t}=this.panes.get(this._mode);this.leftColEl.style.width=e?`var(--tbx-map-width, 50%)`:``,this.outlineEl.style.overflowX=e?`auto`:`hidden`,this.outlineEl.style.paddingRight=e?`0`:``,this.outlineEl.style.height=t?`100%`:``;let n=this.getToolbarLeft();n&&(n.style.width=e?`${this.leftColEl.offsetWidth}px`:``);for(let[e,{view:t}]of this.panes)t.el.style.display=e===this._mode?``:`none`}renderCurrent(e){this.activeView.render(e)}scrollToSelected(){this.activeView.scrollToSelected()}onArrow(e){return this.activeView.onArrow(e)}getViewRoot(){return this.activeView.getViewRoot()}hoistTo(e,t){this.activeView.hoistTo(e,t)}renderOnSwitch(e){this.activeView.willRender(e),this.activeView.render(e)}switchView(e,t){this.activeView.suspend(),this.switchTo(e),this.updateVisibility(),this.updateBreadcrumbs(),t&&(this.renderOnSwitch(t),this.scrollToSelected())}},Kr=`
168
168
  #tbx-breadcrumbs {
169
169
  flex-shrink: 0;
170
170
  height: 26px;
@@ -5102,7 +5102,7 @@ var Wr = class {
5102
5102
  }
5103
5103
  updateVisibility() {
5104
5104
  let { wide: e, fillHeight: t } = this.panes.get(this._mode);
5105
- this.leftColEl.style.width = e ? "50%" : "", this.outlineEl.style.overflowX = e ? "auto" : "hidden", this.outlineEl.style.paddingRight = e ? "0" : "", this.outlineEl.style.height = t ? "100%" : "";
5105
+ this.leftColEl.style.width = e ? "var(--tbx-map-width, 50%)" : "", this.outlineEl.style.overflowX = e ? "auto" : "hidden", this.outlineEl.style.paddingRight = e ? "0" : "", this.outlineEl.style.height = t ? "100%" : "";
5106
5106
  let n = this.getToolbarLeft();
5107
5107
  n && (n.style.width = e ? `${this.leftColEl.offsetWidth}px` : "");
5108
5108
  for (let [e, { view: t }] of this.panes) t.el.style.display = e === this._mode ? "" : "none";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eastgatesystems/tbx-reader",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "description": "Web component reader for Tinderbox and Storyspace .tbx hypertext documents",
5
5
  "main": "dist/tbx-document.iife.js",
6
6
  "module": "dist/tbx-document.mjs",