@svgrid/grid 2.2.32 → 2.2.33
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/DockNodeView.svelte +1 -1
- package/dist/GridFooter.svelte +0 -40
- package/dist/GridMenus.svelte +0 -77
- package/dist/SvDateRangeInput.svelte +1 -1
- package/dist/SvGrid.svelte +2 -25
- package/dist/SvGridChart.svelte +2 -10
- package/dist/SvGridSelect.svelte +0 -2
- package/dist/SvKbd.svelte +1 -1
- package/dist/SvList.svelte +1 -1
- package/dist/SvMenubar.svelte +1 -1
- package/dist/SvMultiSelect.svelte +0 -1
- package/dist/SvOtpInput.svelte +1 -1
- package/dist/SvRichText.svelte +4 -0
- package/dist/SvTour.svelte +4 -0
- package/dist/SvTreeSelect.svelte +0 -2
- package/dist/cdn/{GridMenus-C6ixSGWW.js → GridMenus-B7XhhqdN.js} +2 -4
- package/dist/cdn/{GridMenus-Cyk3qpJ7.js → GridMenus-BxmIvCJh.js} +4 -6
- package/dist/cdn/{SvDateTimePicker-CdqaP61H.js → SvDateTimePicker-o94wfSUa.js} +1 -1
- package/dist/cdn/{SvGridChart-BcLCYvw9.js → SvGridChart-Cr_90pPD.js} +1 -1
- package/dist/cdn/{SvGridChartPanel-DvjwxLvK.js → SvGridChartPanel-ICbxiUvK.js} +4 -4
- package/dist/cdn/{SvGridChartView-PwqI4s02.js → SvGridChartView-Bx42PMvf.js} +2 -2
- package/dist/cdn/{SvGridDropdown-Dh-2ej8j.js → SvGridDropdown-CUOdm7YA.js} +1 -1
- package/dist/cdn/{disclose-version-DoD9AFD_.js → disclose-version-DljhZohK.js} +45 -45
- package/dist/cdn/{src-CgD-wiuS.js → src-erjBRYfX.js} +14 -31
- package/dist/cdn/{src-BgHjWF0Q.js → src-ktbQVOk-.js} +7 -24
- package/dist/cdn/svgrid.js +5 -5
- package/dist/cdn/svgrid.svelte-external.js +1 -1
- package/dist/chart.d.ts +2 -0
- package/dist/chart.js +1 -4
- package/dist/createMenu.svelte.js +0 -1
- package/dist/createPopoverSelect.svelte.d.ts +2 -2
- package/dist/editing.js +1 -1
- package/dist/export-format.js +3 -0
- package/dist/selection.js +0 -1
- package/package.json +3 -2
- package/src/DockNodeView.svelte +1 -1
- package/src/GridFooter.svelte +0 -40
- package/src/GridMenus.svelte +0 -77
- package/src/SvCalendar.test.ts +1 -1
- package/src/SvDateRangeInput.svelte +1 -1
- package/src/SvGrid.controller.svelte.ts +0 -5
- package/src/SvGrid.svelte +2 -25
- package/src/SvGrid.types.ts +0 -1
- package/src/SvGridChart.svelte +2 -10
- package/src/SvGridSelect.svelte +0 -2
- package/src/SvKbd.svelte +1 -1
- package/src/SvList.svelte +1 -1
- package/src/SvMenubar.svelte +1 -1
- package/src/SvMultiSelect.svelte +0 -1
- package/src/SvOtpInput.svelte +1 -1
- package/src/SvRichText.svelte +4 -0
- package/src/SvTour.svelte +4 -0
- package/src/SvTreeSelect.svelte +0 -2
- package/src/ai.test.ts +1 -1
- package/src/build-api.ts +0 -105
- package/src/cell-formatting.test.ts +1 -1
- package/src/cell-render.ts +0 -94
- package/src/chart.ts +1 -2
- package/src/clipboard.ts +0 -102
- package/src/columns.ts +0 -115
- package/src/createMenu.svelte.ts +0 -1
- package/src/editing.ts +2 -105
- package/src/editor-registry.grid.test.ts +0 -2
- package/src/export-format.ts +3 -0
- package/src/features.ts +0 -90
- package/src/keyboard-handlers.coverage.test.ts +1 -1
- package/src/keyboard-handlers.ts +0 -120
- package/src/menus.test.ts +0 -1
- package/src/menus.ts +0 -112
- package/src/new-features.test.ts +3 -1
- package/src/row-drag.test.ts +1 -1
- package/src/row-resize.test.ts +1 -2
- package/src/scroll-sync.test.ts +4 -7
- package/src/scroll-sync.ts +0 -122
- package/src/selection.ts +0 -109
- package/src/server-group-model.test.ts +2 -2
- package/src/summaries.ts +0 -112
- package/src/svgrid.behavior.test.ts +0 -1
- package/src/svgrid.column-reorder.test.ts +0 -8
- package/src/tree-row-model.test.ts +0 -1
package/dist/cdn/svgrid.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { S as ee, _ as te, b as ne, c as re, d as ie, f as e, g as t, h as n, i as r, l as i, m as a, n as o, o as s, p as c, r as l, s as u, t as d, u as f, v as p, w as m, x as h, y as g } from "./export-format-JT5pWVT8.js";
|
|
2
|
-
import { $ as _, $a as v, $i as y, $n as b, $r as x, $t as S, A as C, Aa as w, Ai as T, An as E, Ao as D, Ar as O, At as k, B as A, Ba as j, Bi as M, Bn as N, Br as P, Bt as F, C as I, Ca as L, Ci as R, Cn as z, Co as B, Cr as V, Ct as H, D as U, Da as W, Di as G, Dn as K, Do as q, Dr as J, Dt as Y, E as ae, Ea as oe, Ei as se, En as ce, Eo as le, Er as ue, Et as de, F as fe, Fa as pe, Fi as me, Fn as he, Fo as ge, Fr as _e, Ft as ve, G as ye, Ga as be, Gi as xe, Gn as Se, Gr as Ce, Gt as we, H as Te, Ha as Ee, Hi as De, Hn as Oe, Hr as ke, Ht as Ae, I as je, Ia as Me, Ii as Ne, In as Pe, Io as Fe, Ir as Ie, It as Le, J as Re, Ja as ze, Ji as Be, Jn as Ve, Jr as He, Jt as Ue, K as We, Ka as Ge, Ki as Ke, Kn as qe, Kr as Je, Kt as Ye, L as Xe, La as Ze, Li as Qe, Ln as $e, Lo as et, Lr as tt, Lt as nt, M as rt, Ma as it, Mi as at, Mn as ot, Mo as st, Mr as ct, Mt as lt, N as ut, Na as dt, Ni as ft, Nn as pt, No as mt, Nr as ht, Nt as gt, O as _t, Oa as vt, Oi as yt, On as bt, Oo as xt, Or as St, Ot as Ct, P as wt, Pa as Tt, Pi as Et, Pn as Dt, Po as Ot, Pr as kt, Pt as At, Q as jt, Qa as Mt, Qi as Nt, Qn as Pt, Qr as Ft, Qt as It, R as Lt, Ra as Rt, Ri as zt, Rn as Bt, Ro as Vt, Rr as Ht, Rt as Ut, S as Wt, Sa as Gt, Si as Kt, Sn as qt, So as Jt, Sr as Yt, St as Xt, T as Zt, Ta as Qt, Ti as $t, Tn as en, To as tn, Tr as nn, Tt as rn, U as an, Ua as on, Ui as sn, Un as cn, Ur as ln, Ut as un, V as dn, Va as fn, Vi as pn, Vn as mn, Vr as hn, Vt as gn, W as _n, Wa as vn, Wi as yn, Wn as bn, Wr as xn, Wt as Sn, X as Cn, Xa as wn, Xi as Tn, Xn as En, Xr as Dn, Xt as On, Y as kn, Ya as An, Yi as jn, Yn as Mn, Yr as Nn, Yt as Pn, Z as Fn, Za as In, Zi as Ln, Zn as Rn, Zr as zn, Zt as Bn, _ as Vn, _a as Hn, _i as Un, _n as Wn, _o as Gn, _r as Kn, _t as qn, a as Jn, aa as Yn, ai as Xn, an as Zn, ao as Qn, ar as $n, at as er, b as tr, ba as nr, bi as rr, bn as ir, bo as ar, br as or, bt as sr, c as cr, ca as lr, ci as ur, cn as dr, co as fr, cr as pr, ct as mr, d as hr, da as gr, di as _r, dn as vr, do as yr, dr as br, dt as xr, ea as Sr, ei as Cr, en as wr, eo as Tr, er as Er, et as Dr, f as Or, fa as kr, fi as Ar, fn as jr, fo as Mr, fr as Nr, ft as Pr, g as Fr, ga as Ir, gi as Lr, gn as Rr, go as zr, gr as Br, gt as Vr, h as Hr, ha as Ur, hi as Wr, hn as X, ho as Gr, hr as Kr, ht as qr, i as Jr, ia as Yr, ii as Xr, in as Zr, ir as Qr, it as $r, j as ei, ja as ti, ji as ni, jn as ri, jo as ii, jr as ai, jt as oi, k as si, ka as ci, ki as li, kn as ui, ko as di, kr as fi, kt as pi, l as mi, la as hi, li as gi, ln as _i, lo as vi, lr as yi, lt as bi, m as xi, ma as Si, mi as Ci, mn as wi, mo as Ti, mr as Ei, mt as Di, n as Oi, na as ki, ni as Ai, nn as ji, no as Mi, nr as Ni, nt as Pi, o as Fi, oa as Ii, oi as Li, on as Ri, oo as zi, or as Bi, ot as Vi, p as Hi, pa as Ui, pi as Wi, pn as Gi, po as Ki, pr as qi, pt as Ji, q as Yi, qa as Xi, qi as Zi, qn as Qi, qr as $i, qt as ea, r as ta, ra as na, ri as ra, rn as ia, ro as aa, rr as oa, rt as sa, s as ca, sa as la, si as ua, sn as da, so as fa, sr as pa, st as ma, t as ha, ta as ga, ti as _a, tn as va, to as ya, tr as ba, tt as xa, u as Sa, ua as Ca, ui as wa, un as Ta, uo as Ea, ur as Da, ut as Oa, v as ka, va as Aa, vi as ja, vn as Ma, vo as Na, vr as Pa, vt as Fa, w as Ia, wa as La, wi as Ra, wn as za, wo as Ba, wr as Va, wt as Ha, x as Ua, xa as Wa, xi as Ga, xn as Ka, xo as Z, xr as qa, xt as Ja, y as Ya, ya as Xa, yi as Za, yn as Qa, yo as $a, yr as eo, yt as to, z as no, za as ro, zi as io, zn as ao, zo as oo, zr as so, zt as co } from "./src-
|
|
3
|
-
import { A as lo, B as uo, C as fo, D as po, E as mo, F as ho, G as go, H as _o, I as vo, J as yo, K as bo, L as xo, M as So, N as Co, O as wo, P as To, R as Eo, S as Do, T as Oo, U as ko, V as Ao, W as jo, _ as Mo, a as No, b as Po, c as Fo, d as Io, f as Lo, g as Ro, h as zo, i as Bo, j as Vo, k as Ho, l as Uo, m as Wo, o as Go, p as Ko, q as qo, r as Jo, s as Yo, t as Xo, u as Zo, v as Qo, w as $o, x as es, y as ts, z as ns } from "./SvDateTimePicker-
|
|
2
|
+
import { $ as _, $a as v, $i as y, $n as b, $r as x, $t as S, A as C, Aa as w, Ai as T, An as E, Ao as D, Ar as O, At as k, B as A, Ba as j, Bi as M, Bn as N, Br as P, Bt as F, C as I, Ca as L, Ci as R, Cn as z, Co as B, Cr as V, Ct as H, D as U, Da as W, Di as G, Dn as K, Do as q, Dr as J, Dt as Y, E as ae, Ea as oe, Ei as se, En as ce, Eo as le, Er as ue, Et as de, F as fe, Fa as pe, Fi as me, Fn as he, Fo as ge, Fr as _e, Ft as ve, G as ye, Ga as be, Gi as xe, Gn as Se, Gr as Ce, Gt as we, H as Te, Ha as Ee, Hi as De, Hn as Oe, Hr as ke, Ht as Ae, I as je, Ia as Me, Ii as Ne, In as Pe, Io as Fe, Ir as Ie, It as Le, J as Re, Ja as ze, Ji as Be, Jn as Ve, Jr as He, Jt as Ue, K as We, Ka as Ge, Ki as Ke, Kn as qe, Kr as Je, Kt as Ye, L as Xe, La as Ze, Li as Qe, Ln as $e, Lo as et, Lr as tt, Lt as nt, M as rt, Ma as it, Mi as at, Mn as ot, Mo as st, Mr as ct, Mt as lt, N as ut, Na as dt, Ni as ft, Nn as pt, No as mt, Nr as ht, Nt as gt, O as _t, Oa as vt, Oi as yt, On as bt, Oo as xt, Or as St, Ot as Ct, P as wt, Pa as Tt, Pi as Et, Pn as Dt, Po as Ot, Pr as kt, Pt as At, Q as jt, Qa as Mt, Qi as Nt, Qn as Pt, Qr as Ft, Qt as It, R as Lt, Ra as Rt, Ri as zt, Rn as Bt, Ro as Vt, Rr as Ht, Rt as Ut, S as Wt, Sa as Gt, Si as Kt, Sn as qt, So as Jt, Sr as Yt, St as Xt, T as Zt, Ta as Qt, Ti as $t, Tn as en, To as tn, Tr as nn, Tt as rn, U as an, Ua as on, Ui as sn, Un as cn, Ur as ln, Ut as un, V as dn, Va as fn, Vi as pn, Vn as mn, Vr as hn, Vt as gn, W as _n, Wa as vn, Wi as yn, Wn as bn, Wr as xn, Wt as Sn, X as Cn, Xa as wn, Xi as Tn, Xn as En, Xr as Dn, Xt as On, Y as kn, Ya as An, Yi as jn, Yn as Mn, Yr as Nn, Yt as Pn, Z as Fn, Za as In, Zi as Ln, Zn as Rn, Zr as zn, Zt as Bn, _ as Vn, _a as Hn, _i as Un, _n as Wn, _o as Gn, _r as Kn, _t as qn, a as Jn, aa as Yn, ai as Xn, an as Zn, ao as Qn, ar as $n, at as er, b as tr, ba as nr, bi as rr, bn as ir, bo as ar, br as or, bt as sr, c as cr, ca as lr, ci as ur, cn as dr, co as fr, cr as pr, ct as mr, d as hr, da as gr, di as _r, dn as vr, do as yr, dr as br, dt as xr, ea as Sr, ei as Cr, en as wr, eo as Tr, er as Er, et as Dr, f as Or, fa as kr, fi as Ar, fn as jr, fo as Mr, fr as Nr, ft as Pr, g as Fr, ga as Ir, gi as Lr, gn as Rr, go as zr, gr as Br, gt as Vr, h as Hr, ha as Ur, hi as Wr, hn as X, ho as Gr, hr as Kr, ht as qr, i as Jr, ia as Yr, ii as Xr, in as Zr, ir as Qr, it as $r, j as ei, ja as ti, ji as ni, jn as ri, jo as ii, jr as ai, jt as oi, k as si, ka as ci, ki as li, kn as ui, ko as di, kr as fi, kt as pi, l as mi, la as hi, li as gi, ln as _i, lo as vi, lr as yi, lt as bi, m as xi, ma as Si, mi as Ci, mn as wi, mo as Ti, mr as Ei, mt as Di, n as Oi, na as ki, ni as Ai, nn as ji, no as Mi, nr as Ni, nt as Pi, o as Fi, oa as Ii, oi as Li, on as Ri, oo as zi, or as Bi, ot as Vi, p as Hi, pa as Ui, pi as Wi, pn as Gi, po as Ki, pr as qi, pt as Ji, q as Yi, qa as Xi, qi as Zi, qn as Qi, qr as $i, qt as ea, r as ta, ra as na, ri as ra, rn as ia, ro as aa, rr as oa, rt as sa, s as ca, sa as la, si as ua, sn as da, so as fa, sr as pa, st as ma, t as ha, ta as ga, ti as _a, tn as va, to as ya, tr as ba, tt as xa, u as Sa, ua as Ca, ui as wa, un as Ta, uo as Ea, ur as Da, ut as Oa, v as ka, va as Aa, vi as ja, vn as Ma, vo as Na, vr as Pa, vt as Fa, w as Ia, wa as La, wi as Ra, wn as za, wo as Ba, wr as Va, wt as Ha, x as Ua, xa as Wa, xi as Ga, xn as Ka, xo as Z, xr as qa, xt as Ja, y as Ya, ya as Xa, yi as Za, yn as Qa, yo as $a, yr as eo, yt as to, z as no, za as ro, zi as io, zn as ao, zo as oo, zr as so, zt as co } from "./src-erjBRYfX.js";
|
|
3
|
+
import { A as lo, B as uo, C as fo, D as po, E as mo, F as ho, G as go, H as _o, I as vo, J as yo, K as bo, L as xo, M as So, N as Co, O as wo, P as To, R as Eo, S as Do, T as Oo, U as ko, V as Ao, W as jo, _ as Mo, a as No, b as Po, c as Fo, d as Io, f as Lo, g as Ro, h as zo, i as Bo, j as Vo, k as Ho, l as Uo, m as Wo, o as Go, p as Ko, q as qo, r as Jo, s as Yo, t as Xo, u as Zo, v as Qo, w as $o, x as es, y as ts, z as ns } from "./SvDateTimePicker-o94wfSUa.js";
|
|
4
4
|
import { i as rs, n as is, r as as, t as os } from "./popover-P-9P2YYn.js";
|
|
5
|
-
import { t as ss } from "./SvGridDropdown-
|
|
6
|
-
import { a as cs, c as ls, i as us, o as ds, r as fs, s as ps, t as Q } from "./SvGridChartPanel-
|
|
5
|
+
import { t as ss } from "./SvGridDropdown-CUOdm7YA.js";
|
|
6
|
+
import { a as cs, c as ls, i as us, o as ds, r as fs, s as ps, t as Q } from "./SvGridChartPanel-ICbxiUvK.js";
|
|
7
7
|
import { a as ms, c as hs, d as gs, f as _s, l as vs, m as ys, n as bs, o as xs, p as Ss, r as Cs, s as ws, t as Ts, u as Es } from "./chart-T1usDN0o.js";
|
|
8
|
-
import { t as $ } from "./SvGridChart-
|
|
8
|
+
import { t as $ } from "./SvGridChart-Cr_90pPD.js";
|
|
9
9
|
export { ht as COUNTRIES, kt as COUNTRY_BY_CODE, Ts as DEFAULT_PALETTE, yn as FOCUSABLE_SELECTOR, Zt as FlexRender, os as PANEL_THEME_VARS, _e as PHONE_NATIONAL_LENGTHS, qa as STRENGTH_LABELS, za as SvAccordion, xr as SvAlert, Lr as SvAnchor, gi as SvAspectRatio, Oe as SvAutoComplete, xa as SvAvatar, Dr as SvAvatarGroup, Di as SvBadge, Wr as SvBlockquote, Re as SvBreadcrumb, pa as SvButton, Zi as SvButtonGroup, Ko as SvCalendar, Pr as SvCard, Fn as SvCarousel, $ as SvChart, $ as SvGridChart, Q as SvChartPanel, Q as SvGridChartPanel, oa as SvCheckBox, mr as SvChip, Lt as SvCircularProgress, _r as SvCode, Kt as SvCollapsible, Ve as SvColorInput, cn as SvComboBox, _ as SvCommand, ye as SvContextMenu, ot as SvCountryInput, Tn as SvDateRangeInput, Xo as SvDateTimePicker, bi as SvDivider, da as SvDockLayout, gt as SvDockManager, H as SvDrawer, bn as SvDropDownList, Ai as SvDurationInput, Oa as SvEmptyState, Oo as SvField, k as SvFileUpload, Xe as SvForm, bt as SvGauge, vt as SvGrid, ss as SvGridDropdown, pt as SvGridSelect, rr as SvGroup, xi as SvGroupCell, Te as SvHoverCard, Ar as SvKbd, Wi as SvList, Se as SvListBox, Ra as SvLoadingOverlay, Ci as SvMark, En as SvMaskedInput, _n as SvMenu, We as SvMenuList, an as SvMenubar, Ha as SvModal, ao as SvMultiSelect, A as SvNavPane, Pt as SvNumberInput, Xn as SvOtpInput, kn as SvPagination, Rn as SvPasswordInput, Mn as SvPhoneInput, dn as SvPopconfirm, de as SvPopover, no as SvProgress, Ni as SvRadioGroup, ba as SvRating, Bi as SvRepeatButton, R as SvResult, jt as SvRichText, Hi as SvRowGroupPanel, $r as SvScrollArea, se as SvSegmented, Za as SvSimpleGrid, Ji as SvSkeleton, ui as SvSlider, er as SvSparkline, $t as SvSpinner, qt as SvSplitter, Ga as SvStack, ma as SvStat, Yi as SvStepper, Qr as SvSwitchButton, K as SvTabs, mn as SvTagsInput, ja as SvText, b as SvTextArea, Er as SvTextInput, Zo as SvTimePicker, Vi as SvTimeline, Un as SvTitle, qr as SvToaster, $n as SvToggleButton, rn as SvTooltip, Cn as SvTour, ce as SvTree, he as SvTreeSelect, wa as SvVisuallyHidden, Ho as addDays, lo as addMonths, At as addPaneToMain, Vo as addYears, Ln as agendaGroups, Ui as aiChart, Si as aiClassify, Ur as aiExport, Ir as aiFilter, Hn as aiFindAnomalies, Aa as aiSmartFill, Xa as aiSummarize, ve as allManagerIds, Le as allManagerPaneIds, dr as allPaneIds, is as anchoredRect, pn as announce, v as applyExcelFilter, Jt as applyGroupAggregate, St as applyMask, mi as attachAutoSavedView, nt as autoHideLeaf, Ut as autoHidePaneToSide, co as autoHideWindow, Y as autoUpdate, Pi as avatarColorHue, sa as avatarInitials, Pe as branchValues, F as bringToFront, Ya as broadcastChannelTransport, on as buildAutoGroupColumns, bs as buildChart, Cs as buildLinePath, Mr as buildSparkline, fs as chartSpecToCsv, us as chartToPngBlob, cs as chartToSvgString, So as clampDate, Vr as clearToasts, Ae as closeWindow, d as coerceExportDate, B as columnFilteringFeature, Ba as columnGroupingFeature, Ge as computeColumnGroupMeta, n as computeColumnStat, ms as computeOverlay, Ct as computePosition, t as contrastText, o as copyTextToClipboard, en as createAccordion, so as createAutocomplete, Be as createButtonGroup, Wo as createCalendar, me as createCarousel, Pa as createCheckbox, tr as createCollaboration, Va as createColorInput, cr as createColumnVirtualizer, Ce as createCombobox, at as createCommand, tn as createCoreRowModel, ct as createCountryInput, Jo as createDateTimePicker, Yo as createDismissableLayer, xn as createDropdownList, le as createExpandedRowModel, oi as createFileUpload, q as createFilteredRowModel, xe as createFocusTrap, yt as createForm, pr as createGauge, ar as createGrid, Na as createGridState, xt as createGroupedRowModel, Ua as createHyperFormulaSheet, Je as createListbox, J as createMaskedInput, P as createMenu, Sa as createNamedViews, ai as createNumberInput, M as createOverlay, di as createPaginatedRowModel, Qe as createPagination, Yt as createPasswordInput, ue as createPhoneInput, hn as createPopoverSelect, G as createRadioGroup, Kn as createRating, ka as createServerDataSource, Hr as createServerGroupModel, yi as createSlider, D as createSortedRowModel, z as createSplitter, Ne as createStepper, Z as createSvGrid, Z as createTable, $a as createSvGridState, qe as createSvelteVirtualizer, eo as createSwitch, Br as createTabs, Ht as createTagsInput, Io as createTimePicker, or as createToggle, io as createTooltip, Da as createTree, ii as createTreeRowModel, Nn as createTypeaheadBuffer, Qi as createVirtualizer, Nt as daysForView, N as debounce, Co as decadeRange, un as dedupeManagerNodeIds, Qn as defaultEditorProps, fn as defaultGridMessages, mo as describeRecurrence, nr as disableAiCharting, qn as dismissToast, Fo as dismissableDepth, _i as dockGroup, Ta as dockInto, vr as dockLeafToEdge, gn as dockManagerClosePane, S as dockManagerResizeGroup, Rr as dockNormalize, jr as dockPane, Sn as dockPaneOnto, we as dockPaneToEmptyMain, ir as dockSetActive, Ka as dockSetSizes, Gi as dockTabs, Ye as dockWindowOnto, l as downloadBlobFile, ds as downloadChartCsv, ps as downloadChartPng, ls as downloadChartSvg, r as downloadTextFile, jo as editorAria, go as editorErrorId, bo as editorHintId, Po as emptySelection, Wa as enableAiCharting, ke as enabledIndices, y as eventsOnDay, po as expandRecurrence, xs as exponentialMovingAverage, lt as fileMatchesAccept, st as filterFns, Dt as filterGridRows, Dn as filterOptions, ea as findLeafById, $e as findNodePath, wi as findTabsWithPane, Ie as flagEmoji, mt as flattenTreeData, Bt as flattenVisible, Ue as floatPane, ws as formatChartValue, Bo as formatDate, ra as formatDuration, te as formatNeedsStats, ee as formatNumericWithConfig, s as formatValueForExport, p as formatsNeedingStats, ut as fromICS, ae as fromZonedLocal, ft as fuzzyMatch, Et as fuzzyScore, Gt as getAIProvider, it as getBoardView, zi as getCellEditor, ci as getChartView, oe as getExportProvider, Ke as getFocusable, ha as getGridCellA11yProps, Oi as getGridCellDomId, ta as getGridHeaderA11yProps, Jr as getGridRootA11yProps, Jn as getGridRowA11yProps, In as getKeyboardIntent, Mt as getNextActiveCell, Rt as getPivotEngine, pe as getSchedulerView, zn as groupOptions, L as hasAIProvider, dt as hasBoardView, fa as hasCellEditor, w as hasChartView, Sr as hasConflict, Ft as hasGroups, ro as hasPivotEngine, Me as hasSchedulerView, Xi as hiddenLeavesForCollapse, ze as inferCellDataType, vn as insertGroupFooters, U as instantFromWallClock, Ro as isDisabledDay, li as isEmptyValue, Mo as isImportant, fi as isMaskComplete, es as isMultiSelectMode, Li as isOtpComplete, Qo as isOutOfRange, ts as isRestricted, To as isSameDay, Do as isSelected, x as isTypeaheadKey, ho as isoWeek, Tr as joinInTokens, ga as layoutDayEvents, g as lerpColor, hs as linearTrend, hr as localStorageViews, Pn as locatePane, De as lockScroll, wo as matchesRecurrence, Or as memoryViews, La as mockAIProvider, vo as monthMatrix, ki as monthWeekSegments, X as movePane, br as moveTreeNode, On as moveWindow, na as navigateAnchor, qo as nextEditorId, Cr as nextTypeaheadIndex, vs as niceLogScale, Es as niceScale, zo as normalizeCalendarValue, Fi as normalizeEditorOptions, ya as normalizeForFilter, nn as normalizeHex, _t as normalizeTimeZone, Uo as onScrollOutside, ua as otpCells, Yr as overlapCount, Yn as overlapsBands, be as paginateGroupedRows, zt as paginationRange, No as parseDate, Xr as parseDuration, ca as parseEditorValue, pi as parsePlacement, Lo as parseTimeValue, V as passwordStrength, Fa as pauseToast, tt as phoneDigitsValid, gs as pickContrastText, Bn as pinAutoHidden, as as popIn, rs as portalToBody, u as projectGridRows, fo as rangeDays, Ii as rangeForView, Tt as registerBoardView, _a as registerBuiltinEditors, fr as registerCellEditor, ti as registerChartView, W as registerExportProvider, j as registerPivotEngine, Ze as registerSchedulerView, vi as registeredCellEditorTypes, Wn as removeLeaf, Ma as removePane, Ti as renderComponent, Gr as renderSnippet, Qa as reorderPane, It as reorderTab, wr as resizeWindow, ne as resolveCellFormat, An as resolveColumnTypes, m as resolveDatePattern, Ea as resolveEditorProps, la as resolveEvents, Ee as resolveGridMessages, yo as resolveMessages, to as resumeToast, h as rgba, wn as rowDropZone, Ot as rowExpandingFeature, ge as rowPaginationFeature, Wt as rowResize, Fe as rowSelectionFeature, et as rowSortingFeature, _s as rowsToChartSpec, wt as rruleToRule, fe as ruleToRRule, T as rules, ni as runRules, Ss as sampleGradient, ur as sanitizeOtp, sn as scrollLockDepth, E as scrollToIndex, $o as selectDate, re as serializeDelimited, i as serializeHtml, f as serializeJson, ie as serializeMarkdown, e as serializeXml, Fr as serverGroupNav, Vn as serverGroupRows, Qt as setAIProvider, va as setAutoHideSize, ji as setManagerActive, ia as setWindowMinimized, ys as simpleMovingAverage, xo as snapMinute, Vt as sortFns, Nr as sortTreeNodes, I as spansToMerges, Mi as splitInTokens, Ia as spreadsheetLayout, Eo as startOfDay, ns as startOfMonth, uo as startOfWeek, zr as subscribeGrid, Gn as subscribeSvGrid, Zr as surfaceOfTabs, oo as tableFeatures, lr as timelineAxis, hi as timelineGeom, Ca as timelineRows, Ao as toDate, c as toExcelNumFmt, jn as toGroupArray, je as toICS, $i as toSelectedArray, He as toSelectedSet, Ki as toSparklineValues, si as toZonedLocal, sr as toast, Ja as toastStore, Zn as toggleMaximizeLeaf, Ri as toggleWindowMaximized, Go as tokenizeMask, aa as trailingInToken, qi as treeCheckState, Ei as treeContains, Kr as treeDescendantIds, O as unmask, yr as unregisterCellEditor, Xt as updateToast, a as valueForExcel, ri as virtualRange, _o as weekdayOrder, ko as withTime, gr as withinWorking, kr as workingIntervals, ln as wrapMove, C as zoneAbbr, ei as zoneOffsetMs, rt as zoneParts };
|
|
10
10
|
|
|
11
11
|
;(function(){try{if(typeof document==='undefined')return;var s=document.createElement('style');s.setAttribute('data-svgrid','');s.textContent=".sv-grid-root{font-family:var(--sg-font,inherit);position:relative}.sv-grid-sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.sv-grid-loading-overlay{z-index:18;pointer-events:auto;background:color-mix(in srgb, var(--sg-bg,#fff) 35%, transparent);position:absolute;inset:0}.sv-grid-loading-bar{background:color-mix(in srgb, var(--sg-accent,#2563eb) 18%, transparent);height:3px;position:absolute;top:0;left:0;right:0;overflow:hidden}.sv-grid-loading-bar:before{content:\"\";background:var(--sg-accent,#2563eb);width:40%;animation:1.1s ease-in-out infinite sv-grid-loading-slide;position:absolute;inset:0}@keyframes sv-grid-loading-slide{0%{transform:translate(-100%)}to{transform:translate(350%)}}.sv-grid-skeleton{top:var(--sg-thead-h,40px);padding:0;position:absolute;left:0;right:0;overflow:hidden}.sv-grid-skeleton-row{height:var(--sg-pinned-row-h,36px);border-bottom:1px solid var(--sg-border,#e2e8f0);align-items:center;display:flex}.sv-grid-skeleton-cell{box-sizing:border-box;flex-shrink:0;padding:0 12px}.sv-grid-skeleton-bar{background:linear-gradient(90deg, color-mix(in srgb, var(--sg-muted,#94a3b8) 18%, transparent) 25%, color-mix(in srgb, var(--sg-muted,#94a3b8) 32%, transparent) 50%, color-mix(in srgb, var(--sg-muted,#94a3b8) 18%, transparent) 75%);background-size:200% 100%;border-radius:4px;width:70%;height:10px;animation:1.3s linear infinite sv-grid-shimmer;display:block}@keyframes sv-grid-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.sv-grid-toolbar{align-items:center;gap:8px;padding:6px 2px;display:flex}.sv-grid-toolbar-btn{border:1px solid var(--sg-border,#e2e8f0);border-radius:var(--sg-radius,6px);background:var(--sg-bg,#fff);color:var(--sg-fg,#0f172a);cursor:pointer;align-items:center;gap:6px;padding:6px 12px;font-size:12.5px;font-weight:600;transition:background-color .12s,color .12s,border-color .12s;display:inline-flex}.sv-grid-toolbar-btn:hover{border-color:var(--sg-accent,#2563eb);color:var(--sg-accent,#2563eb)}.sv-grid-toolbar-btn.is-active{background:var(--sg-accent,#2563eb);border-color:var(--sg-accent,#2563eb);color:#fff}.sv-grid-tool-panel{z-index:901;background:var(--sg-bg,#fff);border-left:1px solid var(--sg-border,#e2e8f0);flex-direction:column;width:250px;display:flex;position:absolute;top:0;bottom:0;right:0;box-shadow:-8px 0 24px #0000001f}.sv-grid-tool-panel-head{text-transform:uppercase;letter-spacing:.05em;color:var(--sg-muted,#64748b);border-bottom:1px solid var(--sg-border,#e2e8f0);justify-content:space-between;align-items:center;padding:8px 12px;font-size:12px;font-weight:700;display:flex}.sv-grid-tool-panel-close{color:var(--sg-muted,#64748b);cursor:pointer;background:0 0;border:0;font-size:14px}.sv-grid-tool-panel-list{flex:1;margin:0;padding:6px;list-style:none;overflow-y:auto}.sv-grid-tool-panel-item{border-radius:5px;justify-content:space-between;align-items:center;gap:6px;padding:3px 6px;display:flex}.sv-grid-tool-panel-item:hover{background:var(--sg-row-hover-bg,#94a3b81a)}.sv-grid-tool-panel-vis{min-width:0;color:var(--sg-fg,#0f172a);cursor:pointer;flex:1;align-items:center;gap:8px;font-size:13px;display:flex}.sv-grid-tool-panel-vis input{accent-color:var(--sg-accent,#2563eb)}.sv-grid-tool-panel-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sv-grid-tool-panel-actions{flex-shrink:0;gap:2px;display:inline-flex}.sv-grid-tool-panel-btn{width:22px;height:22px;color:var(--sg-muted,#64748b);cursor:pointer;background:0 0;border:0;border-radius:4px;font-size:13px}.sv-grid-tool-panel-btn:hover:not(:disabled){background:var(--sg-row-hover-bg,#94a3b82e);color:var(--sg-fg,#0f172a)}.sv-grid-tool-panel-btn.is-active{color:var(--sg-accent,#2563eb)}.sv-grid-tool-panel-btn:disabled{opacity:.35;cursor:default}.sv-grid-tool-panel-tabs{border-bottom:1px solid var(--sg-border,#e2e8f0);gap:2px;padding:6px 6px 0;display:flex}.sv-grid-tool-panel-tab{color:var(--sg-muted,#64748b);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex:1;padding:6px 8px;font-size:12px;font-weight:600}.sv-grid-tool-panel-tab:hover{color:var(--sg-fg,#0f172a)}.sv-grid-tool-panel-tab.is-active{color:var(--sg-accent,#2563eb);border-bottom-color:var(--sg-accent,#2563eb)}.sv-grid-tool-panel-filters{flex-direction:column;flex:1;gap:8px;padding:6px;display:flex;overflow-y:auto}.sv-grid-tp-filter{border:1px solid var(--sg-border,#e2e8f0);border-radius:6px;flex-direction:column;gap:4px;padding:6px;display:flex}.sv-grid-tp-filter.is-filtered{border-color:var(--sg-accent,#2563eb)}.sv-grid-tp-filter-head{justify-content:space-between;align-items:center;display:flex}.sv-grid-tp-filter-name{color:var(--sg-fg,#0f172a);font-size:12px;font-weight:600}.sv-grid-tp-filter-clear{color:var(--sg-muted,#64748b);cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:11px}.sv-grid-tp-filter-clear:hover{color:var(--sg-accent,#2563eb)}.sv-grid-tp-filter-op,.sv-grid-tp-filter-input{box-sizing:border-box;border:1px solid var(--sg-border,#e2e8f0);background:var(--sg-bg,#fff);width:100%;color:var(--sg-fg,#0f172a);border-radius:5px;padding:4px 6px;font-size:12px}.sv-grid-root-fill{flex-direction:column;height:100%;min-height:0;display:flex}.sv-grid-root-fill>.sv-grid-shell{flex:1 1 0;min-height:0;height:auto!important}.sv-grid-shell{border-bottom:1px solid var(--sg-border,#cbd5e1);position:relative}.sv-grid-table{table-layout:fixed;border-collapse:separate;border-spacing:0}.sv-grid-table:focus{outline:none}.sv-grid-column,.sv-grid-cell{box-sizing:border-box;text-overflow:ellipsis;white-space:nowrap;background:var(--sg-bg,#fff);color:var(--sg-fg,#0f172a);-webkit-user-select:none;user-select:none;border-right:1px solid var(--sg-border,#e2e8f0);border-bottom:1px solid var(--sg-border,#e2e8f0);overflow:hidden}.sv-grid-table tr>:last-child.sv-grid-column,.sv-grid-table tr>:last-child.sv-grid-cell{border-right:0}.sv-grid-table:not(.sv-grid-no-row-hover) tbody tr:hover>.sv-grid-cell:not([data-selected-range=true]){background-color:var(--sg-row-hover-bg,#eef2ff)}.sv-grid-cell-active,.sv-grid-cell-has-fill-handle{position:relative}.sv-grid-cell-has-fill-handle{overflow:visible}.sv-grid-detail-row{height:auto!important}.sv-grid-detail-cell{text-overflow:clip;white-space:normal;background:var(--sg-bg,#fff);-webkit-user-select:text;user-select:text;height:auto;padding:0;overflow:visible}.sv-grid-cell[data-pinned=left],.sv-grid-column[data-pinned=left]{background:var(--sg-pinned-bg,color-mix(in oklab, var(--sg-header-bg,#f1f5f9) 92%, var(--sg-accent,#2563eb) 8%));box-shadow:inset -1px 0 0 var(--sg-pinned-divider,var(--sg-border,#cbd5e1)), 8px 0 12px -6px var(--sg-pinned-shadow-color,#0f172a38)}.sv-grid-cell[data-pinned=right],.sv-grid-column[data-pinned=right]{background:var(--sg-pinned-bg,color-mix(in oklab, var(--sg-header-bg,#f1f5f9) 92%, var(--sg-accent,#2563eb) 8%));box-shadow:inset 1px 0 0 var(--sg-pinned-divider,var(--sg-border,#cbd5e1)), -8px 0 12px -6px var(--sg-pinned-shadow-color,#0f172a38)}.sv-grid-head .sv-grid-column[data-pinned=left],.sv-grid-head .sv-grid-column[data-pinned=right]{background:var(--sg-pinned-header-bg,color-mix(in oklab, var(--sg-header-bg,#f1f5f9) 86%, var(--sg-accent,#2563eb) 14%));font-weight:600}.sv-grid-row-alt>.sv-grid-cell{background:var(--sg-row-alt-bg,#f8fafc)}.sv-grid-row-alt>.sv-grid-cell[data-pinned]{background:var(--sg-pinned-bg,color-mix(in oklab, var(--sg-header-bg,#f1f5f9) 92%, var(--sg-accent,#2563eb) 8%))}.sv-grid-row-selected>.sv-grid-cell[data-pinned]{background:linear-gradient(color-mix(in srgb, var(--sg-selection-bg,#dbeafe) 65%, transparent), color-mix(in srgb, var(--sg-selection-bg,#dbeafe) 65%, transparent)), var(--sg-pinned-bg,color-mix(in oklab, var(--sg-header-bg,#f1f5f9) 92%, var(--sg-accent,#2563eb) 8%))}.sv-grid-table:not(.sv-grid-no-row-hover) .sv-grid-row:hover>.sv-grid-cell[data-pinned]:not([data-selected-range=true]){background:linear-gradient(color-mix(in srgb, var(--sg-row-hover-bg,#eef2ff) 55%, transparent), color-mix(in srgb, var(--sg-row-hover-bg,#eef2ff) 55%, transparent)), var(--sg-pinned-bg,color-mix(in oklab, var(--sg-header-bg,#f1f5f9) 92%, var(--sg-accent,#2563eb) 8%))}.sv-grid-column{position:relative}.sv-grid-cell[data-align=left],.sv-grid-column[data-align=left]{padding-left:var(--sg-cell-px,7px)}.sv-grid-cell[data-align=right]{text-align:right;padding-right:var(--sg-cell-px,7px)}.sv-grid-cell[data-align=center]{text-align:center}.sv-grid-column[data-align=right]{padding-right:var(--sg-cell-px,7px)}.sv-grid-column[data-align=right] .sv-grid-header-sort{justify-content:flex-end}.sv-grid-has-vscroll:not(.sv-grid-has-hscroll) .sv-grid-table tr>:last-child.sv-grid-cell[data-align=right],.sv-grid-has-vscroll:not(.sv-grid-has-hscroll) .sv-grid-table tr>:last-child.sv-grid-column[data-align=right]{padding-right:calc(var(--sg-cell-px,7px) + 16px)}.sv-grid-container.sv-grid-has-vscroll.sv-grid-has-hscroll{padding-right:16px}.sv-grid-column[data-align=center] .sv-grid-header-sort{justify-content:center}.sv-grid-resize-handle{cursor:col-resize;-webkit-user-select:none;user-select:none;z-index:2;width:5px;height:100%;transition:background-color .1s;position:absolute;top:0;right:0}.sv-grid-resize-handle:after{content:\"\";background:var(--sg-fg,#0f172a);opacity:0;border-radius:1px;width:2px;margin:auto 2px;transition:background-color .1s,opacity .1s;position:absolute;inset:0}.sv-grid-column:hover .sv-grid-resize-handle:after{opacity:.3}.sv-grid-column:hover .sv-grid-resize-handle:hover:after,.sv-grid-resize-handle.is-resizing:after{background:var(--sg-accent,#2563eb);opacity:1}.sv-grid-row-resize-handle{transition:background-color .1s}.sv-grid-row-resize-handle:hover,.sv-grid-row-resize-handle.is-resizing{background:color-mix(in srgb, var(--sg-accent,#0b63f3) 30%, transparent)}.sv-grid-head{z-index:35;background:var(--sg-header-bg,#f5f7fb);position:sticky;top:0}.sv-grid-head .sv-grid-column{background:var(--sg-header-bg,#f5f7fb);color:var(--sg-header-label-color,var(--sg-header-fg,var(--sg-fg,#0f172a)));font-weight:var(--sg-header-weight,600);font-size:var(--sg-header-size,inherit);text-transform:var(--sg-header-transform,none);letter-spacing:var(--sg-header-tracking,normal);border-bottom-color:var(--sg-header-border,var(--sg-border,#e2e8f0))}.sv-grid-column[draggable=true]{cursor:grab}.sv-grid-column[draggable=true]:active{cursor:grabbing}.sv-grid-column.is-dragging{opacity:.55}.sv-grid-column.is-drag-target-before,.sv-grid-column.is-drag-target-after{position:relative}.sv-grid-column.is-drag-target-before:before,.sv-grid-column.is-drag-target-after:after{content:\"\";pointer-events:none;z-index:7;background:linear-gradient(#6366f1,#8b5cf6);border-radius:2px;width:3px;animation:.7s ease-in-out infinite alternate sg-drop-pulse;position:absolute;top:4px;bottom:4px;box-shadow:0 0 6px #6366f1}.sv-grid-column.is-drag-target-before:before{left:-2px}.sv-grid-column.is-drag-target-after:after{right:-2px}@keyframes sg-drop-pulse{0%{opacity:.55}to{opacity:1}}.sv-grid-row-draggable{cursor:grab}.sv-grid-row-draggable:active{cursor:grabbing}.sv-grid-row-draggable .sv-grid-row-number-cell{padding-left:14px;position:relative}.sv-grid-row-draggable .sv-grid-row-number-cell:before{content:\"⠇\";color:var(--sg-muted,#94a3b8);opacity:.4;pointer-events:none;font-size:13px;line-height:1;transition:opacity .12s;position:absolute;top:50%;left:3px;transform:translateY(-50%)}.sv-grid-row-draggable:hover .sv-grid-row-number-cell:before{opacity:1}.sv-grid-row-dropzone-over{outline:2px dashed var(--sg-accent,#6366f1);outline-offset:-2px;background:color-mix(in srgb, var(--sg-accent,#6366f1) 10%, transparent)}.sv-grid-row-drop-before>td{box-shadow:inset 0 2px 0 0 var(--sg-accent,#6366f1)}.sv-grid-row-drop-after>td{box-shadow:inset 0 -2px 0 0 var(--sg-accent,#6366f1)}.sv-grid-pinned-row td{z-index:4;background:var(--sg-pinned-bg,color-mix(in oklab, var(--sg-header-bg,#f1f5f9) 92%, var(--sg-accent,#2563eb) 8%));border-bottom:1px solid var(--sg-pinned-border,color-mix(in oklab, var(--sg-accent,#2563eb) 24%, transparent));font-weight:600;position:sticky}.sv-grid-pinned-row-top td{top:var(--sg-thead-h,36px)}.sv-grid-pinned-row-bottom td{border-top:1px solid var(--sg-pinned-border,color-mix(in oklab, var(--sg-accent,#2563eb) 24%, transparent));bottom:0}.sv-grid-pinned-row-top[data-pinned-index=\"1\"] td{top:calc(var(--sg-thead-h,36px) + var(--sg-pinned-row-h,32px))}.sv-grid-pinned-row-top[data-pinned-index=\"2\"] td{top:calc(var(--sg-thead-h,36px) + var(--sg-pinned-row-h,32px) * 2)}.sv-grid-pinned-row-top[data-pinned-index=\"3\"] td{top:calc(var(--sg-thead-h,36px) + var(--sg-pinned-row-h,32px) * 3)}.sv-grid-pinned-row-bottom[data-pinned-index=\"1\"] td{bottom:var(--sg-pinned-row-h,32px)}.sv-grid-pinned-row-bottom[data-pinned-index=\"2\"] td{bottom:calc(var(--sg-pinned-row-h,32px) * 2)}.sv-grid-pinned-row-bottom[data-pinned-index=\"3\"] td{bottom:calc(var(--sg-pinned-row-h,32px) * 3)}.sv-grid-pinned-row td[data-pinned]{z-index:5}.sv-grid-group-header-row{background:var(--sg-header-bg,#eef2f8)}.sv-grid-group-header-cell{box-sizing:border-box;border-bottom:1px solid var(--sg-border,#d8dee9);border-right:1px solid var(--sg-border,#e2e8f0);text-align:center;color:var(--sg-header-fg,#475569);text-transform:uppercase;letter-spacing:.04em;padding:4px 8px;font-size:11.5px;font-weight:700}.sv-grid-group-header-placeholder{background:0 0;border-right-color:#0000}.sv-grid-group-header-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:inline-block;overflow:hidden}.sv-grid-group-toggle{max-width:100%;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;background:0 0;border:0;border-radius:5px;align-items:center;gap:5px;padding:2px 6px;display:inline-flex}.sv-grid-group-toggle:hover{background:color-mix(in srgb, var(--sg-accent,#2563eb) 12%, transparent);color:var(--sg-accent,#2563eb)}.sv-grid-group-caret{flex-shrink:0;transition:transform .14s}.sv-grid-group-toggle.is-collapsed .sv-grid-group-caret{transform:rotate(-90deg)}.sv-grid-foot{z-index:6;background:var(--sg-header-bg,#f5f7fb);position:sticky;bottom:0}.sv-grid-container.sv-grid-narrow{-webkit-overflow-scrolling:touch;scroll-behavior:auto}.sv-grid-container{scrollbar-width:auto;-ms-overflow-style:auto;overscroll-behavior:contain;overflow-anchor:none;scroll-padding-top:var(--sg-thead-h,36px)}.sv-grid-container.sv-grid-container-custom-scrollbars{scrollbar-width:none;-ms-overflow-style:none}.sv-grid-container.sv-grid-container-custom-scrollbars::-webkit-scrollbar{display:none}.sv-grid-scrollbar{z-index:40;position:absolute}.sv-grid-scrollbar-vertical{top:0;width:16px;height:calc(100% - 16px);inset-inline-end:0}.sv-grid-scrollbar-corner{top:0;background:var(--sg-header-bg,#f5f7fb);border-bottom:1px solid var(--sg-header-border,#0f172a14);z-index:41;pointer-events:none;width:16px;position:absolute;inset-inline-end:0}.sv-grid-scrollbar-corner-br{inset-inline-end:0;background:var(--sg-header-bg,#eef2f8);z-index:42;pointer-events:none;width:16px;height:16px;position:absolute;bottom:0;box-shadow:inset 0 0 0 1px #0f172a0d}.sv-grid-scrollbar-horizontal{inset-inline-start:0;width:calc(100% - 16px);height:16px;bottom:0}.sv-grid-selection-column,.sv-grid-selection-cell{text-align:center;z-index:4;padding-inline:6px;position:sticky}.sv-grid-row-number-column,.sv-grid-row-number-cell{text-align:right;z-index:4;background:var(--sg-header-bg,#f5f7fb);color:var(--sg-muted,#64748b);font-variant-numeric:tabular-nums;padding-inline:8px;position:sticky;left:0}.sv-grid-row-number-head{color:inherit}.sv-grid-filter-row-control{box-sizing:border-box;padding:5px var(--sg-filter-cell-px,var(--sg-cell-px,7px));flex-direction:row;align-items:center;gap:4px;display:flex}.sv-grid-filter-operator{box-sizing:border-box;flex:2 1 0;min-width:0}.sv-grid-filter-value{box-sizing:border-box;flex:3 1 0;min-width:0}.sv-grid-filter-value.sv-grid-filter-value-invalid,.sv-grid-tp-filter-input.sv-grid-filter-value-invalid{box-shadow:0 0 0 1px color-mix(in srgb, var(--sg-danger,#dc2626) 45%, transparent);border-color:var(--sg-danger,#dc2626)!important}.sv-grid-filter-chips{box-sizing:border-box;border:1px solid var(--sg-input-border,#8794a8);background:var(--sg-input-bg,#fff);border-radius:4px;flex-wrap:nowrap;flex:3 1 0;align-items:center;gap:3px;min-width:0;padding:2px 4px;display:flex;overflow:hidden}.sv-grid-filter-chip .sv-grid-filter-chip-label{max-width:84px}.sv-grid-filter-chip-more{cursor:pointer;font:inherit;color:var(--sg-text,inherit);border:0;flex:none;font-size:11px;line-height:16px}.sv-grid-filter-chip-more:hover{background:color-mix(in srgb, var(--sg-accent,#0b63f3) 26%, transparent)}.sv-grid-filter-chips:focus-within{border-color:var(--sg-accent,#0b63f3);box-shadow:0 0 0 1px color-mix(in srgb, var(--sg-accent,#0b63f3) 45%, transparent)}.sv-grid-filter-chip{background:color-mix(in srgb, var(--sg-accent,#0b63f3) 16%, transparent);max-width:120px;color:var(--sg-text,inherit);border-radius:3px;align-items:center;gap:2px;padding:0 2px 0 6px;font-size:11px;line-height:16px;display:inline-flex}.sv-grid-filter-chip-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sv-grid-filter-chip-x{width:14px;height:14px;color:inherit;cursor:pointer;opacity:.7;background:0 0;border:0;border-radius:3px;flex:none;justify-content:center;align-items:center;padding:0;font-size:13px;line-height:1;display:inline-flex}.sv-grid-filter-chip-x:hover{opacity:1;background:color-mix(in srgb, var(--sg-accent,#0b63f3) 28%, transparent)}.sv-grid-filter-chips .sv-grid-filter-chip-input{background:0 0;outline:none;flex:14px;min-width:14px;padding:0 2px;box-shadow:none!important;border:0!important}.sv-grid-filter-value.sv-grid-filter-value-pulse{animation:.7s ease-out sv-grid-filter-pulse}@keyframes sv-grid-filter-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--sg-accent,#0b63f3) 55%, transparent)}70%{box-shadow:0 0 0 6px color-mix(in srgb, var(--sg-accent,#0b63f3) 0%, transparent)}to{box-shadow:0 0 0 0 color-mix(in srgb, var(--sg-accent,#0b63f3) 0%, transparent)}}.sv-grid-checkbox{border:1px solid var(--sg-input-border,#8794a8);background:var(--sg-input-bg,#fff);width:16px;height:16px;color:var(--sg-accent,#0b63f3);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;margin:0 auto;transition:border-color .12s,background-color .12s;display:inline-flex;position:relative}.sv-grid-fr-editor{box-sizing:border-box;width:100%}select.sv-grid-fr-editor{height:100%;min-height:26px}.sv-grid-fr-checkbox{width:16px;height:16px;accent-color:var(--sg-accent,#3b82f6);cursor:pointer}.sv-grid-cell-editor-color{cursor:pointer;background:0 0;border:0;width:100%;height:100%;padding:2px}.sv-grid-cell-editor-color::-webkit-color-swatch-wrapper{padding:0}.sv-grid-cell-editor-color::-webkit-color-swatch{border:0;border-radius:4px}.sv-grid-cell-editor-color::-moz-color-swatch{border:0;border-radius:4px}.sv-grid-rating-editor{align-items:center;gap:1px;height:100%;display:inline-flex}.sv-grid-rating-star{cursor:pointer;color:var(--sg-rating-empty,#cbd5e1);background:0 0;border:0;padding:0 1px;font-size:18px;line-height:1;transition:color 80ms,transform 80ms}.sv-grid-rating-star-on{color:var(--sg-rating-on,#f59e0b)}.sv-grid-rating-star:hover{color:var(--sg-rating-hover,#fbbf24);transform:scale(1.12)}.sv-grid-rating-clear{color:var(--sg-muted,#94a3b8);cursor:pointer;background:0 0;border:0;margin-left:4px;font-size:14px}.sv-grid-rating-clear:hover{color:var(--sg-fg,#0f172a)}.sv-grid-checkbox[aria-checked=true],.sv-grid-checkbox[aria-checked=mixed]{border-color:var(--sg-accent,#2563eb);background:var(--sg-accent,#2563eb);color:var(--sg-on-accent,#fff)}.sv-grid-checkbox[aria-checked=true]:after{content:\"\";border-bottom:2px solid;border-right:2px solid;width:5px;height:9px;transform:rotate(40deg)translate(-1px,-1px)}.sv-grid-checkbox[aria-checked=mixed]:after{content:\"\";background:currentColor;border-radius:1px;width:8px;height:2px}.sv-grid-checkbox:focus-visible{outline:2px solid var(--sg-accent,#0b63f3);outline-offset:1px}.sv-grid-checkbox-readonly{cursor:default;pointer-events:none}@keyframes sv-grid-cell-flash-kf{0%{background-color:var(--sg-cell-flash,color-mix(in oklab, var(--sg-accent,#3b82f6) 42%, transparent))}to{background-color:#0000}}.sv-grid-cell-flash{animation:.7s ease-out sv-grid-cell-flash-kf}@media (prefers-reduced-motion:reduce){.sv-grid-cell-flash{animation:none}}.sv-grid-cell-active,.sv-grid-cell-editing{z-index:20;box-shadow:inset 0 0 0 2px var(--sg-accent,#0b63f3);outline:none;position:relative;overflow:visible}.sv-grid-cell-note-corner{background:linear-gradient(45deg, transparent 50%, var(--sg-note-corner,#f59e0b) 50%);cursor:help;z-index:6;width:12px;height:12px;position:absolute;top:0;right:0}.sv-grid-cell-note-corner:before{content:\"\";position:absolute;inset:-3px -3px 0 0}.sv-grid-fill-handle{background:var(--sg-accent,#0b63f3);border:1px solid var(--sg-bg,#fff);box-sizing:border-box;cursor:crosshair;z-index:15;touch-action:none;width:9px;height:9px;position:absolute;bottom:0;right:0}.sv-grid-fill-handle:hover{transform-origin:100% 100%;transform:scale(1.3)}.sv-grid-cell[data-fill-top=true],.sv-grid-cell[data-fill-bottom=true],.sv-grid-cell[data-fill-left=true],.sv-grid-cell[data-fill-right=true]{--sv-fill-top:none;--sv-fill-bottom:none;--sv-fill-left:none;--sv-fill-right:none;--sv-fill-color:var(--sg-fill-marquee,var(--sg-accent,#2563eb))}.sv-grid-cell[data-fill-top=true]{--sv-fill-top:repeating-linear-gradient(to right, var(--sv-fill-color) 0 3px, transparent 3px 6px)}.sv-grid-cell[data-fill-bottom=true]{--sv-fill-bottom:repeating-linear-gradient(to right, var(--sv-fill-color) 0 3px, transparent 3px 6px)}.sv-grid-cell[data-fill-left=true]{--sv-fill-left:repeating-linear-gradient(to bottom, var(--sv-fill-color) 0 3px, transparent 3px 6px)}.sv-grid-cell[data-fill-right=true]{--sv-fill-right:repeating-linear-gradient(to bottom, var(--sv-fill-color) 0 3px, transparent 3px 6px)}.sv-grid-table .sv-grid-cell[data-fill-top=true],.sv-grid-table .sv-grid-cell[data-fill-bottom=true],.sv-grid-table .sv-grid-cell[data-fill-left=true],.sv-grid-table .sv-grid-cell[data-fill-right=true]{background-image:var(--sv-fill-top), var(--sv-fill-bottom), var(--sv-fill-left), var(--sv-fill-right);background-position:0 0,0 100%,0 0,100% 0;background-repeat:no-repeat;background-size:100% 2px,100% 2px,2px 100%,2px 100%}.sv-grid-cell-editing{padding:0}.sv-grid-cell[data-selected-range=true]{background:var(--sg-selection-bg,#eef4ff);--sv-range-top:0 0 0 transparent;--sv-range-bottom:0 0 0 transparent;--sv-range-left:0 0 0 transparent;--sv-range-right:0 0 0 transparent;box-shadow:var(--sv-range-top), var(--sv-range-bottom), var(--sv-range-left), var(--sv-range-right)}.sv-grid-cell[data-range-top=true]{--sv-range-top:inset 0 2px 0 var(--sg-accent,#0b63f3)}.sv-grid-cell[data-range-bottom=true]{--sv-range-bottom:inset 0 -2px 0 var(--sg-accent,#0b63f3)}.sv-grid-cell[data-range-left=true]{--sv-range-left:inset 2px 0 0 var(--sg-accent,#0b63f3)}.sv-grid-cell[data-range-right=true]{--sv-range-right:inset -2px 0 0 var(--sg-accent,#0b63f3)}.sv-grid-cell[data-range-top=true],.sv-grid-cell[data-range-bottom=true],.sv-grid-cell[data-range-left=true],.sv-grid-cell[data-range-right=true],.sv-grid-cell.sv-merge-edge-right,.sv-grid-cell.sv-merge-edge-bottom{z-index:3;position:relative}.sv-grid-cell.sv-merge-edge-right{box-shadow:inset -2px 0 0 var(--sg-accent,#0b63f3)}.sv-grid-cell.sv-merge-edge-bottom{box-shadow:inset 0 -2px 0 var(--sg-accent,#0b63f3)}.sv-grid-cell.sv-merge-in-range{background:var(--sg-selection-bg,#eef4ff)}.sv-grid-cell-editor{background:var(--sg-input-bg,#fff);box-sizing:border-box;width:100%;height:100%;font:inherit;color:inherit;border:0;outline:none;padding:0 8px;position:absolute;inset:0}.sv-grid-column-filter,.sv-grid-filter-value,.sv-grid-global-filter input,.sv-grid-menu-search,.sv-grid-menu-condition-value{background:var(--sg-input-bg,#fff);color:var(--sg-fg,#0f172a);border:1px solid var(--sg-input-border,#cbd5e1);box-sizing:border-box;font:inherit;border-radius:5px;padding:0 8px}.sv-grid-column-filter{width:100%;height:28px;font-size:.8125rem}.sv-grid-global-filter{color:var(--sg-muted,#64748b);align-items:center;gap:8px;margin-bottom:8px;font-size:.8125rem;font-weight:550;display:inline-flex}.sv-grid-global-filter input{min-width:220px;height:30px;font-size:.8125rem}.sv-grid-column-filter::placeholder,.sv-grid-filter-value::placeholder,.sv-grid-menu-search::placeholder,.sv-grid-global-filter input::placeholder,.sv-grid-cell-editor::placeholder{color:var(--sg-muted,#64748b);opacity:.7}.sv-grid-global-filter input:focus,.sv-grid-filter-value:focus,.sv-grid-column-filter:focus,.sv-grid-menu-search:focus,.sv-grid-menu-condition-value:focus,.sv-grid-menu-operator:focus,.sv-grid-cell-editor:focus{border-color:var(--sg-accent,#2563eb);box-shadow:0 0 0 2px color-mix(in srgb, var(--sg-accent,#2563eb) 30%, transparent);outline:none}.sv-grid-cell-editor-number,.sv-grid-cell-editor-date,.sv-grid-cell-editor-datetime{width:100%;height:100%}.sv-grid-cell-editor-list{appearance:auto;width:100%;height:100%;font:inherit;color:inherit;background:var(--sg-input-bg,#fff);box-sizing:border-box;border:0;padding:0 6px}.sv-grid-cell-editor-list[multiple]{z-index:5;border:1px solid var(--sg-accent,#0b63f3);background:var(--sg-input-bg,#fff);height:auto;min-height:100%;max-height:220px;padding:4px;position:absolute;top:0;left:0;right:0;box-shadow:0 8px 24px #0f172a2e}.sv-grid-cell-editor-chips{background:var(--sg-header-bg,var(--sg-bg,#fff));min-height:calc(100% + 2px);color:var(--sg-fg,#0f172a);box-sizing:border-box;z-index:1000;border:1px solid var(--sg-accent,#2563eb);border-radius:var(--sg-radius,6px);align-items:flex-start;padding:4px 6px;display:flex;position:absolute;top:-1px;left:-1px;right:-1px;overflow:visible;box-shadow:0 12px 28px #00000073}.sv-grid-cell-editing:has(.sv-grid-cell-editor-chips){outline:none}.sv-grid-chips-row{flex-wrap:wrap;align-items:center;gap:4px;width:100%;display:flex}.sv-grid-chip-input{min-width:60px;font:inherit;color:inherit;background:0 0;border:0;outline:none;flex:80px;padding:2px 4px}.sv-grid-chip-picker{min-width:80px;font:inherit;color:inherit;background:var(--sg-bg,#fff);border:1px solid #0f172a26;border-radius:4px;flex:100px;padding:2px 4px}.sv-grid-chip-commit{text-transform:uppercase;letter-spacing:.04em;color:#fff;background:var(--sg-accent,#0b63f3);cursor:pointer;border:0;border-radius:4px;padding:3px 8px;font-size:11px}.sv-grid-chip-commit:hover{filter:brightness(1.1)}.sv-grid-chips-display{vertical-align:middle;flex-wrap:nowrap;align-items:center;gap:4px;max-width:100%;display:inline-flex}.sv-grid-sparkline{vertical-align:middle;display:inline-block;overflow:visible}.sv-grid-cf-bg{z-index:0;pointer-events:none;position:absolute;inset:0}.sv-grid-cf-bar{z-index:0;opacity:.85;pointer-events:none;border-radius:0 2px 2px 0;position:absolute;top:0;bottom:0;left:0}.sv-grid-cell-cf{position:relative}.sv-grid-cell-invalid{box-shadow:inset 0 0 0 1px var(--sg-invalid-border,#ef444473);color:var(--sg-invalid-fg,#b91c1c);background-color:var(--sg-invalid-bg,#ef444424)!important}.sv-grid-cell-invalid.sv-grid-cell-active{box-shadow:inset 0 0 0 2px var(--sg-invalid-border,#ef4444b3)}.sv-grid-status-bar{color:var(--sg-fg);background:var(--sg-header-bg,#f1f5f9);border:1px solid var(--sg-border,#e2e8f0);border-top:0;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:18px;padding:6px 14px;font-size:12px;display:flex}.sv-grid-status-item{font-variant-numeric:tabular-nums;font-weight:600}.sv-grid-status-label{color:var(--sg-muted,#64748b);margin-right:5px;font-weight:400}.sv-grid-cf-content{z-index:1;position:relative}.sv-grid-cf-icon{margin-right:5px;font-size:.95em}.sv-grid-chip{background:color-mix(in srgb, var(--sg-accent,#2563eb) 18%, transparent);color:var(--sg-fg,inherit);border:1px solid color-mix(in srgb, var(--sg-accent,#2563eb) 35%, transparent);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:.85em;line-height:1.4;display:inline-flex}.sv-grid-chip-removable{padding-right:2px}.sv-grid-chip-remove{background:color-mix(in srgb, var(--sg-fg,#0f172a) 18%, transparent);width:16px;height:16px;color:inherit;cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;padding:0;font-size:12px;line-height:1;display:inline-flex}.sv-grid-chip-remove:hover{color:#fff;background:#dc2626b3}.sv-grid-icon{flex:none;width:1em;height:1em;display:block}.sv-grid-header-cell{width:100%;min-width:0;min-height:var(--sg-header-min-height,auto);align-items:center;gap:2px;display:flex}.sv-grid-header-sort{min-width:0;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:auto;align-items:center;gap:4px;padding:2px;display:flex}.sv-grid-header-custom{text-align:left;cursor:pointer;outline:none;flex:auto;align-items:center;gap:4px;min-width:0;padding:2px;display:flex}.sv-grid-header-label{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;overflow:hidden}.sv-grid-header-icon{color:var(--sg-muted,#5b6b85);flex:none;font-size:13px;display:inline-flex}.sv-grid-header-icon-hint{opacity:0;transition:opacity .12s}.sv-grid-column:hover .sv-grid-header-icon-hint{opacity:.4}.sv-grid-header-icon-flag{color:var(--sg-accent,#0b63f3)}.sv-grid-col-menu-btn{width:0;height:22px;color:var(--sg-muted,#5b6b85);cursor:pointer;opacity:0;pointer-events:none;background:0 0;border:0;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;font-size:15px;transition:width .14s,opacity .14s,background-color .12s;display:inline-flex;overflow:hidden}.sv-grid-column:hover .sv-grid-col-menu-btn,.sv-grid-col-menu-btn.is-open,.sv-grid-col-menu-btn:focus-visible,.sv-grid-col-filter-btn.is-active{opacity:1;pointer-events:auto;width:22px}.sv-grid-col-menu-btn:hover,.sv-grid-col-menu-btn.is-open{background:var(--sg-row-hover-bg,#e2e8f3)}.sv-grid-filter-operator-btn{border:1px solid var(--sg-input-border,#cbd5e1);background:var(--sg-input-bg,#fff);height:24px;color:var(--sg-fg,#334155);cursor:pointer;border-radius:4px;flex:none;align-items:center;gap:2px;padding:0 4px;font-size:13px;display:inline-flex}.sv-grid-filter-operator-btn.is-open{border-color:var(--sg-accent,#0b63f3)}.sv-grid-caret{color:var(--sg-muted,#94a3b8);font-size:9px;display:inline-flex}.sv-grid-menu-backdrop{z-index:900;background:0 0;position:fixed;inset:0}.sv-grid-menu{z-index:901;overscroll-behavior:contain;background:var(--sg-bg,#fff);border:1px solid var(--sg-border,#d6dee9);max-height:calc(100vh - 24px);color:var(--sg-fg,#1f2937);border-radius:8px;padding:4px;font-size:13px;position:fixed;overflow:auto;box-shadow:0 12px 28px #0f172a2e}.sv-grid-column-menu{width:260px}.sv-grid-menu-tabs{border-bottom:1px solid var(--sg-border,#e2e8f0);gap:2px;margin:-2px -2px 4px;padding:2px 2px 0;display:flex}.sv-grid-menu-tab{color:var(--sg-muted,#64748b);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex:1;padding:6px;font-size:12px;font-weight:600}.sv-grid-menu-tab:hover{color:var(--sg-fg,#0f172a)}.sv-grid-menu-tab.is-active{color:var(--sg-accent,#2563eb);border-bottom-color:var(--sg-accent,#2563eb)}.sv-grid-operator-menu{width:184px}.sv-grid-context-menu{min-width:180px}.sv-grid-comment-editor{width:240px;padding:8px}.sv-grid-comment-textarea{resize:vertical;border:1px solid var(--sg-input-border,#cbd5e1);background:var(--sg-input-bg,#fff);width:100%;min-height:60px;color:var(--sg-fg,#0f172a);font:inherit;border-radius:4px;outline:none;padding:6px 8px;font-size:13px}.sv-grid-comment-textarea:focus{border-color:var(--sg-accent,#6366f1)}.sv-grid-comment-actions{align-items:center;gap:6px;margin-top:8px;display:flex}.sv-grid-comment-spacer{flex:auto}.sv-grid-comment-actions button{border:1px solid var(--sg-border,#cbd5e1);background:var(--sg-bg,#fff);color:var(--sg-fg,#1f2937);font:inherit;cursor:pointer;border-radius:4px;padding:4px 10px;font-size:12px}.sv-grid-comment-save{border-color:var(--sg-accent,#6366f1)!important;background:var(--sg-accent,#6366f1)!important;color:#fff!important}.sv-grid-comment-remove{color:var(--sg-danger,#dc2626)!important}.sv-grid-menu-item{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:5px;align-items:center;gap:8px;padding:7px 10px;display:flex}.sv-grid-menu-item:hover{background:var(--sg-row-hover-bg,#eef2f8)}.sv-grid-menu.sv-grid-in-suggest{min-width:140px;max-width:260px;padding:0;font-size:12px;overflow:visible}.sv-grid-menu-item[aria-checked=true]{background:var(--sg-selection-bg,#eaf2ff);color:var(--sg-accent,#0b63f3)}.sv-grid-menu-sep{background:var(--sg-border,#e6ebf2);height:1px;margin:4px 6px}.sv-grid-menu-filter{padding:4px 6px 6px}.sv-grid-menu-filter-head{color:var(--sg-muted,#475569);align-items:center;gap:6px;padding:2px 0 6px;font-weight:600;display:flex}.sv-grid-menu-search{box-sizing:border-box;border:1px solid var(--sg-input-border,#cbd5e1);width:100%;height:28px;font:inherit;border-radius:5px;margin-bottom:6px;padding:0 8px}.sv-grid-menu-filter-row{gap:4px;margin-bottom:6px;display:flex}.sv-grid-menu-operator-group{gap:2px;margin-bottom:6px;display:flex}.sv-grid-menu-operator-btn{border:1px solid var(--sg-input-border,#cbd5e1);background:var(--sg-input-bg,#fff);height:28px;color:var(--sg-fg,#475569);cursor:pointer;border-radius:4px;flex:1 1 0;justify-content:center;align-items:center;padding:0;transition:background-color .1s,color .1s,border-color .1s;display:inline-flex}.sv-grid-menu-operator-btn:hover{background:var(--sg-row-hover-bg,#eef2f8)}.sv-grid-menu-operator-btn.is-active{background:var(--sg-accent,#0b63f3);border-color:var(--sg-accent,#0b63f3);color:#fff}.sv-grid-menu-condition-value{box-sizing:border-box;border:1px solid var(--sg-input-border,#cbd5e1);min-width:0;height:28px;font:inherit;border-radius:5px;flex:1 1 0;padding:0 8px}.sv-grid-menu-add-cond{color:var(--sg-accent,#3b82f6);border:1px dashed var(--sg-border,#cbd5e1);cursor:pointer;background:0 0;border-radius:5px;align-self:flex-start;margin-top:2px;padding:3px 8px;font-size:11.5px;font-weight:600}.sv-grid-menu-add-cond:hover{background:color-mix(in oklab, var(--sg-accent,#3b82f6) 8%, transparent);border-style:solid}.sv-grid-menu-join{align-items:center;gap:2px;margin:2px 0;display:inline-flex}.sv-grid-menu-join button{color:var(--sg-muted,#64748b);border:1px solid var(--sg-border,#cbd5e1);cursor:pointer;background:0 0;padding:2px 10px;font-size:11px;font-weight:700}.sv-grid-menu-join button:first-child{border-radius:5px 0 0 5px}.sv-grid-menu-join button:nth-child(2){border-left:0;border-radius:0}.sv-grid-menu-join button.is-on{background:var(--sg-accent,#3b82f6);color:#fff;border-color:var(--sg-accent,#3b82f6)}.sv-grid-menu-join-x{margin-left:auto;font-size:14px;line-height:1;border-radius:5px!important;padding:2px 7px!important}.sv-grid-menu .sv-listbox{overscroll-behavior:contain}.sv-grid-facet{cursor:pointer;align-items:center;gap:8px;padding:4px 8px;display:flex}.sv-grid-facet:hover{background:var(--sg-row-hover-bg,#f4f6fa)}.sv-grid-facet-all{padding-inline-start:3px;font-weight:600}.sv-grid-facet input{flex:none}.sv-grid-facet-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sv-grid-facet-empty,.sv-grid-facet-note{color:var(--sg-muted,#94a3b8);padding:6px 8px;font-size:12px}.sv-grid-menu-actions{justify-content:flex-end;gap:6px;padding-top:8px;display:flex}.sv-grid-menu-btn{border:1px solid var(--sg-input-border,#cbd5e1);background:var(--sg-input-bg,#fff);color:var(--sg-fg,#334155);font:inherit;cursor:pointer;border-radius:5px;padding:5px 10px}.sv-grid-menu-btn-primary{background:var(--sg-accent,#0b63f3);border-color:var(--sg-accent,#0b63f3);color:#fff}.sv-grid-menu-item:disabled,.sv-grid-menu-btn:disabled{opacity:.4;cursor:default}.sv-grid-menu-item:disabled:hover{background:0 0}.sv-grid-group-row>.sv-grid-cell{background:var(--sg-header-bg,#eef2f8);cursor:pointer;font-weight:600}.sv-grid-row-selected>.sv-grid-cell{background:var(--sg-selection-bg,#eaf2ff)}.sv-grid-group-footer-row>.sv-grid-cell{background:var(--sg-header-bg,#eef2f8);border-top:1px solid var(--sg-border,#d7dce5);font-weight:600}.sv-grid-row-auto-height>.sv-grid-cell{white-space:normal;overflow-wrap:anywhere;text-overflow:clip;vertical-align:top;padding-top:6px;padding-bottom:6px;overflow:visible}.sv-grid-grand-total-row>.sv-grid-cell{border-top:3px double var(--sg-border,#d7dce5);font-weight:700}.sv-grid-tree-indent{flex:none;display:inline-block}.sv-grid-tree-toggle{width:14px;height:14px;color:var(--sg-muted,#64748b);cursor:pointer;background:0 0;border:0;border-radius:3px;flex:none;justify-content:center;align-items:center;margin-right:3px;padding:0;font-size:10px;line-height:1;display:inline-flex}.sv-grid-tree-toggle:hover{background:var(--sg-header-bg,#eef2f8);color:var(--sg-fg,#0f172a)}.sv-grid-tree-toggle .sv-grid-icon,.sv-grid-group-toggle .sv-grid-icon{width:12px;height:12px;transition:transform .15s}.sv-grid-tree-toggle[aria-expanded=true] .sv-grid-icon,.sv-grid-group-toggle[aria-expanded=true] .sv-grid-icon{transform:rotate(90deg)}.sv-grid-tree-toggle:focus-visible{outline:2px solid var(--sg-accent,#2563eb);outline-offset:1px}.sv-grid-autogroup-label{color:var(--sg-fg,#0f172a);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.sv-grid-tree-spacer{flex:none;width:14px;margin-right:3px;display:inline-block}.sv-grid-group-cell{padding:0 12px}.sv-grid-group-content{align-items:center;gap:6px;display:inline-flex}.sv-grid-group-toggle{color:var(--sg-fg,#334155);cursor:pointer;background:0 0;border:0;padding:0 4px 0 0;font-size:11px;line-height:1}.sv-grid-group-count{color:var(--sg-muted,#64748b);margin-left:6px;font-size:12px;font-weight:400}.sv-grid-group-agg{color:var(--sg-fg);white-space:nowrap;margin-left:10px;font-size:12px;font-weight:600}.sv-grid-group-agg-label{color:var(--sg-muted,#64748b);margin-right:4px;font-weight:400}.sv-grid-group-agg-label:after{content:\":\"}.sv-grid-group-child-indent{width:18px;display:inline-block}.sv-grid-tooltip{z-index:10000;color:#f1f5f9;border-radius:var(--sg-radius,6px);pointer-events:none;white-space:pre-wrap;word-wrap:break-word;background:#0f172a;max-width:280px;padding:8px 10px;font-size:12px;line-height:1.45;position:fixed;box-shadow:0 8px 24px #0f172a47}[data-theme=dark] .sv-grid-tooltip{color:#0f172a;background:#f1f5f9}.sv-grid-cell-editor-textarea{border:1px solid var(--sg-accent,#6366f1);background:var(--sg-bg,#fff);width:100%;min-height:80px;color:var(--sg-fg,#0f172a);resize:vertical;box-shadow:0 0 0 2px var(--sg-focus-ring,#6366f166);border-radius:4px;outline:none;padding:6px 8px;font-family:inherit;font-size:13px;line-height:1.4}.sv-grid-autocomplete{width:100%;position:relative}.sv-grid-autocomplete-list{z-index:30;background:var(--sg-bg,#fff);border:1px solid var(--sg-border,#d6dee9);border-radius:var(--sg-radius,6px);max-height:220px;margin-top:2px;padding:4px;position:absolute;top:100%;left:0;right:0;overflow:auto;box-shadow:0 12px 28px #0f172a2e}.sv-grid-autocomplete-option{text-align:left;width:100%;color:var(--sg-fg,#1f2937);font:inherit;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;border-radius:4px;padding:5px 8px;font-size:13px;display:block;overflow:hidden}.sv-grid-autocomplete-option:hover,.sv-grid-autocomplete-option[aria-selected=true]{background:var(--sg-row-hover-bg,#6366f11a)}.sv-grid-find{z-index:60;background:var(--sg-bg,#fff);color:var(--sg-fg,#0f172a);border:1px solid var(--sg-border,#cbd5e1);border-radius:8px;align-items:center;gap:4px;min-width:280px;padding:6px 8px;display:inline-flex;position:absolute;top:8px;right:8px;box-shadow:0 10px 25px #0f172a2e}.sv-grid-find-icon{width:14px;height:14px;color:var(--sg-muted,#94a3b8);flex:none;margin-left:2px}.sv-grid-find-input{min-width:0;color:inherit;background:0 0;border:0;outline:none;flex:1;padding:2px 6px;font-size:13px}.sv-grid-find-input::placeholder{color:var(--sg-muted,#94a3b8)}.sv-grid-find-count{color:var(--sg-muted,#64748b);font-variant-numeric:tabular-nums;white-space:nowrap;padding:0 4px;font-size:11px}.sv-grid-find-step,.sv-grid-find-close{width:22px;height:22px;color:var(--sg-muted,#64748b);cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;font-size:12px;display:inline-flex}.sv-grid-find-step:hover:not(:disabled),.sv-grid-find-close:hover{background:var(--sg-row-hover-bg,#94a3b81f);color:var(--sg-fg,#0f172a)}.sv-grid-find-step:disabled{opacity:.3;cursor:default}.sv-grid-pagination{border:1px solid var(--sg-border,#e2e8f0);border-radius:0 0 var(--sg-radius,6px) var(--sg-radius,6px);background:var(--sg-header-bg,#f1f5f9);color:var(--sg-fg,#0f172a);border-top:0;justify-content:flex-end;align-items:center;gap:24px;margin-top:0;padding:12px 16px;font-size:13px;display:flex}.sv-grid-pagination-top{border-top:1px solid var(--sg-border,#e2e8f0);border-radius:var(--sg-radius,6px) var(--sg-radius,6px) 0 0;border-bottom:0}.sv-grid-pagination-pagesize{color:var(--sg-muted,#64748b);align-items:center;gap:8px;display:inline-flex}.sv-grid-pagination-pagesize-dd{border:1px solid var(--sg-input-border,#cbd5e1);background:var(--sg-input-bg,#fff);border-radius:5px;min-width:62px;height:28px;position:relative}.sv-grid-pagination-pagesize-dd .sv-grid-dropdown,.sv-grid-pagination-pagesize-dd .sv-grid-dropdown-trigger{color:var(--sg-fg,#0f172a);background:0 0;border-radius:5px;font-size:13px}.sv-grid-pagination-pagesize-dd:focus-within{border-color:var(--sg-accent,#2563eb);box-shadow:0 0 0 2px color-mix(in srgb, var(--sg-accent,#2563eb) 30%, transparent)}.sv-grid-pagination-range{color:var(--sg-fg,#0f172a)}.sv-grid-pagination-nav{align-items:center;gap:4px;display:inline-flex}.sv-grid-pagination-btn{width:28px;height:28px;color:var(--sg-fg,#0f172a);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:5px;justify-content:center;align-items:center;padding:0;font-size:16px;transition:background-color .1s,color .1s;display:inline-flex}.sv-grid-pagination-btn:hover:not(:disabled){background:var(--sg-input-bg,#fff);color:var(--sg-accent,#2563eb)}.sv-grid-pagination-btn:disabled{color:var(--sg-muted,#64748b);opacity:.4;cursor:default}.sv-grid-pagination-label{color:var(--sg-fg,#0f172a);margin:0 8px}.sv-grid-no-scroll .sv-grid-scrollbar-corner,.sv-grid-no-scroll .sv-grid-scrollbar{display:none}.sv-grid-scrollbar-corner,.sv-grid-scrollbar-corner-br{border-bottom-color:var(--sg-border,#e2e8f0)}.sv-grid-menu-operator-select{border:1px solid var(--sg-input-border,#cbd5e1);background:var(--sg-input-bg,#fff);width:100%;height:28px;color:var(--sg-fg,#0f172a);font:inherit;cursor:pointer;appearance:none;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 12px) 12px,calc(100% - 8px) 12px;background-repeat:no-repeat;background-size:4px 4px,4px 4px;border-radius:5px;margin-bottom:6px;padding:0 22px 0 8px;font-size:13px}.sv-grid-menu-operator-select:focus{border-color:var(--sg-accent,#2563eb);box-shadow:0 0 0 2px color-mix(in srgb, var(--sg-accent,#2563eb) 40%, transparent);outline:none}.sv-grid-menu-operator-btn.is-active{color:var(--sg-on-accent,#fff)}.sv-grid-filter-menu{width:260px}.sv-grid-choose-columns-menu{width:240px}.sv-grid-facet input[type=checkbox]{accent-color:var(--sg-accent,#2563eb);cursor:pointer;width:14px;height:14px}.sv-grid-menu-item-chevron{opacity:.55;margin-left:auto;transform:rotate(-90deg)}.sv-grid-menu-item.is-open .sv-grid-menu-item-chevron{opacity:1}.sv-grid-menu-search{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='6'/%3E%3Cpath d='M20 20l-4.5-4.5'/%3E%3C/svg%3E\");background-position:8px;background-repeat:no-repeat;background-size:14px 14px;padding-left:28px}.sv-grid-menu-filter>*+*{margin-top:6px}.sv-grid-col-filter-btn.is-active{color:var(--sg-accent,#2563eb)}.sv-grid-row-number-column,.sv-grid-row-number-cell{border-right-color:var(--sg-header-bg,#f1f5f9)}.sv-grid-group-row>.sv-grid-cell{color:var(--sg-header-fg,#0f172a)}.sv-grid-filter-operator-btn{opacity:.85}.sv-grid-filter-operator-btn:hover{opacity:1;border-color:var(--sg-accent,#2563eb)}.sv-grid-filter-operator-btn.is-open{opacity:1}.sv-grid-board-search{border:1px solid var(--sg-border,#e4e7ec);border-radius:var(--sg-radius,8px);background:var(--sg-bg,#fff);color:color-mix(in srgb, var(--sg-fg,#101828) 55%, transparent);align-items:center;gap:6px;max-width:280px;margin-bottom:8px;padding:5px 9px;display:flex}.sv-grid-board-search:focus-within{border-color:var(--sg-accent,#3b82f6)}.sv-grid-board-search input{font:inherit;color:var(--sg-fg,#101828);background:0 0;border:0;outline:none;flex:auto;font-size:.82rem}.sv-grid-scheduler-upsell{text-align:left;border:1px dashed var(--sg-border,#e4e7ec);border-radius:var(--sg-radius,8px);background:color-mix(in srgb, var(--sg-fg,#1f2937) 5%, transparent);height:100%;color:color-mix(in srgb, var(--sg-fg,#101828) 70%, transparent);flex-direction:column;justify-content:center;align-items:flex-start;gap:6px;padding:24px;display:flex}.sv-grid-scheduler-upsell strong{font-size:.95rem}.sv-grid-scheduler-upsell p{max-width:42ch;margin:0;font-size:.85rem}.sv-grid-scheduler-upsell code{background:color-mix(in srgb, var(--sg-fg,#101828) 8%, transparent);border-radius:4px;padding:1px 4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82em}.sv-grid-chart-toggle svg{flex:none}.sv-grid-chart-panel{z-index:900;background:var(--sg-bg,#fff);color:var(--sg-fg,#0f172a);flex-direction:column;display:flex;position:absolute}.sv-grid-chart-panel.is-bottom{border-top:1px solid var(--sg-border,#e2e8f0);bottom:0;left:0;right:0;box-shadow:0 -8px 24px #0000001f}.sv-grid-chart-panel.is-right{border-left:1px solid var(--sg-border,#e2e8f0);top:0;bottom:0;right:0;box-shadow:-8px 0 24px #0000001f}.sv-grid-chart-panel.is-floating{border:1px solid var(--sg-border,#e2e8f0);border-radius:calc(var(--sg-radius,6px) + 2px);inset:auto;overflow:hidden;box-shadow:0 12px 40px #00000047}.sv-grid-chart-resizer{z-index:1;touch-action:none;background:0 0;position:absolute}.sv-grid-chart-panel.is-bottom>.sv-grid-chart-resizer{cursor:ns-resize;height:7px;top:-3px;left:0;right:0}.sv-grid-chart-panel.is-right>.sv-grid-chart-resizer{cursor:ew-resize;width:7px;top:0;bottom:0;left:-3px}.sv-grid-chart-resizer:hover,.sv-grid-chart-resizer.is-dragging{background:color-mix(in srgb, var(--sg-accent,#2563eb) 30%, transparent)}.sv-grid-chart-float-resizer{cursor:nwse-resize;touch-action:none;background:linear-gradient(135deg, transparent 50%, color-mix(in srgb, var(--sg-muted,#64748b) 55%, transparent) 50%);border-bottom-right-radius:calc(var(--sg-radius,6px) + 2px);width:16px;height:16px;position:absolute;bottom:0;right:0}.sv-grid-chart-panel-head{border-bottom:1px solid var(--sg-border,#e2e8f0);background:var(--sg-header-bg,#f8fafc);flex-direction:column;align-items:stretch;gap:8px;padding:8px 12px 10px;display:flex}.sv-grid-chart-drawer-title{align-items:center;gap:7px;display:flex}.sv-grid-chart-drawer-title.is-drag-handle{cursor:move;-webkit-user-select:none;user-select:none}.sv-grid-chart-title-icon{color:var(--sg-accent,#2563eb);flex:none}.sv-grid-chart-title{letter-spacing:.01em;color:var(--sg-fg,#0f172a);font-size:13px;font-weight:700}.sv-grid-chart-drawer-title .sv-grid-chart-actions{margin-left:auto}.sv-grid-chart-actions{align-items:center;gap:6px;display:inline-flex}.sv-grid-chart-controls{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.sv-grid-chart-controls:empty{display:none}.sv-grid-chart-ctl{color:var(--sg-muted,#64748b);flex-direction:column;gap:2px;font-size:11px;font-weight:600;display:flex}.sv-grid-chart-ctl select{font:inherit;color:var(--sg-fg,#0f172a);background:var(--sg-input-bg,var(--sg-bg,#fff));border:1px solid var(--sg-input-border,var(--sg-border,#e2e8f0));border-radius:var(--sg-radius,6px);padding:4px 8px;font-size:12.5px;font-weight:400}.sv-grid-chart-toggle{color:var(--sg-muted,#64748b);cursor:pointer;white-space:nowrap;align-items:center;gap:5px;font-size:12px;font-weight:600;display:inline-flex}.sv-grid-chart-btn{font:inherit;border:1px solid var(--sg-border,#e2e8f0);border-radius:var(--sg-radius,6px);background:var(--sg-bg,#fff);color:var(--sg-fg,#0f172a);cursor:pointer;padding:5px 10px;font-size:12px;font-weight:550}.sv-grid-chart-btn:hover:not(:disabled){border-color:var(--sg-accent,#2563eb);color:var(--sg-accent,#2563eb)}.sv-grid-chart-btn:disabled{opacity:.5;cursor:default}.sv-grid-chart-icon-btn{border-radius:var(--sg-radius,6px);width:24px;height:24px;color:var(--sg-muted,#64748b);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.sv-grid-chart-icon-btn:hover{border-color:var(--sg-border,#e2e8f0);color:var(--sg-accent,#2563eb);background:var(--sg-bg,#fff)}.sv-grid-chart-close{color:var(--sg-muted,#64748b);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:18px;line-height:1}.sv-grid-chart-close:hover{color:var(--sg-fg,#0f172a)}.sv-grid-chart-panel-body{flex:1;justify-content:center;align-items:stretch;min-height:0;padding:4px 10px 8px;display:flex;overflow:hidden}.sv-grid-chart-panel-body>.sv-grid-chart{justify-content:center;width:100%}.sv-grid-chart-empty{color:var(--sg-muted,#64748b);text-align:center;max-width:42ch;margin:0;font-size:13px}.sv-grid-chart-export{display:inline-flex;position:relative}.sv-grid-chart-export-menu{z-index:5;background:var(--sg-bg,#fff);border:1px solid var(--sg-border,#e2e8f0);border-radius:var(--sg-radius,6px);flex-direction:column;min-width:150px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 8px 24px #0000002e}.sv-grid-chart-export-menu button{font:inherit;text-align:left;border-radius:calc(var(--sg-radius,6px) - 2px);color:var(--sg-fg,#0f172a);cursor:pointer;white-space:nowrap;background:0 0;border:0;padding:6px 10px;font-size:12.5px}.sv-grid-chart-export-menu button:hover:not(:disabled){background:var(--sg-hover-bg,color-mix(in srgb, var(--sg-accent,#2563eb) 10%, transparent))}.sv-grid-chart-export-menu button:disabled{opacity:.45;cursor:default}.sv-grid-chart-ai-btn{align-items:center;gap:4px;display:inline-flex}.sv-grid-chart-ai-btn.is-active{border-color:var(--sg-accent,#2563eb);color:var(--sg-accent,#2563eb)}.sv-grid-chart-ai{flex-direction:column;gap:4px;display:flex}.sv-grid-chart-ai-row{align-items:center;gap:6px;display:flex}.sv-grid-chart-ai-input{min-width:0;font:inherit;color:var(--sg-fg,#0f172a);background:var(--sg-input-bg,var(--sg-bg,#fff));border:1px solid var(--sg-input-border,var(--sg-border,#e2e8f0));border-radius:var(--sg-radius,6px);flex:1;padding:5px 9px;font-size:12.5px}.sv-grid-chart-ai-input:focus{border-color:var(--sg-accent,#2563eb);outline:none}.sv-grid-chart-ai-msg{color:var(--sg-muted,#64748b);margin:0;font-size:12px}.sv-grid-chart-ai-msg.is-error{color:var(--sg-danger,#dc2626)}.sv-grid-chart-tabs{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.sv-grid-chart-tab{border:1px solid var(--sg-border,#e2e8f0);border-radius:var(--sg-radius,6px);background:var(--sg-bg,#fff);align-items:center;display:inline-flex;overflow:hidden}.sv-grid-chart-tab.is-active{border-color:var(--sg-accent,#2563eb);background:color-mix(in srgb, var(--sg-accent,#2563eb) 10%, transparent)}.sv-grid-chart-tab-label{font:inherit;color:var(--sg-fg,#0f172a);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;max-width:140px;padding:3px 8px;font-size:12px;font-weight:600;overflow:hidden}.sv-grid-chart-tab.is-active .sv-grid-chart-tab-label{color:var(--sg-accent,#2563eb)}.sv-grid-chart-tab-x{color:var(--sg-muted,#64748b);cursor:pointer;background:0 0;border:0;padding:0 6px 0 2px;font-size:14px;line-height:1}.sv-grid-chart-tab-x:hover{color:var(--sg-fg,#0f172a)}\n/*$vite$:1*/";document.head.appendChild(s)}catch(e){}})();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { S as ee, _ as te, b as ne, c as re, d as ie, f as e, g as t, h as n, i as r, l as i, m as a, n as o, o as s, p as c, r as l, s as u, t as d, u as f, v as p, w as m, x as h, y as g } from "./export-format-JT5pWVT8.js";
|
|
2
|
-
import { $ as _, $a as v, $i as y, $n as b, $r as x, $t as S, A as C, Aa as w, Ai as T, An as E, Ao as D, Ar as O, At as k, B as A, Ba as j, Bi as M, Bn as N, Br as P, Bt as F, C as I, Ca as L, Ci as R, Cn as z, Co as B, Cr as V, Ct as H, D as U, Da as W, Di as G, Dn as K, Do as q, Dr as J, Dt as Y, E as ae, Ea as oe, Ei as se, En as ce, Eo as le, Er as ue, Et as de, F as fe, Fa as pe, Fi as me, Fn as he, Fo as ge, Fr as _e, Ft as ve, G as ye, Ga as be, Gi as xe, Gn as Se, Gr as Ce, Gt as we, H as Te, Ha as Ee, Hi as De, Hn as Oe, Hr as ke, Ht as Ae, I as je, Ia as Me, Ii as Ne, In as Pe, Io as Fe, Ir as Ie, It as Le, J as Re, Ja as ze, Ji as Be, Jn as Ve, Jr as He, Jt as Ue, K as We, Ka as Ge, Ki as Ke, Kn as qe, Kr as Je, Kt as Ye, L as Xe, La as Ze, Li as Qe, Ln as $e, Lo as et, Lr as tt, Lt as nt, M as rt, Ma as it, Mi as at, Mn as ot, Mo as st, Mr as ct, Mt as lt, N as ut, Na as dt, Ni as ft, Nn as pt, No as mt, Nr as ht, Nt as gt, O as _t, Oa as vt, Oi as yt, On as bt, Oo as xt, Or as St, Ot as Ct, P as wt, Pa as Tt, Pi as Et, Pn as Dt, Po as Ot, Pr as kt, Pt as At, Q as jt, Qa as Mt, Qi as Nt, Qn as Pt, Qr as Ft, Qt as It, R as Lt, Ra as Rt, Ri as zt, Rn as Bt, Ro as Vt, Rr as Ht, Rt as Ut, S as Wt, Sa as Gt, Si as Kt, Sn as qt, So as Jt, Sr as Yt, St as Xt, T as Zt, Ta as Qt, Ti as $t, Tn as en, To as tn, Tr as nn, Tt as rn, U as an, Ua as on, Ui as sn, Un as cn, Ur as ln, Ut as un, V as dn, Va as fn, Vi as pn, Vn as mn, Vr as hn, Vt as gn, W as _n, Wa as vn, Wi as yn, Wn as bn, Wr as xn, Wt as Sn, X as Cn, Xa as wn, Xi as Tn, Xn as En, Xr as Dn, Xt as On, Y as kn, Ya as An, Yi as jn, Yn as Mn, Yr as Nn, Yt as Pn, Z as Fn, Za as In, Zi as Ln, Zn as Rn, Zr as zn, Zt as Bn, _ as Vn, _a as Hn, _i as Un, _n as Wn, _o as Gn, _r as Kn, _t as qn, a as Jn, aa as Yn, ai as Xn, an as Zn, ao as Qn, ar as $n, at as er, b as tr, ba as nr, bi as rr, bn as ir, bo as ar, br as or, bt as sr, c as cr, ca as lr, ci as ur, cn as dr, co as fr, cr as pr, ct as mr, d as hr, da as gr, di as _r, dn as vr, do as yr, dr as br, dt as xr, ea as Sr, ei as Cr, en as wr, eo as Tr, er as Er, et as Dr, f as Or, fa as kr, fi as Ar, fn as jr, fo as Mr, fr as Nr, ft as Pr, g as Fr, ga as Ir, gi as Lr, gn as Rr, go as zr, gr as Br, gt as Vr, h as Hr, ha as Ur, hi as Wr, hn as X, ho as Gr, hr as Kr, ht as qr, i as Jr, ia as Yr, ii as Xr, in as Zr, ir as Qr, it as $r, j as ei, ja as ti, ji as ni, jn as ri, jo as ii, jr as ai, jt as oi, k as si, ka as ci, ki as li, kn as ui, ko as di, kr as fi, kt as pi, l as mi, la as hi, li as gi, ln as _i, lo as vi, lr as yi, lt as bi, m as xi, ma as Si, mi as Ci, mn as wi, mo as Ti, mr as Ei, mt as Di, n as Oi, na as ki, ni as Ai, nn as ji, no as Mi, nr as Ni, nt as Pi, o as Fi, oa as Ii, oi as Li, on as Ri, oo as zi, or as Bi, ot as Vi, p as Hi, pa as Ui, pi as Wi, pn as Gi, po as Ki, pr as qi, pt as Ji, q as Yi, qa as Xi, qi as Zi, qn as Qi, qr as $i, qt as ea, r as ta, ra as na, ri as ra, rn as ia, ro as aa, rr as oa, rt as sa, s as ca, sa as la, si as ua, sn as da, so as fa, sr as pa, st as ma, t as ha, ta as ga, ti as _a, tn as va, to as ya, tr as ba, tt as xa, u as Sa, ua as Ca, ui as wa, un as Ta, uo as Ea, ur as Da, ut as Oa, v as ka, va as Aa, vi as ja, vn as Ma, vo as Na, vr as Pa, vt as Fa, w as Ia, wa as La, wi as Ra, wn as za, wo as Ba, wr as Va, wt as Ha, x as Ua, xa as Wa, xi as Ga, xn as Ka, xo as Z, xr as qa, xt as Ja, y as Ya, ya as Xa, yi as Za, yn as Qa, yo as $a, yr as eo, yt as to, z as no, za as ro, zi as io, zn as ao, zo as oo, zr as so, zt as co } from "./src-
|
|
2
|
+
import { $ as _, $a as v, $i as y, $n as b, $r as x, $t as S, A as C, Aa as w, Ai as T, An as E, Ao as D, Ar as O, At as k, B as A, Ba as j, Bi as M, Bn as N, Br as P, Bt as F, C as I, Ca as L, Ci as R, Cn as z, Co as B, Cr as V, Ct as H, D as U, Da as W, Di as G, Dn as K, Do as q, Dr as J, Dt as Y, E as ae, Ea as oe, Ei as se, En as ce, Eo as le, Er as ue, Et as de, F as fe, Fa as pe, Fi as me, Fn as he, Fo as ge, Fr as _e, Ft as ve, G as ye, Ga as be, Gi as xe, Gn as Se, Gr as Ce, Gt as we, H as Te, Ha as Ee, Hi as De, Hn as Oe, Hr as ke, Ht as Ae, I as je, Ia as Me, Ii as Ne, In as Pe, Io as Fe, Ir as Ie, It as Le, J as Re, Ja as ze, Ji as Be, Jn as Ve, Jr as He, Jt as Ue, K as We, Ka as Ge, Ki as Ke, Kn as qe, Kr as Je, Kt as Ye, L as Xe, La as Ze, Li as Qe, Ln as $e, Lo as et, Lr as tt, Lt as nt, M as rt, Ma as it, Mi as at, Mn as ot, Mo as st, Mr as ct, Mt as lt, N as ut, Na as dt, Ni as ft, Nn as pt, No as mt, Nr as ht, Nt as gt, O as _t, Oa as vt, Oi as yt, On as bt, Oo as xt, Or as St, Ot as Ct, P as wt, Pa as Tt, Pi as Et, Pn as Dt, Po as Ot, Pr as kt, Pt as At, Q as jt, Qa as Mt, Qi as Nt, Qn as Pt, Qr as Ft, Qt as It, R as Lt, Ra as Rt, Ri as zt, Rn as Bt, Ro as Vt, Rr as Ht, Rt as Ut, S as Wt, Sa as Gt, Si as Kt, Sn as qt, So as Jt, Sr as Yt, St as Xt, T as Zt, Ta as Qt, Ti as $t, Tn as en, To as tn, Tr as nn, Tt as rn, U as an, Ua as on, Ui as sn, Un as cn, Ur as ln, Ut as un, V as dn, Va as fn, Vi as pn, Vn as mn, Vr as hn, Vt as gn, W as _n, Wa as vn, Wi as yn, Wn as bn, Wr as xn, Wt as Sn, X as Cn, Xa as wn, Xi as Tn, Xn as En, Xr as Dn, Xt as On, Y as kn, Ya as An, Yi as jn, Yn as Mn, Yr as Nn, Yt as Pn, Z as Fn, Za as In, Zi as Ln, Zn as Rn, Zr as zn, Zt as Bn, _ as Vn, _a as Hn, _i as Un, _n as Wn, _o as Gn, _r as Kn, _t as qn, a as Jn, aa as Yn, ai as Xn, an as Zn, ao as Qn, ar as $n, at as er, b as tr, ba as nr, bi as rr, bn as ir, bo as ar, br as or, bt as sr, c as cr, ca as lr, ci as ur, cn as dr, co as fr, cr as pr, ct as mr, d as hr, da as gr, di as _r, dn as vr, do as yr, dr as br, dt as xr, ea as Sr, ei as Cr, en as wr, eo as Tr, er as Er, et as Dr, f as Or, fa as kr, fi as Ar, fn as jr, fo as Mr, fr as Nr, ft as Pr, g as Fr, ga as Ir, gi as Lr, gn as Rr, go as zr, gr as Br, gt as Vr, h as Hr, ha as Ur, hi as Wr, hn as X, ho as Gr, hr as Kr, ht as qr, i as Jr, ia as Yr, ii as Xr, in as Zr, ir as Qr, it as $r, j as ei, ja as ti, ji as ni, jn as ri, jo as ii, jr as ai, jt as oi, k as si, ka as ci, ki as li, kn as ui, ko as di, kr as fi, kt as pi, l as mi, la as hi, li as gi, ln as _i, lo as vi, lr as yi, lt as bi, m as xi, ma as Si, mi as Ci, mn as wi, mo as Ti, mr as Ei, mt as Di, n as Oi, na as ki, ni as Ai, nn as ji, no as Mi, nr as Ni, nt as Pi, o as Fi, oa as Ii, oi as Li, on as Ri, oo as zi, or as Bi, ot as Vi, p as Hi, pa as Ui, pi as Wi, pn as Gi, po as Ki, pr as qi, pt as Ji, q as Yi, qa as Xi, qi as Zi, qn as Qi, qr as $i, qt as ea, r as ta, ra as na, ri as ra, rn as ia, ro as aa, rr as oa, rt as sa, s as ca, sa as la, si as ua, sn as da, so as fa, sr as pa, st as ma, t as ha, ta as ga, ti as _a, tn as va, to as ya, tr as ba, tt as xa, u as Sa, ua as Ca, ui as wa, un as Ta, uo as Ea, ur as Da, ut as Oa, v as ka, va as Aa, vi as ja, vn as Ma, vo as Na, vr as Pa, vt as Fa, w as Ia, wa as La, wi as Ra, wn as za, wo as Ba, wr as Va, wt as Ha, x as Ua, xa as Wa, xi as Ga, xn as Ka, xo as Z, xr as qa, xt as Ja, y as Ya, ya as Xa, yi as Za, yn as Qa, yo as $a, yr as eo, yt as to, z as no, za as ro, zi as io, zn as ao, zo as oo, zr as so, zt as co } from "./src-ktbQVOk-.js";
|
|
3
3
|
import { A as lo, B as uo, C as fo, D as po, E as mo, F as ho, G as go, H as _o, I as vo, J as yo, K as bo, L as xo, M as So, N as Co, O as wo, P as To, R as Eo, S as Do, T as Oo, U as ko, V as Ao, W as jo, _ as Mo, a as No, b as Po, c as Fo, d as Io, f as Lo, g as Ro, h as zo, i as Bo, j as Vo, k as Ho, l as Uo, m as Wo, o as Go, p as Ko, q as qo, r as Jo, s as Yo, t as Xo, u as Zo, v as Qo, w as $o, x as es, y as ts, z as ns } from "./SvDateTimePicker-ClqtVIj3.js";
|
|
4
4
|
import { i as rs, n as is, r as as, t as os } from "./popover-P-9P2YYn.js";
|
|
5
5
|
import { t as ss } from "./SvGridDropdown-D0VdjeR8.js";
|
package/dist/chart.d.ts
CHANGED
|
@@ -34,6 +34,8 @@ export type SeriesOverlay = 'linear' | `sma:${number}` | `ema:${number}`;
|
|
|
34
34
|
/** A texture fill applied in addition to (and on top of) the series color.
|
|
35
35
|
* Helps colorblind readers distinguish series at a glance. */
|
|
36
36
|
export type SeriesPattern = 'solid' | 'stripe' | 'crosshatch' | 'dots' | 'diagonal';
|
|
37
|
+
/** Cycle used when `ChartSpec.patternFallback` is true and a series has no
|
|
38
|
+
* explicit `pattern` set. Skips `'solid'` so every series gets a texture. */
|
|
37
39
|
export type ChartSeries = {
|
|
38
40
|
label: string;
|
|
39
41
|
values: number[];
|
package/dist/chart.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
/** Cycle used when `ChartSpec.patternFallback` is true and a series has no
|
|
2
|
-
* explicit `pattern` set. Skips `'solid'` so every series gets a texture. */
|
|
3
|
-
const PATTERN_CYCLE = ['stripe', 'crosshatch', 'dots', 'diagonal'];
|
|
4
1
|
export const DEFAULT_PALETTE = [
|
|
5
2
|
'#2563eb',
|
|
6
3
|
'#16a34a',
|
|
@@ -1821,7 +1818,7 @@ export function rowsToChartSpec(rows, opts) {
|
|
|
1821
1818
|
// ---- Sort + top-N -----------------------------------------------------
|
|
1822
1819
|
const totals = categories.map((_, i) => entries.reduce((sum, e) => sum + (Number.isFinite(e.values[i]) ? e.values[i] : 0), 0));
|
|
1823
1820
|
const sort = opts.sort ?? (opts.topN ? 'value-desc' : 'none');
|
|
1824
|
-
|
|
1821
|
+
const order = categories.map((_, i) => i);
|
|
1825
1822
|
if (sort === 'value-desc')
|
|
1826
1823
|
order.sort((a, b) => totals[b] - totals[a]);
|
|
1827
1824
|
else if (sort === 'value-asc')
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { enabledIndices, wrapMove } from './list-nav';
|
|
2
2
|
import { createTypeaheadBuffer, isTypeaheadKey } from './list-option';
|
|
3
|
-
let uid = 0;
|
|
4
3
|
export function createMenu(config) {
|
|
5
4
|
const items = () => config.items();
|
|
6
5
|
const submenu = () => config.submenu?.() ?? false;
|
|
@@ -68,7 +68,7 @@ export declare function createPopoverSelect(config: PopoverSelectConfig): {
|
|
|
68
68
|
* exposes (mirrors `focusOwnerProps(role)`); defaults to 'listbox' for
|
|
69
69
|
* the classic select panels. */
|
|
70
70
|
triggerProps: (haspopup?: "listbox" | "tree" | "grid") => {
|
|
71
|
-
'aria-haspopup': "
|
|
71
|
+
'aria-haspopup': "grid" | "listbox" | "tree";
|
|
72
72
|
'aria-expanded': boolean;
|
|
73
73
|
'aria-controls': string | undefined;
|
|
74
74
|
'aria-readonly': true | undefined;
|
|
@@ -77,7 +77,7 @@ export declare function createPopoverSelect(config: PopoverSelectConfig): {
|
|
|
77
77
|
/** Attributes for the element that OWNS focus + activedescendant (the panel,
|
|
78
78
|
* or a search input). Pass the ARIA role the panel should expose. */
|
|
79
79
|
focusOwnerProps: (role?: "listbox" | "tree" | "grid") => {
|
|
80
|
-
role: "
|
|
80
|
+
role: "grid" | "listbox" | "tree";
|
|
81
81
|
'aria-activedescendant': string | undefined;
|
|
82
82
|
onkeydown: (e: KeyboardEvent) => void;
|
|
83
83
|
};
|
package/dist/editing.js
CHANGED
|
@@ -89,7 +89,7 @@ export function createEditing(ctx) {
|
|
|
89
89
|
editorType === "chips") {
|
|
90
90
|
return false;
|
|
91
91
|
}
|
|
92
|
-
if (editorType === "number" && !/[0-9
|
|
92
|
+
if (editorType === "number" && !/[0-9.+-]/.test(char))
|
|
93
93
|
return false;
|
|
94
94
|
ctx.editorSelectAll = false;
|
|
95
95
|
ctx.editingCell = {
|
package/dist/export-format.js
CHANGED
|
@@ -352,6 +352,9 @@ const XML_ESCAPE = {
|
|
|
352
352
|
};
|
|
353
353
|
function xmlText(value) {
|
|
354
354
|
const s = value == null ? '' : value instanceof Date ? value.toISOString() : String(value);
|
|
355
|
+
// Stripping control characters is the point: XML 1.0 forbids them outright,
|
|
356
|
+
// so a stray \x00 from a data source would produce an unopenable file.
|
|
357
|
+
// eslint-disable-next-line no-control-regex
|
|
355
358
|
return s.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F]/g, '').replace(/[&<>"']/g, (c) => XML_ESCAPE[c]);
|
|
356
359
|
}
|
|
357
360
|
/** Coerce a field name into a valid XML element name. */
|
package/dist/selection.js
CHANGED
|
@@ -119,7 +119,6 @@ export function createSelection(ctx) {
|
|
|
119
119
|
// the scrollbar never follows.
|
|
120
120
|
const cellEl = ctx.scrollContainer.querySelector(`td[data-svgrid-row="${rowIndex}"][data-svgrid-col="${colIndex}"]`);
|
|
121
121
|
if (cellEl) {
|
|
122
|
-
const headerHeight = ctx.theadEl?.offsetHeight ?? 0;
|
|
123
122
|
const containerRect = ctx.scrollContainer.getBoundingClientRect();
|
|
124
123
|
const cellRect = cellEl.getBoundingClientRect();
|
|
125
124
|
const cellTopInView = cellRect.top - containerRect.top;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@svgrid/grid",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.33",
|
|
4
4
|
"description": "Svelte 5-native data grid and data table. Headless-first engine with virtual scrolling for 100k+ rows, Excel-style filtering, inline editing, grouping, tree data, pivot, and server-side data. Drop-in <SvGrid> component. TypeScript, SSR-ready.",
|
|
5
5
|
"author": "jQWidgets <boikom@jqwidgets.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -104,7 +104,8 @@
|
|
|
104
104
|
"test:types": "svelte-check --tsconfig ./tsconfig.json",
|
|
105
105
|
"test:lib": "vitest run --coverage",
|
|
106
106
|
"test:build": "publint --strict",
|
|
107
|
-
"build": "svelte-package --input ./src --output ./dist && node ../../tools/strip-dist-tests.mjs ./dist && node ./scripts/build-cdn.mjs && node ./scripts/build-themes.mjs"
|
|
107
|
+
"build": "svelte-package --input ./src --output ./dist && node ../../tools/strip-dist-tests.mjs ./dist && node ./scripts/build-cdn.mjs && node ./scripts/build-themes.mjs",
|
|
108
|
+
"lint": "eslint ./src"
|
|
108
109
|
},
|
|
109
110
|
"devDependencies": {
|
|
110
111
|
"@sveltejs/package": "^2.5.7",
|
package/src/DockNodeView.svelte
CHANGED
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
|
|
43
43
|
const onMove = (ev: PointerEvent) => {
|
|
44
44
|
const delta = ((vertical ? ev.clientY : ev.clientX) - startPos) / total
|
|
45
|
-
|
|
45
|
+
const fa = Math.min(Math.max(startSizes[a]! + delta, minA), pairTotal - minB)
|
|
46
46
|
const next = startSizes.slice()
|
|
47
47
|
next[a] = fa
|
|
48
48
|
next[b] = pairTotal - fa
|
package/src/GridFooter.svelte
CHANGED
|
@@ -1,50 +1,13 @@
|
|
|
1
1
|
<script lang="ts" generics="TFeatures extends TableFeatures = TableFeatures, TData extends RowData = RowData">
|
|
2
2
|
import {
|
|
3
|
-
getGridCellA11yProps,
|
|
4
|
-
getGridCellDomId,
|
|
5
|
-
getGridHeaderA11yProps,
|
|
6
|
-
getGridRootA11yProps,
|
|
7
|
-
getGridRowA11yProps,
|
|
8
|
-
type EditorContext,
|
|
9
|
-
type CellEditorOption,
|
|
10
|
-
type Column,
|
|
11
|
-
type Row,
|
|
12
3
|
type RowData,
|
|
13
4
|
type TableFeatures,
|
|
14
5
|
} from "./index";
|
|
15
6
|
import "./sv-grid-scrollbar";
|
|
16
|
-
import type { Snippet } from "svelte";
|
|
17
|
-
import {
|
|
18
|
-
RenderSnippetConfig,
|
|
19
|
-
RenderComponentConfig,
|
|
20
|
-
} from "./render-component";
|
|
21
|
-
import {
|
|
22
|
-
buildSparkline,
|
|
23
|
-
toSparklineValues,
|
|
24
|
-
} from "./sparkline";
|
|
25
7
|
import SvGridDropdown from "./SvGridDropdown.svelte";
|
|
26
|
-
import type {
|
|
27
|
-
Props,
|
|
28
|
-
SelectionPoint,
|
|
29
|
-
SelectionRange,
|
|
30
|
-
CellEditState,
|
|
31
|
-
FilterOperator,
|
|
32
|
-
FilterOption,
|
|
33
|
-
MenuPosition,
|
|
34
|
-
} from "./SvGrid.types";
|
|
35
8
|
import {
|
|
36
|
-
cfTextStyle,
|
|
37
9
|
fmtStat,
|
|
38
|
-
getEditableInputValue,
|
|
39
|
-
getEditorInputType,
|
|
40
|
-
toValueArray,
|
|
41
|
-
getOptionLabel,
|
|
42
|
-
getOptionColor,
|
|
43
|
-
colorfulChipStyle,
|
|
44
|
-
getEditorClass,
|
|
45
10
|
} from "./SvGrid.helpers";
|
|
46
|
-
import {
|
|
47
|
-
} from "./SvGrid.controller.svelte";
|
|
48
11
|
import type { SvGridController } from "./SvGrid.controller.svelte";
|
|
49
12
|
|
|
50
13
|
let {
|
|
@@ -68,9 +31,6 @@
|
|
|
68
31
|
// View facade: re-bind the controller's reactive members so the markup
|
|
69
32
|
// (moved verbatim from SvGrid.svelte) stays identical.
|
|
70
33
|
const paginationEnabled = $derived(ctrl.paginationEnabled);
|
|
71
|
-
const grid = $derived(ctrl.grid);
|
|
72
|
-
const paginationState = $derived(ctrl.paginationState);
|
|
73
|
-
const allRowsBeforePagination = $derived(ctrl.allRowsBeforePagination);
|
|
74
34
|
const statusBarEnabled = $derived(ctrl.statusBarEnabled);
|
|
75
35
|
const statusBarAggregates = $derived(ctrl.statusBarAggregates);
|
|
76
36
|
const statusBarStats = $derived(ctrl.statusBarStats);
|
package/src/GridMenus.svelte
CHANGED
|
@@ -1,97 +1,21 @@
|
|
|
1
1
|
<script lang="ts" generics="TFeatures extends TableFeatures = TableFeatures, TData extends RowData = RowData">
|
|
2
2
|
import {
|
|
3
|
-
applyExcelFilter,
|
|
4
|
-
normalizeForFilter,
|
|
5
3
|
splitInTokens,
|
|
6
4
|
trailingInToken,
|
|
7
|
-
createColumnVirtualizer,
|
|
8
|
-
createCoreRowModel,
|
|
9
|
-
createExpandedRowModel,
|
|
10
|
-
createFilteredRowModel,
|
|
11
|
-
createGroupedRowModel,
|
|
12
|
-
createPaginatedRowModel,
|
|
13
|
-
createSvelteVirtualizer,
|
|
14
|
-
createSortedRowModel,
|
|
15
|
-
createSvGrid,
|
|
16
|
-
filterFns,
|
|
17
|
-
getGridCellA11yProps,
|
|
18
|
-
getGridCellDomId,
|
|
19
|
-
getGridHeaderA11yProps,
|
|
20
|
-
getGridRootA11yProps,
|
|
21
|
-
getGridRowA11yProps,
|
|
22
|
-
parseEditorValue,
|
|
23
|
-
normalizeEditorOptions,
|
|
24
|
-
sortFns,
|
|
25
|
-
tableFeatures,
|
|
26
|
-
rowSortingFeature,
|
|
27
|
-
columnFilteringFeature,
|
|
28
|
-
columnGroupingFeature,
|
|
29
|
-
type CellContext,
|
|
30
|
-
type EditorContext,
|
|
31
|
-
type CellEditorOption,
|
|
32
5
|
type CellEditorType,
|
|
33
|
-
type CellFormatter,
|
|
34
|
-
type CellFormatConfig,
|
|
35
6
|
type Column,
|
|
36
|
-
type ColumnDef,
|
|
37
|
-
type Row,
|
|
38
7
|
type RowData,
|
|
39
|
-
type SvGridApi,
|
|
40
8
|
type TableFeatures,
|
|
41
9
|
} from "./index";
|
|
42
10
|
import "./sv-grid-scrollbar";
|
|
43
11
|
import { onScrollOutside } from "./a11y/dismissable";
|
|
44
12
|
import type { Snippet } from "svelte";
|
|
45
|
-
import { getKeyboardIntent, getNextActiveCell } from "./keyboard";
|
|
46
|
-
import {
|
|
47
|
-
formatNumericWithConfig,
|
|
48
|
-
getDateFormatter,
|
|
49
|
-
resolveDatePattern,
|
|
50
|
-
} from "./cell-formatting";
|
|
51
|
-
import {
|
|
52
|
-
RenderSnippetConfig,
|
|
53
|
-
RenderComponentConfig,
|
|
54
|
-
} from "./render-component";
|
|
55
|
-
import { buildFillPattern } from "./fill-patterns";
|
|
56
|
-
import { buildSparkline, toSparklineValues } from "./sparkline";
|
|
57
|
-
import {
|
|
58
|
-
resolveCellFormat,
|
|
59
|
-
computeColumnStat,
|
|
60
|
-
formatsNeedingStats,
|
|
61
|
-
type ColumnStat,
|
|
62
|
-
type ResolvedCellFormat,
|
|
63
|
-
} from "./conditional-formatting";
|
|
64
|
-
import SvGridDropdown from "./SvGridDropdown.svelte";
|
|
65
13
|
import SvListBox from "./SvListBox.svelte";
|
|
66
14
|
import type {
|
|
67
|
-
Props,
|
|
68
|
-
SelectionPoint,
|
|
69
|
-
SelectionRange,
|
|
70
|
-
CellEditState,
|
|
71
15
|
FilterOperator,
|
|
72
|
-
FilterOption,
|
|
73
|
-
MenuPosition,
|
|
74
16
|
} from "./SvGrid.types";
|
|
75
17
|
import {
|
|
76
|
-
cfTextStyle,
|
|
77
|
-
fmtStat,
|
|
78
|
-
getCellKey,
|
|
79
|
-
resolveClassList,
|
|
80
|
-
toDateInputValue,
|
|
81
|
-
toDateTimeLocalInputValue,
|
|
82
|
-
getEditableInputValue,
|
|
83
18
|
getEditorInputType,
|
|
84
|
-
toValueArray,
|
|
85
|
-
getOptionLabel,
|
|
86
|
-
getOptionColor,
|
|
87
|
-
colorfulChipStyle,
|
|
88
|
-
getEditorClass,
|
|
89
|
-
asDate,
|
|
90
|
-
clampMenuX,
|
|
91
|
-
cssEscape,
|
|
92
|
-
rawToNumber,
|
|
93
|
-
formatFacetNumber,
|
|
94
|
-
formatFacetDate,
|
|
95
19
|
} from "./SvGrid.helpers";
|
|
96
20
|
|
|
97
21
|
import type { SvGridController } from "./SvGrid.controller.svelte";
|
|
@@ -103,7 +27,6 @@
|
|
|
103
27
|
const groupingControlsEnabled = $derived(ctrl.groupingControlsEnabled);
|
|
104
28
|
const filterMenuValues = $derived(ctrl.filterMenuValues);
|
|
105
29
|
const tooltip = $derived(ctrl.tooltip);
|
|
106
|
-
const showTooltipFor = $derived(ctrl.showTooltipFor);
|
|
107
30
|
const columnMenuFor = $derived(ctrl.columnMenuFor);
|
|
108
31
|
const columnMenuPos = $derived(ctrl.columnMenuPos);
|
|
109
32
|
const filterMenuFor = $derived(ctrl.filterMenuFor);
|
package/src/SvCalendar.test.ts
CHANGED
|
@@ -86,7 +86,7 @@ describe('SvCalendar selection', () => {
|
|
|
86
86
|
|
|
87
87
|
it('range mode: two clicks emit the inclusive span', () => {
|
|
88
88
|
let got: Date[] = []
|
|
89
|
-
const {
|
|
89
|
+
const { destroy } = mountCal({
|
|
90
90
|
value: null,
|
|
91
91
|
selectionMode: 'range',
|
|
92
92
|
displayMode: 'month',
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
import { anchoredRect, portalToBody, popIn, type AnchoredRect } from './popover'
|
|
21
21
|
import { editorAria, nextEditorId, resolveMessages, type SvEditorProps } from './editor-contract'
|
|
22
22
|
import { formatDate } from './datetime/date-format'
|
|
23
|
-
import {
|
|
23
|
+
import { startOfDay, type DateLike } from './datetime/date-core'
|
|
24
24
|
import { rangeDays } from './datetime/date-selection'
|
|
25
25
|
import type { CalendarPreset } from './createCalendar.svelte'
|
|
26
26
|
|
|
@@ -13,10 +13,6 @@ import {
|
|
|
13
13
|
createSvGrid,
|
|
14
14
|
getGridCellDomId,
|
|
15
15
|
sortFns,
|
|
16
|
-
tableFeatures,
|
|
17
|
-
rowSortingFeature,
|
|
18
|
-
columnFilteringFeature,
|
|
19
|
-
columnGroupingFeature,
|
|
20
16
|
type CellEditorOption,
|
|
21
17
|
type Column,
|
|
22
18
|
type ColumnDef,
|
|
@@ -38,7 +34,6 @@ import {
|
|
|
38
34
|
formatNeedsStats,
|
|
39
35
|
type ColumnStat,
|
|
40
36
|
} from "./conditional-formatting";
|
|
41
|
-
import SvGridDropdown from "./SvGridDropdown.svelte";
|
|
42
37
|
import type {
|
|
43
38
|
Props,
|
|
44
39
|
SelectionRange,
|
package/src/SvGrid.svelte
CHANGED
|
@@ -17,7 +17,6 @@
|
|
|
17
17
|
} from "./index";
|
|
18
18
|
import "./sv-grid-scrollbar";
|
|
19
19
|
import "./SvGrid.css";
|
|
20
|
-
import type { Snippet } from "svelte";
|
|
21
20
|
import {
|
|
22
21
|
RenderSnippetConfig,
|
|
23
22
|
RenderComponentConfig,
|
|
@@ -36,16 +35,10 @@
|
|
|
36
35
|
import { timeStringToDate, dateToTimeString } from "./SvGrid.helpers";
|
|
37
36
|
import type {
|
|
38
37
|
Props,
|
|
39
|
-
SelectionPoint,
|
|
40
|
-
SelectionRange,
|
|
41
|
-
CellEditState,
|
|
42
38
|
FilterOperator,
|
|
43
|
-
FilterOption,
|
|
44
|
-
MenuPosition,
|
|
45
39
|
} from "./SvGrid.types";
|
|
46
40
|
import {
|
|
47
41
|
cfTextStyle,
|
|
48
|
-
fmtStat,
|
|
49
42
|
getEditableInputValue,
|
|
50
43
|
getEditorInputType,
|
|
51
44
|
toValueArray,
|
|
@@ -57,7 +50,6 @@
|
|
|
57
50
|
import {
|
|
58
51
|
splitInTokens,
|
|
59
52
|
trailingInToken,
|
|
60
|
-
joinInTokens,
|
|
61
53
|
} from "./filtering/excel-filters";
|
|
62
54
|
import { createSvGridController } from "./SvGrid.controller.svelte";
|
|
63
55
|
// GridMenus hosts tooltips + all column/filter/context menu overlays - none of
|
|
@@ -180,10 +172,8 @@
|
|
|
180
172
|
|
|
181
173
|
// ---- View facade: re-bind the controller's reactive members as locals so the
|
|
182
174
|
// markup stays identical. Assignable state + bindings + DOM refs use c.* directly.
|
|
183
|
-
const paginationEnabled = $derived(ctrl.paginationEnabled);
|
|
184
175
|
const filterRowValues = $derived(ctrl.filterRowValues);
|
|
185
176
|
const filterMenuValues = $derived(ctrl.filterMenuValues);
|
|
186
|
-
const tooltip = $derived(ctrl.tooltip);
|
|
187
177
|
const showTooltipFor = $derived(ctrl.showTooltipFor);
|
|
188
178
|
const hideTooltip = $derived(ctrl.hideTooltip);
|
|
189
179
|
const findHits = $derived(ctrl.findHits);
|
|
@@ -284,19 +274,13 @@
|
|
|
284
274
|
id === "__autoGroup" || id.startsWith("__group_");
|
|
285
275
|
const sortDirectionByColumn = $derived(ctrl.sortDirectionByColumn);
|
|
286
276
|
const groupingColumns = $derived(ctrl.groupingColumns);
|
|
287
|
-
const paginationState = $derived(ctrl.paginationState);
|
|
288
|
-
const allRowsBeforePagination = $derived(ctrl.allRowsBeforePagination);
|
|
289
277
|
const allRows = $derived(ctrl.allRows);
|
|
290
|
-
const statusBarEnabled = $derived(ctrl.statusBarEnabled);
|
|
291
|
-
const statusBarAggregates = $derived(ctrl.statusBarAggregates);
|
|
292
|
-
const statusBarStats = $derived(ctrl.statusBarStats);
|
|
293
278
|
const toolPanelEnabled = $derived(ctrl.toolPanelEnabled);
|
|
294
279
|
const toolPanelColumns = $derived(ctrl.toolPanelColumns);
|
|
295
280
|
const toolPanelHeaderLabel = $derived(ctrl.toolPanelHeaderLabel);
|
|
296
281
|
const toggleColumnVisibleInPanel = $derived(ctrl.toggleColumnVisibleInPanel);
|
|
297
282
|
const moveColumnInPanel = $derived(ctrl.moveColumnInPanel);
|
|
298
283
|
const toggleGroupInPanel = $derived(ctrl.toggleGroupInPanel);
|
|
299
|
-
const virtualizer = $derived(ctrl.virtualizer);
|
|
300
284
|
const rowVirtualizationEnabled = $derived(ctrl.rowVirtualizationEnabled);
|
|
301
285
|
// The fixed row height, matching what the virtualized path takes from the virtualizer.
|
|
302
286
|
// The non-virtualized (`virtualization={false}`) body must apply this too, else its rows
|
|
@@ -525,9 +509,6 @@
|
|
|
525
509
|
const onHeaderSortClick = $derived(ctrl.onHeaderSortClick);
|
|
526
510
|
const onGridKeyDown = $derived(ctrl.onGridKeyDown);
|
|
527
511
|
const onGridPaste = $derived(ctrl.onGridPaste);
|
|
528
|
-
const changePage = $derived(ctrl.changePage);
|
|
529
|
-
const goToPage = $derived(ctrl.goToPage);
|
|
530
|
-
const setPageSize = $derived(ctrl.setPageSize);
|
|
531
512
|
const updateFilterRow = $derived(ctrl.updateFilterRow);
|
|
532
513
|
const updateFilterMenuValue = $derived(ctrl.updateFilterMenuValue);
|
|
533
514
|
const updateFilterMenuValueTo = $derived(ctrl.updateFilterMenuValueTo);
|
|
@@ -1291,7 +1272,7 @@
|
|
|
1291
1272
|
aria-label="Edit checkbox value"
|
|
1292
1273
|
onclick={(event) => {
|
|
1293
1274
|
event.stopPropagation();
|
|
1294
|
-
const nextValue = !
|
|
1275
|
+
const nextValue = !ctrl.editingCell?.value;
|
|
1295
1276
|
ctrl.editingCell = ctrl.editingCell
|
|
1296
1277
|
? { ...ctrl.editingCell, value: nextValue }
|
|
1297
1278
|
: ctrl.editingCell;
|
|
@@ -1300,7 +1281,7 @@
|
|
|
1300
1281
|
onkeydown={(event) =>
|
|
1301
1282
|
toggleCheckboxWithKeyboard(event, () => {
|
|
1302
1283
|
event.stopPropagation();
|
|
1303
|
-
const nextValue = !
|
|
1284
|
+
const nextValue = !ctrl.editingCell?.value;
|
|
1304
1285
|
ctrl.editingCell = ctrl.editingCell
|
|
1305
1286
|
? { ...ctrl.editingCell, value: nextValue }
|
|
1306
1287
|
: ctrl.editingCell;
|
|
@@ -2690,10 +2671,6 @@
|
|
|
2690
2671
|
row,
|
|
2691
2672
|
rendered.column,
|
|
2692
2673
|
)}
|
|
2693
|
-
{@const cellTooltip = computeCellTooltip(
|
|
2694
|
-
row,
|
|
2695
|
-
rendered.column,
|
|
2696
|
-
)}
|
|
2697
2674
|
{@const cellValidity = computeCellValidity(
|
|
2698
2675
|
row,
|
|
2699
2676
|
rendered.column,
|
package/src/SvGrid.types.ts
CHANGED
|
@@ -13,7 +13,6 @@ import type { GroupDisplayType } from "./group-display";
|
|
|
13
13
|
import type { GridMessages } from "./grid-messages";
|
|
14
14
|
import type { GridPivotConfig } from "./pivot-view.svelte";
|
|
15
15
|
import type { MenuItem } from "./SvMenuList.svelte";
|
|
16
|
-
import type { RecurrenceRule } from "./recurrence";
|
|
17
16
|
|
|
18
17
|
/** The calendar views the scheduler can render. {@link SchedulerConfig}. The
|
|
19
18
|
* `timeline*` views are horizontal: time runs left→right and resources are
|