@shifl-inc/ui 0.1.0 → 0.2.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.
package/dist/shifl-ui.js CHANGED
@@ -1,685 +1,1142 @@
1
- import {
2
- ref as C,
3
- computed as k,
4
- defineComponent as O,
5
- createElementBlock as p,
6
- openBlock as b,
7
- createElementVNode as n,
8
- toDisplayString as _,
9
- createTextVNode as U,
10
- Fragment as $,
11
- renderList as S,
12
- withModifiers as N,
13
- normalizeClass as j,
14
- watch as V,
15
- createBlock as H,
16
- createCommentVNode as M,
17
- unref as g,
18
- normalizeStyle as R,
19
- provide as Y,
20
- inject as q,
21
- onMounted as Q,
22
- onUnmounted as X
23
- } from 'vue';
24
- function Z(e) {
25
- const i = (e.columns || []).map((r) => ({
26
- ...r,
27
- frozen: r.frozen ?? r.fixed ?? !1,
28
- visible: r.visible ?? !0
1
+ import { ref as k, computed as v, onMounted as X, onUnmounted as q, defineComponent as _e, createElementBlock as a, openBlock as s, withModifiers as B, createElementVNode as u, createCommentVNode as P, createTextVNode as O, toDisplayString as b, Fragment as M, renderList as z, normalizeClass as V, watch as Y, nextTick as Pe, createBlock as R, Teleport as me, normalizeStyle as G, createVNode as he, unref as S, resolveDynamicComponent as pe, createStaticVNode as gt, provide as ht, inject as pt } from "vue";
2
+ function vt(r) {
3
+ const c = (r.columns || []).map((l) => ({
4
+ ...l,
5
+ frozen: l.frozen ?? l.fixed ?? !1,
6
+ visible: l.visible ?? !0,
7
+ protected: l.protected ?? !1
29
8
  }));
30
9
  return {
31
- ...e,
32
- columns: i,
33
- rows: e.rows ?? [],
34
- search: e.search ?? [],
35
- filters: e.filters ?? [],
36
- paginationMeta: e.paginationMeta ?? {}
10
+ ...r,
11
+ columns: c,
12
+ rows: r.rows ?? [],
13
+ search: r.search ?? [],
14
+ filters: r.filters ?? [],
15
+ paginationMeta: r.paginationMeta ? {
16
+ show: r.paginationMeta.show ?? !0,
17
+ currentPage: r.paginationMeta.currentPage ?? 1,
18
+ perPage: r.paginationMeta.perPage ?? 20,
19
+ total: r.paginationMeta.total ?? 0,
20
+ from: r.paginationMeta.from,
21
+ to: r.paginationMeta.to,
22
+ ...r.paginationMeta
23
+ } : void 0
37
24
  };
38
25
  }
39
- function ee(e) {
40
- const i = [...e],
41
- r = C([...e]);
42
- function c(o) {
43
- r.value = r.value.map((t) => (t.key === o ? { ...t, visible: !t.visible } : t));
26
+ function mt(r) {
27
+ const c = [...r], l = k([...r]);
28
+ function m(h) {
29
+ l.value = l.value.map(
30
+ (f) => f.key === h ? { ...f, visible: !f.visible } : f
31
+ );
44
32
  }
45
- function l(o) {
46
- r.value = r.value.map((t) => ({ ...t, visible: o }));
33
+ function d(h) {
34
+ l.value = l.value.map((f) => ({ ...f, visible: h }));
47
35
  }
48
- function f(o) {
49
- const t = r.value.map((v) => (v.key === o ? { ...v, frozen: !v.frozen } : v)),
50
- m = t.filter((v) => v.frozen),
51
- y = t.filter((v) => !v.frozen);
52
- r.value = [...m, ...y];
36
+ function _(h) {
37
+ const f = l.value.map(
38
+ (C) => C.key === h ? { ...C, frozen: !C.frozen } : C
39
+ ), g = f.filter((C) => C.frozen), L = f.filter((C) => !C.frozen);
40
+ l.value = [...g, ...L];
53
41
  }
54
- function h(o, t) {
55
- if (o === t || t < 0 || t >= r.value.length) return;
56
- const m = r.value.findIndex((G) => !G.frozen),
57
- y = m === -1 ? r.value.length : m;
58
- if (o < y || t < y) return;
59
- const v = [...r.value],
60
- [z] = v.splice(o, 1);
61
- (v.splice(t, 0, z), (r.value = v));
42
+ function T(h, f) {
43
+ if (h === f || f < 0 || f >= l.value.length) return;
44
+ const g = l.value.findIndex((J) => !J.frozen), L = g === -1 ? l.value.length : g;
45
+ if (h < L || f < L) return;
46
+ const C = [...l.value], [H] = C.splice(h, 1);
47
+ C.splice(f, 0, H), l.value = C;
62
48
  }
63
- function w() {
64
- r.value = [...i];
49
+ function y() {
50
+ l.value = [...c];
65
51
  }
66
- const s = k(() => r.value.filter((o) => o.visible));
52
+ const x = v(() => l.value.filter((h) => h.visible));
67
53
  return {
68
- columns: r,
69
- visibleColumns: s,
70
- toggleColumnVisibility: c,
71
- setAllVisible: l,
72
- toggleFrozen: f,
73
- moveColumn: h,
74
- resetColumns: w
54
+ columns: l,
55
+ visibleColumns: x,
56
+ toggleColumnVisibility: m,
57
+ setAllVisible: d,
58
+ toggleFrozen: _,
59
+ moveColumn: T,
60
+ resetColumns: y
75
61
  };
76
62
  }
77
- function te(e) {
78
- const i = C(e);
79
- function r(l) {
80
- var f;
81
- i.value =
82
- ((f = i.value) == null ? void 0 : f.key) === l && i.value.order === 'asc'
83
- ? { key: l, order: 'desc' }
84
- : { key: l, order: 'asc' };
63
+ function _t(r) {
64
+ const c = k(r);
65
+ function l(d) {
66
+ var _;
67
+ c.value = ((_ = c.value) == null ? void 0 : _.key) === d && c.value.order === "asc" ? { key: d, order: "desc" } : { key: d, order: "asc" };
85
68
  }
86
- function c(l) {
87
- if (!i.value) return l;
88
- const { key: f, order: h } = i.value;
89
- return [...l].sort((w, s) => {
90
- const o = w[f],
91
- t = s[f];
92
- if (o === t) return 0;
93
- if (o == null) return 1;
94
- if (t == null) return -1;
95
- const m = String(o).localeCompare(String(t), void 0, {
69
+ function m(d) {
70
+ if (!c.value) return d;
71
+ const { key: _, order: T } = c.value;
72
+ return [...d].sort((y, x) => {
73
+ const h = y[_], f = x[_];
74
+ if (h === f) return 0;
75
+ if (h == null) return 1;
76
+ if (f == null) return -1;
77
+ const g = String(h).localeCompare(String(f), void 0, {
96
78
  numeric: !0
97
79
  });
98
- return h === 'asc' ? m : -m;
80
+ return T === "asc" ? g : -g;
99
81
  });
100
82
  }
101
83
  return {
102
- sort: i,
103
- setSort: r,
104
- applySort: c
84
+ sort: c,
85
+ setSort: l,
86
+ applySort: m
105
87
  };
106
88
  }
107
- function ne() {
108
- const e = C('');
109
- function i(c) {
110
- e.value = c;
111
- }
112
- function r(c, l) {
113
- const f = e.value.trim().toLowerCase();
114
- return f
115
- ? c.filter((h) =>
116
- (l && l.length ? l.map((s) => h[s]) : Object.values(h)).some((s) =>
117
- String(s ?? '')
118
- .toLowerCase()
119
- .includes(f)
120
- )
121
- )
122
- : c;
89
+ function Ct() {
90
+ function r(c, l, m) {
91
+ const d = (m || "").trim().toLowerCase();
92
+ return d ? c.filter((_) => (l && l.length ? l.map((y) => _[y]) : Object.values(_)).some(
93
+ (y) => String(y ?? "").toLowerCase().includes(d)
94
+ )) : c;
123
95
  }
124
96
  return {
125
- globalFilter: e,
126
- setGlobalFilter: i,
127
97
  applyGlobalFilter: r
128
98
  };
129
99
  }
130
- const oe = { class: 'fixed inset-0 z-40 flex justify-end bg-black/20' },
131
- re = {
132
- class: 'flex h-full w-full max-w-md flex-col bg-white shadow-xl ring-1 ring-black/5',
133
- role: 'dialog',
134
- 'aria-modal': 'true'
135
- },
136
- le = { class: 'flex items-center justify-between border-b border-gray-200 px-6 py-4' },
137
- se = { class: 'min-w-0' },
138
- ie = { class: 'text-xs font-medium text-gray-400' },
139
- ue = { class: 'flex items-center justify-between border-b border-gray-200 px-6 py-3 text-xs' },
140
- ae = { class: 'flex gap-3 font-medium text-gray-600' },
141
- de = { class: 'flex-1 overflow-y-auto px-4 py-4' },
142
- ce = { class: 'space-y-2' },
143
- fe = ['draggable', 'onDragstart', 'onDragover', 'onDrop'],
144
- ve = { class: 'flex items-center gap-3' },
145
- ge = ['aria-label'],
146
- be = { class: 'flex items-center gap-2' },
147
- me = ['checked', 'onChange'],
148
- pe = { class: 'text-gray-800' },
149
- ye = { class: 'flex items-center gap-2 text-gray-400' },
150
- he = ['onClick'],
151
- xe = { class: 'flex justify-end gap-3 border-t border-gray-200 px-6 py-3' },
152
- we = /* @__PURE__ */ O({
153
- __name: 'GridColumnManager',
154
- props: {
155
- titlePrefix: {},
156
- columns: {}
157
- },
158
- emits: [
159
- 'close',
160
- 'toggle',
161
- 'move',
162
- 'toggleFrozen',
163
- 'selectAll',
164
- 'deselectAll',
165
- 'restoreDefault'
166
- ],
167
- setup(e, { emit: i }) {
168
- const r = e,
169
- c = i,
170
- l = C(null);
171
- function f(s) {
172
- var o;
173
- ((o = r.columns[s]) != null && o.frozen) || (l.value = s);
174
- }
175
- function h(s) {}
176
- function w(s) {
177
- l.value === null || l.value === s || (c('move', l.value, s), (l.value = null));
100
+ function yt() {
101
+ const r = k({
102
+ rowIndex: null,
103
+ position: null
104
+ });
105
+ function c(_, T) {
106
+ const y = T.getBoundingClientRect();
107
+ r.value = {
108
+ rowIndex: _,
109
+ position: {
110
+ top: y.bottom + 4,
111
+ // 4px gap below icon
112
+ left: y.left
178
113
  }
179
- return (s, o) => (
180
- b(),
181
- p('div', oe, [
182
- n('div', re, [
183
- n('header', le, [
184
- n('div', se, [
185
- n('p', ie, _(e.titlePrefix), 1),
186
- o[6] ||
187
- (o[6] = n(
188
- 'h2',
189
- { class: 'truncate text-base font-semibold text-gray-900' },
190
- ' Edit Columns ',
191
- -1
192
- ))
193
- ]),
194
- n(
195
- 'button',
196
- {
197
- type: 'button',
198
- class:
199
- 'inline-flex h-8 w-8 items-center justify-center rounded-full text-gray-400 hover:bg-gray-100 hover:text-gray-600',
200
- onClick: o[0] || (o[0] = (t) => s.$emit('close'))
201
- },
202
- [...(o[7] || (o[7] = [n('span', { class: 'sr-only' }, 'Close', -1), U(' ✕ ', -1)]))]
203
- )
204
- ]),
205
- n('div', ue, [
206
- n('div', ae, [
207
- n(
208
- 'button',
209
- {
210
- type: 'button',
211
- class: 'hover:text-blue-600',
212
- onClick: o[1] || (o[1] = (t) => s.$emit('selectAll'))
213
- },
214
- ' Select All '
215
- ),
216
- n(
217
- 'button',
218
- {
219
- type: 'button',
220
- class: 'hover:text-blue-600',
221
- onClick: o[2] || (o[2] = (t) => s.$emit('deselectAll'))
222
- },
223
- ' Deselect All '
224
- )
225
- ]),
226
- n(
227
- 'button',
228
- {
229
- type: 'button',
230
- class: 'text-xs font-medium text-blue-600 hover:text-blue-700',
231
- onClick: o[3] || (o[3] = (t) => s.$emit('restoreDefault'))
232
- },
233
- ' Restore Default '
234
- )
235
- ]),
236
- n('div', de, [
237
- n('ul', ce, [
238
- (b(!0),
239
- p(
240
- $,
241
- null,
242
- S(
243
- e.columns,
244
- (t, m) => (
245
- b(),
246
- p(
247
- 'li',
248
- {
249
- key: t.key,
250
- class:
251
- 'flex items-center justify-between rounded-lg border border-gray-200 bg-gray-50 px-4 py-2 text-sm shadow-[0_1px_0_rgba(15,23,42,0.02)]',
252
- draggable: !t.frozen,
253
- onDragstart: (y) => f(m),
254
- onDragover: N((y) => void 0, ['prevent']),
255
- onDrop: N((y) => w(m), ['prevent'])
256
- },
257
- [
258
- n('div', ve, [
259
- n(
260
- 'button',
261
- {
262
- type: 'button',
263
- class: j([
264
- 'cursor-grab text-gray-300 hover:text-gray-500',
265
- { 'opacity-40 cursor-not-allowed': t.frozen }
266
- ]),
267
- 'aria-label': `Move ${t.label}`
268
- },
269
- ' ⋮⋮ ',
270
- 10,
271
- ge
272
- ),
273
- n('label', be, [
274
- n(
275
- 'input',
276
- {
277
- type: 'checkbox',
278
- class:
279
- 'h-4 w-4 rounded border-gray-300 text-blue-600 focus:ring-blue-500',
280
- checked: t.visible,
281
- onChange: (y) => s.$emit('toggle', t.key)
282
- },
283
- null,
284
- 40,
285
- me
286
- ),
287
- n('span', pe, _(t.label), 1)
288
- ])
289
- ]),
290
- n('div', ye, [
291
- n(
292
- 'button',
293
- {
294
- type: 'button',
295
- class: j([
296
- 'h-7 w-7 rounded-full border border-transparent text-xs font-medium text-gray-500 hover:border-blue-200 hover:bg-blue-50 hover:text-blue-600 disabled:opacity-40',
297
- {
298
- 'bg-blue-50 text-blue-600 border-blue-200': t.frozen
299
- }
300
- ]),
301
- onClick: (y) => s.$emit('toggleFrozen', t.key)
302
- },
303
- ' Pin ',
304
- 10,
305
- he
306
- )
307
- ])
308
- ],
309
- 40,
310
- fe
311
- )
312
- )
313
- ),
314
- 128
315
- ))
316
- ])
317
- ]),
318
- n('footer', xe, [
319
- n(
320
- 'button',
321
- {
322
- type: 'button',
323
- class:
324
- 'rounded-md border border-gray-300 px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-50',
325
- onClick: o[4] || (o[4] = (t) => s.$emit('close'))
326
- },
327
- ' Cancel '
328
- ),
329
- n(
330
- 'button',
331
- {
332
- type: 'button',
333
- class:
334
- 'rounded-md bg-blue-600 px-4 py-2 text-sm font-semibold text-white hover:bg-blue-700',
335
- onClick: o[5] || (o[5] = (t) => s.$emit('close'))
336
- },
337
- ' Update '
338
- )
114
+ };
115
+ }
116
+ function l() {
117
+ r.value = {
118
+ rowIndex: null,
119
+ position: null
120
+ };
121
+ }
122
+ function m(_) {
123
+ return r.value.rowIndex === _;
124
+ }
125
+ function d(_) {
126
+ _.key === "Escape" && r.value.rowIndex !== null && l();
127
+ }
128
+ return X(() => {
129
+ document.addEventListener("keydown", d);
130
+ }), q(() => {
131
+ document.removeEventListener("keydown", d);
132
+ }), {
133
+ menuState: r,
134
+ openMenu: c,
135
+ closeMenu: l,
136
+ isMenuOpen: m
137
+ };
138
+ }
139
+ const kt = { class: "shifl-column-manager__header" }, bt = { class: "shifl-column-manager__title-wrapper" }, wt = { class: "shifl-column-manager__title" }, Mt = { key: 0 }, Tt = { class: "shifl-column-manager__controls" }, $t = { class: "shifl-column-manager__controls-left" }, xt = { class: "shifl-column-manager__content" }, Lt = { class: "shifl-column-manager__list" }, St = ["draggable", "onDragstart", "onDragover", "onDrop"], Pt = ["aria-label", "disabled"], At = ["checked", "disabled", "onChange"], zt = { class: "shifl-column-manager__label-text" }, Ht = { class: "shifl-column-manager__footer" }, Rt = /* @__PURE__ */ _e({
140
+ __name: "GridColumnManager",
141
+ props: {
142
+ titlePrefix: {},
143
+ columns: {}
144
+ },
145
+ emits: ["close", "toggle", "move", "toggleFrozen", "selectAll", "deselectAll", "restoreDefault"],
146
+ setup(r, { emit: c }) {
147
+ const l = r, m = v(() => l.columns), d = c, _ = k(null);
148
+ function T(h) {
149
+ var f, g;
150
+ (f = l.columns[h]) != null && f.frozen || (g = l.columns[h]) != null && g.protected || (_.value = h);
151
+ }
152
+ function y(h) {
153
+ }
154
+ function x(h) {
155
+ _.value === null || _.value === h || (d("move", _.value, h), _.value = null);
156
+ }
157
+ return (h, f) => (s(), a("div", {
158
+ class: "shifl-column-manager__backdrop",
159
+ onClick: f[7] || (f[7] = B((g) => h.$emit("close"), ["self"]))
160
+ }, [
161
+ u("div", {
162
+ class: "shifl-column-manager__dialog",
163
+ role: "dialog",
164
+ "aria-modal": "true",
165
+ onClick: f[6] || (f[6] = B(() => {
166
+ }, ["stop"]))
167
+ }, [
168
+ u("header", kt, [
169
+ u("div", bt, [
170
+ u("h2", wt, [
171
+ r.titlePrefix ? (s(), a("span", Mt, b(r.titlePrefix) + " > ", 1)) : P("", !0),
172
+ f[8] || (f[8] = O("Edit Columns ", -1))
339
173
  ])
174
+ ]),
175
+ u("button", {
176
+ type: "button",
177
+ class: "shifl-column-manager__close",
178
+ onClick: f[0] || (f[0] = (g) => h.$emit("close"))
179
+ }, [...f[9] || (f[9] = [
180
+ u("span", null, "✕", -1)
181
+ ])])
182
+ ]),
183
+ u("div", Tt, [
184
+ u("div", $t, [
185
+ u("button", {
186
+ type: "button",
187
+ class: "shifl-column-manager__link-button",
188
+ onClick: f[1] || (f[1] = (g) => h.$emit("selectAll"))
189
+ }, " Select All "),
190
+ u("button", {
191
+ type: "button",
192
+ class: "shifl-column-manager__link-button",
193
+ onClick: f[2] || (f[2] = (g) => h.$emit("deselectAll"))
194
+ }, " Deselect All ")
195
+ ]),
196
+ u("button", {
197
+ type: "button",
198
+ class: "shifl-column-manager__link-button shifl-column-manager__link-button--primary",
199
+ onClick: f[3] || (f[3] = (g) => h.$emit("restoreDefault"))
200
+ }, " Restore Default ")
201
+ ]),
202
+ u("div", xt, [
203
+ u("ul", Lt, [
204
+ (s(!0), a(M, null, z(m.value, (g, L) => (s(), a("li", {
205
+ key: g.key,
206
+ class: V(["shifl-column-manager__item", {
207
+ "shifl-column-manager__item--disabled": g.frozen || g.protected
208
+ }]),
209
+ draggable: !g.frozen && !g.protected,
210
+ onDragstart: (C) => T(L),
211
+ onDragover: B((C) => void 0, ["prevent"]),
212
+ onDrop: B((C) => x(L), ["prevent"])
213
+ }, [
214
+ u("button", {
215
+ type: "button",
216
+ class: V(["shifl-column-manager__drag-handle", {
217
+ "shifl-column-manager__drag-handle--disabled": g.frozen || g.protected
218
+ }]),
219
+ "aria-label": `Move ${g.label}`,
220
+ disabled: g.frozen || g.protected
221
+ }, [...f[10] || (f[10] = [
222
+ u("span", null, "⋮⋮", -1)
223
+ ])], 10, Pt),
224
+ u("label", {
225
+ class: V(["shifl-column-manager__checkbox-label", {
226
+ "shifl-column-manager__checkbox-label--disabled": g.frozen || g.protected
227
+ }])
228
+ }, [
229
+ u("input", {
230
+ type: "checkbox",
231
+ class: "shifl-column-manager__checkbox",
232
+ checked: g.visible,
233
+ disabled: g.frozen || g.protected,
234
+ onChange: (C) => h.$emit("toggle", g.key)
235
+ }, null, 40, At),
236
+ u("span", zt, b(g.label), 1)
237
+ ], 2)
238
+ ], 42, St))), 128))
340
239
  ])
240
+ ]),
241
+ u("footer", Ht, [
242
+ u("button", {
243
+ type: "button",
244
+ class: "shifl-column-manager__button shifl-column-manager__button--secondary",
245
+ onClick: f[4] || (f[4] = (g) => h.$emit("close"))
246
+ }, " Cancel "),
247
+ u("button", {
248
+ type: "button",
249
+ class: "shifl-column-manager__button shifl-column-manager__button--primary",
250
+ onClick: f[5] || (f[5] = (g) => h.$emit("close"))
251
+ }, " Update ")
341
252
  ])
342
- );
343
- }
344
- }),
345
- _e = { class: 'shifl-grid relative' },
346
- ke = { class: 'shifl-grid__controls' },
347
- Ce = ['value'],
348
- $e = { class: 'shifl-grid__header flex items-center justify-between' },
349
- Se = { class: 'text-xs font-medium text-gray-500' },
350
- ze = { class: 'shifl-grid__viewport' },
351
- Ge = { class: 'shifl-grid__table' },
352
- De = ['onClick'],
353
- Fe = { key: 0 },
354
- Ae = { key: 0 },
355
- Me = ['colspan'],
356
- Te = /* @__PURE__ */ O({
357
- __name: 'ShiflGrid',
358
- props: {
359
- config: {}
360
- },
361
- setup(e) {
362
- const i = e,
363
- r = k(() => Z(i.config)),
364
- {
365
- columns: c,
366
- visibleColumns: l,
367
- toggleColumnVisibility: f,
368
- setAllVisible: h,
369
- toggleFrozen: w,
370
- moveColumn: s,
371
- resetColumns: o
372
- } = ee(r.value.columns),
373
- { sort: t, setSort: m, applySort: y } = te(r.value.sort),
374
- { globalFilter: v, setGlobalFilter: z, applyGlobalFilter: G } = ne(),
375
- D = C(!1);
376
- (V(
377
- () => r.value.columns,
378
- (u) => {
379
- c.value = [...u];
380
- },
381
- { deep: !0 }
382
- ),
383
- V(
384
- () => r.value.sort,
385
- (u) => {
386
- u && (t.value = u);
387
- },
388
- { deep: !0 }
389
- ));
390
- const P = k(() => G(r.value.rows, r.value.search)),
391
- F = k(() => y(P.value)),
392
- K = k(() => {
393
- let u = 0;
394
- const a = {};
395
- for (const d of l.value) {
396
- d.frozen && (a[d.key] = u);
397
- const x = parseInt(d.width ?? '160', 10);
398
- Number.isNaN(x) || (u += x);
399
- }
400
- return a;
401
- });
402
- function W(u) {
403
- const a = c.value.find((d) => d.key === u);
404
- a != null && a.sortable && m(u);
253
+ ])
254
+ ]));
255
+ }
256
+ }), D = (r, c) => {
257
+ const l = r.__vccOpts || r;
258
+ for (const [m, d] of c)
259
+ l[m] = d;
260
+ return l;
261
+ }, Vt = /* @__PURE__ */ D(Rt, [["__scopeId", "data-v-70b33c44"]]), Et = { class: "shifl-grid__tooltip-content" }, Zt = /* @__PURE__ */ _e({
262
+ __name: "GridTooltip",
263
+ props: {
264
+ content: {},
265
+ visible: { type: Boolean },
266
+ triggerElement: {}
267
+ },
268
+ setup(r) {
269
+ const c = r, l = k(null), m = k({}), d = v(() => c.content.includes(`
270
+ `)), _ = v(() => d.value ? c.content.split(`
271
+ `).filter((y) => y.trim().length > 0) : []);
272
+ function T() {
273
+ if (!c.triggerElement || !l.value) return;
274
+ const y = c.triggerElement.getBoundingClientRect(), x = l.value.getBoundingClientRect(), h = window.innerWidth, f = window.innerHeight, g = window.scrollX || window.pageXOffset, L = window.scrollY || window.pageYOffset;
275
+ let C = y.bottom + L + 8, H = y.left + g;
276
+ H + x.width > h + g && (H = h + g - x.width - 16), H < g + 16 && (H = g + 16), C + x.height > f + L && (C = y.top + L - x.height - 8), m.value = {
277
+ position: "fixed",
278
+ top: `${C}px`,
279
+ left: `${H}px`,
280
+ zIndex: "10000"
281
+ };
282
+ }
283
+ return Y(
284
+ () => c.visible,
285
+ async (y) => {
286
+ y && (await Pe(), T());
405
287
  }
406
- function I(u) {
407
- const a = u.target.value;
408
- z(a);
288
+ ), X(() => {
289
+ c.visible && Pe(() => T());
290
+ }), q(() => {
291
+ }), (y, x) => (s(), R(me, { to: "body" }, [
292
+ r.visible ? (s(), a("div", {
293
+ key: 0,
294
+ ref_key: "tooltipRef",
295
+ ref: l,
296
+ class: "shifl-grid__tooltip",
297
+ style: G(m.value)
298
+ }, [
299
+ u("div", Et, [
300
+ d.value ? (s(!0), a(M, { key: 0 }, z(_.value, (h, f) => (s(), a("div", {
301
+ key: f,
302
+ class: "shifl-grid__tooltip-line"
303
+ }, b(h), 1))), 128)) : (s(), a(M, { key: 1 }, [
304
+ O(b(r.content), 1)
305
+ ], 64))
306
+ ])
307
+ ], 4)) : P("", !0)
308
+ ]));
309
+ }
310
+ }), Dt = /* @__PURE__ */ D(Zt, [["__scopeId", "data-v-601cf0b0"]]), It = {}, Gt = {
311
+ width: "14",
312
+ height: "15",
313
+ viewBox: "0 0 14 15",
314
+ fill: "none",
315
+ xmlns: "http://www.w3.org/2000/svg",
316
+ class: "shifl-smart-tracking-icon"
317
+ };
318
+ function Bt(r, c) {
319
+ return s(), a("svg", Gt, [...c[0] || (c[0] = [
320
+ u("path", {
321
+ d: "M1.03223 9.27441C1.22778 9.27445 1.40954 9.32951 1.57812 9.43066L3.86523 10.8594C4.1957 11.0618 4.3916 11.4202 4.3916 11.8047C4.39151 12.189 4.19562 12.5467 3.86523 12.749L1.57812 14.1797C1.41642 14.2806 1.22754 14.334 1.03223 14.334V14.3408C0.465713 14.3408 0.000165713 13.8751 0 13.3086V10.3066C0.000236867 9.74022 0.465756 9.27443 1.03223 9.27441ZM1.01172 13.3018L3.3252 11.8916C3.32796 11.8884 3.3728 11.8374 3.37305 11.8047C3.37305 11.771 3.35218 11.737 3.3252 11.7168L1.03906 10.2871L1.01172 13.3018ZM6.07129 3.37305C6.35041 3.37318 6.5771 3.59977 6.57715 3.87891C6.57715 4.15809 6.35044 4.38463 6.07129 4.38477H5.05957C4.03708 4.38477 3.20433 5.06537 3.2041 5.90234C3.2041 6.73947 4.03694 7.4209 5.05957 7.4209H7.08301C8.66344 7.42096 9.95019 8.55525 9.9502 9.9502C9.95009 11.3451 8.66338 12.4794 7.08301 12.4795H6.07129C5.79202 12.4795 5.56543 12.2529 5.56543 11.9736C5.56548 11.6944 5.79205 11.4678 6.07129 11.4678H7.08301C8.10552 11.4677 8.93739 10.7872 8.9375 9.9502C8.93749 9.11311 8.10558 8.43267 7.08301 8.43262H5.05957C3.47908 8.43262 2.19238 7.29733 2.19238 5.90234C2.19259 4.50751 3.4792 3.37305 5.05957 3.37305H6.07129ZM10.7939 0C12.0694 0.000131868 13.2591 0.779675 13.7549 1.94043C14.6093 3.9666 13.0453 5.42741 11.9033 6.49316L11.8818 6.51367C11.7964 6.59308 11.711 6.67193 11.6289 6.75C11.4057 6.96444 11.1095 7.08195 10.7939 7.08203C10.4783 7.08203 10.1803 6.9642 9.95703 6.74902C9.86266 6.65937 9.76511 6.56666 9.66602 6.47363L9.66016 6.46875C8.53029 5.40836 6.98418 3.95585 7.83203 1.94238C8.32854 0.77953 9.51841 6.29203e-06 10.7939 0ZM10.7939 1.01172C9.91775 1.01173 9.10234 1.54537 8.76367 2.33789C8.22961 3.60525 9.04604 4.50453 10.3525 5.73145L10.4229 5.79688C10.5024 5.87104 10.5804 5.94604 10.6572 6.01953C10.7267 6.08617 10.861 6.08446 10.9277 6.02051L10.9307 6.01758C11.0223 5.93066 11.1172 5.84284 11.2129 5.75391C12.5356 4.51951 13.3612 3.61352 12.8223 2.33594C12.4849 1.54493 11.6691 1.0127 10.793 1.0127L10.7939 1.01172ZM10.7998 2.53027C11.1719 2.53041 11.4734 2.83199 11.4736 3.2041C11.4736 3.57637 11.172 3.87877 10.7998 3.87891C10.4275 3.87882 10.1221 3.57641 10.1221 3.2041C10.1223 2.8319 10.4207 2.53027 10.793 2.53027H10.7998Z",
322
+ fill: "#05963F"
323
+ }, null, -1)
324
+ ])]);
325
+ }
326
+ const Nt = /* @__PURE__ */ D(It, [["render", Bt]]), Ot = {}, Wt = {
327
+ width: "14",
328
+ height: "10",
329
+ viewBox: "0 0 14 10",
330
+ fill: "none",
331
+ xmlns: "http://www.w3.org/2000/svg"
332
+ };
333
+ function Ft(r, c) {
334
+ return s(), a("svg", Wt, [...c[0] || (c[0] = [
335
+ u("path", {
336
+ "fill-rule": "evenodd",
337
+ "clip-rule": "evenodd",
338
+ d: "M0 0.666667C0 0.298477 0.314186 2.98023e-08 0.701754 2.98023e-08H4.2807C4.66827 2.98023e-08 4.98246 0.298477 4.98246 0.666667C4.98246 1.03486 4.66827 1.33333 4.2807 1.33333H0.701754C0.314186 1.33333 0 1.03486 0 0.666667ZM10.0301 0.195262C10.3042 -0.0650874 10.7485 -0.0650874 11.0225 0.195262L13.1278 2.19526C13.4018 2.45561 13.4018 2.87772 13.1278 3.13807C12.8537 3.39842 12.4094 3.39842 12.1354 3.13807L11.2281 2.27614V8.66667C11.2281 9.03486 10.9139 9.33333 10.5263 9.33333C10.1387 9.33333 9.82456 9.03486 9.82456 8.66667V2.27614L8.91727 3.13807C8.64322 3.39842 8.19889 3.39842 7.92484 3.13807C7.65079 2.87772 7.65079 2.45561 7.92484 2.19526L10.0301 0.195262ZM0 4.66667C0 4.29848 0.314186 4 0.701754 4H5.61404C6.0016 4 6.31579 4.29848 6.31579 4.66667C6.31579 5.03486 6.0016 5.33333 5.61404 5.33333H0.701754C0.314186 5.33333 0 5.03486 0 4.66667ZM0 8.66667C0 8.29848 0.314186 8 0.701754 8H7.01754C7.40511 8 7.7193 8.29848 7.7193 8.66667C7.7193 9.03486 7.40511 9.33333 7.01754 9.33333H0.701754C0.314186 9.33333 0 9.03486 0 8.66667Z",
339
+ fill: "#1A6D9E"
340
+ }, null, -1)
341
+ ])]);
342
+ }
343
+ const jt = /* @__PURE__ */ D(Ot, [["render", Ft]]), Kt = {}, Yt = {
344
+ width: "14",
345
+ height: "10",
346
+ viewBox: "0 0 14 10",
347
+ fill: "none",
348
+ xmlns: "http://www.w3.org/2000/svg"
349
+ };
350
+ function Xt(r, c) {
351
+ return s(), a("svg", Yt, [...c[0] || (c[0] = [
352
+ u("path", {
353
+ d: "M4.28125 8C4.66872 8.00011 4.98242 8.29887 4.98242 8.66699C4.98242 9.03511 4.66872 9.33387 4.28125 9.33398H0.702148C0.314581 9.33398 8.1338e-07 9.03518 0 8.66699C0 8.2988 0.31458 8 0.702148 8H4.28125ZM10.5264 0C10.9139 0 11.2285 0.298802 11.2285 0.666992V7.05762L12.1357 6.19531C12.4097 5.93519 12.8539 5.93524 13.1279 6.19531C13.402 6.45566 13.402 6.87832 13.1279 7.13867L11.0225 9.13867C10.7484 9.39867 10.3042 9.39886 10.0303 9.13867L7.9248 7.13867C7.65082 6.87834 7.65082 6.45565 7.9248 6.19531C8.19886 5.93496 8.64392 5.93496 8.91797 6.19531L9.8252 7.05762V0.666992C9.8252 0.298891 10.1389 0.000143144 10.5264 0ZM5.61426 4C6.00183 4 6.31641 4.2988 6.31641 4.66699C6.31641 5.03518 6.00183 5.33398 5.61426 5.33398H0.702148C0.314581 5.33398 6.77817e-07 5.03518 0 4.66699C0 4.2988 0.31458 4 0.702148 4H5.61426ZM7.01758 0C7.40515 0 7.71973 0.298802 7.71973 0.666992C7.71973 1.03518 7.40515 1.33398 7.01758 1.33398H0.702148C0.31458 1.33398 5.42254e-07 1.03518 0 0.666992C0 0.298802 0.31458 0 0.702148 0H7.01758Z",
354
+ fill: "#1A6D9E"
355
+ }, null, -1)
356
+ ])]);
357
+ }
358
+ const qt = /* @__PURE__ */ D(Kt, [["render", Xt]]), Jt = {}, Ut = {
359
+ width: "21",
360
+ height: "13",
361
+ viewBox: "0 0 21 13",
362
+ fill: "none",
363
+ xmlns: "http://www.w3.org/2000/svg"
364
+ };
365
+ function Qt(r, c) {
366
+ return s(), a("svg", Ut, [...c[0] || (c[0] = [
367
+ u("path", {
368
+ d: "M19.6426 4.61523C19.9311 4.61524 20.1317 4.90139 20.0342 5.17285L17.499 12.2246C17.4395 12.3899 17.2821 12.5 17.1064 12.5H1.5459C1.35628 12.5 1.19044 12.3719 1.14258 12.1885L0.0136719 7.83887C-0.0548101 7.575 0.14438 7.31738 0.416992 7.31738H12.6016L14.71 4.61523H19.6426ZM3.51465 8.82324C3.11322 8.82324 2.78728 9.15265 2.78711 9.55859C2.78711 9.96468 3.11312 10.2939 3.51465 10.2939C3.9161 10.2938 4.24121 9.96462 4.24121 9.55859C4.24104 9.15271 3.91599 8.82334 3.51465 8.82324ZM7.87695 8.82324C7.47553 8.82324 7.14958 9.15265 7.14941 9.55859C7.14941 9.96468 7.47542 10.2939 7.87695 10.2939C8.27846 10.2939 8.60352 9.96466 8.60352 9.55859C8.60335 9.15267 8.27835 8.82327 7.87695 8.82324ZM12.2393 8.82324C11.8378 8.82324 11.5119 9.15265 11.5117 9.55859C11.5117 9.96468 11.8377 10.2939 12.2393 10.2939C12.6407 10.2938 12.9658 9.96458 12.9658 9.55859C12.9657 9.15275 12.6405 8.82341 12.2393 8.82324ZM10.3291 3.67676C10.5591 3.67679 10.7459 3.86283 10.7461 4.09277V5.46582C10.746 5.69585 10.5591 5.88278 10.3291 5.88281H1.75C1.51993 5.88281 1.33309 5.69587 1.33301 5.46582V4.09277C1.3332 3.86282 1.52 3.67676 1.75 3.67676H10.3291ZM8.91406 0C9.14418 0 9.33105 0.186874 9.33105 0.416992V1.78906C9.33105 2.01918 9.14418 2.20605 8.91406 2.20605H3.2041C2.97398 2.20605 2.78711 2.01918 2.78711 1.78906V0.416992C2.78711 0.186874 2.97398 1.52829e-06 3.2041 0H8.91406Z",
369
+ fill: "#9CA5B4"
370
+ }, null, -1)
371
+ ])]);
372
+ }
373
+ const Ae = /* @__PURE__ */ D(Jt, [["render", Qt]]), en = {}, tn = {
374
+ width: "11",
375
+ height: "11",
376
+ viewBox: "0 0 11 11",
377
+ fill: "none",
378
+ xmlns: "http://www.w3.org/2000/svg"
379
+ };
380
+ function nn(r, c) {
381
+ return s(), a("svg", tn, [...c[0] || (c[0] = [
382
+ u("path", {
383
+ d: "M5.39941 0C8.38169 0 10.7997 2.41717 10.7998 5.39941C10.7998 8.38175 8.38175 10.7998 5.39941 10.7998C2.41717 10.7997 0 8.38169 0 5.39941C0.000106094 2.41723 2.41723 0.000105613 5.39941 0ZM5.39941 0.80957C2.86451 0.809676 0.809676 2.86451 0.80957 5.39941C0.80957 7.93441 2.86445 9.98915 5.39941 9.98926C7.93447 9.98926 9.98926 7.93447 9.98926 5.39941C9.98915 2.86445 7.9344 0.80957 5.39941 0.80957ZM5.39746 4.58887C5.60229 4.58873 5.77167 4.74108 5.79883 4.93848L5.80273 4.99414L5.80469 7.96387C5.80483 8.18742 5.6239 8.36885 5.40039 8.36914C5.19539 8.36927 5.02597 8.21716 4.99902 8.01953L4.99512 7.96484L4.99316 4.99414C4.99317 4.77069 5.174 4.58911 5.39746 4.58887ZM5.39941 2.70117C5.6972 2.70117 5.93945 2.94245 5.93945 3.24023C5.93928 3.53787 5.69709 3.7793 5.39941 3.7793C5.10194 3.77906 4.86053 3.53773 4.86035 3.24023C4.86035 2.94259 5.10183 2.70141 5.39941 2.70117Z",
384
+ fill: "#69758C"
385
+ }, null, -1)
386
+ ])]);
387
+ }
388
+ const on = /* @__PURE__ */ D(en, [["render", nn]]), rn = { class: "shifl-grid relative" }, sn = { class: "shifl-grid__controls" }, ln = { class: "shifl-grid__table" }, an = ["onClick"], un = { class: "shifl-grid__header-content" }, cn = {
389
+ key: 0,
390
+ class: "shifl-grid__header-label"
391
+ }, fn = {
392
+ key: 1,
393
+ class: "shifl-grid__sort-icon"
394
+ }, dn = { key: 0 }, gn = ["colspan"], hn = {
395
+ key: 0,
396
+ class: "shifl-grid__smart-tracking-icon"
397
+ }, pn = ["onClick"], vn = { key: 0 }, mn = ["innerHTML"], _n = {
398
+ key: 2,
399
+ class: "shifl-grid__type-cell"
400
+ }, Cn = {
401
+ key: 0,
402
+ class: "shifl-grid__container-badge"
403
+ }, yn = {
404
+ key: 3,
405
+ class: "shifl-grid__tags-cell"
406
+ }, kn = { class: "shifl-grid__tags-wrapper" }, bn = ["onMouseenter"], wn = {
407
+ key: 4,
408
+ class: "shifl-grid__truncated-cell"
409
+ }, Mn = ["onMouseenter"], Tn = ["onMouseenter"], $n = {
410
+ key: 5,
411
+ class: "shifl-grid__chips-container"
412
+ }, xn = {
413
+ key: 0,
414
+ class: "shifl-grid__pagination"
415
+ }, Ln = { class: "shifl-grid__pagination-left" }, Sn = { class: "shifl-grid__pagination-range" }, Pn = { class: "shifl-grid__pagination-range-numbers" }, An = { class: "shifl-grid__pagination-right" }, zn = { class: "shifl-grid__pagination-rows" }, Hn = ["value", "disabled"], Rn = { class: "shifl-grid__pagination-nav" }, Vn = ["disabled"], En = { class: "shifl-grid__pagination-pages" }, Zn = ["disabled", "onClick"], Dn = {
416
+ key: 1,
417
+ class: "shifl-grid__pagination-ellipsis"
418
+ }, In = ["disabled"], Gn = ["onClick"], Bn = ["innerHTML"], Nn = /* @__PURE__ */ _e({
419
+ __name: "ShiflGrid",
420
+ props: {
421
+ config: {},
422
+ search: {},
423
+ loading: { type: Boolean }
424
+ },
425
+ emits: ["action-click", "search-change", "pagination-change"],
426
+ setup(r, { emit: c }) {
427
+ const l = r, m = c, d = v(() => vt(l.config)), _ = v(() => d.value.columns.filter((e) => !e.smartTrackingColumn)), {
428
+ columns: T,
429
+ visibleColumns: y,
430
+ toggleColumnVisibility: x,
431
+ setAllVisible: h,
432
+ toggleFrozen: f,
433
+ moveColumn: g,
434
+ resetColumns: L
435
+ } = mt(_.value), { sort: C, setSort: H, applySort: J } = _t(d.value.sort), { applyGlobalFilter: Re } = Ct(), { menuState: E, openMenu: Ve, closeMenu: U } = yt(), Q = k(!1), Ce = k({}), ye = k(null), ke = k(null), ee = k(null), te = k(!1), be = k(""), ne = k(null), Ee = k({});
436
+ k({});
437
+ const ie = k({});
438
+ Y(
439
+ () => d.value.columns,
440
+ (e) => {
441
+ const n = e.filter((t) => !t.smartTrackingColumn);
442
+ T.value = [...n];
443
+ },
444
+ { deep: !0 }
445
+ ), Y(
446
+ () => d.value.sort,
447
+ (e) => {
448
+ e && (C.value = e);
449
+ },
450
+ { deep: !0 }
451
+ ), Y(
452
+ () => l.search,
453
+ (e, n) => {
454
+ var t;
455
+ if (d.value.searchMode === "server")
456
+ m("search-change", e || "");
457
+ else if (d.value.searchMode === "client" && e !== n) {
458
+ const i = ((t = $.value) == null ? void 0 : t.perPage) || 20;
459
+ m("pagination-change", 1, i);
460
+ }
409
461
  }
410
- function J(u) {
411
- return u == null ? '' : typeof u == 'object' ? JSON.stringify(u) : String(u);
462
+ );
463
+ const we = v(() => {
464
+ if ((d.value.searchMode || "client") === "server")
465
+ return d.value.rows;
466
+ const n = l.search || "";
467
+ return Re(d.value.rows, d.value.search, n);
468
+ }), oe = v(() => {
469
+ var n;
470
+ return (d.value.searchMode || "client") === "client" ? we.value.length : ((n = $.value) == null ? void 0 : n.total) || 0;
471
+ }), re = v(() => J(we.value)), Me = v(() => {
472
+ if ((d.value.searchMode || "client") === "server")
473
+ return re.value;
474
+ const n = $.value;
475
+ if (!n || !n.show)
476
+ return re.value;
477
+ const t = n.perPage || 20, o = ((n.currentPage || 1) - 1) * t, p = o + t;
478
+ return re.value.slice(o, p);
479
+ }), $ = v(() => d.value.paginationMeta), Ze = v(() => {
480
+ var e;
481
+ return ((e = $.value) == null ? void 0 : e.perPage) === 100;
482
+ }), De = v(() => {
483
+ var e;
484
+ return ((e = $.value) == null ? void 0 : e.perPage) || 10;
485
+ }), Te = v(() => {
486
+ const e = $.value;
487
+ if (!e || !e.show)
488
+ return { from: 0, to: 0 };
489
+ const n = oe.value, t = e.perPage || 20, i = e.currentPage || 1;
490
+ if ((d.value.searchMode || "client") === "server" && e.from !== void 0 && e.to !== void 0)
491
+ return { from: e.from, to: e.to };
492
+ const p = (i - 1) * t + 1, w = Math.min(i * t, n);
493
+ return n === 0 ? { from: 0, to: 0 } : { from: p, to: w };
494
+ }), Z = v(() => {
495
+ var e;
496
+ return ((e = $.value) == null ? void 0 : e.currentPage) || 1;
497
+ }), se = v(() => {
498
+ const e = $.value;
499
+ if (!e || !e.show) return 1;
500
+ const n = oe.value;
501
+ if (n === 0) return 1;
502
+ const t = e.perPage || 20, i = Math.ceil(n / t);
503
+ return Math.max(1, i);
504
+ }), $e = v(() => Z.value <= 1), xe = v(() => Z.value >= se.value), Ie = v(() => {
505
+ const e = se.value, n = Z.value, t = [];
506
+ if (e <= 7)
507
+ for (let i = 1; i <= e; i++)
508
+ t.push(i);
509
+ else if (n <= 4) {
510
+ for (let i = 1; i <= 5; i++)
511
+ t.push(i);
512
+ t.push(-1), t.push(e);
513
+ } else if (n >= e - 3) {
514
+ t.push(1), t.push(-1);
515
+ for (let i = e - 4; i <= e; i++)
516
+ t.push(i);
517
+ } else {
518
+ t.push(1), t.push(-1);
519
+ for (let i = n - 1; i <= n + 1; i++)
520
+ t.push(i);
521
+ t.push(-1), t.push(e);
412
522
  }
413
- function E(u, a = !0) {
414
- const d = {
415
- width: u.width ?? '160px',
416
- minWidth: u.width ?? '160px'
417
- };
418
- if (!u.frozen) return d;
419
- const x = K.value[u.key] ?? 0;
420
- return {
421
- ...d,
422
- position: 'sticky',
423
- left: `${x}px`,
424
- zIndex: a ? 30 : 10,
425
- background: '#ffffff'
426
- };
523
+ return t;
524
+ });
525
+ function Ge(e) {
526
+ var t;
527
+ if (e < 1 || e > se.value || e === Z.value || l.loading) return;
528
+ const n = ((t = $.value) == null ? void 0 : t.perPage) || 20;
529
+ m("pagination-change", e, n);
530
+ }
531
+ function Be() {
532
+ var n;
533
+ if ($e.value || l.loading) return;
534
+ const e = ((n = $.value) == null ? void 0 : n.perPage) || 20;
535
+ m("pagination-change", Z.value - 1, e);
536
+ }
537
+ function Ne() {
538
+ var n;
539
+ if (xe.value || l.loading) return;
540
+ const e = ((n = $.value) == null ? void 0 : n.perPage) || 20;
541
+ m("pagination-change", Z.value + 1, e);
542
+ }
543
+ function Oe(e) {
544
+ var i;
545
+ if (l.loading) return;
546
+ const n = e.target, t = parseInt(n.value, 10);
547
+ t && t !== (((i = $.value) == null ? void 0 : i.perPage) || 20) && m("pagination-change", 1, t);
548
+ }
549
+ const We = v(() => {
550
+ const e = d.value.columns.find((t) => t.smartTrackingColumn);
551
+ if (!(e != null && e.smartTrackingColumn)) return !1;
552
+ const n = e.smartTrackingColumn.dataKey;
553
+ return d.value.rows.some((t) => {
554
+ const i = t[n];
555
+ return i === !0 || i === 1 || i === "true" || i === "1";
556
+ });
557
+ }), le = v(() => d.value.columns.find((e) => e.smartTrackingColumn)), I = v(() => {
558
+ var t;
559
+ const e = y.value.filter((i) => !i.smartTrackingColumn);
560
+ if (We.value && le.value) {
561
+ const i = {
562
+ key: "_smart_tracking",
563
+ label: "",
564
+ // No label
565
+ order: -1,
566
+ // Before everything
567
+ frozen: !0,
568
+ visible: !0,
569
+ protected: !0,
570
+ sortable: !1,
571
+ width: ((t = le.value.smartTrackingColumn) == null ? void 0 : t.width) || "36px",
572
+ smartTrackingColumn: le.value.smartTrackingColumn
573
+ }, o = e.findIndex((p) => p.key === "ref");
574
+ o >= 0 ? e.splice(o, 0, i) : e.unshift(i);
427
575
  }
428
- return (u, a) => (
429
- b(),
430
- p('div', _e, [
431
- n('div', ke, [
432
- n(
433
- 'input',
434
- {
435
- class: 'flex-1 rounded border border-gray-300 px-3 py-2 text-sm',
436
- type: 'text',
437
- value: g(v),
438
- onInput: I,
439
- placeholder: 'Search anything...'
440
- },
441
- null,
442
- 40,
443
- Ce
444
- ),
445
- n(
446
- 'button',
447
- {
448
- type: 'button',
449
- class: 'shifl-grid__pill-button whitespace-nowrap',
450
- onClick: a[0] || (a[0] = (d) => (D.value = !0))
451
- },
452
- ' Edit Columns '
453
- )
454
- ]),
455
- n('div', $e, [
456
- n('span', null, _(e.config.name ?? 'Shifl Grid'), 1),
457
- n('span', Se, ' Showing ' + _(F.value.length) + ' of ' + _(r.value.rows.length), 1)
458
- ]),
459
- n('div', ze, [
460
- n('table', Ge, [
461
- n('thead', null, [
462
- n('tr', null, [
463
- (b(!0),
464
- p(
465
- $,
466
- null,
467
- S(g(l), (d) => {
468
- var x;
469
- return (
470
- b(),
471
- p(
472
- 'th',
473
- {
474
- key: d.key,
475
- style: R(E(d, !0)),
476
- onClick: () => W(d.key)
477
- },
478
- [
479
- n('span', null, _(d.label), 1),
480
- ((x = g(t)) == null ? void 0 : x.key) === d.key
481
- ? (b(), p('span', Fe, _(g(t).order === 'asc' ? '▲' : '▼'), 1))
482
- : M('', !0)
483
- ],
484
- 12,
485
- De
486
- )
487
- );
488
- }),
489
- 128
490
- ))
491
- ])
492
- ]),
493
- n('tbody', null, [
494
- F.value.length
495
- ? M('', !0)
496
- : (b(),
497
- p('tr', Ae, [
498
- n(
499
- 'td',
500
- {
501
- colspan: g(l).length,
502
- class: 'text-center text-gray-500 py-6'
503
- },
504
- ' No data ',
505
- 8,
506
- Me
507
- )
508
- ])),
509
- (b(!0),
510
- p(
511
- $,
512
- null,
513
- S(
514
- F.value,
515
- (d, x) => (
516
- b(),
517
- p('tr', { key: x }, [
518
- (b(!0),
519
- p(
520
- $,
521
- null,
522
- S(
523
- g(l),
524
- (A) => (
525
- b(),
526
- p(
527
- 'td',
528
- {
529
- key: A.key,
530
- style: R(E(A, !1))
531
- },
532
- _(J(d[A.key])),
533
- 5
534
- )
535
- )
536
- ),
537
- 128
538
- ))
539
- ])
540
- )
541
- ),
542
- 128
543
- ))
544
- ])
576
+ const n = e.find((i) => i.key === "ref");
577
+ return n && (n.frozen = !0, n.protected = !0), e;
578
+ }), Fe = v(() => {
579
+ let e = 0;
580
+ const n = {};
581
+ for (const t of I.value) {
582
+ t.frozen && (n[t.key] = e);
583
+ const i = parseInt(t.width ?? "160", 10);
584
+ Number.isNaN(i) || (e += i);
585
+ }
586
+ return n;
587
+ });
588
+ function je(e) {
589
+ const n = T.value.find((t) => t.key === e);
590
+ !(n != null && n.sortable) || F(n) || ge(n) || H(e);
591
+ }
592
+ function Ke(e) {
593
+ return e == null ? "" : typeof e == "object" ? JSON.stringify(e) : String(e);
594
+ }
595
+ function Ye(e) {
596
+ return typeof e == "string" && e.toLowerCase() === "ocean", Ae;
597
+ }
598
+ function Xe(e) {
599
+ const n = e.toLowerCase();
600
+ return ["supplier", "suppliers", "po", "pos", "product_description"].includes(n);
601
+ }
602
+ function qe(e) {
603
+ if (e == null) return "";
604
+ if (Array.isArray(e)) {
605
+ if (e.length === 0) return "";
606
+ const n = e.join(", ");
607
+ return Le(n, 45);
608
+ }
609
+ return typeof e == "string" ? Le(e, 45) : String(e);
610
+ }
611
+ function Le(e, n) {
612
+ return e.length <= n ? e : e.substring(0, n) + "...";
613
+ }
614
+ function ae(e) {
615
+ const n = e.toLowerCase();
616
+ return ["po", "pos", "supplier", "suppliers", "tag", "tags"].includes(n);
617
+ }
618
+ function Je(e, n) {
619
+ return e == null || ae(n) ? !1 : Array.isArray(e) ? e.length === 0 ? !1 : e.join(", ").length > 30 : typeof e == "string" ? e.length > 30 : !1;
620
+ }
621
+ function Ue(e) {
622
+ return e == null ? !1 : Array.isArray(e) ? e.length === 0 ? !1 : e.join(", ").length > 45 : typeof e == "string" ? e.length > 45 : !1;
623
+ }
624
+ function Qe(e) {
625
+ if (e == null) return 0;
626
+ if (Array.isArray(e)) {
627
+ if (e.length === 0 || e.join(", ").length <= 45) return 0;
628
+ let t = 0, i = 0;
629
+ for (let o = 0; o < e.length; o++) {
630
+ const p = String(e[o]), A = (o > 0 ? ", " : "").length + p.length;
631
+ if (t + A <= 45)
632
+ t += A, i++;
633
+ else
634
+ break;
635
+ }
636
+ return e.length - i;
637
+ }
638
+ return typeof e == "string" && e.length > 45 ? 1 : 0;
639
+ }
640
+ function ue(e, n, t, i) {
641
+ let o = "";
642
+ Array.isArray(t) ? t.length > 0 && (o = t.join(`
643
+ `)) : t != null && (o = String(t)), be.value = o, ne.value = i, te.value = !0;
644
+ }
645
+ function ce() {
646
+ te.value = !1, ne.value = null;
647
+ }
648
+ function et(e, n, t) {
649
+ t && (Ee.value[`${e}-${n}`] = t);
650
+ }
651
+ function W(e) {
652
+ return e == null ? [] : Array.isArray(e) ? e.map((n) => String(n)).filter((n) => n.length > 0) : typeof e == "string" ? e.split(",").map((n) => n.trim()).filter((n) => n.length > 0) : [String(e)];
653
+ }
654
+ function fe(e, n, t) {
655
+ const i = W(e);
656
+ if (i.length === 0) return [];
657
+ const o = `${n}-${t}`;
658
+ if (ie.value[o])
659
+ return ie.value[o];
660
+ const p = I.value.find((K) => K.key === n), A = (p != null && p.width ? parseInt(p.width) : 200) - 32, N = tt(i, A);
661
+ return ie.value[o] = N, N;
662
+ }
663
+ function tt(e, n) {
664
+ if (e.length === 0) return [];
665
+ const t = document.createElement("div");
666
+ t.style.cssText = "position: absolute; visibility: hidden; display: flex; flex-wrap: nowrap; gap: 6px;", t.className = "shifl-grid__chips-container", document.body.appendChild(t);
667
+ let i = 0, o = 0;
668
+ const p = 40;
669
+ for (let w = 0; w < e.length; w++) {
670
+ const A = document.createElement("span");
671
+ A.className = "shifl-grid__chip shifl-grid__chip--tag", A.textContent = e[w], A.style.cssText = "padding: 4px 8px; border-left: 3px solid; border: 1px solid; background: white; white-space: nowrap;", t.appendChild(A);
672
+ const N = A.offsetWidth, K = w > 0 ? 6 : 0, dt = w < e.length - 1;
673
+ if (o + K + N + (dt ? p : 0) > n && w > 0) {
674
+ t.removeChild(A);
675
+ break;
676
+ }
677
+ o += K + N, i++;
678
+ }
679
+ return document.body.removeChild(t), e.slice(0, i);
680
+ }
681
+ function nt(e, n, t) {
682
+ const i = W(e), o = fe(e, n, t);
683
+ return i.length > o.length;
684
+ }
685
+ function it(e, n, t) {
686
+ const i = W(e), o = fe(e, n, t);
687
+ return i.length - o.length;
688
+ }
689
+ function ot(e) {
690
+ const n = e.toLowerCase(), t = {
691
+ "high priority": "var(--shifl-color-error-r70)",
692
+ express: "var(--shifl-color-primary-b80)",
693
+ fragile: "var(--shifl-color-warning-o70)",
694
+ "temperature controlled": "var(--shifl-color-primary-b70)",
695
+ "customs clearance required": "var(--shifl-color-accent-p80)",
696
+ "insurance required": "var(--shifl-color-primary-b90)",
697
+ "special handling": "var(--shifl-color-warning-o80)",
698
+ "urgent delivery": "var(--shifl-color-error-r80)",
699
+ normal: "var(--shifl-color-neutral-n60)",
700
+ low: "var(--shifl-color-neutral-n50)"
701
+ };
702
+ if (t[n])
703
+ return t[n];
704
+ for (const [i, o] of Object.entries(t))
705
+ if (n.includes(i) || i.includes(n))
706
+ return o;
707
+ return rt(e);
708
+ }
709
+ function rt(e) {
710
+ let n = 0;
711
+ for (let i = 0; i < e.length; i++)
712
+ n = e.charCodeAt(i) + ((n << 5) - n);
713
+ const t = [
714
+ "var(--shifl-color-primary-b80)",
715
+ "var(--shifl-color-success-g70)",
716
+ "var(--shifl-color-warning-o70)",
717
+ "var(--shifl-color-error-r70)",
718
+ "var(--shifl-color-accent-p80)",
719
+ "var(--shifl-color-primary-b70)",
720
+ "var(--shifl-color-success-g60)",
721
+ "var(--shifl-color-warning-o60)"
722
+ ];
723
+ return t[Math.abs(n) % t.length];
724
+ }
725
+ function de(e, n = !0) {
726
+ const t = {
727
+ width: e.width ?? "160px",
728
+ minWidth: e.width ?? "160px"
729
+ };
730
+ if (!e.frozen) return t;
731
+ const i = Fe.value[e.key] ?? 0;
732
+ return {
733
+ ...t,
734
+ position: "sticky",
735
+ left: `${i}px`,
736
+ zIndex: n ? 30 : 10,
737
+ background: "var(--shifl-color-surface)"
738
+ };
739
+ }
740
+ const st = v(() => T.value.filter((e) => !e.smartTrackingColumn));
741
+ function F(e) {
742
+ return !!e.actionColumn;
743
+ }
744
+ function ge(e) {
745
+ return !!e.smartTrackingColumn;
746
+ }
747
+ function lt(e, n) {
748
+ if (!e.smartTrackingColumn) return !1;
749
+ const t = e.smartTrackingColumn.dataKey, i = n[t];
750
+ if (i === !0 || i === 1) return !0;
751
+ if (typeof i == "string") {
752
+ const o = i.toLowerCase().trim();
753
+ return o === "true" || o === "1" || o === "yes";
754
+ }
755
+ return !1;
756
+ }
757
+ function j(e, n) {
758
+ if (!e.actionColumn) return null;
759
+ const t = e.actionColumn.icon;
760
+ return t ? typeof t == "function" ? t(n) : t : null;
761
+ }
762
+ function at(e, n, t, i) {
763
+ if (!t.actionColumn) return;
764
+ const o = i.currentTarget;
765
+ if (E.value.rowIndex === e) {
766
+ U();
767
+ return;
768
+ }
769
+ ke.value = t, ee.value = n, Ve(e, o);
770
+ }
771
+ function ut(e, n) {
772
+ return !(e != null && e.actionColumn) || !n ? [] : (typeof e.actionColumn.actions == "function" ? e.actionColumn.actions(n) : e.actionColumn.actions).filter((i) => i.show ? i.show(n) : !0);
773
+ }
774
+ function ct(e, n, t) {
775
+ m("action-click", e.key, n, t), U();
776
+ }
777
+ function ft(e, n) {
778
+ n && (Ce.value[e] = n);
779
+ }
780
+ function Se(e) {
781
+ if (E.value.rowIndex === null) return;
782
+ const n = e.target, t = ye.value, i = Object.values(Ce.value), o = t == null ? void 0 : t.contains(n), p = i.some((w) => w.contains(n));
783
+ !o && !p && U();
784
+ }
785
+ return X(() => {
786
+ document.addEventListener("click", Se);
787
+ }), q(() => {
788
+ document.removeEventListener("click", Se);
789
+ }), (e, n) => (s(), a("div", rn, [
790
+ u("div", sn, [
791
+ u("button", {
792
+ type: "button",
793
+ class: "shifl-grid__pill-button whitespace-nowrap",
794
+ onClick: n[0] || (n[0] = (t) => Q.value = !0)
795
+ }, " Edit Columns ")
796
+ ]),
797
+ u("div", {
798
+ class: V(["shifl-grid__viewport", { "shifl-grid__viewport--scroll": Ze.value }])
799
+ }, [
800
+ u("table", ln, [
801
+ u("thead", null, [
802
+ u("tr", null, [
803
+ (s(!0), a(M, null, z(I.value, (t) => {
804
+ var i;
805
+ return s(), a("th", {
806
+ key: t.key,
807
+ style: G(de(t, !0)),
808
+ onClick: () => je(t.key),
809
+ class: V(["shifl-grid__header-cell", { "shifl-grid__cell--sticky": t.frozen }])
810
+ }, [
811
+ u("div", un, [
812
+ t.label ? (s(), a("span", cn, b(t.label), 1)) : P("", !0),
813
+ ((i = S(C)) == null ? void 0 : i.key) === t.key && !F(t) && !ge(t) ? (s(), a("span", fn, [
814
+ S(C).order === "asc" ? (s(), R(jt, { key: 0 })) : (s(), R(qt, { key: 1 }))
815
+ ])) : P("", !0)
816
+ ])
817
+ ], 14, an);
818
+ }), 128))
545
819
  ])
546
820
  ]),
547
- a[4] ||
548
- (a[4] = n(
549
- 'div',
550
- { class: 'shifl-grid__footer text-xs text-gray-600' },
551
- ' Row per page 20 ▾ ',
552
- -1
553
- )),
554
- D.value
555
- ? (b(),
556
- H(
557
- we,
558
- {
821
+ u("tbody", null, [
822
+ l.loading ? (s(!0), a(M, { key: 0 }, z(De.value, (t) => (s(), a("tr", {
823
+ key: `skeleton-${t}`,
824
+ class: "shifl-grid__skeleton-row"
825
+ }, [
826
+ (s(!0), a(M, null, z(I.value, (i) => (s(), a("td", {
827
+ key: i.key,
828
+ style: G(de(i, !1)),
829
+ class: V({ "shifl-grid__cell--sticky": i.frozen })
830
+ }, [...n[5] || (n[5] = [
831
+ u("div", { class: "shifl-grid__skeleton-cell" }, null, -1)
832
+ ])], 6))), 128))
833
+ ]))), 128)) : (s(), a(M, { key: 1 }, [
834
+ Me.value.length ? P("", !0) : (s(), a("tr", dn, [
835
+ u("td", {
836
+ colspan: I.value.length,
837
+ class: "text-center text-gray-500 py-6"
838
+ }, " No data ", 8, gn)
839
+ ])),
840
+ (s(!0), a(M, null, z(Me.value, (t, i) => (s(), a("tr", { key: i }, [
841
+ (s(!0), a(M, null, z(I.value, (o) => (s(), a("td", {
842
+ key: o.key,
843
+ style: G(de(o, !1)),
844
+ class: V([
845
+ { "shifl-grid__cell--sticky": o.frozen },
846
+ { "shifl-grid__cell--action": F(o) }
847
+ ])
848
+ }, [
849
+ ge(o) ? (s(), a(M, { key: 0 }, [
850
+ lt(o, t) ? (s(), a("div", hn, [
851
+ he(Nt)
852
+ ])) : P("", !0)
853
+ ], 64)) : F(o) ? (s(), a("button", {
854
+ key: 1,
855
+ type: "button",
856
+ class: "shifl-grid__action-icon",
857
+ ref_for: !0,
858
+ ref: (p) => ft(i, p),
859
+ onClick: B((p) => at(i, t, o, p), ["stop"])
860
+ }, [
861
+ j(o, t) ? typeof j(o, t) == "string" ? (s(), a("span", {
862
+ key: 1,
863
+ innerHTML: j(o, t),
864
+ class: "w-4 h-4 inline-block"
865
+ }, null, 8, mn)) : (s(), R(pe(j(o, t)), {
866
+ key: 2,
867
+ class: "w-4 h-4"
868
+ })) : (s(), a("span", vn, "⋯"))
869
+ ], 8, pn)) : o.key.toLowerCase() === "type" ? (s(), a("div", _n, [
870
+ (s(), R(pe(Ye(t[o.key])), { class: "shifl-grid__type-icon" })),
871
+ t.container_count != null ? (s(), a("span", Cn, " (" + b(t.container_count) + ") ", 1)) : P("", !0)
872
+ ])) : o.key.toLowerCase() === "tag" || o.key.toLowerCase() === "tags" ? (s(), a("div", yn, [
873
+ u("div", kn, [
874
+ u("div", {
875
+ ref_for: !0,
876
+ ref: "(el) => setTagsRef(col.key, rowIndex, el as HTMLElement)",
877
+ class: "shifl-grid__chips-container shifl-grid__chips-container--single-line"
878
+ }, [
879
+ (s(!0), a(M, null, z(fe(
880
+ t[o.key],
881
+ o.key,
882
+ i
883
+ ), (p, w) => (s(), a("span", {
884
+ key: w,
885
+ class: "shifl-grid__chip shifl-grid__chip--tag",
886
+ style: G({ borderLeftColor: ot(p) })
887
+ }, b(p), 5))), 128))
888
+ ], 512)
889
+ ]),
890
+ nt(t[o.key], o.key, i) ? (s(), a("button", {
891
+ key: 0,
892
+ type: "button",
893
+ class: "shifl-grid__counter-button",
894
+ onMouseenter: (p) => ue(
895
+ o.key,
896
+ i,
897
+ t[o.key],
898
+ p.currentTarget
899
+ ),
900
+ onMouseleave: ce
901
+ }, " +" + b(it(t[o.key], o.key, i)), 41, bn)) : P("", !0)
902
+ ])) : Xe(o.key) ? (s(), a("div", wn, [
903
+ u("span", {
904
+ class: "shifl-grid__truncated-text",
905
+ ref_for: !0,
906
+ ref: (p) => et(o.key, i, p)
907
+ }, b(qe(t[o.key])), 513),
908
+ ae(o.key) && Ue(t[o.key]) ? (s(), a("button", {
909
+ key: 0,
910
+ type: "button",
911
+ class: "shifl-grid__counter-button",
912
+ onMouseenter: (p) => ue(
913
+ o.key,
914
+ i,
915
+ t[o.key],
916
+ p.currentTarget
917
+ ),
918
+ onMouseleave: ce
919
+ }, " +" + b(Qe(t[o.key])), 41, Mn)) : !ae(o.key) && Je(t[o.key], o.key) ? (s(), a("button", {
920
+ key: 1,
921
+ type: "button",
922
+ class: "shifl-grid__info-icon-button",
923
+ onMouseenter: (p) => ue(
924
+ o.key,
925
+ i,
926
+ t[o.key],
927
+ p.currentTarget
928
+ ),
929
+ onMouseleave: ce
930
+ }, [
931
+ he(on)
932
+ ], 40, Tn)) : P("", !0)
933
+ ])) : o.key.toLowerCase() === "status" ? (s(), a("div", $n, [
934
+ (s(!0), a(M, null, z(W(t[o.key]), (p, w) => (s(), a("span", {
935
+ key: w,
936
+ class: "shifl-grid__chip"
937
+ }, b(p), 1))), 128))
938
+ ])) : (s(), a(M, { key: 6 }, [
939
+ O(b(Ke(t[o.key])), 1)
940
+ ], 64))
941
+ ], 6))), 128))
942
+ ]))), 128))
943
+ ], 64))
944
+ ])
945
+ ])
946
+ ], 2),
947
+ $.value && $.value.show !== !1 ? (s(), a("div", xn, [
948
+ u("div", Ln, [
949
+ u("span", Sn, [
950
+ n[6] || (n[6] = O(" Showing ", -1)),
951
+ u("span", Pn, b(Te.value.from) + "–" + b(Te.value.to), 1),
952
+ O(" of " + b(oe.value), 1)
953
+ ])
954
+ ]),
955
+ u("div", An, [
956
+ u("div", zn, [
957
+ n[8] || (n[8] = u("label", { class: "shifl-grid__pagination-label" }, "Rows per page", -1)),
958
+ u("select", {
959
+ value: $.value.perPage || 20,
960
+ disabled: l.loading,
961
+ onChange: Oe,
962
+ class: "shifl-grid__pagination-select"
963
+ }, [...n[7] || (n[7] = [
964
+ gt('<option value="20">20</option><option value="30">30</option><option value="50">50</option><option value="75">75</option><option value="100">100</option>', 5)
965
+ ])], 40, Hn)
966
+ ]),
967
+ u("div", Rn, [
968
+ u("button", {
969
+ type: "button",
970
+ class: "shifl-grid__pagination-button",
971
+ disabled: $e.value || l.loading,
972
+ onClick: Be,
973
+ "aria-label": "Previous page"
974
+ }, " ‹ ", 8, Vn),
975
+ u("div", En, [
976
+ (s(!0), a(M, null, z(Ie.value, (t) => (s(), a(M, { key: t }, [
977
+ t !== -1 ? (s(), a("button", {
559
978
  key: 0,
560
- 'title-prefix': e.config.name,
561
- columns: g(c),
562
- onClose: a[1] || (a[1] = (d) => (D.value = !1)),
563
- onToggle: g(f),
564
- onToggleFrozen: g(w),
565
- onMove: g(s),
566
- onSelectAll: a[2] || (a[2] = (d) => g(h)(!0)),
567
- onDeselectAll: a[3] || (a[3] = (d) => g(h)(!1)),
568
- onRestoreDefault: g(o)
569
- },
570
- null,
571
- 8,
572
- [
573
- 'title-prefix',
574
- 'columns',
575
- 'onToggle',
576
- 'onToggleFrozen',
577
- 'onMove',
578
- 'onRestoreDefault'
579
- ]
580
- ))
581
- : M('', !0)
979
+ type: "button",
980
+ class: V(["shifl-grid__pagination-page", { "shifl-grid__pagination-page--active": t === Z.value }]),
981
+ disabled: l.loading,
982
+ onClick: (i) => Ge(t)
983
+ }, b(t), 11, Zn)) : (s(), a("span", Dn, "…"))
984
+ ], 64))), 128))
985
+ ]),
986
+ u("button", {
987
+ type: "button",
988
+ class: "shifl-grid__pagination-button",
989
+ disabled: xe.value || l.loading,
990
+ onClick: Ne,
991
+ "aria-label": "Next page"
992
+ }, " › ", 8, In)
993
+ ])
582
994
  ])
583
- );
584
- }
585
- }),
586
- Ne = {
587
- install(e) {
588
- e.component('ShiflGrid', Te);
589
- }
590
- };
591
- function je(e) {
995
+ ])) : P("", !0),
996
+ (s(), R(me, { to: "body" }, [
997
+ S(E).rowIndex !== null && S(E).position ? (s(), a("div", {
998
+ key: 0,
999
+ ref_key: "actionMenuRef",
1000
+ ref: ye,
1001
+ class: "shifl-grid__action-menu",
1002
+ style: G({
1003
+ position: "fixed",
1004
+ top: `${S(E).position.top}px`,
1005
+ left: `${S(E).position.left}px`,
1006
+ zIndex: 1e3
1007
+ }),
1008
+ onClick: n[1] || (n[1] = B(() => {
1009
+ }, ["stop"]))
1010
+ }, [
1011
+ (s(!0), a(M, null, z(ut(ke.value, ee.value), (t) => (s(), a("div", {
1012
+ key: t.key,
1013
+ class: V(["shifl-grid__action-menu-item", { "shifl-grid__action-menu-item--danger": t.danger }]),
1014
+ onClick: () => ct(t, ee.value, S(E).rowIndex)
1015
+ }, [
1016
+ t.icon && typeof t.icon == "string" ? (s(), a("span", {
1017
+ key: 0,
1018
+ innerHTML: t.icon,
1019
+ class: "w-4 h-4 inline-block"
1020
+ }, null, 8, Bn)) : t.icon ? (s(), R(pe(typeof t.icon == "function" ? t.icon() : t.icon), {
1021
+ key: 1,
1022
+ class: "w-4 h-4"
1023
+ })) : P("", !0),
1024
+ u("span", null, b(t.label), 1)
1025
+ ], 10, Gn))), 128))
1026
+ ], 4)) : P("", !0)
1027
+ ])),
1028
+ he(Dt, {
1029
+ content: be.value,
1030
+ visible: te.value,
1031
+ "trigger-element": ne.value
1032
+ }, null, 8, ["content", "visible", "trigger-element"]),
1033
+ (s(), R(me, { to: "body" }, [
1034
+ Q.value ? (s(), R(Vt, {
1035
+ key: 0,
1036
+ "title-prefix": r.config.name,
1037
+ columns: st.value,
1038
+ onClose: n[2] || (n[2] = (t) => Q.value = !1),
1039
+ onToggle: S(x),
1040
+ onToggleFrozen: S(f),
1041
+ onMove: S(g),
1042
+ onSelectAll: n[3] || (n[3] = (t) => S(h)(!0)),
1043
+ onDeselectAll: n[4] || (n[4] = (t) => S(h)(!1)),
1044
+ onRestoreDefault: S(L)
1045
+ }, null, 8, ["title-prefix", "columns", "onToggle", "onToggleFrozen", "onMove", "onRestoreDefault"])) : P("", !0)
1046
+ ]))
1047
+ ]));
1048
+ }
1049
+ }), Fn = {
1050
+ install(r) {
1051
+ r.component("ShiflGrid", Nn);
1052
+ }
1053
+ };
1054
+ function jn(r) {
592
1055
  return {
593
- rows: e.rows
1056
+ rows: r.rows
594
1057
  };
595
1058
  }
596
- function Ve() {
597
- const e = C(/* @__PURE__ */ new Set());
598
- function i(r) {
599
- const c = r.id ?? JSON.stringify(r),
600
- l = new Set(e.value);
601
- (l.has(c) ? l.delete(c) : l.add(c), (e.value = l));
1059
+ function Kn() {
1060
+ const r = k(/* @__PURE__ */ new Set());
1061
+ function c(l) {
1062
+ const m = l.id ?? JSON.stringify(l), d = new Set(r.value);
1063
+ d.has(m) ? d.delete(m) : d.add(m), r.value = d;
602
1064
  }
603
1065
  return {
604
- selectedKeys: e,
605
- toggleRow: i
1066
+ selectedKeys: r,
1067
+ toggleRow: c
606
1068
  };
607
1069
  }
608
- function Re() {
1070
+ function Yn() {
609
1071
  return {
610
1072
  // placeholder
611
1073
  };
612
1074
  }
613
- const B = Symbol('shifl-grid-theme'),
614
- L = {
615
- surface: 'var(--shifl-surface)',
616
- surfaceAlt: 'var(--shifl-surface-alt)',
617
- border: 'var(--shifl-border)',
618
- text: 'var(--shifl-text)',
619
- textMuted: 'var(--shifl-text-muted)',
620
- accent: 'var(--shifl-accent)',
621
- accentStrong: 'var(--shifl-accent-strong)',
622
- focus: 'var(--shifl-focus)'
623
- };
624
- function Oe(e) {
625
- const i = C({ ...L, ...e });
626
- return (Y(B, i), i);
1075
+ const ze = Symbol("shifl-grid-theme"), He = {
1076
+ surface: "var(--shifl-surface)",
1077
+ surfaceAlt: "var(--shifl-surface-alt)",
1078
+ border: "var(--shifl-border)",
1079
+ text: "var(--shifl-text)",
1080
+ textMuted: "var(--shifl-text-muted)",
1081
+ accent: "var(--shifl-accent)",
1082
+ accentStrong: "var(--shifl-accent-strong)",
1083
+ focus: "var(--shifl-focus)"
1084
+ };
1085
+ function Xn(r) {
1086
+ const c = k({ ...He, ...r });
1087
+ return ht(ze, c), c;
627
1088
  }
628
- function Be() {
629
- const e = q(B);
630
- return k(() => (e == null ? void 0 : e.value) ?? L);
1089
+ function qn() {
1090
+ const r = pt(ze);
1091
+ return v(() => (r == null ? void 0 : r.value) ?? He);
631
1092
  }
632
- const T = {
1093
+ const ve = {
633
1094
  sm: 640,
634
1095
  lg: 1024
635
1096
  };
636
- function Le() {
637
- const e = C(typeof window < 'u' ? window.innerWidth : 0);
638
- function i() {
639
- e.value = window.innerWidth;
1097
+ function Jn() {
1098
+ const r = k(typeof window < "u" ? window.innerWidth : 0);
1099
+ function c() {
1100
+ r.value = window.innerWidth;
640
1101
  }
641
- return (
642
- Q(() => {
643
- window.addEventListener('resize', i);
644
- }),
645
- X(() => {
646
- window.removeEventListener('resize', i);
647
- }),
648
- {
649
- width: e,
650
- isMobile: k(() => e.value < T.sm),
651
- isTablet: k(() => e.value >= T.sm && e.value < T.lg)
652
- }
653
- );
1102
+ return X(() => {
1103
+ window.addEventListener("resize", c);
1104
+ }), q(() => {
1105
+ window.removeEventListener("resize", c);
1106
+ }), {
1107
+ width: r,
1108
+ isMobile: v(() => r.value < ve.sm),
1109
+ isTablet: v(() => r.value >= ve.sm && r.value < ve.lg)
1110
+ };
654
1111
  }
655
- function Pe() {
1112
+ function Un() {
656
1113
  return {
657
1114
  // placeholder
658
1115
  };
659
1116
  }
660
- function Ke() {
1117
+ function Qn() {
661
1118
  return {
662
1119
  // placeholder
663
1120
  };
664
1121
  }
665
- function We() {
1122
+ function ei() {
666
1123
  return {
667
1124
  // placeholder
668
1125
  };
669
1126
  }
670
1127
  export {
671
- Te as ShiflGrid,
672
- Ne as ShiflGridPlugin,
673
- Oe as provideGridTheme,
674
- Le as useBreakpoints,
675
- ee as useGridColumns,
676
- je as useGridData,
677
- Re as useGridEditing,
678
- ne as useGridFilter,
679
- Pe as useGridInfiniteScroll,
680
- Ve as useGridSelection,
681
- te as useGridSort,
682
- Be as useGridTheme,
683
- We as useGridTour,
684
- Ke as useVirtualScroll
1128
+ Nn as ShiflGrid,
1129
+ Fn as ShiflGridPlugin,
1130
+ Xn as provideGridTheme,
1131
+ Jn as useBreakpoints,
1132
+ mt as useGridColumns,
1133
+ jn as useGridData,
1134
+ Yn as useGridEditing,
1135
+ Ct as useGridFilter,
1136
+ Un as useGridInfiniteScroll,
1137
+ Kn as useGridSelection,
1138
+ _t as useGridSort,
1139
+ qn as useGridTheme,
1140
+ ei as useGridTour,
1141
+ Qn as useVirtualScroll
685
1142
  };