@perspective-dev/viewer 5.0.0 → 5.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cdn/perspective-viewer.js +9 -9
- package/dist/cdn/perspective-viewer.js.map +4 -4
- package/dist/css/botanical.css +1 -1
- package/dist/css/dracula.css +1 -1
- package/dist/css/gruvbox-dark.css +1 -1
- package/dist/css/gruvbox.css +1 -1
- package/dist/css/icons.css +1 -1
- package/dist/css/intl/de.css +1 -1
- package/dist/css/intl/es.css +1 -1
- package/dist/css/intl/fr.css +1 -1
- package/dist/css/intl/ja.css +1 -1
- package/dist/css/intl/pt.css +1 -1
- package/dist/css/intl/zh.css +1 -1
- package/dist/css/intl.css +1 -1
- package/dist/css/monokai.css +1 -1
- package/dist/css/phosphor.css +1 -1
- package/dist/css/pro-dark.css +1 -1
- package/dist/css/pro.css +1 -1
- package/dist/css/solarized-dark.css +1 -1
- package/dist/css/solarized.css +1 -1
- package/dist/css/themes.css +1 -1
- package/dist/css/vaporwave.css +1 -1
- package/dist/docs/perspective-docs.json +1 -0
- package/dist/esm/column-format.d.ts +19 -28
- package/dist/esm/perspective-viewer.d.ts +2 -0
- package/dist/esm/perspective-viewer.inline.js +8 -8
- package/dist/esm/perspective-viewer.inline.js.map +4 -4
- package/dist/esm/perspective-viewer.js +9 -9
- package/dist/esm/perspective-viewer.js.map +4 -4
- package/dist/esm/providers.d.ts +79 -0
- package/dist/esm/ts-rs/CompactDisplay.d.ts +5 -0
- package/dist/esm/ts-rs/CurrencyCode.d.ts +1 -0
- package/dist/esm/ts-rs/CurrencyDisplay.d.ts +1 -0
- package/dist/esm/ts-rs/CurrencyNumberFormatStyle.d.ts +8 -0
- package/dist/esm/ts-rs/CurrencySign.d.ts +1 -0
- package/dist/esm/ts-rs/CustomDatetimeFormat.d.ts +1 -0
- package/dist/esm/ts-rs/CustomDatetimeStyleConfig.d.ts +54 -0
- package/dist/esm/ts-rs/CustomNumberFormatConfig.d.ts +34 -0
- package/dist/esm/ts-rs/DatetimeColorMode.d.ts +1 -0
- package/dist/esm/ts-rs/DatetimeFormatType.d.ts +6 -0
- package/dist/esm/ts-rs/FormatMode.d.ts +1 -0
- package/dist/esm/ts-rs/FormatUnit.d.ts +1 -0
- package/dist/esm/ts-rs/Notation.d.ts +17 -0
- package/dist/esm/ts-rs/NumberFormatStyle.d.ts +18 -0
- package/dist/esm/ts-rs/PanelViewerConfig.d.ts +43 -1
- package/dist/esm/ts-rs/PluginStaticConfig.d.ts +35 -0
- package/dist/esm/ts-rs/RestoreOptions.d.ts +19 -0
- package/dist/esm/ts-rs/RoundingMode.d.ts +1 -0
- package/dist/esm/ts-rs/RoundingPriority.d.ts +1 -0
- package/dist/esm/ts-rs/SignDisplay.d.ts +1 -0
- package/dist/esm/ts-rs/SimpleDatetimeFormat.d.ts +1 -0
- package/dist/esm/ts-rs/SimpleDatetimeStyleConfig.d.ts +24 -0
- package/dist/esm/ts-rs/SplitRollupMode.d.ts +9 -0
- package/dist/esm/ts-rs/StringColorMode.d.ts +1 -0
- package/dist/esm/ts-rs/TrailingZeroDisplay.d.ts +1 -0
- package/dist/esm/ts-rs/Unit.d.ts +1 -0
- package/dist/esm/ts-rs/UnitDisplay.d.ts +1 -0
- package/dist/esm/ts-rs/UnitNumberFormatStyle.d.ts +6 -0
- package/dist/esm/ts-rs/UseGrouping.d.ts +1 -0
- package/dist/esm/ts-rs/ViewerConfig.d.ts +43 -1
- package/dist/esm/ts-rs/ViewerConfigInitial.d.ts +175 -0
- package/dist/esm/ts-rs/ViewerConfigUpdate.d.ts +72 -0
- package/dist/esm/ts-rs/WindowSort.d.ts +7 -0
- package/dist/esm/ts-rs/WindowSortDir.d.ts +6 -0
- package/dist/esm/ts-rs/WindowSpec.d.ts +47 -0
- package/dist/esm/ts-rs/Windows.d.ts +10 -0
- package/dist/esm/ts-rs/WorkspaceConfigUpdate.d.ts +7 -6
- package/dist/wasm/perspective-viewer.d.ts +222 -26
- package/dist/wasm/perspective-viewer.js +378 -125
- package/dist/wasm/perspective-viewer.wasm +0 -0
- package/dist/wasm/perspective-viewer.wasm.d.ts +18 -15
- package/package.json +2 -1
- package/src/css/_viewer_bundle.css +1 -0
- package/src/css/column-selector.css +9 -0
- package/src/css/column-settings-panel.css +67 -2
- package/src/css/column-style.css +4 -3
- package/src/css/config-selector.css +60 -4
- package/src/css/containers/context-menu.css +12 -6
- package/src/css/containers/tabs.css +2 -2
- package/src/css/form/code-editor.css +2 -3
- package/src/css/form/mirrored-textarea.css +81 -0
- package/src/css/viewer.css +336 -0
- package/src/rust/agent/client/mod.rs +19 -0
- package/src/rust/agent/client/protocol.rs +320 -0
- package/src/rust/agent/client/transport.rs +287 -0
- package/src/rust/agent/client/turn.rs +174 -0
- package/src/rust/agent/config.rs +159 -0
- package/src/rust/agent/docs.rs +293 -0
- package/src/rust/agent/markdown/block.rs +509 -0
- package/src/rust/agent/markdown/entity.rs +52 -0
- package/src/rust/agent/markdown/events.rs +71 -0
- package/src/rust/agent/markdown/inline.rs +497 -0
- package/src/rust/agent/markdown/mod.rs +466 -0
- package/src/rust/agent/mod.rs +23 -0
- package/src/rust/agent/preamble.md +16 -0
- package/src/rust/agent/runtime.rs +201 -0
- package/src/rust/agent/slot.rs +236 -0
- package/src/rust/agent/tools.rs +1110 -0
- package/src/rust/components/chat_panel.rs +289 -0
- package/src/rust/components/column_selector/active_column.rs +21 -27
- package/src/rust/components/column_selector/column_selector_column_row.rs +73 -0
- package/src/rust/components/column_selector/config_selector.rs +83 -8
- package/src/rust/components/column_selector/expr_edit_button.rs +7 -1
- package/src/rust/components/column_selector/inactive_column.rs +8 -1
- package/src/rust/components/column_selector.rs +27 -3
- package/src/rust/components/column_settings_sidebar/style_tab.rs +2 -1
- package/src/rust/components/column_settings_sidebar/window_tab.rs +34 -0
- package/src/rust/components/column_settings_sidebar.rs +163 -16
- package/src/rust/components/containers/dragdrop_list.rs +110 -3
- package/src/rust/components/containers/sidebar.rs +99 -22
- package/src/rust/components/containers/split_panel.rs +6 -0
- package/src/rust/components/editable_header.rs +2 -0
- package/src/rust/components/form/code_editor.rs +14 -23
- package/src/rust/components/form/debug.rs +8 -5
- package/src/rust/components/form/mirrored_textarea.rs +165 -0
- package/src/rust/components/form/mod.rs +1 -0
- package/src/rust/components/main_panel.rs +5 -0
- package/src/rust/components/mod.rs +3 -0
- package/src/rust/components/panel_menu.rs +7 -0
- package/src/rust/components/panel_tab.rs +5 -0
- package/src/rust/components/portal.rs +7 -0
- package/src/rust/components/settings_panel.rs +80 -2
- package/src/rust/components/viewer/msg.rs +2 -0
- package/src/rust/components/viewer/panels.rs +9 -14
- package/src/rust/components/viewer/render.rs +14 -0
- package/src/rust/components/viewer/settings.rs +33 -1
- package/src/rust/components/viewer.rs +2 -0
- package/src/rust/components/window_editor.rs +985 -0
- package/src/rust/config/datetime_column_style/custom.rs +17 -0
- package/src/rust/config/datetime_column_style/simple.rs +10 -0
- package/src/rust/config/number_string_format.rs +33 -0
- package/src/rust/config/options.rs +18 -0
- package/src/rust/config/plugin_static_config.rs +120 -5
- package/src/rust/config/viewer_config.rs +220 -1
- package/src/rust/config/workspace_config.rs +7 -6
- package/src/rust/custom_elements/viewer.rs +209 -18
- package/src/rust/custom_events.rs +29 -0
- package/src/rust/lib.rs +17 -1
- package/src/rust/presentation/column_locator.rs +16 -1
- package/src/rust/presentation.rs +8 -0
- package/src/rust/queries/columns_iter_set.rs +7 -1
- package/src/rust/queries/get_viewer_config.rs +5 -1
- package/src/rust/renderer/dispatch.rs +85 -58
- package/src/rust/renderer.rs +34 -1
- package/src/rust/session/column_defaults_update.rs +18 -0
- package/src/rust/session/drag_drop_update.rs +18 -0
- package/src/rust/session/metadata.rs +64 -9
- package/src/rust/session/replace_expression_update.rs +2 -0
- package/src/rust/session.rs +7 -5
- package/src/rust/tasks/create_panel.rs +18 -8
- package/src/rust/tasks/edit_window.rs +155 -0
- package/src/rust/tasks/mod.rs +2 -0
- package/src/rust/tasks/restore_panel.rs +34 -17
- package/src/rust/tasks/sync_update_panels.rs +7 -23
- package/src/rust/utils/browser/dragdrop.rs +12 -0
- package/src/rust/utils/browser/tests/debounce.rs +49 -0
- package/src/rust/utils/debounce.rs +76 -27
- package/src/rust/workspace.rs +112 -20
- package/src/svg/pin-icon.svg +5 -0
- package/src/themes/icons.css +1 -0
- package/src/themes/intl/de.css +23 -0
- package/src/themes/intl/es.css +23 -0
- package/src/themes/intl/fr.css +23 -0
- package/src/themes/intl/ja.css +23 -0
- package/src/themes/intl/pt.css +23 -0
- package/src/themes/intl/zh.css +23 -0
- package/src/themes/intl.css +26 -1
- package/src/ts/column-format.ts +67 -46
- package/src/ts/perspective-viewer.ts +2 -0
- package/src/ts/providers.ts +96 -0
- package/src/ts/ts-rs/CompactDisplay.ts +3 -0
- package/src/ts/ts-rs/CurrencyCode.ts +3 -0
- package/src/ts/ts-rs/CurrencyDisplay.ts +3 -0
- package/src/ts/ts-rs/CurrencyNumberFormatStyle.ts +6 -0
- package/src/ts/ts-rs/CurrencySign.ts +3 -0
- package/src/ts/ts-rs/CustomDatetimeFormat.ts +3 -0
- package/src/ts/ts-rs/CustomDatetimeStyleConfig.ts +54 -0
- package/src/ts/ts-rs/CustomNumberFormatConfig.ts +25 -0
- package/src/ts/ts-rs/DatetimeColorMode.ts +3 -0
- package/src/ts/ts-rs/DatetimeFormatType.ts +8 -0
- package/src/ts/ts-rs/FormatMode.ts +3 -0
- package/src/ts/ts-rs/FormatUnit.ts +3 -0
- package/src/ts/ts-rs/Notation.ts +11 -0
- package/src/ts/ts-rs/NumberFormatStyle.ts +12 -0
- package/src/ts/ts-rs/PanelViewerConfig.ts +48 -1
- package/src/ts/ts-rs/PluginStaticConfig.ts +36 -1
- package/src/ts/ts-rs/RestoreOptions.ts +20 -0
- package/src/ts/ts-rs/RoundingMode.ts +3 -0
- package/src/ts/ts-rs/RoundingPriority.ts +3 -0
- package/src/ts/ts-rs/SignDisplay.ts +3 -0
- package/src/ts/ts-rs/SimpleDatetimeFormat.ts +3 -0
- package/src/ts/ts-rs/SimpleDatetimeStyleConfig.ts +25 -0
- package/src/ts/ts-rs/SplitRollupMode.ts +11 -0
- package/src/ts/ts-rs/StringColorMode.ts +3 -0
- package/src/ts/ts-rs/TrailingZeroDisplay.ts +3 -0
- package/src/ts/ts-rs/Unit.ts +3 -0
- package/src/ts/ts-rs/UnitDisplay.ts +3 -0
- package/src/ts/ts-rs/UnitNumberFormatStyle.ts +5 -0
- package/src/ts/ts-rs/UseGrouping.ts +3 -0
- package/src/ts/ts-rs/ViewerConfig.ts +48 -1
- package/src/ts/ts-rs/ViewerConfigInitial.ts +164 -0
- package/src/ts/ts-rs/ViewerConfigUpdate.ts +81 -2
- package/src/ts/ts-rs/WindowSort.ts +9 -0
- package/src/ts/ts-rs/WindowSortDir.ts +8 -0
- package/src/ts/ts-rs/WindowSpec.ts +47 -0
- package/src/ts/ts-rs/Windows.ts +10 -0
- package/src/ts/ts-rs/WorkspaceConfigUpdate.ts +7 -6
- /package/dist/wasm/snippets/{perspective-viewer-daeef4ceb066e6c7 → perspective-viewer-02e461f3d7062b26}/inline0.js +0 -0
- /package/dist/wasm/snippets/{perspective-viewer-daeef4ceb066e6c7 → perspective-viewer-02e461f3d7062b26}/inline1.js +0 -0
- /package/dist/wasm/snippets/{perspective-viewer-daeef4ceb066e6c7 → perspective-viewer-02e461f3d7062b26}/inline2.js +0 -0
- /package/dist/wasm/snippets/{perspective-viewer-daeef4ceb066e6c7 → perspective-viewer-02e461f3d7062b26}/inline3.js +0 -0
- /package/dist/wasm/snippets/{perspective-viewer-daeef4ceb066e6c7 → perspective-viewer-02e461f3d7062b26}/inline4.js +0 -0
- /package/dist/wasm/snippets/{perspective-viewer-daeef4ceb066e6c7 → perspective-viewer-02e461f3d7062b26}/inline5.js +0 -0
|
Binary file
|
|
@@ -27,6 +27,9 @@ export const perspectivedebugpluginelement_select_mode: (a: number, b: number) =
|
|
|
27
27
|
export const perspectivedebugpluginelement_update: (a: number, b: number) => number;
|
|
28
28
|
export const perspectiveviewerelement___get_model: (a: number) => number;
|
|
29
29
|
export const perspectiveviewerelement_addPanel: (a: number, b: number) => number;
|
|
30
|
+
export const perspectiveviewerelement_agentConfig: (a: number, b: number, c: number) => void;
|
|
31
|
+
export const perspectiveviewerelement_agentPrompt: (a: number, b: number, c: number) => number;
|
|
32
|
+
export const perspectiveviewerelement_agentReset: (a: number) => number;
|
|
30
33
|
export const perspectiveviewerelement_connectedCallback: (a: number, b: number) => void;
|
|
31
34
|
export const perspectiveviewerelement_copy: (a: number, b: number) => number;
|
|
32
35
|
export const perspectiveviewerelement_delete: (a: number) => number;
|
|
@@ -163,21 +166,21 @@ export const virtualdataslice_setIntegerCol: (a: number, b: number, c: number, d
|
|
|
163
166
|
export const virtualdataslice_setStringCol: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
|
|
164
167
|
export const virtualserver_handleRequest: (a: number, b: number, c: number) => number;
|
|
165
168
|
export const virtualserver_new: (a: number, b: number) => void;
|
|
166
|
-
export const
|
|
167
|
-
export const
|
|
168
|
-
export const
|
|
169
|
-
export const
|
|
170
|
-
export const
|
|
171
|
-
export const
|
|
172
|
-
export const
|
|
173
|
-
export const
|
|
174
|
-
export const
|
|
175
|
-
export const
|
|
176
|
-
export const
|
|
177
|
-
export const
|
|
178
|
-
export const
|
|
179
|
-
export const
|
|
180
|
-
export const
|
|
169
|
+
export const __wasm_bindgen_func_elem_17003: (a: number, b: number) => void;
|
|
170
|
+
export const __wasm_bindgen_func_elem_17713: (a: number, b: number) => void;
|
|
171
|
+
export const __wasm_bindgen_func_elem_18571: (a: number, b: number) => void;
|
|
172
|
+
export const __wasm_bindgen_func_elem_3989: (a: number, b: number) => void;
|
|
173
|
+
export const __wasm_bindgen_func_elem_23208: (a: number, b: number) => void;
|
|
174
|
+
export const __wasm_bindgen_func_elem_31328: (a: number, b: number, c: number, d: number) => void;
|
|
175
|
+
export const __wasm_bindgen_func_elem_17122: (a: number, b: number, c: number) => void;
|
|
176
|
+
export const __wasm_bindgen_func_elem_17718: (a: number, b: number, c: number) => void;
|
|
177
|
+
export const __wasm_bindgen_func_elem_6981: (a: number, b: number, c: number) => void;
|
|
178
|
+
export const __wasm_bindgen_func_elem_6982: (a: number, b: number, c: number) => void;
|
|
179
|
+
export const __wasm_bindgen_func_elem_6983: (a: number, b: number, c: number) => void;
|
|
180
|
+
export const __wasm_bindgen_func_elem_6979: (a: number, b: number, c: number) => void;
|
|
181
|
+
export const __wasm_bindgen_func_elem_23225: (a: number, b: number, c: number) => void;
|
|
182
|
+
export const __wasm_bindgen_func_elem_19569: (a: number, b: number) => number;
|
|
183
|
+
export const __wasm_bindgen_func_elem_17717: (a: number, b: number) => void;
|
|
181
184
|
export const __wbindgen_export: (a: number, b: number) => number;
|
|
182
185
|
export const __wbindgen_export2: (a: number, b: number, c: number, d: number) => number;
|
|
183
186
|
export const __wbindgen_export3: (a: number) => void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@perspective-dev/viewer",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.2.0",
|
|
4
4
|
"description": "The `<perspective-viewer>` Custom Element, frontend for Perspective",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"perspective",
|
|
@@ -69,6 +69,7 @@
|
|
|
69
69
|
"@types/node": ">=22",
|
|
70
70
|
"@types/react-dom": ">17 <20",
|
|
71
71
|
"prettier": ">=3 <4",
|
|
72
|
+
"ts-json-schema-generator": "^2.4.0",
|
|
72
73
|
"typedoc": "^0.28.7",
|
|
73
74
|
"typescript": ">=5 <6",
|
|
74
75
|
"zx": ">=8 <9"
|
|
@@ -181,10 +181,19 @@
|
|
|
181
181
|
border-color: var(--psp--color);
|
|
182
182
|
}
|
|
183
183
|
|
|
184
|
+
/* Composed inside a `.pivot-column` pill (the window editor's slots),
|
|
185
|
+
the row's `min-width: auto` floor would hold it at content width and
|
|
186
|
+
overflow the container-stretched pill - collapse-to-0 requires the
|
|
187
|
+
definite-width chain to pass through. */
|
|
188
|
+
.pivot-column > .column-selector-column {
|
|
189
|
+
min-width: 0;
|
|
190
|
+
}
|
|
191
|
+
|
|
184
192
|
.column-selector-column {
|
|
185
193
|
display: flex;
|
|
186
194
|
flex-direction: row-reverse;
|
|
187
195
|
align-items: center;
|
|
196
|
+
flex: 1 1 auto;
|
|
188
197
|
|
|
189
198
|
/* Expression column toolbar buttons */
|
|
190
199
|
span.expression-edit-button,
|
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
.item_title {
|
|
42
42
|
flex: 0 0 auto;
|
|
43
43
|
font-size: var(--label--font-size, 0.75em);
|
|
44
|
+
margin-top: 9px;
|
|
44
45
|
}
|
|
45
46
|
|
|
46
47
|
input {
|
|
@@ -70,7 +71,7 @@
|
|
|
70
71
|
|
|
71
72
|
.sidebar_header_contents {
|
|
72
73
|
display: flex;
|
|
73
|
-
margin: 8px;
|
|
74
|
+
margin: 7px 8px;
|
|
74
75
|
align-items: center;
|
|
75
76
|
border-radius: 3px;
|
|
76
77
|
outline-width: 1px;
|
|
@@ -117,6 +118,18 @@
|
|
|
117
118
|
content: var(--psp-label--color--content, "Color");
|
|
118
119
|
}
|
|
119
120
|
|
|
121
|
+
label#window-frame-label:before {
|
|
122
|
+
content: var(--psp-label--window-frame--content, "Frame");
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
label#window-offset-label:before {
|
|
126
|
+
content: var(--psp-label--window-offset--content, "Offset");
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
label#window-alpha-label:before {
|
|
130
|
+
content: var(--psp-label--window-alpha--content, "Alpha");
|
|
131
|
+
}
|
|
132
|
+
|
|
120
133
|
label#format-label:before {
|
|
121
134
|
content: var(--psp-label--format--content, "Format");
|
|
122
135
|
}
|
|
@@ -296,6 +309,58 @@
|
|
|
296
309
|
}
|
|
297
310
|
|
|
298
311
|
div.tab-title#Attributes:before {
|
|
299
|
-
content: var(--psp-label--attributes-tab--content, "
|
|
312
|
+
content: var(--psp-label--attributes-tab--content, "Expression");
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
div.tab-title#Window:before {
|
|
316
|
+
content: var(--psp-label--window-tab--content, "Window");
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
#window-tab {
|
|
321
|
+
display: flex;
|
|
322
|
+
flex-direction: column;
|
|
323
|
+
flex: 1;
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
#window-editor-container .window-editor-error {
|
|
327
|
+
color: var(--error--color, #ff5942);
|
|
328
|
+
font-size: 11px;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
:host {
|
|
332
|
+
#column_settings_sidebar {
|
|
333
|
+
.sidebar_header {
|
|
334
|
+
padding-right: 24px;
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
#window-order-by .column-selector-column-border {
|
|
339
|
+
padding-right: 8px;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
.sidebar_pin_button {
|
|
343
|
+
position: absolute;
|
|
344
|
+
right: 6px;
|
|
345
|
+
width: 14px;
|
|
346
|
+
height: 14px;
|
|
347
|
+
z-index: 8;
|
|
348
|
+
cursor: pointer;
|
|
349
|
+
background-color: var(--psp--color);
|
|
350
|
+
opacity: 0.5;
|
|
351
|
+
background-repeat: no-repeat;
|
|
352
|
+
-webkit-mask-size: cover;
|
|
353
|
+
mask-size: cover;
|
|
354
|
+
-webkit-mask-image: var(--psp-icon--pin--mask-image);
|
|
355
|
+
mask-image: var(--psp-icon--pin--mask-image);
|
|
356
|
+
transform: rotate(45deg);
|
|
357
|
+
&:hover {
|
|
358
|
+
opacity: 1;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
&.is-pinned {
|
|
362
|
+
transform: none;
|
|
363
|
+
opacity: 1;
|
|
364
|
+
}
|
|
300
365
|
}
|
|
301
366
|
}
|
package/src/css/column-style.css
CHANGED
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
|
|
14
14
|
:host {
|
|
15
15
|
#column-style-container,
|
|
16
|
-
#plugin-config-container
|
|
16
|
+
#plugin-config-container,
|
|
17
|
+
#window-editor-container {
|
|
17
18
|
outline: none;
|
|
18
19
|
user-select: none;
|
|
19
20
|
|
|
@@ -81,8 +82,8 @@
|
|
|
81
82
|
label {
|
|
82
83
|
display: block;
|
|
83
84
|
font-size: var(--label--font-size, 0.75em);
|
|
84
|
-
margin: 4px 0 2px 0;
|
|
85
85
|
width: 100%;
|
|
86
|
+
margin: 4px 0 2px 0;
|
|
86
87
|
}
|
|
87
88
|
|
|
88
89
|
span.reset-default-style-disabled {
|
|
@@ -160,7 +161,7 @@
|
|
|
160
161
|
|
|
161
162
|
.column-style-label {
|
|
162
163
|
display: flex;
|
|
163
|
-
padding:
|
|
164
|
+
padding: 0px;
|
|
164
165
|
}
|
|
165
166
|
|
|
166
167
|
.indent {
|
|
@@ -60,7 +60,8 @@
|
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
#top_panel
|
|
63
|
+
#top_panel,
|
|
64
|
+
#window-editor-slots {
|
|
64
65
|
display: flex;
|
|
65
66
|
flex-direction: column;
|
|
66
67
|
justify-content: stretch;
|
|
@@ -176,6 +177,7 @@
|
|
|
176
177
|
flex: 1 1 auto;
|
|
177
178
|
align-self: stretch;
|
|
178
179
|
position: relative;
|
|
180
|
+
min-height: 24px;
|
|
179
181
|
&:before {
|
|
180
182
|
content: " ";
|
|
181
183
|
position: absolute;
|
|
@@ -199,12 +201,46 @@
|
|
|
199
201
|
pointer-events: none;
|
|
200
202
|
}
|
|
201
203
|
|
|
204
|
+
/* `--psp-label--pivot--content` is set inline by the pivot slot
|
|
205
|
+
* when the ACTIVE plugin declares what the field draws (a `Y Line`
|
|
206
|
+
* groups by its X axis; a `Treemap` by its hierarchy). The slot
|
|
207
|
+
* emits an intl var reference rather than words, so these labels
|
|
208
|
+
* localize like any other.
|
|
209
|
+
*
|
|
210
|
+
* The role leads and the field's own name follows as a secondary
|
|
211
|
+
* label, so the reader learns what this slot DRAWS without losing
|
|
212
|
+
* which config field it IS - and a plugin that declares no role
|
|
213
|
+
* shows just the field name, exactly as before. The slot sets
|
|
214
|
+
* `--psp-label--pivot-secondary--display` as a presence flag,
|
|
215
|
+
* since CSS cannot test whether a custom property is set. */
|
|
202
216
|
#group_by label.pivot-selector-label:before {
|
|
203
|
-
content: var(
|
|
217
|
+
content: var(
|
|
218
|
+
--psp-label--pivot--content,
|
|
219
|
+
var(--psp-label--group-by--content, "Group By")
|
|
220
|
+
);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
#group_by label.pivot-selector-label:after {
|
|
224
|
+
content: "(" var(--psp-label--group-by--content, "Group By") ")";
|
|
204
225
|
}
|
|
205
226
|
|
|
206
227
|
#split_by label.pivot-selector-label:before {
|
|
207
|
-
content: var(
|
|
228
|
+
content: var(
|
|
229
|
+
--psp-label--pivot--content,
|
|
230
|
+
var(--psp-label--split-by--content, "Split By")
|
|
231
|
+
);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
#split_by label.pivot-selector-label:after {
|
|
235
|
+
content: "(" var(--psp-label--split-by--content, "Split By") ")";
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
#group_by label.pivot-selector-label:after,
|
|
239
|
+
#split_by label.pivot-selector-label:after {
|
|
240
|
+
display: var(--psp-label--pivot-secondary--display, none);
|
|
241
|
+
margin-left: 6px;
|
|
242
|
+
opacity: 0.6;
|
|
243
|
+
font-size: 0.9em;
|
|
208
244
|
}
|
|
209
245
|
|
|
210
246
|
#sort label.pivot-selector-label:before {
|
|
@@ -215,6 +251,21 @@
|
|
|
215
251
|
content: var(--psp-label--filter--content, "Where");
|
|
216
252
|
}
|
|
217
253
|
|
|
254
|
+
#window-source label.pivot-selector-label:before {
|
|
255
|
+
content: var(--psp-label--window-source--content, "Column");
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
#window-order-by label.pivot-selector-label:before {
|
|
259
|
+
content: var(--psp-label--window-order-by--content, "Order By");
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
#window-partition-by label.pivot-selector-label:before {
|
|
263
|
+
content: var(
|
|
264
|
+
--psp-label--window-partition-by--content,
|
|
265
|
+
"Partition By"
|
|
266
|
+
);
|
|
267
|
+
}
|
|
268
|
+
|
|
218
269
|
.rrow {
|
|
219
270
|
display: flex;
|
|
220
271
|
min-height: 24px;
|
|
@@ -303,7 +354,8 @@
|
|
|
303
354
|
}
|
|
304
355
|
}
|
|
305
356
|
|
|
306
|
-
.group_rollup_wrapper
|
|
357
|
+
.group_rollup_wrapper,
|
|
358
|
+
.split_rollup_wrapper {
|
|
307
359
|
margin-bottom: -30px;
|
|
308
360
|
flex: 0 1 auto;
|
|
309
361
|
color: var(--psp-inactive--color);
|
|
@@ -341,6 +393,10 @@
|
|
|
341
393
|
}
|
|
342
394
|
}
|
|
343
395
|
|
|
396
|
+
#window-editor-slots .pivot-column {
|
|
397
|
+
min-height: 24px;
|
|
398
|
+
}
|
|
399
|
+
|
|
344
400
|
.sort-icon {
|
|
345
401
|
display: inline-flex;
|
|
346
402
|
margin-left: auto;
|
|
@@ -38,12 +38,13 @@
|
|
|
38
38
|
cursor: pointer;
|
|
39
39
|
white-space: nowrap;
|
|
40
40
|
|
|
41
|
+
/* The dropdown-menu surface's inverted hover, from the same theme keys
|
|
42
|
+
* (`--psp--color`/`--psp--background-color` land on the host via the
|
|
43
|
+
* modal selector groups) — the Copy/Export pickers this menu spawns use
|
|
44
|
+
* exactly this idiom. */
|
|
41
45
|
&:hover {
|
|
42
|
-
background: var(
|
|
43
|
-
|
|
44
|
-
var(--psp-active--background, rgba(0, 0, 0, 0.08))
|
|
45
|
-
);
|
|
46
|
-
color: var(--psp-context-menu--hover--color, inherit);
|
|
46
|
+
background-color: var(--psp--color);
|
|
47
|
+
color: var(--psp--background-color);
|
|
47
48
|
}
|
|
48
49
|
|
|
49
50
|
&.disabled {
|
|
@@ -51,7 +52,7 @@
|
|
|
51
52
|
cursor: default;
|
|
52
53
|
|
|
53
54
|
&:hover {
|
|
54
|
-
background: transparent;
|
|
55
|
+
background-color: transparent;
|
|
55
56
|
color: inherit;
|
|
56
57
|
}
|
|
57
58
|
}
|
|
@@ -86,6 +87,11 @@
|
|
|
86
87
|
max-height: 50vh;
|
|
87
88
|
overflow-y: auto;
|
|
88
89
|
background-color: var(--psp--background-color, white);
|
|
90
|
+
|
|
91
|
+
/* The flyout is a CHILD of its (necessarily hovered, so inverted) parent
|
|
92
|
+
* item — un-hovered rows must not inherit the parent's inverted
|
|
93
|
+
* foreground. */
|
|
94
|
+
color: var(--psp--color);
|
|
89
95
|
border: 1px solid var(--psp-inactive--color);
|
|
90
96
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
|
|
91
97
|
}
|
|
@@ -28,11 +28,11 @@
|
|
|
28
28
|
display: flex;
|
|
29
29
|
flex-direction: column;
|
|
30
30
|
.tab-section:last-child {
|
|
31
|
-
padding:
|
|
31
|
+
padding: 13px 0px 12px 8px;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
.tab-section {
|
|
35
|
-
padding:
|
|
35
|
+
padding: 6px 0 0 8px;
|
|
36
36
|
flex: 0 0 auto;
|
|
37
37
|
overflow: hidden;
|
|
38
38
|
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/* ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
|
2
|
+
* ┃ ██████ ██████ ██████ █ █ █ █ █ █▄ ▀███ █ ┃
|
|
3
|
+
* ┃ ▄▄▄▄▄█ █▄▄▄▄▄ ▄▄▄▄▄█ ▀▀▀▀▀█▀▀▀▀▀ █ ▀▀▀▀▀█ ████████▌▐███ ███▄ ▀█ █ ▀▀▀▀▀ ┃
|
|
4
|
+
* ┃ █▀▀▀▀▀ █▀▀▀▀▀ █▀██▀▀ ▄▄▄▄▄ █ ▄▄▄▄▄█ ▄▄▄▄▄█ ████████▌▐███ █████▄ █ ▄▄▄▄▄ ┃
|
|
5
|
+
* ┃ █ ██████ █ ▀█▄ █ ██████ █ ███▌▐███ ███████▄ █ ┃
|
|
6
|
+
* ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
|
|
7
|
+
* ┃ Copyright (c) 2017, the Perspective Authors. ┃
|
|
8
|
+
* ┃ ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ ┃
|
|
9
|
+
* ┃ This file is part of the Perspective library, distributed under the terms ┃
|
|
10
|
+
* ┃ of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). ┃
|
|
11
|
+
* ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/* Geometry for `components/form/mirrored_textarea.rs`: an invisible
|
|
15
|
+
* `<textarea>` stacked over a `<pre>` mirror of its text, so that layout -
|
|
16
|
+
* not a JS resize loop - sizes the box.
|
|
17
|
+
*
|
|
18
|
+
* This file fixes ONLY what must agree between the two layers, because
|
|
19
|
+
* every disagreement shows up as a caret sitting somewhere other than the
|
|
20
|
+
* glyphs it is between. Consumers own the rest of the box (padding,
|
|
21
|
+
* border, min/max size) and choose the growth axes via `white-space`. */
|
|
22
|
+
|
|
23
|
+
:host {
|
|
24
|
+
.mirrored-textarea {
|
|
25
|
+
position: relative;
|
|
26
|
+
display: flex;
|
|
27
|
+
|
|
28
|
+
/* Anything affecting glyph advance or line breaking must be
|
|
29
|
+
* identical in both layers - hence one selector, never two. */
|
|
30
|
+
& > .mirrored-textarea-input,
|
|
31
|
+
& > .mirrored-textarea-mirror {
|
|
32
|
+
box-sizing: border-box;
|
|
33
|
+
font: inherit;
|
|
34
|
+
letter-spacing: inherit;
|
|
35
|
+
line-height: inherit;
|
|
36
|
+
tab-size: inherit;
|
|
37
|
+
margin: 0;
|
|
38
|
+
border: none;
|
|
39
|
+
white-space: pre-wrap;
|
|
40
|
+
overflow-wrap: anywhere;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
& > .mirrored-textarea-input {
|
|
44
|
+
position: absolute;
|
|
45
|
+
inset: 0;
|
|
46
|
+
width: 100%;
|
|
47
|
+
height: 100%;
|
|
48
|
+
|
|
49
|
+
/* The container's padding, so the two layers' text origins
|
|
50
|
+
* and wrap widths coincide however a consumer pads the box:
|
|
51
|
+
* the mirror starts at the content box, and this element
|
|
52
|
+
* covers the padding box and re-applies the same inset. */
|
|
53
|
+
padding: inherit;
|
|
54
|
+
|
|
55
|
+
resize: none;
|
|
56
|
+
outline: none;
|
|
57
|
+
overscroll-behavior: none;
|
|
58
|
+
|
|
59
|
+
/* Functional, not visual: keystrokes, selection and caret
|
|
60
|
+
* only. The glyphs the user reads are the mirror's. */
|
|
61
|
+
color: transparent;
|
|
62
|
+
background-color: transparent;
|
|
63
|
+
caret-color: var(--psp--color, #161616);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
& > .mirrored-textarea-mirror {
|
|
67
|
+
/* Clicks and drags belong to the input layer above. */
|
|
68
|
+
pointer-events: none;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/* The mirror paints everything the user sees, INCLUDING the
|
|
72
|
+
* placeholder: a consumer supplies it as `content` on
|
|
73
|
+
* `.is-empty`, which the intl label mechanism can localize.
|
|
74
|
+
* The native `placeholder` attribute stays for assistive tech
|
|
75
|
+
* but is never painted - it would double up, and no stylesheet
|
|
76
|
+
* can translate an attribute. */
|
|
77
|
+
& > .mirrored-textarea-input::placeholder {
|
|
78
|
+
color: transparent;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|