@pennsieve-viz/tsviewer 1.1.3 → 1.1.4

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 (27) hide show
  1. package/dist/{BFLibraryButton-D2RKhXw_.js → BFLibraryButton-BGGqQKq4.js} +1 -1
  2. package/dist/{BFLibraryButton-B6YHsKZ1.cjs → BFLibraryButton-BzmZv-Jf.cjs} +1 -1
  3. package/dist/{IconSelection-CEvop8gO.cjs → IconSelection-BYGLWAS8.cjs} +1 -1
  4. package/dist/{IconSelection-BdrQ0hpx.js → IconSelection-CwLxZy1O.js} +1 -1
  5. package/dist/{TSAnnotationCanvas-AGRX_hmt.js → TSAnnotationCanvas-CIR0Qiut.js} +3 -3
  6. package/dist/{TSAnnotationCanvas-4nqcP6ZI.cjs → TSAnnotationCanvas-DuPSGN3a.cjs} +1 -1
  7. package/dist/{TSAnnotationModal-hodisC6u.js → TSAnnotationModal-0TMG3DfX.js} +3 -3
  8. package/dist/{TSAnnotationModal-EGmExCTg.cjs → TSAnnotationModal-Bo93J_7J.cjs} +1 -1
  9. package/dist/{TSFilterModal-I198XCMu.js → TSFilterModal-6PdlowWy.js} +3 -3
  10. package/dist/{TSFilterModal-DNCB3Dtr.cjs → TSFilterModal-C5xGB7dT.cjs} +1 -1
  11. package/dist/{TSScrubber-C0-NGaoA.cjs → TSScrubber-BLiZehE0.cjs} +1 -1
  12. package/dist/{TSScrubber-2aaxezaR.js → TSScrubber-MJwNwlJE.js} +1 -1
  13. package/dist/{TSViewerCanvas-DQcrVaQe.cjs → TSViewerCanvas-D1ikXlFa.cjs} +2 -2
  14. package/dist/{TSViewerCanvas-Bn8wSlLN.js → TSViewerCanvas-cnqMxbgu.js} +2 -2
  15. package/dist/{TSViewerLayerWindow-B4ksY471.cjs → TSViewerLayerWindow-DdzfFHye.cjs} +1 -1
  16. package/dist/{TSViewerLayerWindow-D2XxxBk5.js → TSViewerLayerWindow-Ukyb1-Nn.js} +2 -2
  17. package/dist/{TSViewerToolbar-ChfPZ-S1.cjs → TSViewerToolbar-BjFJdfIc.cjs} +1 -1
  18. package/dist/{TSViewerToolbar-bzUSZZ_i.js → TSViewerToolbar-DDliL8y9.js} +1 -1
  19. package/dist/{TsAnnotationDeleteDialog-DCENXkMN.js → TsAnnotationDeleteDialog-BStIn0ih.js} +3 -3
  20. package/dist/{TsAnnotationDeleteDialog-CqpwsxDS.cjs → TsAnnotationDeleteDialog-Y9A8aW7R.cjs} +1 -1
  21. package/dist/{index-CnKz29Cn.js → index-CpDw-ar8.js} +3 -3
  22. package/dist/{index-CWvlkH0A.cjs → index-fSDThfLF.cjs} +1 -1
  23. package/dist/index.cjs +1 -1
  24. package/dist/index.js +1 -1
  25. package/dist/{pathOr-BqZ0JqZk.cjs → pathOr-Cwt5Jqx7.cjs} +1 -1
  26. package/dist/{pathOr-CIhHlnzf.js → pathOr-DgmZGaBt.js} +1 -1
  27. package/package.json +1 -1
@@ -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-CnKz29Cn.js";
2
+ import { g as d } from "./index-CpDw-ar8.js";
3
3
  const c = {
4
4
  name: "BfLibraryButton",
5
5
  props: {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),r=require("./index-CWvlkH0A.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
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),r=require("./index-fSDThfLF.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 +1 @@
1
- "use strict";const t=require("vue"),o=require("./index-CWvlkH0A.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
+ "use strict";const t=require("vue"),o=require("./index-fSDThfLF.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,5 +1,5 @@
1
1
  import { openBlock as o, createElementBlock as h, createElementVNode as n } from "vue";
2
- import { g as r } from "./index-CnKz29Cn.js";
2
+ import { g as r } from "./index-CpDw-ar8.js";
3
3
  const i = {
4
4
  name: "IconSelection",
5
5
  props: {
@@ -1,8 +1,8 @@
1
1
  import { inject as _, ref as C, computed as K, watch as ne, onMounted as oe, openBlock as ae, createElementBlock as re, normalizeStyle as ie, unref as Q, nextTick as se } from "vue";
2
- import { o as le, m as ue, h as U, p as j, u as N, j as $, i as P, g as ce } from "./index-CnKz29Cn.js";
2
+ import { o as le, m as ue, h as U, p as j, u as N, j as $, i as P, g as ce } from "./index-CpDw-ar8.js";
3
3
  import { storeToRefs as te } from "pinia";
4
- import { f as fe, h as de } from "./TSViewerCanvas-Bn8wSlLN.js";
5
- import { p as G } from "./pathOr-CIhHlnzf.js";
4
+ import { f as fe, h as de } from "./TSViewerCanvas-cnqMxbgu.js";
5
+ import { p as G } from "./pathOr-DgmZGaBt.js";
6
6
  import { g as he } from "./_commonjsHelpers-DaMA6jEr.js";
7
7
  const M = (t, a) => {
8
8
  let u;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const S=require("vue"),p=require("./index-CWvlkH0A.cjs"),K=require("pinia"),Q=require("./TSViewerCanvas-DQcrVaQe.cjs"),B=require("./pathOr-BqZ0JqZk.cjs"),Y=require("./_commonjsHelpers-DKOUU3wS.cjs"),R=(t,a)=>{let u;if(/^#([A-Fa-f0-9]{3}){1,2}$/.test(t))return u=t.substring(1).split(""),u.length===3&&(u=[u[0],u[0],u[1],u[1],u[2],u[2]]),u="0x"+u.join(""),"rgba("+[u>>16&255,u>>8&255,u&255].join(",")+","+a+")";throw new Error("Bad Hex")},Z=t=>{t.sort((a,u)=>a.start<u.start?-1:a.start>u.start?1:0)},q=(t,a)=>{const u=(t==null?void 0:t.layer_id)||0;return p.defaultTo({},Q.find(p.propEq("id",u),a))},z=(t,a,u,i=0,d=!1)=>{let c;return d?c=j(t,a,i,t.length-1,u):c=_(t,a,i,t.length-1,u),c===-1?c=0:c<0&&(c=-c-2),c},_=(t,a,u,i,d)=>{if(i<u){let y=i>=0?i:-i-2;if(y===-1)return y;const m=t[y].start;for(;y>=0&&t[y].start===m;)y--;return-y-2}const c=parseInt((u+i)/2);if(t[c].start>a)return _(t,a,u,c-1,d);if(t[c].start<a)return _(t,a,c+1,i,d);{let y=c;if(d){for(;y>=0&&t[y].start===a;)y--;y++}else{for(;y<t.length&&t[y].start===a;)y++;y--}return y}},j=(t,a,u,i,d)=>{if(i<u){let m=i>=0?i:-i-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 c=parseInt((u+i)/2),y=t[c].start+t[c].duration;if(y>a)return j(t,a,u,c-1,d);if(y<a)return j(t,a,c+1,i,d);{let m=c;if(d){for(;m>=0&&t[m].start+t[m].duration===a;)m--;m++}else{for(;m<t.length&&t[m].start+t[m].duration===a;)m++;m--}return m}},G=(t,a,u=0)=>a*(t+u);function V(t=null){const a=t||S.inject("viewerStore",null)||p.createViewerStore("default"),{viewerChannels:u,viewerAnnotations:i,viewerMontageScheme:d}=K.storeToRefs(a),c=S.ref([]),y=S.ref([]),m=g=>{const h=d.value!=="NOT_MONTAGED";let e=p.propOr("","id",g);if(h){const r=e.split("_");e=r.length?Q.head(r):e}return e},M=async(g,h,e,r,f)=>{const l=[];l.push({start:g,end:e.tsEnd});let o=0;for(let n=0;n<c.value.length;n++){const s=c.value[n];if(g>=s.start&&h<=s.end)return;if(l[0].start>h)break;if(s.start<=l[0].start&&s.end>=g)o=n+1,l[0].start=s.end;else if(s.start>l[0].start){o=n;break}}const v=i.value.reduce((n,s)=>n+s.annotations.length,0);if(l[0].start>=l[0].end&&v>0)return;const T=0;for(let n=o;n<c.value.length;n++)if(c.value[n].start>=l[T].start)if(l[T].end=c.value[n].start,c.value[n].end<h)l.push({start:c.value[n].end,end:e.tsEnd});else break;if(!(l[0].start>=l[0].end&&v>0)&&l.length>0){u.value.map(n=>m(n));for(const n of l){for(const s of i.value){if(!s.id){console.warn("Layer ID is undefined, skipping annotation request for layer:",s);continue}const w=Math.floor(n.end),L={id:r.content.id,start:Math.floor(n.start),end:w,layerId:s.id,limit:e.constants.LIMITANNFETCH};try{const k=await p.useToken(),b=`${a.config.apiUrl}/timeseries/${r.content.id}/layers/${s.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)}}c.value.push({start:Math.floor(n.start),end:Math.floor(n.end)})}c.value.sort((n,s)=>n.start<s.start?-1:n.start>s.start?1:0)}},A=async(g,h)=>{const e=p.propOr({},"linkedPackages",g);let r=B.pathOr([],["annotations","results"],g);if(r.length>=500){let l=0;for(const o of r)o.start>l&&(l=o.start);for(const o of c.value)if(o.end>l&&o.start<l){o.end=l;break}}const f=d.value!=="NOT_MONTAGED";if(r.length>0){const l=r.map(o=>{const v={name:"",id:o.id,label:o.label,description:o.description,start:o.start,duration:o.end-o.start,end:o.end,cStart:null,cEnd:null,selected:!1,channelIds:o.channelIds,allChannels:!1,layer_id:o.layerId,userId:o.userId};if(o.linkedPackage){const T=o.linkedPackage;v.linkedPackage=B.pathOr("",["content","id"],e[T]),v.linkedPackageDTO=e[T]}return(!f&&v.channelIds.length===u.value.length||f&&v.channelIds.length>u.value.length)&&(v.allChannels=!0),v});i.value.forEach(o=>{const v=o.annotations,T=l.filter(n=>o.id===n.layer_id);o.annotations=v.concat(T),a.updateLayer(o)})}h("annotationsReceived")};return{cachedAnnRange:c,annLayerInfo:y,checkAnnotationRange:M,findNextAnnotation:g=>{const h=a.getViewerActiveLayer(),e=z(h.annotations,g,!1);return e<h.annotations.length?h.annotations[e].start>g?h.annotations[e]:h.annotations[e+1]||h.annotations[e]:h.annotations[e]},findPreviousAnnotation:g=>{const h=a.getViewerActiveLayer(),e=z(h.annotations,g,!0);return h.annotations[e].start<g?h.annotations[e]:e>0?h.annotations[e-1]:h.annotations[e]},getChannelId:m}}function x(t=null){const a=t||S.inject("viewerStore",null)||p.createViewerStore("default"),{viewerAnnotations:u,viewerChannels:i}=K.storeToRefs(a),d=S.ref([]),c=S.ref([]),y=S.ref(null),m=S.ref(["#FFFF4E"]),M=(e,r)=>{var v,T;const l=(((v=r.constants)==null?void 0:v.ANNOTATIONLABELHEIGHT)||20)/2|0,o=((T=r.constants)==null?void 0:T.XOFFSET)||0;for(const n of e){let s=n.start,w=n.duration;n.duration<0&&(s=n.start+n.duration,w=-n.duration);const L=o+(s-r.start)/r.rsPeriod;if(n.cStart=L|0,n.duration!==0){const k=o+(s+w-r.start)/r.rsPeriod;n.cEnd=k|0}else n.cEnd=n.cStart+r.cWidth/40|0;if(n.allChannels)n.allOffsets=[l],n.cY=l;else{n.allOffsets=[],n.minOffset=r.cHeight|0,n.maxOffset=0;const k=i.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}}c.value.indexOf(n.minOffset)<0&&c.value.push(n.minOffset),n.cY=n.minOffset}}},A=(e,r,f,l)=>{var T,n;const o=((T=f.constants)==null?void 0:T.ANNOTATIONLABELHEIGHT)||20,v=o/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 s of r){const w=q(s,u.value);s.selected&&(e.save(),e.strokeStyle=w.selColor,e.fillStyle=w.bkColor,e.lineWidth=1);const L=Math.round(s.cStart)+.5,k=Math.round(s.cEnd)+.5;s.allChannels?s.duration===0?(e.beginPath(),e.moveTo(L+1,o),e.lineTo(L,l),e.stroke()):(e.fillRect(L,o,k-L,l-o),e.beginPath(),e.moveTo(L,o),e.lineTo(L,l),e.moveTo(k,o),e.lineTo(k,l),e.stroke()):((n=s==null?void 0:s.channelIds)==null?void 0:n.length)===1?s.duration===0&&(e.beginPath(),e.moveTo(L,s.minOffset+v),e.lineTo(L,s.minOffset+v+8),e.stroke()):s.duration===0?(e.beginPath(),e.moveTo(L,s.minOffset+v),e.lineTo(L,s.maxOffset-v),e.stroke()):(e.fillRect(L-1,s.minOffset+v,k-L+1,s.maxOffset-s.minOffset-o),e.beginPath(),e.moveTo(L,s.minOffset+v),e.lineTo(L,s.maxOffset-v),e.moveTo(k,s.minOffset+v),e.lineTo(k,s.maxOffset-v),e.stroke()),s.selected&&e.restore()}e.restore()},N=async(e,r,f,l,o,v)=>{var s;const T=((s=f.constants)==null?void 0:s.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 r){const L=q(w,u.value);if(w===y.value&&l)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===y.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(o)&&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,r,f,l,o,v)=>{const T=B.pathOr({},["objects","view",1,"content"],r),n=p.propOr("","fileType",T),s=new Image;if(n==="PNG"){const{id:w,packageId:L}=T,k=a.config.apiUrl;try{const F=await p.useToken();s.src=`${k}/packages/${L}/files/${w}/presign/?api_key=${F}`,s.complete?e.drawImage(s,f,l-o,27,v):s.addEventListener("load",()=>{e.drawImage(s,f,l-o,27,v)},{once:!0})}catch(F){console.error("Error loading image:",F)}}else s.src=g(),e.drawImage(s,f+5,l-o,20,20)},g=e=>"/path/to/default/icon.png";return{renderAnn:d,hoverOffsets:c,focusedAnn:y,render:(e,r,f,l)=>{var w,L;if(!r){console.warn("TSAnnotationCanvas: annotationsCanvas prop is undefined or null");return}const o=r.getContext("2d"),v=f.getContext("2d");o.setTransform(e.pixelRatio,0,0,e.pixelRatio,0,0),v.setTransform(e.pixelRatio,0,0,e.pixelRatio,0,0),c.value=[(((w=e.constants)==null?void 0:w.ANNOTATIONLABELHEIGHT)||20)/2],o.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,s=n+T;for(const k of u.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<s&&I>n});F.length>0&&(F.sort((b,E)=>b.start-E.start),d.value.push(...F))}d.value.length!==0&&(Z(d.value),M(d.value,e),A(o,d.value,e,l),N(v,d.value,e,!0,e.pointerMode,e.viewerActiveTool),y.value&&N(v,[y.value],e,!1,e.pointerMode,e.viewerActiveTool))},computeRenderOptions:M,renderAnnotationAreas:A,renderAnnotationLabels:N}}function ee(t,a,u,i=null){const d=i||S.inject("viewerStore",null)||p.createViewerStore("default"),c=S.ref([0,0]),y=(e,r)=>{const l=((r==null?void 0:r.ANNOTATIONLABELHEIGHT)||20)/2;for(const o of u.value)if(e>=o-l&&e<=o+l)return!0;return!1},m=(e,r,f)=>{var v;const o=((f==null?void 0:f.ANNOTATIONLABELHEIGHT)||20)/2;for(let T=0;T<(((v=a.value)==null?void 0:v.length)||0);T++){const n=a.value[T];if(n.cStart<e&&n.cEnd>e){if(r>n.cY-o&&r<n.cY+o)return T}else if(n.cStart>e)break}return null},M=(e,r,f)=>{if(!f)return r;switch(r){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 r}};return{mouseDownPosition:c,shouldCheckAnnotationHover:y,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,r,f)=>{t.value&&["annResize-left","annResize-right"].includes(f)&&(t.value.oldStart=t.value.start,t.value.oldDuration=t.value.duration,c.value=[e,r])},onMouseMove:(e,r,f,l,o)=>{let v=f;if(l&&c.value){const T=(e-c.value[0])*o.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=y(r,o.constants);if(v=o.viewerActiveTool,T){const n=m(e,r,o.constants);if(n!==null){const s=t.value,w=a.value[n];(!s||e<t.value.cStart||e>t.value.cEnd)&&(t.value=w),v=M(e,o.viewerActiveTool,t.value)}else t.value=null}else t.value=null,v=o.viewerActiveTool}return v},onMouseUp:(e,r)=>{if(t.value&&["annResize-left","annResize-right"].includes(e)){if(t.value.duration<0){const f=-t.value.duration,l=t.value.start-f;t.value.start=l,t.value.duration=f,t.value.end=l+f}d.setActiveAnnotation(t.value),r("updateAnnotation",t.value)}}}}var P={exports:{}},W;function te(){if(W)return P.exports;W=1;function t(){}return t.prototype={on:function(a,u,i){var d=this.e||(this.e={});return(d[a]||(d[a]=[])).push({fn:u,ctx:i}),this},once:function(a,u,i){var d=this;function c(){d.off(a,c),u.apply(i,arguments)}return c._=u,this.on(a,c,i)},emit:function(a){var u=[].slice.call(arguments,1),i=((this.e||(this.e={}))[a]||[]).slice(),d=0,c=i.length;for(d;d<c;d++)i[d].fn.apply(i[d].ctx,u);return this},off:function(a,u){var i=this.e||(this.e={}),d=i[a],c=[];if(d&&u)for(var y=0,m=d.length;y<m;y++)d[y].fn!==u&&d[y].fn._!==u&&c.push(d[y]);return c.length?i[a]=c:delete i[a],this}},P.exports=t,P.exports.TinyEmitter=t,P.exports}var D,X;function ne(){if(X)return D;X=1;var t=te();return D=new t,D}var oe=ne();const $=Y.getDefaultExportFromCjs(oe),J={$emit:(...t)=>$.emit(...t),$on:(...t)=>$.on(...t),$off:(...t)=>$.off(...t),$once:(...t)=>$.once(...t)};function ae(t=null){const a=t||S.inject("viewerStore",null)||p.createViewerStore("default"),u=S.ref([]),i=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,g)=>{const h=[];if(O.results.length===0)await c({name:"Default",color:"#18BA62",description:"Default Annotation Layer"},null,g);else{for(let e=0;e<O.results.length;e++){const r=O.results[e];let f=r.color||i.value[e%i.value.length];const l={id:r.id,name:r.name,description:r.description,visible:!0,selected:e===0,annotations:[],color:R(f,.7),hexColor:f,bkColor:R(f,.15),selColor:R(f,.9)};h.push(l)}a.setAnnotations(h),g("annLayersInitialized")}u.value=O.results},c=async(O,g,h)=>{var e;if(!((e=g==null?void 0:g.content)!=null&&e.id))return null;try{const r=await p.useToken(),f=`${a.config.apiUrl}/timeseries/${g.content.id}/layers?api_key=${r}`,l=await p.useSendXhr(f,{method:"POST",body:{name:O.name,color:O.color,description:O.description||O.name}}),o={...l,annotations:[],hexColor:l.color,color:R(l.color,.7),bkColor:R(l.color,.15),selColor:R(l.color,.9),visible:!0,selected:!0};return a.createLayer(o),a.setActiveAnnotationLayer(o.id),J.$emit("toast",{detail:{msg:`'${o.name}' Layer Created`}}),o}catch(r){throw p.useHandleXhrError(r),r}finally{h&&h("closeAnnotationLayerWindow")}};return{annLayerInfo:u,defaultColors:i,initializeLayers:d,createAnnotationLayer:c,updateLayerVisibility:(O,g)=>{const h=a.viewerAnnotations.find(e=>e.id===O);h&&(h.visible=g,a.updateLayer(h))},selectLayer:O=>{a.viewerAnnotations.forEach(h=>{h.selected=!1,a.updateLayer(h)});const g=a.viewerAnnotations.find(h=>h.id===O);g&&(g.selected=!0,a.updateLayer(g),a.setActiveAnnotationLayer(O))},deleteLayer:async(O,g)=>{var h;if(!((h=g==null?void 0:g.content)!=null&&h.id))return null;try{const e=await p.useToken(),r=`${a.config.apiUrl}/timeseries/${g.content.id}/layers/${O}?api_key=${e}`;await p.useSendXhr(r,{method:"DELETE"}),a.removeLayer(O),J.$emit("toast",{detail:{msg:"Layer deleted successfully"}})}catch(e){throw p.useHandleXhrError(e),e}},updateLayerColor:async(O,g,h)=>{var e;if(!((e=h==null?void 0:h.content)!=null&&e.id))return null;try{const r=await p.useToken(),f=`${a.config.apiUrl}/timeseries/${h.content.id}/layers/${O}?api_key=${r}`,l=await p.useSendXhr(f,{method:"PUT",body:{color:g}}),o=a.viewerAnnotations.find(v=>v.id===O);return o&&(o.hexColor=g,o.color=R(g,.7),o.bkColor=R(g,.15),o.selColor=R(g,.9),a.updateLayer(o)),l}catch(r){throw p.useHandleXhrError(r),r}},loadLayers:async(O,g)=>{var h;if(!((h=O==null?void 0:O.content)!=null&&h.id))return null;try{const e=await p.useToken(),r=`${a.config.apiUrl}/timeseries/${O.content.id}/layers?api_key=${e}`,f=await p.useSendXhr(r);return await d(f,g),f}catch(e){throw p.useHandleXhrError(e),e}}}}const re=["width","height"],ie={__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:a,emit:u}){const i=t,d=u,c=S.ref(null),{checkAnnotationRange:y,findNextAnnotation:m,findPreviousAnnotation:M}=V(),{renderAnn:A,hoverOffsets:N,focusedAnn:O,render:g}=x(),{resetFocusedAnnotation:h,selectFocusedAnnotation:e,onMouseDown:r,onMouseMove:f,onMouseUp:l}=ee(O,A,N),{createAnnotationLayer:o,loadLayers:v}=ae(),T=S.computed(()=>i.cHeight-20),n=S.computed(()=>({width:i.cWidth+"px",height:T.value+"px"})),s=()=>{g(i,i.annotationsCanvas,c.value,T.value)},w=(E,I)=>{r(E,I,i.pointerMode)},L=(E,I,C,H)=>f(E,I,C,H,i),k=()=>{l(i.pointerMode,d)},F=()=>{e()&&S.nextTick(()=>s())},b=async E=>{try{await o(E,i.activeViewer,d)}catch(I){console.error("Error creating layer:",I)}};return S.watch(()=>i.activeViewer,async E=>{try{await v(E,d),await y(i.start,i.start+i.duration,i,E,d)}catch(I){console.error("Error loading annotations for new viewer:",I)}}),S.onMounted(async()=>{try{await v(i.activeViewer,d),await y(i.start,i.start+i.duration,i,i.activeViewer,d)}catch(E){console.error("Error initializing annotations:",E)}}),a({render:s,resetFocusedAnnotation:h,findNextAnnotation:m,findPreviousAnnotation:M,checkAnnotationRange:(E,I)=>y(E,I,i,i.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:c,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,re))}},se=p._export_sfc(ie,[["__scopeId","data-v-2261f569"]]);exports.default=se;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const S=require("vue"),p=require("./index-fSDThfLF.cjs"),K=require("pinia"),Q=require("./TSViewerCanvas-D1ikXlFa.cjs"),B=require("./pathOr-Cwt5Jqx7.cjs"),Y=require("./_commonjsHelpers-DKOUU3wS.cjs"),R=(t,a)=>{let u;if(/^#([A-Fa-f0-9]{3}){1,2}$/.test(t))return u=t.substring(1).split(""),u.length===3&&(u=[u[0],u[0],u[1],u[1],u[2],u[2]]),u="0x"+u.join(""),"rgba("+[u>>16&255,u>>8&255,u&255].join(",")+","+a+")";throw new Error("Bad Hex")},Z=t=>{t.sort((a,u)=>a.start<u.start?-1:a.start>u.start?1:0)},q=(t,a)=>{const u=(t==null?void 0:t.layer_id)||0;return p.defaultTo({},Q.find(p.propEq("id",u),a))},z=(t,a,u,i=0,d=!1)=>{let c;return d?c=j(t,a,i,t.length-1,u):c=_(t,a,i,t.length-1,u),c===-1?c=0:c<0&&(c=-c-2),c},_=(t,a,u,i,d)=>{if(i<u){let y=i>=0?i:-i-2;if(y===-1)return y;const m=t[y].start;for(;y>=0&&t[y].start===m;)y--;return-y-2}const c=parseInt((u+i)/2);if(t[c].start>a)return _(t,a,u,c-1,d);if(t[c].start<a)return _(t,a,c+1,i,d);{let y=c;if(d){for(;y>=0&&t[y].start===a;)y--;y++}else{for(;y<t.length&&t[y].start===a;)y++;y--}return y}},j=(t,a,u,i,d)=>{if(i<u){let m=i>=0?i:-i-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 c=parseInt((u+i)/2),y=t[c].start+t[c].duration;if(y>a)return j(t,a,u,c-1,d);if(y<a)return j(t,a,c+1,i,d);{let m=c;if(d){for(;m>=0&&t[m].start+t[m].duration===a;)m--;m++}else{for(;m<t.length&&t[m].start+t[m].duration===a;)m++;m--}return m}},G=(t,a,u=0)=>a*(t+u);function V(t=null){const a=t||S.inject("viewerStore",null)||p.createViewerStore("default"),{viewerChannels:u,viewerAnnotations:i,viewerMontageScheme:d}=K.storeToRefs(a),c=S.ref([]),y=S.ref([]),m=g=>{const h=d.value!=="NOT_MONTAGED";let e=p.propOr("","id",g);if(h){const r=e.split("_");e=r.length?Q.head(r):e}return e},M=async(g,h,e,r,f)=>{const l=[];l.push({start:g,end:e.tsEnd});let o=0;for(let n=0;n<c.value.length;n++){const s=c.value[n];if(g>=s.start&&h<=s.end)return;if(l[0].start>h)break;if(s.start<=l[0].start&&s.end>=g)o=n+1,l[0].start=s.end;else if(s.start>l[0].start){o=n;break}}const v=i.value.reduce((n,s)=>n+s.annotations.length,0);if(l[0].start>=l[0].end&&v>0)return;const T=0;for(let n=o;n<c.value.length;n++)if(c.value[n].start>=l[T].start)if(l[T].end=c.value[n].start,c.value[n].end<h)l.push({start:c.value[n].end,end:e.tsEnd});else break;if(!(l[0].start>=l[0].end&&v>0)&&l.length>0){u.value.map(n=>m(n));for(const n of l){for(const s of i.value){if(!s.id){console.warn("Layer ID is undefined, skipping annotation request for layer:",s);continue}const w=Math.floor(n.end),L={id:r.content.id,start:Math.floor(n.start),end:w,layerId:s.id,limit:e.constants.LIMITANNFETCH};try{const k=await p.useToken(),b=`${a.config.apiUrl}/timeseries/${r.content.id}/layers/${s.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)}}c.value.push({start:Math.floor(n.start),end:Math.floor(n.end)})}c.value.sort((n,s)=>n.start<s.start?-1:n.start>s.start?1:0)}},A=async(g,h)=>{const e=p.propOr({},"linkedPackages",g);let r=B.pathOr([],["annotations","results"],g);if(r.length>=500){let l=0;for(const o of r)o.start>l&&(l=o.start);for(const o of c.value)if(o.end>l&&o.start<l){o.end=l;break}}const f=d.value!=="NOT_MONTAGED";if(r.length>0){const l=r.map(o=>{const v={name:"",id:o.id,label:o.label,description:o.description,start:o.start,duration:o.end-o.start,end:o.end,cStart:null,cEnd:null,selected:!1,channelIds:o.channelIds,allChannels:!1,layer_id:o.layerId,userId:o.userId};if(o.linkedPackage){const T=o.linkedPackage;v.linkedPackage=B.pathOr("",["content","id"],e[T]),v.linkedPackageDTO=e[T]}return(!f&&v.channelIds.length===u.value.length||f&&v.channelIds.length>u.value.length)&&(v.allChannels=!0),v});i.value.forEach(o=>{const v=o.annotations,T=l.filter(n=>o.id===n.layer_id);o.annotations=v.concat(T),a.updateLayer(o)})}h("annotationsReceived")};return{cachedAnnRange:c,annLayerInfo:y,checkAnnotationRange:M,findNextAnnotation:g=>{const h=a.getViewerActiveLayer(),e=z(h.annotations,g,!1);return e<h.annotations.length?h.annotations[e].start>g?h.annotations[e]:h.annotations[e+1]||h.annotations[e]:h.annotations[e]},findPreviousAnnotation:g=>{const h=a.getViewerActiveLayer(),e=z(h.annotations,g,!0);return h.annotations[e].start<g?h.annotations[e]:e>0?h.annotations[e-1]:h.annotations[e]},getChannelId:m}}function x(t=null){const a=t||S.inject("viewerStore",null)||p.createViewerStore("default"),{viewerAnnotations:u,viewerChannels:i}=K.storeToRefs(a),d=S.ref([]),c=S.ref([]),y=S.ref(null),m=S.ref(["#FFFF4E"]),M=(e,r)=>{var v,T;const l=(((v=r.constants)==null?void 0:v.ANNOTATIONLABELHEIGHT)||20)/2|0,o=((T=r.constants)==null?void 0:T.XOFFSET)||0;for(const n of e){let s=n.start,w=n.duration;n.duration<0&&(s=n.start+n.duration,w=-n.duration);const L=o+(s-r.start)/r.rsPeriod;if(n.cStart=L|0,n.duration!==0){const k=o+(s+w-r.start)/r.rsPeriod;n.cEnd=k|0}else n.cEnd=n.cStart+r.cWidth/40|0;if(n.allChannels)n.allOffsets=[l],n.cY=l;else{n.allOffsets=[],n.minOffset=r.cHeight|0,n.maxOffset=0;const k=i.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}}c.value.indexOf(n.minOffset)<0&&c.value.push(n.minOffset),n.cY=n.minOffset}}},A=(e,r,f,l)=>{var T,n;const o=((T=f.constants)==null?void 0:T.ANNOTATIONLABELHEIGHT)||20,v=o/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 s of r){const w=q(s,u.value);s.selected&&(e.save(),e.strokeStyle=w.selColor,e.fillStyle=w.bkColor,e.lineWidth=1);const L=Math.round(s.cStart)+.5,k=Math.round(s.cEnd)+.5;s.allChannels?s.duration===0?(e.beginPath(),e.moveTo(L+1,o),e.lineTo(L,l),e.stroke()):(e.fillRect(L,o,k-L,l-o),e.beginPath(),e.moveTo(L,o),e.lineTo(L,l),e.moveTo(k,o),e.lineTo(k,l),e.stroke()):((n=s==null?void 0:s.channelIds)==null?void 0:n.length)===1?s.duration===0&&(e.beginPath(),e.moveTo(L,s.minOffset+v),e.lineTo(L,s.minOffset+v+8),e.stroke()):s.duration===0?(e.beginPath(),e.moveTo(L,s.minOffset+v),e.lineTo(L,s.maxOffset-v),e.stroke()):(e.fillRect(L-1,s.minOffset+v,k-L+1,s.maxOffset-s.minOffset-o),e.beginPath(),e.moveTo(L,s.minOffset+v),e.lineTo(L,s.maxOffset-v),e.moveTo(k,s.minOffset+v),e.lineTo(k,s.maxOffset-v),e.stroke()),s.selected&&e.restore()}e.restore()},N=async(e,r,f,l,o,v)=>{var s;const T=((s=f.constants)==null?void 0:s.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 r){const L=q(w,u.value);if(w===y.value&&l)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===y.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(o)&&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,r,f,l,o,v)=>{const T=B.pathOr({},["objects","view",1,"content"],r),n=p.propOr("","fileType",T),s=new Image;if(n==="PNG"){const{id:w,packageId:L}=T,k=a.config.apiUrl;try{const F=await p.useToken();s.src=`${k}/packages/${L}/files/${w}/presign/?api_key=${F}`,s.complete?e.drawImage(s,f,l-o,27,v):s.addEventListener("load",()=>{e.drawImage(s,f,l-o,27,v)},{once:!0})}catch(F){console.error("Error loading image:",F)}}else s.src=g(),e.drawImage(s,f+5,l-o,20,20)},g=e=>"/path/to/default/icon.png";return{renderAnn:d,hoverOffsets:c,focusedAnn:y,render:(e,r,f,l)=>{var w,L;if(!r){console.warn("TSAnnotationCanvas: annotationsCanvas prop is undefined or null");return}const o=r.getContext("2d"),v=f.getContext("2d");o.setTransform(e.pixelRatio,0,0,e.pixelRatio,0,0),v.setTransform(e.pixelRatio,0,0,e.pixelRatio,0,0),c.value=[(((w=e.constants)==null?void 0:w.ANNOTATIONLABELHEIGHT)||20)/2],o.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,s=n+T;for(const k of u.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<s&&I>n});F.length>0&&(F.sort((b,E)=>b.start-E.start),d.value.push(...F))}d.value.length!==0&&(Z(d.value),M(d.value,e),A(o,d.value,e,l),N(v,d.value,e,!0,e.pointerMode,e.viewerActiveTool),y.value&&N(v,[y.value],e,!1,e.pointerMode,e.viewerActiveTool))},computeRenderOptions:M,renderAnnotationAreas:A,renderAnnotationLabels:N}}function ee(t,a,u,i=null){const d=i||S.inject("viewerStore",null)||p.createViewerStore("default"),c=S.ref([0,0]),y=(e,r)=>{const l=((r==null?void 0:r.ANNOTATIONLABELHEIGHT)||20)/2;for(const o of u.value)if(e>=o-l&&e<=o+l)return!0;return!1},m=(e,r,f)=>{var v;const o=((f==null?void 0:f.ANNOTATIONLABELHEIGHT)||20)/2;for(let T=0;T<(((v=a.value)==null?void 0:v.length)||0);T++){const n=a.value[T];if(n.cStart<e&&n.cEnd>e){if(r>n.cY-o&&r<n.cY+o)return T}else if(n.cStart>e)break}return null},M=(e,r,f)=>{if(!f)return r;switch(r){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 r}};return{mouseDownPosition:c,shouldCheckAnnotationHover:y,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,r,f)=>{t.value&&["annResize-left","annResize-right"].includes(f)&&(t.value.oldStart=t.value.start,t.value.oldDuration=t.value.duration,c.value=[e,r])},onMouseMove:(e,r,f,l,o)=>{let v=f;if(l&&c.value){const T=(e-c.value[0])*o.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=y(r,o.constants);if(v=o.viewerActiveTool,T){const n=m(e,r,o.constants);if(n!==null){const s=t.value,w=a.value[n];(!s||e<t.value.cStart||e>t.value.cEnd)&&(t.value=w),v=M(e,o.viewerActiveTool,t.value)}else t.value=null}else t.value=null,v=o.viewerActiveTool}return v},onMouseUp:(e,r)=>{if(t.value&&["annResize-left","annResize-right"].includes(e)){if(t.value.duration<0){const f=-t.value.duration,l=t.value.start-f;t.value.start=l,t.value.duration=f,t.value.end=l+f}d.setActiveAnnotation(t.value),r("updateAnnotation",t.value)}}}}var P={exports:{}},W;function te(){if(W)return P.exports;W=1;function t(){}return t.prototype={on:function(a,u,i){var d=this.e||(this.e={});return(d[a]||(d[a]=[])).push({fn:u,ctx:i}),this},once:function(a,u,i){var d=this;function c(){d.off(a,c),u.apply(i,arguments)}return c._=u,this.on(a,c,i)},emit:function(a){var u=[].slice.call(arguments,1),i=((this.e||(this.e={}))[a]||[]).slice(),d=0,c=i.length;for(d;d<c;d++)i[d].fn.apply(i[d].ctx,u);return this},off:function(a,u){var i=this.e||(this.e={}),d=i[a],c=[];if(d&&u)for(var y=0,m=d.length;y<m;y++)d[y].fn!==u&&d[y].fn._!==u&&c.push(d[y]);return c.length?i[a]=c:delete i[a],this}},P.exports=t,P.exports.TinyEmitter=t,P.exports}var D,X;function ne(){if(X)return D;X=1;var t=te();return D=new t,D}var oe=ne();const $=Y.getDefaultExportFromCjs(oe),J={$emit:(...t)=>$.emit(...t),$on:(...t)=>$.on(...t),$off:(...t)=>$.off(...t),$once:(...t)=>$.once(...t)};function ae(t=null){const a=t||S.inject("viewerStore",null)||p.createViewerStore("default"),u=S.ref([]),i=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,g)=>{const h=[];if(O.results.length===0)await c({name:"Default",color:"#18BA62",description:"Default Annotation Layer"},null,g);else{for(let e=0;e<O.results.length;e++){const r=O.results[e];let f=r.color||i.value[e%i.value.length];const l={id:r.id,name:r.name,description:r.description,visible:!0,selected:e===0,annotations:[],color:R(f,.7),hexColor:f,bkColor:R(f,.15),selColor:R(f,.9)};h.push(l)}a.setAnnotations(h),g("annLayersInitialized")}u.value=O.results},c=async(O,g,h)=>{var e;if(!((e=g==null?void 0:g.content)!=null&&e.id))return null;try{const r=await p.useToken(),f=`${a.config.apiUrl}/timeseries/${g.content.id}/layers?api_key=${r}`,l=await p.useSendXhr(f,{method:"POST",body:{name:O.name,color:O.color,description:O.description||O.name}}),o={...l,annotations:[],hexColor:l.color,color:R(l.color,.7),bkColor:R(l.color,.15),selColor:R(l.color,.9),visible:!0,selected:!0};return a.createLayer(o),a.setActiveAnnotationLayer(o.id),J.$emit("toast",{detail:{msg:`'${o.name}' Layer Created`}}),o}catch(r){throw p.useHandleXhrError(r),r}finally{h&&h("closeAnnotationLayerWindow")}};return{annLayerInfo:u,defaultColors:i,initializeLayers:d,createAnnotationLayer:c,updateLayerVisibility:(O,g)=>{const h=a.viewerAnnotations.find(e=>e.id===O);h&&(h.visible=g,a.updateLayer(h))},selectLayer:O=>{a.viewerAnnotations.forEach(h=>{h.selected=!1,a.updateLayer(h)});const g=a.viewerAnnotations.find(h=>h.id===O);g&&(g.selected=!0,a.updateLayer(g),a.setActiveAnnotationLayer(O))},deleteLayer:async(O,g)=>{var h;if(!((h=g==null?void 0:g.content)!=null&&h.id))return null;try{const e=await p.useToken(),r=`${a.config.apiUrl}/timeseries/${g.content.id}/layers/${O}?api_key=${e}`;await p.useSendXhr(r,{method:"DELETE"}),a.removeLayer(O),J.$emit("toast",{detail:{msg:"Layer deleted successfully"}})}catch(e){throw p.useHandleXhrError(e),e}},updateLayerColor:async(O,g,h)=>{var e;if(!((e=h==null?void 0:h.content)!=null&&e.id))return null;try{const r=await p.useToken(),f=`${a.config.apiUrl}/timeseries/${h.content.id}/layers/${O}?api_key=${r}`,l=await p.useSendXhr(f,{method:"PUT",body:{color:g}}),o=a.viewerAnnotations.find(v=>v.id===O);return o&&(o.hexColor=g,o.color=R(g,.7),o.bkColor=R(g,.15),o.selColor=R(g,.9),a.updateLayer(o)),l}catch(r){throw p.useHandleXhrError(r),r}},loadLayers:async(O,g)=>{var h;if(!((h=O==null?void 0:O.content)!=null&&h.id))return null;try{const e=await p.useToken(),r=`${a.config.apiUrl}/timeseries/${O.content.id}/layers?api_key=${e}`,f=await p.useSendXhr(r);return await d(f,g),f}catch(e){throw p.useHandleXhrError(e),e}}}}const re=["width","height"],ie={__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:a,emit:u}){const i=t,d=u,c=S.ref(null),{checkAnnotationRange:y,findNextAnnotation:m,findPreviousAnnotation:M}=V(),{renderAnn:A,hoverOffsets:N,focusedAnn:O,render:g}=x(),{resetFocusedAnnotation:h,selectFocusedAnnotation:e,onMouseDown:r,onMouseMove:f,onMouseUp:l}=ee(O,A,N),{createAnnotationLayer:o,loadLayers:v}=ae(),T=S.computed(()=>i.cHeight-20),n=S.computed(()=>({width:i.cWidth+"px",height:T.value+"px"})),s=()=>{g(i,i.annotationsCanvas,c.value,T.value)},w=(E,I)=>{r(E,I,i.pointerMode)},L=(E,I,C,H)=>f(E,I,C,H,i),k=()=>{l(i.pointerMode,d)},F=()=>{e()&&S.nextTick(()=>s())},b=async E=>{try{await o(E,i.activeViewer,d)}catch(I){console.error("Error creating layer:",I)}};return S.watch(()=>i.activeViewer,async E=>{try{await v(E,d),await y(i.start,i.start+i.duration,i,E,d)}catch(I){console.error("Error loading annotations for new viewer:",I)}}),S.onMounted(async()=>{try{await v(i.activeViewer,d),await y(i.start,i.start+i.duration,i,i.activeViewer,d)}catch(E){console.error("Error initializing annotations:",E)}}),a({render:s,resetFocusedAnnotation:h,findNextAnnotation:m,findPreviousAnnotation:M,checkAnnotationRange:(E,I)=>y(E,I,i,i.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:c,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,re))}},se=p._export_sfc(ie,[["__scopeId","data-v-2261f569"]]);exports.default=se;
@@ -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-CnKz29Cn.js";
5
+ import { g as cr, h as dr, p as Ka } from "./index-CpDw-ar8.js";
6
6
  import { storeToRefs as fr } from "pinia";
7
- import { I as vr } from "./IconSelection-BdrQ0hpx.js";
7
+ import { I as vr } from "./IconSelection-CwLxZy1O.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-D2RKhXw_.js")), r = a, s = X(!1);
5007
+ const t = ur(() => import("./BFLibraryButton-BGGqQKq4.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;