@kong-ui-public/dashboard-renderer 8.0.5-pr.2640.fb8bab909.0 → 8.1.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.
@@ -1,11 +1,11 @@
1
- var ni = Object.defineProperty;
1
+ var oi = Object.defineProperty;
2
2
  var _t = (a) => {
3
3
  throw TypeError(a);
4
4
  };
5
- var oi = (a, e, t) => e in a ? ni(a, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : a[e] = t;
6
- var bt = (a, e, t) => oi(a, typeof e != "symbol" ? e + "" : e, t), it = (a, e, t) => e.has(a) || _t("Cannot " + t);
5
+ var ai = (a, e, t) => e in a ? oi(a, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : a[e] = t;
6
+ var bt = (a, e, t) => ai(a, typeof e != "symbol" ? e + "" : e, t), it = (a, e, t) => e.has(a) || _t("Cannot " + t);
7
7
  var v = (a, e, t) => (it(a, e, "read from private field"), t ? t.call(a) : e.get(a)), F = (a, e, t) => e.has(a) ? _t("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(a) : e.set(a, t), I = (a, e, t, i) => (it(a, e, "write to private field"), i ? i.call(a, t) : e.set(a, t), t), G = (a, e, t) => (it(a, e, "access private method"), t);
8
- var Te = (a, e, t, i) => ({
8
+ var ze = (a, e, t, i) => ({
9
9
  set _(s) {
10
10
  I(a, e, s, t);
11
11
  },
@@ -13,22 +13,22 @@ var Te = (a, e, t, i) => ({
13
13
  return v(a, e, i);
14
14
  }
15
15
  });
16
- import { ref as H, watchEffect as Mt, inject as ve, provide as ai, onMounted as at, computed as T, watch as ze, onUnmounted as lt, defineComponent as Z, resolveComponent as ge, createBlock as O, renderSlot as De, createCommentVNode as V, unref as E, openBlock as x, createSlots as Qe, withCtx as $, createElementVNode as oe, toDisplayString as ne, useCssVars as Ye, normalizeClass as je, createVNode as ue, mergeProps as It, createTextVNode as ht, createElementBlock as K, normalizeProps as li, guardReactiveProps as hi, defineAsyncComponent as qt, readonly as st, toRef as wt, nextTick as ut, resolveDynamicComponent as Pt, toHandlers as ui, Fragment as $t, renderList as Ft, normalizeStyle as Et, mergeModels as xt, useModel as di, getCurrentInstance as ci } from "vue";
17
- import { msToGranularity as rt, getFieldDataSources as Gt, stripUnknownFilters as fi, TimePeriods as gi, TIMEFRAME_LOOKUP as mi, formatTime as Ct, EXPORT_RECORD_LIMIT as pi } from "@kong-ui-public/analytics-utilities";
18
- import { handleQueryError as yi, SimpleChart as vi, AnalyticsChart as _i, TopNTable as bi, CsvExportModal as wi } from "@kong-ui-public/analytics-chart";
19
- import Ei from "swrv";
16
+ import { ref as H, watchEffect as Mt, inject as ve, provide as li, onMounted as at, computed as k, watch as De, onUnmounted as lt, defineComponent as J, resolveComponent as me, createBlock as O, renderSlot as Se, createCommentVNode as V, unref as E, openBlock as x, createSlots as Ye, withCtx as $, createElementVNode as oe, toDisplayString as ne, useCssVars as je, normalizeClass as Ne, createVNode as ue, mergeProps as It, createTextVNode as ht, createElementBlock as K, normalizeProps as hi, guardReactiveProps as ui, defineAsyncComponent as qt, readonly as st, toRef as wt, nextTick as ut, resolveDynamicComponent as Pt, toHandlers as di, Fragment as $t, renderList as Ft, normalizeStyle as Et, mergeModels as xt, useModel as ci, getCurrentInstance as fi } from "vue";
17
+ import { msToGranularity as rt, getFieldDataSources as Gt, stripUnknownFilters as gi, TimePeriods as mi, TIMEFRAME_LOOKUP as pi, formatTime as Ct, EXPORT_RECORD_LIMIT as yi } from "@kong-ui-public/analytics-utilities";
18
+ import { handleQueryError as vi, SimpleChart as _i, AnalyticsChart as bi, TopNTable as wi, CsvExportModal as Ei } from "@kong-ui-public/analytics-chart";
19
+ import xi from "swrv";
20
20
  import "axios";
21
- import { createI18n as xi, i18nTComponent as Ci } from "@kong-ui-public/i18n";
21
+ import { createI18n as Ci, i18nTComponent as Ri } from "@kong-ui-public/i18n";
22
22
  import { useAnalyticsConfigStore as dt } from "@kong-ui-public/analytics-config-store";
23
- import { VisibilityOffIcon as Ri, WarningOutlineIcon as ki, WarningIcon as Ti, EditIcon as zi, MoreIcon as Di } from "@kong/icons";
24
- import { MetricsProvider as Si, MetricsConsumer as Ni } from "@kong-ui-public/analytics-metric-provider";
23
+ import { VisibilityOffIcon as ki, WarningOutlineIcon as Ti, WarningIcon as zi, EditIcon as Di, MoreIcon as Si } from "@kong/icons";
24
+ import { MetricsProvider as Ni, MetricsConsumer as Li } from "@kong-ui-public/analytics-metric-provider";
25
25
  var Bt = /* @__PURE__ */ ((a) => (a.VALIDATING = "VALIDATING", a.VALIDATING_HAS_DATA = "VALIDATING_HAS_DATA", a.PENDING = "PENDING", a.SUCCESS = "SUCCESS", a.SUCCESS_HAS_DATA = "SUCCESS_HAS_DATA", a.ERROR = "ERROR", a.STALE_IF_ERROR = "STALE_IF_ERROR", a))(Bt || {});
26
- const Li = (a) => {
26
+ const Ai = (a) => {
27
27
  var e, t, i, s, r;
28
28
  return a ? !!// TODO: revisit: currently only the first check ever matters?
29
29
  ((e = Object.keys(a)) != null && e.length || (t = a.data) != null && t.length || (s = (i = a.data) == null ? void 0 : i.data) != null && s.length || !((r = a.data) != null && r.data) && typeof a.data == "object" && Object.keys(a == null ? void 0 : a.data).length) : !1;
30
30
  };
31
- function Ai(a = H({}), e, t, i = Li) {
31
+ function Oi(a = H({}), e, t, i = Ai) {
32
32
  const s = H(
33
33
  "PENDING"
34
34
  /* PENDING */
@@ -65,7 +65,7 @@ function Ai(a = H({}), e, t, i = Li) {
65
65
  swrvState: Bt
66
66
  };
67
67
  }
68
- const Oi = {
68
+ const Hi = {
69
69
  noQueryBridge: "No query bridge provided. Unable to render dashboard.",
70
70
  trendRange: {
71
71
  "24h": "Last 24-hour summary",
@@ -78,10 +78,10 @@ const Oi = {
78
78
  fullscreen: "Fullscreen",
79
79
  remove: "Remove",
80
80
  delete: "Delete"
81
- }, Hi = {
81
+ }, Mi = {
82
82
  defaultFilename: "Chart export",
83
83
  exportAsCsv: "Export as CSV"
84
- }, Mi = "Explore", Ii = "View requests", qi = "This tile was configured with {savedGranularity} granularity, which is no longer available. It now shows {currentGranularity} data, the closest available granularity.", Pi = {
84
+ }, Ii = "Explore", qi = "View requests", Pi = "This tile was configured with {savedGranularity} granularity, which is no longer available. It now shows {currentGranularity} data, the closest available granularity.", $i = {
85
85
  daily: "1 day",
86
86
  fiveMinutely: "5 minutes",
87
87
  hourly: "1 hour",
@@ -94,30 +94,30 @@ const Oi = {
94
94
  twoHourly: "2 hours",
95
95
  weekly: "1 week",
96
96
  unknown: "Unknown"
97
- }, $i = {
98
- renderer: Oi,
99
- csvExport: Hi,
100
- jumpToExplore: Mi,
101
- jumpToRequests: Ii,
102
- query_aged_out_warning: qi,
103
- granularities: Pi
97
+ }, Fi = {
98
+ renderer: Hi,
99
+ csvExport: Mi,
100
+ jumpToExplore: Ii,
101
+ jumpToRequests: qi,
102
+ query_aged_out_warning: Pi,
103
+ granularities: $i
104
104
  };
105
- function Fi() {
106
- const a = xi("en-us", $i);
105
+ function Gi() {
106
+ const a = Ci("en-us", Fi);
107
107
  return {
108
108
  i18n: a,
109
- i18nT: Ci(a)
109
+ i18nT: Ri(a)
110
110
  // Translation component <i18n-t>
111
111
  };
112
112
  }
113
- const Xe = 170, Ut = 6, me = "analytics-query-provider", Rt = "{entity-id}", Gi = "{cp-id}", Bi = "{timeframe}", Ui = 30 * 1e3, Wi = 3e5, Ki = 36e5;
114
- function Vi() {
115
- const a = ve(me);
113
+ const Xe = 170, Ut = 6, pe = "analytics-query-provider", Rt = "{entity-id}", Bi = "{cp-id}", Ui = "{timeframe}", Wi = 30 * 1e3, Ki = 3e5, Vi = 36e5;
114
+ function Qi() {
115
+ const a = ve(pe);
116
116
  return {
117
117
  evaluateFeatureFlag: (t, i) => a ? a.evaluateFeatureFlagFn(t, i) : i
118
118
  };
119
119
  }
120
- function Qi(a) {
120
+ function Yi(a) {
121
121
  return a && a.__esModule && Object.prototype.hasOwnProperty.call(a, "default") ? a.default : a;
122
122
  }
123
123
  var Wt = { exports: {} };
@@ -160,7 +160,7 @@ var Wt = { exports: {} };
160
160
  }, n.prototype.emit = function(h, u, l, f, m, g) {
161
161
  var y = t ? t + h : h;
162
162
  if (!this._events[y]) return !1;
163
- var p = this._events[y], D = arguments.length, q, z;
163
+ var p = this._events[y], D = arguments.length, P, z;
164
164
  if (p.fn) {
165
165
  switch (p.once && this.removeListener(h, p.fn, void 0, !0), D) {
166
166
  case 1:
@@ -176,9 +176,9 @@ var Wt = { exports: {} };
176
176
  case 6:
177
177
  return p.fn.call(p.context, u, l, f, m, g), !0;
178
178
  }
179
- for (z = 1, q = new Array(D - 1); z < D; z++)
180
- q[z - 1] = arguments[z];
181
- p.fn.apply(p.context, q);
179
+ for (z = 1, P = new Array(D - 1); z < D; z++)
180
+ P[z - 1] = arguments[z];
181
+ p.fn.apply(p.context, P);
182
182
  } else {
183
183
  var Q = p.length, B;
184
184
  for (z = 0; z < Q; z++)
@@ -196,9 +196,9 @@ var Wt = { exports: {} };
196
196
  p[z].fn.call(p[z].context, u, l, f);
197
197
  break;
198
198
  default:
199
- if (!q) for (B = 1, q = new Array(D - 1); B < D; B++)
200
- q[B - 1] = arguments[B];
201
- p[z].fn.apply(p[z].context, q);
199
+ if (!P) for (B = 1, P = new Array(D - 1); B < D; B++)
200
+ P[B - 1] = arguments[B];
201
+ p[z].fn.apply(p[z].context, P);
202
202
  }
203
203
  }
204
204
  return !0;
@@ -225,23 +225,23 @@ var Wt = { exports: {} };
225
225
  return h ? (u = t ? t + h : h, this._events[u] && o(this, u)) : (this._events = new i(), this._eventsCount = 0), this;
226
226
  }, n.prototype.off = n.prototype.removeListener, n.prototype.addListener = n.prototype.on, n.prefixed = t, n.EventEmitter = n, a.exports = n;
227
227
  })(Wt);
228
- var Yi = Wt.exports;
229
- const ji = /* @__PURE__ */ Qi(Yi);
228
+ var ji = Wt.exports;
229
+ const Xi = /* @__PURE__ */ Yi(ji);
230
230
  class Kt extends Error {
231
231
  constructor(e) {
232
232
  super(e), this.name = "TimeoutError";
233
233
  }
234
234
  }
235
- class Xi extends Error {
235
+ class Zi extends Error {
236
236
  constructor(e) {
237
237
  super(), this.name = "AbortError", this.message = e;
238
238
  }
239
239
  }
240
- const kt = (a) => globalThis.DOMException === void 0 ? new Xi(a) : new DOMException(a), Tt = (a) => {
240
+ const kt = (a) => globalThis.DOMException === void 0 ? new Zi(a) : new DOMException(a), Tt = (a) => {
241
241
  const e = a.reason === void 0 ? kt("This operation was aborted.") : a.reason;
242
242
  return e instanceof Error ? e : kt(e);
243
243
  };
244
- function Zi(a, e) {
244
+ function Ji(a, e) {
245
245
  const {
246
246
  milliseconds: t,
247
247
  fallback: i,
@@ -287,7 +287,7 @@ function Zi(a, e) {
287
287
  r.clearTimeout.call(void 0, o), o = void 0;
288
288
  }, h;
289
289
  }
290
- function Ji(a, e, t) {
290
+ function es(a, e, t) {
291
291
  let i = 0, s = a.length;
292
292
  for (; s > 0; ) {
293
293
  const r = Math.trunc(s / 2);
@@ -296,10 +296,10 @@ function Ji(a, e, t) {
296
296
  }
297
297
  return i;
298
298
  }
299
- var ie;
300
- class es {
299
+ var te;
300
+ class ts {
301
301
  constructor() {
302
- F(this, ie, []);
302
+ F(this, te, []);
303
303
  }
304
304
  enqueue(e, t) {
305
305
  t = {
@@ -311,56 +311,56 @@ class es {
311
311
  id: t.id,
312
312
  run: e
313
313
  };
314
- if (this.size === 0 || v(this, ie)[this.size - 1].priority >= t.priority) {
315
- v(this, ie).push(i);
314
+ if (this.size === 0 || v(this, te)[this.size - 1].priority >= t.priority) {
315
+ v(this, te).push(i);
316
316
  return;
317
317
  }
318
- const s = Ji(v(this, ie), i, (r, o) => o.priority - r.priority);
319
- v(this, ie).splice(s, 0, i);
318
+ const s = es(v(this, te), i, (r, o) => o.priority - r.priority);
319
+ v(this, te).splice(s, 0, i);
320
320
  }
321
321
  setPriority(e, t) {
322
- const i = v(this, ie).findIndex((r) => r.id === e);
322
+ const i = v(this, te).findIndex((r) => r.id === e);
323
323
  if (i === -1)
324
324
  throw new ReferenceError(`No promise function with the id "${e}" exists in the queue.`);
325
- const [s] = v(this, ie).splice(i, 1);
325
+ const [s] = v(this, te).splice(i, 1);
326
326
  this.enqueue(s.run, { priority: t, id: e });
327
327
  }
328
328
  dequeue() {
329
- const e = v(this, ie).shift();
329
+ const e = v(this, te).shift();
330
330
  return e == null ? void 0 : e.run;
331
331
  }
332
332
  filter(e) {
333
- return v(this, ie).filter((t) => t.priority === e.priority).map((t) => t.run);
333
+ return v(this, te).filter((t) => t.priority === e.priority).map((t) => t.run);
334
334
  }
335
335
  get size() {
336
- return v(this, ie).length;
336
+ return v(this, te).length;
337
337
  }
338
338
  }
339
- ie = new WeakMap();
340
- var be, we, fe, Le, Ee, Ae, se, xe, W, Oe, re, Ce, ce, He, Ve, k, Vt, Qt, Yt, jt, Xt, Pe, nt, ot, $e, Zt, Fe;
341
- class ts extends ji {
339
+ te = new WeakMap();
340
+ var be, we, ge, Oe, Ee, He, ie, xe, W, Me, se, Ce, ce, Ie, Qe, T, Vt, Qt, Yt, jt, Xt, $e, nt, ot, Fe, Zt, Ge;
341
+ class is extends Xi {
342
342
  // TODO: The `throwOnTimeout` option should affect the return types of `add()` and `addAll()`
343
343
  constructor(t) {
344
344
  var i, s;
345
345
  super();
346
- F(this, k);
346
+ F(this, T);
347
347
  F(this, be);
348
348
  F(this, we);
349
- F(this, fe, 0);
350
- F(this, Le);
349
+ F(this, ge, 0);
350
+ F(this, Oe);
351
351
  F(this, Ee);
352
- F(this, Ae, 0);
353
- F(this, se);
352
+ F(this, He, 0);
353
+ F(this, ie);
354
354
  F(this, xe);
355
355
  F(this, W);
356
- F(this, Oe);
357
- F(this, re, 0);
356
+ F(this, Me);
357
+ F(this, se, 0);
358
358
  // The `!` is needed because of https://github.com/microsoft/TypeScript/issues/32194
359
359
  F(this, Ce);
360
360
  F(this, ce);
361
- F(this, He);
361
+ F(this, Ie);
362
362
  // Use to assign a unique identifier to a promise function, if not explicitly specified
363
- F(this, Ve, 1n);
363
+ F(this, Qe, 1n);
364
364
  /**
365
365
  Per-operation timeout in milliseconds. Operations fulfill once `timeout` elapses if they haven't already.
366
366
 
@@ -373,13 +373,13 @@ class ts extends ji {
373
373
  interval: 0,
374
374
  concurrency: Number.POSITIVE_INFINITY,
375
375
  autoStart: !0,
376
- queueClass: es,
376
+ queueClass: ts,
377
377
  ...t
378
378
  }, !(typeof t.intervalCap == "number" && t.intervalCap >= 1))
379
379
  throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${((i = t.intervalCap) == null ? void 0 : i.toString()) ?? ""}\` (${typeof t.intervalCap})`);
380
380
  if (t.interval === void 0 || !(Number.isFinite(t.interval) && t.interval >= 0))
381
381
  throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${((s = t.interval) == null ? void 0 : s.toString()) ?? ""}\` (${typeof t.interval})`);
382
- I(this, be, t.carryoverConcurrencyCount), I(this, we, t.intervalCap === Number.POSITIVE_INFINITY || t.interval === 0), I(this, Le, t.intervalCap), I(this, Ee, t.interval), I(this, W, new t.queueClass()), I(this, Oe, t.queueClass), this.concurrency = t.concurrency, this.timeout = t.timeout, I(this, He, t.throwOnTimeout === !0), I(this, ce, t.autoStart === !1);
382
+ I(this, be, t.carryoverConcurrencyCount), I(this, we, t.intervalCap === Number.POSITIVE_INFINITY || t.interval === 0), I(this, Oe, t.intervalCap), I(this, Ee, t.interval), I(this, W, new t.queueClass()), I(this, Me, t.queueClass), this.concurrency = t.concurrency, this.timeout = t.timeout, I(this, Ie, t.throwOnTimeout === !0), I(this, ce, t.autoStart === !1);
383
383
  }
384
384
  get concurrency() {
385
385
  return v(this, Ce);
@@ -387,7 +387,7 @@ class ts extends ji {
387
387
  set concurrency(t) {
388
388
  if (!(typeof t == "number" && t >= 1))
389
389
  throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${t}\` (${typeof t})`);
390
- I(this, Ce, t), G(this, k, $e).call(this);
390
+ I(this, Ce, t), G(this, T, Fe).call(this);
391
391
  }
392
392
  /**
393
393
  Updates the priority of a promise function by its id, affecting its execution order. Requires a defined concurrency limit to take effect.
@@ -429,18 +429,18 @@ class ts extends ji {
429
429
  v(this, W).setPriority(t, i);
430
430
  }
431
431
  async add(t, i = {}) {
432
- return i.id ?? (i.id = (Te(this, Ve)._++).toString()), i = {
432
+ return i.id ?? (i.id = (ze(this, Qe)._++).toString()), i = {
433
433
  timeout: this.timeout,
434
- throwOnTimeout: v(this, He),
434
+ throwOnTimeout: v(this, Ie),
435
435
  ...i
436
436
  }, new Promise((s, r) => {
437
437
  v(this, W).enqueue(async () => {
438
438
  var o;
439
- Te(this, re)._++, Te(this, fe)._++;
439
+ ze(this, se)._++, ze(this, ge)._++;
440
440
  try {
441
441
  (o = i.signal) == null || o.throwIfAborted();
442
442
  let n = t({ signal: i.signal });
443
- i.timeout && (n = Zi(Promise.resolve(n), { milliseconds: i.timeout })), i.signal && (n = Promise.race([n, G(this, k, Zt).call(this, i.signal)]));
443
+ i.timeout && (n = Ji(Promise.resolve(n), { milliseconds: i.timeout })), i.signal && (n = Promise.race([n, G(this, T, Zt).call(this, i.signal)]));
444
444
  const d = await n;
445
445
  s(d), this.emit("completed", d);
446
446
  } catch (n) {
@@ -450,9 +450,9 @@ class ts extends ji {
450
450
  }
451
451
  r(n), this.emit("error", n);
452
452
  } finally {
453
- G(this, k, Yt).call(this);
453
+ G(this, T, Yt).call(this);
454
454
  }
455
- }, i), this.emit("add"), G(this, k, Pe).call(this);
455
+ }, i), this.emit("add"), G(this, T, $e).call(this);
456
456
  });
457
457
  }
458
458
  async addAll(t, i) {
@@ -462,7 +462,7 @@ class ts extends ji {
462
462
  Start (or resume) executing enqueued tasks within concurrency limit. No need to call this if queue is not paused (via `options.autoStart = false` or by `.pause()` method.)
463
463
  */
464
464
  start() {
465
- return v(this, ce) ? (I(this, ce, !1), G(this, k, $e).call(this), this) : this;
465
+ return v(this, ce) ? (I(this, ce, !1), G(this, T, Fe).call(this), this) : this;
466
466
  }
467
467
  /**
468
468
  Put queue execution on hold.
@@ -474,7 +474,7 @@ class ts extends ji {
474
474
  Clear the queue.
475
475
  */
476
476
  clear() {
477
- I(this, W, new (v(this, Oe))());
477
+ I(this, W, new (v(this, Me))());
478
478
  }
479
479
  /**
480
480
  Can be called multiple times. Useful if you for example add additional items at a later time.
@@ -482,7 +482,7 @@ class ts extends ji {
482
482
  @returns A promise that settles when the queue becomes empty.
483
483
  */
484
484
  async onEmpty() {
485
- v(this, W).size !== 0 && await G(this, k, Fe).call(this, "empty");
485
+ v(this, W).size !== 0 && await G(this, T, Ge).call(this, "empty");
486
486
  }
487
487
  /**
488
488
  @returns A promise that settles when the queue size is less than the given limit: `queue.size < limit`.
@@ -492,7 +492,7 @@ class ts extends ji {
492
492
  Note that this only limits the number of items waiting to start. There could still be up to `concurrency` jobs already running that this call does not include in its calculation.
493
493
  */
494
494
  async onSizeLessThan(t) {
495
- v(this, W).size < t || await G(this, k, Fe).call(this, "next", () => v(this, W).size < t);
495
+ v(this, W).size < t || await G(this, T, Ge).call(this, "next", () => v(this, W).size < t);
496
496
  }
497
497
  /**
498
498
  The difference with `.onEmpty` is that `.onIdle` guarantees that all work from the queue has finished. `.onEmpty` merely signals that the queue is empty, but it could mean that some promises haven't completed yet.
@@ -500,7 +500,7 @@ class ts extends ji {
500
500
  @returns A promise that settles when the queue becomes empty, and all promises have completed; `queue.size === 0 && queue.pending === 0`.
501
501
  */
502
502
  async onIdle() {
503
- v(this, re) === 0 && v(this, W).size === 0 || await G(this, k, Fe).call(this, "idle");
503
+ v(this, se) === 0 && v(this, W).size === 0 || await G(this, T, Ge).call(this, "idle");
504
504
  }
505
505
  /**
506
506
  Size of the queue, the number of queued items waiting to run.
@@ -520,7 +520,7 @@ class ts extends ji {
520
520
  Number of running items (no longer in the queue).
521
521
  */
522
522
  get pending() {
523
- return v(this, re);
523
+ return v(this, se);
524
524
  }
525
525
  /**
526
526
  Whether the queue is currently paused.
@@ -529,48 +529,48 @@ class ts extends ji {
529
529
  return v(this, ce);
530
530
  }
531
531
  }
532
- be = new WeakMap(), we = new WeakMap(), fe = new WeakMap(), Le = new WeakMap(), Ee = new WeakMap(), Ae = new WeakMap(), se = new WeakMap(), xe = new WeakMap(), W = new WeakMap(), Oe = new WeakMap(), re = new WeakMap(), Ce = new WeakMap(), ce = new WeakMap(), He = new WeakMap(), Ve = new WeakMap(), k = new WeakSet(), Vt = function() {
533
- return v(this, we) || v(this, fe) < v(this, Le);
532
+ be = new WeakMap(), we = new WeakMap(), ge = new WeakMap(), Oe = new WeakMap(), Ee = new WeakMap(), He = new WeakMap(), ie = new WeakMap(), xe = new WeakMap(), W = new WeakMap(), Me = new WeakMap(), se = new WeakMap(), Ce = new WeakMap(), ce = new WeakMap(), Ie = new WeakMap(), Qe = new WeakMap(), T = new WeakSet(), Vt = function() {
533
+ return v(this, we) || v(this, ge) < v(this, Oe);
534
534
  }, Qt = function() {
535
- return v(this, re) < v(this, Ce);
535
+ return v(this, se) < v(this, Ce);
536
536
  }, Yt = function() {
537
- Te(this, re)._--, G(this, k, Pe).call(this), this.emit("next");
537
+ ze(this, se)._--, G(this, T, $e).call(this), this.emit("next");
538
538
  }, jt = function() {
539
- G(this, k, ot).call(this), G(this, k, nt).call(this), I(this, xe, void 0);
539
+ G(this, T, ot).call(this), G(this, T, nt).call(this), I(this, xe, void 0);
540
540
  }, Xt = function() {
541
541
  const t = Date.now();
542
- if (v(this, se) === void 0) {
543
- const i = v(this, Ae) - t;
542
+ if (v(this, ie) === void 0) {
543
+ const i = v(this, He) - t;
544
544
  if (i < 0)
545
- I(this, fe, v(this, be) ? v(this, re) : 0);
545
+ I(this, ge, v(this, be) ? v(this, se) : 0);
546
546
  else
547
547
  return v(this, xe) === void 0 && I(this, xe, setTimeout(() => {
548
- G(this, k, jt).call(this);
548
+ G(this, T, jt).call(this);
549
549
  }, i)), !0;
550
550
  }
551
551
  return !1;
552
- }, Pe = function() {
552
+ }, $e = function() {
553
553
  if (v(this, W).size === 0)
554
- return v(this, se) && clearInterval(v(this, se)), I(this, se, void 0), this.emit("empty"), v(this, re) === 0 && this.emit("idle"), !1;
554
+ return v(this, ie) && clearInterval(v(this, ie)), I(this, ie, void 0), this.emit("empty"), v(this, se) === 0 && this.emit("idle"), !1;
555
555
  if (!v(this, ce)) {
556
- const t = !v(this, k, Xt);
557
- if (v(this, k, Vt) && v(this, k, Qt)) {
556
+ const t = !v(this, T, Xt);
557
+ if (v(this, T, Vt) && v(this, T, Qt)) {
558
558
  const i = v(this, W).dequeue();
559
- return i ? (this.emit("active"), i(), t && G(this, k, nt).call(this), !0) : !1;
559
+ return i ? (this.emit("active"), i(), t && G(this, T, nt).call(this), !0) : !1;
560
560
  }
561
561
  }
562
562
  return !1;
563
563
  }, nt = function() {
564
- v(this, we) || v(this, se) !== void 0 || (I(this, se, setInterval(() => {
565
- G(this, k, ot).call(this);
566
- }, v(this, Ee))), I(this, Ae, Date.now() + v(this, Ee)));
564
+ v(this, we) || v(this, ie) !== void 0 || (I(this, ie, setInterval(() => {
565
+ G(this, T, ot).call(this);
566
+ }, v(this, Ee))), I(this, He, Date.now() + v(this, Ee)));
567
567
  }, ot = function() {
568
- v(this, fe) === 0 && v(this, re) === 0 && v(this, se) && (clearInterval(v(this, se)), I(this, se, void 0)), I(this, fe, v(this, be) ? v(this, re) : 0), G(this, k, $e).call(this);
568
+ v(this, ge) === 0 && v(this, se) === 0 && v(this, ie) && (clearInterval(v(this, ie)), I(this, ie, void 0)), I(this, ge, v(this, be) ? v(this, se) : 0), G(this, T, Fe).call(this);
569
569
  }, /**
570
570
  Executes all queued functions until it reaches the limit.
571
571
  */
572
- $e = function() {
573
- for (; G(this, k, Pe).call(this); )
572
+ Fe = function() {
573
+ for (; G(this, T, $e).call(this); )
574
574
  ;
575
575
  }, Zt = async function(t) {
576
576
  return new Promise((i, s) => {
@@ -578,7 +578,7 @@ $e = function() {
578
578
  s(t.reason);
579
579
  }, { once: !0 });
580
580
  });
581
- }, Fe = async function(t, i) {
581
+ }, Ge = async function(t, i) {
582
582
  return new Promise((s) => {
583
583
  const r = () => {
584
584
  i && !i() || (this.off(t, r), s());
@@ -586,15 +586,15 @@ $e = function() {
586
586
  this.on(t, r);
587
587
  });
588
588
  };
589
- const is = () => {
590
- const a = dt(), e = ve(me);
589
+ const ss = () => {
590
+ const a = dt(), e = ve(pe);
591
591
  if (!e)
592
592
  return;
593
593
  if (e.queryFnOverride) {
594
594
  console.warn("Detected incorrect use of useRequestQueue. This composable should not be used in nested components. Please discuss with team-data or report an issue if you feel you have a use case.");
595
595
  return;
596
596
  }
597
- const t = new ts({
597
+ const t = new is({
598
598
  carryoverConcurrencyCount: !0,
599
599
  concurrency: a.maxParallelRequests,
600
600
  interval: a.requestInterval,
@@ -604,9 +604,9 @@ const is = () => {
604
604
  queryFnOverride: !0,
605
605
  queryFn: (s, r) => t.add(() => e.queryFn(s, r), { throwOnTimeout: !0 })
606
606
  };
607
- ai(me, i);
607
+ li(pe, i);
608
608
  };
609
- function ss({
609
+ function rs({
610
610
  queryBridge: a,
611
611
  context: e,
612
612
  definition: t,
@@ -617,24 +617,24 @@ function ss({
617
617
  var R, M;
618
618
  s.value = await ((R = a == null ? void 0 : a.exploreBaseUrl) == null ? void 0 : R.call(a)) ?? "", r.value = await ((M = a == null ? void 0 : a.requestsBaseUrl) == null ? void 0 : M.call(a)) ?? "";
619
619
  });
620
- const h = T(() => d.analytics && d.percentiles), u = T(() => !["golden_signals", "top_n", "gauge"].includes(t.value.chart.type)), l = T(() => r.value && t.value.query && t.value.query.datasource !== "llm_usage" && h.value), f = T(() => s.value && t.value.query && ["basic", "api_usage", "llm_usage", void 0].includes(t.value.query.datasource) && h.value), m = T(() => i.value ? rt(i.value.meta.granularity_ms) : void 0), g = T(() => {
620
+ const h = k(() => d.analytics && d.percentiles), u = k(() => !["golden_signals", "top_n", "gauge"].includes(t.value.chart.type)), l = k(() => r.value && t.value.query && t.value.query.datasource !== "llm_usage" && h.value), f = k(() => s.value && t.value.query && ["basic", "api_usage", "llm_usage", void 0].includes(t.value.query.datasource) && h.value), m = k(() => i.value ? rt(i.value.meta.granularity_ms) : void 0), g = k(() => {
621
621
  var Y;
622
622
  const R = [...e.value.filters, ...t.value.query.filters ?? []], M = ((Y = t.value.query) == null ? void 0 : Y.datasource) ?? "api_usage";
623
- return R.filter((de) => Gt(de.field).some((J) => M === J));
624
- }), y = T(() => {
623
+ return R.filter((de) => Gt(de.field).some((j) => M === j));
624
+ }), y = k(() => {
625
625
  if (!f.value || !u.value)
626
626
  return "";
627
627
  const R = g.value, M = t.value.query.time_range || e.value.timeSpec, Y = Q(M, R);
628
628
  return B(Y);
629
- }), p = T(() => {
629
+ }), p = k(() => {
630
630
  if (!l.value || !u.value)
631
631
  return "";
632
- const R = g.value, M = q(
632
+ const R = g.value, M = P(
633
633
  t.value.query.time_range || e.value.timeSpec,
634
634
  R
635
635
  );
636
636
  return D(M);
637
- }), D = (R) => l.value ? `${r.value}?q=${JSON.stringify(R)}` : "", q = (R, M) => {
637
+ }), D = (R) => l.value ? `${r.value}?q=${JSON.stringify(R)}` : "", P = (R, M) => {
638
638
  var Y, de;
639
639
  return {
640
640
  filter: M,
@@ -666,7 +666,7 @@ function ss({
666
666
  const M = ["api_usage", "llm_usage"].includes(t.value.query.datasource) ? t.value.query.datasource : "api_usage";
667
667
  return `${s.value}?q=${JSON.stringify(R)}&d=${M}&c=${t.value.chart.type}`;
668
668
  };
669
- return ze([l, f], ([R, M]) => {
669
+ return De([l, f], ([R, M]) => {
670
670
  R && (o.value = { href: "" }), M && (n.value = { href: "" });
671
671
  }), {
672
672
  exploreLinkKebabMenu: y,
@@ -682,12 +682,12 @@ function ss({
682
682
  buildRequestLink: D
683
683
  };
684
684
  }
685
- const rs = (a, e, t) => {
685
+ const ns = (a, e, t) => {
686
686
  const i = [];
687
- return e && i.push(...e), i.push(...fi(a, t)), i;
687
+ return e && i.push(...e), i.push(...gi(a, t)), i;
688
688
  };
689
- function ns() {
690
- const a = ve(me), e = new AbortController();
689
+ function os() {
690
+ const a = ve(pe), e = new AbortController();
691
691
  return lt(() => {
692
692
  e.abort();
693
693
  }), { issueQuery: async (i, s, r) => {
@@ -697,7 +697,7 @@ function ns() {
697
697
  datasource: o,
698
698
  limit: n,
699
699
  ...d
700
- } = i, h = o || "basic", u = rs(h, i.filters, s.filters);
700
+ } = i, h = o || "basic", u = ns(h, i.filters, s.filters);
701
701
  let l = i.time_range;
702
702
  l ? l.tz || (l = {
703
703
  ...l,
@@ -719,12 +719,12 @@ function ns() {
719
719
  } };
720
720
  }
721
721
  const ye = {
722
- useContextLinks: ss,
723
- useEvaluateFeatureFlag: Vi,
724
- useI18n: Fi,
725
- useIssueQuery: ns,
726
- useRequestQueue: is
727
- }, ct = /* @__PURE__ */ Z({
722
+ useContextLinks: rs,
723
+ useEvaluateFeatureFlag: Qi,
724
+ useI18n: Gi,
725
+ useIssueQuery: os,
726
+ useRequestQueue: ss
727
+ }, ct = /* @__PURE__ */ J({
728
728
  __name: "QueryDataProvider",
729
729
  props: {
730
730
  context: {},
@@ -735,12 +735,12 @@ const ye = {
735
735
  },
736
736
  emits: ["chart-data", "queryComplete"],
737
737
  setup(a, { emit: e }) {
738
- const t = a, i = e, { issueQuery: s } = ye.useIssueQuery(), r = ve(me), o = () => t.queryReady && r ? JSON.stringify([t.query, t.context, t.refreshCounter]) : null, { data: n, error: d, isValidating: h } = Ei(o, async () => {
738
+ const t = a, i = e, { issueQuery: s } = ye.useIssueQuery(), r = ve(pe), o = () => t.queryReady && r ? JSON.stringify([t.query, t.context, t.refreshCounter]) : null, { data: n, error: d, isValidating: h } = xi(o, async () => {
739
739
  try {
740
740
  const y = await s(t.query, t.context, t.limitOverride);
741
741
  return f.value = null, y;
742
742
  } catch (y) {
743
- throw f.value = yi(y), y;
743
+ throw f.value = vi(y), y;
744
744
  } finally {
745
745
  i("queryComplete");
746
746
  }
@@ -748,22 +748,22 @@ const ye = {
748
748
  refreshInterval: t.context.refreshInterval,
749
749
  revalidateOnFocus: !1,
750
750
  shouldRetryOnError: !1
751
- }), { state: u, swrvState: l } = Ai(n, d, h), f = H(null), m = T(() => u.value === l.ERROR || !!f.value), g = T(() => !t.queryReady || u.value === l.PENDING);
752
- return ze(n, (y) => {
751
+ }), { state: u, swrvState: l } = Oi(n, d, h), f = H(null), m = k(() => u.value === l.ERROR || !!f.value), g = k(() => !t.queryReady || u.value === l.PENDING);
752
+ return De(n, (y) => {
753
753
  y && i("chart-data", y);
754
754
  }), (y, p) => {
755
- const D = ge("KSkeleton"), q = ge("KEmptyState");
755
+ const D = me("KSkeleton"), P = me("KEmptyState");
756
756
  return g.value || !E(n) && !m.value ? (x(), O(D, {
757
757
  key: 0,
758
758
  class: "chart-skeleton",
759
759
  type: "table"
760
- })) : m.value && f.value ? (x(), O(q, {
760
+ })) : m.value && f.value ? (x(), O(P, {
761
761
  key: 1,
762
762
  "action-button-visible": !1,
763
763
  "data-testid": "chart-empty-state"
764
- }, Qe({
764
+ }, Ye({
765
765
  icon: $(() => [
766
- f.value.type === "forbidden" ? (x(), O(E(Ri), { key: 0 })) : (x(), O(E(ki), { key: 1 }))
766
+ f.value.type === "forbidden" ? (x(), O(E(ki), { key: 0 })) : (x(), O(E(Ti), { key: 1 }))
767
767
  ]),
768
768
  title: $(() => [
769
769
  oe("p", null, ne(f.value.message), 1)
@@ -777,13 +777,13 @@ const ye = {
777
777
  ]),
778
778
  key: "0"
779
779
  } : void 0
780
- ]), 1024)) : E(n) ? De(y.$slots, "default", {
780
+ ]), 1024)) : E(n) ? Se(y.$slots, "default", {
781
781
  key: 2,
782
782
  data: E(n)
783
783
  }) : V("", !0);
784
784
  };
785
785
  }
786
- }), os = /* @__PURE__ */ Z({
786
+ }), as = /* @__PURE__ */ J({
787
787
  __name: "SimpleChartRenderer",
788
788
  props: {
789
789
  query: {},
@@ -796,10 +796,10 @@ const ye = {
796
796
  exploreLink: {}
797
797
  },
798
798
  setup(a) {
799
- Ye((i) => ({
799
+ je((i) => ({
800
800
  v088169ae: `${i.height}px`
801
801
  }));
802
- const e = a, t = T(() => e.chartOptions.type === "single_value");
802
+ const e = a, t = k(() => e.chartOptions.type === "single_value");
803
803
  return (i, s) => (x(), O(ct, {
804
804
  context: a.context,
805
805
  query: a.query,
@@ -808,9 +808,9 @@ const ye = {
808
808
  }, {
809
809
  default: $(({ data: r }) => [
810
810
  oe("div", {
811
- class: je(["analytics-chart", { "single-value": t.value }])
811
+ class: Ne(["analytics-chart", { "single-value": t.value }])
812
812
  }, [
813
- ue(E(vi), {
813
+ ue(E(_i), {
814
814
  "chart-data": r,
815
815
  "chart-options": a.chartOptions,
816
816
  "synthetics-data-key": t.value ? void 0 : a.chartOptions.synthetics_data_key
@@ -825,7 +825,7 @@ const ye = {
825
825
  for (const [i, s] of e)
826
826
  t[i] = s;
827
827
  return t;
828
- }, zt = /* @__PURE__ */ _e(os, [["__scopeId", "data-v-1e9ff912"]]), as = { class: "analytics-chart" }, ls = /* @__PURE__ */ Z({
828
+ }, zt = /* @__PURE__ */ _e(as, [["__scopeId", "data-v-1e9ff912"]]), ls = { class: "analytics-chart" }, hs = /* @__PURE__ */ J({
829
829
  __name: "BaseAnalyticsChartRenderer",
830
830
  props: {
831
831
  query: {},
@@ -840,19 +840,19 @@ const ye = {
840
840
  },
841
841
  emits: ["edit-tile", "chart-data", "zoom-time-range", "view-requests", "select-chart-range"],
842
842
  setup(a, { emit: e }) {
843
- const t = a, i = e, { i18n: s } = ye.useI18n(), r = T(() => ({
843
+ const t = a, i = e, { i18n: s } = ye.useI18n(), r = k(() => ({
844
844
  type: t.chartOptions.type,
845
845
  stacked: t.chartOptions.stacked ?? !1,
846
846
  chartDatasetColors: t.chartOptions.chart_dataset_colors,
847
847
  threshold: t.chartOptions.threshold,
848
848
  hideTruncationWarning: t.query.limit !== void 0 && t.query.limit > 0
849
- })), o = T(() => t.context.zoomable), n = () => {
849
+ })), o = k(() => t.context.zoomable), n = () => {
850
850
  i("edit-tile");
851
851
  }, d = (h) => {
852
852
  i("chart-data", h);
853
853
  };
854
854
  return (h, u) => {
855
- const l = ge("KDropdownItem");
855
+ const l = me("KDropdownItem");
856
856
  return x(), O(ct, {
857
857
  context: a.context,
858
858
  query: a.query,
@@ -861,8 +861,8 @@ const ye = {
861
861
  onChartData: d
862
862
  }, {
863
863
  default: $(({ data: f }) => [
864
- oe("div", as, [
865
- ue(E(_i), It({
864
+ oe("div", ls, [
865
+ ue(E(bi), It({
866
866
  "chart-data": f,
867
867
  "chart-options": r.value,
868
868
  "explore-link": a.exploreLink,
@@ -874,7 +874,7 @@ const ye = {
874
874
  }, a.extraProps, {
875
875
  onSelectChartRange: u[0] || (u[0] = (m) => i("select-chart-range", m)),
876
876
  onZoomTimeRange: u[1] || (u[1] = (m) => i("zoom-time-range", m))
877
- }), Qe({ _: 2 }, [
877
+ }), Ye({ _: 2 }, [
878
878
  a.context.editable ? {
879
879
  name: "menu-items",
880
880
  fn: $(() => [
@@ -894,7 +894,7 @@ const ye = {
894
894
  }, 8, ["context", "query", "query-ready", "refresh-counter"]);
895
895
  };
896
896
  }
897
- }), ft = /* @__PURE__ */ _e(ls, [["__scopeId", "data-v-52357845"]]), Dt = /* @__PURE__ */ Z({
897
+ }), ft = /* @__PURE__ */ _e(hs, [["__scopeId", "data-v-52357845"]]), Dt = /* @__PURE__ */ J({
898
898
  __name: "BarChartRenderer",
899
899
  props: {
900
900
  query: {},
@@ -917,7 +917,7 @@ const ye = {
917
917
  "refresh-counter": a.refreshCounter
918
918
  }, null, 8, ["chart-options", "context", "height", "query", "query-ready", "refresh-counter"]));
919
919
  }
920
- }), St = /* @__PURE__ */ Z({
920
+ }), St = /* @__PURE__ */ J({
921
921
  __name: "TimeseriesChartRenderer",
922
922
  props: {
923
923
  query: {},
@@ -945,7 +945,7 @@ const ye = {
945
945
  onZoomTimeRange: s[1] || (s[1] = (r) => t("zoom-time-range", r))
946
946
  }, null, 8, ["chart-options", "context", "explore-link", "height", "query", "query-ready", "refresh-counter", "requests-link"]));
947
947
  }
948
- }), hs = { class: "metric-card-tile-wrapper" }, us = /* @__PURE__ */ Z({
948
+ }), us = { class: "metric-card-tile-wrapper" }, ds = /* @__PURE__ */ J({
949
949
  __name: "GoldenSignalsRenderer",
950
950
  props: {
951
951
  query: {},
@@ -958,7 +958,7 @@ const ye = {
958
958
  exploreLink: {}
959
959
  },
960
960
  setup(a) {
961
- const e = a, t = T(() => {
961
+ const e = a, t = k(() => {
962
962
  var s, r;
963
963
  const i = (s = e.query) == null ? void 0 : s.datasource;
964
964
  if (i && i !== "api_usage" && i !== "basic")
@@ -976,27 +976,27 @@ const ye = {
976
976
  refreshCounter: e.refreshCounter
977
977
  };
978
978
  });
979
- return (i, s) => (x(), K("div", hs, [
980
- ue(E(Si), li(hi(t.value)), {
979
+ return (i, s) => (x(), K("div", us, [
980
+ ue(E(Ni), hi(ui(t.value)), {
981
981
  default: $(() => [
982
- ue(E(Ni))
982
+ ue(E(Li))
983
983
  ]),
984
984
  _: 1
985
985
  }, 16)
986
986
  ]));
987
987
  }
988
- }), ds = /* @__PURE__ */ _e(us, [["__scopeId", "data-v-85e02b8d"]]), Nt = "#6c7489", cs = "12px", Lt = "20px", Jt = "20px", fs = {
988
+ }), cs = /* @__PURE__ */ _e(ds, [["__scopeId", "data-v-86bb2448"]]), Nt = "#6c7489", fs = "12px", Lt = "20px", Jt = "20px", gs = {
989
989
  class: "fallback-entity-link",
990
990
  "data-testid": "entity-link-parent"
991
- }, At = /* @__PURE__ */ Z({
991
+ }, At = /* @__PURE__ */ J({
992
992
  __name: "FallbackEntityLink",
993
993
  props: {
994
994
  entityLinkData: {}
995
995
  },
996
996
  setup(a) {
997
- return (e, t) => (x(), K("div", fs, ne(a.entityLinkData.label), 1));
997
+ return (e, t) => (x(), K("div", gs, ne(a.entityLinkData.label), 1));
998
998
  }
999
- }), gs = /* @__PURE__ */ Z({
999
+ }), ms = /* @__PURE__ */ J({
1000
1000
  __name: "TopNTableRenderer",
1001
1001
  props: {
1002
1002
  query: {},
@@ -1009,7 +1009,7 @@ const ye = {
1009
1009
  exploreLink: {}
1010
1010
  },
1011
1011
  setup(a) {
1012
- const e = a, t = ve(me), i = qt(async () => {
1012
+ const e = a, t = ve(pe), i = qt(async () => {
1013
1013
  if (t != null && t.fetchComponent)
1014
1014
  try {
1015
1015
  return await t.fetchComponent("EntityLink");
@@ -1022,7 +1022,7 @@ const ye = {
1022
1022
  if ((o = e.chartOptions) != null && o.entity_link)
1023
1023
  if (r.id.includes(":")) {
1024
1024
  const [n, d] = r.id.split(":");
1025
- return e.chartOptions.entity_link.replace(Gi, n).replace(Rt, d);
1025
+ return e.chartOptions.entity_link.replace(Bi, n).replace(Rt, d);
1026
1026
  } else
1027
1027
  return e.chartOptions.entity_link.replace(Rt, r.id);
1028
1028
  return "";
@@ -1034,10 +1034,10 @@ const ye = {
1034
1034
  "refresh-counter": a.refreshCounter
1035
1035
  }, {
1036
1036
  default: $(({ data: n }) => [
1037
- ue(E(bi), {
1037
+ ue(E(wi), {
1038
1038
  data: n,
1039
1039
  "synthetics-data-key": a.chartOptions.synthetics_data_key
1040
- }, Qe({ _: 2 }, [
1040
+ }, Ye({ _: 2 }, [
1041
1041
  e.chartOptions.entity_link ? {
1042
1042
  name: "name",
1043
1043
  fn: $(({ record: d }) => [
@@ -1057,7 +1057,7 @@ const ye = {
1057
1057
  _: 1
1058
1058
  }, 8, ["context", "query", "query-ready", "refresh-counter"]));
1059
1059
  }
1060
- }), ms = /* @__PURE__ */ Z({
1060
+ }), ps = /* @__PURE__ */ J({
1061
1061
  __name: "DonutChartRenderer",
1062
1062
  props: {
1063
1063
  query: {},
@@ -1079,10 +1079,10 @@ const ye = {
1079
1079
  "refresh-counter": a.refreshCounter
1080
1080
  }, null, 8, ["chart-options", "context", "height", "query", "query-ready", "refresh-counter"]));
1081
1081
  }
1082
- }), ps = ["data-testid"], ys = {
1082
+ }), ys = ["data-testid"], vs = {
1083
1083
  key: 0,
1084
1084
  class: "tile-header"
1085
- }, vs = ["data-testid"], _s = { class: "badge-text" }, bs = ["data-testid"], ws = { class: "delete-option" }, Es = ["data-testid"], xs = ["data-testid"], Cs = /* @__PURE__ */ Z({
1085
+ }, _s = ["data-testid"], bs = { class: "badge-text" }, ws = ["data-testid"], Es = { class: "delete-option" }, xs = ["data-testid"], Cs = ["data-testid"], Rs = /* @__PURE__ */ J({
1086
1086
  __name: "DashboardTile",
1087
1087
  props: {
1088
1088
  definition: {},
@@ -1095,15 +1095,15 @@ const ye = {
1095
1095
  },
1096
1096
  emits: ["edit-tile", "duplicate-tile", "remove-tile", "tile-time-range-zoom"],
1097
1097
  setup(a, { emit: e }) {
1098
- Ye((w) => ({
1099
- v1eb84fc4: `${w.height}px`
1098
+ je((w) => ({
1099
+ v366e6507: `${w.height}px`
1100
1100
  }));
1101
- const t = parseInt(Jt, 10), i = a, s = e, r = qt(() => import("./GeoMapRenderer-FpLm9dew.js")), o = ve(me), { i18n: n } = ye.useI18n(), d = H(), h = H({ status: "loading" }), u = H(!1), l = H(), f = H(!1), m = H(!0), {
1101
+ const t = parseInt(Jt, 10), i = a, s = e, r = qt(() => import("./GeoMapRenderer-By3cIZ7B.js")), o = ve(pe), { i18n: n } = ye.useI18n(), d = H(), h = H({ status: "loading" }), u = H(!1), l = H(), f = H(!1), m = H(!0), {
1102
1102
  exploreLinkKebabMenu: g,
1103
1103
  requestsLinkKebabMenu: y,
1104
1104
  canShowKebabMenu: p,
1105
1105
  canGenerateRequestsLink: D,
1106
- canGenerateExploreLink: q,
1106
+ canGenerateExploreLink: P,
1107
1107
  requestsLinkZoomActions: z,
1108
1108
  exploreLinkZoomActions: Q,
1109
1109
  buildExploreQuery: B,
@@ -1116,30 +1116,30 @@ const ye = {
1116
1116
  definition: st(wt(i, "definition")),
1117
1117
  context: st(wt(i, "context"))
1118
1118
  }), { issueQuery: de } = ye.useIssueQuery();
1119
- ze(() => i.definition, async () => {
1119
+ De(() => i.definition, async () => {
1120
1120
  await ut(), l.value && (f.value = l.value.scrollWidth > l.value.clientWidth), m.value = !0;
1121
1121
  }, { immediate: !0, deep: !0 });
1122
- const Me = T(() => n.t("csvExport.defaultFilename")), J = T(() => p.value && (Ie.value || i.context.editable) || !!P.value), Ie = T(() => !!g.value || ("allow_csv_export" in i.definition.chart ? i.definition.chart.allow_csv_export : !0) || i.context.editable), C = {
1122
+ const qe = k(() => n.t("csvExport.defaultFilename")), j = k(() => p.value && (Re.value || i.context.editable) || !!q.value), Re = k(() => !!g.value || ("allow_csv_export" in i.definition.chart ? i.definition.chart.allow_csv_export : !0) || i.context.editable), C = {
1123
1123
  timeseries_line: St,
1124
1124
  timeseries_bar: St,
1125
1125
  horizontal_bar: Dt,
1126
1126
  vertical_bar: Dt,
1127
1127
  gauge: zt,
1128
- donut: ms,
1129
- golden_signals: ds,
1130
- top_n: gs,
1128
+ donut: ps,
1129
+ golden_signals: cs,
1130
+ top_n: ms,
1131
1131
  slottable: void 0,
1132
1132
  single_value: zt,
1133
1133
  choropleth_map: r
1134
- }, S = T(() => {
1135
- var w, L;
1134
+ }, N = k(() => {
1135
+ var w, S;
1136
1136
  return {
1137
- ...(w = N.value) != null && w.rendererEvents.supportsRequests ? { "select-chart-range": si } : {},
1138
- ...(L = N.value) != null && L.rendererEvents.supportsZoom ? { "zoom-time-range": ii } : {}
1137
+ ...(w = L.value) != null && w.rendererEvents.supportsRequests ? { "select-chart-range": ri } : {},
1138
+ ...(S = L.value) != null && S.rendererEvents.supportsZoom ? { "zoom-time-range": si } : {}
1139
1139
  };
1140
- }), N = T(() => {
1141
- var te, j;
1142
- const w = C[i.definition.chart.type], L = !!((te = w == null ? void 0 : w.emits) != null && te.includes("select-chart-range")), A = !!((j = w == null ? void 0 : w.emits) != null && j.includes("zoom-time-range"));
1140
+ }), L = k(() => {
1141
+ var ee, X;
1142
+ const w = C[i.definition.chart.type], S = !!((ee = w == null ? void 0 : w.emits) != null && ee.includes("select-chart-range")), A = !!((X = w == null ? void 0 : w.emits) != null && X.includes("zoom-time-range"));
1143
1143
  return w && {
1144
1144
  component: w,
1145
1145
  rendererProps: {
@@ -1153,80 +1153,88 @@ const ye = {
1153
1153
  exploreLink: Q.value
1154
1154
  },
1155
1155
  rendererEvents: {
1156
- supportsRequests: L,
1156
+ supportsRequests: S,
1157
1157
  supportsZoom: A
1158
1158
  }
1159
1159
  };
1160
- }), P = T(() => {
1161
- var L;
1162
- const w = (L = i.definition.query) == null ? void 0 : L.time_range;
1160
+ }), q = k(() => {
1161
+ var S;
1162
+ const w = (S = i.definition.query) == null ? void 0 : S.time_range;
1163
1163
  if ((w == null ? void 0 : w.type) === "relative") {
1164
- const A = gi.get(mi[w.time_range]);
1164
+ const A = mi.get(pi[w.time_range]);
1165
1165
  return A ? A.display : (console.warn("Did not recognize the given relative time range:", w.time_range), w.time_range);
1166
1166
  } else if ((w == null ? void 0 : w.type) === "absolute") {
1167
1167
  const A = w.tz || "Etc/UTC";
1168
1168
  return `${Ct(w.start, { short: !0, tz: A })} - ${Ct(w.end, { short: !0, tz: A })}`;
1169
1169
  }
1170
1170
  return null;
1171
- }), ee = T(() => d.value ? rt(d.value.meta.granularity_ms) : void 0), pe = T(() => ["timeseries_line", "timeseries_bar"].includes(i.definition.chart.type)), Re = T(() => {
1172
- var L, A;
1173
- if (!pe.value || !i.queryReady || m.value)
1171
+ }), re = k(() => {
1172
+ if (i.definition.chart.type === "slottable")
1173
+ return !1;
1174
+ const w = !!i.definition.chart.chart_title, S = j.value && Re.value && !i.isFullscreen, A = !!q.value;
1175
+ return w || S || A;
1176
+ }), fe = k(() => d.value ? rt(d.value.meta.granularity_ms) : void 0), Pe = k(() => ["timeseries_line", "timeseries_bar"].includes(i.definition.chart.type)), ke = k(() => {
1177
+ var S, A;
1178
+ if (!Pe.value || !i.queryReady || m.value)
1174
1179
  return !1;
1175
- const w = (A = (L = i.definition) == null ? void 0 : L.query) == null ? void 0 : A.granularity;
1176
- return !w || !ee.value ? !1 : w !== ee.value;
1177
- }), qe = T(() => {
1178
- var A, te, j;
1179
- const w = rt(((A = d.value) == null ? void 0 : A.meta.granularity_ms) ?? 0) ?? "unknown", L = ((j = (te = i.definition) == null ? void 0 : te.query) == null ? void 0 : j.granularity) ?? "unknown";
1180
+ const w = (A = (S = i.definition) == null ? void 0 : S.query) == null ? void 0 : A.granularity;
1181
+ return !w || !fe.value ? !1 : w !== fe.value;
1182
+ }), Te = k(() => {
1183
+ var A, ee, X;
1184
+ const w = rt(((A = d.value) == null ? void 0 : A.meta.granularity_ms) ?? 0) ?? "unknown", S = ((X = (ee = i.definition) == null ? void 0 : ee.query) == null ? void 0 : X.granularity) ?? "unknown";
1180
1185
  return n.t("query_aged_out_warning", {
1181
1186
  currentGranularity: n.t(`granularities.${w}`),
1182
- savedGranularity: n.t(`granularities.${L}`)
1187
+ savedGranularity: n.t(`granularities.${S}`)
1183
1188
  });
1184
- }), ke = T(() => {
1185
- var A, te;
1186
- const w = [...i.context.filters, ...i.definition.query.filters ?? []], L = ((te = (A = i.definition) == null ? void 0 : A.query) == null ? void 0 : te.datasource) ?? "api_usage";
1187
- return w.filter((j) => Gt(j.field).some((ri) => L === ri));
1188
- }), Je = () => {
1189
+ }), Je = k(() => {
1190
+ var A, ee;
1191
+ const w = [...i.context.filters, ...i.definition.query.filters ?? []], S = ((ee = (A = i.definition) == null ? void 0 : A.query) == null ? void 0 : ee.datasource) ?? "api_usage";
1192
+ return w.filter((X) => Gt(X.field).some((ni) => S === ni));
1193
+ }), pt = () => {
1189
1194
  s("edit-tile", i.definition);
1190
- }, pt = () => {
1191
- s("duplicate-tile", i.definition);
1192
1195
  }, et = () => {
1196
+ s("duplicate-tile", i.definition);
1197
+ }, tt = () => {
1193
1198
  s("remove-tile", i.definition);
1194
- }, tt = (w) => {
1199
+ }, yt = (w) => {
1195
1200
  d.value = w, m.value = !1;
1196
- }, yt = () => {
1201
+ }, ti = () => {
1197
1202
  u.value = !1;
1198
- }, ti = async () => {
1203
+ }, ii = async () => {
1199
1204
  var w;
1200
1205
  if (u.value = !0, h.value = { status: "loading" }, ((w = o == null ? void 0 : o.staticConfig) == null ? void 0 : w.increaseCsvExportLimit) ?? !0)
1201
- de(i.definition.query, i.context, pi).then((L) => {
1202
- h.value = { status: "success", chartData: L };
1203
- }).catch((L) => {
1204
- h.value = { status: "error", error: L };
1206
+ de(i.definition.query, i.context, yi).then((S) => {
1207
+ h.value = { status: "success", chartData: S };
1208
+ }).catch((S) => {
1209
+ h.value = { status: "error", error: S };
1205
1210
  });
1206
1211
  else if (d.value)
1207
1212
  h.value = { status: "success", chartData: d.value };
1208
1213
  else {
1209
- const L = ze(d, (A) => {
1210
- A && (h.value = { status: "success", chartData: A }, L());
1214
+ const S = De(d, (A) => {
1215
+ A && (h.value = { status: "success", chartData: A }, S());
1211
1216
  });
1212
1217
  }
1213
- }, ii = (w) => {
1214
- const L = {
1218
+ }, si = (w) => {
1219
+ const S = {
1215
1220
  tileId: i.tileId.toString(),
1216
1221
  timeRange: w
1217
1222
  };
1218
- s("tile-time-range-zoom", L);
1219
- }, si = (w) => {
1220
- const L = ke.value, A = Y(w, L), te = B(w, L);
1221
- z.value = D.value ? { href: M(A) } : void 0, Q.value = q.value ? { href: R(te) } : void 0;
1223
+ s("tile-time-range-zoom", S);
1224
+ }, ri = (w) => {
1225
+ const S = Je.value, A = Y(w, S), ee = B(w, S);
1226
+ z.value = D.value ? { href: M(A) } : void 0, Q.value = P.value ? { href: R(ee) } : void 0;
1222
1227
  };
1223
- return (w, L) => {
1224
- const A = ge("KTooltip"), te = ge("KBadge"), j = ge("KDropdownItem"), vt = ge("KDropdown");
1228
+ return (w, S) => {
1229
+ const A = me("KTooltip"), ee = me("KBadge"), X = me("KDropdownItem"), vt = me("KDropdown");
1225
1230
  return x(), K("div", {
1226
- class: je(["tile-boundary", { editable: a.context.editable }]),
1231
+ class: Ne(["tile-boundary", {
1232
+ editable: a.context.editable,
1233
+ headless: !re.value
1234
+ }]),
1227
1235
  "data-testid": `tile-${a.tileId}`
1228
1236
  }, [
1229
- a.definition.chart.type !== "slottable" ? (x(), K("div", ys, [
1237
+ a.definition.chart.type !== "slottable" ? (x(), K("div", vs, [
1230
1238
  ue(A, {
1231
1239
  class: "title-tooltip",
1232
1240
  disabled: !f.value,
@@ -1242,92 +1250,92 @@ const ye = {
1242
1250
  ]),
1243
1251
  _: 1
1244
1252
  }, 8, ["disabled", "text"]),
1245
- J.value ? (x(), K("div", {
1253
+ j.value ? (x(), K("div", {
1246
1254
  key: 0,
1247
1255
  class: "tile-actions",
1248
1256
  "data-testid": `tile-actions-${a.tileId}`
1249
1257
  }, [
1250
- P.value ? (x(), O(te, {
1258
+ q.value ? (x(), O(ee, {
1251
1259
  key: 0,
1252
1260
  "data-testid": "time-range-badge",
1253
- tooltip: Re.value ? qe.value : void 0,
1261
+ tooltip: ke.value ? Te.value : void 0,
1254
1262
  "tooltip-attributes": { maxWidth: "320px" }
1255
- }, Qe({
1263
+ }, Ye({
1256
1264
  default: $(() => [
1257
- oe("span", _s, ne(P.value), 1)
1265
+ oe("span", bs, ne(q.value), 1)
1258
1266
  ]),
1259
1267
  _: 2
1260
1268
  }, [
1261
- Re.value ? {
1269
+ ke.value ? {
1262
1270
  name: "icon",
1263
1271
  fn: $(() => [
1264
- ue(E(Ti), { size: E(cs) }, null, 8, ["size"])
1272
+ ue(E(zi), { size: E(fs) }, null, 8, ["size"])
1265
1273
  ]),
1266
1274
  key: "0"
1267
1275
  } : void 0
1268
1276
  ]), 1032, ["tooltip"])) : V("", !0),
1269
- E(p) && a.context.editable && !a.isFullscreen ? (x(), O(E(zi), {
1277
+ E(p) && a.context.editable && !a.isFullscreen ? (x(), O(E(Di), {
1270
1278
  key: 1,
1271
1279
  class: "edit-icon",
1272
1280
  color: E(Nt),
1273
1281
  "data-testid": `edit-tile-${a.tileId}`,
1274
1282
  size: E(Lt),
1275
- onClick: Je
1283
+ onClick: pt
1276
1284
  }, null, 8, ["color", "data-testid", "size"])) : V("", !0),
1277
- E(p) && Ie.value && !a.isFullscreen ? (x(), O(vt, {
1285
+ E(p) && Re.value && !a.isFullscreen ? (x(), O(vt, {
1278
1286
  key: 2,
1279
1287
  class: "dropdown",
1280
1288
  "data-testid": `chart-action-menu-${a.tileId}`,
1281
1289
  "kpop-attributes": { placement: "bottom-end" }
1282
1290
  }, {
1283
1291
  items: $(() => [
1284
- E(g) ? (x(), O(j, {
1292
+ E(g) ? (x(), O(X, {
1285
1293
  key: 0,
1286
1294
  "data-testid": `chart-jump-to-explore-${a.tileId}`,
1287
1295
  item: { label: E(n).t("jumpToExplore"), to: E(g) }
1288
1296
  }, null, 8, ["data-testid", "item"])) : V("", !0),
1289
- E(y) ? (x(), O(j, {
1297
+ E(y) ? (x(), O(X, {
1290
1298
  key: 1,
1291
1299
  "data-testid": `chart-jump-to-requests-${a.tileId}`,
1292
1300
  item: { label: E(n).t("jumpToRequests"), to: E(y) }
1293
1301
  }, null, 8, ["data-testid", "item"])) : V("", !0),
1294
- !("allow_csv_export" in a.definition.chart) || a.definition.chart.allow_csv_export ? (x(), O(j, {
1302
+ !("allow_csv_export" in a.definition.chart) || a.definition.chart.allow_csv_export ? (x(), O(X, {
1295
1303
  key: 2,
1296
1304
  class: "chart-export-button",
1297
1305
  "data-testid": `chart-csv-export-${a.tileId}`,
1298
- onClick: ti
1306
+ onClick: ii
1299
1307
  }, {
1300
1308
  default: $(() => [
1301
1309
  oe("span", {
1302
1310
  class: "chart-export-trigger",
1303
1311
  "data-testid": `csv-export-button-${a.tileId}`
1304
- }, ne(E(n).t("csvExport.exportAsCsv")), 9, bs)
1312
+ }, ne(E(n).t("csvExport.exportAsCsv")), 9, ws)
1305
1313
  ]),
1306
1314
  _: 1
1307
1315
  }, 8, ["data-testid"])) : V("", !0),
1308
- a.context.editable ? (x(), O(j, {
1316
+ a.context.editable ? (x(), O(X, {
1309
1317
  key: 3,
1310
1318
  "data-testid": `duplicate-tile-${a.tileId}`,
1311
- onClick: pt
1319
+ onClick: et
1312
1320
  }, {
1313
1321
  default: $(() => [
1314
1322
  ht(ne(E(n).t("renderer.duplicateTile")), 1)
1315
1323
  ]),
1316
1324
  _: 1
1317
1325
  }, 8, ["data-testid"])) : V("", !0),
1318
- a.context.editable ? (x(), O(j, {
1326
+ a.context.editable ? (x(), O(X, {
1319
1327
  key: 4,
1320
1328
  "data-testid": `remove-tile-${a.tileId}`,
1321
- onClick: et
1329
+ onClick: tt
1322
1330
  }, {
1323
1331
  default: $(() => [
1324
- oe("span", ws, ne(E(n).t("renderer.delete")), 1)
1332
+ oe("span", Es, ne(E(n).t("renderer.delete")), 1)
1325
1333
  ]),
1326
1334
  _: 1
1327
1335
  }, 8, ["data-testid"])) : V("", !0)
1328
1336
  ]),
1329
1337
  default: $(() => [
1330
- ue(E(Di), {
1338
+ ue(E(Si), {
1331
1339
  class: "kebab-action-menu",
1332
1340
  color: E(Nt),
1333
1341
  "data-testid": `kebab-action-menu-${a.tileId}`,
@@ -1336,29 +1344,29 @@ const ye = {
1336
1344
  ]),
1337
1345
  _: 1
1338
1346
  }, 8, ["data-testid"])) : V("", !0)
1339
- ], 8, vs)) : "description" in a.definition.chart ? (x(), K("div", {
1347
+ ], 8, _s)) : "description" in a.definition.chart ? (x(), K("div", {
1340
1348
  key: 1,
1341
1349
  class: "header-description",
1342
1350
  "data-testid": `tile-description-${a.tileId}`
1343
- }, ne(a.definition.chart.description), 9, Es)) : V("", !0),
1344
- u.value ? (x(), O(E(wi), {
1351
+ }, ne(a.definition.chart.description), 9, xs)) : V("", !0),
1352
+ u.value ? (x(), O(E(Ei), {
1345
1353
  key: 2,
1346
1354
  "data-testid": `csv-export-modal-${a.tileId}`,
1347
1355
  "export-state": h.value,
1348
- filename: Me.value,
1349
- onCloseModal: yt
1356
+ filename: qe.value,
1357
+ onCloseModal: ti
1350
1358
  }, null, 8, ["data-testid", "export-state", "filename"])) : V("", !0)
1351
1359
  ])) : V("", !0),
1352
1360
  oe("div", {
1353
- class: "tile-content",
1361
+ class: Ne(["tile-content", `type-${a.definition.chart.type}`]),
1354
1362
  "data-testid": `tile-content-${a.tileId}`
1355
1363
  }, [
1356
- N.value ? (x(), O(Pt(N.value.component), It({ key: 0 }, N.value.rendererProps, ui(S.value), { onChartData: tt }), null, 16)) : V("", !0)
1357
- ], 8, xs)
1358
- ], 10, ps);
1364
+ L.value ? (x(), O(Pt(L.value.component), It({ key: 0 }, L.value.rendererProps, di(N.value), { onChartData: yt }), null, 16)) : V("", !0)
1365
+ ], 10, Cs)
1366
+ ], 10, ys);
1359
1367
  };
1360
1368
  }
1361
- }), Rs = /* @__PURE__ */ _e(Cs, [["__scopeId", "data-v-543445fd"]]), ks = (a, e) => {
1369
+ }), ks = /* @__PURE__ */ _e(Rs, [["__scopeId", "data-v-a02a6a1d"]]), Ts = (a, e) => {
1362
1370
  let t = 0;
1363
1371
  const i = /* @__PURE__ */ new Map();
1364
1372
  e.forEach((r) => {
@@ -1369,7 +1377,7 @@ const ye = {
1369
1377
  for (let r = 0; r < t; r++)
1370
1378
  i.get(r) ? s.push("auto") : s.push(`${a}px`);
1371
1379
  return s;
1372
- }, Ts = /* @__PURE__ */ Z({
1380
+ }, zs = /* @__PURE__ */ J({
1373
1381
  __name: "GridLayout",
1374
1382
  props: {
1375
1383
  tileHeight: {
@@ -1383,7 +1391,7 @@ const ye = {
1383
1391
  }
1384
1392
  },
1385
1393
  setup(a) {
1386
- Ye((n) => ({
1394
+ je((n) => ({
1387
1395
  v2a38e79e: E(Ut),
1388
1396
  v4cc71de6: r.value
1389
1397
  }));
@@ -1397,7 +1405,7 @@ const ye = {
1397
1405
  }), lt(() => {
1398
1406
  t.value && s.unobserve(t.value);
1399
1407
  });
1400
- const r = T(() => ks(e.tileHeight, e.tiles).join(" ")), o = T(() => e.tiles.map((n, d) => ({
1408
+ const r = k(() => Ts(e.tileHeight, e.tiles).join(" ")), o = k(() => e.tiles.map((n, d) => ({
1401
1409
  key: `tile-${d}`,
1402
1410
  tile: n,
1403
1411
  style: {
@@ -1414,20 +1422,20 @@ const ye = {
1414
1422
  }, [
1415
1423
  (x(!0), K($t, null, Ft(o.value, (h) => (x(), K("div", {
1416
1424
  key: h.key,
1417
- class: je(["grid-cell", {
1425
+ class: Ne(["grid-cell", {
1418
1426
  "empty-cell": !h.tile
1419
1427
  }]),
1420
1428
  style: Et(h.style)
1421
1429
  }, [
1422
- De(n.$slots, "tile", {
1430
+ Se(n.$slots, "tile", {
1423
1431
  style: Et(h.style),
1424
1432
  tile: h.tile
1425
1433
  }, void 0, !0)
1426
1434
  ], 6))), 128))
1427
1435
  ], 512));
1428
1436
  }
1429
- }), zs = /* @__PURE__ */ _e(Ts, [["__scopeId", "data-v-354b7177"]]);
1430
- function Ds(a, e, t, i, s) {
1437
+ }), Ds = /* @__PURE__ */ _e(zs, [["__scopeId", "data-v-354b7177"]]);
1438
+ function Ss(a, e, t, i, s) {
1431
1439
  const r = (...o) => (console.warn("gridstack.js: Function `" + t + "` is deprecated in " + s + " and has been replaced with `" + i + "`. It will be **removed** in a future release"), e.apply(a, o));
1432
1440
  return r.prototype = e.prototype, r;
1433
1441
  }
@@ -2234,7 +2242,7 @@ class le {
2234
2242
  }
2235
2243
  }
2236
2244
  le._idSeq = 0;
2237
- const X = {
2245
+ const Z = {
2238
2246
  alwaysShowResizeHandle: "mobile",
2239
2247
  animate: !0,
2240
2248
  auto: !0,
@@ -2269,26 +2277,26 @@ class b {
2269
2277
  const ae = typeof window < "u" && typeof document < "u" && ("ontouchstart" in document || "ontouchstart" in window || window.DocumentTouch && document instanceof window.DocumentTouch || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0);
2270
2278
  class he {
2271
2279
  }
2272
- function Ge(a, e) {
2280
+ function Be(a, e) {
2273
2281
  a.touches.length > 1 || (a.cancelable && a.preventDefault(), c.simulateMouseEvent(a.changedTouches[0], e));
2274
2282
  }
2275
2283
  function ei(a, e) {
2276
2284
  a.cancelable && a.preventDefault(), c.simulateMouseEvent(a, e);
2277
2285
  }
2278
- function Be(a) {
2279
- he.touchHandled || (he.touchHandled = !0, Ge(a, "mousedown"));
2280
- }
2281
2286
  function Ue(a) {
2282
- he.touchHandled && Ge(a, "mousemove");
2287
+ he.touchHandled || (he.touchHandled = !0, Be(a, "mousedown"));
2283
2288
  }
2284
2289
  function We(a) {
2290
+ he.touchHandled && Be(a, "mousemove");
2291
+ }
2292
+ function Ke(a) {
2285
2293
  if (!he.touchHandled)
2286
2294
  return;
2287
2295
  he.pointerLeaveTimeout && (window.clearTimeout(he.pointerLeaveTimeout), delete he.pointerLeaveTimeout);
2288
2296
  const e = !!b.dragElement;
2289
- Ge(a, "mouseup"), e || Ge(a, "click"), he.touchHandled = !1;
2297
+ Be(a, "mouseup"), e || Be(a, "click"), he.touchHandled = !1;
2290
2298
  }
2291
- function Ke(a) {
2299
+ function Ve(a) {
2292
2300
  a.pointerType !== "mouse" && a.target.releasePointerCapture(a.pointerId);
2293
2301
  }
2294
2302
  function Ot(a) {
@@ -2306,15 +2314,15 @@ class Ze {
2306
2314
  /** @internal */
2307
2315
  _init() {
2308
2316
  const e = this.el = document.createElement("div");
2309
- return e.classList.add("ui-resizable-handle"), e.classList.add(`${Ze.prefix}${this.dir}`), e.style.zIndex = "100", e.style.userSelect = "none", this.host.appendChild(this.el), this.el.addEventListener("mousedown", this._mouseDown), ae && (this.el.addEventListener("touchstart", Be), this.el.addEventListener("pointerdown", Ke)), this;
2317
+ return e.classList.add("ui-resizable-handle"), e.classList.add(`${Ze.prefix}${this.dir}`), e.style.zIndex = "100", e.style.userSelect = "none", this.host.appendChild(this.el), this.el.addEventListener("mousedown", this._mouseDown), ae && (this.el.addEventListener("touchstart", Ue), this.el.addEventListener("pointerdown", Ve)), this;
2310
2318
  }
2311
2319
  /** call this when resize handle needs to be removed and cleaned up */
2312
2320
  destroy() {
2313
- return this.moving && this._mouseUp(this.mouseDownEvent), this.el.removeEventListener("mousedown", this._mouseDown), ae && (this.el.removeEventListener("touchstart", Be), this.el.removeEventListener("pointerdown", Ke)), this.host.removeChild(this.el), delete this.el, delete this.host, this;
2321
+ return this.moving && this._mouseUp(this.mouseDownEvent), this.el.removeEventListener("mousedown", this._mouseDown), ae && (this.el.removeEventListener("touchstart", Ue), this.el.removeEventListener("pointerdown", Ve)), this.host.removeChild(this.el), delete this.el, delete this.host, this;
2314
2322
  }
2315
2323
  /** @internal called on mouse down on us: capture move on the entire document (mouse might not stay on us) until we release the mouse */
2316
2324
  _mouseDown(e) {
2317
- this.mouseDownEvent = e, document.addEventListener("mousemove", this._mouseMove, { capture: !0, passive: !0 }), document.addEventListener("mouseup", this._mouseUp, !0), ae && (this.el.addEventListener("touchmove", Ue), this.el.addEventListener("touchend", We)), e.stopPropagation(), e.preventDefault();
2325
+ this.mouseDownEvent = e, document.addEventListener("mousemove", this._mouseMove, { capture: !0, passive: !0 }), document.addEventListener("mouseup", this._mouseUp, !0), ae && (this.el.addEventListener("touchmove", We), this.el.addEventListener("touchend", Ke)), e.stopPropagation(), e.preventDefault();
2318
2326
  }
2319
2327
  /** @internal */
2320
2328
  _mouseMove(e) {
@@ -2323,7 +2331,7 @@ class Ze {
2323
2331
  }
2324
2332
  /** @internal */
2325
2333
  _mouseUp(e) {
2326
- this.moving && (this._triggerEvent("stop", e), document.removeEventListener("keydown", this._keyEvent)), document.removeEventListener("mousemove", this._mouseMove, !0), document.removeEventListener("mouseup", this._mouseUp, !0), ae && (this.el.removeEventListener("touchmove", Ue), this.el.removeEventListener("touchend", We)), delete this.moving, delete this.mouseDownEvent, e.stopPropagation(), e.preventDefault();
2334
+ this.moving && (this._triggerEvent("stop", e), document.removeEventListener("keydown", this._keyEvent)), document.removeEventListener("mousemove", this._mouseMove, !0), document.removeEventListener("mouseup", this._mouseUp, !0), ae && (this.el.removeEventListener("touchmove", We), this.el.removeEventListener("touchend", Ke)), delete this.moving, delete this.mouseDownEvent, e.stopPropagation(), e.preventDefault();
2327
2335
  }
2328
2336
  /** @internal call when keys are being pressed - use Esc to cancel */
2329
2337
  _keyEvent(e) {
@@ -2364,7 +2372,7 @@ class gt {
2364
2372
  return this._eventRegister[e](t);
2365
2373
  }
2366
2374
  }
2367
- class Se extends gt {
2375
+ class Le extends gt {
2368
2376
  // have to be public else complains for HTMLElementExtendOpt ?
2369
2377
  constructor(e, t = {}) {
2370
2378
  super(), this.el = e, this.option = t, this.rectScale = { x: 1, y: 1 }, this._ui = () => {
@@ -2465,7 +2473,7 @@ class Se extends gt {
2465
2473
  }
2466
2474
  /** @internal */
2467
2475
  _setupHelper() {
2468
- this.elOriginStyleVal = Se._originStyleProp.map((i) => this.el.style[i]), this.parentOriginStylePosition = this.el.parentElement.style.position;
2476
+ this.elOriginStyleVal = Le._originStyleProp.map((i) => this.el.style[i]), this.parentOriginStylePosition = this.el.parentElement.style.position;
2469
2477
  const e = this.el.parentElement, t = c.getValuesFromTransformedElement(e);
2470
2478
  return this.rectScale = {
2471
2479
  x: t.xScale,
@@ -2474,7 +2482,7 @@ class Se extends gt {
2474
2482
  }
2475
2483
  /** @internal */
2476
2484
  _cleanHelper() {
2477
- return Se._originStyleProp.forEach((e, t) => {
2485
+ return Le._originStyleProp.forEach((e, t) => {
2478
2486
  this.el.style[e] = this.elOriginStyleVal[t] || null;
2479
2487
  }), this.el.parentElement.style.position = this.parentOriginStylePosition || null, this;
2480
2488
  }
@@ -2513,9 +2521,9 @@ class Se extends gt {
2513
2521
  return this.handlers.forEach((e) => e.destroy()), delete this.handlers, this;
2514
2522
  }
2515
2523
  }
2516
- Se._originStyleProp = ["width", "height", "position", "left", "top", "opacity", "zIndex"];
2517
- const Ss = 'input,textarea,button,select,option,[contenteditable="true"],.ui-resizable-handle';
2518
- class Ne extends gt {
2524
+ Le._originStyleProp = ["width", "height", "position", "left", "top", "opacity", "zIndex"];
2525
+ const Ns = 'input,textarea,button,select,option,[contenteditable="true"],.ui-resizable-handle';
2526
+ class Ae extends gt {
2519
2527
  constructor(e, t = {}) {
2520
2528
  var r;
2521
2529
  super(), this.el = e, this.option = t, this.dragTransform = {
@@ -2535,12 +2543,12 @@ class Ne extends gt {
2535
2543
  }
2536
2544
  enable() {
2537
2545
  this.disabled !== !1 && (super.enable(), this.dragEls.forEach((e) => {
2538
- e.addEventListener("mousedown", this._mouseDown), ae && (e.addEventListener("touchstart", Be), e.addEventListener("pointerdown", Ke));
2546
+ e.addEventListener("mousedown", this._mouseDown), ae && (e.addEventListener("touchstart", Ue), e.addEventListener("pointerdown", Ve));
2539
2547
  }), this.el.classList.remove("ui-draggable-disabled"));
2540
2548
  }
2541
2549
  disable(e = !1) {
2542
2550
  this.disabled !== !0 && (super.disable(), this.dragEls.forEach((t) => {
2543
- t.removeEventListener("mousedown", this._mouseDown), ae && (t.removeEventListener("touchstart", Be), t.removeEventListener("pointerdown", Ke));
2551
+ t.removeEventListener("mousedown", this._mouseDown), ae && (t.removeEventListener("touchstart", Ue), t.removeEventListener("pointerdown", Ve));
2544
2552
  }), e || this.el.classList.add("ui-draggable-disabled"));
2545
2553
  }
2546
2554
  destroy() {
@@ -2552,7 +2560,7 @@ class Ne extends gt {
2552
2560
  /** @internal call when mouse goes down before a dragstart happens */
2553
2561
  _mouseDown(e) {
2554
2562
  if (!b.mouseHandled)
2555
- return e.button !== 0 || !this.dragEls.find((t) => t === e.target) && e.target.closest(Ss) || this.option.cancel && e.target.closest(this.option.cancel) || (this.mouseDownEvent = e, delete this.dragging, delete b.dragElement, delete b.dropElement, document.addEventListener("mousemove", this._mouseMove, { capture: !0, passive: !0 }), document.addEventListener("mouseup", this._mouseUp, !0), ae && (e.currentTarget.addEventListener("touchmove", Ue), e.currentTarget.addEventListener("touchend", We)), e.preventDefault(), document.activeElement && document.activeElement.blur(), b.mouseHandled = !0), !0;
2563
+ return e.button !== 0 || !this.dragEls.find((t) => t === e.target) && e.target.closest(Ns) || this.option.cancel && e.target.closest(this.option.cancel) || (this.mouseDownEvent = e, delete this.dragging, delete b.dragElement, delete b.dropElement, document.addEventListener("mousemove", this._mouseMove, { capture: !0, passive: !0 }), document.addEventListener("mouseup", this._mouseUp, !0), ae && (e.currentTarget.addEventListener("touchmove", We), e.currentTarget.addEventListener("touchend", Ke)), e.preventDefault(), document.activeElement && document.activeElement.blur(), b.mouseHandled = !0), !0;
2556
2564
  }
2557
2565
  /** @internal method to call actual drag event */
2558
2566
  _callDrag(e) {
@@ -2583,7 +2591,7 @@ class Ne extends gt {
2583
2591
  /** @internal call when the mouse gets released to drop the item at current location */
2584
2592
  _mouseUp(e) {
2585
2593
  var t, i;
2586
- if (document.removeEventListener("mousemove", this._mouseMove, !0), document.removeEventListener("mouseup", this._mouseUp, !0), ae && e.currentTarget && (e.currentTarget.removeEventListener("touchmove", Ue, !0), e.currentTarget.removeEventListener("touchend", We, !0)), this.dragging) {
2594
+ if (document.removeEventListener("mousemove", this._mouseMove, !0), document.removeEventListener("mouseup", this._mouseUp, !0), ae && e.currentTarget && (e.currentTarget.removeEventListener("touchmove", We, !0), e.currentTarget.removeEventListener("touchend", Ke, !0)), this.dragging) {
2587
2595
  delete this.dragging, (t = this.el.gridstackNode) == null || delete t._origRotate, document.removeEventListener("keydown", this._keyEvent), ((i = b.dropElement) == null ? void 0 : i.el) === this.el.parentElement && delete b.dropElement, this.helperContainment.style.position = this.parentOriginStylePosition || null, this.helper !== this.el && this.helper.remove(), this._removeHelperStyle();
2588
2596
  const s = c.initEvent(e, { target: this.el, type: "dragstop" });
2589
2597
  this.option.stop && this.option.stop(s), this.triggerEvent("dragstop", s), b.dropElement && b.dropElement.drop(e);
@@ -2605,7 +2613,7 @@ class Ne extends gt {
2605
2613
  /** @internal create a clone copy (or user defined method) of the original drag item if set */
2606
2614
  _createHelper() {
2607
2615
  let e = this.el;
2608
- return typeof this.option.helper == "function" ? e = this.option.helper(this.el) : this.option.helper === "clone" && (e = c.cloneNode(this.el)), e.parentElement || c.appendTo(e, this.option.appendTo === "parent" ? this.el.parentElement : this.option.appendTo), this.dragElementOriginStyle = Ne.originStyleProp.map((t) => this.el.style[t]), e;
2616
+ return typeof this.option.helper == "function" ? e = this.option.helper(this.el) : this.option.helper === "clone" && (e = c.cloneNode(this.el)), e.parentElement || c.appendTo(e, this.option.appendTo === "parent" ? this.el.parentElement : this.option.appendTo), this.dragElementOriginStyle = Ae.originStyleProp.map((t) => this.el.style[t]), e;
2609
2617
  }
2610
2618
  /** @internal set the fix position of the dragged item */
2611
2619
  _setupHelperStyle(e) {
@@ -2622,7 +2630,7 @@ class Ne extends gt {
2622
2630
  const e = (t = this.helper) == null ? void 0 : t.gridstackNode;
2623
2631
  if (!(e != null && e._isAboutToRemove) && this.dragElementOriginStyle) {
2624
2632
  const i = this.helper, s = this.dragElementOriginStyle.transition || null;
2625
- i.style.transition = this.dragElementOriginStyle.transition = "none", Ne.originStyleProp.forEach((r) => i.style[r] = this.dragElementOriginStyle[r] || null), setTimeout(() => i.style.transition = s, 50);
2633
+ i.style.transition = this.dragElementOriginStyle.transition = "none", Ae.originStyleProp.forEach((r) => i.style[r] = this.dragElementOriginStyle[r] || null), setTimeout(() => i.style.transition = s, 50);
2626
2634
  }
2627
2635
  return delete this.dragElementOriginStyle, this;
2628
2636
  }
@@ -2664,8 +2672,8 @@ class Ne extends gt {
2664
2672
  };
2665
2673
  }
2666
2674
  }
2667
- Ne.originStyleProp = ["width", "height", "transform", "transform-origin", "transition", "pointerEvents", "position", "left", "top", "minWidth", "willChange"];
2668
- class Ns extends gt {
2675
+ Ae.originStyleProp = ["width", "height", "transform", "transform-origin", "transition", "pointerEvents", "position", "left", "top", "minWidth", "willChange"];
2676
+ class Ls extends gt {
2669
2677
  constructor(e, t = {}) {
2670
2678
  super(), this.el = e, this.option = t, this._mouseEnter = this._mouseEnter.bind(this), this._mouseLeave = this._mouseLeave.bind(this), this.enable(), this._setupAccept();
2671
2679
  }
@@ -2745,25 +2753,25 @@ class mt {
2745
2753
  return this.ddDraggable && ["drag", "dragstart", "dragstop"].indexOf(e) > -1 ? this.ddDraggable.off(e) : this.ddDroppable && ["drop", "dropover", "dropout"].indexOf(e) > -1 ? this.ddDroppable.off(e) : this.ddResizable && ["resizestart", "resize", "resizestop"].indexOf(e) > -1 && this.ddResizable.off(e), this;
2746
2754
  }
2747
2755
  setupDraggable(e) {
2748
- return this.ddDraggable ? this.ddDraggable.updateOption(e) : this.ddDraggable = new Ne(this.el, e), this;
2756
+ return this.ddDraggable ? this.ddDraggable.updateOption(e) : this.ddDraggable = new Ae(this.el, e), this;
2749
2757
  }
2750
2758
  cleanDraggable() {
2751
2759
  return this.ddDraggable && (this.ddDraggable.destroy(), delete this.ddDraggable), this;
2752
2760
  }
2753
2761
  setupResizable(e) {
2754
- return this.ddResizable ? this.ddResizable.updateOption(e) : this.ddResizable = new Se(this.el, e), this;
2762
+ return this.ddResizable ? this.ddResizable.updateOption(e) : this.ddResizable = new Le(this.el, e), this;
2755
2763
  }
2756
2764
  cleanResizable() {
2757
2765
  return this.ddResizable && (this.ddResizable.destroy(), delete this.ddResizable), this;
2758
2766
  }
2759
2767
  setupDroppable(e) {
2760
- return this.ddDroppable ? this.ddDroppable.updateOption(e) : this.ddDroppable = new Ns(this.el, e), this;
2768
+ return this.ddDroppable ? this.ddDroppable.updateOption(e) : this.ddDroppable = new Ls(this.el, e), this;
2761
2769
  }
2762
2770
  cleanDroppable() {
2763
2771
  return this.ddDroppable && (this.ddDroppable.destroy(), delete this.ddDroppable), this;
2764
2772
  }
2765
2773
  }
2766
- class Ls {
2774
+ class As {
2767
2775
  resizable(e, t, i, s) {
2768
2776
  return this._getDDElements(e, t).forEach((r) => {
2769
2777
  if (t === "disable" || t === "enable")
@@ -2852,7 +2860,7 @@ class Ls {
2852
2860
  * Copyright (c) 2021-2024 Alain Dumesny
2853
2861
  * see root license https://github.com/gridstack/gridstack.js/tree/master/LICENSE
2854
2862
  */
2855
- const U = new Ls();
2863
+ const U = new As();
2856
2864
  class _ {
2857
2865
  /**
2858
2866
  * initializing the HTML element, or selector string, into a grid will return the grid. Calling it again will
@@ -2917,7 +2925,7 @@ Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the
2917
2925
  /** @internal create placeholder DIV as needed */
2918
2926
  get placeholder() {
2919
2927
  if (!this._placeholder) {
2920
- this._placeholder = c.createDiv([this.opts.placeholderClass, X.itemClass, this.opts.itemClass]);
2928
+ this._placeholder = c.createDiv([this.opts.placeholderClass, Z.itemClass, this.opts.itemClass]);
2921
2929
  const e = c.createDiv(["placeholder-content"], this._placeholder);
2922
2930
  this.opts.placeholderText && (e.textContent = this.opts.placeholderText);
2923
2931
  }
@@ -2944,23 +2952,23 @@ Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the
2944
2952
  const o = t.columnOpts;
2945
2953
  o && (!o.columnWidth && !((f = o.breakpoints) != null && f.length) ? (delete t.columnOpts, s = void 0) : o.columnMax = o.columnMax || 12), (s == null ? void 0 : s.length) > 1 && s.sort((g, y) => (y.w || 0) - (g.w || 0));
2946
2954
  const n = {
2947
- ...c.cloneDeep(X),
2948
- column: c.toNumber(e.getAttribute("gs-column")) || X.column,
2949
- minRow: i || c.toNumber(e.getAttribute("gs-min-row")) || X.minRow,
2950
- maxRow: i || c.toNumber(e.getAttribute("gs-max-row")) || X.maxRow,
2951
- staticGrid: c.toBool(e.getAttribute("gs-static")) || X.staticGrid,
2955
+ ...c.cloneDeep(Z),
2956
+ column: c.toNumber(e.getAttribute("gs-column")) || Z.column,
2957
+ minRow: i || c.toNumber(e.getAttribute("gs-min-row")) || Z.minRow,
2958
+ maxRow: i || c.toNumber(e.getAttribute("gs-max-row")) || Z.maxRow,
2959
+ staticGrid: c.toBool(e.getAttribute("gs-static")) || Z.staticGrid,
2952
2960
  sizeToContent: c.toBool(e.getAttribute("gs-size-to-content")) || void 0,
2953
2961
  draggable: {
2954
- handle: (t.handleClass ? "." + t.handleClass : t.handle ? t.handle : "") || X.draggable.handle
2962
+ handle: (t.handleClass ? "." + t.handleClass : t.handle ? t.handle : "") || Z.draggable.handle
2955
2963
  },
2956
2964
  removableOptions: {
2957
- accept: t.itemClass || X.removableOptions.accept,
2958
- decline: X.removableOptions.decline
2965
+ accept: t.itemClass || Z.removableOptions.accept,
2966
+ decline: Z.removableOptions.decline
2959
2967
  }
2960
2968
  };
2961
2969
  e.getAttribute("gs-animate") && (n.animate = c.toBool(e.getAttribute("gs-animate"))), t = c.defaults(t, n), this._initMargin(), this.checkDynamicColumn(), this.el.classList.add("gs-" + t.column), t.rtl === "auto" && (t.rtl = e.style.direction === "rtl"), t.rtl && this.el.classList.add("grid-stack-rtl");
2962
- const d = this.el.closest("." + X.itemClass), h = d == null ? void 0 : d.gridstackNode;
2963
- h && (h.subGrid = this, this.parentGridNode = h, this.el.classList.add("grid-stack-nested"), h.el.classList.add("grid-stack-sub-grid")), this._isAutoCellHeight = t.cellHeight === "auto", this._isAutoCellHeight || t.cellHeight === "initial" ? this.cellHeight(void 0, !1) : (typeof t.cellHeight == "number" && t.cellHeightUnit && t.cellHeightUnit !== X.cellHeightUnit && (t.cellHeight = t.cellHeight + t.cellHeightUnit, delete t.cellHeightUnit), this.cellHeight(t.cellHeight, !1)), t.alwaysShowResizeHandle === "mobile" && (t.alwaysShowResizeHandle = ae), this._styleSheetClass = "gs-id-" + le._idSeq++, this.el.classList.add(this._styleSheetClass), this._setStaticClass();
2970
+ const d = this.el.closest("." + Z.itemClass), h = d == null ? void 0 : d.gridstackNode;
2971
+ h && (h.subGrid = this, this.parentGridNode = h, this.el.classList.add("grid-stack-nested"), h.el.classList.add("grid-stack-sub-grid")), this._isAutoCellHeight = t.cellHeight === "auto", this._isAutoCellHeight || t.cellHeight === "initial" ? this.cellHeight(void 0, !1) : (typeof t.cellHeight == "number" && t.cellHeightUnit && t.cellHeightUnit !== Z.cellHeightUnit && (t.cellHeight = t.cellHeight + t.cellHeightUnit, delete t.cellHeightUnit), this.cellHeight(t.cellHeight, !1)), t.alwaysShowResizeHandle === "mobile" && (t.alwaysShowResizeHandle = ae), this._styleSheetClass = "gs-id-" + le._idSeq++, this.el.classList.add(this._styleSheetClass), this._setStaticClass();
2964
2972
  const u = t.engineClass || _.engineClass || le;
2965
2973
  if (this.engine = new u({
2966
2974
  column: this.getColumn(),
@@ -3053,8 +3061,8 @@ Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the
3053
3061
  t.column === "auto" && (d = !0, t.column = Math.max(r.w || 1, (i == null ? void 0 : i.w) || 1), delete t.columnOpts);
3054
3062
  let h = r.el.querySelector(".grid-stack-item-content"), u, l;
3055
3063
  if (s && (this._removeDD(r.el), l = { ...r, x: 0, y: 0 }, c.removeInternalForSave(l), delete l.subGridOpts, r.content && (l.content = r.content, delete r.content), _.addRemoveCB ? u = _.addRemoveCB(this.el, l, !0, !1) : (u = c.createDiv(["grid-stack-item"]), u.appendChild(h), h = c.createDiv(["grid-stack-item-content"], r.el)), this.prepareDragDrop(r.el)), i) {
3056
- const p = d ? t.column : r.w, D = r.h + i.h, q = r.el.style;
3057
- q.transition = "none", this.update(r.el, { w: p, h: D }), setTimeout(() => q.transition = null);
3064
+ const p = d ? t.column : r.w, D = r.h + i.h, P = r.el.style;
3065
+ P.transition = "none", this.update(r.el, { w: p, h: D }), setTimeout(() => P.transition = null);
3058
3066
  }
3059
3067
  const f = r.subGrid = _.addGrid(h, t);
3060
3068
  return i != null && i._moving && (f._isTemp = !0), d && (f._autoColumn = !0), s && f.makeWidget(u, l), i && (i._moving ? window.setTimeout(() => c.simulateMouseEvent(i._event, "mouseenter", f.el), 0) : f.makeWidget(r.el, r)), this.resizeToContentCheck(!1, r), f;
@@ -3095,7 +3103,7 @@ Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the
3095
3103
  const r = c.cloneDeep(this.opts);
3096
3104
  r.marginBottom === r.marginTop && r.marginRight === r.marginLeft && r.marginTop === r.marginRight && (r.margin = r.marginTop, delete r.marginTop, delete r.marginRight, delete r.marginBottom, delete r.marginLeft), r.rtl === (this.el.style.direction === "rtl") && (r.rtl = "auto"), this._isAutoCellHeight && (r.cellHeight = "auto"), this._autoColumn && (r.column = "auto");
3097
3105
  const o = r._alwaysShowResizeHandle;
3098
- return delete r._alwaysShowResizeHandle, o !== void 0 ? r.alwaysShowResizeHandle = o : delete r.alwaysShowResizeHandle, c.removeInternalAndSame(r, X), r.children = s, r;
3106
+ return delete r._alwaysShowResizeHandle, o !== void 0 ? r.alwaysShowResizeHandle = o : delete r.alwaysShowResizeHandle, c.removeInternalAndSame(r, Z), r.children = s, r;
3099
3107
  }
3100
3108
  return s;
3101
3109
  }
@@ -3646,7 +3654,7 @@ Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the
3646
3654
  }
3647
3655
  /** @internal */
3648
3656
  _prepareElement(e, t = !1, i) {
3649
- i = i || this._readAttr(e), e.gridstackNode = i, i.el = e, i.grid = this, i = this.engine.addNode(i, t), this._writeAttr(e, i), e.classList.add(X.itemClass, this.opts.itemClass);
3657
+ i = i || this._readAttr(e), e.gridstackNode = i, i.el = e, i.grid = this, i = this.engine.addNode(i, t), this._writeAttr(e, i), e.classList.add(Z.itemClass, this.opts.itemClass);
3650
3658
  const s = c.shouldSizeToContent(i);
3651
3659
  return s ? e.classList.add("size-to-content") : e.classList.remove("size-to-content"), s && this.resizeToContentCheck(!1, i), c.lazyLoad(i) || this.prepareDragDrop(i.el), this;
3652
3660
  }
@@ -4032,8 +4040,8 @@ Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the
4032
4040
  return;
4033
4041
  const p = i.position.top - s._prevYPix;
4034
4042
  s._prevYPix = i.position.top, this.opts.draggable.scroll !== !1 && c.updateScrollPosition(e, i.position, p);
4035
- const D = i.position.left + (i.position.left > s._lastUiPosition.left ? -u : h), q = i.position.top + (i.position.top > s._lastUiPosition.top ? -f : l);
4036
- n.x = Math.round(D / r), n.y = Math.round(q / o);
4043
+ const D = i.position.left + (i.position.left > s._lastUiPosition.left ? -u : h), P = i.position.top + (i.position.top > s._lastUiPosition.top ? -f : l);
4044
+ n.x = Math.round(D / r), n.y = Math.round(P / o);
4037
4045
  const z = this._extraDragRow;
4038
4046
  if (this.engine.collide(s, n)) {
4039
4047
  const Q = this.getRow();
@@ -4077,7 +4085,7 @@ Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the
4077
4085
  }
4078
4086
  // legacy method removed
4079
4087
  commit() {
4080
- return Ds(this, this.batchUpdate(!1), "commit", "batchUpdate", "5.2"), this;
4088
+ return Ss(this, this.batchUpdate(!1), "commit", "batchUpdate", "5.2"), this;
4081
4089
  }
4082
4090
  }
4083
4091
  _.renderCB = (a, e) => {
@@ -4087,7 +4095,7 @@ _.resizeToContentParent = ".grid-stack-item-content";
4087
4095
  _.Utils = c;
4088
4096
  _.Engine = le;
4089
4097
  _.GDRev = "11.5.1";
4090
- const As = ["data-id", "data-testid", "gs-h", "gs-w", "gs-x", "gs-y"], Os = { class: "grid-stack-item-content" }, Hs = /* @__PURE__ */ Z({
4098
+ const Os = ["data-id", "data-testid", "gs-h", "gs-w", "gs-x", "gs-y"], Hs = { class: "grid-stack-item-content" }, Ms = /* @__PURE__ */ J({
4091
4099
  __name: "DraggableGridLayout",
4092
4100
  props: {
4093
4101
  tiles: {},
@@ -4135,7 +4143,7 @@ const As = ["data-id", "data-testid", "gs-h", "gs-w", "gs-x", "gs-y"], Os = { cl
4135
4143
  g && n.removeWidget(g);
4136
4144
  }
4137
4145
  };
4138
- return ze(() => i.tiles.length, async (m, g) => {
4146
+ return De(() => i.tiles.length, async (m, g) => {
4139
4147
  if (m > g && n) {
4140
4148
  const y = i.tiles.slice(g);
4141
4149
  for (const p of y)
@@ -4165,19 +4173,19 @@ const As = ["data-id", "data-testid", "gs-h", "gs-w", "gs-x", "gs-y"], Os = { cl
4165
4173
  "gs-x": y.layout.position.col,
4166
4174
  "gs-y": y.layout.position.row
4167
4175
  }, [
4168
- oe("div", Os, [
4169
- De(m.$slots, "tile", { tile: y }, void 0, !0)
4176
+ oe("div", Hs, [
4177
+ Se(m.$slots, "tile", { tile: y }, void 0, !0)
4170
4178
  ])
4171
- ], 8, As))), 128))
4179
+ ], 8, Os))), 128))
4172
4180
  ], 512));
4173
4181
  }
4174
- }), Ms = /* @__PURE__ */ _e(Hs, [["__scopeId", "data-v-a68d6821"]]), Is = {
4182
+ }), Is = /* @__PURE__ */ _e(Ms, [["__scopeId", "data-v-a68d6821"]]), qs = {
4175
4183
  key: 0,
4176
4184
  class: "fullscreen-header"
4177
- }, qs = {
4185
+ }, Ps = {
4178
4186
  key: 0,
4179
4187
  class: "tile-container slottable-tile"
4180
- }, Ps = /* @__PURE__ */ Z({
4188
+ }, $s = /* @__PURE__ */ J({
4181
4189
  __name: "DashboardRenderer",
4182
4190
  props: /* @__PURE__ */ xt({
4183
4191
  context: {}
@@ -4187,30 +4195,30 @@ const As = ["data-id", "data-testid", "gs-h", "gs-w", "gs-x", "gs-y"], Os = { cl
4187
4195
  }),
4188
4196
  emits: /* @__PURE__ */ xt(["edit-tile", "tile-time-range-zoom"], ["update:modelValue"]),
4189
4197
  setup(a, { expose: e, emit: t }) {
4190
- Ye((C) => ({
4198
+ je((C) => ({
4191
4199
  v82baf22a: l.value
4192
4200
  }));
4193
- const i = a, s = t, r = di(a, "modelValue"), { i18n: o } = ye.useI18n(), n = H(0), d = H(null), h = H(), u = H(), l = H("scale(1)"), f = ve(me);
4201
+ const i = a, s = t, r = ci(a, "modelValue"), { i18n: o } = ye.useI18n(), n = H(0), d = H(null), h = H(), u = H(), l = H("scale(1)"), f = ve(pe);
4194
4202
  f || (console.warn("Analytics dashboards require a query bridge supplied via provide / inject."), console.warn("Please ensure your application has a query bridge provided under the key 'analytics-query-provider', as described in"), console.warn("https://github.com/Kong/public-ui-components/blob/main/packages/analytics/dashboard-renderer/README.md#requirements")), ye.useRequestQueue();
4195
- const m = dt(), g = T(() => i.context.timeSpec ? i.context.timeSpec : {
4203
+ const m = dt(), g = k(() => i.context.timeSpec ? i.context.timeSpec : {
4196
4204
  type: "relative",
4197
4205
  time_range: m.defaultQueryTimeForOrg
4198
- }), y = T(() => !!i.context.timeSpec || !m.loading), p = (C, S) => {
4199
- const N = C.layout.position.row - S.layout.position.row;
4200
- return N !== 0 ? N : C.layout.position.col - S.layout.position.col;
4201
- }, D = T(() => r.value.tiles.map((C) => {
4202
- var N;
4203
- let S = C.definition;
4204
- if ("description" in S.chart) {
4205
- const P = (N = S.chart.description) == null ? void 0 : N.replace(Bi, () => {
4206
- const pe = `renderer.trendRange.${g.value.type === "absolute" ? "custom" : g.value.time_range}`;
4207
- return o.te(pe) ? o.t(pe) : "";
4206
+ }), y = k(() => !!i.context.timeSpec || !m.loading), p = (C, N) => {
4207
+ const L = C.layout.position.row - N.layout.position.row;
4208
+ return L !== 0 ? L : C.layout.position.col - N.layout.position.col;
4209
+ }, D = k(() => r.value.tiles.map((C) => {
4210
+ var L;
4211
+ let N = C.definition;
4212
+ if ("description" in N.chart) {
4213
+ const q = (L = N.chart.description) == null ? void 0 : L.replace(Ui, () => {
4214
+ const fe = `renderer.trendRange.${g.value.type === "absolute" ? "custom" : g.value.time_range}`;
4215
+ return o.te(fe) ? o.t(fe) : "";
4208
4216
  });
4209
- S = {
4210
- ...S,
4217
+ N = {
4218
+ ...N,
4211
4219
  chart: {
4212
- ...S.chart,
4213
- description: P
4220
+ ...N.chart,
4221
+ description: q
4214
4222
  }
4215
4223
  };
4216
4224
  }
@@ -4220,48 +4228,48 @@ const As = ["data-id", "data-testid", "gs-h", "gs-w", "gs-x", "gs-y"], Os = { cl
4220
4228
  C
4221
4229
  ), {
4222
4230
  layout: C.layout,
4223
- meta: S,
4231
+ meta: N,
4224
4232
  type: C.type,
4225
4233
  // Add a unique key to each tile internally.
4226
4234
  id: C.id ?? crypto.randomUUID()
4227
4235
  };
4228
- })), q = T(() => {
4229
- var pe, Re, qe;
4230
- let { tz: C, refreshInterval: S, editable: N } = i.context;
4231
- const P = [...i.context.filters ?? [], ...r.value.preset_filters ?? []];
4232
- if (C || (C = new Intl.DateTimeFormat().resolvedOptions().timeZone), S === void 0 && (S = Ui), J.value) {
4233
- let ke = !1;
4236
+ })), P = k(() => {
4237
+ var fe, Pe, ke;
4238
+ let { tz: C, refreshInterval: N, editable: L } = i.context;
4239
+ const q = [...i.context.filters ?? [], ...r.value.preset_filters ?? []];
4240
+ if (C || (C = new Intl.DateTimeFormat().resolvedOptions().timeZone), N === void 0 && (N = Wi), j.value) {
4241
+ let Te = !1;
4234
4242
  if (g.value.type === "relative")
4235
- ke = ["15m", "1h", "6h", "12h", "24h"].includes(g.value.time_range);
4243
+ Te = ["15m", "1h", "6h", "12h", "24h"].includes(g.value.time_range);
4236
4244
  else {
4237
4245
  const et = g.value.start.getTime(), tt = g.value.end.getTime();
4238
- ke = Math.abs(tt - et) <= 864e5;
4246
+ Te = Math.abs(tt - et) <= 864e5;
4239
4247
  }
4240
4248
  const Je = (/* @__PURE__ */ new Date()).getTime();
4241
- g.value.type === "absolute" && g.value.end.getTime() < Je ? S = 0 : ke ? S = Wi : S = Ki;
4249
+ g.value.type === "absolute" && g.value.end.getTime() < Je ? N = 0 : Te ? N = Ki : N = Vi;
4242
4250
  }
4243
- N === void 0 && (N = !1);
4244
- const ee = !!((qe = (Re = (pe = ci()) == null ? void 0 : pe.vnode) == null ? void 0 : Re.props) != null && qe.onTileTimeRangeZoom);
4251
+ L === void 0 && (L = !1);
4252
+ const re = !!((ke = (Pe = (fe = fi()) == null ? void 0 : fe.vnode) == null ? void 0 : Pe.props) != null && ke.onTileTimeRangeZoom);
4245
4253
  return {
4246
- filters: P,
4254
+ filters: q,
4247
4255
  tz: C,
4248
4256
  timeSpec: g.value,
4249
- refreshInterval: S,
4250
- editable: N,
4251
- zoomable: ee
4257
+ refreshInterval: N,
4258
+ editable: L,
4259
+ zoomable: re
4252
4260
  };
4253
4261
  }), z = (C) => {
4254
4262
  s("edit-tile", C);
4255
4263
  }, Q = (C) => C.type === "slottable", B = (C) => {
4256
- const S = Q(C.meta.chart) ? { ...C.meta.chart } : {
4264
+ const N = Q(C.meta.chart) ? { ...C.meta.chart } : {
4257
4265
  ...C.meta.chart,
4258
4266
  chart_title: C.meta.chart.chart_title ? `Copy of ${C.meta.chart.chart_title}` : ""
4259
- }, N = {
4267
+ }, L = {
4260
4268
  id: crypto.randomUUID(),
4261
4269
  type: "chart",
4262
4270
  definition: {
4263
4271
  ...C.meta,
4264
- chart: S
4272
+ chart: N
4265
4273
  },
4266
4274
  layout: {
4267
4275
  position: {
@@ -4271,49 +4279,49 @@ const As = ["data-id", "data-testid", "gs-h", "gs-w", "gs-x", "gs-y"], Os = { cl
4271
4279
  size: C.layout.size
4272
4280
  }
4273
4281
  };
4274
- r.value.tiles.push(N);
4282
+ r.value.tiles.push(L);
4275
4283
  }, R = (C) => {
4276
4284
  d.value && d.value.removeWidget(C.id);
4277
4285
  }, M = () => {
4278
4286
  n.value++;
4279
4287
  }, Y = (C) => {
4280
- const S = C.map((N) => ({
4281
- id: N.id,
4282
- type: N.type,
4283
- layout: N.layout,
4284
- definition: N.meta
4288
+ const N = C.map((L) => ({
4289
+ id: L.id,
4290
+ type: L.type,
4291
+ layout: L.layout,
4292
+ definition: L.meta
4285
4293
  }));
4286
- r.value.tiles = S.sort(p);
4294
+ r.value.tiles = N.sort(p);
4287
4295
  }, de = async () => {
4288
4296
  if (l.value = "scale(1)", await ut(), u.value) {
4289
- const { availWidth: C, availHeight: S } = window.screen, { width: N, height: P } = u.value.getBoundingClientRect(), ee = Math.min(S / P, C / N);
4290
- l.value = `scale(${ee})`;
4297
+ const { availWidth: C, availHeight: N } = window.screen, { width: L, height: q } = u.value.getBoundingClientRect(), re = Math.min(N / q, C / L);
4298
+ l.value = `scale(${re})`;
4291
4299
  }
4292
- }, Me = () => {
4300
+ }, qe = () => {
4293
4301
  h.value && (document.fullscreenElement ? document.exitFullscreen() : h.value.requestFullscreen());
4294
- }, J = H(!1), Ie = () => {
4295
- J.value = document.fullscreenElement !== null, J.value && de();
4302
+ }, j = H(!1), Re = () => {
4303
+ j.value = document.fullscreenElement !== null, j.value && de();
4296
4304
  };
4297
4305
  return e({
4298
4306
  refresh: M,
4299
- toggleFullscreen: Me
4300
- }), (C, S) => {
4301
- const N = ge("KAlert");
4307
+ toggleFullscreen: qe
4308
+ }), (C, N) => {
4309
+ const L = me("KAlert");
4302
4310
  return x(), K("div", {
4303
4311
  ref_key: "dashboardContainer",
4304
4312
  ref: h,
4305
- class: je(["kong-ui-public-dashboard-renderer", { "is-fullscreen": J.value }]),
4306
- onFullscreenchange: Ie
4313
+ class: Ne(["kong-ui-public-dashboard-renderer", { "is-fullscreen": j.value }]),
4314
+ onFullscreenchange: Re
4307
4315
  }, [
4308
4316
  oe("div", {
4309
4317
  ref_key: "layoutContainer",
4310
4318
  ref: u,
4311
4319
  class: "layout"
4312
4320
  }, [
4313
- E(f) && J.value ? (x(), K("div", Is, [
4314
- De(C.$slots, "fullscreenHeader", {}, void 0, !0)
4321
+ E(f) && j.value ? (x(), K("div", qs, [
4322
+ Se(C.$slots, "fullscreenHeader", {}, void 0, !0)
4315
4323
  ])) : V("", !0),
4316
- E(f) ? (x(), O(Pt(a.context.editable && !J.value ? Ms : zs), {
4324
+ E(f) ? (x(), O(Pt(a.context.editable && !j.value ? Is : Ds), {
4317
4325
  key: 2,
4318
4326
  ref_key: "gridLayoutRef",
4319
4327
  ref: d,
@@ -4321,27 +4329,27 @@ const As = ["data-id", "data-testid", "gs-h", "gs-w", "gs-x", "gs-y"], Os = { cl
4321
4329
  tiles: D.value,
4322
4330
  onUpdateTiles: Y
4323
4331
  }, {
4324
- tile: $(({ tile: P }) => [
4325
- P.meta.chart.type === "slottable" ? (x(), K("div", qs, [
4326
- De(C.$slots, P.meta.chart.id, {}, void 0, !0)
4327
- ])) : (x(), O(Rs, {
4328
- key: J.value ? `${P.id}-tile` : `${P.id}-tile-fullscreen`,
4332
+ tile: $(({ tile: q }) => [
4333
+ q.meta.chart.type === "slottable" ? (x(), K("div", Ps, [
4334
+ Se(C.$slots, q.meta.chart.id, {}, void 0, !0)
4335
+ ])) : (x(), O(ks, {
4336
+ key: j.value ? `${q.id}-tile` : `${q.id}-tile-fullscreen`,
4329
4337
  class: "tile-container",
4330
- context: q.value,
4331
- definition: P.meta,
4332
- height: P.layout.size.rows * (r.value.tile_height || E(Xe)) + parseInt(E(Jt), 10),
4333
- "is-fullscreen": J.value,
4338
+ context: P.value,
4339
+ definition: q.meta,
4340
+ height: q.layout.size.rows * (r.value.tile_height || E(Xe)) + parseInt(E(Jt), 10),
4341
+ "is-fullscreen": j.value,
4334
4342
  "query-ready": y.value,
4335
4343
  "refresh-counter": n.value,
4336
- "tile-id": P.id,
4337
- onDuplicateTile: (ee) => B(P),
4338
- onEditTile: (ee) => z(P),
4339
- onRemoveTile: (ee) => R(P),
4340
- onTileTimeRangeZoom: S[0] || (S[0] = (ee) => s("tile-time-range-zoom", ee))
4344
+ "tile-id": q.id,
4345
+ onDuplicateTile: (re) => B(q),
4346
+ onEditTile: (re) => z(q),
4347
+ onRemoveTile: (re) => R(q),
4348
+ onTileTimeRangeZoom: N[0] || (N[0] = (re) => s("tile-time-range-zoom", re))
4341
4349
  }, null, 8, ["context", "definition", "height", "is-fullscreen", "query-ready", "refresh-counter", "tile-id", "onDuplicateTile", "onEditTile", "onRemoveTile"]))
4342
4350
  ]),
4343
4351
  _: 3
4344
- }, 40, ["tile-height", "tiles"])) : (x(), O(N, {
4352
+ }, 40, ["tile-height", "tiles"])) : (x(), O(L, {
4345
4353
  key: 1,
4346
4354
  appearance: "danger"
4347
4355
  }, {
@@ -4354,18 +4362,18 @@ const As = ["data-id", "data-testid", "gs-h", "gs-w", "gs-x", "gs-y"], Os = { cl
4354
4362
  ], 34);
4355
4363
  };
4356
4364
  }
4357
- }), js = /* @__PURE__ */ _e(Ps, [["__scopeId", "data-v-8d8a6181"]]);
4365
+ }), Xs = /* @__PURE__ */ _e($s, [["__scopeId", "data-v-8d8a6181"]]);
4358
4366
  export {
4359
- Gi as C,
4360
- js as D,
4367
+ Bi as C,
4368
+ Xs as D,
4361
4369
  Rt as E,
4362
- Wi as F,
4363
- zs as G,
4364
- me as I,
4365
- Bi as T,
4370
+ Ki as F,
4371
+ Ds as G,
4372
+ pe as I,
4373
+ Ui as T,
4366
4374
  ct as _,
4367
4375
  Xe as a,
4368
4376
  Ut as b,
4369
- Ui as c,
4370
- Ki as d
4377
+ Wi as c,
4378
+ Vi as d
4371
4379
  };