@vuu-ui/vuu-table-extras 0.7.6-debug → 0.8.0-debug
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/cjs/index.js +388 -39
- package/cjs/index.js.map +4 -4
- package/esm/index.js +369 -6
- package/esm/index.js.map +4 -4
- package/index.css +45 -0
- package/index.css.map +3 -3
- package/package.json +14 -11
- package/types/cell-renderers/background-cell/BackgroundCell.d.ts +2 -0
- package/types/cell-renderers/background-cell/index.d.ts +1 -0
- package/types/cell-renderers/background-cell/useDirection.d.ts +3 -0
- package/types/cell-renderers/index.d.ts +2 -0
- package/types/cell-renderers/progress-cell/ProgressCell.d.ts +1 -0
- package/types/cell-renderers/progress-cell/index.d.ts +1 -0
- package/types/column-expression-input/ColumnExpressionInput.d.ts +9 -0
- package/types/column-expression-input/column-function-descriptors.d.ts +15 -0
- package/types/column-expression-input/column-language-parser/ColumnExpressionLanguage.d.ts +2 -0
- package/types/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.d.ts +58 -0
- package/types/column-expression-input/column-language-parser/column-expression-parse-utils.d.ts +5 -0
- package/types/column-expression-input/column-language-parser/generated/column-parser.d.ts +2 -0
- package/types/column-expression-input/column-language-parser/generated/column-parser.terms.d.ts +24 -0
- package/types/column-expression-input/column-language-parser/index.d.ts +3 -0
- package/types/column-expression-input/column-language-parser/test.d.mts +1 -0
- package/types/column-expression-input/functionDocInfo.d.ts +2 -0
- package/types/column-expression-input/highlighting.d.ts +1 -0
- package/types/column-expression-input/index.d.ts +4 -0
- package/types/column-expression-input/theme.d.ts +1 -0
- package/types/column-expression-input/useColumnAutoComplete.d.ts +6 -0
- package/types/column-expression-input/useColumnExpressionEditor.d.ts +29 -0
- package/types/column-expression-input/useColumnExpressionSuggestionProvider.d.ts +8 -0
- package/types/datagrid-configuration-ui/calculated-column-panel/CalculatedColumnPanel.d.ts +11 -0
- package/types/datagrid-configuration-ui/calculated-column-panel/index.d.ts +1 -0
- package/types/datagrid-configuration-ui/column-picker/ColumnListItem.d.ts +4 -0
- package/types/datagrid-configuration-ui/column-picker/ColumnPicker.d.ts +13 -0
- package/types/datagrid-configuration-ui/column-picker/index.d.ts +1 -0
- package/types/datagrid-configuration-ui/column-settings-panel/ColumnSettingsPanel.d.ts +9 -0
- package/types/datagrid-configuration-ui/column-settings-panel/index.d.ts +1 -0
- package/types/datagrid-configuration-ui/column-type-panel/ColumnTypePanel.d.ts +10 -0
- package/types/datagrid-configuration-ui/column-type-panel/NumericColumnPanel.d.ts +4 -0
- package/types/datagrid-configuration-ui/column-type-panel/StringColumnPanel.d.ts +4 -0
- package/types/datagrid-configuration-ui/column-type-panel/index.d.ts +1 -0
- package/types/datagrid-configuration-ui/index.d.ts +1 -0
- package/types/datagrid-configuration-ui/settings-panel/DatagridSettingsPanel.d.ts +10 -0
- package/types/datagrid-configuration-ui/settings-panel/GridSettingsPanel.d.ts +9 -0
- package/types/datagrid-configuration-ui/settings-panel/index.d.ts +1 -0
- package/types/datagrid-configuration-ui/settings-panel/useGridSettings.d.ts +59 -0
- package/types/datasource-stats/DatasourceStats.d.ts +8 -0
- package/types/datasource-stats/index.d.ts +1 -0
- package/types/index.d.ts +5 -0
- package/types/table-settings/calculated-column-panel/CalculatedColumnPanel.d.ts +11 -0
- package/types/table-settings/calculated-column-panel/index.d.ts +1 -0
- package/types/table-settings/column-picker/ColumnListItem.d.ts +4 -0
- package/types/table-settings/column-picker/ColumnPicker.d.ts +13 -0
- package/types/table-settings/column-picker/index.d.ts +1 -0
- package/types/table-settings/column-settings-panel/ColumnSettingsPanel.d.ts +9 -0
- package/types/table-settings/column-settings-panel/index.d.ts +1 -0
- package/types/table-settings/column-type-panel/ColumnTypePanel.d.ts +10 -0
- package/types/table-settings/column-type-panel/NumericColumnPanel.d.ts +4 -0
- package/types/table-settings/column-type-panel/StringColumnPanel.d.ts +4 -0
- package/types/table-settings/column-type-panel/index.d.ts +1 -0
- package/types/table-settings/index.d.ts +1 -0
- package/types/table-settings/settings-panel/DatagridSettingsPanel.d.ts +10 -0
- package/types/table-settings/settings-panel/GridSettingsPanel.d.ts +9 -0
- package/types/table-settings/settings-panel/index.d.ts +1 -0
- package/types/table-settings/settings-panel/useGridSettings.d.ts +59 -0
- package/LICENSE +0 -201
package/index.css
CHANGED
|
@@ -535,4 +535,49 @@
|
|
|
535
535
|
display: flex;
|
|
536
536
|
gap: var(--salt-size-unit);
|
|
537
537
|
}
|
|
538
|
+
|
|
539
|
+
/* src/table-settings/column-type-panel/ColumnTypePanel.css */
|
|
540
|
+
.vuuColumnTypePanel {
|
|
541
|
+
--settings-panel-marginTop: 0px;
|
|
542
|
+
}
|
|
543
|
+
.vuuColumnTypePanel-renderer {
|
|
544
|
+
--saltButton-background: var(--salt-container-secondary-background);
|
|
545
|
+
--saltButton-background-hover: var(--salt-actionable-secondary-background-hover);
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
/* src/table-settings/column-settings-panel/ColumnSettingsPanel.css */
|
|
549
|
+
.vuuColumnSettingsPanel {
|
|
550
|
+
--saltFormField-margin: 3px 0;
|
|
551
|
+
--saltFormField-label-width: 80px;
|
|
552
|
+
--saltPanel-padding: var(--salt-size-unit);
|
|
553
|
+
align-items: flex-start;
|
|
554
|
+
border-left: solid 1px var(--salt-container-primary-borderColor);
|
|
555
|
+
display: flex;
|
|
556
|
+
flex-direction: column;
|
|
557
|
+
flex-shrink: 0;
|
|
558
|
+
min-width: 220px;
|
|
559
|
+
padding-left: calc(var(--salt-size-unit) * 2);
|
|
560
|
+
width: var(--vuuColumnSettings-width, auto);
|
|
561
|
+
}
|
|
562
|
+
.vuuColumnSettingsPanel-columnTabs {
|
|
563
|
+
--saltFormField-margin: 0;
|
|
564
|
+
}
|
|
565
|
+
.vuuColumnSettingsPanel-columnTabs .saltFormField {
|
|
566
|
+
margin-left: 0 !important;
|
|
567
|
+
}
|
|
568
|
+
.vuuColumnSettingsPanel .saltPanel {
|
|
569
|
+
--saltFormField-margin: 3px 0;
|
|
570
|
+
margin-top: var(--settings-panel-marginTop, var(--salt-size-unit));
|
|
571
|
+
align-items: stretch;
|
|
572
|
+
display: flex;
|
|
573
|
+
flex-direction: column;
|
|
574
|
+
gap: var(--salt-size-unit);
|
|
575
|
+
}
|
|
576
|
+
.vuuColumnPanelSwitch {
|
|
577
|
+
white-space: nowrap;
|
|
578
|
+
width: 100%;
|
|
579
|
+
}
|
|
580
|
+
.vuuColumnSettingsPanel .saltSwitch {
|
|
581
|
+
margin-left: auto;
|
|
582
|
+
}
|
|
538
583
|
/*# sourceMappingURL=index.css.map */
|
package/index.css.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCell.css", "../../../packages/vuu-table-extras/src/cell-renderers/background-cell/FlashingBackground.css", "../../../packages/vuu-table-extras/src/cell-renderers/progress-cell/ProgressCell.css", "../../../packages/vuu-table-extras/src/column-expression-input/ColumnExpressionInput.css", "../../../packages/vuu-table-extras/src/datagrid-configuration-ui/column-picker/ColumnListItem.css", "../../../packages/vuu-table-extras/src/datagrid-configuration-ui/column-picker/ColumnPicker.css", "../../../packages/vuu-table-extras/src/datagrid-configuration-ui/column-type-panel/ColumnTypePanel.css", "../../../packages/vuu-table-extras/src/datagrid-configuration-ui/column-settings-panel/ColumnSettingsPanel.css", "../../../packages/vuu-table-extras/src/datagrid-configuration-ui/settings-panel/GridSettingsPanel.css", "../../../packages/vuu-table-extras/src/datagrid-configuration-ui/calculated-column-panel/CalculatedColumnPanel.css", "../../../packages/vuu-table-extras/src/datagrid-configuration-ui/settings-panel/DatagridSettingsPanel.css", "../../../packages/vuu-table-extras/src/datasource-stats/DatasourceStats.css"],
|
|
4
|
-
"sourcesContent": [".vuuTable td:has(> .vuuBackgroundCell){\n padding: 0;\n text-align: right;\n} \n\n.vuuBackgroundCell {\n padding-right: var(--salt-size-unit);\n position: relative;\n z-index: -1;\n}\n\n.vuuBackgroundCell-flasher {\n color: transparent;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: -1;\n}\n\n.vuuBackgroundCell-flasher {\n text-align: left;\n}\n.vuuBackgroundCell-flasher + .num {\n padding-left: 8px;\n}\n\n.right .vuuBackgroundCell-flasher {\n text-align: right;\n}\n.right .vuuBackgroundCell-flasher + .num {\n padding-right: 8px;\n}\n\n.up1 > .vuuBackgroundCell-flasher {\n animation-duration: 30s;\n animation-name: reactbgup1;\n}\n\n.up2 > .vuuBackgroundCell-flasher {\n animation-duration: 30s;\n animation-name: reactbgup2;\n}\n\n.down1 > .vuuBackgroundCell-flasher {\n animation-duration: 30s;\n animation-name: reactbgdown1;\n}\n\n.down2 > .vuuBackgroundCell-flasher {\n animation-duration: 30s;\n animation-name: reactbgdown2;\n}\n\n.up1.vuuBackgroundCell-arrowOnly > .vuuBackgroundCell-flasher {\n animation-duration: 30s;\n animation-name: reactarrowup1;\n}\n\n.up2.vuuBackgroundCell-arrowOnly > .vuuBackgroundCell-flasher {\n animation-duration: 30s;\n animation-name: reactarrowup2;\n}\n\n.down1.vuuBackgroundCell-arrowOnly > .vuuBackgroundCell-flasher {\n animation-duration: 30s;\n animation-name: reactarrowdown1;\n}\n\n.down2.vuuBackgroundCell-arrowOnly > .vuuBackgroundCell-flasher {\n animation-duration: 30s;\n animation-name: reactarrowdown2;\n}\n\n.up1.vuuBackgroundCell-arrowBackground > .vuuBackgroundCell-flasher {\n animation-duration: 30s;\n animation-name: reactbgarrowup1;\n}\n\n.up2.vuuBackgroundCell-arrowBackground > .vuuBackgroundCell-flasher {\n animation-duration: 30s;\n animation-name: reactbgarrowup2;\n}\n\n.down1.vuuBackgroundCell-arrowBackground > .vuuBackgroundCell-flasher {\n animation-duration: 30s;\n animation-name: reactbgarrowdown1;\n}\n\n.down2.vuuBackgroundCell-arrowBackground > .vuuBackgroundCell-flasher {\n animation-duration: 30s;\n animation-name: reactbgarrowdown2;\n}\n", "@keyframes reactbgup1 {\n from {\n background-color: var(--salt-differential-positive-background);\n }\n to {\n background-color: transparent;\n }\n }\n \n @keyframes reactbgup2 {\n from {\n background-color: var(--salt-differential-positive-background);\n }\n to {\n background-color: transparent;\n }\n }\n \n @keyframes reactbgdown1 {\n from {\n background-color: var(--salt-differential-negative-background);\n }\n to {\n background-color: transparent;\n }\n }\n \n @keyframes reactbgdown2 {\n from {\n background-color: var(--salt-differential-negative-background);\n }\n to {\n background-color: transparent;\n }\n }\n \n @keyframes reactarrowup1 {\n from {\n color: var(--salt-differential-positive-foreground);\n }\n to {\n color: transparent;\n }\n }\n \n @keyframes reactarrowup2 {\n from {\n color: var(--salt-differential-positive-foreground);\n }\n to {\n color: transparent;\n }\n }\n \n @keyframes reactarrowdown1 {\n from {\n color: var(--salt-differential-negative-foreground);\n }\n to {\n color: transparent;\n }\n }\n \n @keyframes reactarrowdown2 {\n from {\n color: var(--salt-differential-negative-foreground);\n }\n to {\n color: transparent;\n }\n }\n \n @keyframes reactbgarrowup1 {\n 0% {\n color: var(--salt-differential-positive-foreground);\n background-color: var(--salt-differential-positive-background);\n }\n 20% {\n color: var(--salt-differential-positive-foreground);\n background-color: transparent;\n }\n 100% {\n color: transparent;\n background-color: transparent;\n }\n }\n \n @keyframes reactbgarrowup2 {\n 0% {\n color: var(--salt-differential-positive-foreground);\n background-color: var(--salt-differential-positive-background);\n }\n 20% {\n color: var(--salt-differential-positive-foreground);\n background-color: transparent;\n }\n 100% {\n color: transparent;\n background-color: transparent;\n }\n }\n \n @keyframes reactbgarrowdown1 {\n 0% {\n color: var(--salt-differential-negative-foreground);\n background-color: var(--salt-differential-negative-background);\n }\n 20% {\n color: var(--salt-differential-negative-foreground);\n background-color: transparent;\n }\n 100% {\n color: transparent;\n background-color: transparent;\n }\n }\n \n @keyframes reactbgarrowdown2 {\n 0% {\n color: var(--salt-differential-negative-foreground);\n background-color: var(--salt-differential-negative-background);\n }\n 20% {\n color: var(--salt-differential-negative-foreground);\n background-color: transparent;\n }\n 100% {\n color: transparent;\n background-color: transparent;\n }\n }\n ", ".vuuProgressCell {\n align-items: center;\n display: flex;\n}\n\n.vuuProgressCell-track {\n display: inline-block;\n flex: auto 1 1;\n height: 4px;\n overflow: hidden;\n position: relative;\n}\n\n.vuuProgressCell-bg {\n background-color: var(--salt-measured-background);\n display: inline-block;\n height: 2px;\n left: 0;\n position: absolute;\n top: 1px;\n width: 100%;\n}\n\n\n.vuuProgressCell-bar {\n background-color: var(--salt-measured-fill);\n display: inline-block;\n height: 100%;\n left: 0;\n position: absolute;\n top:0;\n transform: translateX(var(--progress-bar-pct, -100%));\n width: 100%;\n}\n\n.vuuProgressCell-text {\n flex: 35px 0 0;\n text-align: right;\n}", "\n.vuuColumnExpressionInput {\n --vuuFilterEditor-background: var(--salt-container-primary-background);\n --vuuFilterEditor-color: var(--salt-text-primary-foreground);\n --vuuFilterEditor-fontFamily: var(--salt-typography-fontFamily);\n --vuuFilterEditor-fontSize: var(--salt-text-fontSize);\n --vuuFilterEditor-cursorColor: var(--salt-text-secondary-foreground);\n --vuuFilterEditor-selectionBackground: var(--salt-text-background-selected);\n --vuuFilterEditor-tooltipBackground: var(--salt-container-primary-background);\n --vuuFilterEditor-tooltipBorder: var(--tooltip-status-borderColor) var(--salt-container-borderWidth) var(--salt-container-borderStyle); \n --vuuFilterEditor-tooltipElevation: var(--salt-overlayable-shadow-popout);\n --vuuFilterEditor-suggestion-selectedBackground: var(--salt-selectable-background-selected);\n --vuuFilterEditor-suggestion-selectedColor: var(--salt-text-primary-foreground);\n --vuuFilterEditor-suggestion-detailColor: var(--salt-text-secondary-foreground-disabled);\n --vuuFilterEditor-suggestion-height: 24px;\n --vuuFilterEditor-variableColor: blue;\n\n align-items: center;\n box-sizing: border-box;\n height: 30px;\n}\n\n.vuuColumnExpressionInput-FilterButton,\n.vuuColumnExpressionInput-ClearButton {\n --vuu-icon-size: 12px;\n --saltButton-width: 28px;\n}\n\n.expression-type-container {\n margin: 0 3px 0 auto;\n color: var(--salt-text-secondary-foreground)\n}\n\n.expression-kind {\n display: inline-block;\n width: 50px;\n}\n\n.expression-type {\n display: inline-block;\n text-align: right;\n width: 50px;\n}\n\n.vuuSuggestion {\n display: flex;\n align-items: center;\n}\n\n\n.vuuFunctionDoc .function-heading {\n display: flex;\n gap: 3px;\n}\n\n.vuuFunctionDoc .function-name {\n font-style: italic;\n}\n\n.vuuFunctionDoc .param-list {\n font-style: italic;\n color: blue;\n white-space: pre;\n}\n\n.vuuFunctionDoc .function-type {\n margin-left: auto;\n}\n\n.vuuFunctionDoc .example-container {\n background-color: var(--salt-container-secondary-background);\n margin: 6px 0;\n padding: 3px;\n}\n\n.vuuFunctionDoc .example-expression {\n font-family: var(--salt-typography-fontFamily-code);\n margin-left: 8px;\n margin-top: 6px;\n}\n\n.vuuFunctionDoc .example-result {\n margin-left: 8px;\n margin-top: 6px;\n}", ".vuuColumnListItem {\n --svg-eye-hidden: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path fill=\"none\" d=\"M0 0h24v24H0z\"/><path d=\"M4.52 5.934L1.393 2.808l1.415-1.415 19.799 19.8-1.415 1.414-3.31-3.31A10.949 10.949 0 0 1 12 21c-5.392 0-9.878-3.88-10.819-9a10.982 10.982 0 0 1 3.34-6.066zm10.237 10.238l-1.464-1.464a3 3 0 0 1-4.001-4.001L7.828 9.243a5 5 0 0 0 6.929 6.929zM7.974 3.76C9.221 3.27 10.58 3 12 3c5.392 0 9.878 3.88 10.819 9a10.947 10.947 0 0 1-2.012 4.592l-3.86-3.86a5 5 0 0 0-5.68-5.68L7.974 3.761z\"/></svg>');\n align-items: center;\n padding: 0 !important;\n}\n\n.vuuColumnListItem-calculated {\n --vuu-icon-size: 12px;\n --column-icon-svg: var(--svg-function);\n --calculated-background: var(--salt-text-secondary-foreground);\n}\n.vuuColumnListItem-hidden {\n --vuu-icon-size: 14px;\n --hidden-background: var(--salt-text-secondary-foreground);\n --hidden-icon-svg: var(--svg-eye-hidden);\n}\n\n.vuuColumnListItem-label {\n flex: 1 1 auto;\n}\n.vuuColumnListItem-iconType {\n background-color: var(--calculated-background, transparent);\n display: inline-block;\n height: 100%;\n mask: var(--column-icon-svg) center center/var(--vuu-icon-size) var(--vuu-icon-size);\n mask-repeat: no-repeat;\n -webkit-mask: var(--column-icon-svg) center center/var(--vuu-icon-size) var(--vuu-icon-size);\n -webkit-mask-repeat: no-repeat;\n width: 20px;\n }\n\n.vuuColumnListItem-iconHidden {\n background-color: var(--hidden-background, transparent);\n display: inline-block;\n height: 100%;\n mask: var(--hidden-icon-svg) center center/var(--vuu-icon-size) var(--vuu-icon-size);\n mask-repeat: no-repeat;\n -webkit-mask: var(--hidden-icon-svg) center center/var(--vuu-icon-size) var(--vuu-icon-size);\n -webkit-mask-repeat: no-repeat;\n width: 20px;\n}", ".vuuColumnPicker {\n\n --vuu-icon-color: var(--salt-text-primary-foreground);\n --vuu-icon-left: 0px;\n --vuu-icon-size: 12px;\n\n display: flex;\n flex-shrink: 0;\n\n gap: calc(var(--salt-size-unit) * 2);\n width: var(--vuuColumnPicker-width, 100%);\n}\n\n.vuuColumnPicker-listColumn {\n display: flex;\n flex: 1;\n flex-direction: column;\n}\n\n.vuuColumnPicker-listContainer {\n border: solid 1px var(--salt-container-primary-borderColor);\n margin-right: var(--salt-size-unit)\n}\n\n.vuuColumnPicker-defineColumn {\n align-items: center;\n border-top: solid 1px var(--salt-container-primary-borderColor);\n display: flex;\n flex: 0 0 calc(100% - var(--salt-size-unit));\n gap: var(--salt-size-unit);\n transition: .2s height;\n margin-top: 12px;\n height: 48px;\n}\n\n[data-align='right'] .vuuColumnPicker-defineColumn {\n border-top: none;\n height: 0;\n}\n\n.vuuColumnPicker-addCalculatedColumn {\n margin-left: auto;\n margin-right: var(--salt-size-unit);\n width: 28px;\n}\n\n", ".vuuColumnTypePanel {\n --settings-panel-marginTop: 0px;\n}\n\n.vuuColumnTypePanel-renderer {\n --saltButton-background: var(--salt-container-secondary-background);\n --saltButton-background-hover: var(--salt-actionable-secondary-background-hover);\n}\n", ".vuuColumnSettingsPanel {\n --saltFormField-margin: 3px 0;\n --saltFormField-label-width: 80px;\n --saltPanel-padding: var(--salt-size-unit);\n align-items: flex-start;\n border-left: solid 1px var(--salt-container-primary-borderColor);\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n min-width: 220px;\n padding-left: calc(var(--salt-size-unit) * 2);\n width: var(--vuuColumnSettings-width, auto);\n\n}\n\n.vuuColumnSettingsPanel-columnTabs {\n --saltFormField-margin: 0;\n}\n\n.vuuColumnSettingsPanel-columnTabs .saltFormField {\n margin-left: 0 !important;\n}\n\n.vuuColumnSettingsPanel .saltPanel {\n --saltFormField-margin: 3px 0;\n margin-top: var(--settings-panel-marginTop, var(--salt-size-unit));\n\n align-items: stretch;\n display: flex;\n flex-direction: column;\n gap: var(--salt-size-unit);\n\n}\n\n.vuuColumnPanelSwitch {\n white-space: nowrap;\n width: 100%;\n}\n\n.vuuColumnSettingsPanel .saltSwitch {\n margin-left: auto;;\n}\n", ".vuuGridSettingsPanel {\n --saltFormField-label-width: 150px;\n}", ".vuuCalculatedColumnPanel {\n display: flex;\n flex-direction: column;\n gap: var(--salt-size-unit);\n}", ".vuuDialog-gridConfig {\n \n}\n\n \n\n .vuuDatagridSettingsPanel {\n --svg-table-settings: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><rect height=\"3\" width=\"5\" x=\"1\" y=\"10\" /><rect height=\"3\" width=\"5\" x=\"1\" y=\"6\" /><rect height=\"3\" width=\"10\" x=\"7\" y=\"10\" /><rect height=\"3\" width=\"10\" x=\"7\" y=\"6\" /><path d=\"M6,17H1.5a.5.5,0,0,1-.5-.5V14H6Z\" /><path d=\"M16.5,17H7V14H17v2.5A.5.5,0,0,1,16.5,17Z\" /><path d=\"M16.5,1H1.5a.5.5,0,0,0-.5.5V5H17V1.5A.5.5,0,0,0,16.5,1Z\" /></svg>');\n --svg-column-chooser: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M16,1H10V17h6a1,1,0,0,0,1-1V2A1,1,0,0,0,16,1Z\" /><path d=\"M8,1H2A1,1,0,0,0,1,2V16a1,1,0,0,0,1,1H8Z\" /></svg>');\n --svg-column-settings: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M5,17H1.5a.5.5,0,0,1-.5-.5V1.5A.5.5,0,0,1,1.5,1H5Z\" /><path d=\"M8.71,15.4685a1.8065,1.8065,0,0,1-1.11-1.665v-.607a1.806,1.806,0,0,1,1.11-1.665,1.807,1.807,0,0,1,.3875-1.974l.459-.4595a1.792,1.792,0,0,1,1.276-.5285c.057,0,.1115.0115.167.0165V1H7V17H8.773A1.81349,1.81349,0,0,1,8.71,15.4685Z\" /><path d=\"M13.1965,7.6h.607A1.8065,1.8065,0,0,1,15.468,8.7095,1.77249,1.77249,0,0,1,17,8.7815V1.5a.5.5,0,0,0-.5-.5H13V7.63A1.70987,1.70987,0,0,1,13.1965,7.6Z\" /><path d=\"M17.5965,12.893H16.534a3.0709,3.0709,0,0,0-.45-1.0895l.7565-.7565a.3035.3035,0,0,0,0-.429l-.46-.46a.3035.3035,0,0,0-.429,0l-.7555.757a3.07263,3.07263,0,0,0-1.089-.45V9.4035A.3035.3035,0,0,0,13.8035,9.1h-.607a.3035.3035,0,0,0-.3035.3035V10.466a3.07263,3.07263,0,0,0-1.089.45l-.7565-.7565a.3035.3035,0,0,0-.429,0l-.46.46a.3035.3035,0,0,0,0,.429l.7565.7565a3.0709,3.0709,0,0,0-.45,1.0895H9.4035A.3035.3035,0,0,0,9.1,13.198v.607a.3035.3035,0,0,0,.3035.3035H10.466a3.0709,3.0709,0,0,0,.45,1.0895l-.7565.7565a.3035.3035,0,0,0,0,.429l.46.46a.3035.3035,0,0,0,.429,0l.7565-.7565a3.07263,3.07263,0,0,0,1.089.45v1.0625a.3035.3035,0,0,0,.3035.3035h.607a.3035.3035,0,0,0,.3035-.3035V16.534a3.07263,3.07263,0,0,0,1.089-.45l.7565.7565a.3035.3035,0,0,0,.429,0l.46-.46a.3035.3035,0,0,0,0-.429l-.7575-.7555a3.0709,3.0709,0,0,0,.45-1.0895h1.0625a.3035.3035,0,0,0,.3035-.3035v-.6065a.3035.3035,0,0,0-.3035-.3035ZM13.5,15.25a1.75,1.75,0,1,1,1.75-1.75A1.75,1.75,0,0,1,13.5,15.25Z\" /></svg>');\n\n\n \n\n --saltToolbar-background : transparent;\n --vuuView-borderStyle: solid;\n --vuuColumnPicker-width: 100%;\n --vuuColumnSettings-width: 50%;\n background-color: var(--salt-container-primary-background);\n display: flex;\n flex-direction: column;\n height: 442px;\n width: 520px;\n}\n\n[data-icon='column-chooser']{\n --vuu-icon-svg: var(--svg-column-chooser);\n}\n[data-icon='column-settings']{\n --vuu-icon-svg: var(--svg-column-settings);\n}\n[data-icon='table-settings']{\n --vuu-icon-svg: var(--svg-table-settings);\n}\n[data-icon='define-column']{\n --vuu-icon-svg: var(--svg-function);\n}\n\n.vuuDatagridSettingsPanel-header {\nflex: 0 0 50px;\n}\n\n.vuuDatagridSettingsPanel-stack {\n flex: 1;\n gap: 24px;\n overflow: hidden;\n\n}\n\n.vuuDatagridSettingsPanel-stack > .saltToolbar {\n --saltToolbar-background: var(--salt-container-secondary-background);\n --vuu-icon-color: var(--salt-text-secondary-foreground);\n --vuu-icon-size: 18px;\n --vuu-icon-height: 36px;\n --vuu-icon-width: 36px;\n border-bottom: none;\n}\n\n.vuuDatagridSettingsPanel-stack > .saltToolbar .saltTabstrip {\n --tabs-activationIndicator-inset: 0px auto 0px 1px;\n}\n\n.vuuDatagridSettingsPanel-stack > .saltToolbar .saltTab[aria-selected='true'],\n.vuuDatagridSettingsPanel-stack > .saltToolbar .saltTab:hover{\n --vuu-icon-color: var(--salt-text-primary-foreground);\n \n}\n\n.vuuDatagridSettingsPanel-stack > .saltToolbar {\n --saltToolbar-background: var(--salt-container-secondary-background);\n}\n\n.vuuDatagridSettingsPanel-columnPanels {\n display: flex;\n flex-flow: nowrap;\n gap: calc(var(--salt-size-unit) * 1);\n margin: var(--salt-size-unit) 0;\n overflow: hidden;\n position: relative;\n /* margin: calc(var(--salt-size-unit) * 3); */\n}\n\n.vuuDatagridSettingsPanel-columnPanels > * {\n transition: .3s transform ease-out;\n transform: translate3d(0px, 0px, 0px);\n}\n\n.vuuDatagridSettingsPanel-columnPanels[data-align='right'] > * {\n transform: translate3d(-235px, 0px, 0px);\n}\n\n\n.vuuDatagridSettingsPanel-columnToolbar {\n --saltButton-width: 60px;\n}\n\n.vuuDatagridSettingsPanel-columnToolbar > .Responsive-inner {\n align-items: center;\n}\n\n.vuuDatagridSettingsPanel-buttonBar {\n align-items: center;\n border-top: solid 1px var(--salt-separable-primary-borderColor);\n display: flex;\n flex: 0 0 40px;\n gap: var(--salt-size-unit);\n justify-content: flex-end; \n padding: 0 var(--salt-size-unit);\n}\n ", ".vuuDatasourceStats {\n display: flex;\n gap: var(--salt-size-unit);\n}"],
|
|
5
|
-
"mappings": "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",
|
|
3
|
+
"sources": ["../../../packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCell.css", "../../../packages/vuu-table-extras/src/cell-renderers/background-cell/FlashingBackground.css", "../../../packages/vuu-table-extras/src/cell-renderers/progress-cell/ProgressCell.css", "../../../packages/vuu-table-extras/src/column-expression-input/ColumnExpressionInput.css", "../../../packages/vuu-table-extras/src/datagrid-configuration-ui/column-picker/ColumnListItem.css", "../../../packages/vuu-table-extras/src/datagrid-configuration-ui/column-picker/ColumnPicker.css", "../../../packages/vuu-table-extras/src/datagrid-configuration-ui/column-type-panel/ColumnTypePanel.css", "../../../packages/vuu-table-extras/src/datagrid-configuration-ui/column-settings-panel/ColumnSettingsPanel.css", "../../../packages/vuu-table-extras/src/datagrid-configuration-ui/settings-panel/GridSettingsPanel.css", "../../../packages/vuu-table-extras/src/datagrid-configuration-ui/calculated-column-panel/CalculatedColumnPanel.css", "../../../packages/vuu-table-extras/src/datagrid-configuration-ui/settings-panel/DatagridSettingsPanel.css", "../../../packages/vuu-table-extras/src/datasource-stats/DatasourceStats.css", "../../../packages/vuu-table-extras/src/table-settings/column-type-panel/ColumnTypePanel.css", "../../../packages/vuu-table-extras/src/table-settings/column-settings-panel/ColumnSettingsPanel.css"],
|
|
4
|
+
"sourcesContent": [".vuuTable td:has(> .vuuBackgroundCell){\n padding: 0;\n text-align: right;\n} \n\n.vuuBackgroundCell {\n padding-right: var(--salt-size-unit);\n position: relative;\n z-index: -1;\n}\n\n.vuuBackgroundCell-flasher {\n color: transparent;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: -1;\n}\n\n.vuuBackgroundCell-flasher {\n text-align: left;\n}\n.vuuBackgroundCell-flasher + .num {\n padding-left: 8px;\n}\n\n.right .vuuBackgroundCell-flasher {\n text-align: right;\n}\n.right .vuuBackgroundCell-flasher + .num {\n padding-right: 8px;\n}\n\n.up1 > .vuuBackgroundCell-flasher {\n animation-duration: 30s;\n animation-name: reactbgup1;\n}\n\n.up2 > .vuuBackgroundCell-flasher {\n animation-duration: 30s;\n animation-name: reactbgup2;\n}\n\n.down1 > .vuuBackgroundCell-flasher {\n animation-duration: 30s;\n animation-name: reactbgdown1;\n}\n\n.down2 > .vuuBackgroundCell-flasher {\n animation-duration: 30s;\n animation-name: reactbgdown2;\n}\n\n.up1.vuuBackgroundCell-arrowOnly > .vuuBackgroundCell-flasher {\n animation-duration: 30s;\n animation-name: reactarrowup1;\n}\n\n.up2.vuuBackgroundCell-arrowOnly > .vuuBackgroundCell-flasher {\n animation-duration: 30s;\n animation-name: reactarrowup2;\n}\n\n.down1.vuuBackgroundCell-arrowOnly > .vuuBackgroundCell-flasher {\n animation-duration: 30s;\n animation-name: reactarrowdown1;\n}\n\n.down2.vuuBackgroundCell-arrowOnly > .vuuBackgroundCell-flasher {\n animation-duration: 30s;\n animation-name: reactarrowdown2;\n}\n\n.up1.vuuBackgroundCell-arrowBackground > .vuuBackgroundCell-flasher {\n animation-duration: 30s;\n animation-name: reactbgarrowup1;\n}\n\n.up2.vuuBackgroundCell-arrowBackground > .vuuBackgroundCell-flasher {\n animation-duration: 30s;\n animation-name: reactbgarrowup2;\n}\n\n.down1.vuuBackgroundCell-arrowBackground > .vuuBackgroundCell-flasher {\n animation-duration: 30s;\n animation-name: reactbgarrowdown1;\n}\n\n.down2.vuuBackgroundCell-arrowBackground > .vuuBackgroundCell-flasher {\n animation-duration: 30s;\n animation-name: reactbgarrowdown2;\n}\n", "@keyframes reactbgup1 {\n from {\n background-color: var(--salt-differential-positive-background);\n }\n to {\n background-color: transparent;\n }\n }\n \n @keyframes reactbgup2 {\n from {\n background-color: var(--salt-differential-positive-background);\n }\n to {\n background-color: transparent;\n }\n }\n \n @keyframes reactbgdown1 {\n from {\n background-color: var(--salt-differential-negative-background);\n }\n to {\n background-color: transparent;\n }\n }\n \n @keyframes reactbgdown2 {\n from {\n background-color: var(--salt-differential-negative-background);\n }\n to {\n background-color: transparent;\n }\n }\n \n @keyframes reactarrowup1 {\n from {\n color: var(--salt-differential-positive-foreground);\n }\n to {\n color: transparent;\n }\n }\n \n @keyframes reactarrowup2 {\n from {\n color: var(--salt-differential-positive-foreground);\n }\n to {\n color: transparent;\n }\n }\n \n @keyframes reactarrowdown1 {\n from {\n color: var(--salt-differential-negative-foreground);\n }\n to {\n color: transparent;\n }\n }\n \n @keyframes reactarrowdown2 {\n from {\n color: var(--salt-differential-negative-foreground);\n }\n to {\n color: transparent;\n }\n }\n \n @keyframes reactbgarrowup1 {\n 0% {\n color: var(--salt-differential-positive-foreground);\n background-color: var(--salt-differential-positive-background);\n }\n 20% {\n color: var(--salt-differential-positive-foreground);\n background-color: transparent;\n }\n 100% {\n color: transparent;\n background-color: transparent;\n }\n }\n \n @keyframes reactbgarrowup2 {\n 0% {\n color: var(--salt-differential-positive-foreground);\n background-color: var(--salt-differential-positive-background);\n }\n 20% {\n color: var(--salt-differential-positive-foreground);\n background-color: transparent;\n }\n 100% {\n color: transparent;\n background-color: transparent;\n }\n }\n \n @keyframes reactbgarrowdown1 {\n 0% {\n color: var(--salt-differential-negative-foreground);\n background-color: var(--salt-differential-negative-background);\n }\n 20% {\n color: var(--salt-differential-negative-foreground);\n background-color: transparent;\n }\n 100% {\n color: transparent;\n background-color: transparent;\n }\n }\n \n @keyframes reactbgarrowdown2 {\n 0% {\n color: var(--salt-differential-negative-foreground);\n background-color: var(--salt-differential-negative-background);\n }\n 20% {\n color: var(--salt-differential-negative-foreground);\n background-color: transparent;\n }\n 100% {\n color: transparent;\n background-color: transparent;\n }\n }\n ", ".vuuProgressCell {\n align-items: center;\n display: flex;\n}\n\n.vuuProgressCell-track {\n display: inline-block;\n flex: auto 1 1;\n height: 4px;\n overflow: hidden;\n position: relative;\n}\n\n.vuuProgressCell-bg {\n background-color: var(--salt-measured-background);\n display: inline-block;\n height: 2px;\n left: 0;\n position: absolute;\n top: 1px;\n width: 100%;\n}\n\n\n.vuuProgressCell-bar {\n background-color: var(--salt-measured-fill);\n display: inline-block;\n height: 100%;\n left: 0;\n position: absolute;\n top:0;\n transform: translateX(var(--progress-bar-pct, -100%));\n width: 100%;\n}\n\n.vuuProgressCell-text {\n flex: 35px 0 0;\n text-align: right;\n}", "\n.vuuColumnExpressionInput {\n --vuuFilterEditor-background: var(--salt-container-primary-background);\n --vuuFilterEditor-color: var(--salt-text-primary-foreground);\n --vuuFilterEditor-fontFamily: var(--salt-typography-fontFamily);\n --vuuFilterEditor-fontSize: var(--salt-text-fontSize);\n --vuuFilterEditor-cursorColor: var(--salt-text-secondary-foreground);\n --vuuFilterEditor-selectionBackground: var(--salt-text-background-selected);\n --vuuFilterEditor-tooltipBackground: var(--salt-container-primary-background);\n --vuuFilterEditor-tooltipBorder: var(--tooltip-status-borderColor) var(--salt-container-borderWidth) var(--salt-container-borderStyle); \n --vuuFilterEditor-tooltipElevation: var(--salt-overlayable-shadow-popout);\n --vuuFilterEditor-suggestion-selectedBackground: var(--salt-selectable-background-selected);\n --vuuFilterEditor-suggestion-selectedColor: var(--salt-text-primary-foreground);\n --vuuFilterEditor-suggestion-detailColor: var(--salt-text-secondary-foreground-disabled);\n --vuuFilterEditor-suggestion-height: 24px;\n --vuuFilterEditor-variableColor: blue;\n\n align-items: center;\n box-sizing: border-box;\n height: 30px;\n}\n\n.vuuColumnExpressionInput-FilterButton,\n.vuuColumnExpressionInput-ClearButton {\n --vuu-icon-size: 12px;\n --saltButton-width: 28px;\n}\n\n.expression-type-container {\n margin: 0 3px 0 auto;\n color: var(--salt-text-secondary-foreground)\n}\n\n.expression-kind {\n display: inline-block;\n width: 50px;\n}\n\n.expression-type {\n display: inline-block;\n text-align: right;\n width: 50px;\n}\n\n.vuuSuggestion {\n display: flex;\n align-items: center;\n}\n\n\n.vuuFunctionDoc .function-heading {\n display: flex;\n gap: 3px;\n}\n\n.vuuFunctionDoc .function-name {\n font-style: italic;\n}\n\n.vuuFunctionDoc .param-list {\n font-style: italic;\n color: blue;\n white-space: pre;\n}\n\n.vuuFunctionDoc .function-type {\n margin-left: auto;\n}\n\n.vuuFunctionDoc .example-container {\n background-color: var(--salt-container-secondary-background);\n margin: 6px 0;\n padding: 3px;\n}\n\n.vuuFunctionDoc .example-expression {\n font-family: var(--salt-typography-fontFamily-code);\n margin-left: 8px;\n margin-top: 6px;\n}\n\n.vuuFunctionDoc .example-result {\n margin-left: 8px;\n margin-top: 6px;\n}", ".vuuColumnListItem {\n --svg-eye-hidden: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path fill=\"none\" d=\"M0 0h24v24H0z\"/><path d=\"M4.52 5.934L1.393 2.808l1.415-1.415 19.799 19.8-1.415 1.414-3.31-3.31A10.949 10.949 0 0 1 12 21c-5.392 0-9.878-3.88-10.819-9a10.982 10.982 0 0 1 3.34-6.066zm10.237 10.238l-1.464-1.464a3 3 0 0 1-4.001-4.001L7.828 9.243a5 5 0 0 0 6.929 6.929zM7.974 3.76C9.221 3.27 10.58 3 12 3c5.392 0 9.878 3.88 10.819 9a10.947 10.947 0 0 1-2.012 4.592l-3.86-3.86a5 5 0 0 0-5.68-5.68L7.974 3.761z\"/></svg>');\n align-items: center;\n padding: 0 !important;\n}\n\n.vuuColumnListItem-calculated {\n --vuu-icon-size: 12px;\n --column-icon-svg: var(--svg-function);\n --calculated-background: var(--salt-text-secondary-foreground);\n}\n.vuuColumnListItem-hidden {\n --vuu-icon-size: 14px;\n --hidden-background: var(--salt-text-secondary-foreground);\n --hidden-icon-svg: var(--svg-eye-hidden);\n}\n\n.vuuColumnListItem-label {\n flex: 1 1 auto;\n}\n.vuuColumnListItem-iconType {\n background-color: var(--calculated-background, transparent);\n display: inline-block;\n height: 100%;\n mask: var(--column-icon-svg) center center/var(--vuu-icon-size) var(--vuu-icon-size);\n mask-repeat: no-repeat;\n -webkit-mask: var(--column-icon-svg) center center/var(--vuu-icon-size) var(--vuu-icon-size);\n -webkit-mask-repeat: no-repeat;\n width: 20px;\n }\n\n.vuuColumnListItem-iconHidden {\n background-color: var(--hidden-background, transparent);\n display: inline-block;\n height: 100%;\n mask: var(--hidden-icon-svg) center center/var(--vuu-icon-size) var(--vuu-icon-size);\n mask-repeat: no-repeat;\n -webkit-mask: var(--hidden-icon-svg) center center/var(--vuu-icon-size) var(--vuu-icon-size);\n -webkit-mask-repeat: no-repeat;\n width: 20px;\n}", ".vuuColumnPicker {\n\n --vuu-icon-color: var(--salt-text-primary-foreground);\n --vuu-icon-left: 0px;\n --vuu-icon-size: 12px;\n\n display: flex;\n flex-shrink: 0;\n\n gap: calc(var(--salt-size-unit) * 2);\n width: var(--vuuColumnPicker-width, 100%);\n}\n\n.vuuColumnPicker-listColumn {\n display: flex;\n flex: 1;\n flex-direction: column;\n}\n\n.vuuColumnPicker-listContainer {\n border: solid 1px var(--salt-container-primary-borderColor);\n margin-right: var(--salt-size-unit)\n}\n\n.vuuColumnPicker-defineColumn {\n align-items: center;\n border-top: solid 1px var(--salt-container-primary-borderColor);\n display: flex;\n flex: 0 0 calc(100% - var(--salt-size-unit));\n gap: var(--salt-size-unit);\n transition: .2s height;\n margin-top: 12px;\n height: 48px;\n}\n\n[data-align='right'] .vuuColumnPicker-defineColumn {\n border-top: none;\n height: 0;\n}\n\n.vuuColumnPicker-addCalculatedColumn {\n margin-left: auto;\n margin-right: var(--salt-size-unit);\n width: 28px;\n}\n\n", ".vuuColumnTypePanel {\n --settings-panel-marginTop: 0px;\n}\n\n.vuuColumnTypePanel-renderer {\n --saltButton-background: var(--salt-container-secondary-background);\n --saltButton-background-hover: var(--salt-actionable-secondary-background-hover);\n}\n", ".vuuColumnSettingsPanel {\n --saltFormField-margin: 3px 0;\n --saltFormField-label-width: 80px;\n --saltPanel-padding: var(--salt-size-unit);\n align-items: flex-start;\n border-left: solid 1px var(--salt-container-primary-borderColor);\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n min-width: 220px;\n padding-left: calc(var(--salt-size-unit) * 2);\n width: var(--vuuColumnSettings-width, auto);\n\n}\n\n.vuuColumnSettingsPanel-columnTabs {\n --saltFormField-margin: 0;\n}\n\n.vuuColumnSettingsPanel-columnTabs .saltFormField {\n margin-left: 0 !important;\n}\n\n.vuuColumnSettingsPanel .saltPanel {\n --saltFormField-margin: 3px 0;\n margin-top: var(--settings-panel-marginTop, var(--salt-size-unit));\n\n align-items: stretch;\n display: flex;\n flex-direction: column;\n gap: var(--salt-size-unit);\n\n}\n\n.vuuColumnPanelSwitch {\n white-space: nowrap;\n width: 100%;\n}\n\n.vuuColumnSettingsPanel .saltSwitch {\n margin-left: auto;;\n}\n", ".vuuGridSettingsPanel {\n --saltFormField-label-width: 150px;\n}", ".vuuCalculatedColumnPanel {\n display: flex;\n flex-direction: column;\n gap: var(--salt-size-unit);\n}", ".vuuDialog-gridConfig {\n \n}\n\n \n\n .vuuDatagridSettingsPanel {\n --svg-table-settings: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><rect height=\"3\" width=\"5\" x=\"1\" y=\"10\" /><rect height=\"3\" width=\"5\" x=\"1\" y=\"6\" /><rect height=\"3\" width=\"10\" x=\"7\" y=\"10\" /><rect height=\"3\" width=\"10\" x=\"7\" y=\"6\" /><path d=\"M6,17H1.5a.5.5,0,0,1-.5-.5V14H6Z\" /><path d=\"M16.5,17H7V14H17v2.5A.5.5,0,0,1,16.5,17Z\" /><path d=\"M16.5,1H1.5a.5.5,0,0,0-.5.5V5H17V1.5A.5.5,0,0,0,16.5,1Z\" /></svg>');\n --svg-column-chooser: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M16,1H10V17h6a1,1,0,0,0,1-1V2A1,1,0,0,0,16,1Z\" /><path d=\"M8,1H2A1,1,0,0,0,1,2V16a1,1,0,0,0,1,1H8Z\" /></svg>');\n --svg-column-settings: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M5,17H1.5a.5.5,0,0,1-.5-.5V1.5A.5.5,0,0,1,1.5,1H5Z\" /><path d=\"M8.71,15.4685a1.8065,1.8065,0,0,1-1.11-1.665v-.607a1.806,1.806,0,0,1,1.11-1.665,1.807,1.807,0,0,1,.3875-1.974l.459-.4595a1.792,1.792,0,0,1,1.276-.5285c.057,0,.1115.0115.167.0165V1H7V17H8.773A1.81349,1.81349,0,0,1,8.71,15.4685Z\" /><path d=\"M13.1965,7.6h.607A1.8065,1.8065,0,0,1,15.468,8.7095,1.77249,1.77249,0,0,1,17,8.7815V1.5a.5.5,0,0,0-.5-.5H13V7.63A1.70987,1.70987,0,0,1,13.1965,7.6Z\" /><path d=\"M17.5965,12.893H16.534a3.0709,3.0709,0,0,0-.45-1.0895l.7565-.7565a.3035.3035,0,0,0,0-.429l-.46-.46a.3035.3035,0,0,0-.429,0l-.7555.757a3.07263,3.07263,0,0,0-1.089-.45V9.4035A.3035.3035,0,0,0,13.8035,9.1h-.607a.3035.3035,0,0,0-.3035.3035V10.466a3.07263,3.07263,0,0,0-1.089.45l-.7565-.7565a.3035.3035,0,0,0-.429,0l-.46.46a.3035.3035,0,0,0,0,.429l.7565.7565a3.0709,3.0709,0,0,0-.45,1.0895H9.4035A.3035.3035,0,0,0,9.1,13.198v.607a.3035.3035,0,0,0,.3035.3035H10.466a3.0709,3.0709,0,0,0,.45,1.0895l-.7565.7565a.3035.3035,0,0,0,0,.429l.46.46a.3035.3035,0,0,0,.429,0l.7565-.7565a3.07263,3.07263,0,0,0,1.089.45v1.0625a.3035.3035,0,0,0,.3035.3035h.607a.3035.3035,0,0,0,.3035-.3035V16.534a3.07263,3.07263,0,0,0,1.089-.45l.7565.7565a.3035.3035,0,0,0,.429,0l.46-.46a.3035.3035,0,0,0,0-.429l-.7575-.7555a3.0709,3.0709,0,0,0,.45-1.0895h1.0625a.3035.3035,0,0,0,.3035-.3035v-.6065a.3035.3035,0,0,0-.3035-.3035ZM13.5,15.25a1.75,1.75,0,1,1,1.75-1.75A1.75,1.75,0,0,1,13.5,15.25Z\" /></svg>');\n\n\n \n\n --saltToolbar-background : transparent;\n --vuuView-borderStyle: solid;\n --vuuColumnPicker-width: 100%;\n --vuuColumnSettings-width: 50%;\n background-color: var(--salt-container-primary-background);\n display: flex;\n flex-direction: column;\n height: 442px;\n width: 520px;\n}\n\n[data-icon='column-chooser']{\n --vuu-icon-svg: var(--svg-column-chooser);\n}\n[data-icon='column-settings']{\n --vuu-icon-svg: var(--svg-column-settings);\n}\n[data-icon='table-settings']{\n --vuu-icon-svg: var(--svg-table-settings);\n}\n[data-icon='define-column']{\n --vuu-icon-svg: var(--svg-function);\n}\n\n.vuuDatagridSettingsPanel-header {\nflex: 0 0 50px;\n}\n\n.vuuDatagridSettingsPanel-stack {\n flex: 1;\n gap: 24px;\n overflow: hidden;\n\n}\n\n.vuuDatagridSettingsPanel-stack > .saltToolbar {\n --saltToolbar-background: var(--salt-container-secondary-background);\n --vuu-icon-color: var(--salt-text-secondary-foreground);\n --vuu-icon-size: 18px;\n --vuu-icon-height: 36px;\n --vuu-icon-width: 36px;\n border-bottom: none;\n}\n\n.vuuDatagridSettingsPanel-stack > .saltToolbar .saltTabstrip {\n --tabs-activationIndicator-inset: 0px auto 0px 1px;\n}\n\n.vuuDatagridSettingsPanel-stack > .saltToolbar .saltTab[aria-selected='true'],\n.vuuDatagridSettingsPanel-stack > .saltToolbar .saltTab:hover{\n --vuu-icon-color: var(--salt-text-primary-foreground);\n \n}\n\n.vuuDatagridSettingsPanel-stack > .saltToolbar {\n --saltToolbar-background: var(--salt-container-secondary-background);\n}\n\n.vuuDatagridSettingsPanel-columnPanels {\n display: flex;\n flex-flow: nowrap;\n gap: calc(var(--salt-size-unit) * 1);\n margin: var(--salt-size-unit) 0;\n overflow: hidden;\n position: relative;\n /* margin: calc(var(--salt-size-unit) * 3); */\n}\n\n.vuuDatagridSettingsPanel-columnPanels > * {\n transition: .3s transform ease-out;\n transform: translate3d(0px, 0px, 0px);\n}\n\n.vuuDatagridSettingsPanel-columnPanels[data-align='right'] > * {\n transform: translate3d(-235px, 0px, 0px);\n}\n\n\n.vuuDatagridSettingsPanel-columnToolbar {\n --saltButton-width: 60px;\n}\n\n.vuuDatagridSettingsPanel-columnToolbar > .Responsive-inner {\n align-items: center;\n}\n\n.vuuDatagridSettingsPanel-buttonBar {\n align-items: center;\n border-top: solid 1px var(--salt-separable-primary-borderColor);\n display: flex;\n flex: 0 0 40px;\n gap: var(--salt-size-unit);\n justify-content: flex-end; \n padding: 0 var(--salt-size-unit);\n}\n ", ".vuuDatasourceStats {\n display: flex;\n gap: var(--salt-size-unit);\n}", ".vuuColumnTypePanel {\n --settings-panel-marginTop: 0px;\n}\n\n.vuuColumnTypePanel-renderer {\n --saltButton-background: var(--salt-container-secondary-background);\n --saltButton-background-hover: var(--salt-actionable-secondary-background-hover);\n}\n", ".vuuColumnSettingsPanel {\n --saltFormField-margin: 3px 0;\n --saltFormField-label-width: 80px;\n --saltPanel-padding: var(--salt-size-unit);\n align-items: flex-start;\n border-left: solid 1px var(--salt-container-primary-borderColor);\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n min-width: 220px;\n padding-left: calc(var(--salt-size-unit) * 2);\n width: var(--vuuColumnSettings-width, auto);\n\n}\n\n.vuuColumnSettingsPanel-columnTabs {\n --saltFormField-margin: 0;\n}\n\n.vuuColumnSettingsPanel-columnTabs .saltFormField {\n margin-left: 0 !important;\n}\n\n.vuuColumnSettingsPanel .saltPanel {\n --saltFormField-margin: 3px 0;\n margin-top: var(--settings-panel-marginTop, var(--salt-size-unit));\n\n align-items: stretch;\n display: flex;\n flex-direction: column;\n gap: var(--salt-size-unit);\n\n}\n\n.vuuColumnPanelSwitch {\n white-space: nowrap;\n width: 100%;\n}\n\n.vuuColumnSettingsPanel .saltSwitch {\n margin-left: auto;;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vuu-ui/vuu-table-extras",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0-debug",
|
|
4
4
|
"author": "heswell",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"devDependencies": {
|
|
7
|
-
"@vuu-ui/vuu-filter-types": "0.
|
|
8
|
-
"@vuu-ui/vuu-protocol-types": "0.
|
|
7
|
+
"@vuu-ui/vuu-filter-types": "0.8.0-debug",
|
|
8
|
+
"@vuu-ui/vuu-protocol-types": "0.8.0-debug"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@vuu-ui/vuu-codemirror": "0.
|
|
12
|
-
"@vuu-ui/vuu-data": "0.
|
|
13
|
-
"@vuu-ui/vuu-
|
|
14
|
-
"@vuu-ui/vuu-
|
|
15
|
-
"@vuu-ui/vuu-
|
|
11
|
+
"@vuu-ui/vuu-codemirror": "0.8.0-debug",
|
|
12
|
+
"@vuu-ui/vuu-data": "0.8.0-debug",
|
|
13
|
+
"@vuu-ui/vuu-data-react": "0.8.0-debug",
|
|
14
|
+
"@vuu-ui/vuu-datagrid-types": "0.8.0-debug",
|
|
15
|
+
"@vuu-ui/vuu-layout": "0.8.0-debug",
|
|
16
|
+
"@vuu-ui/vuu-popups": "0.8.0-debug",
|
|
17
|
+
"@vuu-ui/vuu-utils": "0.8.0-debug",
|
|
16
18
|
"@heswell/salt-lab": "1.0.0-alpha.2",
|
|
17
|
-
"@lezer/common": "1.0.2",
|
|
18
19
|
"@lezer/lr": "1.3.4",
|
|
19
20
|
"@salt-ds/core": "1.2.0"
|
|
20
21
|
},
|
|
@@ -28,8 +29,10 @@
|
|
|
28
29
|
"cjs",
|
|
29
30
|
"esm",
|
|
30
31
|
"index.css",
|
|
31
|
-
"index.css.map"
|
|
32
|
+
"index.css.map",
|
|
33
|
+
"/types"
|
|
32
34
|
],
|
|
33
35
|
"module": "esm/index.js",
|
|
34
|
-
"main": "cjs/index.js"
|
|
36
|
+
"main": "cjs/index.js",
|
|
37
|
+
"types": "types/index.d.ts"
|
|
35
38
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./BackgroundCell";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "./ProgressCell.css";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./ProgressCell";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { HTMLAttributes } from "react";
|
|
2
|
+
import { ExpressionSuggestionConsumer } from "./useColumnExpressionEditor";
|
|
3
|
+
import "./ColumnExpressionInput.css";
|
|
4
|
+
import { ColumnDefinitionExpression } from "./column-language-parser";
|
|
5
|
+
export interface ColumnExpressionInputProps extends ExpressionSuggestionConsumer, Omit<HTMLAttributes<HTMLDivElement>, "onChange"> {
|
|
6
|
+
onChange?: (source: string, expression: ColumnDefinitionExpression | undefined) => void;
|
|
7
|
+
onSubmitExpression?: (source: string, expression: ColumnDefinitionExpression | undefined) => void;
|
|
8
|
+
}
|
|
9
|
+
export declare const ColumnExpressionInput: ({ onChange, onSubmitExpression, suggestionProvider, }: ColumnExpressionInputProps) => JSX.Element;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type ColumnFunctionDescriptor = {
|
|
2
|
+
accepts: "string" | "number" | "any" | Array<"string" | "number">;
|
|
3
|
+
description: string;
|
|
4
|
+
example: {
|
|
5
|
+
expression: string;
|
|
6
|
+
result: string;
|
|
7
|
+
};
|
|
8
|
+
name: string;
|
|
9
|
+
params: {
|
|
10
|
+
count?: number;
|
|
11
|
+
description: string;
|
|
12
|
+
};
|
|
13
|
+
type: "string" | "number" | "boolean" | "variable";
|
|
14
|
+
};
|
|
15
|
+
export declare const columnFunctionDescriptors: ColumnFunctionDescriptor[];
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Tree } from "@vuu-ui/vuu-codemirror";
|
|
2
|
+
import { RelationalExpression } from "./generated/column-parser.terms";
|
|
3
|
+
type expressionType = "arithmeticExpression" | "booleanCondition" | "booleanLiteralExpression" | "callExpression" | "colExpression" | "conditionalExpression" | "numericLiteralExpression" | "relationalExpression" | "stringLiteralExpression" | "unknown";
|
|
4
|
+
type arithmeticOp = "*" | "/" | "+" | "-" | "unknown";
|
|
5
|
+
type booleanOp = "and" | "or";
|
|
6
|
+
type relationalOp = "=" | "!=" | ">" | ">=" | "<" | "<=" | "unknown";
|
|
7
|
+
export interface Expression {
|
|
8
|
+
type: expressionType;
|
|
9
|
+
expressions?: Expression[];
|
|
10
|
+
toJSON?: () => unknown;
|
|
11
|
+
value?: string | number | boolean;
|
|
12
|
+
}
|
|
13
|
+
interface BooleanLiteralExpression {
|
|
14
|
+
type: "booleanLiteralExpression";
|
|
15
|
+
value: boolean;
|
|
16
|
+
}
|
|
17
|
+
interface NumericLiteralExpression {
|
|
18
|
+
type: "numericLiteralExpression";
|
|
19
|
+
value: number;
|
|
20
|
+
}
|
|
21
|
+
interface StringLiteralExpression {
|
|
22
|
+
type: "stringLiteralExpression";
|
|
23
|
+
value: string;
|
|
24
|
+
}
|
|
25
|
+
interface ArithmeticExpression extends Expression {
|
|
26
|
+
expressions: [Expression, Expression];
|
|
27
|
+
op: arithmeticOp;
|
|
28
|
+
type: "arithmeticExpression";
|
|
29
|
+
}
|
|
30
|
+
interface BooleanCondition extends Expression {
|
|
31
|
+
expressions: Expression[];
|
|
32
|
+
op: booleanOp;
|
|
33
|
+
type: "booleanCondition";
|
|
34
|
+
}
|
|
35
|
+
interface RelationalExpression extends Expression {
|
|
36
|
+
expressions: Expression[];
|
|
37
|
+
op: relationalOp;
|
|
38
|
+
type: "relationalExpression";
|
|
39
|
+
}
|
|
40
|
+
interface ColExpression extends Expression {
|
|
41
|
+
column?: string;
|
|
42
|
+
type: "colExpression";
|
|
43
|
+
}
|
|
44
|
+
interface CallExpression extends Expression {
|
|
45
|
+
arguments: Expression[];
|
|
46
|
+
functionName?: string;
|
|
47
|
+
type: "callExpression";
|
|
48
|
+
}
|
|
49
|
+
type ConditionExpression = RelationalExpression | BooleanCondition;
|
|
50
|
+
interface ConditionalExpression extends Expression {
|
|
51
|
+
type: "conditionalExpression";
|
|
52
|
+
condition: ConditionExpression;
|
|
53
|
+
truthyExpression: Expression;
|
|
54
|
+
falsyExpression: Expression;
|
|
55
|
+
}
|
|
56
|
+
export type ColumnDefinitionExpression = ArithmeticExpression | BooleanLiteralExpression | CallExpression | ColExpression | ConditionalExpression | NumericLiteralExpression | StringLiteralExpression;
|
|
57
|
+
export declare const walkTree: (tree: Tree, source: string) => ColumnDefinitionExpression;
|
|
58
|
+
export {};
|
package/types/column-expression-input/column-language-parser/column-expression-parse-utils.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { SyntaxNode } from "@vuu-ui/vuu-codemirror";
|
|
2
|
+
export declare const ColumnNamedTerms: readonly string[];
|
|
3
|
+
export declare const isCompleteExpression: (src: string) => boolean;
|
|
4
|
+
export declare const lastNamedChild: (node: SyntaxNode) => SyntaxNode | null;
|
|
5
|
+
export declare const isCompleteRelationalExpression: (node?: SyntaxNode) => boolean;
|
package/types/column-expression-input/column-language-parser/generated/column-parser.terms.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export const ColumnDefinitionExpression: 1;
|
|
2
|
+
export const Column: 2;
|
|
3
|
+
export const Number: 3;
|
|
4
|
+
export const String: 4;
|
|
5
|
+
export const True: 5;
|
|
6
|
+
export const False: 6;
|
|
7
|
+
export const ParenthesizedExpression: 7;
|
|
8
|
+
export const OpenBrace: 8;
|
|
9
|
+
export const CloseBrace: 9;
|
|
10
|
+
export const ArithmeticExpression: 10;
|
|
11
|
+
export const Divide: 11;
|
|
12
|
+
export const Times: 12;
|
|
13
|
+
export const Plus: 13;
|
|
14
|
+
export const Minus: 14;
|
|
15
|
+
export const ConditionalExpression: 15;
|
|
16
|
+
export const If: 16;
|
|
17
|
+
export const RelationalExpression: 17;
|
|
18
|
+
export const RelationalOperator: 18;
|
|
19
|
+
export const AndCondition: 19;
|
|
20
|
+
export const OrCondition: 20;
|
|
21
|
+
export const Comma: 21;
|
|
22
|
+
export const CallExpression: 22;
|
|
23
|
+
export const Function: 23;
|
|
24
|
+
export const ArgList: 24;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export function walkTree(tree: any, source: any): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const vuuHighlighting: import("@codemirror/state").Extension;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const vuuTheme: import("@codemirror/state").Extension;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { CompletionSource } from "@vuu-ui/vuu-codemirror";
|
|
2
|
+
import { MutableRefObject } from "react";
|
|
3
|
+
import { IExpressionSuggestionProvider } from "./useColumnExpressionEditor";
|
|
4
|
+
export type ApplyCompletion = (mode?: "add" | "replace") => void;
|
|
5
|
+
export type Operator = "";
|
|
6
|
+
export declare const useColumnAutoComplete: (suggestionProvider: IExpressionSuggestionProvider, onSubmit: MutableRefObject<ApplyCompletion>) => CompletionSource;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Completion } from "@vuu-ui/vuu-codemirror";
|
|
3
|
+
import { ColumnDefinitionExpression } from "./column-language-parser/ColumnExpressionTreeWalker";
|
|
4
|
+
export type ColumnExpressionOperator = "Times" | "Divide" | "Minus" | "Plus";
|
|
5
|
+
export type ColumnExpressionSuggestionType = "column" | "columnValue" | "expression" | "condition-operator" | "operator" | "relational-operator";
|
|
6
|
+
export type ColumnExpressionSuggestionOptions = {
|
|
7
|
+
columnName?: string;
|
|
8
|
+
functionName?: string;
|
|
9
|
+
operator?: ColumnExpressionOperator;
|
|
10
|
+
prefix?: string;
|
|
11
|
+
startsWith?: string;
|
|
12
|
+
selection?: string[];
|
|
13
|
+
};
|
|
14
|
+
export interface IExpressionSuggestionProvider {
|
|
15
|
+
getSuggestions: (valueType: ColumnExpressionSuggestionType, options?: ColumnExpressionSuggestionOptions) => Promise<Completion[]>;
|
|
16
|
+
isPartialMatch: (valueType: ColumnExpressionSuggestionType, columnName?: string, text?: string | undefined) => Promise<boolean>;
|
|
17
|
+
}
|
|
18
|
+
export interface ExpressionSuggestionConsumer {
|
|
19
|
+
suggestionProvider: IExpressionSuggestionProvider;
|
|
20
|
+
}
|
|
21
|
+
export interface ColumnExpressionEditorProps {
|
|
22
|
+
onChange?: (source: string, expression: ColumnDefinitionExpression | undefined) => void;
|
|
23
|
+
onSubmitExpression?: (source: string, expression: ColumnDefinitionExpression | undefined) => void;
|
|
24
|
+
suggestionProvider: IExpressionSuggestionProvider;
|
|
25
|
+
}
|
|
26
|
+
export declare const useColumnExpressionEditor: ({ onChange, onSubmitExpression, suggestionProvider, }: ColumnExpressionEditorProps) => {
|
|
27
|
+
editorRef: import("react").RefObject<HTMLDivElement>;
|
|
28
|
+
clearInput: () => void;
|
|
29
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ColumnDescriptor } from "@vuu-ui/vuu-datagrid-types";
|
|
2
|
+
import { VuuTable } from "@vuu-ui/vuu-protocol-types";
|
|
3
|
+
import { IExpressionSuggestionProvider } from "@vuu-ui/vuu-table-extras";
|
|
4
|
+
export interface SuggestionProviderHookProps {
|
|
5
|
+
columns: ColumnDescriptor[];
|
|
6
|
+
table: VuuTable;
|
|
7
|
+
}
|
|
8
|
+
export declare const useColumnExpressionSuggestionProvider: ({ columns, table, }: SuggestionProviderHookProps) => IExpressionSuggestionProvider;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ColumnDescriptor } from "@vuu-ui/vuu-datagrid-types";
|
|
2
|
+
import { VuuTable } from "@vuu-ui/vuu-protocol-types";
|
|
3
|
+
import { Dispatch, HTMLAttributes } from "react";
|
|
4
|
+
import { ColumnAction } from "../settings-panel/useGridSettings";
|
|
5
|
+
import "./CalculatedColumnPanel.css";
|
|
6
|
+
export interface CalculatedColumnPanelProps extends HTMLAttributes<HTMLDivElement> {
|
|
7
|
+
columns: ColumnDescriptor[];
|
|
8
|
+
dispatchColumnAction: Dispatch<ColumnAction>;
|
|
9
|
+
table: VuuTable;
|
|
10
|
+
}
|
|
11
|
+
export declare const CalculatedColumnPanel: ({ columns, dispatchColumnAction, table, }: CalculatedColumnPanelProps) => JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./CalculatedColumnPanel";
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ColumnDescriptor } from "@vuu-ui/vuu-datagrid-types";
|
|
2
|
+
import { Dispatch, HTMLAttributes } from "react";
|
|
3
|
+
import { ColumnAction } from "../settings-panel/useGridSettings";
|
|
4
|
+
import "./ColumnPicker.css";
|
|
5
|
+
export interface ColumnPickerProps extends HTMLAttributes<HTMLDivElement> {
|
|
6
|
+
availableColumns: ColumnDescriptor[];
|
|
7
|
+
dispatchColumnAction: Dispatch<ColumnAction>;
|
|
8
|
+
onAddCalculatedColumnClick: () => void;
|
|
9
|
+
onSelectionChange?: (selected: ColumnDescriptor | null) => void;
|
|
10
|
+
chosenColumns: ColumnDescriptor[];
|
|
11
|
+
selectedColumn: ColumnDescriptor | null;
|
|
12
|
+
}
|
|
13
|
+
export declare const ColumnPicker: ({ availableColumns, id: idProp, dispatchColumnAction: dispatch, onAddCalculatedColumnClick, onSelectionChange, chosenColumns, selectedColumn, }: ColumnPickerProps) => JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./ColumnPicker";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ColumnDescriptor } from "@vuu-ui/vuu-datagrid-types";
|
|
2
|
+
import { Dispatch, HTMLAttributes } from "react";
|
|
3
|
+
import { ColumnAction } from "../settings-panel/useGridSettings";
|
|
4
|
+
import "./ColumnSettingsPanel.css";
|
|
5
|
+
export interface ColumnSettingsPanelProps extends HTMLAttributes<HTMLDivElement> {
|
|
6
|
+
column: ColumnDescriptor;
|
|
7
|
+
dispatchColumnAction: Dispatch<ColumnAction>;
|
|
8
|
+
}
|
|
9
|
+
export declare const ColumnSettingsPanel: ({ column, dispatchColumnAction, style: styleProp, ...props }: ColumnSettingsPanelProps) => JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./ColumnSettingsPanel";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ColumnDescriptor } from "@vuu-ui/vuu-datagrid-types";
|
|
2
|
+
import { PanelProps } from "@salt-ds/core";
|
|
3
|
+
import { Dispatch } from "react";
|
|
4
|
+
import { ColumnAction } from "../settings-panel/useGridSettings";
|
|
5
|
+
import "./ColumnTypePanel.css";
|
|
6
|
+
export interface ColumnTypePanelProps extends PanelProps {
|
|
7
|
+
column: ColumnDescriptor;
|
|
8
|
+
dispatchColumnAction: Dispatch<ColumnAction>;
|
|
9
|
+
}
|
|
10
|
+
export declare const ColumnTypePanel: ({ className, column, dispatchColumnAction, ...props }: ColumnTypePanelProps) => JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./ColumnTypePanel";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./settings-panel";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ColumnDescriptor, GridConfig } from "@vuu-ui/vuu-datagrid-types";
|
|
2
|
+
import { HTMLAttributes } from "react";
|
|
3
|
+
import "./DatagridSettingsPanel.css";
|
|
4
|
+
export interface DatagridSettingsPanelProps extends HTMLAttributes<HTMLDivElement> {
|
|
5
|
+
availableColumns: ColumnDescriptor[];
|
|
6
|
+
gridConfig: Omit<GridConfig, "headings">;
|
|
7
|
+
onCancel?: () => void;
|
|
8
|
+
onConfigChange?: (config: Omit<GridConfig, "headings">, closePanel?: boolean) => void;
|
|
9
|
+
}
|
|
10
|
+
export declare const DatagridSettingsPanel: ({ availableColumns, className, gridConfig, onCancel, onConfigChange, ...props }: DatagridSettingsPanelProps) => JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { GridConfig } from "@vuu-ui/vuu-datagrid-types";
|
|
2
|
+
import { Dispatch, HTMLAttributes } from "react";
|
|
3
|
+
import "./GridSettingsPanel.css";
|
|
4
|
+
import { ColumnAction } from "./useGridSettings";
|
|
5
|
+
export interface GridSettingsPanelProps extends HTMLAttributes<HTMLDivElement> {
|
|
6
|
+
config: Omit<GridConfig, "headings">;
|
|
7
|
+
dispatchColumnAction: Dispatch<ColumnAction>;
|
|
8
|
+
}
|
|
9
|
+
export declare const GridSettingsPanel: ({ config, dispatchColumnAction, style: styleProp, ...props }: GridSettingsPanelProps) => JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./DatagridSettingsPanel";
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { ColumnDescriptor, GridConfig } from "@vuu-ui/vuu-datagrid-types";
|
|
2
|
+
import { Reducer } from "react";
|
|
3
|
+
export type CalculatedColumnExpression = {
|
|
4
|
+
columName: string;
|
|
5
|
+
expression: string;
|
|
6
|
+
};
|
|
7
|
+
export interface ColumnActionAdd {
|
|
8
|
+
type: "addColumn";
|
|
9
|
+
columns?: ColumnDescriptor[];
|
|
10
|
+
column?: ColumnDescriptor;
|
|
11
|
+
index?: number;
|
|
12
|
+
}
|
|
13
|
+
export interface ColumnActionAddCalculatedColumn {
|
|
14
|
+
columnName: string;
|
|
15
|
+
columnType: "string" | "int" | "double" | "boolean";
|
|
16
|
+
expression: string;
|
|
17
|
+
type: "addCalculatedColumn";
|
|
18
|
+
}
|
|
19
|
+
export interface ColumnActionMove {
|
|
20
|
+
type: "moveColumn";
|
|
21
|
+
column?: ColumnDescriptor;
|
|
22
|
+
moveBy?: 1 | -1;
|
|
23
|
+
moveTo?: number;
|
|
24
|
+
moveFrom?: number;
|
|
25
|
+
}
|
|
26
|
+
export interface ColumnActionRemove {
|
|
27
|
+
type: "removeColumn";
|
|
28
|
+
column: ColumnDescriptor;
|
|
29
|
+
}
|
|
30
|
+
export interface ColumnActionUpdate {
|
|
31
|
+
type: "updateColumn";
|
|
32
|
+
column: ColumnDescriptor;
|
|
33
|
+
}
|
|
34
|
+
export interface ColumnActionUpdateProp {
|
|
35
|
+
align?: ColumnDescriptor["align"];
|
|
36
|
+
column: ColumnDescriptor;
|
|
37
|
+
hidden?: ColumnDescriptor["hidden"];
|
|
38
|
+
label?: ColumnDescriptor["label"];
|
|
39
|
+
type: "updateColumnProp";
|
|
40
|
+
width?: ColumnDescriptor["width"];
|
|
41
|
+
}
|
|
42
|
+
export interface ColumnActionUpdateGridSettings {
|
|
43
|
+
type: "updateGridSettings";
|
|
44
|
+
columnDefaultWidth?: number;
|
|
45
|
+
columnFormatHeader?: "capitalize" | "uppercase";
|
|
46
|
+
}
|
|
47
|
+
export interface ColumnActionUpdateTypeFormatting {
|
|
48
|
+
type: "updateColumnTypeFormatting";
|
|
49
|
+
column: ColumnDescriptor;
|
|
50
|
+
alignOnDecimals?: boolean;
|
|
51
|
+
decimals?: number;
|
|
52
|
+
zeroPad?: boolean;
|
|
53
|
+
}
|
|
54
|
+
export type ColumnAction = ColumnActionAdd | ColumnActionAddCalculatedColumn | ColumnActionUpdateGridSettings | ColumnActionMove | ColumnActionRemove | ColumnActionUpdate | ColumnActionUpdateProp | ColumnActionUpdateTypeFormatting;
|
|
55
|
+
export type GridSettingsReducer = Reducer<Omit<GridConfig, "headings">, ColumnAction>;
|
|
56
|
+
export declare const useGridSettings: (config: Omit<GridConfig, "headings">) => {
|
|
57
|
+
gridSettings: Omit<GridConfig, "headings">;
|
|
58
|
+
dispatchColumnAction: import("react").Dispatch<ColumnAction>;
|
|
59
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { DataSource } from "@vuu-ui/vuu-data";
|
|
2
|
+
import { HTMLAttributes } from "react";
|
|
3
|
+
import "./DatasourceStats.css";
|
|
4
|
+
interface DataSourceStatsProps extends HTMLAttributes<HTMLSpanElement> {
|
|
5
|
+
dataSource: DataSource;
|
|
6
|
+
}
|
|
7
|
+
export declare const DataSourceStats: ({ className: classNameProp, dataSource, }: DataSourceStatsProps) => JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./DatasourceStats";
|