@revolist/revogrid 4.24.2 → 4.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/app-globals-Dmf-wvGw.js +8 -0
- package/dist/cjs/{cell-renderer-DnOCJ9ge.js → cell-renderer-Cf2Pu4S0.js} +3 -3
- package/dist/cjs/{column.drag.plugin-DSiFObaj.js → column.drag.plugin-E_K6cIAy.js} +101 -13
- package/dist/cjs/{column.service-CD70rNL2.js → column.service-C7p5eC5V.js} +1 -1
- package/dist/cjs/{dimension.helpers-CB5sNw5J.js → dimension.helpers-CgHhnN1d.js} +1 -1
- package/dist/cjs/{edit.utils-DDxnq9lw.js → edit.utils-rAcGublN.js} +1 -1
- package/dist/cjs/{filter.button-C4xpvyyE.js → filter.button-F2Bw3UAd.js} +1 -1
- package/dist/cjs/{header-cell-renderer-JXYFwayd.js → header-cell-renderer-DHClfIto.js} +2 -2
- package/dist/cjs/{index-BF6JDcMr.js → index--FdNLz1Z.js} +1 -1
- package/dist/cjs/{index-Dq8Xzj5l.js → index-DRvxCueo.js} +61 -20
- package/dist/cjs/index.cjs.js +556 -47
- package/dist/cjs/loader.cjs.js +3 -4
- package/dist/cjs/revo-grid.cjs.entry.js +256 -28
- package/dist/cjs/revo-grid.cjs.js +4 -5
- package/dist/cjs/revogr-attribution_7.cjs.entry.js +9 -9
- package/dist/cjs/revogr-clipboard_3.cjs.entry.js +6 -6
- package/dist/cjs/revogr-data_4.cjs.entry.js +8 -8
- package/dist/cjs/revogr-filter-panel.cjs.entry.js +19 -6
- package/dist/cjs/{text-editor-CvgloQdG.js → text-editor-F04kTx53.js} +2 -2
- package/dist/cjs/{viewport.store-Ci8H1bI9.js → viewport.store-B4Clk4m9.js} +1 -1
- package/dist/collection/collection-manifest.json +2 -3
- package/dist/collection/components/editors/revogr-edit-style.css +2 -2
- package/dist/collection/components/header/revogr-header-style.css +2 -2
- package/dist/collection/components/overlay/revogr-overlay-style.css +9 -6
- package/dist/collection/components/revoGrid/revo-grid-style.css +451 -276
- package/dist/collection/components/revoGrid/revo-grid.js +106 -35
- package/dist/collection/components/scroll/revogr-viewport-scroll-style.css +6 -4
- package/dist/collection/components/selectionFocus/revogr-focus-style.css +1 -1
- package/dist/collection/components/selectionTempRange/revogr-temp-range-style.css +2 -2
- package/dist/collection/index.js +1 -0
- package/dist/collection/plugins/filter/filter.panel.js +36 -3
- package/dist/collection/plugins/filter/filter.plugin.js +21 -6
- package/dist/collection/plugins/filter/filter.style.css +43 -38
- package/dist/collection/serve/controller.js +18 -2
- package/dist/collection/themeManager/presets/aurora.js +89 -0
- package/dist/collection/themeManager/presets/high-contrast-dark.js +89 -0
- package/dist/collection/themeManager/presets/high-contrast.js +89 -0
- package/dist/collection/themeManager/presets/index.js +25 -0
- package/dist/collection/themeManager/presets/midnight.js +89 -0
- package/dist/collection/themeManager/presets/ocean.js +89 -0
- package/dist/collection/themeManager/presets/shared.js +64 -0
- package/dist/collection/themeManager/theme.service.js +141 -20
- package/dist/collection/types/theme.js +73 -1
- package/dist/esm/app-globals-CA4dvSNd.js +6 -0
- package/dist/{revo-grid/cell-renderer-BQjko1zB.js → esm/cell-renderer-11cf-lu3.js} +3 -3
- package/dist/{revo-grid/column.drag.plugin-Cf9DYdQj.js → esm/column.drag.plugin-DKgC_0I1.js} +100 -14
- package/dist/esm/{column.service-BnFqXqQG.js → column.service-Cfw3L0PN.js} +1 -1
- package/dist/esm/{dimension.helpers-CXrsUc6f.js → dimension.helpers-fl4HSSK9.js} +1 -1
- package/dist/esm/{edit.utils-CXmmCnxE.js → edit.utils-4e9fsqOR.js} +1 -1
- package/dist/esm/{filter.button-B-RBiF67.js → filter.button-DMhpuAiw.js} +1 -1
- package/dist/esm/{header-cell-renderer-B3mYpZD3.js → header-cell-renderer-Cqtg1ETB.js} +2 -2
- package/dist/esm/{index-Chp_81rd.js → index-CtimkLsB.js} +62 -20
- package/dist/esm/{index-DBqlJITb.js → index-D24ku9ej.js} +1 -1
- package/dist/esm/index.js +513 -13
- package/dist/esm/loader.js +4 -5
- package/dist/esm/revo-grid.entry.js +255 -27
- package/dist/esm/revo-grid.js +5 -6
- package/dist/esm/revogr-attribution_7.entry.js +9 -9
- package/dist/esm/revogr-clipboard_3.entry.js +6 -6
- package/dist/esm/revogr-data_4.entry.js +8 -8
- package/dist/esm/revogr-filter-panel.entry.js +19 -6
- package/dist/{revo-grid/text-editor-DQtz2Y7B.js → esm/text-editor-DlMnLkRK.js} +2 -2
- package/dist/{revo-grid/viewport.store-D5jEuhLq.js → esm/viewport.store-BSXmsiZc.js} +1 -1
- package/dist/revo-grid/app-globals-CA4dvSNd.js +6 -0
- package/dist/{esm/cell-renderer-BQjko1zB.js → revo-grid/cell-renderer-11cf-lu3.js} +3 -3
- package/dist/{esm/column.drag.plugin-Cf9DYdQj.js → revo-grid/column.drag.plugin-DKgC_0I1.js} +100 -14
- package/dist/revo-grid/{column.service-BnFqXqQG.js → column.service-Cfw3L0PN.js} +1 -1
- package/dist/revo-grid/{dimension.helpers-CXrsUc6f.js → dimension.helpers-fl4HSSK9.js} +1 -1
- package/dist/revo-grid/{edit.utils-CXmmCnxE.js → edit.utils-4e9fsqOR.js} +1 -1
- package/dist/revo-grid/{filter.button-B-RBiF67.js → filter.button-DMhpuAiw.js} +1 -1
- package/dist/revo-grid/{header-cell-renderer-B3mYpZD3.js → header-cell-renderer-Cqtg1ETB.js} +2 -2
- package/dist/revo-grid/{index-Chp_81rd.js → index-CtimkLsB.js} +62 -20
- package/dist/revo-grid/{index-DBqlJITb.js → index-D24ku9ej.js} +1 -1
- package/dist/revo-grid/index.esm.js +513 -13
- package/dist/revo-grid/revo-grid.entry.js +255 -27
- package/dist/revo-grid/revo-grid.esm.js +5 -6
- package/dist/revo-grid/revogr-attribution_7.entry.js +9 -9
- package/dist/revo-grid/revogr-clipboard_3.entry.js +6 -6
- package/dist/revo-grid/revogr-data_4.entry.js +8 -8
- package/dist/revo-grid/revogr-filter-panel.entry.js +19 -6
- package/dist/{esm/text-editor-DQtz2Y7B.js → revo-grid/text-editor-DlMnLkRK.js} +2 -2
- package/dist/{esm/viewport.store-D5jEuhLq.js → revo-grid/viewport.store-BSXmsiZc.js} +1 -1
- package/dist/types/components/revoGrid/revo-grid.d.ts +16 -4
- package/dist/types/components.d.ts +28 -7
- package/dist/types/index.d.ts +1 -0
- package/dist/types/plugins/filter/filter.panel.d.ts +4 -0
- package/dist/types/plugins/filter/filter.plugin.d.ts +1 -0
- package/dist/types/plugins/filter/filter.types.d.ts +5 -0
- package/dist/types/stencil-public-runtime.d.ts +1 -0
- package/dist/types/themeManager/presets/aurora.d.ts +8 -0
- package/dist/types/themeManager/presets/high-contrast-dark.d.ts +8 -0
- package/dist/types/themeManager/presets/high-contrast.d.ts +8 -0
- package/dist/types/themeManager/presets/index.d.ts +33 -0
- package/dist/types/themeManager/presets/midnight.d.ts +8 -0
- package/dist/types/themeManager/presets/ocean.d.ts +8 -0
- package/dist/types/themeManager/presets/shared.d.ts +81 -0
- package/dist/types/themeManager/theme.service.d.ts +9 -6
- package/dist/types/types/theme.d.ts +88 -1
- package/hydrate/index.js +1307 -597
- package/hydrate/index.mjs +1307 -597
- package/package.json +4 -4
- package/standalone/index.js +1 -1
- package/standalone/revo-grid.js +1 -1
- package/standalone/revogr-edit2.js +1 -1
- package/standalone/revogr-filter-panel.js +1 -1
- package/standalone/revogr-focus2.js +1 -1
- package/standalone/revogr-header2.js +1 -1
- package/standalone/revogr-overlay-selection2.js +1 -1
- package/standalone/revogr-temp-range2.js +1 -1
- package/standalone/revogr-viewport-scroll2.js +1 -1
- package/dist/cjs/app-globals-CPPhEXmy.js +0 -26
- package/dist/cjs/theme.service-BgnxGIjK.js +0 -72
- package/dist/collection/global/global.js +0 -18
- package/dist/collection/themeManager/theme.compact.js +0 -8
- package/dist/collection/themeManager/theme.default.js +0 -8
- package/dist/collection/themeManager/theme.material.js +0 -8
- package/dist/esm/app-globals-B_B_OtEa.js +0 -24
- package/dist/esm/theme.service-BmnDvr6P.js +0 -69
- package/dist/revo-grid/app-globals-B_B_OtEa.js +0 -24
- package/dist/revo-grid/theme.service-BmnDvr6P.js +0 -69
- package/dist/types/global/global.d.ts +0 -1
- package/dist/types/themeManager/theme.compact.d.ts +0 -4
- package/dist/types/themeManager/theme.default.d.ts +0 -4
- package/dist/types/themeManager/theme.material.d.ts +0 -4
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
import { ThemeDefault } from "./theme.default";
|
|
6
|
-
import { ThemeMaterial } from "./theme.material";
|
|
4
|
+
import { themeTokenCssVariables, } from "../types/theme";
|
|
7
5
|
export const DEFAULT_THEME = 'default';
|
|
8
6
|
export const allowedThemes = [
|
|
9
7
|
DEFAULT_THEME,
|
|
@@ -12,6 +10,72 @@ export const allowedThemes = [
|
|
|
12
10
|
'darkMaterial',
|
|
13
11
|
'darkCompact',
|
|
14
12
|
];
|
|
13
|
+
const builtInThemeNames = new Set(allowedThemes);
|
|
14
|
+
const builtInThemes = Object.freeze({
|
|
15
|
+
default: Object.freeze({
|
|
16
|
+
name: 'default',
|
|
17
|
+
base: 'default',
|
|
18
|
+
colorScheme: 'light',
|
|
19
|
+
defaultRowSize: 27,
|
|
20
|
+
tokens: Object.freeze({}),
|
|
21
|
+
custom: false,
|
|
22
|
+
}),
|
|
23
|
+
material: Object.freeze({
|
|
24
|
+
name: 'material',
|
|
25
|
+
base: 'material',
|
|
26
|
+
colorScheme: 'light',
|
|
27
|
+
defaultRowSize: 42,
|
|
28
|
+
tokens: Object.freeze({}),
|
|
29
|
+
custom: false,
|
|
30
|
+
}),
|
|
31
|
+
compact: Object.freeze({
|
|
32
|
+
name: 'compact',
|
|
33
|
+
base: 'compact',
|
|
34
|
+
colorScheme: 'light',
|
|
35
|
+
defaultRowSize: 32,
|
|
36
|
+
tokens: Object.freeze({}),
|
|
37
|
+
custom: false,
|
|
38
|
+
}),
|
|
39
|
+
darkMaterial: Object.freeze({
|
|
40
|
+
name: 'darkMaterial',
|
|
41
|
+
base: 'material',
|
|
42
|
+
colorScheme: 'dark',
|
|
43
|
+
defaultRowSize: 42,
|
|
44
|
+
tokens: Object.freeze({}),
|
|
45
|
+
custom: false,
|
|
46
|
+
}),
|
|
47
|
+
darkCompact: Object.freeze({
|
|
48
|
+
name: 'darkCompact',
|
|
49
|
+
base: 'compact',
|
|
50
|
+
colorScheme: 'dark',
|
|
51
|
+
defaultRowSize: 32,
|
|
52
|
+
tokens: Object.freeze({}),
|
|
53
|
+
custom: false,
|
|
54
|
+
}),
|
|
55
|
+
});
|
|
56
|
+
function isBuiltInTheme(theme) {
|
|
57
|
+
return builtInThemeNames.has(theme);
|
|
58
|
+
}
|
|
59
|
+
function isPositiveSize(size) {
|
|
60
|
+
return typeof size === 'number' && Number.isFinite(size) && size > 0;
|
|
61
|
+
}
|
|
62
|
+
function getColorScheme(scheme, fallback) {
|
|
63
|
+
return scheme === 'light' || scheme === 'dark' ? scheme : fallback;
|
|
64
|
+
}
|
|
65
|
+
function getThemeTokens(tokens) {
|
|
66
|
+
if (!tokens || typeof tokens !== 'object') {
|
|
67
|
+
return {};
|
|
68
|
+
}
|
|
69
|
+
const result = {};
|
|
70
|
+
for (const [name, value] of Object.entries(tokens)) {
|
|
71
|
+
if (Object.hasOwn(themeTokenCssVariables, name) &&
|
|
72
|
+
typeof value === 'string' &&
|
|
73
|
+
value.trim()) {
|
|
74
|
+
result[name] = value;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return result;
|
|
78
|
+
}
|
|
15
79
|
export default class ThemeService {
|
|
16
80
|
get theme() {
|
|
17
81
|
return this.currentTheme;
|
|
@@ -20,33 +84,90 @@ export default class ThemeService {
|
|
|
20
84
|
return this.customRowSize || this.currentTheme.defaultRowSize;
|
|
21
85
|
}
|
|
22
86
|
set rowSize(size) {
|
|
23
|
-
this.customRowSize = size;
|
|
87
|
+
this.customRowSize = isPositiveSize(size) ? size : 0;
|
|
24
88
|
}
|
|
25
89
|
constructor(cfg) {
|
|
90
|
+
this.currentTheme = Object.assign({}, builtInThemes.default);
|
|
91
|
+
this.customThemes = new Map();
|
|
26
92
|
this.customRowSize = 0;
|
|
27
|
-
this.
|
|
93
|
+
this.rowSize = cfg.rowSize;
|
|
28
94
|
this.register('default');
|
|
29
95
|
}
|
|
96
|
+
setDefinitions(definitions = []) {
|
|
97
|
+
const customThemes = new Map();
|
|
98
|
+
if (Array.isArray(definitions)) {
|
|
99
|
+
for (const definition of definitions) {
|
|
100
|
+
if (!definition || typeof definition !== 'object') {
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
if (typeof definition.name !== 'string' || !definition.name.trim()) {
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
const name = getTheme(definition.name);
|
|
107
|
+
if (isBuiltInTheme(name)) {
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
customThemes.set(name, Object.assign(Object.assign({}, definition), { name }));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
this.customThemes = customThemes;
|
|
114
|
+
}
|
|
30
115
|
register(theme) {
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
116
|
+
const name = getTheme(theme);
|
|
117
|
+
if (isBuiltInTheme(name)) {
|
|
118
|
+
this.currentTheme = Object.assign(Object.assign({}, builtInThemes[name]), { tokens: {} });
|
|
119
|
+
return this.currentTheme;
|
|
120
|
+
}
|
|
121
|
+
const definition = this.customThemes.get(name);
|
|
122
|
+
if (!definition) {
|
|
123
|
+
this.currentTheme = Object.assign(Object.assign({}, builtInThemes.default), { name, tokens: {}, custom: true });
|
|
124
|
+
return this.currentTheme;
|
|
125
|
+
}
|
|
126
|
+
this.currentTheme = this.resolveDefinition(name);
|
|
127
|
+
return this.currentTheme;
|
|
128
|
+
}
|
|
129
|
+
resolveDefinition(name) {
|
|
130
|
+
const chain = [];
|
|
131
|
+
const visited = new Set();
|
|
132
|
+
let parentName = name;
|
|
133
|
+
let validChain = true;
|
|
134
|
+
while (!isBuiltInTheme(parentName)) {
|
|
135
|
+
if (visited.has(parentName)) {
|
|
136
|
+
validChain = false;
|
|
40
137
|
break;
|
|
41
|
-
|
|
42
|
-
|
|
138
|
+
}
|
|
139
|
+
visited.add(parentName);
|
|
140
|
+
const definition = this.customThemes.get(parentName);
|
|
141
|
+
if (!definition) {
|
|
142
|
+
validChain = false;
|
|
43
143
|
break;
|
|
144
|
+
}
|
|
145
|
+
chain.push(definition);
|
|
146
|
+
parentName = getTheme(definition.extends);
|
|
147
|
+
}
|
|
148
|
+
let resolved = Object.assign(Object.assign({}, (validChain && isBuiltInTheme(parentName)
|
|
149
|
+
? builtInThemes[parentName]
|
|
150
|
+
: builtInThemes.default)), { tokens: {} });
|
|
151
|
+
if (validChain) {
|
|
152
|
+
chain.reverse();
|
|
44
153
|
}
|
|
154
|
+
const definitions = validChain ? chain : chain.slice(0, 1);
|
|
155
|
+
for (const definition of definitions) {
|
|
156
|
+
resolved = {
|
|
157
|
+
name: definition.name,
|
|
158
|
+
base: resolved.base,
|
|
159
|
+
colorScheme: getColorScheme(definition.colorScheme, resolved.colorScheme),
|
|
160
|
+
defaultRowSize: isPositiveSize(definition.defaultRowSize)
|
|
161
|
+
? definition.defaultRowSize
|
|
162
|
+
: resolved.defaultRowSize,
|
|
163
|
+
tokens: Object.assign(Object.assign({}, resolved.tokens), getThemeTokens(definition.tokens)),
|
|
164
|
+
custom: true,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
return resolved;
|
|
45
168
|
}
|
|
46
169
|
}
|
|
47
170
|
export function getTheme(theme) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
return DEFAULT_THEME;
|
|
171
|
+
const normalizedTheme = typeof theme === 'string' ? theme.trim() : '';
|
|
172
|
+
return normalizedTheme || DEFAULT_THEME;
|
|
52
173
|
}
|
|
@@ -1 +1,73 @@
|
|
|
1
|
-
|
|
1
|
+
/*!
|
|
2
|
+
* Built by Revolist OU ❤️
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Public theme tokens and their CSS custom-property counterparts.
|
|
6
|
+
* Keep this map as the single source of truth for typed theme definitions.
|
|
7
|
+
*/
|
|
8
|
+
export const themeTokenCssVariables = {
|
|
9
|
+
primary: '--revo-grid-primary',
|
|
10
|
+
primaryTransparent: '--revo-grid-primary-transparent',
|
|
11
|
+
background: '--revo-grid-background',
|
|
12
|
+
foreground: '--revo-grid-foreground',
|
|
13
|
+
divider: '--revo-grid-divider',
|
|
14
|
+
shadow: '--revo-grid-shadow',
|
|
15
|
+
text: '--revo-grid-text',
|
|
16
|
+
border: '--revo-grid-border',
|
|
17
|
+
headerBg: '--revo-grid-header-bg',
|
|
18
|
+
headerColor: '--revo-grid-header-color',
|
|
19
|
+
headerBorder: '--revo-grid-header-border',
|
|
20
|
+
headerFocusedBg: '--revo-grid-header-focused-bg',
|
|
21
|
+
headerHoverBg: '--revo-grid-header-hover-bg',
|
|
22
|
+
cellBorder: '--revo-grid-cell-border',
|
|
23
|
+
cellVerticalBorder: '--revo-grid-cell-vertical-border',
|
|
24
|
+
focusedBg: '--revo-grid-focused-bg',
|
|
25
|
+
rowHover: '--revo-grid-row-hover',
|
|
26
|
+
rowHeadersBg: '--revo-grid-row-headers-bg',
|
|
27
|
+
rowHeadersColor: '--revo-grid-row-headers-color',
|
|
28
|
+
cellDisabledBg: '--revo-grid-cell-disabled-bg',
|
|
29
|
+
filterPanelBg: '--revo-grid-filter-panel-bg',
|
|
30
|
+
filterPanelBorder: '--revo-grid-filter-panel-border',
|
|
31
|
+
filterPanelShadow: '--revo-grid-filter-panel-shadow',
|
|
32
|
+
filterPanelInputBg: '--revo-grid-filter-panel-input-bg',
|
|
33
|
+
filterPanelDivider: '--revo-grid-filter-panel-divider',
|
|
34
|
+
filterPanelSelectBorder: '--revo-grid-filter-panel-select-border',
|
|
35
|
+
filterPanelSelectBorderHover: '--revo-grid-filter-panel-select-border-hover',
|
|
36
|
+
filterPanelReorderAccent: '--revo-grid-filter-panel-reorder-accent',
|
|
37
|
+
filterPanelReorderColor: '--revo-grid-filter-panel-reorder-color',
|
|
38
|
+
filterPanelText: '--revo-grid-filter-panel-text',
|
|
39
|
+
filterPanelMutedText: '--revo-grid-filter-panel-muted-text',
|
|
40
|
+
filterPanelFocusRing: '--revo-grid-filter-panel-focus-ring',
|
|
41
|
+
filterPanelIcon: '--revo-grid-filter-panel-icon',
|
|
42
|
+
filterPanelIconActive: '--revo-grid-filter-panel-icon-active',
|
|
43
|
+
filterPanelSelectArrow: '--revo-grid-filter-panel-select-arrow',
|
|
44
|
+
filterPanelSelectArrowDisabled: '--revo-grid-filter-panel-select-arrow-disabled',
|
|
45
|
+
fontFamily: '--revo-grid-font-family',
|
|
46
|
+
fontSize: '--revo-grid-font-size',
|
|
47
|
+
headerHeight: '--revo-grid-header-height',
|
|
48
|
+
headerFontSize: '--revo-grid-header-font-size',
|
|
49
|
+
headerFontWeight: '--revo-grid-header-font-weight',
|
|
50
|
+
headerTextTransform: '--revo-grid-header-text-transform',
|
|
51
|
+
headerTextAlign: '--revo-grid-header-text-align',
|
|
52
|
+
cellTextAlign: '--revo-grid-cell-text-align',
|
|
53
|
+
headerPadding: '--revo-grid-header-padding',
|
|
54
|
+
cellPadding: '--revo-grid-cell-padding',
|
|
55
|
+
selectionBorder: '--revo-grid-selection-border',
|
|
56
|
+
selectionBg: '--revo-grid-selection-bg',
|
|
57
|
+
autofillHandleBg: '--revo-grid-autofill-handle-bg',
|
|
58
|
+
autofillHandleBorder: '--revo-grid-autofill-handle-border',
|
|
59
|
+
rangeHandleBg: '--revo-grid-range-handle-bg',
|
|
60
|
+
temporaryRangeBorder: '--revo-grid-temporary-range-border',
|
|
61
|
+
temporarySelectionBorder: '--revo-grid-temporary-selection-border',
|
|
62
|
+
headerResizeHover: '--revo-grid-header-resize-hover',
|
|
63
|
+
buttonText: '--revo-grid-button-text',
|
|
64
|
+
buttonBg: '--revo-grid-button-bg',
|
|
65
|
+
buttonSuccessBg: '--revo-grid-button-success-bg',
|
|
66
|
+
buttonDangerBg: '--revo-grid-button-danger-bg',
|
|
67
|
+
buttonOutlineBorder: '--revo-grid-button-outline-border',
|
|
68
|
+
buttonOutlineText: '--revo-grid-button-outline-text',
|
|
69
|
+
};
|
|
70
|
+
/** Type-safe identity helper for reusable theme definitions. */
|
|
71
|
+
export function defineTheme(theme) {
|
|
72
|
+
return theme;
|
|
73
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
import { h,
|
|
5
|
-
import { n as DATA_ROW, b as getSourceItem, m as DATA_COL, C as CELL_CLASS, w as DRAG_ICON_CLASS, x as DRAGGABLE_CLASS } from './dimension.helpers-
|
|
6
|
-
import { A as getCellRaw, v as isGroupingColumn, l as GROUP_EXPAND_BTN, m as GROUP_EXPAND_EVENT, j as GROUP_COLUMN_PROP, P as PSEUDO_GROUP_ITEM, h as GROUP_EXPANDED, G as GROUP_DEPTH, O as isRowDragService, B as getCellDataParsed } from './column.service-
|
|
4
|
+
import { h, e as Build } from './index-CtimkLsB.js';
|
|
5
|
+
import { n as DATA_ROW, b as getSourceItem, m as DATA_COL, C as CELL_CLASS, w as DRAG_ICON_CLASS, x as DRAGGABLE_CLASS } from './dimension.helpers-fl4HSSK9.js';
|
|
6
|
+
import { A as getCellRaw, v as isGroupingColumn, l as GROUP_EXPAND_BTN, m as GROUP_EXPAND_EVENT, j as GROUP_COLUMN_PROP, P as PSEUDO_GROUP_ITEM, h as GROUP_EXPANDED, G as GROUP_DEPTH, O as isRowDragService, B as getCellDataParsed } from './column.service-Cfw3L0PN.js';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Renders sorting direction and optional additive sorting rank.
|
package/dist/{revo-grid/column.drag.plugin-Cf9DYdQj.js → esm/column.drag.plugin-DKgC_0I1.js}
RENAMED
|
@@ -1,14 +1,85 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
import { J as reduce, g as getRange, K as baseEach, C as getColumnType, c as columnTypes, L as toInteger, u as isGrouping, t as getGroupingName, r as rowTypes, B as getCellDataParsed, A as getCellRaw, j as GROUP_COLUMN_PROP, I as getColumnByProp, h as GROUP_EXPANDED, x as getParsedGroup, y as isSameGroup, G as GROUP_DEPTH, e as PSEUDO_GROUP_ITEM_VALUE, d as PSEUDO_GROUP_ITEM_ID, o as GROUPING_ROW_TYPE, p as getSource, f as PSEUDO_GROUP_COLUMN, s as gatherGrouping, m as GROUP_EXPAND_EVENT, v as isGroupingColumn, q as getExpanded, E as isColGrouping } from './column.service-
|
|
5
|
-
import { K as createStore, l as setStore, i as calculateDimensionData, L as identity, N as isArray, b as getSourceItem, g as getPhysical, e as setItems, j as getItemByPosition } from './dimension.helpers-
|
|
6
|
-
import { j as calculateRowHeaderSize } from './viewport.store-
|
|
7
|
-
import { g as getScrollbarSize, t as timeout } from './index-
|
|
8
|
-
import { h } from './index-
|
|
9
|
-
import { b as FILTER_PROP, i as isFilterBtn } from './filter.button-
|
|
4
|
+
import { J as reduce, g as getRange, K as baseEach, C as getColumnType, c as columnTypes, L as toInteger, u as isGrouping, t as getGroupingName, r as rowTypes, B as getCellDataParsed, A as getCellRaw, j as GROUP_COLUMN_PROP, I as getColumnByProp, h as GROUP_EXPANDED, x as getParsedGroup, y as isSameGroup, G as GROUP_DEPTH, e as PSEUDO_GROUP_ITEM_VALUE, d as PSEUDO_GROUP_ITEM_ID, o as GROUPING_ROW_TYPE, p as getSource, f as PSEUDO_GROUP_COLUMN, s as gatherGrouping, m as GROUP_EXPAND_EVENT, v as isGroupingColumn, q as getExpanded, E as isColGrouping } from './column.service-Cfw3L0PN.js';
|
|
5
|
+
import { K as createStore, l as setStore, i as calculateDimensionData, L as identity, N as isArray, b as getSourceItem, g as getPhysical, e as setItems, j as getItemByPosition } from './dimension.helpers-fl4HSSK9.js';
|
|
6
|
+
import { j as calculateRowHeaderSize } from './viewport.store-BSXmsiZc.js';
|
|
7
|
+
import { g as getScrollbarSize, t as timeout } from './index-D24ku9ej.js';
|
|
8
|
+
import { h } from './index-CtimkLsB.js';
|
|
9
|
+
import { b as FILTER_PROP, i as isFilterBtn } from './filter.button-DMhpuAiw.js';
|
|
10
10
|
import { d as debounce } from './debounce-PCRWZliA.js';
|
|
11
|
-
import { O as ON_COLUMN_CLICK, d as dispatch } from './header-cell-renderer-
|
|
11
|
+
import { O as ON_COLUMN_CLICK, d as dispatch } from './header-cell-renderer-Cqtg1ETB.js';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Public theme tokens and their CSS custom-property counterparts.
|
|
15
|
+
* Keep this map as the single source of truth for typed theme definitions.
|
|
16
|
+
*/
|
|
17
|
+
const themeTokenCssVariables = {
|
|
18
|
+
primary: '--revo-grid-primary',
|
|
19
|
+
primaryTransparent: '--revo-grid-primary-transparent',
|
|
20
|
+
background: '--revo-grid-background',
|
|
21
|
+
foreground: '--revo-grid-foreground',
|
|
22
|
+
divider: '--revo-grid-divider',
|
|
23
|
+
shadow: '--revo-grid-shadow',
|
|
24
|
+
text: '--revo-grid-text',
|
|
25
|
+
border: '--revo-grid-border',
|
|
26
|
+
headerBg: '--revo-grid-header-bg',
|
|
27
|
+
headerColor: '--revo-grid-header-color',
|
|
28
|
+
headerBorder: '--revo-grid-header-border',
|
|
29
|
+
headerFocusedBg: '--revo-grid-header-focused-bg',
|
|
30
|
+
headerHoverBg: '--revo-grid-header-hover-bg',
|
|
31
|
+
cellBorder: '--revo-grid-cell-border',
|
|
32
|
+
cellVerticalBorder: '--revo-grid-cell-vertical-border',
|
|
33
|
+
focusedBg: '--revo-grid-focused-bg',
|
|
34
|
+
rowHover: '--revo-grid-row-hover',
|
|
35
|
+
rowHeadersBg: '--revo-grid-row-headers-bg',
|
|
36
|
+
rowHeadersColor: '--revo-grid-row-headers-color',
|
|
37
|
+
cellDisabledBg: '--revo-grid-cell-disabled-bg',
|
|
38
|
+
filterPanelBg: '--revo-grid-filter-panel-bg',
|
|
39
|
+
filterPanelBorder: '--revo-grid-filter-panel-border',
|
|
40
|
+
filterPanelShadow: '--revo-grid-filter-panel-shadow',
|
|
41
|
+
filterPanelInputBg: '--revo-grid-filter-panel-input-bg',
|
|
42
|
+
filterPanelDivider: '--revo-grid-filter-panel-divider',
|
|
43
|
+
filterPanelSelectBorder: '--revo-grid-filter-panel-select-border',
|
|
44
|
+
filterPanelSelectBorderHover: '--revo-grid-filter-panel-select-border-hover',
|
|
45
|
+
filterPanelReorderAccent: '--revo-grid-filter-panel-reorder-accent',
|
|
46
|
+
filterPanelReorderColor: '--revo-grid-filter-panel-reorder-color',
|
|
47
|
+
filterPanelText: '--revo-grid-filter-panel-text',
|
|
48
|
+
filterPanelMutedText: '--revo-grid-filter-panel-muted-text',
|
|
49
|
+
filterPanelFocusRing: '--revo-grid-filter-panel-focus-ring',
|
|
50
|
+
filterPanelIcon: '--revo-grid-filter-panel-icon',
|
|
51
|
+
filterPanelIconActive: '--revo-grid-filter-panel-icon-active',
|
|
52
|
+
filterPanelSelectArrow: '--revo-grid-filter-panel-select-arrow',
|
|
53
|
+
filterPanelSelectArrowDisabled: '--revo-grid-filter-panel-select-arrow-disabled',
|
|
54
|
+
fontFamily: '--revo-grid-font-family',
|
|
55
|
+
fontSize: '--revo-grid-font-size',
|
|
56
|
+
headerHeight: '--revo-grid-header-height',
|
|
57
|
+
headerFontSize: '--revo-grid-header-font-size',
|
|
58
|
+
headerFontWeight: '--revo-grid-header-font-weight',
|
|
59
|
+
headerTextTransform: '--revo-grid-header-text-transform',
|
|
60
|
+
headerTextAlign: '--revo-grid-header-text-align',
|
|
61
|
+
cellTextAlign: '--revo-grid-cell-text-align',
|
|
62
|
+
headerPadding: '--revo-grid-header-padding',
|
|
63
|
+
cellPadding: '--revo-grid-cell-padding',
|
|
64
|
+
selectionBorder: '--revo-grid-selection-border',
|
|
65
|
+
selectionBg: '--revo-grid-selection-bg',
|
|
66
|
+
autofillHandleBg: '--revo-grid-autofill-handle-bg',
|
|
67
|
+
autofillHandleBorder: '--revo-grid-autofill-handle-border',
|
|
68
|
+
rangeHandleBg: '--revo-grid-range-handle-bg',
|
|
69
|
+
temporaryRangeBorder: '--revo-grid-temporary-range-border',
|
|
70
|
+
temporarySelectionBorder: '--revo-grid-temporary-selection-border',
|
|
71
|
+
headerResizeHover: '--revo-grid-header-resize-hover',
|
|
72
|
+
buttonText: '--revo-grid-button-text',
|
|
73
|
+
buttonBg: '--revo-grid-button-bg',
|
|
74
|
+
buttonSuccessBg: '--revo-grid-button-success-bg',
|
|
75
|
+
buttonDangerBg: '--revo-grid-button-danger-bg',
|
|
76
|
+
buttonOutlineBorder: '--revo-grid-button-outline-border',
|
|
77
|
+
buttonOutlineText: '--revo-grid-button-outline-text',
|
|
78
|
+
};
|
|
79
|
+
/** Type-safe identity helper for reusable theme definitions. */
|
|
80
|
+
function defineTheme(theme) {
|
|
81
|
+
return theme;
|
|
82
|
+
}
|
|
12
83
|
|
|
13
84
|
function calculateRealSize({ count, originItemSize, sizes, }) {
|
|
14
85
|
const safeCount = Math.max(0, count);
|
|
@@ -1274,13 +1345,14 @@ class FilterPlugin extends BasePlugin {
|
|
|
1274
1345
|
this.filterNameIndexByType = Object.assign({}, filterNames);
|
|
1275
1346
|
this.filterFunctionsIndexedByType = Object.assign({}, filterCoreFunctionsIndexedByType);
|
|
1276
1347
|
this.filterProp = FILTER_PROP;
|
|
1348
|
+
this.allowDuplicateOperators = true;
|
|
1277
1349
|
if (config) {
|
|
1278
1350
|
this.initConfig(config);
|
|
1279
1351
|
}
|
|
1280
1352
|
const existingNodes = this.revogrid.registerVNode.filter(n => typeof n === 'object' && n.$tag$ !== FILTE_PANEL);
|
|
1281
1353
|
this.revogrid.registerVNode = [
|
|
1282
1354
|
...existingNodes,
|
|
1283
|
-
h("revogr-filter-panel", { filterNames: this.filterNameIndexByType, filterEntities: this.filterFunctionsIndexedByType, filterCaptions: (_a = config === null || config === void 0 ? void 0 : config.localization) === null || _a === void 0 ? void 0 : _a.captions, onFilterChange: e => this.onFilterChange(e.detail), onResetChange: e => this.onFilterReset(e.detail), disableDynamicFiltering: config === null || config === void 0 ? void 0 : config.disableDynamicFiltering, closeOnOutsideClick: config === null || config === void 0 ? void 0 : config.closeFilterPanelOnOutsideClick, ref: e => (this.pop = e) }, ' ', this.extraContent()),
|
|
1355
|
+
h("revogr-filter-panel", { filterNames: this.filterNameIndexByType, filterEntities: this.filterFunctionsIndexedByType, filterCaptions: (_a = config === null || config === void 0 ? void 0 : config.localization) === null || _a === void 0 ? void 0 : _a.captions, onFilterChange: e => this.onFilterChange(e.detail), onResetChange: e => this.onFilterReset(e.detail), disableDynamicFiltering: config === null || config === void 0 ? void 0 : config.disableDynamicFiltering, closeOnOutsideClick: config === null || config === void 0 ? void 0 : config.closeFilterPanelOnOutsideClick, allowDuplicateOperators: this.allowDuplicateOperators, ref: e => (this.pop = e) }, ' ', this.extraContent()),
|
|
1284
1356
|
];
|
|
1285
1357
|
const aftersourceset = async () => {
|
|
1286
1358
|
const filterCollectionProps = Object.keys(this.filterCollection);
|
|
@@ -1307,15 +1379,24 @@ class FilterPlugin extends BasePlugin {
|
|
|
1307
1379
|
};
|
|
1308
1380
|
this.addEventListener('headerclick', e => this.headerclick(e));
|
|
1309
1381
|
this.addEventListener(FILTER_CONFIG_CHANGED_EVENT, ({ detail }) => {
|
|
1310
|
-
if (!detail
|
|
1311
|
-
(typeof detail === 'object' &&
|
|
1312
|
-
(!detail.multiFilterItems ||
|
|
1313
|
-
!Object.keys(detail.multiFilterItems).length))) {
|
|
1382
|
+
if (!detail) {
|
|
1314
1383
|
this.clearFiltering();
|
|
1315
1384
|
return;
|
|
1316
1385
|
}
|
|
1317
1386
|
if (typeof detail === 'object') {
|
|
1318
|
-
|
|
1387
|
+
const detailKeys = Object.keys(detail);
|
|
1388
|
+
const preserveCurrentFilters = !detailKeys.includes('multiFilterItems') &&
|
|
1389
|
+
detailKeys.includes('allowDuplicateOperators');
|
|
1390
|
+
this.initConfig(preserveCurrentFilters
|
|
1391
|
+
? Object.assign(Object.assign({}, detail), { multiFilterItems: this.multiFilterItems }) : detail);
|
|
1392
|
+
if (!detail.multiFilterItems || !Object.keys(detail.multiFilterItems).length) {
|
|
1393
|
+
if (preserveCurrentFilters) {
|
|
1394
|
+
aftersourceset();
|
|
1395
|
+
return;
|
|
1396
|
+
}
|
|
1397
|
+
this.clearFiltering();
|
|
1398
|
+
return;
|
|
1399
|
+
}
|
|
1319
1400
|
}
|
|
1320
1401
|
aftersourceset();
|
|
1321
1402
|
});
|
|
@@ -1329,6 +1410,11 @@ class FilterPlugin extends BasePlugin {
|
|
|
1329
1410
|
return null;
|
|
1330
1411
|
}
|
|
1331
1412
|
initConfig(config) {
|
|
1413
|
+
var _a;
|
|
1414
|
+
this.allowDuplicateOperators = (_a = config.allowDuplicateOperators) !== null && _a !== void 0 ? _a : true;
|
|
1415
|
+
if (this.pop) {
|
|
1416
|
+
this.pop.allowDuplicateOperators = this.allowDuplicateOperators;
|
|
1417
|
+
}
|
|
1332
1418
|
if (config.multiFilterItems) {
|
|
1333
1419
|
this.multiFilterItems = Object.assign({}, config.multiFilterItems);
|
|
1334
1420
|
}
|
|
@@ -2865,4 +2951,4 @@ function getColumnDragPosition(targetItem, startItem, renderOffset, scrollOffset
|
|
|
2865
2951
|
return insertionEdge - renderOffset + scrollOffset;
|
|
2866
2952
|
}
|
|
2867
2953
|
|
|
2868
|
-
export { AutoSizeColumnPlugin as A, BasePlugin as B, ColumnAutoSizeMode as C, DimensionStore as D, ExportFilePlugin as E, FILTER_TRIMMED_TYPE as F, GroupingRowPlugin as G, SelectionStore as S, StretchColumn as a, ExportCsv as b, FILTER_CONFIG_CHANGED_EVENT as c,
|
|
2954
|
+
export { AutoSizeColumnPlugin as A, BasePlugin as B, ColumnAutoSizeMode as C, DimensionStore as D, ExportFilePlugin as E, FILTER_TRIMMED_TYPE as F, GroupingRowPlugin as G, getNextOrder as H, getComparer as I, SelectionStore as S, StretchColumn as a, ExportCsv as b, FILTER_CONFIG_CHANGED_EVENT as c, defineTheme as d, FILTE_PANEL as e, FilterPlugin as f, filterCoreFunctionsIndexedByType as g, filterTypes as h, isStretchPlugin as i, filterNames as j, doCollapse as k, doExpand as l, COLUMN_DRAG_MOVE_EVENT as m, COLUMN_DRAG_END_EVENT as n, BEFORE_COLUMN_DRAG_END_EVENT as o, COLUMN_DRAG_START_EVENT as p, ColumnMovePlugin as q, getLeftRelative as r, getColumnDragPosition as s, themeTokenCssVariables as t, SortingPlugin as u, hasActiveSorting as v, getSortingIndex as w, sortIndexByItems as x, defaultCellCompare as y, descCellCompare as z };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
import { Q as toFinite, U as keys, V as isArrayLike, W as baseIteratee, N as isArray, G as GRID_INTERNALS, X as isIterateeCall, a as getVisibleSourceItem, o as DISABLED_CLASS, C as CELL_CLASS, b as getSourceItem } from './dimension.helpers-
|
|
4
|
+
import { Q as toFinite, U as keys, V as isArrayLike, W as baseIteratee, N as isArray, G as GRID_INTERNALS, X as isIterateeCall, a as getVisibleSourceItem, o as DISABLED_CLASS, C as CELL_CLASS, b as getSourceItem } from './dimension.helpers-fl4HSSK9.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Converts `value` to an integer.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
4
|
import { i as isObject, b as baseGetTag, r as root, S as Symbol, a as isObjectLike, f as freeGlobal, c as isSymbol, t as toNumber } from './debounce-PCRWZliA.js';
|
|
5
|
-
import { S as StencilCore } from './index-
|
|
5
|
+
import { S as StencilCore } from './index-CtimkLsB.js';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Todo:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
import { O as KeyCodesEnum, P as OsPlatform, I as codesLetter, J as keyValues, E as EDIT_INPUT_WR } from './dimension.helpers-
|
|
4
|
+
import { O as KeyCodesEnum, P as OsPlatform, I as codesLetter, J as keyValues, E as EDIT_INPUT_WR } from './dimension.helpers-fl4HSSK9.js';
|
|
5
5
|
|
|
6
6
|
function isMetaKey(code) {
|
|
7
7
|
const keys = [
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
import { h } from './index-
|
|
5
|
-
import { Q as doPropMerge } from './column.service-
|
|
4
|
+
import { h } from './index-CtimkLsB.js';
|
|
5
|
+
import { Q as doPropMerge } from './column.service-Cfw3L0PN.js';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Dispatches a custom event to a specified target element.
|