@pennsieve-viz/tsviewer 1.1.6 → 1.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.
- package/dist/{BFLibraryButton-CSxfg7K4.cjs → BFLibraryButton-Cl1zHCj4.cjs} +1 -1
- package/dist/{BFLibraryButton-NgsvoErB.js → BFLibraryButton-EjjzcmnE.js} +1 -1
- package/dist/{IconSelection-DTFkvzxk.js → IconSelection-DFoRgH-I.js} +1 -1
- package/dist/{IconSelection-BcuwYtX3.cjs → IconSelection-DPFWojrw.cjs} +1 -1
- package/dist/{TSAnnotationCanvas-CtFOEGB0.cjs → TSAnnotationCanvas-7ywGpNb1.cjs} +1 -1
- package/dist/{TSAnnotationCanvas-CJtANJsz.js → TSAnnotationCanvas-Ccqeyr9A.js} +2 -2
- package/dist/{TSAnnotationModal-DPxjUyck.js → TSAnnotationModal-DN2NTHrr.js} +3 -3
- package/dist/{TSAnnotationModal-BS8IoDyh.cjs → TSAnnotationModal-Db0YET0C.cjs} +1 -1
- package/dist/{TSFilterModal-CWuMbAUD.cjs → TSFilterModal-BIzdxZTF.cjs} +1 -1
- package/dist/{TSFilterModal-8SWGJZAk.js → TSFilterModal-CG2I7_O7.js} +3 -3
- package/dist/{TSScrubber-CmEcXGIB.cjs → TSScrubber-CJ6HzeLX.cjs} +1 -1
- package/dist/{TSScrubber-CtC5GGlN.js → TSScrubber-QKuyH9-w.js} +1 -1
- package/dist/{TSViewerCanvas-HlJNlhU5.js → TSViewerCanvas-BZ25qMRm.js} +172 -172
- package/dist/{TSViewerCanvas-DaCSYXvF.cjs → TSViewerCanvas-BbOOjZR1.cjs} +3 -3
- package/dist/{TSViewerLayerWindow-vHpPKb1R.js → TSViewerLayerWindow-BFBBjkrR.js} +2 -2
- package/dist/{TSViewerLayerWindow-C3IfqjAM.cjs → TSViewerLayerWindow-V4RYOiMz.cjs} +1 -1
- package/dist/{TSViewerToolbar-C0VEfra8.js → TSViewerToolbar-BrIZ1U-g.js} +1 -1
- package/dist/{TSViewerToolbar-ByWpL5ym.cjs → TSViewerToolbar-CwSszG24.cjs} +1 -1
- package/dist/{TsAnnotationDeleteDialog-Y8s-tTfm.cjs → TsAnnotationDeleteDialog-CNAWOcBS.cjs} +1 -1
- package/dist/{TsAnnotationDeleteDialog-B6yOnhMf.js → TsAnnotationDeleteDialog-Dq6kU4Dv.js} +2 -2
- package/dist/{index-D_fRDLaJ.js → index-Bdjw6_YT.js} +1 -1
- package/dist/{index-B-t7gOrg.cjs → index-Cpizs5PU.cjs} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),r=require("./index-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),r=require("./index-Cpizs5PU.cjs"),s={name:"BfLibraryButton",props:{type:{type:String,default:"button"},autofocus:Boolean,disabled:Boolean,processing:{type:Boolean,default:!1},processingText:{type:String,default:""}},computed:{hasPrefixSlot:function(){return!!this.$slots.prefix},hasSuffixSlot:function(){return!!this.$slots.suffix}},methods:{}},a=["disabled","autofocus","type"],l={key:0,class:"prefix"},c={key:3,class:"suffix"};function u(o,d,t,f,y,n){return e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(["bf-library-button",[t.type?"bf-library-button--"+t.type:"",n.hasPrefixSlot?"hasPrefix":""]]),disabled:t.disabled||t.processing,autofocus:t.autofocus,type:t.type},[n.hasPrefixSlot?(e.openBlock(),e.createElementBlock("span",l,[e.renderSlot(o.$slots,"prefix",{},void 0,!0)])):e.createCommentVNode("",!0),t.processing?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[t.processingText?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(t.processingText),1)],64)):e.renderSlot(o.$slots,"default",{key:1},void 0,!0)],64)):e.createCommentVNode("",!0),t.processing?e.createCommentVNode("",!0):e.renderSlot(o.$slots,"default",{key:2},void 0,!0),n.hasSuffixSlot?(e.openBlock(),e.createElementBlock("span",c,[e.renderSlot(o.$slots,"suffix",{},void 0,!0)])):e.createCommentVNode("",!0)],10,a)}const i=r._export_sfc(s,[["render",u],["__scopeId","data-v-a46bc988"]]);exports.default=i;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { openBlock as t, createElementBlock as s, normalizeClass as u, renderSlot as n, createCommentVNode as a, Fragment as i, createTextVNode as f, toDisplayString as l } from "vue";
|
|
2
|
-
import { g as d } from "./index-
|
|
2
|
+
import { g as d } from "./index-Bdjw6_YT.js";
|
|
3
3
|
const c = {
|
|
4
4
|
name: "BfLibraryButton",
|
|
5
5
|
props: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const t=require("vue"),o=require("./index-
|
|
1
|
+
"use strict";const t=require("vue"),o=require("./index-Cpizs5PU.cjs"),i={name:"IconSelection",props:{width:{type:Number,default:16},height:{type:Number,default:16},color:{type:String,default:"currentColor"}}},h=["width","height","fill"];function c(l,n,e,d,s,u){return t.openBlock(),t.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",width:e.width,height:e.height,fill:e.color,viewBox:"0 0 24 24"},[...n[0]||(n[0]=[t.createElementVNode("path",{pid:"0",d:"M16 10V7h-4V4H4v10h4v3h4v3h8V10zM6 12V6h4v1H8v5zm4 3V9h4v1h-2v5zm8 3h-4v-6h4z"},null,-1)])],8,h)}const r=o._export_sfc(i,[["render",c]]);exports.IconSelection=r;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const S=require("vue"),p=require("./index-B-t7gOrg.cjs"),K=require("pinia"),Q=require("./TSViewerCanvas-DaCSYXvF.cjs"),Y=require("./_commonjsHelpers-DKOUU3wS.cjs");var Z=p._curry2(function(o,s){return o.map(function(r){for(var d=s,l=0,g;l<r.length;){if(d==null)return;g=r[l],d=p._isInteger(g)?p.nth(g,d):d[g],l+=1}return d})}),V=p._curry2(function(o,s){return Z([o],s)[0]}),_=p._curry3(function(o,s,r){return p.defaultTo(o,V(s,r))});const R=(t,o)=>{let s;if(/^#([A-Fa-f0-9]{3}){1,2}$/.test(t))return s=t.substring(1).split(""),s.length===3&&(s=[s[0],s[0],s[1],s[1],s[2],s[2]]),s="0x"+s.join(""),"rgba("+[s>>16&255,s>>8&255,s&255].join(",")+","+o+")";throw new Error("Bad Hex")},x=t=>{t.sort((o,s)=>o.start<s.start?-1:o.start>s.start?1:0)},z=(t,o)=>{const s=(t==null?void 0:t.layer_id)||0;return p.defaultTo({},Q.find(p.propEq("id",s),o))},q=(t,o,s,r=0,d=!1)=>{let l;return d?l=j(t,o,r,t.length-1,s):l=B(t,o,r,t.length-1,s),l===-1?l=0:l<0&&(l=-l-2),l},B=(t,o,s,r,d)=>{if(r<s){let g=r>=0?r:-r-2;if(g===-1)return g;const m=t[g].start;for(;g>=0&&t[g].start===m;)g--;return-g-2}const l=parseInt((s+r)/2);if(t[l].start>o)return B(t,o,s,l-1,d);if(t[l].start<o)return B(t,o,l+1,r,d);{let g=l;if(d){for(;g>=0&&t[g].start===o;)g--;g++}else{for(;g<t.length&&t[g].start===o;)g++;g--}return g}},j=(t,o,s,r,d)=>{if(r<s){let m=r>=0?r:-r-2;if(m===-1)return m;const M=t[m].start+t[m].duration;for(;m>=0&&t[m].start+t[m].duration===M;)m--;return-m-2}const l=parseInt((s+r)/2),g=t[l].start+t[l].duration;if(g>o)return j(t,o,s,l-1,d);if(g<o)return j(t,o,l+1,r,d);{let m=l;if(d){for(;m>=0&&t[m].start+t[m].duration===o;)m--;m++}else{for(;m<t.length&&t[m].start+t[m].duration===o;)m++;m--}return m}},G=(t,o,s=0)=>o*(t+s);function ee(t=null){const o=t||S.inject("viewerStore",null)||p.createViewerStore("default"),{viewerChannels:s,viewerAnnotations:r,viewerMontageScheme:d}=K.storeToRefs(o),l=S.ref([]),g=S.ref([]),m=y=>{const h=d.value!=="NOT_MONTAGED";let e=p.propOr("","id",y);if(h){const i=e.split("_");e=i.length?Q.head(i):e}return e},M=async(y,h,e,i,f)=>{const c=[];c.push({start:y,end:e.tsEnd});let a=0;for(let n=0;n<l.value.length;n++){const u=l.value[n];if(y>=u.start&&h<=u.end)return;if(c[0].start>h)break;if(u.start<=c[0].start&&u.end>=y)a=n+1,c[0].start=u.end;else if(u.start>c[0].start){a=n;break}}const v=r.value.reduce((n,u)=>n+u.annotations.length,0);if(c[0].start>=c[0].end&&v>0)return;const T=0;for(let n=a;n<l.value.length;n++)if(l.value[n].start>=c[T].start)if(c[T].end=l.value[n].start,l.value[n].end<h)c.push({start:l.value[n].end,end:e.tsEnd});else break;if(!(c[0].start>=c[0].end&&v>0)&&c.length>0){s.value.map(n=>m(n));for(const n of c){for(const u of r.value){if(!u.id){console.warn("Layer ID is undefined, skipping annotation request for layer:",u);continue}const w=Math.floor(n.end),L={id:i.content.id,start:Math.floor(n.start),end:w,layerId:u.id,limit:e.constants.LIMITANNFETCH};try{const k=await p.useToken(),b=`${o.config.apiUrl}/timeseries/${i.content.id}/layers/${u.id}/annotations?api_key=${k}`,E=Object.keys(L).map(U=>`&${U}=${L[U]}`).join(""),I=`${b}${E}`,C=await fetch(I,{method:"GET",headers:{"Content-type":"application/json"}});if(C.status>=400)throw new Error(C.status);const H=await C.json();await A(H,f)}catch(k){p.useHandleXhrError(k)}}l.value.push({start:Math.floor(n.start),end:Math.floor(n.end)})}l.value.sort((n,u)=>n.start<u.start?-1:n.start>u.start?1:0)}},A=async(y,h)=>{const e=p.propOr({},"linkedPackages",y);let i=_([],["annotations","results"],y);if(i.length>=500){let c=0;for(const a of i)a.start>c&&(c=a.start);for(const a of l.value)if(a.end>c&&a.start<c){a.end=c;break}}const f=d.value!=="NOT_MONTAGED";if(i.length>0){const c=i.map(a=>{const v={name:"",id:a.id,label:a.label,description:a.description,start:a.start,duration:a.end-a.start,end:a.end,cStart:null,cEnd:null,selected:!1,channelIds:a.channelIds,allChannels:!1,layer_id:a.layerId,userId:a.userId};if(a.linkedPackage){const T=a.linkedPackage;v.linkedPackage=_("",["content","id"],e[T]),v.linkedPackageDTO=e[T]}return(!f&&v.channelIds.length===s.value.length||f&&v.channelIds.length>s.value.length)&&(v.allChannels=!0),v});r.value.forEach(a=>{const v=a.annotations,T=c.filter(n=>a.id===n.layer_id);a.annotations=v.concat(T),o.updateLayer(a)})}h("annotationsReceived")};return{cachedAnnRange:l,annLayerInfo:g,checkAnnotationRange:M,findNextAnnotation:y=>{const h=o.getViewerActiveLayer(),e=q(h.annotations,y,!1);return e<h.annotations.length?h.annotations[e].start>y?h.annotations[e]:h.annotations[e+1]||h.annotations[e]:h.annotations[e]},findPreviousAnnotation:y=>{const h=o.getViewerActiveLayer(),e=q(h.annotations,y,!0);return h.annotations[e].start<y?h.annotations[e]:e>0?h.annotations[e-1]:h.annotations[e]},getChannelId:m}}function te(t=null){const o=t||S.inject("viewerStore",null)||p.createViewerStore("default"),{viewerAnnotations:s,viewerChannels:r}=K.storeToRefs(o),d=S.ref([]),l=S.ref([]),g=S.ref(null),m=S.ref(["#FFFF4E"]),M=(e,i)=>{var v,T;const c=(((v=i.constants)==null?void 0:v.ANNOTATIONLABELHEIGHT)||20)/2|0,a=((T=i.constants)==null?void 0:T.XOFFSET)||0;for(const n of e){let u=n.start,w=n.duration;n.duration<0&&(u=n.start+n.duration,w=-n.duration);const L=a+(u-i.start)/i.rsPeriod;if(n.cStart=L|0,n.duration!==0){const k=a+(u+w-i.start)/i.rsPeriod;n.cEnd=k|0}else n.cEnd=n.cStart+i.cWidth/40|0;if(n.allChannels)n.allOffsets=[c],n.cY=c;else{n.allOffsets=[],n.minOffset=i.cHeight|0,n.maxOffset=0;const k=r.value;for(const F of n.channelIds){let b=null;for(const E of k)if(E.id===F&&E.visible){b=E.rowBaseline|0,b<n.minOffset&&(n.minOffset=b),b>n.maxOffset&&(n.maxOffset=b),n.allOffsets.push(b);break}}l.value.indexOf(n.minOffset)<0&&l.value.push(n.minOffset),n.cY=n.minOffset}}},A=(e,i,f,c)=>{var T,n;const a=((T=f.constants)==null?void 0:T.ANNOTATIONLABELHEIGHT)||20,v=a/2|0;e.setTransform(f.pixelRatio,0,0,f.pixelRatio,0,0),e.save(),e.lineWidth=1,e.setLineDash([8,5]),e.strokeStyle="rgba(0,0,0, 0.6)",e.fillStyle="rgba(0,0,0,0.05)";for(const u of i){const w=z(u,s.value);u.selected&&(e.save(),e.strokeStyle=w.selColor,e.fillStyle=w.bkColor,e.lineWidth=1);const L=Math.round(u.cStart)+.5,k=Math.round(u.cEnd)+.5;u.allChannels?u.duration===0?(e.beginPath(),e.moveTo(L+1,a),e.lineTo(L,c),e.stroke()):(e.fillRect(L,a,k-L,c-a),e.beginPath(),e.moveTo(L,a),e.lineTo(L,c),e.moveTo(k,a),e.lineTo(k,c),e.stroke()):((n=u==null?void 0:u.channelIds)==null?void 0:n.length)===1?u.duration===0&&(e.beginPath(),e.moveTo(L,u.minOffset+v),e.lineTo(L,u.minOffset+v+8),e.stroke()):u.duration===0?(e.beginPath(),e.moveTo(L,u.minOffset+v),e.lineTo(L,u.maxOffset-v),e.stroke()):(e.fillRect(L-1,u.minOffset+v,k-L+1,u.maxOffset-u.minOffset-a),e.beginPath(),e.moveTo(L,u.minOffset+v),e.lineTo(L,u.maxOffset-v),e.moveTo(k,u.minOffset+v),e.lineTo(k,u.maxOffset-v),e.stroke()),u.selected&&e.restore()}e.restore()},N=async(e,i,f,c,a,v)=>{var u;const T=((u=f.constants)==null?void 0:u.ANNOTATIONLABELHEIGHT)||20,n=T/2|0;e.setTransform(f.pixelRatio,0,0,f.pixelRatio,0,0),e.save(),e.lineWidth=2,e.font="14px sans-serif",e.textAlign="left";for(const w of i){const L=z(w,s.value);if(w===g.value&&c)continue;w.selected?(e.fillStyle=L.selColor||"rgba(51,204,102, 0.8)",e.strokeStyle="white"):(e.fillStyle=L.color||"rgba(51,204,102,0.8)",e.strokeStyle=w===g.value?"white":"rgba(255,255,255,0.8)");const k=Math.round(w.cStart)+1,F=Math.round(w.cEnd);let b=0;for(let C=0;C<w.allOffsets.length;C++)e.fillRect(k-1,w.allOffsets[C]-n,F-k+2,T),w.allOffsets[C]===w.minOffset&&(b=C);const E=w.allOffsets[b];if(["annSelect","annResize-left","annResize-right"].includes(a)&&v==="annotate"&&(e.beginPath(),w.duration!==0&&(e.moveTo(F-3,E-n+3),e.lineTo(F-3,E+n-3)),e.moveTo(k+3,E-n+3),e.lineTo(k+3,E+n-3),e.stroke()),F-k>w.label.length*8+10){e.fillStyle=m.value.indexOf(L.hexColor)>=0?"black":"white";const C=w.linkedPackage?k+30:k+10,H=w.linkedPackage?E+n-n/2:E+n-6;e.fillText(w.label,C,H)}const I=w.linkedPackageDTO;I&&F-k>=30&&await O(e,I,k,E,n,T)}e.restore()},O=async(e,i,f,c,a,v)=>{const T=_({},["objects","view",1,"content"],i),n=p.propOr("","fileType",T),u=new Image;if(n==="PNG"){const{id:w,packageId:L}=T,k=o.config.apiUrl;try{const F=await p.useToken();u.src=`${k}/packages/${L}/files/${w}/presign/?api_key=${F}`,u.complete?e.drawImage(u,f,c-a,27,v):u.addEventListener("load",()=>{e.drawImage(u,f,c-a,27,v)},{once:!0})}catch(F){console.error("Error loading image:",F)}}else u.src=y(),e.drawImage(u,f+5,c-a,20,20)},y=e=>"/path/to/default/icon.png";return{renderAnn:d,hoverOffsets:l,focusedAnn:g,render:(e,i,f,c)=>{var w,L;if(!i){console.warn("TSAnnotationCanvas: annotationsCanvas prop is undefined or null");return}const a=i.getContext("2d"),v=f.getContext("2d");a.setTransform(e.pixelRatio,0,0,e.pixelRatio,0,0),v.setTransform(e.pixelRatio,0,0,e.pixelRatio,0,0),l.value=[(((w=e.constants)==null?void 0:w.ANNOTATIONLABELHEIGHT)||20)/2],a.clearRect(0,0,e.cWidth,e.cHeight),v.clearRect(0,0,e.cWidth,e.cHeight),d.value=[];const T=e.duration&&e.duration>0?e.duration:15e6,n=e.start||0,u=n+T;for(const k of s.value)if(k.visible&&((L=k.annotations)==null?void 0:L.length)>0){const F=k.annotations.filter(b=>{const E=b.start,I=b.end||b.start+(b.duration||0);return E<u&&I>n});F.length>0&&(F.sort((b,E)=>b.start-E.start),d.value.push(...F))}d.value.length!==0&&(x(d.value),M(d.value,e),A(a,d.value,e,c),N(v,d.value,e,!0,e.pointerMode,e.viewerActiveTool),g.value&&N(v,[g.value],e,!1,e.pointerMode,e.viewerActiveTool))},computeRenderOptions:M,renderAnnotationAreas:A,renderAnnotationLabels:N}}function ne(t,o,s,r=null){const d=r||S.inject("viewerStore",null)||p.createViewerStore("default"),l=S.ref([0,0]),g=(e,i)=>{const c=((i==null?void 0:i.ANNOTATIONLABELHEIGHT)||20)/2;for(const a of s.value)if(e>=a-c&&e<=a+c)return!0;return!1},m=(e,i,f)=>{var v;const a=((f==null?void 0:f.ANNOTATIONLABELHEIGHT)||20)/2;for(let T=0;T<(((v=o.value)==null?void 0:v.length)||0);T++){const n=o.value[T];if(n.cStart<e&&n.cEnd>e){if(i>n.cY-a&&i<n.cY+a)return T}else if(n.cStart>e)break}return null},M=(e,i,f)=>{if(!f)return i;switch(i){case"annotate":return e<=f.cStart+10?"annResize-left":e>=f.cEnd-10&&f.duration>0?"annResize-right":"annSelect";case"pointer":return"annSelect";default:return i}};return{mouseDownPosition:l,shouldCheckAnnotationHover:g,findAnnotationAtPosition:m,determinePointerMode:M,resetFocusedAnnotation:()=>{var e;((e=t.value)==null?void 0:e.oldStart)!==void 0&&(t.value.start=t.value.oldStart,t.value.duration=t.value.oldDuration,t.value.end=t.value.start+t.value.duration)},selectFocusedAnnotation:()=>t.value?(d.setActiveAnnotation(t.value),!0):!1,onMouseDown:(e,i,f)=>{t.value&&["annResize-left","annResize-right"].includes(f)&&(t.value.oldStart=t.value.start,t.value.oldDuration=t.value.duration,l.value=[e,i])},onMouseMove:(e,i,f,c,a)=>{let v=f;if(c&&l.value){const T=(e-l.value[0])*a.rsPeriod;switch(f){case"annResize-left":t.value.oldDuration>0?(t.value.start=t.value.oldStart+T,t.value.duration=t.value.oldDuration-T,t.value.end=t.value.start+t.value.duration):t.value.start=t.value.oldStart+T;break;case"annResize-right":t.value.duration=t.value.oldDuration+T,t.value.end=t.value.start+t.value.duration;break}}else{const T=g(i,a.constants);if(v=a.viewerActiveTool,T){const n=m(e,i,a.constants);if(n!==null){const u=t.value,w=o.value[n];(!u||e<t.value.cStart||e>t.value.cEnd)&&(t.value=w),v=M(e,a.viewerActiveTool,t.value)}else t.value=null}else t.value=null,v=a.viewerActiveTool}return v},onMouseUp:(e,i)=>{if(t.value&&["annResize-left","annResize-right"].includes(e)){if(t.value.duration<0){const f=-t.value.duration,c=t.value.start-f;t.value.start=c,t.value.duration=f,t.value.end=c+f}d.setActiveAnnotation(t.value),i("updateAnnotation",t.value)}}}}var P={exports:{}},W;function oe(){if(W)return P.exports;W=1;function t(){}return t.prototype={on:function(o,s,r){var d=this.e||(this.e={});return(d[o]||(d[o]=[])).push({fn:s,ctx:r}),this},once:function(o,s,r){var d=this;function l(){d.off(o,l),s.apply(r,arguments)}return l._=s,this.on(o,l,r)},emit:function(o){var s=[].slice.call(arguments,1),r=((this.e||(this.e={}))[o]||[]).slice(),d=0,l=r.length;for(d;d<l;d++)r[d].fn.apply(r[d].ctx,s);return this},off:function(o,s){var r=this.e||(this.e={}),d=r[o],l=[];if(d&&s)for(var g=0,m=d.length;g<m;g++)d[g].fn!==s&&d[g].fn._!==s&&l.push(d[g]);return l.length?r[o]=l:delete r[o],this}},P.exports=t,P.exports.TinyEmitter=t,P.exports}var D,X;function ae(){if(X)return D;X=1;var t=oe();return D=new t,D}var re=ae();const $=Y.getDefaultExportFromCjs(re),J={$emit:(...t)=>$.emit(...t),$on:(...t)=>$.on(...t),$off:(...t)=>$.off(...t),$once:(...t)=>$.once(...t)};function ie(t=null){const o=t||S.inject("viewerStore",null)||p.createViewerStore("default"),s=S.ref([]),r=S.ref(["#18BA62","#FFBC27","#E94B4B","#0D4EFF","#FF4FFF","#50FFFF","#FFFF4E","#512BAF","#8A6ECF","#389BAD","#187D46","#B12800","#0C2475","#FF5321","#FF99CC","#DCC180","#FF6C21","#000000","#9B9B9B","#00FF00","#FA8072","#808000","#A0522D","#2760FF"]),d=async(O,y)=>{const h=[];if(O.results.length===0)await l({name:"Default",color:"#18BA62",description:"Default Annotation Layer"},null,y);else{for(let e=0;e<O.results.length;e++){const i=O.results[e];let f=i.color||r.value[e%r.value.length];const c={id:i.id,name:i.name,description:i.description,visible:!0,selected:e===0,annotations:[],color:R(f,.7),hexColor:f,bkColor:R(f,.15),selColor:R(f,.9)};h.push(c)}o.setAnnotations(h),y("annLayersInitialized")}s.value=O.results},l=async(O,y,h)=>{var e;if(!((e=y==null?void 0:y.content)!=null&&e.id))return null;try{const i=await p.useToken(),f=`${o.config.apiUrl}/timeseries/${y.content.id}/layers?api_key=${i}`,c=await p.useSendXhr(f,{method:"POST",body:{name:O.name,color:O.color,description:O.description||O.name}}),a={...c,annotations:[],hexColor:c.color,color:R(c.color,.7),bkColor:R(c.color,.15),selColor:R(c.color,.9),visible:!0,selected:!0};return o.createLayer(a),o.setActiveAnnotationLayer(a.id),J.$emit("toast",{detail:{msg:`'${a.name}' Layer Created`}}),a}catch(i){throw p.useHandleXhrError(i),i}finally{h&&h("closeAnnotationLayerWindow")}};return{annLayerInfo:s,defaultColors:r,initializeLayers:d,createAnnotationLayer:l,updateLayerVisibility:(O,y)=>{const h=o.viewerAnnotations.find(e=>e.id===O);h&&(h.visible=y,o.updateLayer(h))},selectLayer:O=>{o.viewerAnnotations.forEach(h=>{h.selected=!1,o.updateLayer(h)});const y=o.viewerAnnotations.find(h=>h.id===O);y&&(y.selected=!0,o.updateLayer(y),o.setActiveAnnotationLayer(O))},deleteLayer:async(O,y)=>{var h;if(!((h=y==null?void 0:y.content)!=null&&h.id))return null;try{const e=await p.useToken(),i=`${o.config.apiUrl}/timeseries/${y.content.id}/layers/${O}?api_key=${e}`;await p.useSendXhr(i,{method:"DELETE"}),o.removeLayer(O),J.$emit("toast",{detail:{msg:"Layer deleted successfully"}})}catch(e){throw p.useHandleXhrError(e),e}},updateLayerColor:async(O,y,h)=>{var e;if(!((e=h==null?void 0:h.content)!=null&&e.id))return null;try{const i=await p.useToken(),f=`${o.config.apiUrl}/timeseries/${h.content.id}/layers/${O}?api_key=${i}`,c=await p.useSendXhr(f,{method:"PUT",body:{color:y}}),a=o.viewerAnnotations.find(v=>v.id===O);return a&&(a.hexColor=y,a.color=R(y,.7),a.bkColor=R(y,.15),a.selColor=R(y,.9),o.updateLayer(a)),c}catch(i){throw p.useHandleXhrError(i),i}},loadLayers:async(O,y)=>{var h;if(!((h=O==null?void 0:O.content)!=null&&h.id))return null;try{const e=await p.useToken(),i=`${o.config.apiUrl}/timeseries/${O.content.id}/layers?api_key=${e}`,f=await p.useSendXhr(i);return await d(f,y),f}catch(e){throw p.useHandleXhrError(e),e}}}}const se=["width","height"],le={__name:"TSAnnotationCanvas",props:{cWidth:{type:Number,default:0},cHeight:Number,start:Number,duration:Number,tsEnd:Number,rsPeriod:Number,pixelRatio:Number,constants:{type:Object,default:()=>({ANNOTATIONLABELHEIGHT:20,XOFFSET:0,LIMITANNFETCH:500})},pointerMode:String,annotationsCanvas:[HTMLCanvasElement,Object],activeViewer:{type:Object,required:!0},viewerActiveTool:String},emits:["annLayersInitialized","annotationsReceived","closeAnnotationLayerWindow","updateAnnotation"],setup(t,{expose:o,emit:s}){const r=t,d=s,l=S.ref(null),{checkAnnotationRange:g,findNextAnnotation:m,findPreviousAnnotation:M}=ee(),{renderAnn:A,hoverOffsets:N,focusedAnn:O,render:y}=te(),{resetFocusedAnnotation:h,selectFocusedAnnotation:e,onMouseDown:i,onMouseMove:f,onMouseUp:c}=ne(O,A,N),{createAnnotationLayer:a,loadLayers:v}=ie(),T=S.computed(()=>r.cHeight-20),n=S.computed(()=>({width:r.cWidth+"px",height:T.value+"px"})),u=()=>{y(r,r.annotationsCanvas,l.value,T.value)},w=(E,I)=>{i(E,I,r.pointerMode)},L=(E,I,C,H)=>f(E,I,C,H,r),k=()=>{c(r.pointerMode,d)},F=()=>{e()&&S.nextTick(()=>u())},b=async E=>{try{await a(E,r.activeViewer,d)}catch(I){console.error("Error creating layer:",I)}};return S.watch(()=>r.activeViewer,async E=>{try{await v(E,d),await g(r.start,r.start+r.duration,r,E,d)}catch(I){console.error("Error loading annotations for new viewer:",I)}}),S.onMounted(async()=>{try{await v(r.activeViewer,d),await g(r.start,r.start+r.duration,r,r.activeViewer,d)}catch(E){console.error("Error initializing annotations:",E)}}),o({render:u,resetFocusedAnnotation:h,findNextAnnotation:m,findPreviousAnnotation:M,checkAnnotationRange:(E,I)=>g(E,I,r,r.activeViewer,d),selectFocusedAnn:F,createAnnotationLayer:b,onMouseDown:w,onMouseMove:L,onMouseUp:k}),(E,I)=>(S.openBlock(),S.createElementBlock("canvas",{id:"annLabelArea",ref_key:"annLabelArea",ref:l,class:"timeseries-annotation-canvas",width:S.unref(G)(t.cWidth,t.pixelRatio,0),height:S.unref(G)(T.value,t.pixelRatio,0),style:S.normalizeStyle(n.value)},null,12,se))}},ue=p._export_sfc(le,[["__scopeId","data-v-2261f569"]]);exports.default=ue;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const S=require("vue"),p=require("./index-Cpizs5PU.cjs"),K=require("pinia"),Q=require("./TSViewerCanvas-BbOOjZR1.cjs"),Y=require("./_commonjsHelpers-DKOUU3wS.cjs");var Z=p._curry2(function(o,s){return o.map(function(r){for(var d=s,l=0,g;l<r.length;){if(d==null)return;g=r[l],d=p._isInteger(g)?p.nth(g,d):d[g],l+=1}return d})}),V=p._curry2(function(o,s){return Z([o],s)[0]}),_=p._curry3(function(o,s,r){return p.defaultTo(o,V(s,r))});const R=(t,o)=>{let s;if(/^#([A-Fa-f0-9]{3}){1,2}$/.test(t))return s=t.substring(1).split(""),s.length===3&&(s=[s[0],s[0],s[1],s[1],s[2],s[2]]),s="0x"+s.join(""),"rgba("+[s>>16&255,s>>8&255,s&255].join(",")+","+o+")";throw new Error("Bad Hex")},x=t=>{t.sort((o,s)=>o.start<s.start?-1:o.start>s.start?1:0)},z=(t,o)=>{const s=(t==null?void 0:t.layer_id)||0;return p.defaultTo({},Q.find(p.propEq("id",s),o))},q=(t,o,s,r=0,d=!1)=>{let l;return d?l=j(t,o,r,t.length-1,s):l=B(t,o,r,t.length-1,s),l===-1?l=0:l<0&&(l=-l-2),l},B=(t,o,s,r,d)=>{if(r<s){let g=r>=0?r:-r-2;if(g===-1)return g;const m=t[g].start;for(;g>=0&&t[g].start===m;)g--;return-g-2}const l=parseInt((s+r)/2);if(t[l].start>o)return B(t,o,s,l-1,d);if(t[l].start<o)return B(t,o,l+1,r,d);{let g=l;if(d){for(;g>=0&&t[g].start===o;)g--;g++}else{for(;g<t.length&&t[g].start===o;)g++;g--}return g}},j=(t,o,s,r,d)=>{if(r<s){let m=r>=0?r:-r-2;if(m===-1)return m;const M=t[m].start+t[m].duration;for(;m>=0&&t[m].start+t[m].duration===M;)m--;return-m-2}const l=parseInt((s+r)/2),g=t[l].start+t[l].duration;if(g>o)return j(t,o,s,l-1,d);if(g<o)return j(t,o,l+1,r,d);{let m=l;if(d){for(;m>=0&&t[m].start+t[m].duration===o;)m--;m++}else{for(;m<t.length&&t[m].start+t[m].duration===o;)m++;m--}return m}},G=(t,o,s=0)=>o*(t+s);function ee(t=null){const o=t||S.inject("viewerStore",null)||p.createViewerStore("default"),{viewerChannels:s,viewerAnnotations:r,viewerMontageScheme:d}=K.storeToRefs(o),l=S.ref([]),g=S.ref([]),m=y=>{const h=d.value!=="NOT_MONTAGED";let e=p.propOr("","id",y);if(h){const i=e.split("_");e=i.length?Q.head(i):e}return e},M=async(y,h,e,i,f)=>{const c=[];c.push({start:y,end:e.tsEnd});let a=0;for(let n=0;n<l.value.length;n++){const u=l.value[n];if(y>=u.start&&h<=u.end)return;if(c[0].start>h)break;if(u.start<=c[0].start&&u.end>=y)a=n+1,c[0].start=u.end;else if(u.start>c[0].start){a=n;break}}const v=r.value.reduce((n,u)=>n+u.annotations.length,0);if(c[0].start>=c[0].end&&v>0)return;const T=0;for(let n=a;n<l.value.length;n++)if(l.value[n].start>=c[T].start)if(c[T].end=l.value[n].start,l.value[n].end<h)c.push({start:l.value[n].end,end:e.tsEnd});else break;if(!(c[0].start>=c[0].end&&v>0)&&c.length>0){s.value.map(n=>m(n));for(const n of c){for(const u of r.value){if(!u.id){console.warn("Layer ID is undefined, skipping annotation request for layer:",u);continue}const w=Math.floor(n.end),L={id:i.content.id,start:Math.floor(n.start),end:w,layerId:u.id,limit:e.constants.LIMITANNFETCH};try{const k=await p.useToken(),b=`${o.config.apiUrl}/timeseries/${i.content.id}/layers/${u.id}/annotations?api_key=${k}`,E=Object.keys(L).map(U=>`&${U}=${L[U]}`).join(""),I=`${b}${E}`,C=await fetch(I,{method:"GET",headers:{"Content-type":"application/json"}});if(C.status>=400)throw new Error(C.status);const H=await C.json();await A(H,f)}catch(k){p.useHandleXhrError(k)}}l.value.push({start:Math.floor(n.start),end:Math.floor(n.end)})}l.value.sort((n,u)=>n.start<u.start?-1:n.start>u.start?1:0)}},A=async(y,h)=>{const e=p.propOr({},"linkedPackages",y);let i=_([],["annotations","results"],y);if(i.length>=500){let c=0;for(const a of i)a.start>c&&(c=a.start);for(const a of l.value)if(a.end>c&&a.start<c){a.end=c;break}}const f=d.value!=="NOT_MONTAGED";if(i.length>0){const c=i.map(a=>{const v={name:"",id:a.id,label:a.label,description:a.description,start:a.start,duration:a.end-a.start,end:a.end,cStart:null,cEnd:null,selected:!1,channelIds:a.channelIds,allChannels:!1,layer_id:a.layerId,userId:a.userId};if(a.linkedPackage){const T=a.linkedPackage;v.linkedPackage=_("",["content","id"],e[T]),v.linkedPackageDTO=e[T]}return(!f&&v.channelIds.length===s.value.length||f&&v.channelIds.length>s.value.length)&&(v.allChannels=!0),v});r.value.forEach(a=>{const v=a.annotations,T=c.filter(n=>a.id===n.layer_id);a.annotations=v.concat(T),o.updateLayer(a)})}h("annotationsReceived")};return{cachedAnnRange:l,annLayerInfo:g,checkAnnotationRange:M,findNextAnnotation:y=>{const h=o.getViewerActiveLayer(),e=q(h.annotations,y,!1);return e<h.annotations.length?h.annotations[e].start>y?h.annotations[e]:h.annotations[e+1]||h.annotations[e]:h.annotations[e]},findPreviousAnnotation:y=>{const h=o.getViewerActiveLayer(),e=q(h.annotations,y,!0);return h.annotations[e].start<y?h.annotations[e]:e>0?h.annotations[e-1]:h.annotations[e]},getChannelId:m}}function te(t=null){const o=t||S.inject("viewerStore",null)||p.createViewerStore("default"),{viewerAnnotations:s,viewerChannels:r}=K.storeToRefs(o),d=S.ref([]),l=S.ref([]),g=S.ref(null),m=S.ref(["#FFFF4E"]),M=(e,i)=>{var v,T;const c=(((v=i.constants)==null?void 0:v.ANNOTATIONLABELHEIGHT)||20)/2|0,a=((T=i.constants)==null?void 0:T.XOFFSET)||0;for(const n of e){let u=n.start,w=n.duration;n.duration<0&&(u=n.start+n.duration,w=-n.duration);const L=a+(u-i.start)/i.rsPeriod;if(n.cStart=L|0,n.duration!==0){const k=a+(u+w-i.start)/i.rsPeriod;n.cEnd=k|0}else n.cEnd=n.cStart+i.cWidth/40|0;if(n.allChannels)n.allOffsets=[c],n.cY=c;else{n.allOffsets=[],n.minOffset=i.cHeight|0,n.maxOffset=0;const k=r.value;for(const F of n.channelIds){let b=null;for(const E of k)if(E.id===F&&E.visible){b=E.rowBaseline|0,b<n.minOffset&&(n.minOffset=b),b>n.maxOffset&&(n.maxOffset=b),n.allOffsets.push(b);break}}l.value.indexOf(n.minOffset)<0&&l.value.push(n.minOffset),n.cY=n.minOffset}}},A=(e,i,f,c)=>{var T,n;const a=((T=f.constants)==null?void 0:T.ANNOTATIONLABELHEIGHT)||20,v=a/2|0;e.setTransform(f.pixelRatio,0,0,f.pixelRatio,0,0),e.save(),e.lineWidth=1,e.setLineDash([8,5]),e.strokeStyle="rgba(0,0,0, 0.6)",e.fillStyle="rgba(0,0,0,0.05)";for(const u of i){const w=z(u,s.value);u.selected&&(e.save(),e.strokeStyle=w.selColor,e.fillStyle=w.bkColor,e.lineWidth=1);const L=Math.round(u.cStart)+.5,k=Math.round(u.cEnd)+.5;u.allChannels?u.duration===0?(e.beginPath(),e.moveTo(L+1,a),e.lineTo(L,c),e.stroke()):(e.fillRect(L,a,k-L,c-a),e.beginPath(),e.moveTo(L,a),e.lineTo(L,c),e.moveTo(k,a),e.lineTo(k,c),e.stroke()):((n=u==null?void 0:u.channelIds)==null?void 0:n.length)===1?u.duration===0&&(e.beginPath(),e.moveTo(L,u.minOffset+v),e.lineTo(L,u.minOffset+v+8),e.stroke()):u.duration===0?(e.beginPath(),e.moveTo(L,u.minOffset+v),e.lineTo(L,u.maxOffset-v),e.stroke()):(e.fillRect(L-1,u.minOffset+v,k-L+1,u.maxOffset-u.minOffset-a),e.beginPath(),e.moveTo(L,u.minOffset+v),e.lineTo(L,u.maxOffset-v),e.moveTo(k,u.minOffset+v),e.lineTo(k,u.maxOffset-v),e.stroke()),u.selected&&e.restore()}e.restore()},N=async(e,i,f,c,a,v)=>{var u;const T=((u=f.constants)==null?void 0:u.ANNOTATIONLABELHEIGHT)||20,n=T/2|0;e.setTransform(f.pixelRatio,0,0,f.pixelRatio,0,0),e.save(),e.lineWidth=2,e.font="14px sans-serif",e.textAlign="left";for(const w of i){const L=z(w,s.value);if(w===g.value&&c)continue;w.selected?(e.fillStyle=L.selColor||"rgba(51,204,102, 0.8)",e.strokeStyle="white"):(e.fillStyle=L.color||"rgba(51,204,102,0.8)",e.strokeStyle=w===g.value?"white":"rgba(255,255,255,0.8)");const k=Math.round(w.cStart)+1,F=Math.round(w.cEnd);let b=0;for(let C=0;C<w.allOffsets.length;C++)e.fillRect(k-1,w.allOffsets[C]-n,F-k+2,T),w.allOffsets[C]===w.minOffset&&(b=C);const E=w.allOffsets[b];if(["annSelect","annResize-left","annResize-right"].includes(a)&&v==="annotate"&&(e.beginPath(),w.duration!==0&&(e.moveTo(F-3,E-n+3),e.lineTo(F-3,E+n-3)),e.moveTo(k+3,E-n+3),e.lineTo(k+3,E+n-3),e.stroke()),F-k>w.label.length*8+10){e.fillStyle=m.value.indexOf(L.hexColor)>=0?"black":"white";const C=w.linkedPackage?k+30:k+10,H=w.linkedPackage?E+n-n/2:E+n-6;e.fillText(w.label,C,H)}const I=w.linkedPackageDTO;I&&F-k>=30&&await O(e,I,k,E,n,T)}e.restore()},O=async(e,i,f,c,a,v)=>{const T=_({},["objects","view",1,"content"],i),n=p.propOr("","fileType",T),u=new Image;if(n==="PNG"){const{id:w,packageId:L}=T,k=o.config.apiUrl;try{const F=await p.useToken();u.src=`${k}/packages/${L}/files/${w}/presign/?api_key=${F}`,u.complete?e.drawImage(u,f,c-a,27,v):u.addEventListener("load",()=>{e.drawImage(u,f,c-a,27,v)},{once:!0})}catch(F){console.error("Error loading image:",F)}}else u.src=y(),e.drawImage(u,f+5,c-a,20,20)},y=e=>"/path/to/default/icon.png";return{renderAnn:d,hoverOffsets:l,focusedAnn:g,render:(e,i,f,c)=>{var w,L;if(!i){console.warn("TSAnnotationCanvas: annotationsCanvas prop is undefined or null");return}const a=i.getContext("2d"),v=f.getContext("2d");a.setTransform(e.pixelRatio,0,0,e.pixelRatio,0,0),v.setTransform(e.pixelRatio,0,0,e.pixelRatio,0,0),l.value=[(((w=e.constants)==null?void 0:w.ANNOTATIONLABELHEIGHT)||20)/2],a.clearRect(0,0,e.cWidth,e.cHeight),v.clearRect(0,0,e.cWidth,e.cHeight),d.value=[];const T=e.duration&&e.duration>0?e.duration:15e6,n=e.start||0,u=n+T;for(const k of s.value)if(k.visible&&((L=k.annotations)==null?void 0:L.length)>0){const F=k.annotations.filter(b=>{const E=b.start,I=b.end||b.start+(b.duration||0);return E<u&&I>n});F.length>0&&(F.sort((b,E)=>b.start-E.start),d.value.push(...F))}d.value.length!==0&&(x(d.value),M(d.value,e),A(a,d.value,e,c),N(v,d.value,e,!0,e.pointerMode,e.viewerActiveTool),g.value&&N(v,[g.value],e,!1,e.pointerMode,e.viewerActiveTool))},computeRenderOptions:M,renderAnnotationAreas:A,renderAnnotationLabels:N}}function ne(t,o,s,r=null){const d=r||S.inject("viewerStore",null)||p.createViewerStore("default"),l=S.ref([0,0]),g=(e,i)=>{const c=((i==null?void 0:i.ANNOTATIONLABELHEIGHT)||20)/2;for(const a of s.value)if(e>=a-c&&e<=a+c)return!0;return!1},m=(e,i,f)=>{var v;const a=((f==null?void 0:f.ANNOTATIONLABELHEIGHT)||20)/2;for(let T=0;T<(((v=o.value)==null?void 0:v.length)||0);T++){const n=o.value[T];if(n.cStart<e&&n.cEnd>e){if(i>n.cY-a&&i<n.cY+a)return T}else if(n.cStart>e)break}return null},M=(e,i,f)=>{if(!f)return i;switch(i){case"annotate":return e<=f.cStart+10?"annResize-left":e>=f.cEnd-10&&f.duration>0?"annResize-right":"annSelect";case"pointer":return"annSelect";default:return i}};return{mouseDownPosition:l,shouldCheckAnnotationHover:g,findAnnotationAtPosition:m,determinePointerMode:M,resetFocusedAnnotation:()=>{var e;((e=t.value)==null?void 0:e.oldStart)!==void 0&&(t.value.start=t.value.oldStart,t.value.duration=t.value.oldDuration,t.value.end=t.value.start+t.value.duration)},selectFocusedAnnotation:()=>t.value?(d.setActiveAnnotation(t.value),!0):!1,onMouseDown:(e,i,f)=>{t.value&&["annResize-left","annResize-right"].includes(f)&&(t.value.oldStart=t.value.start,t.value.oldDuration=t.value.duration,l.value=[e,i])},onMouseMove:(e,i,f,c,a)=>{let v=f;if(c&&l.value){const T=(e-l.value[0])*a.rsPeriod;switch(f){case"annResize-left":t.value.oldDuration>0?(t.value.start=t.value.oldStart+T,t.value.duration=t.value.oldDuration-T,t.value.end=t.value.start+t.value.duration):t.value.start=t.value.oldStart+T;break;case"annResize-right":t.value.duration=t.value.oldDuration+T,t.value.end=t.value.start+t.value.duration;break}}else{const T=g(i,a.constants);if(v=a.viewerActiveTool,T){const n=m(e,i,a.constants);if(n!==null){const u=t.value,w=o.value[n];(!u||e<t.value.cStart||e>t.value.cEnd)&&(t.value=w),v=M(e,a.viewerActiveTool,t.value)}else t.value=null}else t.value=null,v=a.viewerActiveTool}return v},onMouseUp:(e,i)=>{if(t.value&&["annResize-left","annResize-right"].includes(e)){if(t.value.duration<0){const f=-t.value.duration,c=t.value.start-f;t.value.start=c,t.value.duration=f,t.value.end=c+f}d.setActiveAnnotation(t.value),i("updateAnnotation",t.value)}}}}var P={exports:{}},W;function oe(){if(W)return P.exports;W=1;function t(){}return t.prototype={on:function(o,s,r){var d=this.e||(this.e={});return(d[o]||(d[o]=[])).push({fn:s,ctx:r}),this},once:function(o,s,r){var d=this;function l(){d.off(o,l),s.apply(r,arguments)}return l._=s,this.on(o,l,r)},emit:function(o){var s=[].slice.call(arguments,1),r=((this.e||(this.e={}))[o]||[]).slice(),d=0,l=r.length;for(d;d<l;d++)r[d].fn.apply(r[d].ctx,s);return this},off:function(o,s){var r=this.e||(this.e={}),d=r[o],l=[];if(d&&s)for(var g=0,m=d.length;g<m;g++)d[g].fn!==s&&d[g].fn._!==s&&l.push(d[g]);return l.length?r[o]=l:delete r[o],this}},P.exports=t,P.exports.TinyEmitter=t,P.exports}var D,X;function ae(){if(X)return D;X=1;var t=oe();return D=new t,D}var re=ae();const $=Y.getDefaultExportFromCjs(re),J={$emit:(...t)=>$.emit(...t),$on:(...t)=>$.on(...t),$off:(...t)=>$.off(...t),$once:(...t)=>$.once(...t)};function ie(t=null){const o=t||S.inject("viewerStore",null)||p.createViewerStore("default"),s=S.ref([]),r=S.ref(["#18BA62","#FFBC27","#E94B4B","#0D4EFF","#FF4FFF","#50FFFF","#FFFF4E","#512BAF","#8A6ECF","#389BAD","#187D46","#B12800","#0C2475","#FF5321","#FF99CC","#DCC180","#FF6C21","#000000","#9B9B9B","#00FF00","#FA8072","#808000","#A0522D","#2760FF"]),d=async(O,y)=>{const h=[];if(O.results.length===0)await l({name:"Default",color:"#18BA62",description:"Default Annotation Layer"},null,y);else{for(let e=0;e<O.results.length;e++){const i=O.results[e];let f=i.color||r.value[e%r.value.length];const c={id:i.id,name:i.name,description:i.description,visible:!0,selected:e===0,annotations:[],color:R(f,.7),hexColor:f,bkColor:R(f,.15),selColor:R(f,.9)};h.push(c)}o.setAnnotations(h),y("annLayersInitialized")}s.value=O.results},l=async(O,y,h)=>{var e;if(!((e=y==null?void 0:y.content)!=null&&e.id))return null;try{const i=await p.useToken(),f=`${o.config.apiUrl}/timeseries/${y.content.id}/layers?api_key=${i}`,c=await p.useSendXhr(f,{method:"POST",body:{name:O.name,color:O.color,description:O.description||O.name}}),a={...c,annotations:[],hexColor:c.color,color:R(c.color,.7),bkColor:R(c.color,.15),selColor:R(c.color,.9),visible:!0,selected:!0};return o.createLayer(a),o.setActiveAnnotationLayer(a.id),J.$emit("toast",{detail:{msg:`'${a.name}' Layer Created`}}),a}catch(i){throw p.useHandleXhrError(i),i}finally{h&&h("closeAnnotationLayerWindow")}};return{annLayerInfo:s,defaultColors:r,initializeLayers:d,createAnnotationLayer:l,updateLayerVisibility:(O,y)=>{const h=o.viewerAnnotations.find(e=>e.id===O);h&&(h.visible=y,o.updateLayer(h))},selectLayer:O=>{o.viewerAnnotations.forEach(h=>{h.selected=!1,o.updateLayer(h)});const y=o.viewerAnnotations.find(h=>h.id===O);y&&(y.selected=!0,o.updateLayer(y),o.setActiveAnnotationLayer(O))},deleteLayer:async(O,y)=>{var h;if(!((h=y==null?void 0:y.content)!=null&&h.id))return null;try{const e=await p.useToken(),i=`${o.config.apiUrl}/timeseries/${y.content.id}/layers/${O}?api_key=${e}`;await p.useSendXhr(i,{method:"DELETE"}),o.removeLayer(O),J.$emit("toast",{detail:{msg:"Layer deleted successfully"}})}catch(e){throw p.useHandleXhrError(e),e}},updateLayerColor:async(O,y,h)=>{var e;if(!((e=h==null?void 0:h.content)!=null&&e.id))return null;try{const i=await p.useToken(),f=`${o.config.apiUrl}/timeseries/${h.content.id}/layers/${O}?api_key=${i}`,c=await p.useSendXhr(f,{method:"PUT",body:{color:y}}),a=o.viewerAnnotations.find(v=>v.id===O);return a&&(a.hexColor=y,a.color=R(y,.7),a.bkColor=R(y,.15),a.selColor=R(y,.9),o.updateLayer(a)),c}catch(i){throw p.useHandleXhrError(i),i}},loadLayers:async(O,y)=>{var h;if(!((h=O==null?void 0:O.content)!=null&&h.id))return null;try{const e=await p.useToken(),i=`${o.config.apiUrl}/timeseries/${O.content.id}/layers?api_key=${e}`,f=await p.useSendXhr(i);return await d(f,y),f}catch(e){throw p.useHandleXhrError(e),e}}}}const se=["width","height"],le={__name:"TSAnnotationCanvas",props:{cWidth:{type:Number,default:0},cHeight:Number,start:Number,duration:Number,tsEnd:Number,rsPeriod:Number,pixelRatio:Number,constants:{type:Object,default:()=>({ANNOTATIONLABELHEIGHT:20,XOFFSET:0,LIMITANNFETCH:500})},pointerMode:String,annotationsCanvas:[HTMLCanvasElement,Object],activeViewer:{type:Object,required:!0},viewerActiveTool:String},emits:["annLayersInitialized","annotationsReceived","closeAnnotationLayerWindow","updateAnnotation"],setup(t,{expose:o,emit:s}){const r=t,d=s,l=S.ref(null),{checkAnnotationRange:g,findNextAnnotation:m,findPreviousAnnotation:M}=ee(),{renderAnn:A,hoverOffsets:N,focusedAnn:O,render:y}=te(),{resetFocusedAnnotation:h,selectFocusedAnnotation:e,onMouseDown:i,onMouseMove:f,onMouseUp:c}=ne(O,A,N),{createAnnotationLayer:a,loadLayers:v}=ie(),T=S.computed(()=>r.cHeight-20),n=S.computed(()=>({width:r.cWidth+"px",height:T.value+"px"})),u=()=>{y(r,r.annotationsCanvas,l.value,T.value)},w=(E,I)=>{i(E,I,r.pointerMode)},L=(E,I,C,H)=>f(E,I,C,H,r),k=()=>{c(r.pointerMode,d)},F=()=>{e()&&S.nextTick(()=>u())},b=async E=>{try{await a(E,r.activeViewer,d)}catch(I){console.error("Error creating layer:",I)}};return S.watch(()=>r.activeViewer,async E=>{try{await v(E,d),await g(r.start,r.start+r.duration,r,E,d)}catch(I){console.error("Error loading annotations for new viewer:",I)}}),S.onMounted(async()=>{try{await v(r.activeViewer,d),await g(r.start,r.start+r.duration,r,r.activeViewer,d)}catch(E){console.error("Error initializing annotations:",E)}}),o({render:u,resetFocusedAnnotation:h,findNextAnnotation:m,findPreviousAnnotation:M,checkAnnotationRange:(E,I)=>g(E,I,r,r.activeViewer,d),selectFocusedAnn:F,createAnnotationLayer:b,onMouseDown:w,onMouseMove:L,onMouseUp:k}),(E,I)=>(S.openBlock(),S.createElementBlock("canvas",{id:"annLabelArea",ref_key:"annLabelArea",ref:l,class:"timeseries-annotation-canvas",width:S.unref(G)(t.cWidth,t.pixelRatio,0),height:S.unref(G)(T.value,t.pixelRatio,0),style:S.normalizeStyle(n.value)},null,12,se))}},ue=p._export_sfc(le,[["__scopeId","data-v-2261f569"]]);exports.default=ue;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { inject as _, ref as C, computed as K, watch as ot, onMounted as rt, openBlock as it, createElementBlock as st, normalizeStyle as lt, unref as Q, nextTick as ut } from "vue";
|
|
2
|
-
import { b as et, o as ct, n as ft, q as dt, r as nt, m as ht, h as U, p as j, u as N, j as $, i as P, g as vt } from "./index-
|
|
2
|
+
import { b as et, o as ct, n as ft, q as dt, r as nt, m as ht, h as U, p as j, u as N, j as $, i as P, g as vt } from "./index-Bdjw6_YT.js";
|
|
3
3
|
import { storeToRefs as at } from "pinia";
|
|
4
|
-
import { f as gt, h as yt } from "./TSViewerCanvas-
|
|
4
|
+
import { f as gt, h as yt } from "./TSViewerCanvas-BZ25qMRm.js";
|
|
5
5
|
import { g as mt } from "./_commonjsHelpers-DaMA6jEr.js";
|
|
6
6
|
var Tt = /* @__PURE__ */ et(function(a, s) {
|
|
7
7
|
return a.map(function(r) {
|
|
@@ -2,9 +2,9 @@ import { b as Ce, l as fn, j as Ct, k as he, c as Pe, _ as Be, E as ve, w as xa,
|
|
|
2
2
|
import { u as Hn, a as Un, E as Wn } from "./el-overlay-4ljdPakB.js";
|
|
3
3
|
import { d as Ra, e as Ia, f as Oa, u as hn, h as Kn, i as zn, c as pn, j as jn, k as mn, l as qn, m as Gn, o as Zn, n as Jn, E as Qn, g as ut, p as Xn, q as er, r as tr, T as ar, C as Ma, s as nr, t as rr, a as sr, b as or } from "./el-input-v5gK8U8C.js";
|
|
4
4
|
import { computed as B, inject as Ve, ref as X, useSlots as ua, Text as lr, defineComponent as we, openBlock as T, createBlock as ue, resolveDynamicComponent as ze, mergeProps as Rt, unref as e, withCtx as re, createElementBlock as Z, Fragment as ye, renderSlot as fe, normalizeClass as $, createCommentVNode as oe, provide as xt, reactive as bn, toRef as Ue, normalizeStyle as sa, createElementVNode as j, useAttrs as Ya, watch as De, nextTick as Ye, onBeforeUnmount as gn, withModifiers as Ze, toDisplayString as pe, onMounted as yn, renderList as _e, createTextVNode as et, withDirectives as Oe, createVNode as G, Transition as ir, withKeys as Je, vShow as Xe, getCurrentInstance as kn, defineAsyncComponent as ur } from "vue";
|
|
5
|
-
import { g as cr, h as dr, p as Ka } from "./index-
|
|
5
|
+
import { g as cr, h as dr, p as Ka } from "./index-Bdjw6_YT.js";
|
|
6
6
|
import { storeToRefs as fr } from "pinia";
|
|
7
|
-
import { I as vr } from "./IconSelection-
|
|
7
|
+
import { I as vr } from "./IconSelection-DFoRgH-I.js";
|
|
8
8
|
import { g as nt } from "./_commonjsHelpers-DaMA6jEr.js";
|
|
9
9
|
import { v as za } from "./index-BJOVbX31.js";
|
|
10
10
|
const wn = Symbol("buttonGroupContextKey"), hr = (a, n) => {
|
|
@@ -5004,7 +5004,7 @@ const $o = xa(Co), Po = { slot: "body" }, _o = { class: "select-wrapper" }, Vo =
|
|
|
5004
5004
|
},
|
|
5005
5005
|
emits: ["closeWindow", "createUpdateAnnotation"],
|
|
5006
5006
|
setup(a, { emit: n }) {
|
|
5007
|
-
const t = ur(() => import("./BFLibraryButton-
|
|
5007
|
+
const t = ur(() => import("./BFLibraryButton-EjjzcmnE.js")), r = a, s = X(!1);
|
|
5008
5008
|
De(() => r.visible, (x) => {
|
|
5009
5009
|
if (s.value = x, !x) return;
|
|
5010
5010
|
const V = u.value.start / 1e3, O = u.value.end / 1e3;
|