@malloydata/render 0.0.108-dev231130212526 → 0.0.108
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/component/render.js
CHANGED
|
@@ -32,12 +32,49 @@ exports.MalloyRender = void 0;
|
|
|
32
32
|
const lit_1 = require("lit");
|
|
33
33
|
const decorators_js_1 = require("lit/decorators.js");
|
|
34
34
|
require("./table");
|
|
35
|
+
// Get the first valid theme value or fallback to CSS variable
|
|
36
|
+
function getThemeValue(prop, ...themes) {
|
|
37
|
+
let value;
|
|
38
|
+
for (const theme of themes) {
|
|
39
|
+
value = theme === null || theme === void 0 ? void 0 : theme.text(prop);
|
|
40
|
+
if (typeof value !== 'undefined')
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
// If no theme overrides, convert prop name from camelCase to kebab and pull from --malloy-theme-- variable
|
|
44
|
+
return (value !== null && value !== void 0 ? value : `var(--malloy-theme--${prop
|
|
45
|
+
.replace(/([a-z])([A-Z])/g, '$1-$2')
|
|
46
|
+
.toLowerCase()})`);
|
|
47
|
+
}
|
|
35
48
|
let MalloyRender = exports.MalloyRender = class MalloyRender extends lit_1.LitElement {
|
|
36
49
|
render() {
|
|
37
|
-
const
|
|
50
|
+
const modelTag = this.result.resultExplore.modelTag;
|
|
51
|
+
const { tag: resultTag } = this.result.tagParse();
|
|
52
|
+
const modelTheme = modelTag.tag('theme');
|
|
53
|
+
const localTheme = resultTag.tag('theme');
|
|
54
|
+
const tableRowHeight = getThemeValue('tableRowHeight', localTheme, modelTheme);
|
|
55
|
+
const tableBodyColor = getThemeValue('tableBodyColor', localTheme, modelTheme);
|
|
56
|
+
const tableFontSize = getThemeValue('tableFontSize', localTheme, modelTheme);
|
|
57
|
+
const tableHeaderColor = getThemeValue('tableHeaderColor', localTheme, modelTheme);
|
|
58
|
+
const tableHeaderWeight = getThemeValue('tableHeaderWeight', localTheme, modelTheme);
|
|
59
|
+
const tableBodyWeight = getThemeValue('tableBodyWeight', localTheme, modelTheme);
|
|
60
|
+
const tableBorder = getThemeValue('tableBorder', localTheme, modelTheme);
|
|
61
|
+
const tableBackground = getThemeValue('tableBackground', localTheme, modelTheme);
|
|
62
|
+
const tableGutterSize = getThemeValue('tableGutterSize', localTheme, modelTheme);
|
|
63
|
+
const tablePinnedBackground = getThemeValue('tablePinnedBackground', localTheme, modelTheme);
|
|
64
|
+
const tablePinnedBorder = getThemeValue('tablePinnedBorder', localTheme, modelTheme);
|
|
38
65
|
const dynamicStyle = (0, lit_1.html) `<style>
|
|
39
66
|
:host {
|
|
40
|
-
--table-row-height: ${
|
|
67
|
+
--malloy-render--table-row-height: ${tableRowHeight};
|
|
68
|
+
--malloy-render--table-body-color: ${tableBodyColor};
|
|
69
|
+
--malloy-render--table-font-size: ${tableFontSize};
|
|
70
|
+
--malloy-render--table-header-color: ${tableHeaderColor};
|
|
71
|
+
--malloy-render--table-header-weight: ${tableHeaderWeight};
|
|
72
|
+
--malloy-render--table-body-weight: ${tableBodyWeight};
|
|
73
|
+
--malloy-render--table-border: ${tableBorder};
|
|
74
|
+
--malloy-render--table-background: ${tableBackground};
|
|
75
|
+
--malloy-render--table-gutter-size: ${tableGutterSize};
|
|
76
|
+
--malloy-render--table-pinned-background: ${tablePinnedBackground};
|
|
77
|
+
--malloy-render--table-pinned-border: ${tablePinnedBorder};
|
|
41
78
|
}
|
|
42
79
|
</style>`;
|
|
43
80
|
return (0, lit_1.html) `${dynamicStyle}<malloy-table
|
|
@@ -48,19 +85,20 @@ let MalloyRender = exports.MalloyRender = class MalloyRender extends lit_1.LitEl
|
|
|
48
85
|
};
|
|
49
86
|
MalloyRender.styles = (0, lit_1.css) `
|
|
50
87
|
:host {
|
|
51
|
-
--table-
|
|
52
|
-
--table-
|
|
53
|
-
--table-header-
|
|
54
|
-
--table-
|
|
55
|
-
--table-body-
|
|
56
|
-
--table-
|
|
57
|
-
--table-
|
|
58
|
-
--table-
|
|
59
|
-
--table-
|
|
60
|
-
--table-pinned-
|
|
88
|
+
--malloy-theme--table-row-height: 28px;
|
|
89
|
+
--malloy-theme--table-font-size: 12px;
|
|
90
|
+
--malloy-theme--table-header-color: #5d626b;
|
|
91
|
+
--malloy-theme--table-header-weight: bold;
|
|
92
|
+
--malloy-theme--table-body-color: #727883;
|
|
93
|
+
--malloy-theme--table-body-weight: 400;
|
|
94
|
+
--malloy-theme--table-border: 1px solid #e5e7eb;
|
|
95
|
+
--malloy-theme--table-background: white;
|
|
96
|
+
--malloy-theme--table-gutter-size: 15px;
|
|
97
|
+
--malloy-theme--table-pinned-background: #f5fafc;
|
|
98
|
+
--malloy-theme--table-pinned-border: 1px solid #daedf3;
|
|
61
99
|
|
|
62
100
|
font-family: Inter, system-ui, sans-serif;
|
|
63
|
-
font-size: var(--table-font-size);
|
|
101
|
+
font-size: var(--malloy-render--table-font-size);
|
|
64
102
|
}
|
|
65
103
|
|
|
66
104
|
@supports (font-variation-settings: normal) {
|
package/dist/component/table.js
CHANGED
|
@@ -216,7 +216,7 @@ Table.styles = (0, lit_1.css) `
|
|
|
216
216
|
|
|
217
217
|
table {
|
|
218
218
|
border-collapse: collapse;
|
|
219
|
-
background: var(--table-background);
|
|
219
|
+
background: var(--malloy-render--table-background);
|
|
220
220
|
}
|
|
221
221
|
|
|
222
222
|
th {
|
|
@@ -228,7 +228,7 @@ Table.styles = (0, lit_1.css) `
|
|
|
228
228
|
}
|
|
229
229
|
|
|
230
230
|
.column-cell {
|
|
231
|
-
height: var(--table-row-height);
|
|
231
|
+
height: var(--malloy-render--table-row-height);
|
|
232
232
|
overflow: hidden;
|
|
233
233
|
white-space: nowrap;
|
|
234
234
|
text-align: left;
|
|
@@ -238,13 +238,13 @@ Table.styles = (0, lit_1.css) `
|
|
|
238
238
|
}
|
|
239
239
|
|
|
240
240
|
td.column-cell {
|
|
241
|
-
font-weight: var(--table-body-weight);
|
|
242
|
-
color: var(--table-body-color);
|
|
241
|
+
font-weight: var(--malloy-render--table-body-weight);
|
|
242
|
+
color: var(--malloy-render--table-body-color);
|
|
243
243
|
}
|
|
244
244
|
|
|
245
245
|
th.column-cell {
|
|
246
|
-
font-weight: var(--table-header-weight);
|
|
247
|
-
color: var(--table-header-color);
|
|
246
|
+
font-weight: var(--malloy-render--table-header-weight);
|
|
247
|
+
color: var(--malloy-render--table-header-color);
|
|
248
248
|
}
|
|
249
249
|
|
|
250
250
|
.column-cell.numeric {
|
|
@@ -253,25 +253,25 @@ Table.styles = (0, lit_1.css) `
|
|
|
253
253
|
}
|
|
254
254
|
|
|
255
255
|
.cell-wrapper {
|
|
256
|
-
height: var(--table-row-height);
|
|
256
|
+
height: var(--malloy-render--table-row-height);
|
|
257
257
|
display: flex;
|
|
258
258
|
align-items: center;
|
|
259
259
|
overflow: hidden;
|
|
260
260
|
}
|
|
261
261
|
|
|
262
262
|
.cell-content {
|
|
263
|
-
border-top: var(--table-border);
|
|
264
|
-
height: var(--table-row-height);
|
|
265
|
-
line-height: var(--table-row-height);
|
|
263
|
+
border-top: var(--malloy-render--table-border);
|
|
264
|
+
height: var(--malloy-render--table-row-height);
|
|
265
|
+
line-height: var(--malloy-render--table-row-height);
|
|
266
266
|
flex: 1;
|
|
267
267
|
overflow: hidden;
|
|
268
268
|
text-overflow: ellipsis;
|
|
269
269
|
}
|
|
270
270
|
|
|
271
271
|
.cell-gutter {
|
|
272
|
-
border-top: var(--table-border);
|
|
273
|
-
height: var(--table-row-height);
|
|
274
|
-
width: var(--table-gutter-size);
|
|
272
|
+
border-top: var(--malloy-render--table-border);
|
|
273
|
+
height: var(--malloy-render--table-row-height);
|
|
274
|
+
width: var(--malloy-render--table-gutter-size);
|
|
275
275
|
transition: border-color 0.25s;
|
|
276
276
|
}
|
|
277
277
|
|
|
@@ -284,11 +284,11 @@ Table.styles = (0, lit_1.css) `
|
|
|
284
284
|
}
|
|
285
285
|
|
|
286
286
|
.pinned-header th {
|
|
287
|
-
background: var(--table-background);
|
|
287
|
+
background: var(--malloy-render--table-background);
|
|
288
288
|
}
|
|
289
289
|
|
|
290
290
|
.pinned-header.scrolled th {
|
|
291
|
-
background: var(--table-pinned-background);
|
|
291
|
+
background: var(--malloy-render--table-pinned-background);
|
|
292
292
|
box-shadow: 0 0 0.5em rgba(0, 0, 0, 0.5);
|
|
293
293
|
}
|
|
294
294
|
|
|
@@ -296,7 +296,7 @@ Table.styles = (0, lit_1.css) `
|
|
|
296
296
|
.cell-content,
|
|
297
297
|
.cell-gutter,
|
|
298
298
|
.cell-gutter.hide-gutter-border {
|
|
299
|
-
border-top: var(--table-pinned-border);
|
|
299
|
+
border-top: var(--malloy-render--table-pinned-border);
|
|
300
300
|
}
|
|
301
301
|
}
|
|
302
302
|
`;
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.Nested = exports.Products2Column = exports.ProductsTableCustomTheme = exports.ProductsTable = void 0;
|
|
7
7
|
const tables_malloy_raw_1 = __importDefault(require("./static/tables.malloy?raw"));
|
|
8
8
|
const util_1 = require("./util");
|
|
9
9
|
require("./themes.css");
|
|
@@ -50,11 +50,4 @@ exports.Nested = {
|
|
|
50
50
|
view: 'nested',
|
|
51
51
|
},
|
|
52
52
|
};
|
|
53
|
-
exports.NestedCompact = {
|
|
54
|
-
args: {
|
|
55
|
-
source: 'products',
|
|
56
|
-
view: 'nested',
|
|
57
|
-
classes: 'compact',
|
|
58
|
-
},
|
|
59
|
-
};
|
|
60
53
|
//# sourceMappingURL=tables.stories.js.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Meta } from '@storybook/html';
|
|
2
|
+
import './themes.css';
|
|
3
|
+
import '../component/render';
|
|
4
|
+
declare const meta: Meta;
|
|
5
|
+
export default meta;
|
|
6
|
+
export declare const ModelThemeOverride: {
|
|
7
|
+
args: {
|
|
8
|
+
source: string;
|
|
9
|
+
view: string;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
export declare const ViewThemeOverride: {
|
|
13
|
+
args: {
|
|
14
|
+
source: string;
|
|
15
|
+
view: string;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
export declare const ViewThemeOverrideCSS: {
|
|
19
|
+
args: {
|
|
20
|
+
source: string;
|
|
21
|
+
view: string;
|
|
22
|
+
classes: string;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ViewThemeOverrideCSS = exports.ViewThemeOverride = exports.ModelThemeOverride = void 0;
|
|
7
|
+
const themes_malloy_raw_1 = __importDefault(require("./static/themes.malloy?raw"));
|
|
8
|
+
const util_1 = require("./util");
|
|
9
|
+
require("./themes.css");
|
|
10
|
+
require("../component/render");
|
|
11
|
+
const meta = {
|
|
12
|
+
title: 'Malloy Next/Themes',
|
|
13
|
+
render: ({ classes }, context) => {
|
|
14
|
+
const parent = document.createElement('div');
|
|
15
|
+
parent.style.height = '1000px';
|
|
16
|
+
parent.style.position = 'relative';
|
|
17
|
+
const el = document.createElement('malloy-render');
|
|
18
|
+
if (classes)
|
|
19
|
+
el.classList.add(classes);
|
|
20
|
+
el.result = context.loaded['result'];
|
|
21
|
+
parent.appendChild(el);
|
|
22
|
+
return parent;
|
|
23
|
+
},
|
|
24
|
+
loaders: [(0, util_1.createLoader)(themes_malloy_raw_1.default)],
|
|
25
|
+
argTypes: {},
|
|
26
|
+
};
|
|
27
|
+
exports.default = meta;
|
|
28
|
+
exports.ModelThemeOverride = {
|
|
29
|
+
args: {
|
|
30
|
+
source: 'products',
|
|
31
|
+
view: `records`,
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
exports.ViewThemeOverride = {
|
|
35
|
+
args: {
|
|
36
|
+
source: 'products',
|
|
37
|
+
view: `records_override`,
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
exports.ViewThemeOverrideCSS = {
|
|
41
|
+
args: {
|
|
42
|
+
source: 'products',
|
|
43
|
+
view: `records_override`,
|
|
44
|
+
classes: 'night',
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=themes.stories.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@malloydata/render",
|
|
3
|
-
"version": "0.0.108
|
|
3
|
+
"version": "0.0.108",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@lit/context": "^1.1.0",
|
|
27
|
-
"@malloydata/malloy": "^0.0.108
|
|
27
|
+
"@malloydata/malloy": "^0.0.108",
|
|
28
28
|
"@types/luxon": "^2.4.0",
|
|
29
29
|
"lit": "^3.0.2",
|
|
30
30
|
"lodash": "^4.17.20",
|