@affino/datagrid-vue-app 0.1.13 → 0.1.15
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/README.md +86 -0
- package/dist/DataGrid.d.ts +45 -14
- package/dist/advanced-filter.js +1 -1
- package/dist/chunks/{DataGridAdvancedFilterPopover-Bak_CkaO.js → DataGridAdvancedFilterPopover-CabJ-Ztk.js} +1 -1
- package/dist/chunks/{DataGridAdvancedFilterPopover.vue_vue_type_script_setup_true_lang-DixN56Qv.js → DataGridAdvancedFilterPopover.vue_vue_type_script_setup_true_lang-x-cfVm5j.js} +92 -72
- package/dist/chunks/{DataGridGanttStage.vue_vue_type_script_setup_true_lang-BY-MSNPc.js → DataGridGanttStage.vue_vue_type_script_setup_true_lang-DPozU5Z5.js} +1 -1
- package/dist/chunks/{DataGridGanttStageEntry-DgXw3IJw.js → DataGridGanttStageEntry-BnzXZ_y8.js} +1 -1
- package/dist/chunks/{DataGridTableStage.vue_vue_type_script_setup_true_lang-Cec3mpHC.js → DataGridTableStage.vue_vue_type_script_setup_true_lang-C9CKLdfN.js} +22 -0
- package/dist/chunks/useDataGridAppRowModel-Bxzexir6.js +2877 -0
- package/dist/gantt.js +1 -1
- package/dist/host/DataGridDefaultRenderer.d.ts +9 -0
- package/dist/host/DataGridRuntimeHost.d.ts +18 -4
- package/dist/index.d.ts +1 -0
- package/dist/index.js +324 -306
- package/dist/internal.js +4 -4
- package/dist/overlays/DataGridAdvancedFilterPopover.vue.d.ts +4 -0
- package/dist/stage/useDataGridTableStageRowSelection.d.ts +4 -2
- package/dist/stage/useDataGridTableStageRuntime.d.ts +1 -0
- package/package.json +3 -3
- package/dist/chunks/useDataGridAppRowModel-DJYtqvD0.js +0 -2854
package/README.md
CHANGED
|
@@ -268,6 +268,85 @@ Recommended usage:
|
|
|
268
268
|
- enable them together for spreadsheet-heavy editing surfaces
|
|
269
269
|
- keep them off for read-only, reporting, and embedded summary tables unless the interaction model is explicitly spreadsheet-like
|
|
270
270
|
|
|
271
|
+
## Custom Toolbar Modules
|
|
272
|
+
|
|
273
|
+
`DataGrid` exposes a public `toolbar-modules` prop for additive toolbar actions.
|
|
274
|
+
Use it when you want to keep the built-in app renderer and append custom buttons, popovers, or small workflow panels to the same toolbar row.
|
|
275
|
+
|
|
276
|
+
- built-in modules such as column layout, advanced filter, and aggregations still render first
|
|
277
|
+
- custom modules are appended after the built-in modules in declaration order
|
|
278
|
+
- each module provides a stable `key`, a Vue `component`, and optional props passed into that component
|
|
279
|
+
|
|
280
|
+
Type shape:
|
|
281
|
+
|
|
282
|
+
```ts
|
|
283
|
+
interface DataGridAppToolbarModule {
|
|
284
|
+
key: string
|
|
285
|
+
component: Component
|
|
286
|
+
props?: Record<string, unknown>
|
|
287
|
+
}
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
Practical guidance:
|
|
291
|
+
|
|
292
|
+
- use a stable `key` per module instance
|
|
293
|
+
- keep the rendered trigger on the shared toolbar button class when you want built-in styling: `datagrid-app-toolbar__button`
|
|
294
|
+
- add your own `data-datagrid-toolbar-action` when you want deterministic selectors for tests or analytics
|
|
295
|
+
|
|
296
|
+
```vue
|
|
297
|
+
<script setup lang="ts">
|
|
298
|
+
import { DataGrid, type DataGridAppToolbarModule } from "@affino/datagrid-vue-app"
|
|
299
|
+
import { defineComponent, h } from "vue"
|
|
300
|
+
|
|
301
|
+
const ExportButton = defineComponent({
|
|
302
|
+
name: "ExportButton",
|
|
303
|
+
props: {
|
|
304
|
+
label: {
|
|
305
|
+
type: String,
|
|
306
|
+
required: true,
|
|
307
|
+
},
|
|
308
|
+
onTrigger: {
|
|
309
|
+
type: Function,
|
|
310
|
+
required: true,
|
|
311
|
+
},
|
|
312
|
+
},
|
|
313
|
+
setup(props) {
|
|
314
|
+
return () => h("button", {
|
|
315
|
+
type: "button",
|
|
316
|
+
class: "datagrid-app-toolbar__button",
|
|
317
|
+
onClick: () => props.onTrigger(),
|
|
318
|
+
}, props.label)
|
|
319
|
+
},
|
|
320
|
+
})
|
|
321
|
+
|
|
322
|
+
const toolbarModules: readonly DataGridAppToolbarModule[] = [
|
|
323
|
+
{
|
|
324
|
+
key: "export",
|
|
325
|
+
component: ExportButton,
|
|
326
|
+
props: {
|
|
327
|
+
label: "Export",
|
|
328
|
+
onTrigger: () => {
|
|
329
|
+
console.log("export current view")
|
|
330
|
+
},
|
|
331
|
+
},
|
|
332
|
+
},
|
|
333
|
+
]
|
|
334
|
+
</script>
|
|
335
|
+
|
|
336
|
+
<template>
|
|
337
|
+
<DataGrid
|
|
338
|
+
:rows="rows"
|
|
339
|
+
:columns="columns"
|
|
340
|
+
:toolbar-modules="toolbarModules"
|
|
341
|
+
column-layout
|
|
342
|
+
advanced-filter
|
|
343
|
+
/>
|
|
344
|
+
</template>
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
Prefer `toolbar-modules` over replacing the whole default slot when the only goal is to extend the built-in toolbar.
|
|
348
|
+
Use the default slot only when you need to take over the entire runtime renderer contract.
|
|
349
|
+
|
|
271
350
|
## Declarative Column Menu
|
|
272
351
|
|
|
273
352
|
Enable the built-in header menu with one prop:
|
|
@@ -1106,6 +1185,8 @@ The component emits:
|
|
|
1106
1185
|
|
|
1107
1186
|
- `cell-change`
|
|
1108
1187
|
- `selection-change`
|
|
1188
|
+
- `row-selection-change`
|
|
1189
|
+
- `row-select` (legacy alias; prefer `row-selection-change` for typed row-selection snapshots)
|
|
1109
1190
|
- `update:column-state`
|
|
1110
1191
|
- `update:column-order`
|
|
1111
1192
|
- `update:hidden-column-keys`
|
|
@@ -1114,6 +1195,11 @@ The component emits:
|
|
|
1114
1195
|
- `update:state`
|
|
1115
1196
|
- `ready`
|
|
1116
1197
|
|
|
1198
|
+
## Advanced Filter UX
|
|
1199
|
+
|
|
1200
|
+
- When at least one filter is active, the `Advanced filter` toolbar button shows an active filter icon and active button styling.
|
|
1201
|
+
- Removing the only advanced-filter clause does not lock the UI; the builder keeps one empty clause row so the user can clear and rebuild the expression in place.
|
|
1202
|
+
|
|
1117
1203
|
## Ref API
|
|
1118
1204
|
|
|
1119
1205
|
### Runtime access
|
package/dist/DataGrid.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type PropType, type VNode } from "vue";
|
|
2
|
-
import { type CreateDataGridCoreOptions, type DataGridApiPluginDefinition, type DataGridAggregationModel, type DataGridColumnPin, type DataGridComputedFieldDefinition, type DataGridCoreServiceRegistry, type DataGridFilterSnapshot, type DataGridFormulaFieldDefinition, type DataGridFormulaFunctionRegistry, type DataGridRowModel, type DataGridSetStateOptions, type DataGridSortState, type DataGridUnifiedColumnState, type DataGridUnifiedState, type DataGridPivotSpec } from "@affino/datagrid-vue";
|
|
2
|
+
import { type CreateDataGridCoreOptions, type DataGridApi, type DataGridApiRowSelectionChangedEvent, type DataGridApiSelectionChangedEvent, type DataGridApiPluginDefinition, type DataGridAggregationModel, type DataGridColumnPin, type DataGridComputedFieldDefinition, type DataGridCoreServiceRegistry, type DataGridFilterSnapshot, type DataGridFormulaFieldDefinition, type DataGridFormulaFunctionRegistry, type DataGridGroupBySpec, type DataGridRowSelectionSnapshot, type DataGridRowModel, type DataGridSetStateOptions, type DataGridSortState, type DataGridUnifiedColumnState, type DataGridUnifiedState, type DataGridPivotSpec } from "@affino/datagrid-vue";
|
|
3
|
+
import type { DataGridAppToolbarModule } from "./host/DataGridModuleHost";
|
|
3
4
|
import { type DataGridAppClientRowModelOptions, type DataGridAppColumnInput } from "./config/dataGridFormulaOptions";
|
|
4
5
|
import { type DataGridThemeProp } from "./theme/dataGridTheme";
|
|
5
6
|
import { type DataGridGroupByProp, type DataGridPaginationProp } from "./config/dataGridPublicProps";
|
|
@@ -212,7 +213,28 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
212
213
|
type: PropType<DataGridGanttProp | undefined>;
|
|
213
214
|
default: undefined;
|
|
214
215
|
};
|
|
215
|
-
|
|
216
|
+
toolbarModules: {
|
|
217
|
+
type: PropType<readonly DataGridAppToolbarModule[]>;
|
|
218
|
+
default: () => never[];
|
|
219
|
+
};
|
|
220
|
+
}, () => VNode, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
221
|
+
"cell-change": (_payload: unknown) => true;
|
|
222
|
+
"selection-change": (_payload: DataGridApiSelectionChangedEvent) => true;
|
|
223
|
+
"row-selection-change": (_payload: DataGridApiRowSelectionChangedEvent) => true;
|
|
224
|
+
"row-select": (_payload: DataGridRowSelectionSnapshot | null) => true;
|
|
225
|
+
"update:columnState": (_payload: DataGridUnifiedColumnState | null) => true;
|
|
226
|
+
"update:columnOrder": (_payload: readonly string[] | null) => true;
|
|
227
|
+
"update:hiddenColumnKeys": (_payload: readonly string[] | null) => true;
|
|
228
|
+
"update:columnWidths": (_payload: Readonly<Record<string, number | null>> | null) => true;
|
|
229
|
+
"update:columnPins": (_payload: Readonly<Record<string, DataGridColumnPin>> | null) => true;
|
|
230
|
+
"update:groupBy": (_payload: DataGridGroupBySpec | null) => true;
|
|
231
|
+
"update:viewMode": (_payload: DataGridAppViewMode) => true;
|
|
232
|
+
"update:state": (_payload: DataGridUnifiedState<Record<string, unknown>> | null) => true;
|
|
233
|
+
ready: (_payload: {
|
|
234
|
+
api: DataGridApi<Record<string, unknown>>;
|
|
235
|
+
rowModel: DataGridRowModel<Record<string, unknown>> | null;
|
|
236
|
+
}) => true;
|
|
237
|
+
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
216
238
|
rows: {
|
|
217
239
|
type: PropType<readonly unknown[]>;
|
|
218
240
|
default: () => never[];
|
|
@@ -409,19 +431,27 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
409
431
|
type: PropType<DataGridGanttProp | undefined>;
|
|
410
432
|
default: undefined;
|
|
411
433
|
};
|
|
434
|
+
toolbarModules: {
|
|
435
|
+
type: PropType<readonly DataGridAppToolbarModule[]>;
|
|
436
|
+
default: () => never[];
|
|
437
|
+
};
|
|
412
438
|
}>> & {
|
|
413
|
-
"onCell-change"?: ((
|
|
414
|
-
"onSelection-change"?: ((
|
|
415
|
-
"onRow-
|
|
416
|
-
"
|
|
417
|
-
"onUpdate:
|
|
418
|
-
"onUpdate:
|
|
419
|
-
"onUpdate:
|
|
420
|
-
"onUpdate:
|
|
421
|
-
"onUpdate:
|
|
422
|
-
"onUpdate:
|
|
423
|
-
"onUpdate:
|
|
424
|
-
|
|
439
|
+
"onCell-change"?: ((_payload: unknown) => any) | undefined;
|
|
440
|
+
"onSelection-change"?: ((_payload: DataGridApiSelectionChangedEvent) => any) | undefined;
|
|
441
|
+
"onRow-selection-change"?: ((_payload: DataGridApiRowSelectionChangedEvent) => any) | undefined;
|
|
442
|
+
"onRow-select"?: ((_payload: DataGridRowSelectionSnapshot | null) => any) | undefined;
|
|
443
|
+
"onUpdate:columnState"?: ((_payload: DataGridUnifiedColumnState | null) => any) | undefined;
|
|
444
|
+
"onUpdate:columnOrder"?: ((_payload: readonly string[] | null) => any) | undefined;
|
|
445
|
+
"onUpdate:hiddenColumnKeys"?: ((_payload: readonly string[] | null) => any) | undefined;
|
|
446
|
+
"onUpdate:columnWidths"?: ((_payload: Readonly<Record<string, number | null>> | null) => any) | undefined;
|
|
447
|
+
"onUpdate:columnPins"?: ((_payload: Readonly<Record<string, DataGridColumnPin>> | null) => any) | undefined;
|
|
448
|
+
"onUpdate:groupBy"?: ((_payload: DataGridGroupBySpec | null) => any) | undefined;
|
|
449
|
+
"onUpdate:viewMode"?: ((_payload: DataGridAppViewMode) => any) | undefined;
|
|
450
|
+
"onUpdate:state"?: ((_payload: DataGridUnifiedState<Record<string, unknown>> | null) => any) | undefined;
|
|
451
|
+
onReady?: ((_payload: {
|
|
452
|
+
api: DataGridApi<Record<string, unknown>>;
|
|
453
|
+
rowModel: DataGridRowModel<Record<string, unknown>> | null;
|
|
454
|
+
}) => any) | undefined;
|
|
425
455
|
}, {
|
|
426
456
|
rows: readonly unknown[];
|
|
427
457
|
columns: readonly DataGridAppColumnInput<unknown>[];
|
|
@@ -455,6 +485,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
455
485
|
fillHandle: boolean;
|
|
456
486
|
rangeMove: boolean;
|
|
457
487
|
viewMode: DataGridAppViewMode | undefined;
|
|
488
|
+
toolbarModules: readonly DataGridAppToolbarModule[];
|
|
458
489
|
pageSize: number | undefined;
|
|
459
490
|
currentPage: number | undefined;
|
|
460
491
|
startupOrder: readonly import("@affino/datagrid-core").DataGridCoreServiceName[] | undefined;
|
package/dist/advanced-filter.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _ as e } from "./chunks/DataGridAdvancedFilterPopover.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
import { _ as e } from "./chunks/DataGridAdvancedFilterPopover.vue_vue_type_script_setup_true_lang-x-cfVm5j.js";
|
|
2
2
|
export {
|
|
3
3
|
e as DataGridAdvancedFilterPopover
|
|
4
4
|
};
|
|
@@ -1,19 +1,34 @@
|
|
|
1
|
-
import { defineComponent as
|
|
1
|
+
import { defineComponent as q, inject as D, ref as k, computed as c, watch as m, nextTick as w, openBlock as d, createElementBlock as i, Fragment as b, createElementVNode as e, mergeProps as A, unref as _, createCommentVNode as P, createTextVNode as L, toDisplayString as y, createBlock as z, Teleport as G, renderList as I, createVNode as h } from "vue";
|
|
2
2
|
import { usePopoverController as J, useFloatingPopover as K } from "@affino/popover-vue";
|
|
3
|
-
import { d as
|
|
4
|
-
const
|
|
3
|
+
import { d as M, r as Z, _ as C } from "./DataGridFilterableCombobox.vue_vue_type_script_setup_true_lang-_1TDQseN.js";
|
|
4
|
+
const H = ["data-datagrid-advanced-filter-active"], Q = {
|
|
5
|
+
key: 0,
|
|
6
|
+
class: "datagrid-app-toolbar__button-icon datagrid-app-toolbar__button-icon--advanced-filter",
|
|
7
|
+
"data-datagrid-advanced-filter-icon": "true",
|
|
8
|
+
"aria-hidden": "true"
|
|
9
|
+
}, U = /* @__PURE__ */ e("svg", {
|
|
10
|
+
viewBox: "0 0 16 16",
|
|
11
|
+
focusable: "false"
|
|
12
|
+
}, [
|
|
13
|
+
/* @__PURE__ */ e("path", {
|
|
14
|
+
d: "M2 3.5h12l-4.6 5.2v3.2l-2.8 1.6V8.7L2 3.5Z",
|
|
15
|
+
fill: "currentColor"
|
|
16
|
+
})
|
|
17
|
+
], -1), W = [
|
|
18
|
+
U
|
|
19
|
+
], X = { class: "datagrid-advanced-filter__header" }, Y = /* @__PURE__ */ e("div", null, [
|
|
5
20
|
/* @__PURE__ */ e("div", { class: "datagrid-advanced-filter__eyebrow" }, "Advanced filter"),
|
|
6
21
|
/* @__PURE__ */ e("h3", { class: "datagrid-advanced-filter__title" }, "Build clause-based filter")
|
|
7
|
-
], -1),
|
|
22
|
+
], -1), x = { class: "datagrid-advanced-filter__applied" }, ee = { class: "datagrid-advanced-filter__applied-head" }, ae = /* @__PURE__ */ e("div", null, [
|
|
8
23
|
/* @__PURE__ */ e("div", { class: "datagrid-advanced-filter__eyebrow" }, "Applied on table"),
|
|
9
24
|
/* @__PURE__ */ e("div", { class: "datagrid-advanced-filter__applied-title" }, "Current filters")
|
|
10
|
-
], -1),
|
|
25
|
+
], -1), te = ["disabled"], le = {
|
|
11
26
|
key: 0,
|
|
12
27
|
class: "datagrid-advanced-filter__applied-list"
|
|
13
|
-
},
|
|
28
|
+
}, oe = {
|
|
14
29
|
key: 1,
|
|
15
30
|
class: "datagrid-advanced-filter__applied-empty"
|
|
16
|
-
},
|
|
31
|
+
}, de = { class: "datagrid-advanced-filter__rows" }, ne = { class: "datagrid-advanced-filter__field datagrid-advanced-filter__field--join" }, ie = /* @__PURE__ */ e("span", { class: "datagrid-advanced-filter__label" }, "Join", -1), re = { class: "datagrid-advanced-filter__field" }, se = /* @__PURE__ */ e("span", { class: "datagrid-advanced-filter__label" }, "Column", -1), ce = { class: "datagrid-advanced-filter__field" }, ue = /* @__PURE__ */ e("span", { class: "datagrid-advanced-filter__label" }, "Operator", -1), pe = { class: "datagrid-advanced-filter__field datagrid-advanced-filter__field--value" }, ve = /* @__PURE__ */ e("span", { class: "datagrid-advanced-filter__label" }, "Value", -1), _e = ["value", "onInput"], fe = { class: "datagrid-advanced-filter__row-actions" }, ge = ["onClick"], me = { class: "datagrid-advanced-filter__footer" }, be = { class: "datagrid-advanced-filter__footer-actions" }, Oe = /* @__PURE__ */ q({
|
|
17
32
|
__name: "DataGridAdvancedFilterPopover",
|
|
18
33
|
props: {
|
|
19
34
|
isOpen: { type: Boolean },
|
|
@@ -22,14 +37,15 @@ const M = { class: "datagrid-advanced-filter__header" }, Q = /* @__PURE__ */ e("
|
|
|
22
37
|
appliedFilterSummaryItems: { default: () => [] },
|
|
23
38
|
hasAnyFilters: { type: Boolean, default: !1 },
|
|
24
39
|
buttonLabel: { default: "Advanced filter" },
|
|
25
|
-
active: { type: Boolean, default: !1 }
|
|
40
|
+
active: { type: Boolean, default: !1 },
|
|
41
|
+
showActiveIcon: { type: Boolean, default: !1 }
|
|
26
42
|
},
|
|
27
43
|
emits: ["open", "add", "remove", "apply", "cancel", "reset-all", "update-clause"],
|
|
28
|
-
setup(T, { emit:
|
|
44
|
+
setup(T, { emit: S }) {
|
|
29
45
|
const F = Object.freeze([
|
|
30
46
|
{ value: "and", label: "AND" },
|
|
31
47
|
{ value: "or", label: "OR" }
|
|
32
|
-
]),
|
|
48
|
+
]), N = Object.freeze([
|
|
33
49
|
{ value: "contains", label: "Contains" },
|
|
34
50
|
{ value: "equals", label: "Equals" },
|
|
35
51
|
{ value: "not-equals", label: "Not equals" },
|
|
@@ -39,7 +55,7 @@ const M = { class: "datagrid-advanced-filter__header" }, Q = /* @__PURE__ */ e("
|
|
|
39
55
|
{ value: "gte", label: ">=" },
|
|
40
56
|
{ value: "lt", label: "<" },
|
|
41
57
|
{ value: "lte", label: "<=" }
|
|
42
|
-
]), u = T,
|
|
58
|
+
]), u = T, n = S, O = D(M, k(null)), f = k({}), o = J(
|
|
43
59
|
{
|
|
44
60
|
id: "advanced-filter",
|
|
45
61
|
role: "dialog",
|
|
@@ -48,13 +64,13 @@ const M = { class: "datagrid-advanced-filter__header" }, Q = /* @__PURE__ */ e("
|
|
|
48
64
|
},
|
|
49
65
|
{
|
|
50
66
|
onOpen: () => {
|
|
51
|
-
u.isOpen ||
|
|
67
|
+
u.isOpen || n("open"), g();
|
|
52
68
|
},
|
|
53
69
|
onClose: () => {
|
|
54
|
-
u.isOpen &&
|
|
70
|
+
u.isOpen && n("cancel");
|
|
55
71
|
}
|
|
56
72
|
}
|
|
57
|
-
),
|
|
73
|
+
), s = K(o, {
|
|
58
74
|
placement: "bottom",
|
|
59
75
|
align: "start",
|
|
60
76
|
gutter: 10,
|
|
@@ -62,7 +78,7 @@ const M = { class: "datagrid-advanced-filter__header" }, Q = /* @__PURE__ */ e("
|
|
|
62
78
|
zIndex: 180,
|
|
63
79
|
lockScroll: !1,
|
|
64
80
|
returnFocus: !0
|
|
65
|
-
}), R = c(() => o.getTriggerProps({ role: "dialog" })),
|
|
81
|
+
}), R = c(() => o.getTriggerProps({ role: "dialog" })), V = c(() => o.getContentProps({ role: "dialog", tabIndex: -1 })), B = c(() => o.state.value.open), E = c(() => s.contentStyle.value), $ = c(() => s.teleportTarget.value), j = c(() => u.columns.map((t) => ({
|
|
66
82
|
value: t.key,
|
|
67
83
|
label: t.label
|
|
68
84
|
})));
|
|
@@ -70,75 +86,80 @@ const M = { class: "datagrid-advanced-filter__header" }, Q = /* @__PURE__ */ e("
|
|
|
70
86
|
() => u.isOpen,
|
|
71
87
|
async (t) => {
|
|
72
88
|
if (t) {
|
|
73
|
-
g(), o.state.value.open || o.open("programmatic"), await
|
|
89
|
+
g(), o.state.value.open || o.open("programmatic"), await w(), s.contentRef.value?.querySelector('[data-advanced-filter-autofocus="true"]')?.focus({ preventScroll: !0 }), await s.updatePosition();
|
|
74
90
|
return;
|
|
75
91
|
}
|
|
76
92
|
o.state.value.open && o.close("programmatic");
|
|
77
93
|
},
|
|
78
94
|
{ immediate: !0 }
|
|
79
|
-
), m(
|
|
95
|
+
), m(O, () => {
|
|
80
96
|
o.state.value.open && g();
|
|
81
97
|
}), m(
|
|
82
98
|
() => u.clauses.length,
|
|
83
99
|
async () => {
|
|
84
|
-
o.state.value.open && (await
|
|
100
|
+
o.state.value.open && (await w(), await s.updatePosition());
|
|
85
101
|
}
|
|
86
102
|
);
|
|
87
103
|
function g() {
|
|
88
|
-
f.value =
|
|
104
|
+
f.value = Z(O.value);
|
|
89
105
|
}
|
|
90
106
|
function p(t, l, a) {
|
|
91
|
-
|
|
107
|
+
n("update-clause", { clauseId: t, field: l, value: a });
|
|
92
108
|
}
|
|
93
|
-
return (t, l) => (
|
|
94
|
-
e("button",
|
|
95
|
-
ref: _(
|
|
109
|
+
return (t, l) => (d(), i(b, null, [
|
|
110
|
+
e("button", A({
|
|
111
|
+
ref: _(s).triggerRef,
|
|
96
112
|
type: "button",
|
|
97
113
|
class: ["datagrid-app-toolbar__button", { "datagrid-app-toolbar__button--active": t.active }],
|
|
114
|
+
"data-datagrid-toolbar-action": "advanced-filter",
|
|
115
|
+
"data-datagrid-advanced-filter-active": t.showActiveIcon ? "true" : "false",
|
|
98
116
|
style: f.value
|
|
99
|
-
}, R.value),
|
|
100
|
-
|
|
101
|
-
|
|
117
|
+
}, R.value), [
|
|
118
|
+
t.showActiveIcon ? (d(), i("span", Q, W)) : P("", !0),
|
|
119
|
+
L(" " + y(t.buttonLabel), 1)
|
|
120
|
+
], 16, H),
|
|
121
|
+
(d(), z(G, { to: $.value }, [
|
|
122
|
+
B.value ? (d(), i("section", A({
|
|
102
123
|
key: 0,
|
|
103
|
-
ref: _(
|
|
124
|
+
ref: _(s).contentRef,
|
|
104
125
|
class: "datagrid-advanced-filter",
|
|
105
126
|
"data-datagrid-overlay-surface": "true",
|
|
106
|
-
style: [
|
|
107
|
-
},
|
|
108
|
-
e("header",
|
|
109
|
-
|
|
127
|
+
style: [E.value, f.value]
|
|
128
|
+
}, V.value), [
|
|
129
|
+
e("header", X, [
|
|
130
|
+
Y,
|
|
110
131
|
e("button", {
|
|
111
132
|
type: "button",
|
|
112
133
|
class: "datagrid-advanced-filter__ghost",
|
|
113
|
-
onClick: l[0] || (l[0] = (a) =>
|
|
134
|
+
onClick: l[0] || (l[0] = (a) => n("cancel"))
|
|
114
135
|
}, " Close ")
|
|
115
136
|
]),
|
|
116
|
-
e("section",
|
|
117
|
-
e("div",
|
|
118
|
-
|
|
137
|
+
e("section", x, [
|
|
138
|
+
e("div", ee, [
|
|
139
|
+
ae,
|
|
119
140
|
e("button", {
|
|
120
141
|
type: "button",
|
|
121
142
|
class: "datagrid-advanced-filter__ghost",
|
|
122
143
|
disabled: !t.hasAnyFilters,
|
|
123
144
|
"data-datagrid-advanced-filter-action": "reset-all",
|
|
124
|
-
onClick: l[1] || (l[1] = (a) =>
|
|
125
|
-
}, " Reset all filters ", 8,
|
|
145
|
+
onClick: l[1] || (l[1] = (a) => n("reset-all"))
|
|
146
|
+
}, " Reset all filters ", 8, te)
|
|
126
147
|
]),
|
|
127
|
-
t.appliedFilterSummaryItems.length > 0 ? (
|
|
128
|
-
(
|
|
148
|
+
t.appliedFilterSummaryItems.length > 0 ? (d(), i("div", le, [
|
|
149
|
+
(d(!0), i(b, null, I(t.appliedFilterSummaryItems, (a, v) => (d(), i("span", {
|
|
129
150
|
key: `applied-filter-${v}`,
|
|
130
151
|
class: "datagrid-advanced-filter__applied-chip"
|
|
131
|
-
},
|
|
132
|
-
])) : (
|
|
152
|
+
}, y(a), 1))), 128))
|
|
153
|
+
])) : (d(), i("div", oe, " No filters applied "))
|
|
133
154
|
]),
|
|
134
|
-
e("div",
|
|
135
|
-
(
|
|
155
|
+
e("div", de, [
|
|
156
|
+
(d(!0), i(b, null, I(t.clauses, (a, v) => (d(), i("div", {
|
|
136
157
|
key: a.id,
|
|
137
158
|
class: "datagrid-advanced-filter__row"
|
|
138
159
|
}, [
|
|
139
|
-
e("label",
|
|
140
|
-
|
|
141
|
-
|
|
160
|
+
e("label", ne, [
|
|
161
|
+
ie,
|
|
162
|
+
h(C, {
|
|
142
163
|
class: "datagrid-advanced-filter__select",
|
|
143
164
|
value: a.join,
|
|
144
165
|
options: _(F),
|
|
@@ -147,80 +168,79 @@ const M = { class: "datagrid-advanced-filter__header" }, Q = /* @__PURE__ */ e("
|
|
|
147
168
|
"sticky-popover-id": "advanced-filter",
|
|
148
169
|
disabled: v === 0,
|
|
149
170
|
"aria-label": "Join operator",
|
|
150
|
-
onCommit: (
|
|
171
|
+
onCommit: (r) => p(a.id, "join", r)
|
|
151
172
|
}, null, 8, ["value", "options", "disabled", "onCommit"])
|
|
152
173
|
]),
|
|
153
|
-
e("label",
|
|
154
|
-
|
|
155
|
-
|
|
174
|
+
e("label", re, [
|
|
175
|
+
se,
|
|
176
|
+
h(C, {
|
|
156
177
|
class: "datagrid-advanced-filter__select",
|
|
157
178
|
value: a.columnKey,
|
|
158
|
-
options:
|
|
179
|
+
options: j.value,
|
|
159
180
|
"open-on-mount": !1,
|
|
160
181
|
"open-on-focus": !1,
|
|
161
182
|
"sticky-popover-id": "advanced-filter",
|
|
162
183
|
"data-advanced-filter-autofocus": v === 0 ? "true" : null,
|
|
163
184
|
"aria-label": "Column",
|
|
164
|
-
onCommit: (
|
|
185
|
+
onCommit: (r) => p(a.id, "columnKey", r)
|
|
165
186
|
}, null, 8, ["value", "options", "data-advanced-filter-autofocus", "onCommit"])
|
|
166
187
|
]),
|
|
167
|
-
e("label",
|
|
168
|
-
|
|
169
|
-
|
|
188
|
+
e("label", ce, [
|
|
189
|
+
ue,
|
|
190
|
+
h(C, {
|
|
170
191
|
class: "datagrid-advanced-filter__select",
|
|
171
192
|
value: a.operator,
|
|
172
|
-
options: _(
|
|
193
|
+
options: _(N),
|
|
173
194
|
"open-on-mount": !1,
|
|
174
195
|
"open-on-focus": !1,
|
|
175
196
|
"sticky-popover-id": "advanced-filter",
|
|
176
197
|
"aria-label": "Condition operator",
|
|
177
|
-
onCommit: (
|
|
198
|
+
onCommit: (r) => p(a.id, "operator", r)
|
|
178
199
|
}, null, 8, ["value", "options", "onCommit"])
|
|
179
200
|
]),
|
|
180
|
-
e("label",
|
|
181
|
-
|
|
201
|
+
e("label", pe, [
|
|
202
|
+
ve,
|
|
182
203
|
e("input", {
|
|
183
204
|
value: a.value,
|
|
184
205
|
type: "text",
|
|
185
206
|
placeholder: "Value",
|
|
186
207
|
"aria-label": "Condition value",
|
|
187
|
-
onInput: (
|
|
188
|
-
}, null, 40,
|
|
208
|
+
onInput: (r) => p(a.id, "value", r.target.value)
|
|
209
|
+
}, null, 40, _e)
|
|
189
210
|
]),
|
|
190
|
-
e("div",
|
|
211
|
+
e("div", fe, [
|
|
191
212
|
e("button", {
|
|
192
213
|
type: "button",
|
|
193
214
|
class: "datagrid-advanced-filter__ghost datagrid-advanced-filter__ghost--danger",
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
}, " Remove ", 8, ue)
|
|
215
|
+
onClick: (r) => n("remove", a.id)
|
|
216
|
+
}, y(t.clauses.length <= 1 ? "Clear" : "Remove"), 9, ge)
|
|
197
217
|
])
|
|
198
218
|
]))), 128))
|
|
199
219
|
]),
|
|
200
|
-
e("footer",
|
|
220
|
+
e("footer", me, [
|
|
201
221
|
e("button", {
|
|
202
222
|
type: "button",
|
|
203
223
|
class: "datagrid-advanced-filter__secondary",
|
|
204
|
-
onClick: l[2] || (l[2] = (a) =>
|
|
224
|
+
onClick: l[2] || (l[2] = (a) => n("add"))
|
|
205
225
|
}, " Add clause "),
|
|
206
|
-
e("div",
|
|
226
|
+
e("div", be, [
|
|
207
227
|
e("button", {
|
|
208
228
|
type: "button",
|
|
209
229
|
class: "datagrid-advanced-filter__secondary",
|
|
210
|
-
onClick: l[3] || (l[3] = (a) =>
|
|
230
|
+
onClick: l[3] || (l[3] = (a) => n("cancel"))
|
|
211
231
|
}, " Cancel "),
|
|
212
232
|
e("button", {
|
|
213
233
|
type: "button",
|
|
214
234
|
class: "datagrid-advanced-filter__primary",
|
|
215
|
-
onClick: l[4] || (l[4] = (a) =>
|
|
235
|
+
onClick: l[4] || (l[4] = (a) => n("apply"))
|
|
216
236
|
}, " Apply ")
|
|
217
237
|
])
|
|
218
238
|
])
|
|
219
|
-
], 16)) :
|
|
239
|
+
], 16)) : P("", !0)
|
|
220
240
|
], 8, ["to"]))
|
|
221
241
|
], 64));
|
|
222
242
|
}
|
|
223
243
|
});
|
|
224
244
|
export {
|
|
225
|
-
|
|
245
|
+
Oe as _
|
|
226
246
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent as yn, computed as u, ref as y, watch as de, nextTick as Mt, onMounted as wn, onBeforeUnmount as pn, openBlock as De, createElementBlock as We, createElementVNode as V, normalizeStyle as ne, createVNode as bn, mergeProps as Sn, unref as Mn, createCommentVNode as Tn } from "vue";
|
|
2
|
-
import { o as Pn, q as Dn, _ as Wn } from "./DataGridTableStage.vue_vue_type_script_setup_true_lang-
|
|
2
|
+
import { o as Pn, q as Dn, _ as Wn } from "./DataGridTableStage.vue_vue_type_script_setup_true_lang-C9CKLdfN.js";
|
|
3
3
|
import { resolveDataGridGanttAnalysis as _n, buildDataGridGanttVisibleBars as kn, buildDataGridGanttDependencyPaths as Rn, resolveDataGridGanttRangeFrame as Xe, buildDataGridTimelineRenderModels as Tt, resolveDataGridTimelineDateToPixel as Pt, resolveDataGridTimelineScrollLeftForDate as En, applyDataGridGanttDragDelta as In, hitTestDataGridGanttBar as Dt, clampDataGridTimelineScrollLeft as xn, buildDataGridGanttRowEditPatch as Cn } from "@affino/datagrid-gantt";
|
|
4
4
|
const be = 0.5, Ln = 1.25;
|
|
5
5
|
function Hn(s) {
|
package/dist/chunks/{DataGridGanttStageEntry-DgXw3IJw.js → DataGridGanttStageEntry-BnzXZ_y8.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent as e, h as r } from "vue";
|
|
2
|
-
import { _ as a } from "./DataGridGanttStage.vue_vue_type_script_setup_true_lang-
|
|
2
|
+
import { _ as a } from "./DataGridGanttStage.vue_vue_type_script_setup_true_lang-DPozU5Z5.js";
|
|
3
3
|
import { normalizeDataGridGanttOptions as n } from "@affino/datagrid-gantt";
|
|
4
4
|
const m = e({
|
|
5
5
|
name: "DataGridGanttStageEntry",
|
|
@@ -2477,6 +2477,9 @@ const Wo = ["data-datagrid-pivot-group-label", "data-datagrid-pivot-group-span",
|
|
|
2477
2477
|
}
|
|
2478
2478
|
|
|
2479
2479
|
.datagrid-app-toolbar__button {
|
|
2480
|
+
display: inline-flex;
|
|
2481
|
+
align-items: center;
|
|
2482
|
+
gap: 8px;
|
|
2480
2483
|
height: 32px;
|
|
2481
2484
|
padding: 0 12px;
|
|
2482
2485
|
border: 1px solid var(--datagrid-filter-trigger-border);
|
|
@@ -2515,6 +2518,25 @@ const Wo = ["data-datagrid-pivot-group-label", "data-datagrid-pivot-group-span",
|
|
|
2515
2518
|
background: color-mix(in srgb, var(--datagrid-accent-strong) 14%, var(--datagrid-editor-bg));
|
|
2516
2519
|
}
|
|
2517
2520
|
|
|
2521
|
+
.datagrid-app-toolbar__button-icon {
|
|
2522
|
+
display: inline-flex;
|
|
2523
|
+
align-items: center;
|
|
2524
|
+
justify-content: center;
|
|
2525
|
+
width: 14px;
|
|
2526
|
+
height: 14px;
|
|
2527
|
+
flex: 0 0 14px;
|
|
2528
|
+
}
|
|
2529
|
+
|
|
2530
|
+
.datagrid-app-toolbar__button-icon svg {
|
|
2531
|
+
display: block;
|
|
2532
|
+
width: 14px;
|
|
2533
|
+
height: 14px;
|
|
2534
|
+
}
|
|
2535
|
+
|
|
2536
|
+
.datagrid-app-toolbar__button-icon--advanced-filter {
|
|
2537
|
+
color: var(--datagrid-accent-strong);
|
|
2538
|
+
}
|
|
2539
|
+
|
|
2518
2540
|
.datagrid-column-layout {
|
|
2519
2541
|
display: flex;
|
|
2520
2542
|
flex-direction: column;
|