@vuu-ui/vuu-table-extras 0.8.7-debug → 0.8.8-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.
Files changed (85) hide show
  1. package/cjs/index.js +1034 -654
  2. package/cjs/index.js.map +4 -4
  3. package/esm/index.js +1160 -671
  4. package/esm/index.js.map +4 -4
  5. package/index.css +813 -107
  6. package/index.css.map +3 -3
  7. package/package.json +13 -13
  8. package/types/vuu-data/src/array-data-source/array-data-source.d.ts +65 -0
  9. package/types/vuu-data/src/array-data-source/group-utils.d.ts +10 -0
  10. package/types/vuu-data/src/array-data-source/sort-utils.d.ts +4 -0
  11. package/types/vuu-data/src/authenticate.d.ts +1 -0
  12. package/types/vuu-data/src/connection-manager.d.ts +46 -0
  13. package/types/vuu-data/src/connectionTypes.d.ts +5 -0
  14. package/types/vuu-data/src/constants.d.ts +41 -0
  15. package/types/vuu-data/src/data-source.d.ts +172 -0
  16. package/types/vuu-data/src/index.d.ts +10 -0
  17. package/types/vuu-data/src/inlined-worker.d.ts +1 -0
  18. package/types/vuu-data/src/json-data-source.d.ts +53 -0
  19. package/types/vuu-data/src/message-utils.d.ts +26 -0
  20. package/types/vuu-data/src/remote-data-source.d.ts +56 -0
  21. package/types/vuu-data/src/server-proxy/messages.d.ts +43 -0
  22. package/types/vuu-data/src/vuuUIMessageTypes.d.ts +202 -0
  23. package/types/vuu-data/src/websocket-connection.d.ts +25 -0
  24. package/types/vuu-table-extras/src/column-list/ColumnList.d.ts +12 -0
  25. package/types/vuu-table-extras/src/column-list/index.d.ts +1 -0
  26. package/types/{index.d.ts → vuu-table-extras/src/index.d.ts} +1 -0
  27. package/types/vuu-table-extras/src/table-settings/TableSettingsPanel.d.ts +15 -0
  28. package/types/vuu-table-extras/src/table-settings/index.d.ts +2 -0
  29. package/types/vuu-table-extras/src/table-settings/useTableSettings.d.ts +14 -0
  30. package/types/table-settings/column-picker/ColumnListItem.d.ts +0 -4
  31. package/types/table-settings/column-picker/ColumnPicker.d.ts +0 -13
  32. package/types/table-settings/column-picker/index.d.ts +0 -1
  33. /package/types/{cell-renderers → vuu-table-extras/src/cell-renderers}/background-cell/BackgroundCell.d.ts +0 -0
  34. /package/types/{cell-renderers → vuu-table-extras/src/cell-renderers}/background-cell/index.d.ts +0 -0
  35. /package/types/{cell-renderers → vuu-table-extras/src/cell-renderers}/background-cell/useDirection.d.ts +0 -0
  36. /package/types/{cell-renderers → vuu-table-extras/src/cell-renderers}/index.d.ts +0 -0
  37. /package/types/{cell-renderers → vuu-table-extras/src/cell-renderers}/progress-cell/ProgressCell.d.ts +0 -0
  38. /package/types/{cell-renderers → vuu-table-extras/src/cell-renderers}/progress-cell/index.d.ts +0 -0
  39. /package/types/{column-expression-input → vuu-table-extras/src/column-expression-input}/ColumnExpressionInput.d.ts +0 -0
  40. /package/types/{column-expression-input → vuu-table-extras/src/column-expression-input}/column-function-descriptors.d.ts +0 -0
  41. /package/types/{column-expression-input → vuu-table-extras/src/column-expression-input}/column-language-parser/ColumnExpressionLanguage.d.ts +0 -0
  42. /package/types/{column-expression-input → vuu-table-extras/src/column-expression-input}/column-language-parser/ColumnExpressionTreeWalker.d.ts +0 -0
  43. /package/types/{column-expression-input → vuu-table-extras/src/column-expression-input}/column-language-parser/column-expression-parse-utils.d.ts +0 -0
  44. /package/types/{column-expression-input → vuu-table-extras/src/column-expression-input}/column-language-parser/generated/column-parser.d.ts +0 -0
  45. /package/types/{column-expression-input → vuu-table-extras/src/column-expression-input}/column-language-parser/generated/column-parser.terms.d.ts +0 -0
  46. /package/types/{column-expression-input → vuu-table-extras/src/column-expression-input}/column-language-parser/index.d.ts +0 -0
  47. /package/types/{column-expression-input → vuu-table-extras/src/column-expression-input}/column-language-parser/test.d.mts +0 -0
  48. /package/types/{column-expression-input → vuu-table-extras/src/column-expression-input}/functionDocInfo.d.ts +0 -0
  49. /package/types/{column-expression-input → vuu-table-extras/src/column-expression-input}/highlighting.d.ts +0 -0
  50. /package/types/{column-expression-input → vuu-table-extras/src/column-expression-input}/index.d.ts +0 -0
  51. /package/types/{column-expression-input → vuu-table-extras/src/column-expression-input}/theme.d.ts +0 -0
  52. /package/types/{column-expression-input → vuu-table-extras/src/column-expression-input}/useColumnAutoComplete.d.ts +0 -0
  53. /package/types/{column-expression-input → vuu-table-extras/src/column-expression-input}/useColumnExpressionEditor.d.ts +0 -0
  54. /package/types/{column-expression-input → vuu-table-extras/src/column-expression-input}/useColumnExpressionSuggestionProvider.d.ts +0 -0
  55. /package/types/{datagrid-configuration-ui → vuu-table-extras/src/datagrid-configuration-ui}/calculated-column-panel/CalculatedColumnPanel.d.ts +0 -0
  56. /package/types/{datagrid-configuration-ui → vuu-table-extras/src/datagrid-configuration-ui}/calculated-column-panel/index.d.ts +0 -0
  57. /package/types/{datagrid-configuration-ui → vuu-table-extras/src/datagrid-configuration-ui}/column-picker/ColumnListItem.d.ts +0 -0
  58. /package/types/{datagrid-configuration-ui → vuu-table-extras/src/datagrid-configuration-ui}/column-picker/ColumnPicker.d.ts +0 -0
  59. /package/types/{datagrid-configuration-ui → vuu-table-extras/src/datagrid-configuration-ui}/column-picker/index.d.ts +0 -0
  60. /package/types/{datagrid-configuration-ui → vuu-table-extras/src/datagrid-configuration-ui}/column-settings-panel/ColumnSettingsPanel.d.ts +0 -0
  61. /package/types/{datagrid-configuration-ui → vuu-table-extras/src/datagrid-configuration-ui}/column-settings-panel/index.d.ts +0 -0
  62. /package/types/{datagrid-configuration-ui → vuu-table-extras/src/datagrid-configuration-ui}/column-type-panel/ColumnTypePanel.d.ts +0 -0
  63. /package/types/{datagrid-configuration-ui → vuu-table-extras/src/datagrid-configuration-ui}/column-type-panel/NumericColumnPanel.d.ts +0 -0
  64. /package/types/{datagrid-configuration-ui → vuu-table-extras/src/datagrid-configuration-ui}/column-type-panel/StringColumnPanel.d.ts +0 -0
  65. /package/types/{datagrid-configuration-ui → vuu-table-extras/src/datagrid-configuration-ui}/column-type-panel/index.d.ts +0 -0
  66. /package/types/{datagrid-configuration-ui → vuu-table-extras/src/datagrid-configuration-ui}/index.d.ts +0 -0
  67. /package/types/{datagrid-configuration-ui → vuu-table-extras/src/datagrid-configuration-ui}/settings-panel/DatagridSettingsPanel.d.ts +0 -0
  68. /package/types/{datagrid-configuration-ui → vuu-table-extras/src/datagrid-configuration-ui}/settings-panel/GridSettingsPanel.d.ts +0 -0
  69. /package/types/{datagrid-configuration-ui → vuu-table-extras/src/datagrid-configuration-ui}/settings-panel/index.d.ts +0 -0
  70. /package/types/{datagrid-configuration-ui → vuu-table-extras/src/datagrid-configuration-ui}/settings-panel/useGridSettings.d.ts +0 -0
  71. /package/types/{datasource-stats → vuu-table-extras/src/datasource-stats}/DatasourceStats.d.ts +0 -0
  72. /package/types/{datasource-stats → vuu-table-extras/src/datasource-stats}/index.d.ts +0 -0
  73. /package/types/{table-settings → vuu-table-extras/src/table-settings-deprecated}/calculated-column-panel/CalculatedColumnPanel.d.ts +0 -0
  74. /package/types/{table-settings → vuu-table-extras/src/table-settings-deprecated}/calculated-column-panel/index.d.ts +0 -0
  75. /package/types/{table-settings → vuu-table-extras/src/table-settings-deprecated}/column-settings-panel/ColumnSettingsPanel.d.ts +0 -0
  76. /package/types/{table-settings → vuu-table-extras/src/table-settings-deprecated}/column-settings-panel/index.d.ts +0 -0
  77. /package/types/{table-settings → vuu-table-extras/src/table-settings-deprecated}/column-type-panel/ColumnTypePanel.d.ts +0 -0
  78. /package/types/{table-settings → vuu-table-extras/src/table-settings-deprecated}/column-type-panel/NumericColumnPanel.d.ts +0 -0
  79. /package/types/{table-settings → vuu-table-extras/src/table-settings-deprecated}/column-type-panel/StringColumnPanel.d.ts +0 -0
  80. /package/types/{table-settings → vuu-table-extras/src/table-settings-deprecated}/column-type-panel/index.d.ts +0 -0
  81. /package/types/{table-settings → vuu-table-extras/src/table-settings-deprecated}/index.d.ts +0 -0
  82. /package/types/{table-settings → vuu-table-extras/src/table-settings-deprecated}/settings-panel/DatagridSettingsPanel.d.ts +0 -0
  83. /package/types/{table-settings → vuu-table-extras/src/table-settings-deprecated}/settings-panel/GridSettingsPanel.d.ts +0 -0
  84. /package/types/{table-settings → vuu-table-extras/src/table-settings-deprecated}/settings-panel/index.d.ts +0 -0
  85. /package/types/{table-settings → vuu-table-extras/src/table-settings-deprecated}/settings-panel/useGridSettings.d.ts +0 -0
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", "../../../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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",
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-list/ColumnList.css", "../../../packages/vuu-table-extras/src/column-expression-input/ColumnExpressionInput.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/src/table/ColumnResizer.css", "../../../packages/vuu-table/src/table/TableCell.css", "../../../packages/vuu-table/src/table/TableGroupCell.css", "../../../packages/vuu-table/src/table/TableRow.css", "../../../packages/vuu-table/src/table/TableGroupHeaderCell.css", "../../../packages/vuu-table/src/table/SortIndicator.css", "../../../packages/vuu-table/src/table/TableHeaderCell.css", "../../../packages/vuu-table/src/table/filter-indicator.css", "../../../packages/vuu-table/src/table/RowBasedTable.css", "../../../packages/vuu-table/src/table/Table.css", "../../../packages/vuu-table/src/table/Table-loading.css", "../../../packages/vuu-table/src/table/cell-renderers/json-cell/JsonCell.css", "../../../packages/vuu-table/src/table-next/ColumnMenu.css", "../../../packages/vuu-table/src/table-next/column-resizing/ColumnResizer.css", "../../../packages/vuu-table/src/table-next/HeaderCell.css", "../../../packages/vuu-table/src/table-next/Row.css", "../../../packages/vuu-table/src/table-next/TableNext.css", "../../../packages/vuu-table-extras/src/table-settings/TableSettingsPanel.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.vuuColumnList {\n --vuuList-borderStyle: none;\n --vuuListItem-padding: 0;\n\n width: 252px;\n}\n\n.vuuColumnListItem {\n border-bottom: solid 1px var(--salt-separable-tertiary-borderColor);\n padding: 0 6px 0 0;\n}\n\n.vuuColumnList-switch {\n flex: 0 0 32px;\n}\n\n.vuuColumnList-text {\n flex: 1 1 auto;\n}\n\n.vuuColumnList-checkBox {\n flex: 0 0 20px;\n}\n\n.vuuColumnList-header {\n border-top: solid 2px var(--vuu-color-gray-30);\n font-size: 14px;\n font-weight: 600;\n padding-top: 24px;\n\n}\n\n.vuuColumnList-colHeadings {\n border-bottom: solid 2px var(--vuu-color-gray-30);\n color: var(--vuu-color-gray-50);\n display: flex;\n font-size: 10px;\n justify-content: space-between;\n margin-top: 16px;\n padding-bottom: 8px;\n\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}", ".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}", ".vuuColumnResizer {\n background-color: var(--columnResizer-color);\n cursor: col-resize;\n height: var(--header-height);\n position: relative;\n width: 4px;\n}\n\n.vuuColumnResizer:hover {\n --columnResizer-color: var(--salt-color-blue-500);\n}\n\n.vuuColumnResizer:after {\n content: '';\n position: absolute;\n width: var(--columnResizer-width, 1px);\n top: 0;\n bottom:0;\n right: -1px;\n background-color: var(--columnResizer-color, var(--salt-separable-tertiary-borderColor));\n height: var(--columnResizer-height, calc(100% + 1px));\n}", ".vuuTable {\n --cell-outline-width: 2px;\n user-select: none;\n}\n\n[role=\"cell\"] {\n display: inline-block;\n}\n\n[data-align=\"end\"] {\n margin-left: auto;\n}\n\n[data-align=\"end\"] + [data-align=\"end\"] {\n margin-left: 0;\n}\n\n \n.vuuTable-table [role=\"cell\"] {\n --saltEditableLabel-height: 17px;\n --saltInput-height: 17px;\n --saltInput-minHeight: 17px;\n\n border-right: 1px solid var(--vuuTableCell-border-rightColor);\n border-bottom: 1px solid var(--vuuTableCell-border-bottomColor);\n color: var(--salt-text-primary-foreground);\n cursor: default;\n height: var(--vuuTable-rowHeight);\n line-height: calc(var(--vuuTable-rowHeight) - 1px);\n overflow: hidden;\n padding: 0 5px;\n vertical-align: top;\n}\n\n\n.vuuTable-headerCell:focus,\n.vuuTable [role=\"cell\"]:focus {\n outline: var(--vuuTableCell-outline, dotted var(--salt-color-blue-400) var(--cell-outline-width));\n outline-offset: calc(var(--cell-outline-width) * -1);\n /** This is to achieve a white background to outline dashes */\n box-shadow: inset 0 0 0 var(--cell-outline-width) white;\n border-bottom: none;\n}\n\n.vuuTable-headerCell:focus .vuuTable-headerCell-inner{\n /** This is to achieve a white background to outline dashes */\n padding-bottom: var(--cell-outline-width);\n}\n\n.vuuTable-headerCell:not(.vuuTable-headerCell-resizing):focus .vuuTable-headerCell-inner{\n --columnResizer-color: transparent;\n}\n\n\n.vuuTable [role=\"cell\"]:focus {\n /** This is to achieve a white background to outline dashes */\n border-right: none;\n padding-bottom: 1px;\n}\n\n\n[role=\"cell\"][data-editable=\"true\"] {\n --salt-text-fontSize: 10px;\n --vuu-icon-size: 5px;\n position: relative;\n}\n\n[role=\"cell\"][data-editable=\"true\"]:after {\n top: 0;\n content: \"\";\n background-color: var(--salt-text-secondary-foreground, black);\n left: 0;\n height: var(--vuu-icon-height, var(--vuu-icon-size, 12px));\n -webkit-mask: var(--svg-corner-triangle) center center/var(--vuu-icon-size) var(--vuu-icon-size);\n mask: var(--svg-corner-triangle) center center/var(--vuu-icon-size) var(--vuu-icon-size);\n mask-repeat: no-repeat;\n -webkit-mask-repeat: no-repeat;\n position: absolute;\n transform: rotate(180deg);\n width: var(--vuu-icon-width, var(--vuu-icon-size, 12px));\n }\n \n [role=\"cell\"]:focus[data-editable],\n [role=\"cell\"]:focus-within[data-editable],\n [role=\"cell\"]:has(.saltEditableLabel-editing) {\n outline: solid var(--salt-color-blue-400) 1px;\n background-color: white;\n outline-offset: -1px;\n}\n\n[role=\"cell\"]:focus[data-editable=\"true\"]:after,\n[role=\"cell\"]:has(.saltEditableLabel):after {\n /* background-color: black; */\n background-color: var(--salt-color-blue-400);\n left: 1px;\n top: 1px;\n}\n\n.vuuAlignRight {\n text-align: right;\n }\n ", ".vuuTableGroupCell {\n --spacer-width: 20px;\n --toggle-icon-transform: var(--row-toggle-icon-transform, none);\n --vuu-icon-width: 18px;\n\n align-items: center;\n display: inline-flex;\n}\n\n.vuuTableGroupCell-spacer {\n height: 100%;\n position: relative;\n width: var(--spacer-width);\n}\n\n.vuuTableGroupCell-spacer:after {\n background: var(--salt-container-primary-borderColor);\n content: '';\n position: absolute;\n top:0;\n bottom: -1px;\n /* left: calc(var(--spacer-width / 2)); */\n left: 9px;\n width: 1px;\n}\n\n.vuuTableGroupCell-toggle {\n transition: transform 0.25s;\n transform: var(--toggle-icon-transform);\n}\n\n\n/* .vuuTableGroupCell-toggle[data-icon='triangle-right']{\n --vuu-icon-svg: var(--svg-plus-box);\n}\n\n.vuuTableRow-expanded .vuuTableGroupCell-toggle[data-icon='triangle-right']{\n --vuu-icon-svg: var(--svg-minus-box);\n} */\n", " .vuuTableRow {\n --row-background: var(--table-background);\n position: absolute;\n top:0;\n }\n\n .vuuTableRow-even {\n --row-background: var(--row-background-even);\n }\n\n /* .vuuTableRow :is(.vuuPinFloating, .vuuPinLeft, .vuuPinRight) {\n background-color: var(--row-background);\n } */\n .vuuTableRow {\n background-color: var(--row-background);\n }\n \n .vuuTableRow-expanded {\n --row-toggle-icon-transform: rotate(90deg);\n }\n \n .vuuTableRow[aria-selected] {\n background-color: var(--vuuTableRow-selected-background, var(--salt-selectable-background-selected));\n --vuuTableCell-border-bottomColor: var(--salt-selectable-borderColor-selected);\n }\n\n /* .vuuTableRow:not([aria-selected]):has(+ [aria-selected]) {\n --vuuTableCell-border-bottomColor: var(--salt-selectable-borderColor-selected);\n } */\n\n .vuuTableRow-preSelected {\n --vuuTableCell-border-bottomColor: var(--salt-selectable-borderColor-selected);\n }", "\n.salt-theme {\n --svg-spinner: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"><path fill=\"rgb(38, 112, 169)\" d=\"M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50\"><animateTransform attributeName=\"transform\" attributeType=\"XML\" type=\"rotate\" dur=\"1s\" from=\"0 50 50\" to=\"360 50 50\" repeatCount=\"indefinite\" /></path></svg>');\n}\n\n.vuuTable-groupHeaderCell {\n --cell-align: 'flex-start';\n text-align: left;\n background: var(--dataTable-background);\n cursor: default;\n height: var(--vuuTableHeaderHeight);\n /* ensure header row sits atop everything else when scrolling down */\n }\n\n\n .vuuTable-groupHeaderCell-inner {\n align-items: center;\n display: flex;\n height: 100%;\n padding-left: 1px;\n }\n\n .vuuTable-groupHeaderCell-label {\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n }\n\n .vuuTable-groupHeaderCell-col {\n align-items: center;\n background-color: inherit;\n display: inline-flex;\n flex: 0 1 auto;\n height: calc(var(--vuuTableHeaderHeight) - 2px);\n justify-content: space-between;\n padding-right: 8px;\n position: relative;\n }\n\n .vuuTable-groupHeaderCell-close {\n --vuu-icon-height: 18px;\n --vuu-icon-width: 18px;\n cursor: pointer;\n left: 3px;\n }\n\n .vuuTable-groupHeaderCell-col:nth-child(odd) {\n background-color: var(--salt-color-gray-50);\n }\n .vuuTable-groupHeaderCell-col:nth-child(even) {\n background-color: var(--salt-color-gray-40);\n }\n\n .vuuTable-groupHeaderCell-col:first-child {\n clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 50%, calc(100% - 8px) 100%, 0 100%);\n padding-left: 3px;\n z-index: 1;\n }\n \n .vuuTable-groupHeaderCell-col:not(:first-child) {\n margin-left: -6px;\n padding-left: 12px;\n clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 50%, calc(100% - 8px) 100%, 0 100%, 8px 50%);\n }\n \n .vuuTable-groupHeaderCell-resizing {\n --columnResizer-color: var(--salt-color-blue-500);\n --columnResizer-height: var(--table-height);\n --columnResizer-width: 2px;\n }\n .vuuTable-groupHeaderCell-pending {\n --pending-content: '';\n }\n\n .vuuTable-groupHeaderCell-col:has(+ .vuuColumnResizer):after {\n content: var(--pending-content);\n width: 24px;\n height:24px;\n background-image: var(--svg-spinner);\n background-repeat: no-repeat;\n background-size: cover;\n }\n", ".vuuSortIndicator {\n --menu-icon-size: 18px;\n --menu-item-icon-color: black;\n display: flex;\n flex-direction: column;\n position: relative;\n width: 18px;\n}\n\n.vuuSortPosition {\n font-size: 10px;\n line-height: 10px;\n text-align: center;\n}\n\n", "/* We support multi level headings up to a maximum of 4 heading levels */\n.vuuTable-heading:nth-child(2) {\n --heading-top: calc(var(--header-height));\n}\n.vuuTable-heading:nth-child(3) {\n --heading-top: calc(var(--header-height) * 2);\n}\n.vuuTable-heading:nth-child(3) {\n --heading-top: calc(var(--header-height) * 3);\n}\n\n.vuuTable-headingCell {\n background: var(--dataTable-background);\n border-color: var(--salt-separable-tertiary-borderColor);\n border-style: solid solid solid none;\n border-width: 1px;\n color: var(--salt-text-secondary-foreground);\n display: inline-block;\n height: var(--vuuTableHeaderHeight);\n padding: 0 !important;\n}\n\n.vuuTable-heading:has(+ .vuuTable-heading) > .vuuTable-headingCell {\n border-bottom-color: transparent;\n}\n\n[role=\"columnHeader\"] {\n --vuuTableCell-border-bottomColor: var(--salt-separable-tertiary-borderColor);\n --cell-align: 'flex-start';\n display: inline-block;\n text-align: left;\n background: var(--dataTable-background);\n border-right: 1px solid var(--vuuTableCell-border-rightColor);\n border-bottom: 1px solid var(--vuuTableCell-border-bottomColor);\n color: var(--salt-text-secondary-foreground);\n cursor: default;\n height: var(--vuuTableHeaderHeight);\n padding: 0 !important;\n vertical-align: top;\n }\n\n .vuuTable-headerCell-right {\n --cell-align: flex-end;\n }\n \n .vuuTable-headerCell-inner {\n align-items: stretch;\n display: flex;\n height: 100%;\n padding: 0 0 0 3px;\n }\n\n .vuuTable-headerCell-inner:has(.vuuFilterIndicator){\n padding-left: 0;\n }\n\n .vuuTable-headerCell-label {\n align-items: center;\n justify-content: var(--cell-align);\n display: flex;\n flex: 1 1 auto;\n }\n\n .vuuTable-headerCell-resizing {\n --columnResizer-color: var(--salt-color-blue-500);\n --columnResizer-height: var(--table-height);\n --columnResizer-width: 2px;\n }\n\n [role='headerCell'].vuuPinLeft.vuuEndPin:after {\n box-shadow: 2px 0px 5px rgba(0,0,0,0.4);\n content: \"\";\n position: absolute;\n width: 1px;\n background-color: transparent;\n height: var(--table-height);\n top:0;\n right: 0px;\n }\n\n [role='headerCell'].vuuPinRight.vuuEndPin:after {\n box-shadow: -2px 0px 5px rgba(0,0,0,0.3);\n content: \"\";\n position: absolute;\n width: 1px;\n background-color: transparent;\n height: var(--table-height);\n top:0;\n left: 0px;\n }\n\n [role='headerCell']:is(.vuuPinLeft, .vuuPinRight, .vuuPinFloating) {\n top:0;\n z-index: 20;\n }\n \n .saltDraggable-vuuTable-headerCell {\n --dataTable-background: ivory;\n --vuuTableHeaderHeight: 25px;\n }", ".vuuFilterIndicator {\n --menu-icon-size: 12px;\n --menu-item-icon-color: black;\n align-items: center;\n cursor: pointer;\n display: flex;\n flex: 0 0 18px;\n flex-direction: column;\n justify-content: center;\n position: relative;\n}\n\n.vuuFilterIndicator + .vuuTable-headerCell-inner {\n padding-left: 0;\n}\n", ".vuuTable-table {\n --vuuTable-rowHeight: var(--row-height);\n --vuuTableCell-border-bottomColor: transparent;\n --vuuTableCell-border-rightColor: var(--salt-separable-tertiary-borderColor);\n \n border-collapse: separate;\n border-spacing: 0;\n border-left: 1px solid #ccc;\n border: none;\n font-size: var(--vuuTable-font-size, 10px);\n margin: 0;\n min-height: 100%;\n width: var(--content-width);\n}\n \n.vuuTable-headers {\n position: sticky;\n top: 0;\n z-index: 1;\n}\n\n.vuuTable-body {\n height: var(--content-height);\n position: relative;\n}\n\n", "/**\n variables injected by Table component\n --content-height\n --content-width\n --header-height\n --horizontal-scrollbar-height\n --pinned-width-left\n --pinned-width-right\n --row-height\n --table-height\n --table-width\n --total-header-height\n --vertical-scrollbar-width\n --viewport-body-height\n*/\n.vuuTable {\n\n --dataTable-background: var(--salt-container-primary-background, inherit);\n --row-background-even: var(--dataTable-background);\n --row-background-odd: var(--dataTable-background);\n --table-background: var(--dataTable-background, none);\n\n background-color: var(--dataTable-background);\n position: relative;\n}\n\n.vuuTable-zebra {\n --row-background-even: var(--salt-container-secondary-background);\n}\n\n.vuuTable-scrollbarContainer {\n --scroll-content-width: calc(var(--content-width) - var(--pinned-width-left));\n border-bottom: none !important;\n border-top: none !important;\n border-left: solid 1px var(--salt-container-primary-borderColor);\n /* a top border */\n box-shadow: 0px -1px 0px 0px var(--salt-container-primary-borderColor);\n height: var(--viewport-body-height);\n left: var(--pinned-width-left);\n overflow: auto;\n position: absolute;\n top: var(--total-header-height);\n width: calc(var(--table-width) - var(--pinned-width-left) + 1px);\n}\n\n.vuuTable-scrollbarContent {\n height: calc(var(--content-height) + var(--horizontal-scrollbar-height));\n position: absolute;\n width: var(--scroll-content-width, var(--content-width));\n}\n\n.vuuTable-contentContainer {\n --vuuTableHeaderHeight: var(--header-height, 30px);\n\n background-color: var(--salt-container-primary-background);\n\n height: calc(var(--table-height) - var(--horizontal-scrollbar-height));\n position: relative;\n overflow: auto;\n overscroll-behavior: none;\n width: calc(var(--table-width) - var(--vertical-scrollbar-width));\n}\n\n.vuuTable-contentContainer::-webkit-scrollbar {\n display: none;\n}\n\n\n:is(.vuuPinLeft, .vuuPinRight, .vuuPinFloating) {\n background-color: inherit;\n position: sticky;\n z-index: 1;\n}\n\n.vuuTable-settings {\n --saltButton-height: var(--header-height);\n --saltButton-width: 15px;\n position: absolute !important;\n right: 0;\n top: 0;\n}\n\n.vuuTable:has(.vuuTable-headerCell-resizing) * {\n cursor: col-resize;\n}\n\n", ".vuuTable-loading .vuuTable-table {\n --skeleton-height: 20px;\n --skeleton-width: calc(var(--content-width) - 8px);\n --skeleton-left: 4px;\n --skeleton-row-height: 16px;\n --skeleton-size: var(--skeleton-width) var(--skeleton-height);\n --skeleton-row: linear-gradient(\n var(--salt-color-gray-20-fade-background) var(--skeleton-row-height),\n transparent 0\n );\n --skeleton-background-image: var(--skeleton-row);\n \n background-image: var(--skeleton-background-image);\n background-repeat: repeat-y;\n background-size: var(--skeleton-size);\n background-position-x: var(--skeleton-left);\n background-position-y: 27px;\n }\n \n .vuuTable-loading .vuuTable-table {\n --skeleton-height: 20px;\n --skeleton-width: calc(var(--content-width) - 8px);\n --skeleton-left: 4px;\n --skeleton-row-height: 16px;\n --skeleton-size: var(--skeleton-width) var(--skeleton-height);\n --skeleton-row: linear-gradient(\n var(--salt-color-gray-20-fade-background) var(--skeleton-row-height),\n transparent 0\n );\n --skeleton-background-image: var(--skeleton-row);\n \n background-image: var(--skeleton-background-image);\n background-repeat: repeat-y;\n background-size: var(--skeleton-size);\n background-position-x: var(--skeleton-left);\n background-position-y: 27px;\n \n /* animation:linearAnim 2s infinite linear */\n }\n \n .vuuTable-loading .vuuTable-table:after {\n animation: shimmer 2s infinite;\n background: linear-gradient(\n 90deg, \n rgba(255,255,255, 0) 0, \n rgba(255,255,255, .2) 20%, \n rgba(255,255,255, .6) 60%, \n rgba(255,255,255, 0)\n );\n content: '';\n height: var(--table-height);\n left: 0px;\n position: absolute;\n transform: translateX(-100%);\n top: var(--header-height);\n width: var(--content-width);\n }\n \n @keyframes shimmer {\n 100% {\n transform: translateX(100%);\n }\n }", ".vuuJsonCell-group {\n align-items: center;\n display: inline-flex;\n height: calc(var(--vuuTable-rowHeight) - 1px);\n width: 100%;\n}\n\n.vuuJsonCell-toggle {\n --vuu-icon-color: var(--salt-text-primary-foreground);\n --vuu-icon-height: calc(var(--vuuTable-rowHeight) - 1px);\n --vuu-icon-width: 18px;\n flex-shrink: 0;\n margin-left: auto;\n}\n\n.vuuJsonCell-name {\n font-weight: var(--salt-typography-fontWeight-semiBold); \n}\n\n.vuuJsonCell-value {\n overflow: hidden;\n text-overflow: ellipsis;\n}", ".vuuMenuItem {\n --vuu-svg-cog: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path d=\"M12.9533 8.65331C12.98 8.43998 13 8.22665 13 7.99998C13 7.77331 12.98 7.55998 12.9533 7.34665L14.36 6.24665C14.4867 6.14665 14.52 5.96665 14.44 5.81998L13.1067 3.51331C13.0267 3.36665 12.8467 3.31331 12.7 3.36665L11.04 4.03331C10.6933 3.76665 10.32 3.54665 9.91333 3.37998L9.66 1.61331C9.64 1.45331 9.5 1.33331 9.33333 1.33331H6.66667C6.5 1.33331 6.36 1.45331 6.34 1.61331L6.08667 3.37998C5.68 3.54665 5.30667 3.77331 4.96 4.03331L3.3 3.36665C3.14667 3.30665 2.97333 3.36665 2.89333 3.51331L1.56 5.81998C1.47333 5.96665 1.51333 6.14665 1.64 6.24665L3.04667 7.34665C3.02 7.55998 3 7.77998 3 7.99998C3 8.21998 3.02 8.43998 3.04667 8.65331L1.64 9.75331C1.51333 9.85331 1.48 10.0333 1.56 10.18L2.89333 12.4866C2.97333 12.6333 3.15333 12.6866 3.3 12.6333L4.96 11.9666C5.30667 12.2333 5.68 12.4533 6.08667 12.62L6.34 14.3866C6.36 14.5466 6.5 14.6666 6.66667 14.6666H9.33333C9.5 14.6666 9.64 14.5466 9.66 14.3866L9.91333 12.62C10.32 12.4533 10.6933 12.2266 11.04 11.9666L12.7 12.6333C12.8533 12.6933 13.0267 12.6333 13.1067 12.4866L14.44 10.18C14.52 10.0333 14.4867 9.85331 14.36 9.75331L12.9533 8.65331V8.65331ZM8 10.3333C6.71333 10.3333 5.66667 9.28665 5.66667 7.99998C5.66667 6.71331 6.71333 5.66665 8 5.66665C9.28667 5.66665 10.3333 6.71331 10.3333 7.99998C10.3333 9.28665 9.28667 10.3333 8 10.3333Z\"/></svg>');\n}\n.vuuTable-columnMenu {\n\n --vuu-icon-color: #606477;\n --vuu-icon-height: 20px;\n --vuu-icon-left: 0px;\n --vuu-icon-size: 16px;\n --vuu-icon-top: 0px;\n --vuu-icon-width: 20px;\n\n border-radius: 4px;\n cursor: pointer;\n display: inline-block;\n margin-top: 2px;\n padding: 2px;\n}\n\n.vuuTable-columnMenu:hover {\n --vuu-icon-color: #15171B;\n background-color: #F37880;\n}\n\n.vuuTable-columnMenu-open:hover,\n.vuuTable-columnMenu-open {\n background-color: #6D18BD;\n --vuu-icon-color: white;\n\n}\n\n[data-icon='cog'] {\n --vuu-icon-svg: var(--vuu-svg-cog);\n --vuu-icon-size: 14px;\n }\n ", ".vuuColumnResizer {\n background-color: var(--columnResizer-color);\n cursor: col-resize;\n height: var(--header-height);\n position: relative;\n width: 4px;\n}\n\n.vuuColumnResizer:hover {\n --columnResizer-color: var(--salt-color-blue-500);\n}\n\n.vuuColumnResizer:after {\n content: '';\n position: absolute;\n width: var(--columnResizer-width, 1px);\n top: 0;\n bottom:0;\n right: -1px;\n background-color: var(--columnResizer-color, var(--salt-separable-tertiary-borderColor));\n height: var(--columnResizer-height, calc(100% + 1px));\n}", ".vuuTableNext-col-header {\n border-bottom: 1px solid #ccc;\n box-sizing: border-box;\n cursor: default;\n display: inline-flex;\n gap: 3px;\n height: var(--header-height);\n vertical-align: top;\n }\n\n .vuuTableNext-col-header .vuuColumnResizer:hover {\n --columnResizer-color: var(--vuu-color-purple-10);\n}\n\n.vuuTableNext-col-header-label {\n line-height: calc(var(--header-height) - 1px);\n}\n\n\n .vuuTableNext-col-header.vuuPinLeft.vuuEndPin .vuuColumnResizer:before {\n --height: calc(var(--columnResizer-height) - 15px);\n --inset-r: calc(var(--pin-width) - 2px);\n --inset-b: calc(var(--height) - 2px);\n --clip-path: polygon(\n 0% 0%, \n 0% 120%, \n 2px 120%, \n 2px 2px, \n var(--inset-r) 2px, \n var(--inset-r) var(--inset-b), \n 2px var(--inset-b), \n 2px 120%, \n 120% 120%, \n 120% 0% \n );\n background-color: transparent;\n border-color: var(--vuu-color-gray-40);\n border-width: 1px;\n border-style: solid solid solid solid;\n /* border-radius: 0 6px 6px 0; */\n border-radius: 4px;\n box-shadow: 2px 1px 4px 0px rgba(0, 0, 0, 0.10);\n /* clip-path: inset(10px 10px 10px 10px); */\n clip-path: var(--clip-path);\n content: '';\n position: absolute;\n width: var(--pin-width);\n top:0;\n bottom:0;\n right: -1px;\n height: var(--height);\n z-index: -5;\n}\n\n.vuuTableNext-col-header.vuuPinRight.vuuEndPin .vuuColumnResizer:before {\n --height: calc(var(--columnResizer-height) - 15px);\n --inset-r: calc(var(--pin-width) - 2px);\n --inset-b: calc(var(--height) - 2px);\n --clip-path: polygon(\n -20% 0%, \n -20% 120%, \n 2px 120%, \n 2px 2px, \n var(--inset-r) 2px, \n var(--inset-r) var(--inset-b), \n 2px var(--inset-b), \n 2px 120%, \n 120% 120%, \n 120% 0% \n );\n background-color: transparent;\n border-color: #A9AAAD;\n border-width: 1px;\n border-style: solid solid solid solid;\n /* border-radius: 0 6px 6px 0; */\n border-radius: 4px;\n box-shadow: -2px 1px 4px 0px rgba(0, 0, 0, 0.10);\n /* clip-path: inset(10px 10px 10px 10px); */\n clip-path: var(--clip-path);\n content: '';\n position: absolute;\n width: var(--pin-width);\n top:0;\n bottom:0;\n right: 0px;\n height: var(--height);\n z-index: -5;\n}\n", ".vuuTableNextRow {\n background: #fff;\n border-bottom: 1px solid var(--salt-separable-tertiary-borderColor);\n box-sizing: border-box;\n height: var(--row-height);\n line-height: calc(var(--row-height) - 1px);\n position: absolute;\n top:0;\n white-space: nowrap;\n }\n \n .vuuTableNextRow-selected,\n .vuuTableNextRow-selectedEnd {\n /* background-color: rgb(133,133,137,.16); */\n background-color: rgb(235,235,236);\n }\n \n .vuuTableNextRow-selectedStart {\n --vuu-selection-decorator-left-radius: 5px 0 0 0;\n --vuu-selection-decorator-right-radius: 0 5px 0 0;\n border-radius: 5px 5px 0 0;\n }\n \n .vuuTableNextRow-selectedEnd {\n --vuu-selection-decorator-left-radius: 0 0 0 5px;\n --vuu-selection-decorator-right-radius: 0 0 5px 0;\n border-radius: 0 0 5px 5px;\n }\n \n .vuuTableNextRow-selectedStart.vuuTableNexRow-selectedEnd {\n --vuu-selection-decorator-left-radius: 5px 0 0 5px;\n --vuu-selection-decorator-right-radius: 0 5px 5px 0;\n border-radius: 5px 5px 5px 5px;\n \n }\n \n .vuuTableNextRow-selectedStart:after {\n content: '';\n position: absolute;\n top:0;\n left: 4px;\n height: 1px;\n background-color: var(--vuu-color-purple-10);\n width: calc(var(--content-width) - 8px);\n z-index: 1;\n }\n \n .vuuTableNextRow-selectedEnd {\n border-bottom-color: var(--vuu-color-purple-10);\n }\n \n .vuuTableNextRow-selectionDecorator {\n background-color: var(--vuu-selection-decorator-bg, inherit);\n display: inline-block;\n position: relative;\n height: var(--row-height);\n width: 4px;\n z-index: 2;\n }\n \n .vuuTableNextRow-selectionDecorator.vuuStickyLeft {\n left:0;\n position: sticky;\n }\n \n .vuuTableNextRow-selectionDecorator.vuuStickyRight {\n right:0;\n position: sticky;\n }\n \n .vuuTableNextRow-selected {\n --vuu-selection-decorator-bg: var(--vuu-color-purple-10);\n \n }\n \n .vuuTableNextRow-selectedStart {\n --vuu-selection-decorator-bg: white;\n }\n \n .vuuTableNextRow-selectedEnd {\n --vuu-selection-decorator-bg: white;\n }\n \n .vuuTableNextRow-selectedStart.vuuTableNextRow-selectedEnd {\n \n }\n \n .vuuTableNextRow-selectedStart .vuuTableNextRow-selectionDecorator:before,\n .vuuTableNextRow-selectedEnd .vuuTableNextRow-selectionDecorator:before {\n content: '';\n inset: 0;\n position: absolute;\n background-color: var(--vuu-color-purple-10);\n }\n \n \n .vuuTableNextRow-selectionDecorator.vuuStickyLeft:before {\n border-radius: var(--vuu-selection-decorator-left-radius, 0);\n }\n \n .vuuTableNextRow-selectionDecorator.vuuStickyRight:before {\n border-radius: var(--vuu-selection-decorator-right-radius, 0);\n }", ".vuuTableNext {\n --vuu-table-next-selection-bookend-width: 4px;\n --columnResizer-height: var(--table-height);\n --columnResizer-color: transparent;\n --table-background: var(--salt-container-primary-background);\n\n height: var(--table-css-height);\n background-color: red;\n position: relative;\n user-select: none;\n width: var(--table-css-width);\n}\n\n.vuuTableNext-scrollbarContainer {\n --scroll-content-width: 1100px;\n border-bottom: none !important;\n border-top: none !important;\n border-left: solid 1px var(--salt-container-primary-borderColor);\n /* a top border */\n box-shadow: 0px -1px 0px 0px var(--salt-container-primary-borderColor);\n height: var(--viewport-body-height);\n left: 0px;\n overflow: auto;\n position: absolute;\n top: var(--total-header-height);\n width: var(--table-width);\n}\n\n.vuuTableNext-scrollbarContent {\n height: calc(var(--content-height) + var(--horizontal-scrollbar-height));\n position: absolute;\n width: var(--content-width);\n}\n\n.vuuTableNext-contentContainer {\n background-color: var(--salt-container-primary-background);\n height: calc(var(--table-height) - var(--horizontal-scrollbar-height));\n position: relative;\n overflow: auto;\n overscroll-behavior: none;\n width: calc(var(--table-width) - var(--vertical-scrollbar-width));\n}\n\n.vuuTableNext-contentContainer::-webkit-scrollbar {\n display: none;\n}\n\n \n.vuuTableNext-table {\n position: absolute;\n top: 0;\n left: 0;\n table-layout: fixed;\n width: var(--content-width);\n margin: 0;\n border: none;\n background-color: #fff;\n border-collapse: separate;\n border-spacing: 0;\n}\n\n.vuuTableNext-body {\n height: var(--content-height)\n}\n\n.vuuTableNextCell {\n display: inline-block;\n padding: 0 8px;\n vertical-align: top;\n}\n\n.vuuPinLeft, .vuuPinRight {\n background-color: inherit;\n position: sticky;\n z-index: 1;\n}\n\n.vuuTableNext-col-headings {\n background-color: white;\n padding: 0 var(--vuu-table-next-selection-bookend-width, 0);\n\n position: sticky;\n top: 0;\n /* ensure header row sits atop everything else when scrolling down */\n z-index: 1;\n}\n\n .vuuTableNext-col-headers {\n background-color: var(--table-background);\n white-space: nowrap;\n }\n\n\n .sizer-cell {\n background-color: green !important;\n border: none !important;\n height: 0px;\n }\n ", ".vuuTableSettingsPanel {\n --vuu-svg-text-strikethrough: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 24\"><path d=\"M28.3333 9.33334C28.8867 9.33334 29.3333 8.88668 29.3333 8.33334C29.3333 7.78001 28.8867 7.33334 28.3333 7.33334H20.26L22.26 9.33334H23.48L23.1133 10.1867L24.5067 11.58L25.4733 9.33334H28.3333ZM27.6267 16.5867L18.7467 7.70668C18.4867 7.44668 18.0667 7.44668 17.8067 7.70668C17.5467 7.96668 17.5467 8.38668 17.8067 8.64668L21.98 12.82L20.88 15.38C20.62 15.9933 21.0667 16.6667 21.7267 16.6667C22.0933 16.6667 22.4267 16.4467 22.5733 16.1067L23.38 14.22L26.68 17.52C26.94 17.78 27.36 17.78 27.62 17.52C27.8867 17.2667 27.8867 16.8467 27.6267 16.5867Z\"/></svg>');\n --vuu-svg-text-Tt: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 24\"><path d=\"M17.6667 7.66666C17.6667 8.21999 18.1133 8.66666 18.6667 8.66666H21V15.6667C21 16.22 21.4467 16.6667 22 16.6667C22.5533 16.6667 23 16.22 23 15.6667V8.66666H25.3333C25.8867 8.66666 26.3333 8.21999 26.3333 7.66666C26.3333 7.11332 25.8867 6.66666 25.3333 6.66666H18.6667C18.1133 6.66666 17.6667 7.11332 17.6667 7.66666ZM29.3333 9.99999H25.3333C24.78 9.99999 24.3333 10.4467 24.3333 11C24.3333 11.5533 24.78 12 25.3333 12H26.3333V15.6667C26.3333 16.22 26.78 16.6667 27.3333 16.6667C27.8867 16.6667 28.3333 16.22 28.3333 15.6667V12H29.3333C29.8867 12 30.3333 11.5533 30.3333 11C30.3333 10.4467 29.8867 9.99999 29.3333 9.99999Z\" /></svg>');\n --vuu-svg-text-T: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 24\"><path d=\"M19.3333 7.66666C19.3333 8.21999 19.78 8.66666 20.3333 8.66666H23V15.6667C23 16.22 23.4467 16.6667 24 16.6667C24.5533 16.6667 25 16.22 25 15.6667V8.66666H27.6667C28.22 8.66666 28.6667 8.21999 28.6667 7.66666C28.6667 7.11332 28.22 6.66666 27.6667 6.66666H20.3333C19.78 6.66666 19.3333 7.11332 19.3333 7.66666Z\"/></svg>');\n\n display: flex;\n flex-direction: column;\n gap: 24px;\n height: 100%;\n padding-top: 24px;\n}\n\n\n.vuuTableSettingsPanel [data-icon=\"text-strikethrough\"]{\n --vuu-icon-svg: var(--vuu-svg-text-strikethrough);\n \n}\n.vuuTableSettingsPanel [data-icon=\"text-Tt\"]{\n --vuu-icon-svg: var(--vuu-svg-text-Tt);\n\n}\n.vuuTableSettingsPanel [data-icon=\"text-T\"]{\n --vuu-icon-svg: var(--vuu-svg-text-T);\n\n}\n\n\n"],
5
+ "mappings": "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AACA;AACA;AACA;AACA;AAAA;AAGJ;AACI;AAAA;AAGJ;AACI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;;;ACpBJ;AACI;AACA;AAAA;AAGJ;AACI;AAAA;AAGJ;AACI;AAAA;AAGJ;AACI;AAAA;AAIJ;AACI;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAIJ;AAAA;AAEI;AACA;AAEA;AACA;AAAA;AAGJ;AAEI;AAAA;AAGJ;AACI;AAAA;AAIJ;AAEI;AACA;AAAA;AAIJ;AACI;AACA;AACA;AAAA;AAGJ;AACI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AAAA;AAAA;AAGE;AACA;AACA;AAAA;AAGJ;AAAA;AAGI;AACA;AACA;AAAA;AAGJ;AACI;AAAA;;;ACnGJ;AACI;AACA;AACA;AAEA;AACA;AAAA;AAGJ;AACI;AACA;AACA;AAAA;AAGJ;AACI;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAGJ;AACI;AACA;AAAA;;;AC5BF;AACE;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAMF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AAAA;AAOF;AACE;AAAA;;;AC9BJ;AACC;AAAA;AAGD;AACE;AACE;AACA;AACA;AACA;AAAA;AAKF;AACE;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAEF;AACE;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAEF;AACE;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AAAA;;;AChFJ;AACE;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;;;ACXF;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AACA;AACA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AAAA;;;AClGJ;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;;;ACbF;AACI;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGJ;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;;;ACRF;AAEE;AACA;AACA;AACA;AAEA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AAEA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAIF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;;;ACnFF;AACI;AACA;AACA;AACA;AACA;AACA;AAIA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AAIA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAKF;AACE;AACA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AAAA;AAEI;AAAA;AAAA;;;AC5DN;AACI;AACA;AACA;AACA;AAAA;AAGJ;AACI;AACA;AACA;AACA;AACA;AAAA;AAGJ;AACM;AAAA;AAGN;AACI;AACA;AAAA;;;ACrBJ;AACI;AAAA;AAEJ;AAEI;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAGJ;AACI;AACA;AAAA;AAGJ;AAAA;AAEI;AACA;AAAA;AAIJ;AACI;AACA;AAAA;;;ACjCJ;AACI;AACA;AACA;AACA;AACA;AAAA;AAGJ;AACI;AAAA;AAGJ;AACI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;;;ACpBJ;AACI;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGJ;AACE;AAAA;AAIA;AACE;AACA;AACA;AACA;AAYA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGJ;AACE;AACA;AACA;AACA;AAYA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;;;ACtFF;AACI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGA;AAAA;AAGE;AAAA;AAGF;AACI;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAIJ;AACI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGJ;AACI;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AACA;AAAA;AAGF;AACE;AAAA;AAIF;AACE;AAAA;AAGF;AACE;AAAA;AAGF;AAAA;AAIA;AAAA;AAEE;AACA;AACA;AACA;AAAA;AAIF;AACE;AAAA;AAGF;AACE;AAAA;;;ACrGR;AACE;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAIF;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAGF;AACE;AACA;AACA;AAAA;AAGF;AAAA;AACE;AACA;AACA;AAAA;AAGF;AACE;AACA;AAEE;AACA;AAEA;AAAA;AAGF;AACE;AACA;AAAA;AAIF;AACE;AACA;AACA;AAAA;;;AChGJ;AACI;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAIJ;AACI;AAAA;AAGJ;AACI;AAAA;AAGJ;AACI;AAAA;",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,24 +1,24 @@
1
1
  {
2
2
  "name": "@vuu-ui/vuu-table-extras",
3
- "version": "0.8.7-debug",
3
+ "version": "0.8.8-debug",
4
4
  "author": "heswell",
5
5
  "license": "Apache-2.0",
6
6
  "devDependencies": {
7
- "@vuu-ui/vuu-filter-types": "0.8.7-debug",
8
- "@vuu-ui/vuu-protocol-types": "0.8.7-debug"
7
+ "@vuu-ui/vuu-filter-types": "0.8.8-debug",
8
+ "@vuu-ui/vuu-protocol-types": "0.8.8-debug"
9
9
  },
10
10
  "dependencies": {
11
- "@vuu-ui/vuu-codemirror": "0.8.7-debug",
12
- "@vuu-ui/vuu-data": "0.8.7-debug",
13
- "@vuu-ui/vuu-data-react": "0.8.7-debug",
14
- "@vuu-ui/vuu-datagrid-types": "0.8.7-debug",
15
- "@vuu-ui/vuu-layout": "0.8.7-debug",
16
- "@vuu-ui/vuu-popups": "0.8.7-debug",
17
- "@vuu-ui/vuu-utils": "0.8.7-debug",
18
- "@vuu-ui/vuu-ui-controls": "0.8.7-debug",
11
+ "@vuu-ui/vuu-codemirror": "0.8.8-debug",
12
+ "@vuu-ui/vuu-data": "0.8.8-debug",
13
+ "@vuu-ui/vuu-data-react": "0.8.8-debug",
14
+ "@vuu-ui/vuu-datagrid-types": "0.8.8-debug",
15
+ "@vuu-ui/vuu-layout": "0.8.8-debug",
16
+ "@vuu-ui/vuu-popups": "0.8.8-debug",
17
+ "@vuu-ui/vuu-utils": "0.8.8-debug",
18
+ "@vuu-ui/vuu-ui-controls": "0.8.8-debug",
19
19
  "@lezer/lr": "1.3.4",
20
- "@salt-ds/core": "1.8.0-rc.5",
21
- "@salt-ds/lab": "1.0.0-alpha.14"
20
+ "@salt-ds/core": "1.8.0",
21
+ "@salt-ds/lab": "1.0.0-alpha.15"
22
22
  },
23
23
  "peerDependencies": {
24
24
  "classnames": "^2.2.6",
@@ -0,0 +1,65 @@
1
+ import { DataSourceFilter, DataSourceRow } from "@vuu-ui/vuu-data-types";
2
+ import { ColumnDescriptor, Selection } from "@vuu-ui/vuu-datagrid-types";
3
+ import { ClientToServerEditRpc, ClientToServerMenuRPC, LinkDescriptorWithLabel, VuuAggregation, VuuGroupBy, VuuRange, VuuRowDataItemType, VuuSort } from "@vuu-ui/vuu-protocol-types";
4
+ import { EventEmitter } from "@vuu-ui/vuu-utils";
5
+ import { DataSource, DataSourceConstructorProps, DataSourceEvents, SubscribeCallback, SubscribeProps } from "../data-source";
6
+ import { MenuRpcResponse, VuuUIMessageInRPCEditReject, VuuUIMessageInRPCEditResponse } from "../vuuUIMessageTypes";
7
+ export interface ArrayDataSourceConstructorProps extends Omit<DataSourceConstructorProps, "bufferSize" | "table"> {
8
+ columnDescriptors: ColumnDescriptor[];
9
+ data: VuuRowDataItemType[][];
10
+ rangeChangeRowset?: "delta" | "full";
11
+ }
12
+ export declare class ArrayDataSource extends EventEmitter<DataSourceEvents> implements DataSource {
13
+ #private;
14
+ private columnDescriptors;
15
+ private status;
16
+ private disabled;
17
+ private filteredData;
18
+ private groupedData;
19
+ private sortedData;
20
+ private groupMap;
21
+ private selectedRows;
22
+ private suspended;
23
+ private clientCallback;
24
+ private tableSchema;
25
+ private lastRangeServed;
26
+ private rangeChangeRowset;
27
+ private openTreeNodes;
28
+ viewport: string;
29
+ private keys;
30
+ constructor({ aggregations, columnDescriptors, data, filter, groupBy, rangeChangeRowset, sort, title, viewport, }: ArrayDataSourceConstructorProps);
31
+ subscribe({ viewport, columns, aggregations, range, sort, groupBy, filter, }: SubscribeProps, callback: SubscribeCallback): Promise<void>;
32
+ unsubscribe(): void;
33
+ suspend(): this;
34
+ resume(): this;
35
+ disable(): this;
36
+ enable(): this;
37
+ select(selected: Selection): void;
38
+ openTreeNode(key: string): void;
39
+ closeTreeNode(key: string): void;
40
+ get data(): readonly DataSourceRow[];
41
+ get config(): undefined;
42
+ get selectedRowsCount(): number;
43
+ get size(): number;
44
+ get range(): VuuRange;
45
+ set range(range: VuuRange);
46
+ private setRange;
47
+ sendRowsToClient(forceFullRefresh?: boolean): void;
48
+ get columns(): string[];
49
+ set columns(columns: string[]);
50
+ get aggregations(): VuuAggregation[];
51
+ set aggregations(aggregations: VuuAggregation[]);
52
+ get sort(): VuuSort;
53
+ set sort(sort: VuuSort);
54
+ get filter(): DataSourceFilter;
55
+ set filter(filter: DataSourceFilter);
56
+ get groupBy(): VuuGroupBy;
57
+ set groupBy(groupBy: VuuGroupBy);
58
+ get title(): string | undefined;
59
+ set title(title: string | undefined);
60
+ createLink({ parentVpId, link: { fromColumn, toColumn }, }: LinkDescriptorWithLabel): void;
61
+ removeLink(): void;
62
+ private findRow;
63
+ private updateRow;
64
+ menuRpcCall(rpcRequest: Omit<ClientToServerMenuRPC, "vpId"> | ClientToServerEditRpc): Promise<MenuRpcResponse | VuuUIMessageInRPCEditReject | VuuUIMessageInRPCEditResponse | undefined>;
65
+ }
@@ -0,0 +1,10 @@
1
+ import { DataSourceRow } from "@vuu-ui/vuu-data-types";
2
+ import { VuuGroupBy } from "@vuu-ui/vuu-protocol-types";
3
+ import { ColumnMap } from "@vuu-ui/vuu-utils";
4
+ export type KeyList = number[];
5
+ export type GroupMap = {
6
+ [key: string]: GroupMap | KeyList;
7
+ };
8
+ export declare const collapseGroup: (key: string, groupedRows: readonly DataSourceRow[]) => DataSourceRow[];
9
+ export declare const expandGroup: (keys: string[], sourceRows: readonly DataSourceRow[], groupBy: VuuGroupBy, columnMap: ColumnMap, groupMap: GroupMap) => DataSourceRow[];
10
+ export declare const groupRows: (rows: readonly DataSourceRow[], groupBy: VuuGroupBy, columnMap: ColumnMap) => [DataSourceRow[], GroupMap];
@@ -0,0 +1,4 @@
1
+ import { DataSourceRow } from "@vuu-ui/vuu-data-types";
2
+ import { VuuSort } from "@vuu-ui/vuu-protocol-types";
3
+ import { ColumnMap } from "@vuu-ui/vuu-utils";
4
+ export declare const sortRows: (rows: readonly DataSourceRow[], { sortDefs }: VuuSort, columnMap: ColumnMap) => DataSourceRow[];
@@ -0,0 +1 @@
1
+ export declare const authenticate: (username: string, password: string, authUrl?: string) => Promise<string | void>;
@@ -0,0 +1,46 @@
1
+ import { ClientToServerMenuRPC, VuuRpcRequest, VuuTable, VuuTableList } from "@vuu-ui/vuu-protocol-types";
2
+ import { EventEmitter } from "@vuu-ui/vuu-utils";
3
+ import { DataSourceCallbackMessage } from "./data-source";
4
+ import { ConnectionStatusMessage, ServerProxySubscribeMessage, VuuUIMessageOut } from "./vuuUIMessageTypes";
5
+ import { ConnectionQualityMetrics } from "./vuuUIMessageTypes";
6
+ import { WebSocketProtocol } from "./websocket-connection";
7
+ import { TableSchema } from "./message-utils";
8
+ export declare const getServerAPI: () => Promise<ServerAPI>;
9
+ export type PostMessageToClientCallback = (msg: DataSourceCallbackMessage) => void;
10
+ export interface ServerAPI {
11
+ destroy: (viewportId?: string) => void;
12
+ getTableSchema: (table: VuuTable) => Promise<TableSchema>;
13
+ getTableList: () => Promise<VuuTableList>;
14
+ rpcCall: <T = unknown>(msg: VuuRpcRequest | ClientToServerMenuRPC) => Promise<T>;
15
+ send: (message: VuuUIMessageOut) => void;
16
+ subscribe: (message: ServerProxySubscribeMessage, callback: PostMessageToClientCallback) => void;
17
+ unsubscribe: (viewport: string) => void;
18
+ }
19
+ export type ConnectionEvents = {
20
+ "connection-status": (message: ConnectionStatusMessage) => void;
21
+ "connection-metrics": (message: ConnectionQualityMetrics) => void;
22
+ };
23
+ export type ConnectOptions = {
24
+ url: string;
25
+ authToken?: string;
26
+ username?: string;
27
+ protocol?: WebSocketProtocol;
28
+ };
29
+ declare class _ConnectionManager extends EventEmitter<ConnectionEvents> {
30
+ connect({ url, authToken, username, protocol, }: ConnectOptions): Promise<ServerAPI>;
31
+ destroy(): void;
32
+ }
33
+ export declare const ConnectionManager: _ConnectionManager;
34
+ /**
35
+ * Open a connection to the VuuServer. This method opens the websocket connection
36
+ * and logs in. It can be called from whichever client code has access to the auth
37
+ * token (eg. the login page, or just a hardcoded login script in a sample).
38
+ * This will unblock any DataSources which may have already tried to subscribe to data,
39
+ * but lacked access to the auth token.
40
+ *
41
+ * @param serverUrl
42
+ * @param token
43
+ */
44
+ export declare const connectToServer: ({ url, protocol, authToken, username, }: ConnectOptions) => Promise<void>;
45
+ export declare const makeRpcCall: <T = unknown>(rpcRequest: VuuRpcRequest) => Promise<T>;
46
+ export {};
@@ -0,0 +1,5 @@
1
+ export interface Connection<T = unknown> {
2
+ requiresLogin?: boolean;
3
+ send: (message: T) => void;
4
+ status: "closed" | "ready" | "connection-open-awaiting-session" | "connected" | "reconnected";
5
+ }
@@ -0,0 +1,41 @@
1
+ export declare const connectionId: {
2
+ readonly nextValue: number;
3
+ };
4
+ export declare const msgType: {
5
+ connect: string;
6
+ connectionStatus: string;
7
+ getFilterData: string;
8
+ rowData: string;
9
+ rowSet: string;
10
+ select: string;
11
+ selectAll: string;
12
+ selectNone: string;
13
+ selected: string;
14
+ snapshot: string;
15
+ update: string;
16
+ createLink: string;
17
+ disable: string;
18
+ enable: string;
19
+ suspend: string;
20
+ resume: string;
21
+ addSubscription: string;
22
+ closeTreeNode: string;
23
+ columnList: string;
24
+ data: string;
25
+ openTreeNode: string;
26
+ aggregate: string;
27
+ filter: string;
28
+ filterQuery: string;
29
+ filterData: string;
30
+ getSearchData: string;
31
+ groupBy: string;
32
+ modifySubscription: string;
33
+ searchData: string;
34
+ setGroupState: string;
35
+ size: string;
36
+ sort: string;
37
+ subscribed: string;
38
+ tableList: string;
39
+ unsubscribe: string;
40
+ viewRangeChanged: string;
41
+ };
@@ -0,0 +1,172 @@
1
+ import { DataSourceFilter, DataSourceRow } from "@vuu-ui/vuu-data-types";
2
+ import { ColumnDescriptor, SelectionChangeHandler } from "@vuu-ui/vuu-datagrid-types";
3
+ import { ClientToServerEditRpc, ClientToServerMenuRPC, LinkDescriptorWithLabel, VuuAggregation, VuuColumns, VuuFilter, VuuGroupBy, VuuLinkDescriptor, VuuMenu, VuuRange, VuuSort, VuuTable } from "@vuu-ui/vuu-protocol-types";
4
+ import { EventEmitter } from "@vuu-ui/vuu-utils";
5
+ import { TableSchema } from "./message-utils";
6
+ import { MenuRpcResponse, VuuUIMessageInRPCEditReject, VuuUIMessageInRPCEditResponse } from "./vuuUIMessageTypes";
7
+ export interface MessageWithClientViewportId {
8
+ clientViewportId: string;
9
+ }
10
+ export interface DataSourceAggregateMessage extends MessageWithClientViewportId {
11
+ aggregations: VuuAggregation[];
12
+ type: "aggregate";
13
+ }
14
+ export type DataUpdateMode = "batch" | "update" | "size-only";
15
+ export interface DataSourceDataMessage extends MessageWithClientViewportId {
16
+ mode: DataUpdateMode;
17
+ rows?: DataSourceRow[];
18
+ size?: number;
19
+ type: "viewport-update";
20
+ }
21
+ export interface DataSourceDataSizeMessage extends MessageWithClientViewportId {
22
+ mode: "size-only";
23
+ size: number;
24
+ type: "viewport-update";
25
+ }
26
+ export interface DataSourceDebounceRequest extends MessageWithClientViewportId {
27
+ type: "debounce-begin";
28
+ }
29
+ export declare const isSizeOnly: (message: DataSourceCallbackMessage) => message is DataSourceDataSizeMessage;
30
+ export interface DataSourceDisabledMessage extends MessageWithClientViewportId {
31
+ type: "disabled";
32
+ }
33
+ export interface DataSourceEnabledMessage extends MessageWithClientViewportId {
34
+ type: "enabled";
35
+ }
36
+ export interface DataSourceColumnsMessage extends MessageWithClientViewportId {
37
+ type: "columns";
38
+ columns: VuuColumns;
39
+ }
40
+ export interface DataSourceFilterMessage extends MessageWithClientViewportId {
41
+ type: "filter";
42
+ filter: DataSourceFilter;
43
+ }
44
+ export interface DataSourceGroupByMessage extends MessageWithClientViewportId {
45
+ type: "groupBy";
46
+ groupBy: VuuGroupBy | undefined;
47
+ }
48
+ export interface DataSourceSetConfigMessage extends MessageWithClientViewportId {
49
+ type: "config";
50
+ config: WithFullConfig;
51
+ }
52
+ export interface DataSourceMenusMessage extends MessageWithClientViewportId {
53
+ type: "vuu-menu";
54
+ menu: VuuMenu;
55
+ }
56
+ export interface DataSourceSortMessage extends MessageWithClientViewportId {
57
+ type: "sort";
58
+ sort: VuuSort;
59
+ }
60
+ export type DataSourceConfigMessage = DataSourceAggregateMessage | DataSourceColumnsMessage | DataSourceFilterMessage | DataSourceGroupByMessage | DataSourceSortMessage | DataSourceSetConfigMessage;
61
+ export declare const toDataSourceConfig: (message: DataSourceConfigMessage) => DataSourceConfig;
62
+ type DataConfigPredicate = (config: DataSourceConfig, newConfig: DataSourceConfig) => boolean;
63
+ export declare const filterChanged: DataConfigPredicate;
64
+ export declare const hasGroupBy: (config?: DataSourceConfig) => config is WithGroupBy;
65
+ export declare const configChanged: (config: DataSourceConfig | undefined, newConfig: DataSourceConfig | undefined) => boolean;
66
+ export interface DataSourceSubscribedMessage extends MessageWithClientViewportId, MessageWithClientViewportId {
67
+ aggregations: VuuAggregation[];
68
+ columns: VuuColumns;
69
+ filter: DataSourceFilter;
70
+ groupBy: VuuGroupBy;
71
+ range: VuuRange;
72
+ sort: VuuSort;
73
+ tableSchema: Readonly<TableSchema> | null;
74
+ type: "subscribed";
75
+ }
76
+ export interface DataSourceVisualLinkCreatedMessage extends MessageWithClientViewportId {
77
+ colName: string;
78
+ parentViewportId: string;
79
+ parentColName: string;
80
+ type: "vuu-link-created";
81
+ }
82
+ export interface DataSourceVisualLinkRemovedMessage extends MessageWithClientViewportId {
83
+ type: "vuu-link-removed";
84
+ }
85
+ export interface DataSourceVisualLinksMessage extends MessageWithClientViewportId {
86
+ type: "vuu-links";
87
+ links: VuuLinkDescriptor[];
88
+ }
89
+ export type VuuFeatureMessage = DataSourceMenusMessage | DataSourceVisualLinksMessage;
90
+ export type VuuFeatureInvocationMessage = DataSourceVisualLinkCreatedMessage | DataSourceVisualLinkRemovedMessage;
91
+ export type DataSourceCallbackMessage = DataSourceConfigMessage | DataSourceColumnsMessage | DataSourceDataMessage | DataSourceDebounceRequest | DataSourceDisabledMessage | DataSourceEnabledMessage | DataSourceMenusMessage | DataSourceSubscribedMessage | DataSourceVisualLinkCreatedMessage | DataSourceVisualLinkRemovedMessage | DataSourceVisualLinksMessage;
92
+ export type ConfigChangeColumnsMessage = {
93
+ type: "columns";
94
+ columns?: ColumnDescriptor[];
95
+ };
96
+ export type ConfigChangeMessage = ConfigChangeColumnsMessage | DataSourceAggregateMessage | DataSourceFilterMessage | DataSourceGroupByMessage | DataSourceSortMessage | DataSourceVisualLinkCreatedMessage | DataSourceVisualLinkRemovedMessage;
97
+ export type ConfigChangeHandler = (msg: ConfigChangeMessage) => void;
98
+ export declare const shouldMessageBeRoutedToDataSource: (message: unknown) => message is DataSourceCallbackMessage;
99
+ export declare const isDataSourceConfigMessage: (message: DataSourceCallbackMessage) => message is DataSourceConfigMessage;
100
+ /**
101
+ * Described the configuration values that should typically be
102
+ * persisted across sessions.
103
+ */
104
+ export interface WithFullConfig {
105
+ readonly aggregations: VuuAggregation[];
106
+ readonly columns: string[];
107
+ readonly filter: DataSourceFilter;
108
+ readonly groupBy: VuuGroupBy;
109
+ readonly sort: VuuSort;
110
+ readonly visualLink?: LinkDescriptorWithLabel;
111
+ }
112
+ export declare const NoFilter: VuuFilter;
113
+ export declare const NoSort: VuuSort;
114
+ export declare const vanillaConfig: WithFullConfig;
115
+ export declare const withConfigDefaults: (config: DataSourceConfig) => WithFullConfig & {
116
+ visualLink?: LinkDescriptorWithLabel;
117
+ };
118
+ export interface DataSourceConfig extends Partial<WithFullConfig> {
119
+ visualLink?: LinkDescriptorWithLabel;
120
+ }
121
+ export interface WithGroupBy extends DataSourceConfig {
122
+ groupBy: VuuGroupBy;
123
+ }
124
+ export interface DataSourceConstructorProps extends DataSourceConfig {
125
+ bufferSize?: number;
126
+ table: VuuTable;
127
+ title?: string;
128
+ viewport?: string;
129
+ }
130
+ export interface SubscribeProps {
131
+ viewport?: string;
132
+ columns?: string[];
133
+ aggregations?: VuuAggregation[];
134
+ range?: VuuRange;
135
+ sort?: VuuSort;
136
+ groupBy?: VuuGroupBy;
137
+ filter?: DataSourceFilter;
138
+ title?: string;
139
+ }
140
+ export type SubscribeCallback = (message: DataSourceCallbackMessage) => void;
141
+ export type OptimizeStrategy = "none" | "throttle" | "debounce";
142
+ export type DataSourceEvents = {
143
+ config: (config: DataSourceConfig | undefined, confirmed?: boolean) => void;
144
+ optimize: (optimize: OptimizeStrategy) => void;
145
+ range: (range: VuuRange) => void;
146
+ resize: (size: number) => void;
147
+ };
148
+ export interface DataSource extends EventEmitter<DataSourceEvents> {
149
+ aggregations: VuuAggregation[];
150
+ closeTreeNode: (key: string, cascade?: boolean) => void;
151
+ columns: string[];
152
+ config: DataSourceConfig | undefined;
153
+ suspend?: () => void;
154
+ resume?: () => void;
155
+ enable?: () => void;
156
+ disable?: () => void;
157
+ filter: DataSourceFilter;
158
+ groupBy: VuuGroupBy;
159
+ menuRpcCall: (rpcRequest: Omit<ClientToServerMenuRPC, "vpId"> | ClientToServerEditRpc) => Promise<MenuRpcResponse | VuuUIMessageInRPCEditReject | VuuUIMessageInRPCEditResponse | undefined>;
160
+ openTreeNode: (key: string) => void;
161
+ range: VuuRange;
162
+ select: SelectionChangeHandler;
163
+ readonly selectedRowsCount: number;
164
+ readonly size: number;
165
+ sort: VuuSort;
166
+ subscribe: (props: SubscribeProps, callback: SubscribeCallback) => Promise<void>;
167
+ title?: string;
168
+ unsubscribe: () => void;
169
+ viewport?: string;
170
+ visualLink?: LinkDescriptorWithLabel;
171
+ }
172
+ export {};
@@ -0,0 +1,10 @@
1
+ export * from "./authenticate";
2
+ export * from "./connection-manager";
3
+ export type { ServerAPI } from "./connection-manager";
4
+ export * from "./constants";
5
+ export * from "./data-source";
6
+ export * from "./message-utils";
7
+ export * from "./array-data-source/array-data-source";
8
+ export * from "./json-data-source";
9
+ export * from "./remote-data-source";
10
+ export * from "./vuuUIMessageTypes";