@pennsieve-viz/tsviewer 1.0.0

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.
@@ -0,0 +1,245 @@
1
+ import { createElementBlock as a, openBlock as i, createElementVNode as s, createCommentVNode as g, renderSlot as u, toDisplayString as f, normalizeClass as $, resolveComponent as r, createBlock as S, withCtx as d, createVNode as c, Fragment as k, createTextVNode as C } from "vue";
2
+ import { g as h, p as T } from "./index-Cexzl5Xu.js";
3
+ import B from "./BFLibraryButton-C6aAhW1T.js";
4
+ import { p as b } from "./pathOr-Do2dduwx.js";
5
+ const A = {
6
+ name: "BfDialogHeader",
7
+ props: {
8
+ title: {
9
+ type: String,
10
+ default: ""
11
+ }
12
+ },
13
+ methods: {
14
+ /**
15
+ * Trigger el-dialog close event
16
+ */
17
+ onClose: function() {
18
+ this.$parent.handleClose();
19
+ }
20
+ }
21
+ }, x = { class: "bf-dialog-header" }, V = { class: "bf-dialog-header-title" };
22
+ function N(e, t, o, l, m, n) {
23
+ return i(), a("div", x, [
24
+ s("span", V, f(o.title), 1),
25
+ this.$slots.tabs ? g("", !0) : (i(), a("button", {
26
+ key: 0,
27
+ class: "icon-close",
28
+ onClick: t[0] || (t[0] = (...p) => n.onClose && n.onClose(...p))
29
+ })),
30
+ u(e.$slots, "tabs", {}, void 0, !0)
31
+ ]);
32
+ }
33
+ const U = /* @__PURE__ */ h(A, [["render", N], ["__scopeId", "data-v-1491a20c"]]), I = {
34
+ name: "DialogBody",
35
+ setup(e, { slots: t }) {
36
+ return { hasSlot: (l) => !!t[l] };
37
+ },
38
+ props: {
39
+ fixedHeight: {
40
+ type: Boolean,
41
+ default: !1
42
+ }
43
+ },
44
+ computed: {
45
+ classNames: function() {
46
+ const e = this.$slots.icon ? "icon" : "", t = this.fixedHeight ? "fixed-height" : "";
47
+ return `dialog-body ${e} ${t}`;
48
+ }
49
+ }
50
+ }, H = {
51
+ key: 0,
52
+ class: "dialog-body-icon"
53
+ }, O = {
54
+ key: 1,
55
+ class: "dialog-body-heading"
56
+ }, P = { class: "dialog-body-content" };
57
+ function z(e, t, o, l, m, n) {
58
+ return i(), a("div", {
59
+ class: $(n.classNames)
60
+ }, [
61
+ l.hasSlot("icon") ? (i(), a("div", H, [
62
+ u(e.$slots, "icon", {}, void 0, !0)
63
+ ])) : g("", !0),
64
+ l.hasSlot("heading") ? (i(), a("div", O, [
65
+ u(e.$slots, "heading", {}, void 0, !0)
66
+ ])) : g("", !0),
67
+ s("div", P, [
68
+ u(e.$slots, "default", {}, void 0, !0)
69
+ ])
70
+ ], 2);
71
+ }
72
+ const E = /* @__PURE__ */ h(I, [["render", z], ["__scopeId", "data-v-690e953f"]]), M = {
73
+ name: "IconWarningCircle",
74
+ props: {
75
+ width: {
76
+ type: Number,
77
+ default: 16
78
+ },
79
+ height: {
80
+ type: Number,
81
+ default: 16
82
+ },
83
+ color: {
84
+ type: String,
85
+ default: "currentColor"
86
+ }
87
+ }
88
+ }, W = ["width", "height", "fill"];
89
+ function j(e, t, o, l, m, n) {
90
+ return i(), a("svg", {
91
+ xmlns: "http://www.w3.org/2000/svg",
92
+ width: o.width,
93
+ height: o.height,
94
+ fill: o.color,
95
+ viewBox: "0 0 24 24"
96
+ }, [...t[0] || (t[0] = [
97
+ s("path", {
98
+ pid: "0",
99
+ d: "M22 11.4c-.1-2.7-1.3-5.1-3.3-6.9-.4-.4-1-.3-1.4.1-.4.4-.3 1 .1 1.4 1.6 1.4 2.5 3.4 2.7 5.5.1 2.1-.6 4.2-2 5.8s-3.4 2.5-5.5 2.7c-2.1.1-4.2-.6-5.8-2-1.6-1.4-2.5-3.4-2.7-5.5-.1-2.1.6-4.2 2-5.8 1.3-1.4 3.1-2.4 5-2.6V11c0 .6.4 1 1 1s1-.4 1-1V2h-1C9.2 2 6.4 3.2 4.5 5.3c-1.8 2-2.7 4.6-2.5 7.2.1 2.7 1.3 5.1 3.3 6.9C7.2 21.2 9.6 22 12 22c2.7 0 5.5-1.1 7.5-3.3 1.7-2 2.6-4.6 2.5-7.3z"
100
+ }, null, -1),
101
+ s("circle", {
102
+ pid: "1",
103
+ cx: "12",
104
+ cy: "15.5",
105
+ r: "1.5"
106
+ }, null, -1)
107
+ ])], 8, W);
108
+ }
109
+ const F = /* @__PURE__ */ h(M, [["render", j]]), L = {
110
+ name: "TsAnnotationDeleteDialog",
111
+ components: {
112
+ BfDialogHeader: U,
113
+ DialogBody: E,
114
+ BfLibraryButton: B,
115
+ IconWarningCircle: F
116
+ },
117
+ props: {
118
+ visible: {
119
+ type: Boolean,
120
+ default: !1
121
+ },
122
+ deleteAnnotation: {
123
+ type: Object,
124
+ default: () => ({
125
+ annotation: {},
126
+ withDiscussions: !1
127
+ })
128
+ }
129
+ },
130
+ data: function() {
131
+ return {
132
+ isProcessing: !1
133
+ };
134
+ },
135
+ computed: {
136
+ /**
137
+ * Compute the annotation's name
138
+ * @returns {String}
139
+ */
140
+ annotationDescription: function() {
141
+ return b("", ["annotation", "label"], this.deleteAnnotation);
142
+ },
143
+ annotationDateTime: function() {
144
+ const e = b("", ["annotation", "start"], this.deleteAnnotation);
145
+ return this.getUTCDateString(e) + " " + this.getUTCTimeString(e);
146
+ },
147
+ deleteDiscussions: function() {
148
+ return T(!1, "withDiscussions", this.deleteAnnotation);
149
+ },
150
+ /**
151
+ * Compute copy for the delete button
152
+ * @returns {String}
153
+ */
154
+ btnDeleteCopy: function() {
155
+ return this.deleteDiscussions ? "Yes, I'm sure" : "Delete";
156
+ }
157
+ },
158
+ methods: {
159
+ removeAnnotation: function() {
160
+ this.$emit("delete", this.deleteAnnotation.annotation);
161
+ },
162
+ /**
163
+ * Emit event to update the synced property
164
+ */
165
+ close: function() {
166
+ this.$emit("update:visible", !1);
167
+ },
168
+ /**
169
+ * Callback after the dialog has closed
170
+ * Reset dialog
171
+ */
172
+ onClosed: function() {
173
+ this.isProcessing = !1, this.$emit("update:delete-annotation", {
174
+ annotation: {},
175
+ withDiscussions: !1
176
+ });
177
+ },
178
+ getUTCDateString: function(e) {
179
+ return e > 0 ? (e = new Date(e / 1e3), e.toDateString()) : "unknown";
180
+ },
181
+ getUTCTimeString: function(e) {
182
+ if (e > 0)
183
+ return e = e / 1e3, e = new Date(e), ("0" + e.getUTCHours()).slice(-2) + ":" + ("0" + e.getUTCMinutes()).slice(-2) + ":" + ("0" + e.getUTCSeconds()).slice(-2);
184
+ }
185
+ }
186
+ }, Y = { class: "dialog-simple-buttons" };
187
+ function q(e, t, o, l, m, n) {
188
+ const p = r("bf-dialog-header"), y = r("icon-warning-circle"), _ = r("bf-library-button"), D = r("dialog-body"), w = r("el-dialog");
189
+ return i(), S(w, {
190
+ class: "simple",
191
+ modelValue: o.visible,
192
+ "onUpdate:modelValue": t[0] || (t[0] = (v) => o.visible = v),
193
+ "show-close": !1,
194
+ onClose: n.close,
195
+ onClosed: n.onClosed
196
+ }, {
197
+ default: d(() => [
198
+ c(p, { slot: "title" }),
199
+ c(D, null, {
200
+ default: d(() => [
201
+ c(y, {
202
+ class: "mb-16",
203
+ height: 32,
204
+ width: 32,
205
+ color: "#C14D49"
206
+ }),
207
+ t[5] || (t[5] = s("h2", null, "Delete annotation?", -1)),
208
+ n.deleteDiscussions ? (i(), a(k, { key: 0 }, [
209
+ s("p", null, f(n.annotationDescription) + " - " + f(n.annotationDateTime), 1),
210
+ t[1] || (t[1] = s("hr", null, null, -1)),
211
+ t[2] || (t[2] = s("p", null, " Deleting this annotation will also remove any associated discussions and cannot be undone. ", -1)),
212
+ t[3] || (t[3] = s("p", null, " Are you sure you would like to remove this annotation? ", -1))
213
+ ], 64)) : g("", !0),
214
+ s("div", Y, [
215
+ c(_, {
216
+ class: "secondary",
217
+ onClick: n.close
218
+ }, {
219
+ default: d(() => [...t[4] || (t[4] = [
220
+ C(" Cancel ", -1)
221
+ ])]),
222
+ _: 1
223
+ }, 8, ["onClick"]),
224
+ c(_, {
225
+ class: "red",
226
+ processing: e.isProcessing,
227
+ onClick: n.removeAnnotation
228
+ }, {
229
+ default: d(() => [
230
+ C(f(n.btnDeleteCopy), 1)
231
+ ]),
232
+ _: 1
233
+ }, 8, ["processing", "onClick"])
234
+ ])
235
+ ]),
236
+ _: 1
237
+ })
238
+ ]),
239
+ _: 1
240
+ }, 8, ["modelValue", "onClose", "onClosed"]);
241
+ }
242
+ const R = /* @__PURE__ */ h(L, [["render", q], ["__scopeId", "data-v-3cc4b959"]]);
243
+ export {
244
+ R as default
245
+ };
@@ -0,0 +1 @@
1
+ "use strict";const s=require("vue"),Ae=require("pinia"),On=require("aws-amplify/auth");function T(n){return n!=null&&typeof n=="object"&&n["@@functional/placeholder"]===!0}function P(n){return function e(t){return arguments.length===0||T(t)?e:n.apply(this,arguments)}}function N(n){return function e(t,o){switch(arguments.length){case 0:return e;case 1:return T(t)?e:P(function(l){return n(t,l)});default:return T(t)&&T(o)?e:T(t)?P(function(l){return n(l,o)}):T(o)?P(function(l){return n(t,l)}):n(t,o)}}}function Pn(n,e){n=n||[],e=e||[];var t,o=n.length,l=e.length,c=[];for(t=0;t<o;)c[c.length]=n[t],t+=1;for(t=0;t<l;)c[c.length]=e[t],t+=1;return c}function fe(n,e){switch(n){case 0:return function(){return e.apply(this,arguments)};case 1:return function(t){return e.apply(this,arguments)};case 2:return function(t,o){return e.apply(this,arguments)};case 3:return function(t,o,l){return e.apply(this,arguments)};case 4:return function(t,o,l,c){return e.apply(this,arguments)};case 5:return function(t,o,l,c,y){return e.apply(this,arguments)};case 6:return function(t,o,l,c,y,A){return e.apply(this,arguments)};case 7:return function(t,o,l,c,y,A,u){return e.apply(this,arguments)};case 8:return function(t,o,l,c,y,A,u,i){return e.apply(this,arguments)};case 9:return function(t,o,l,c,y,A,u,i,m){return e.apply(this,arguments)};case 10:return function(t,o,l,c,y,A,u,i,m,g){return e.apply(this,arguments)};default:throw new Error("First argument to _arity must be a non-negative integer no greater than ten")}}function le(n){return function e(t,o,l){switch(arguments.length){case 0:return e;case 1:return T(t)?e:N(function(c,y){return n(t,c,y)});case 2:return T(t)&&T(o)?e:T(t)?N(function(c,y){return n(c,o,y)}):T(o)?N(function(c,y){return n(t,c,y)}):P(function(c){return n(t,o,c)});default:return T(t)&&T(o)&&T(l)?e:T(t)&&T(o)?N(function(c,y){return n(c,y,l)}):T(t)&&T(l)?N(function(c,y){return n(c,o,y)}):T(o)&&T(l)?N(function(c,y){return n(t,c,y)}):T(t)?P(function(c){return n(c,o,l)}):T(o)?P(function(c){return n(t,c,l)}):T(l)?P(function(c){return n(t,o,c)}):n(t,o,l)}}}const ve=Array.isArray||function(e){return e!=null&&e.length>=0&&Object.prototype.toString.call(e)==="[object Array]"};function kn(n){return n!=null&&typeof n["@@transducer/step"]=="function"}function We(n,e,t){return function(){if(arguments.length===0)return t();var o=arguments[arguments.length-1];if(!ve(o)){for(var l=0;l<n.length;){if(typeof o[n[l]]=="function")return o[n[l]].apply(o,Array.prototype.slice.call(arguments,0,-1));l+=1}if(kn(o)){var c=e.apply(null,Array.prototype.slice.call(arguments,0,-1));return c(o)}}return t.apply(this,arguments)}}function $e(n){return n&&n["@@transducer/reduced"]?n:{"@@transducer/value":n,"@@transducer/reduced":!0}}const Fe={init:function(){return this.xf["@@transducer/init"]()},result:function(n){return this.xf["@@transducer/result"](n)}};function pe(n){return Object.prototype.toString.call(n)==="[object String]"}var Nn=P(function(e){return ve(e)?!0:!e||typeof e!="object"||pe(e)?!1:e.length===0?!0:e.length>0?e.hasOwnProperty(0)&&e.hasOwnProperty(e.length-1):!1}),Dn=(function(){function n(e){this.f=e}return n.prototype["@@transducer/init"]=function(){throw new Error("init not implemented on XWrap")},n.prototype["@@transducer/result"]=function(e){return e},n.prototype["@@transducer/step"]=function(e,t){return this.f(e,t)},n})();function Vn(n){return new Dn(n)}var Ln=N(function(e,t){return fe(e.length,function(){return e.apply(t,arguments)})});function Rn(n,e,t){for(var o=0,l=t.length;o<l;){if(e=n["@@transducer/step"](e,t[o]),e&&e["@@transducer/reduced"]){e=e["@@transducer/value"];break}o+=1}return n["@@transducer/result"](e)}function ke(n,e,t){for(var o=t.next();!o.done;){if(e=n["@@transducer/step"](e,o.value),e&&e["@@transducer/reduced"]){e=e["@@transducer/value"];break}o=t.next()}return n["@@transducer/result"](e)}function Ne(n,e,t,o){return n["@@transducer/result"](t[o](Ln(n["@@transducer/step"],n),e))}var De=typeof Symbol<"u"?Symbol.iterator:"@@iterator";function Be(n,e,t){if(typeof n=="function"&&(n=Vn(n)),Nn(t))return Rn(n,e,t);if(typeof t["fantasy-land/reduce"]=="function")return Ne(n,e,t,"fantasy-land/reduce");if(t[De]!=null)return ke(n,e,t[De]());if(typeof t.next=="function")return ke(n,e,t);if(typeof t.reduce=="function")return Ne(n,e,t,"reduce");throw new TypeError("reduce: list must be array or iterable")}function de(n,e){return Object.prototype.hasOwnProperty.call(e,n)}var Ve=Object.prototype.toString,ze=(function(){return Ve.call(arguments)==="[object Arguments]"?function(e){return Ve.call(e)==="[object Arguments]"}:function(e){return de("callee",e)}})(),jn=!{toString:null}.propertyIsEnumerable("toString"),Le=["constructor","valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],Re=(function(){return arguments.propertyIsEnumerable("length")})(),Un=function(e,t){for(var o=0;o<e.length;){if(e[o]===t)return!0;o+=1}return!1},we=P(typeof Object.keys=="function"&&!Re?function(e){return Object(e)!==e?[]:Object.keys(e)}:function(e){if(Object(e)!==e)return[];var t,o,l=[],c=Re&&ze(e);for(t in e)de(t,e)&&(!c||t!=="length")&&(l[l.length]=t);if(jn)for(o=Le.length-1;o>=0;)t=Le[o],de(t,e)&&!Un(l,t)&&(l[l.length]=t),o-=1;return l});const Xe=Number.isInteger||function(e){return e<<0===e};var Ge=N(function(e,t){var o=e<0?t.length+e:e;return pe(t)?t.charAt(o):t[o]}),Z=N(function(e,t){if(t!=null)return Xe(e)?Ge(e,t):t[e]}),Mn=le(Be),je=P(function(e){return e===null?"Null":e===void 0?"Undefined":Object.prototype.toString.call(e).slice(8,-1)});function xn(n,e){return function(){return e.call(this,n.apply(this,arguments))}}function He(n,e){return function(){var t=arguments.length;if(t===0)return e();var o=arguments[t-1];return ve(o)||typeof o[n]!="function"?e.apply(this,arguments):o[n].apply(o,Array.prototype.slice.call(arguments,0,t-1))}}var qn=le(He("slice",function(e,t,o){return Array.prototype.slice.call(o,e,t)})),Wn=P(He("tail",qn(1,1/0)));function $n(){if(arguments.length===0)throw new Error("pipe requires at least one argument");return fe(arguments[0].length,Mn(xn,arguments[0],Wn(arguments)))}var Fn=P(function(e){return pe(e)?e.split("").reverse().join(""):Array.prototype.slice.call(e,0).reverse()});function Ue(){if(arguments.length===0)throw new Error("compose requires at least one argument");return $n.apply(this,Fn(arguments))}function Me(n){for(var e=[],t;!(t=n.next()).done;)e.push(t.value);return e}function xe(n,e,t){for(var o=0,l=t.length;o<l;){if(n(e,t[o]))return!0;o+=1}return!1}function Bn(n){var e=String(n).match(/^function (\w*)/);return e==null?"":e[1]}function zn(n,e){return n===e?n!==0||1/n===1/e:n!==n&&e!==e}const me=typeof Object.is=="function"?Object.is:zn;function qe(n,e,t,o){var l=Me(n),c=Me(e);function y(A,u){return Te(A,u,t.slice(),o.slice())}return!xe(function(A,u){return!xe(y,u,A)},c,l)}function Te(n,e,t,o){if(me(n,e))return!0;var l=je(n);if(l!==je(e))return!1;if(typeof n["fantasy-land/equals"]=="function"||typeof e["fantasy-land/equals"]=="function")return typeof n["fantasy-land/equals"]=="function"&&n["fantasy-land/equals"](e)&&typeof e["fantasy-land/equals"]=="function"&&e["fantasy-land/equals"](n);if(typeof n.equals=="function"||typeof e.equals=="function")return typeof n.equals=="function"&&n.equals(e)&&typeof e.equals=="function"&&e.equals(n);switch(l){case"Arguments":case"Array":case"Object":if(typeof n.constructor=="function"&&Bn(n.constructor)==="Promise")return n===e;break;case"Boolean":case"Number":case"String":if(!(typeof n==typeof e&&me(n.valueOf(),e.valueOf())))return!1;break;case"Date":if(!me(n.valueOf(),e.valueOf()))return!1;break;case"Error":return n.name===e.name&&n.message===e.message;case"RegExp":if(!(n.source===e.source&&n.global===e.global&&n.ignoreCase===e.ignoreCase&&n.multiline===e.multiline&&n.sticky===e.sticky&&n.unicode===e.unicode))return!1;break}for(var c=t.length-1;c>=0;){if(t[c]===n)return o[c]===e;c-=1}switch(l){case"Map":return n.size!==e.size?!1:qe(n.entries(),e.entries(),t.concat([n]),o.concat([e]));case"Set":return n.size!==e.size?!1:qe(n.values(),e.values(),t.concat([n]),o.concat([e]));case"Arguments":case"Array":case"Object":case"Boolean":case"Number":case"String":case"Date":case"Error":case"RegExp":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"ArrayBuffer":break;default:return!1}var y=we(n);if(y.length!==we(e).length)return!1;var A=t.concat([n]),u=o.concat([e]);for(c=y.length-1;c>=0;){var i=y[c];if(!(de(i,e)&&Te(e[i],n[i],A,u)))return!1;c-=1}return!0}var Ze=N(function(e,t){return Te(e,t,[],[])});function Xn(n){return Object.prototype.toString.call(n)==="[object Object]"}var se=N(function(e,t){return t==null||t!==t?e:t});function Gn(n){var e=Object.prototype.toString.call(n);return e==="[object Uint8ClampedArray]"||e==="[object Int8Array]"||e==="[object Uint8Array]"||e==="[object Int16Array]"||e==="[object Uint16Array]"||e==="[object Int32Array]"||e==="[object Uint32Array]"||e==="[object Float32Array]"||e==="[object Float64Array]"||e==="[object BigInt64Array]"||e==="[object BigUint64Array]"}var Hn=P(function(e){return e!=null&&typeof e["fantasy-land/empty"]=="function"?e["fantasy-land/empty"]():e!=null&&e.constructor!=null&&typeof e.constructor["fantasy-land/empty"]=="function"?e.constructor["fantasy-land/empty"]():e!=null&&typeof e.empty=="function"?e.empty():e!=null&&e.constructor!=null&&typeof e.constructor.empty=="function"?e.constructor.empty():ve(e)?[]:pe(e)?"":Xn(e)?{}:ze(e)?(function(){return arguments})():Gn(e)?e.constructor.from(""):void 0}),Zn=(function(){function n(e,t){this.xf=t,this.f=e,this.idx=-1,this.found=!1}return n.prototype["@@transducer/init"]=Fe.init,n.prototype["@@transducer/result"]=function(e){return this.found||(e=this.xf["@@transducer/step"](e,-1)),this.xf["@@transducer/result"](e)},n.prototype["@@transducer/step"]=function(e,t){return this.idx+=1,this.f(t)&&(this.found=!0,e=$e(this.xf["@@transducer/step"](e,this.idx))),e},n})(),Jn=N(function(e,t){return new Zn(e,t)}),W=N(We([],Jn,function(e,t){for(var o=0,l=t.length;o<l;){if(e(t[o]))return o;o+=1}return-1})),Yn=P(function(e){return e!=null&&Ze(e,Hn(e))}),x=le(function(e,t,o){return Ze(t,Z(e,o))}),ie=le(function(e,t,o){return se(e,Z(t,o))}),Kn=N(function(e,t){return fe(e.length,function(){try{return e.apply(this,arguments)}catch(o){return t.apply(this,Pn([o],arguments))}})});async function ae(){try{return On.fetchAuthSession().then(n=>{var e;return(e=n==null?void 0:n.tokens)==null?void 0:e.accessToken.toString()})}catch(n){console.error(n)}}const Qn=()=>({openConnection:async(e,t,o)=>await new Promise((y,A)=>{const u=e+"?session="+o+"&package="+t;console.log("Opening WebSocket connection to:",u);let i=null;const m=new WebSocket(u);m.onopen=()=>{console.log("🔗 WebSocket opened for package:",t);const g={montage:"NOT_MONTAGED",packageId:t};console.log("🎛️ Sending message payload"),m.send(JSON.stringify(g))},m.onclose=()=>{console.log("🔌 WebSocket closed for package:",t),i&&i.channelDetails?y({res:i.channelDetails,status:"websocket closed"}):(console.warn("No channel details received"),y({res:null,status:"websocket closed without data"}))},m.onmessage=g=>{console.log("WebSocket message received:",g.data),i=JSON.parse(g.data),m.close()},m.onerror=g=>{console.error("WebSocket error:",g),A(g)}})}),Se=Ae.defineStore("tsviewer",()=>{const n=s.reactive({}),e=s.ref([]),t=s.ref("NOT_MONTAGED"),o=s.ref({}),l=s.ref([]),c=s.ref(null),y=s.ref(null),A=s.ref({}),u=s.ref([]),i=s.ref({}),m=s.ref({}),g=s.ref("POINTER"),{openConnection:C}=Qn(),U=s.computed(()=>a=>l.value.find(d=>d.name===a)),R=s.computed(()=>e.value.filter(a=>a.selected)),_=s.computed(()=>()=>{const a=u.value.find(d=>d.selected);return a||(console.warn("No active layer found, available layers:",u.value),u.value.length>0?u.value[0]:null)}),M=()=>{let a=!1;return u.value.forEach((d,h)=>{!d.id&&d.id!==0&&(console.error(`Layer at index ${h} missing ID:`,d),a=!0),d.annotations||(console.warn(`Layer at index ${h} missing annotations array:`,d),d.annotations=[])}),a&&console.error("Annotation layer validation failed. Layers:",u.value),!a},k=s.computed(()=>a=>u.value.flatMap(h=>h.annotations||[]).find(h=>h.id===a)),E=a=>{A.value=a},I=a=>{e.value=a},p=a=>{t.value=a},S=a=>{o.value=a},q=a=>{l.value=a},O=a=>{c.value=a},b=a=>{y.value=a},z=a=>{Object.assign(n,a)},X=async a=>{const d=a.packageId,h=await ae();let V=n.timeseriesDiscoverApi,K=null;K=await C(V,d,h),E({channels:K.res,content:{id:d}})},D=()=>a=>{var h;return((h=a==null?void 0:a.content)==null?void 0:h.state)==="READY"},j=a=>{const d=a.map(h=>(!h.id&&h.id!==0&&(console.warn("Annotation layer missing ID:",h),h.id=Math.random().toString(36).substr(2,9)),h.annotations||(h.annotations=[]),h.name||(h.name=`Layer ${h.id}`),h));u.value=d,console.log("Set annotations with validated structure:",d)},G=a=>{if(!a&&a!==0){console.error("setActiveAnnotationLayer called with invalid layerId:",a);return}i.value=a,u.value.forEach(h=>h.selected=!1);const d=W(x("id",a),u.value);d>=0?(u.value[d].selected=!0,console.log("Successfully set active layer:",u.value[d])):console.error("Layer with ID not found:",a,"Available layers:",u.value)},H=a=>{if(u.value.forEach(d=>{var h;return(h=d.annotations)==null?void 0:h.forEach(V=>V.selected=!1)}),a.id){const d=W(x("id",a.layer_id),u.value);if(d>=0){const h=W(x("id",a.id),u.value[d].annotations);h>=0&&(u.value[d].annotations[h].selected=!0)}}m.value=a},ee=a=>{g.value=a},$=a=>{if(!a.id&&a.id!==0){console.error("Cannot create layer without ID:",a);return}const d={id:a.id,name:a.name||`Layer ${a.id}`,description:a.description||"",visible:a.visible!==void 0?a.visible:!0,selected:a.selected||!1,annotations:a.annotations||[],color:a.color,hexColor:a.hexColor,bkColor:a.bkColor,selColor:a.selColor,userId:a.userId,...a};u.value.push(d),console.log("Created layer with validated structure:",d)},J=a=>{const d=W(x("id",a.id),u.value);if(d>=0){const h=Object.assign(u.value[d],a);u.value[d]=h}},F=a=>{const d=W(x("id",a.id),u.value);d>=0&&u.value.splice(d,1)},ne=a=>{const d=W(x("id",a.layer_id),u.value);d>=0&&(u.value[d].annotations||(u.value[d].annotations=[]),u.value[d].annotations.push(a),H(a))},ue=a=>{const d=W(x("id",a.layer_id),u.value);if(d>=0){const h=u.value[d].annotations,V=W(x("id",a.id),h);V>=0&&(h[V]=a)}},Y=a=>{const d=W(x("id",a.layer_id),u.value);if(d>=0){const h=u.value[d].annotations,V=W(x("id",a.id),h);V>=0&&h.splice(V,1)}},B=(a,d,h)=>{const V=e.value.find(K=>K.id===a);V&&(V[d]=h)};return{viewerChannels:e,viewerMontageScheme:t,customMontageMap:o,workspaceMontages:l,viewerErrors:c,needsRerender:y,viewerAnnotations:u,activeAnnotationLayer:i,activeAnnotation:m,activeViewer:A,viewerActiveTool:g,config:n,getMontageMessageByName:U,viewerSelectedChannels:R,getViewerActiveLayer:_,getAnnotationById:k,setChannels:I,setViewerMontageScheme:p,setCustomMontageMap:S,setWorkspaceMontages:q,setViewerErrors:O,setAnnotations:j,setActiveAnnotationLayer:G,setActiveAnnotation:H,setActiveTool:ee,createLayer:$,updateLayer:J,deleteLayer:F,createAnnotation:ne,updateAnnotation:ue,deleteAnnotation:Y,updateChannelProperty:B,updateChannelVisibility:(a,d)=>{B(a,"visible",d)},updateChannelSelection:(a,d)=>{B(a,"selected",d)},updateChannelFilter:(a,d)=>{B(a,"filter",d)},validateAnnotationLayers:M,resetViewer:()=>{e.value=[],t.value="NOT_MONTAGED",o.value={},l.value=[],c.value=null,u.value=[],i.value={},m.value={},g.value="POINTER",A.value={},Object.keys(n).forEach(a=>{delete n[a]})},triggerRerender:a=>{b({timestamp:Date.now(),cause:a})},resetRerenderTrigger:()=>{y.value=null},isTSFileProcessed:D,fetchAndSetActiveViewer:X,setActiveViewer:E,setViewerConfig:z}});function et(n){if(useRoute().name==="docs-login")return;se(!1,Z("shouldShowToast",n));const t=se(!1,Z("shouldRedirect",n));this.clearState(),t&&this.$route.fullPath}const nt=n=>Object.prototype.toString.call(n)==="[object String]",tt=n=>{Object.keys(n).forEach(e=>{nt(n[e])&&(n[e]=n[e].trim())})};function rt(n,e){if(!n)return Promise.reject({status:400,message:"Url is missing!"});const t=ie("GET","method",e),o=ie({},"header",e),l=Object.assign({},{"Content-type":"application/json"},o),c=Z("body",e);let y={headers:l,method:t};if(c){typeof c=="object"&&tt(c);const A=JSON.stringify(c);y=Object.assign({},y,{body:A})}return fetch(n,y).then(A=>A.status>=400?Promise.reject(A):A.json().catch(()=>A))}function ce(n){const e=Z("status",n);let t;if(e===void 0){console.log(n);return}else t=n.status;if(t===400&&n.body)n.body.getReader().read().then(({done:o,value:l})=>{const c=l instanceof Uint8Array?String.fromCharCode.apply(null,l):l;Ue(se(c),Kn(Ue(Z("message"),JSON.parse),(y,A)=>A))(c)});else if(t===401)return et()}function ot(){const n=Se(),{viewerChannels:e,viewerAnnotations:t}=Ae.storeToRefs(n),o=u=>u.id||"",l=u=>{u.sort(function(m,g){return m.start<g.start?-1:m.start>g.start?1:0})};return{viewerChannels:e,viewerAnnotations:t,addAnnotation:async(u=null)=>{const i=u||activeAnnotation.value;if(console.log("🔧 useTsAnnotation: addAnnotation called with:",i),!i||!i.layer_id)throw new TypeError("Missing annotation data or layer_id",i);if(i.id)throw new TypeError("Trying to create an annotation that already exists",i.id);let m=i.start,g=i.duration||i.end-i.start;const C=i.label,U=i.description,R=i.layer_id;if(!C)throw new Error("Annotation label is required");if(m==null)throw new Error("Annotation start time is required");g<0&&(g=-g,m=m-g);let _=[];if(console.log("🔧 useTsAnnotation: Processing channelIds...",{hasChannelIds:i.channelIds&&Array.isArray(i.channelIds),allChannels:i.allChannels,providedChannelIds:i.channelIds,availableChannels:e.value.length}),i.allChannels){console.log("🔧 useTsAnnotation: allChannels=true, adding all visible channels");const I=n.activeViewer.value.channels;for(let p=0;p<I.length;p++){const q=I[p].content.id;_.push(q),console.log("🔧 useTsAnnotation: Added channel ID:",q)}}else if(i.channelIds&&Array.isArray(i.channelIds)&&i.channelIds.length>0)_=i.channelIds,console.log("🔧 useTsAnnotation: Using provided channelIds:",_);else{console.log("🔧 useTsAnnotation: Computing from selected channels");for(let I=0;I<e.value.length;I++){const p=e.value[I];if(p.selected&&p.visible){const S=o(p);_.push(S),console.log("🔧 useTsAnnotation: Added selected channel ID:",S)}}}console.log("🔧 useTsAnnotation: Final channelIds:",_);const M={label:C,name:C,description:U||"",start:Math.floor(m),end:Math.floor(m+g),channelIds:_};console.log("🔧 useTsAnnotation: API payload:",M);const k=n.activeViewer.value.content.id,E=`${n.config.apiUrl}/timeseries/${k}/layers/${R}/annotations`;console.log("🔧 useTsAnnotation: API URL:",E);try{const I=await ae(),p=await fetch(`${E}?api_key=${I}`,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(M)});if(!p.ok){const b=await p.text();throw new Error(`HTTP ${p.status}: ${b}`)}const S=await p.json();console.log("🔧 useTsAnnotation: API success:",S);const q={name:"",id:S.id,label:S.label,description:S.description,start:S.start,duration:S.end-S.start,end:S.end,cStart:null,cEnd:null,selected:!0,channelIds:S.channelIds||_,allChannels:_.length===0||_.length>=e.value.length,layer_id:R,userId:S.userId};S.linkedPackage&&(q.linkedPackage=S.linkedPackage);let O=0;for(let b=0;b<t.value.length;b++)if(t.value[b].id===R){O=b;break}return n.createAnnotation(q),t.value[O]&&t.value[O].annotations&&l(t.value[O].annotations),q}catch(I){throw console.error("🔧 useTsAnnotation: Error creating annotation:",I),ce(I),I}},updateAnnotation:async(u=null)=>{const i=u||activeAnnotation.value;if(console.log("🔧 useTsAnnotation: updateAnnotation called with:",i),!i.id)throw new TypeError("Trying to update an annotation that doesn't exist on server",i.id);if(!i.layer_id)throw new TypeError("Missing layer_id for annotation update",i);let m=i.start,g=i.duration||i.end-i.start;g<0&&(g=-g,m=m-g);const C={label:i.label,description:i.description||"",start:Math.floor(m),end:Math.floor(m+g),channelIds:i.channelIds||[]};console.log("🔧 useTsAnnotation: Update API payload:",C);const U=n.activeViewer.value.content.id,R=`${n.config.apiUrl}/timeseries/${U}/layers/${i.layer_id}/annotations/${i.id}`;console.log("🔧 useTsAnnotation: Update API URL:",R);try{const _=await ae(),M=await fetch(`${R}?api_key=${_}`,{method:"PUT",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(C)});if(!M.ok){const I=await M.text();throw new Error(`HTTP ${M.status}: ${I}`)}const k=await M.json();console.log("🔧 useTsAnnotation: Update API success:",k);const E={...i,...k,duration:k.end-k.start};return n.updateAnnotation(E),k}catch(_){throw console.error("🔧 useTsAnnotation: Error updating annotation:",_),ce(_),_}},removeAnnotation:async u=>{if(!u||!u.id)throw new TypeError("Invalid annotation for deletion",u);let i="";if(u.layer?i=u.layer.id:i=u.layer_id,!i)throw new TypeError("Missing layer_id for annotation deletion",u);const m=n.activeViewer.value.content.id,g=`${n.config.apiUrl}/timeseries/${m}/layers/${i}/annotations/${u.id}`;console.log("🔧 useTsAnnotation: Delete API URL:",g);try{const C=await ae(),U=await fetch(`${g}?api_key=${C}`,{method:"DELETE",headers:{Accept:"application/json"}});if(!U.ok){const R=await U.text();throw new Error(`HTTP ${U.status}: ${R}`)}return console.log("🔧 useTsAnnotation: Delete API success"),n.deleteAnnotation(u),!0}catch(C){throw console.error("🔧 useTsAnnotation: Error deleting annotation:",C),ce(C),C}},sortAnns:l,getChannelId:o}}const Je=(n,e)=>{const t=n.__vccOpts||n;for(const[o,l]of e)t[o]=l;return t},at={id:"channelCanvas"},st=["data-id"],it=["hidden"],lt=["hidden"],ut={__name:"TSViewer",props:{pkg:{type:Object,default:()=>{}},isPreview:{type:Boolean,default:!1},sidePanelOpen:{type:Boolean,default:!1}},setup(n,{expose:e}){const t=s.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TSScrubber-DAnIUBuC.cjs"))),o=s.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TSViewerCanvas-Jbu-Kh9F.cjs")).then(r=>r.TSViewerCanvas)),l=s.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TSViewerToolbar-C6yy7GJr.cjs"))),c=s.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TSFilterModal-DEOWfIi6.cjs"))),y=s.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TSAnnotationModal-DskdoFo4.cjs"))),A=s.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TsAnnotationDeleteDialog-Be3AJIyo.cjs"))),u=s.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./TSViewerLayerWindow-wHkjTl6e.cjs"))),i={TIMEUNIT:"microSeconds",XOFFSET:0,XGRIDSPACING:1e6,NRPXPERLABEL:150,USEREALTIME:!0,DEFAULTDPI:96,ANNOTATIONLABELHEIGHT:20,ROUNDDATAPIXELS:!1,MINMAXPOLYGON:!0,PAGESIZEDIVIDER:.5,PREFETCHPAGES:5,LIMITANNFETCH:500,USEMEDIAN:!1,CURSOROFFSET:5,SEGMENTSPAN:12096e8,MAXRECURSION:20,MAXDURATION:6e8,INITDURATION:15e6},m=n,g=Se(),{viewerChannels:C,needsRerender:U}=Ae.storeToRefs(g),{addAnnotation:R,updateAnnotation:_,removeAnnotation:M}=ot(),k=s.ref(null),E=s.ref(null),I=s.ref(null),p=s.ref(null),S=s.ref(null),q=s.ref(null),O=s.ref(null),b=s.ref(null),z=s.ref(0),X=s.ref(0),D=s.ref(0),j=s.ref(0),G=s.ref(0),H=s.ref(0),ee=s.ref(0),$=s.ref(1),J=s.ref(1/10),F=s.ref(!1),ne=s.ref(!1),ue=s.ref(null),Y=s.ref(!1),B=s.ref(!1),te=s.computed(()=>g.activeViewer),Ie=s.computed(()=>C.value.map(r=>({...r,selected:!!r.selected}))),he=s.computed(()=>Ie.value.filter(r=>r.visible)),ge=s.computed(()=>{let r=!1;return H.value/ye.value<30&&(r=!0),r}),ye=s.computed(()=>he.value.length),re=async()=>{if(console.log("onresize..."),!k.value)return;const r=document.getElementById("ts_viewer");if(!r)return;const v=window.getComputedStyle(r,null),f=parseInt(v.getPropertyValue("height")),w=m.isPreview?0:100;z.value=f-w,await s.nextTick(),X.value=k.value.offsetWidth;const L=I.value;L&&(ee.value=L.clientWidth,G.value=X.value-L.clientWidth-16,H.value=z.value-40)};s.watch(()=>te.value,async(r,v)=>{var f,w,L;(f=E.value)!=null&&f.resetComponentState&&E.value.resetComponentState(),r&&r.channels&&r.channels.length>0&&Ee(),Oe(),await s.nextTick(),(w=E.value)!=null&&w.initSegmentSpans&&E.value.initSegmentSpans(),(L=E.value)!=null&&L.getAnnotations&&E.value.getAnnotations()},{immediate:!1,deep:!0}),s.watch(ye,(r,v)=>{v!==void 0&&r!==v&&(console.log(`Number of visible channels changed from ${v} to ${r}`),setTimeout(()=>{var f;re(),(f=p.value)!=null&&f.renderAll&&p.value.renderAll()},20))});const a=r=>{store.dispatch("viewerModule/setActiveAnnotation",r).then(()=>{p.value.renderAnnotationCanvas(),F.value=!0})};s.watch(U,r=>{r&&(console.log(`TSViewer: Re-rendering due to: ${r.cause} (${r.timestamp})`),s.nextTick(()=>{var v;r.cause==="channel-visibility"?setTimeout(()=>{var f;re(),(f=p.value)!=null&&f.renderAll&&p.value.renderAll()},10):(v=p.value)!=null&&v.renderAll&&p.value.renderAll()}),g.resetRerenderTrigger(null))},{deep:!0});const d=r=>{a(r)},h=async r=>{if(console.log("📍 TSViewer: onCreateUpdateAnnotation received:",r),!r||Object.keys(r).length===0){console.error("🚨 TSViewer: Received empty annotation!");return}if(!r.layer_id){console.error("🚨 TSViewer: annotation.layer_id is missing!",r);return}F.value=!1;try{r.id?(console.log("📍 TSViewer: Updating annotation via composable"),await _(r),V()):(console.log("📍 TSViewer: Creating annotation via composable"),await R(r),nn()),console.log("📍 TSViewer: Annotation operation completed successfully")}catch(v){console.error("📍 TSViewer: Error creating/updating annotation:",v),F.value=!0}},V=()=>{p.value.renderAnnotationCanvas()},K=r=>{ue.value=r,Y.value=!0},Ke=async r=>{Y.value=!1;try{await M(r),Qe(),console.log("📍 TSViewer: Annotation deleted successfully")}catch(v){console.error("📍 TSViewer: Error deleting annotation:",v)}},Qe=()=>{p.value.renderAnnotationCanvas()},en=(r,v,f,w,L,oe)=>{if(console.log("📍 TSViewer: onAddAnnotation called with:",{startTime:r,duration:v,allChannels:f,label:w,description:L,layer:oe}),!oe||!oe.id){console.error("Invalid layer provided to onAddAnnotation:",oe);return}const Cn=g.viewerSelectedChannels||[],bn=f?[]:Cn.map(En=>En.id),Pe={id:null,label:w||"Event",description:L||"",start:Math.floor(r),end:Math.floor(r+v),duration:Math.floor(v),channelIds:bn,allChannels:f,layer_id:oe.id,selected:!0,userId:null};console.log("📍 TSViewer: Created annotation object:",Pe),g.setActiveAnnotation(Pe),console.log("📍 TSViewer: Store now contains:",g.activeAnnotation),F.value=!0,console.log("📍 TSViewer: Modal opened with annotation data")},nn=()=>{p.value.renderAnnotationCanvas()},tn=r=>{p.value.createAnnotationLayer(r)},_e=()=>{ne.value=!1},rn=()=>{p.value.resetFocusedAnnotation(),p.value.renderAnnotationCanvas(),F.value=!1},on=()=>{B.value=!1},an=r=>{r.stopPropagation(),r.preventDefault();const v=r.detail.sourceEvent.metaKey;Ce({channelId:r.currentTarget.dataset.id,append:v}),p.value.renderAll()},sn=()=>{D.value=p.value.getNextAnnotation()},ln=()=>{D.value=p.value.getPreviousAnnotation()},un=r=>{be(r*1e6)},cn=()=>{$.value=$.value*1.25},dn=()=>{$.value=$.value*.8},fn=()=>{E.value.getAnnotations()},vn=()=>{},pn=()=>{console.log("Page forward triggered from toolbar");const r=Math.max(D.value-3/4*j.value,O.value);Q(r),s.nextTick(()=>{var v;(v=p.value)==null||v.renderAll()})},hn=()=>{console.log("Page forward triggered from toolbar");const r=Math.min(D.value+3/4*j.value,b.value-j.value);console.log(`Moving from ${D.value} to ${r}`),Q(r),s.nextTick(()=>{var v,f;(v=p.value)!=null&&v.invalidate&&p.value.invalidate(),(f=p.value)!=null&&f.renderAll&&p.value.renderAll()})},gn=r=>{let v=p.value.rsPeriod;Q(r.annotation.start-(J.value*G.value-i.CURSOROFFSET)*v),s.nextTick(()=>{var f;(f=p.value)==null||f.renderAll()})},Ce=r=>{const v=C.value.map(f=>{const w=f.selected;return r.append===!1&&(f.selected=!1),r.channelId===f.id&&(f.selected=!w),f});g.setChannels(v)},yn=(r,v)=>{const f=C.value.map(w=>(v===!1&&(w.selected=!1),w.id in r&&(w.selected=!0),w));g.setChannels(f)},Q=r=>{D.value=r},mn=r=>{J.value=r},wn=r=>{$.value=r},be=r=>{r>i.MAXDURATION?j.value=i.MAXDURATION:j.value=r},An=(r,v,f)=>(i.DEFAULTDPI*window.devicePixelRatio/(v*f)/25.4).toFixed(1)+" "+r.unit+"/mm",Ee=()=>{var v;const r=(v=te.value)==null?void 0:v.channels;if(console.log("🔄 initTimeRange called with channels:",(r==null?void 0:r.length)||0),r&&r.length>0){O.value=r[0].start,b.value=r[0].end;for(let w=1;w<r.length;w++)r[w].start<O.value&&(O.value=r[w].start),r[w].end>b.value&&(b.value=r[w].end);const f=D.value;D.value=O.value,console.log("📅 Time range initialized:",{ts_start:O.value,ts_end:b.value,oldStart:f,newStart:D.value,duration:j.value,startDate:new Date(O.value/1e3).toISOString(),endDate:new Date(b.value/1e3).toISOString()})}else console.warn("⚠️ initTimeRange: No channels found in activeViewer")},Tn=()=>{Ee()},Sn=r=>{ne.value=!0},In=r=>{const v=ie([],"channels",r),f=ie("","filter",r),w=S.value;w.onChannels=v,Yn(f)?(w.input0=NaN,w.input1=NaN,w.selectedFilter=null,w.selectedNotch=null):(w.input0=f.input0,w.input1=f.input1),B.value=!0},_n=r=>{p.value.setFilters(r)},Oe=()=>{var r,v;(r=p.value)==null||r.initViewerCanvas(),(v=p.value)==null||v.renderAll()};return s.onMounted(()=>{Tn();const r=document.getElementById("ts_viewer");if(!r){console.warn("ts_viewer element not found");return}var v=window.getComputedStyle(r,null);const f=parseInt(v.getPropertyValue("height")),w=m.isPreview?0:100;z.value=f-w,k.value&&(X.value=k.value.offsetWidth),window.addEventListener("resize",re);const L=I.value;L&&(ee.value=L.clientWidth,G.value=X.value-L.clientWidth-5-10,H.value=z.value-88),j.value=i.INITDURATION,Oe()}),s.onBeforeUnmount(()=>{window.removeEventListener("resize",re)}),e({openEditAnnotationDialog:a,confirmDeleteAnnotation:K,selectAnnotation:gn,selectChannel:Ce,selectChannels:yn,openLayerWindow:Sn,openFilterWindow:In,setTimeseriesFilters:_n}),(r,v)=>(s.openBlock(),s.createElementBlock("div",{id:"ts_viewer",ref_key:"ts_viewer",ref:k,class:s.normalizeClass([n.isPreview?"timeseries-viewer preview":"timeseries-viewer"])},[s.createVNode(s.unref(t),{ref_key:"scrubber",ref:E,ts_start:O.value,ts_end:b.value,"c-width":G.value,"label-width":ee.value,"cursor-loc":J.value,start:D.value,duration:j.value,constants:i,"active-viewer":te.value,onSetStart:Q},null,8,["ts_start","ts_end","c-width","label-width","cursor-loc","start","duration","active-viewer"]),s.createElementVNode("div",at,[s.createElementVNode("div",{id:"channelLabels",ref_key:"channelLabels",ref:I},[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(he.value,f=>(s.openBlock(),s.createElementBlock("div",{key:f.displayName,class:"chLabelWrap","data-id":f.id,onTap:an},[s.createElementVNode("div",{class:s.normalizeClass([f.selected?"labelDiv selected":"labelDiv"])},s.toDisplayString(f.displayName),3),s.createElementVNode("div",{class:s.normalizeClass(["chLabelIndWrap",[f.selected?"selected":""]]),hidden:ge.value},[s.createElementVNode("div",{class:"chLabelInd",hidden:ge.value},s.toDisplayString(An(f,$.value,f.rowScale)),9,lt)],10,it)],40,st))),128))],512),s.createVNode(s.unref(o),{ref_key:"viewerCanvas",ref:p,window_height:z.value,window_width:X.value,duration:j.value,start:D.value,"c-width":G.value,"c-height":H.value,constants:i,"ts-start":O.value,"ts-end":b.value,"cursor-loc":J.value,"global-zoom-mult":$.value,"active-viewer":te.value,onSetStart:Q,onSetCursor:mn,onSetGlobalZoom:wn,onSetDuration:be,onChannelsInitialized:vn,onAnnLayersInitialized:fn,onCloseAnnotationLayerWindow:_e,onAddAnnotation:en,onUpdateAnnotation:d},null,8,["window_height","window_width","duration","start","c-width","c-height","ts-start","ts-end","cursor-loc","global-zoom-mult","active-viewer"])]),n.isPreview?s.createCommentVNode("",!0):(s.openBlock(),s.createBlock(s.unref(l),{key:0,constants:i,duration:j.value,start:D.value,onPageBack:pn,onPageForward:hn,onIncrementZoom:cn,onDecrementZoom:dn,onUpdateDuration:un,onNextAnnotation:sn,onPreviousAnnotation:ln,onSetStart:Q},null,8,["duration","start"])),s.createVNode(s.unref(c),{ref_key:"filterWindow",ref:S,visible:B.value,"onUpdate:visible":v[0]||(v[0]=f=>B.value=f),onCloseWindow:on},null,8,["visible"]),s.createVNode(s.unref(y),{ref_key:"annotationModal",ref:q,visible:F.value,"onUpdate:visible":v[1]||(v[1]=f=>F.value=f),onCloseWindow:rn,onCreateUpdateAnnotation:h},null,8,["visible"]),s.createVNode(s.unref(A),{visible:Y.value,"delete-annotation":ue.value,"onUpdate:visible":v[2]||(v[2]=f=>Y.value=f),onDelete:Ke},null,8,["visible","delete-annotation"]),s.createVNode(s.unref(u),{visible:ne.value,onCloseWindow:_e,onCreateLayer:tn},null,8,["visible"])],2))}},Ye=Je(ut,[["__scopeId","data-v-d5eda6cd"]]),ct={install(n){n.component("TSViewer",Ye)}};exports.TSViewer=Ye;exports._arity=fe;exports._curry1=P;exports._curry2=N;exports._curry3=le;exports._dispatchable=We;exports._export_sfc=Je;exports._isInteger=Xe;exports._isPlaceholder=T;exports._reduce=Be;exports._reduced=$e;exports._xfBase=Fe;exports.defaultTo=se;exports.index=ct;exports.keys=we;exports.nth=Ge;exports.propEq=x;exports.propOr=ie;exports.useHandleXhrError=ce;exports.useSendXhr=rt;exports.useToken=ae;exports.useViewerStore=Se;