@deephaven/iris-grid 0.57.2-beta.1 → 0.58.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/dist/AdvancedFilterCreator.css.map +1 -1
  2. package/dist/AdvancedFilterCreatorFilterItem.css.map +1 -1
  3. package/dist/AdvancedFilterCreatorSelectValue.css.map +1 -1
  4. package/dist/ColumnStatistics.css.map +1 -1
  5. package/dist/FilterInputField.css +11 -8
  6. package/dist/FilterInputField.css.map +1 -1
  7. package/dist/GotoRow.css.map +1 -1
  8. package/dist/IrisGrid.css +9 -6
  9. package/dist/IrisGrid.css.map +1 -1
  10. package/dist/IrisGrid.d.ts +4 -0
  11. package/dist/IrisGrid.d.ts.map +1 -1
  12. package/dist/IrisGrid.js +33 -5
  13. package/dist/IrisGrid.js.map +1 -1
  14. package/dist/IrisGridBottomBar.css +2 -3
  15. package/dist/IrisGridBottomBar.css.map +1 -1
  16. package/dist/IrisGridCellOverflowModal.js +1 -1
  17. package/dist/IrisGridCellOverflowModal.js.map +1 -1
  18. package/dist/IrisGridCopyHandler.css +1 -2
  19. package/dist/IrisGridCopyHandler.css.map +1 -1
  20. package/dist/IrisGridCopyHandler.d.ts +12 -4
  21. package/dist/IrisGridCopyHandler.d.ts.map +1 -1
  22. package/dist/IrisGridCopyHandler.js +72 -32
  23. package/dist/IrisGridCopyHandler.js.map +1 -1
  24. package/dist/IrisGridPartitionSelector.css.map +1 -1
  25. package/dist/IrisGridRenderer.js +1 -1
  26. package/dist/IrisGridRenderer.js.map +1 -1
  27. package/dist/IrisGridTheme.d.ts.map +1 -1
  28. package/dist/IrisGridTheme.js +1 -0
  29. package/dist/IrisGridTheme.js.map +1 -1
  30. package/dist/IrisGridTheme.module.css +1 -0
  31. package/dist/IrisGridTheme.module.css.map +1 -1
  32. package/dist/PartitionSelectorSearch.css +2 -2
  33. package/dist/PartitionSelectorSearch.css.map +1 -1
  34. package/dist/PendingDataBottomBar.css +1 -8
  35. package/dist/PendingDataBottomBar.css.map +1 -1
  36. package/dist/format-context-menus/CustomFormatAction.css +1 -1
  37. package/dist/mousehandlers/IrisGridContextMenuHandler.css +2 -2
  38. package/dist/mousehandlers/IrisGridContextMenuHandler.css.map +1 -1
  39. package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts.map +1 -1
  40. package/dist/mousehandlers/IrisGridContextMenuHandler.js +2 -0
  41. package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
  42. package/dist/mousehandlers/IrisGridCopyCellMouseHandler.d.ts +10 -0
  43. package/dist/mousehandlers/IrisGridCopyCellMouseHandler.d.ts.map +1 -0
  44. package/dist/mousehandlers/IrisGridCopyCellMouseHandler.js +34 -0
  45. package/dist/mousehandlers/IrisGridCopyCellMouseHandler.js.map +1 -0
  46. package/dist/mousehandlers/index.d.ts +1 -0
  47. package/dist/mousehandlers/index.d.ts.map +1 -1
  48. package/dist/mousehandlers/index.js +1 -0
  49. package/dist/mousehandlers/index.js.map +1 -1
  50. package/dist/sidebar/ChartBuilder.css.map +1 -1
  51. package/dist/sidebar/CustomColumnBuilder.css +3 -3
  52. package/dist/sidebar/CustomColumnBuilder.css.map +1 -1
  53. package/dist/sidebar/CustomColumnBuilder.d.ts.map +1 -1
  54. package/dist/sidebar/CustomColumnBuilder.js +2 -5
  55. package/dist/sidebar/CustomColumnBuilder.js.map +1 -1
  56. package/dist/sidebar/InputEditor.css.map +1 -1
  57. package/dist/sidebar/RollupRows.css +3 -2
  58. package/dist/sidebar/RollupRows.css.map +1 -1
  59. package/dist/sidebar/SelectDistinctBuilder.css.map +1 -1
  60. package/dist/sidebar/TableCsvExporter.css.map +1 -1
  61. package/dist/sidebar/aggregations/AggregationEdit.css.map +1 -1
  62. package/dist/sidebar/aggregations/Aggregations.css.map +1 -1
  63. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.css +1 -1
  64. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.css.map +1 -1
  65. package/dist/sidebar/conditional-formatting/StyleEditor.css +1 -1
  66. package/dist/sidebar/conditional-formatting/StyleEditor.css.map +1 -1
  67. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.css +4 -2
  68. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.css.map +1 -1
  69. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.css +4 -4
  70. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.css.map +1 -1
  71. package/package.json +15 -15
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../../node_modules/@deephaven/components/scss/custom.scss","../src/IrisGridPartitionSelector.scss","../../../node_modules/@deephaven/components/scss/bootstrap_overrides.scss"],"names":[],"mappings":"AAAA;ACGA;EACE;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;;AACA;EACE;EACA;EACA;EACA,QAxB4B;;AA0B9B;EACE;EACA;;AAGJ;EACE;;AAEF;EACE,OCZI;EDaJ,cCbI;EDcJ;EACA;;AAEF;EACE;EACA;EACA","file":"IrisGridPartitionSelector.css","sourcesContent":["/* stylelint-disable scss/at-import-no-partial-leading-underscore */\n// Consumers should be able to resolve bootstrap/ to node_modules/bootstrap\n\n//Make bootstrap functions available for use in overrides\n@import 'bootstrap/scss/_functions.scss';\n@import './bootstrap_overrides.scss';\n\n//_variable imports come after bootstrap default overrides,\n// makes all other variables and mixins from bootstrap available\n/// with just importing customer.scss\n@import 'bootstrap/scss/_variables.scss';\n@import 'bootstrap/scss/_mixins.scss';\n\n//New variables come after imports\n@import './new_variables.scss';\n","@import '@deephaven/components/scss/custom.scss';\n$partition-selector-color: $white;\n$partition-selector-input-height: 2.25em;\n.iris-grid-partition-selector {\n display: flex;\n flex-wrap: wrap;\n background: transparent;\n vertical-align: middle;\n .status-message {\n text-overflow: ellipsis;\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0.5em;\n white-space: nowrap;\n }\n div {\n flex-grow: 0;\n }\n .input-group {\n width: auto;\n align-items: center;\n .form-control {\n background-color: transparent;\n border: 2px solid $partition-selector-color;\n border-right: none;\n height: $partition-selector-input-height;\n }\n .btn {\n background-color: transparent;\n margin: 0;\n }\n }\n .iris-grid-partition-selector-spacer {\n flex-grow: 1;\n }\n .btn-outline-primary {\n color: $white;\n border-color: $white;\n margin: 0.35em 0.3em;\n padding: 0.25em 0.5em;\n }\n .btn-close {\n padding: 0 0.5em;\n margin: 0.25em 0.25em 0.25em 0;\n min-width: 0;\n }\n}\n","// Styling overrides for bootstrap\n@use 'sass:map';\n\n// Override / set color variables\n$red: var(--dh-color-visual-red);\n$orange: var(--dh-color-visual-orange);\n$yellow: var(--dh-color-visual-yellow);\n$green: var(--dh-color-visual-green);\n$blue: var(--dh-color-visual-blue);\n$purple: var(--dh-color-visual-purple);\n\n//Define our Gray scale\n$gray-100: var(--dh-color-gray-900, #fcfcfa);\n$gray-200: var(--dh-color-gray-800);\n$gray-300: var(--dh-color-gray-700);\n$gray-400: var(--dh-color-gray-600);\n$gray-500: var(--dh-color-gray-500);\n// intentional duplicate, scale doesn't line up otherwise\n// as we have gray-850 and spectrum doesn't and it is needed\n$gray-600: var(--dh-color-gray-500);\n$gray-700: var(--dh-color-gray-400);\n$gray-800: var(--dh-color-gray-300);\n$gray-850: var(--dh-color-gray-200);\n$gray-900: var(--dh-color-gray-75);\n$black: var(--dh-color-black, #1a171a);\n$white: var(--dh-color-white, #f0f0ee);\n\n//Define some UI colors\n$interfacegray: var(--dh-color-content-bg, #2d2a2e);\n$interfaceblue: var(--dh-color-accent-bg);\n$interfacewhite: $white;\n$interfaceblack: $black;\n$content-bg: var(--dh-color-content-bg, #2d2a2e);\n$background: var(--dh-color-bg);\n$foreground: var(--dh-color-fg);\n\n// Extend default Bootstrap $grays map\n$grays-custom: (\n '850': $gray-850,\n);\n$grays: () !default;\n$grays: map-merge($grays, $grays-custom);\n\n// Extend default Bootstrap $colors map\n$colors-custom: (\n 'black': $black,\n);\n$colors: () !default;\n$colors: map-merge($colors, $colors-custom);\n\n// Override default Bootstrap $theme-colors map by mapping each key to itself.\n// These will then be re-mapped inside of `button-outline-variant` and\n// `button-outline-variant` mixins in `bootstrap_override_mixins_buttons.scss`\n$theme-colors-self-map: ();\n@each $key\n in (\n 'primary',\n 'secondary',\n 'success',\n 'info',\n 'warning',\n 'danger',\n 'light',\n 'dark'\n )\n{\n $theme-colors-self-map: map.set($theme-colors-self-map, $key, $key);\n}\n$theme-colors: () !default;\n$theme-colors: map-merge($theme-colors, $theme-colors-self-map);\n\n// Used by bootstrap_override_mixins_buttons.scss to map Bootstrap colors to\n// DH semantic colors\n$bootstrap-dh-semantic-map: (\n 'primary': 'accent',\n 'secondary': 'neutral',\n 'success': 'positive',\n 'info': 'info',\n 'warning': 'notice',\n 'danger': 'negative',\n // We shouldn't be using these, but mapping so they work with our custom\n // `color-yiq` mixin. If we find a way to remove $light + $dark that are\n // defined in Bootstrap _variables.scss, we should remove these\n 'light': 'neutral',\n 'dark': 'neutral',\n);\n\n//Set default colors\n$body-bg: $black;\n$body-color: $interfacewhite;\n\n// Set brand colors\n$primary: var(--dh-color-accent-bg);\n$primary-hover: var(--dh-color-accent-hover-bg);\n$primary-dark: var(--dh-color-accent-down-bg);\n$primary-light: var(--dh-color-accent-1100);\n$secondary: var(--dh-color-neutral-bg);\n$secondary-hover: var(--dh-color-neutral-hover-bg);\n$success: $green;\n$info: $yellow;\n$warning: $orange;\n$danger: var(--dh-color-negative-bg);\n$danger-hover: var(--dh-color-negative-hover-bg);\n// We really don't want to use $light or $dark variables, but Bootstrap defines\n// them in _variables.scss. Explicitly setting them to ensure we are in control\n// of their values. If we can find a way to remove them, we should\n$light: var(--dh-color-gray-light);\n$dark: var(--dh-color-gray-dark);\n// Bootstrap doesn't define $mid, and we want to move away from this particular\n// semantic. Should be deleted by #1635\n$mid: var(--dh-color-gray-mid);\n\n$semantic-colors: (\n 'primary-hover': $primary-hover,\n 'primary-light': $primary-light,\n 'primary-dark': $primary-dark,\n 'mid': $mid,\n 'content-bg': $interfacegray,\n 'background': $interfaceblack,\n 'foreground': $interfacewhite,\n 'secondary-hover': $secondary-hover,\n 'danger-hover': $danger-hover,\n);\n\n$component-active-bg: $primary;\n$theme-color-interval: 9%;\n$yiq-contrasted-threshold: 180;\n\n// Override fonts\n$font-family-sans-serif:\n 'Fira Sans',\n -apple-system,\n blinkmacsystemfont,\n 'Segoe UI',\n 'Roboto',\n 'Helvetica Neue',\n arial,\n sans-serif; //fira sans then native system ui fallbacks\n$font-family-monospace: 'Fira Mono', menlo, monaco, consolas, 'Liberation Mono',\n 'Courier New', monospace;\n$font-family-base: $font-family-sans-serif;\n\n$headings-font-weight: 400;\n\n//Text overides\n$text-muted: $gray-400;\n\n//Style Selection highlight color\n$text-select-color: var(--dh-color-text-highlight);\n\n//Grid variables, same value as default just making easily accessible\n$grid-gutter-width: 30px;\n\n//Visual Overrides\n$border-radius: 4px;\n$box-shadow: 0 0.1rem 1rem hsla(var(--dh-color-black-hsl), 0.45); //because our UI is so dark, we need darker default shadows\n$box-shadow-900: 0 0.1rem 1rem hsla(var(--dh-color-true-black-hsl), 0.45); //darkest shadow for $black popups over $black UI\n\n//Override Btn\n$btn-border-radius: 4rem;\n$btn-padding-x: 1.5rem;\n$btn-transition:\n color 0.12s ease-in-out,\n background-color 0.12s ease-in-out,\n border-color 0.12s ease-in-out,\n box-shadow 0.12s ease-in-out; //default 0.15 is too long\n$btn-border-width: 2px;\n$btn-font-weight: var(--spectrum-global-font-weight-bold);\n\n//Override Inputs\n$input-bg: var(--dh-color-input-bg);\n$input-disabled-bg: var(--dh-color-input-disabled-bg);\n$input-color: var(--dh-color-input-fg);\n$input-border-color: var(--dh-color-input-border);\n$input-placeholder-color: var(--dh-color-input-placeholder);\n$input-focus-border-color: var(--dh-color-input-focus-border);\n\n$input-btn-focus-width: 0.2rem;\n$input-btn-focus-color: hsla(var(--dh-color-accent-hsl), 0.35);\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color;\n\n//checkbox\n$custom-control-indicator-bg: $gray-600;\n$custom-control-indicator-active-bg: var(--dh-color-accent-1100);\n$custom-control-indicator-bg-size: 75% 75%;\n$custom-control-indicator-disabled-bg: $gray-800;\n$custom-control-indicator-checked-disabled-bg: $gray-800;\n$custom-control-label-disabled-color: $gray-400;\n\n// The $custom-select-indicator variable is used by Bootstrap to provide the\n// icon for the select dropdown. Inline svgs can't use CSS variables, so we hard\n// code the color to #929192 (the default value of --dh-color-gray-600). PR #1651\n// overrides this icon altogether for known dropdowns, so technically we may not\n// need this, but it's here in case there are any remaining instances.\n$custom-select-indicator-color: #929192;\n$custom-select-bg-size: 16px 16px;\n//dhSort icon encoded\n$custom-select-indicator: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M4 7l-.4-.8 4-3.7h.8l4 3.7-.4.8H4zm0 2l-.4.8 4 3.7h.8l4-3.7L12 9H4z'/%3E%3C/svg%3E\"),\n '#',\n '%23'\n);\n$custom-select-focus-box-shadow: $input-btn-focus-box-shadow;\n$custom-select-disabled-color: $gray-500;\n$custom-select-disabled-bg: $gray-800;\n\n//modal\n$modal-content-bg: $gray-200;\n$modal-content-border-width: 0;\n$modal-md: 550px;\n\n// Toast notification\n$toast-bg: var(--dh-color-accent-100);\n$toast-color: var(--dh-color-text);\n$toast-error-bg: var(--dh-color-negative-bg);\n$toast-error-color: var(--dh-color-text);\n\n//tooltips\n$tooltip-bg: var(--dh-color-tooltip-bg);\n$tooltip-color: var(--dh-color-tooltip-fg);\n$tooltip-box-shadow: 0 0.1rem 1.5rem 0.1rem var(--dh-color-tooltip-box-shadow);\n\n//drowdowns\n$dropdown-bg: $gray-600;\n$dropdown-link-color: $foreground;\n$dropdown-link-hover-color: $foreground;\n$dropdown-link-hover-bg: $primary;\n$dropdown-divider-bg: $gray-700;\n\n//context menus\n$contextmenu-bg: $gray-600;\n$contextmenu-color: $foreground;\n$contextmenu-disabled-color: $text-muted;\n$contextmenu-keyboard-selected-bg: hsla(var(--dh-color-accent-hsl), 0.5);\n$contextmenu-selected-bg: $primary;\n$contextmenu-selected-color: $foreground;\n\n//links\n$link-color: $gray-400;\n$link-hover-color: $foreground;\n\n//progress-bar\n$progress-bg: $gray-600;\n$progress-border-radius: 1rem;\n\n// Set global options\n$enable-shadows: false;\n$enable-gradients: false;\n$enable-print-styles: false; //I don't think anyone should expect to \"print\" this app.\n\n// Transition times\n$transition: 0.15s;\n$transition-mid: 0.2s;\n$transition-long: 0.3s;\n$transition-slow: 0.6s;\n\n//form-validation icon, uses vsWarning icon encoded here as svg\n$form-feedback-icon-invalid-color: $danger;\n$form-feedback-icon-invalid: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cg fill='none'%3E%3Cg fill='#{$form-feedback-icon-invalid-color}'%3E%3Cpath d='M7.56 1h.88l6.54 12.26-.44.74H1.44L1 13.26 7.56 1zM8 2.28 2.28 13H13.7L8 2.28zM8.625 12v-1h-1.25v1h1.25zm-1.25-2V6h1.25v4h-1.25z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E \"),\n '#',\n '%23'\n);\n\n// This section of variables is not consumed directly by DH, but they need to be\n// defined for sass to compile _variables\n$table-dark-bg: $gray-800;\n$table-dark-accent-bg: var(--dh-color-highlight-hover);\n$table-dark-hover-bg: var(--dh-color-highlight-active);\n$table-dark-border-color: $gray-700;\n$popover-bg: var(--dh-color-tooltip-bg);\n$popover-border-color: var(--dh-color-overlay-modal-bg);\n$popover-header-bg: #000;\n$popover-arrow-outer-color: var(--dh-color-dropshadow);\n$custom-range-thumb-active-bg: var(--dh-color-accent-1100);\n"]}
1
+ {"version":3,"sourceRoot":"","sources":["../../../node_modules/@deephaven/components/scss/custom.scss","../src/IrisGridPartitionSelector.scss","../../../node_modules/@deephaven/components/scss/bootstrap_overrides.scss"],"names":[],"mappings":"AAAA;ACGA;EACE;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;;AACA;EACE;EACA;EACA;EACA,QAxB4B;;AA0B9B;EACE;EACA;;AAGJ;EACE;;AAEF;EACE,OCZI;EDaJ,cCbI;EDcJ;EACA;;AAEF;EACE;EACA;EACA","file":"IrisGridPartitionSelector.css","sourcesContent":["/* stylelint-disable scss/at-import-no-partial-leading-underscore */\n// Consumers should be able to resolve bootstrap/ to node_modules/bootstrap\n\n//Make bootstrap functions available for use in overrides\n@import 'bootstrap/scss/_functions.scss';\n@import './bootstrap_overrides.scss';\n\n//_variable imports come after bootstrap default overrides,\n// makes all other variables and mixins from bootstrap available\n/// with just importing customer.scss\n@import 'bootstrap/scss/_variables.scss';\n@import 'bootstrap/scss/_mixins.scss';\n\n//New variables come after imports\n@import './new_variables.scss';\n","@import '@deephaven/components/scss/custom.scss';\n$partition-selector-color: $white;\n$partition-selector-input-height: 2.25em;\n.iris-grid-partition-selector {\n display: flex;\n flex-wrap: wrap;\n background: transparent;\n vertical-align: middle;\n .status-message {\n text-overflow: ellipsis;\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0.5em;\n white-space: nowrap;\n }\n div {\n flex-grow: 0;\n }\n .input-group {\n width: auto;\n align-items: center;\n .form-control {\n background-color: transparent;\n border: 2px solid $partition-selector-color;\n border-right: none;\n height: $partition-selector-input-height;\n }\n .btn {\n background-color: transparent;\n margin: 0;\n }\n }\n .iris-grid-partition-selector-spacer {\n flex-grow: 1;\n }\n .btn-outline-primary {\n color: $white;\n border-color: $white;\n margin: 0.35em 0.3em;\n padding: 0.25em 0.5em;\n }\n .btn-close {\n padding: 0 0.5em;\n margin: 0.25em 0.25em 0.25em 0;\n min-width: 0;\n }\n}\n","// Styling overrides for bootstrap\n@use 'sass:map';\n\n// Override / set color variables\n$red: var(--dh-color-visual-red);\n$orange: var(--dh-color-visual-orange);\n$yellow: var(--dh-color-visual-yellow);\n$green: var(--dh-color-visual-green);\n$blue: var(--dh-color-visual-blue);\n$purple: var(--dh-color-visual-purple);\n\n//Define our Gray scale\n$gray-100: var(--dh-color-gray-900, #fcfcfa);\n$gray-200: var(--dh-color-gray-800);\n$gray-300: var(--dh-color-gray-700);\n$gray-400: var(--dh-color-gray-600);\n$gray-500: var(--dh-color-gray-500);\n// intentional duplicate, scale doesn't line up otherwise\n// as we have gray-850 and spectrum doesn't and it is needed\n$gray-600: var(--dh-color-gray-500);\n$gray-700: var(--dh-color-gray-400);\n$gray-800: var(--dh-color-gray-300);\n$gray-850: var(--dh-color-gray-200);\n$gray-900: var(--dh-color-gray-75);\n$black: var(--dh-color-black, #1a171a);\n$white: var(--dh-color-white, #f0f0ee);\n\n//Define some UI colors\n$interfacegray: var(--dh-color-content-bg, #2d2a2e);\n$interfaceblue: var(--dh-color-accent-bg);\n$interfacewhite: $white;\n$interfaceblack: $black;\n$content-bg: var(--dh-color-content-bg, #2d2a2e);\n$background: var(--dh-color-bg);\n$foreground: var(--dh-color-fg);\n\n// Extend default Bootstrap $grays map\n$grays-custom: (\n '850': $gray-850,\n);\n$grays: () !default;\n$grays: map-merge($grays, $grays-custom);\n\n// Extend default Bootstrap $colors map\n$colors-custom: (\n 'black': $black,\n);\n$colors: () !default;\n$colors: map-merge($colors, $colors-custom);\n\n// Override default Bootstrap $theme-colors map by mapping each key to itself.\n// These will then be re-mapped inside of `button-outline-variant` and\n// `button-outline-variant` mixins in `bootstrap_override_mixins_buttons.scss`\n$theme-colors-self-map: ();\n@each $key\n in (\n 'primary',\n 'secondary',\n 'success',\n 'info',\n 'warning',\n 'danger',\n 'light',\n 'dark'\n )\n{\n $theme-colors-self-map: map.set($theme-colors-self-map, $key, $key);\n}\n$theme-colors: () !default;\n$theme-colors: map-merge($theme-colors, $theme-colors-self-map);\n\n// Used by bootstrap_override_mixins_buttons.scss to map Bootstrap colors to\n// DH semantic colors\n$bootstrap-dh-semantic-map: (\n 'primary': 'accent',\n 'secondary': 'neutral',\n 'success': 'positive',\n 'info': 'info',\n 'warning': 'notice',\n 'danger': 'negative',\n // We shouldn't be using these, but mapping so they work with our custom\n // `color-yiq` mixin. If we find a way to remove $light + $dark that are\n // defined in Bootstrap _variables.scss, we should remove these\n 'light': 'neutral',\n 'dark': 'neutral',\n);\n\n//Set default colors\n$body-bg: $black;\n$body-color: $interfacewhite;\n\n// Set brand colors\n$primary: var(--dh-color-accent-bg);\n$primary-hover: var(--dh-color-accent-hover-bg);\n$primary-dark: var(--dh-color-accent-down-bg);\n$primary-light: var(--dh-color-accent-1100);\n$secondary: var(--dh-color-neutral-bg);\n$secondary-hover: var(--dh-color-neutral-hover-bg);\n$success: $green;\n$info: $yellow;\n$warning: $orange;\n$danger: var(--dh-color-negative-bg);\n$danger-hover: var(--dh-color-negative-hover-bg);\n// We really don't want to use $light or $dark variables, but Bootstrap defines\n// them in _variables.scss. Explicitly setting them to ensure we are in control\n// of their values. If we can find a way to remove them, we should\n$light: var(--dh-color-gray-light);\n$dark: var(--dh-color-gray-dark);\n// Bootstrap doesn't define $mid, and we want to move away from this particular\n// semantic. Should be deleted by #1635\n$mid: var(--dh-color-gray-mid);\n\n$semantic-colors: (\n 'primary-hover': $primary-hover,\n 'primary-light': $primary-light,\n 'primary-dark': $primary-dark,\n 'mid': $mid,\n 'content-bg': $interfacegray,\n 'background': $interfaceblack,\n 'foreground': $interfacewhite,\n 'secondary-hover': $secondary-hover,\n 'danger-hover': $danger-hover,\n);\n\n$component-active-bg: $primary;\n$theme-color-interval: 9%;\n$yiq-contrasted-threshold: 180;\n\n// Override fonts\n$font-family-sans-serif:\n 'Fira Sans',\n -apple-system,\n blinkmacsystemfont,\n 'Segoe UI',\n 'Roboto',\n 'Helvetica Neue',\n arial,\n sans-serif; //fira sans then native system ui fallbacks\n$font-family-monospace: 'Fira Mono', menlo, monaco, consolas, 'Liberation Mono',\n 'Courier New', monospace;\n$font-family-base: $font-family-sans-serif;\n\n$headings-font-weight: 400;\n\n//Text overides\n$text-muted: $gray-400;\n\n//Style Selection highlight color\n$text-select-color: var(--dh-color-text-highlight);\n\n//Grid variables, same value as default just making easily accessible\n$grid-gutter-width: 30px;\n\n//Visual Overrides\n$border-radius: 4px;\n$box-shadow: 0 0.1rem 1rem var(--dh-color-dropshadow);\n\n//Override Btn\n$btn-border-radius: 4rem;\n$btn-padding-x: 1.5rem;\n$btn-transition:\n color 0.12s ease-in-out,\n background-color 0.12s ease-in-out,\n border-color 0.12s ease-in-out,\n box-shadow 0.12s ease-in-out; //default 0.15 is too long\n$btn-border-width: 2px;\n$btn-font-weight: var(--spectrum-global-font-weight-bold);\n$btn-line-height: 1.3;\n\n//Override Inputs\n$input-bg: var(--dh-color-input-bg);\n$input-disabled-bg: var(--dh-color-input-disabled-bg);\n$input-color: var(--dh-color-input-fg);\n$input-border-color: var(--dh-color-input-border);\n$input-placeholder-color: var(--dh-color-input-placeholder);\n$input-focus-border-color: var(--dh-color-input-focus-border);\n\n$input-btn-focus-width: 0.2rem;\n$input-btn-focus-color: hsla(var(--dh-color-accent-hsl), 0.35);\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color;\n$input-btn-line-height: 1.3;\n// Bootstrap uses a calc expression to determine the input height (calc(line-height + 2*padding-y + border)).\n// The padding-y value has to be in rem to match units. Using 0.4214rem with 1.3\n// line height gets us to 31.99px vs Spectrum's 32px.\n$input-btn-padding-y: 0.4214rem;\n\n//checkbox\n$custom-control-indicator-bg: var(--dh-color-input-bg);\n$custom-control-indicator-border-color: var(--dh-color-input-border);\n$custom-checkbox-indicator-border-radius: 2px;\n$custom-control-indicator-border-width: 2px;\n$custom-control-indicator-active-bg: var(--dh-color-input-bg);\n$custom-control-indicator-active-border-color: var(--dh-color-input-fg);\n$custom-control-indicator-checked-bg: var(--dh-color-input-fg);\n$custom-control-indicator-checked-color: black; // used as mask fill color\n$custom-checkbox-indicator-indeterminate-bg: var(--dh-color-input-fg);\n$custom-control-indicator-bg-size: 75% 75%;\n$custom-control-indicator-disabled-bg: var(--dh-color-input-disabled-bg);\n$custom-control-indicator-checked-disabled-bg: var(\n --dh-color-input-disabled-bg\n);\n$custom-control-label-disabled-color: var(--dh-color-input-disabled-fg);\n\n// The $custom-select-indicator variable is used by Bootstrap to provide the\n// icon for the select dropdown. Inline svgs can't use CSS variables, so we hard\n// code the color to #929192 (the default value of --dh-color-gray-600). PR #1651\n// overrides this icon altogether for known dropdowns, so technically we may not\n// need this, but it's here in case there are any remaining instances.\n$custom-select-indicator-color: #929192;\n$custom-select-bg: var(--dh-color-selector-bg);\n$custom-select-bg-size: 16px 16px;\n//dhSort icon encoded\n$custom-select-indicator: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M4 7l-.4-.8 4-3.7h.8l4 3.7-.4.8H4zm0 2l-.4.8 4 3.7h.8l4-3.7L12 9H4z'/%3E%3C/svg%3E\"),\n '#',\n '%23'\n);\n$custom-select-focus-box-shadow: $input-btn-focus-box-shadow;\n$custom-select-disabled-color: $gray-500;\n$custom-select-disabled-bg: $gray-800;\n\n//modal\n$modal-content-bg: $content-bg;\n$modal-content-border-width: 0;\n$modal-md: 550px;\n$close-color: var(--dh-color-text);\n$close-text-shadow: none;\n\n// Toast notification\n$toast-bg: var(--dh-color-accent-100);\n$toast-color: var(--dh-color-text);\n$toast-error-bg: var(--dh-color-negative-bg);\n$toast-error-color: var(--dh-color-text);\n\n//tooltips\n$tooltip-bg: var(--dh-color-tooltip-bg);\n$tooltip-color: var(--dh-color-tooltip-fg);\n$tooltip-box-shadow: 0 0.1rem 1.5rem 0.1rem var(--dh-color-tooltip-box-shadow);\n\n//drowdowns\n$dropdown-bg: $gray-600;\n$dropdown-link-color: $foreground;\n$dropdown-link-hover-color: $foreground;\n$dropdown-link-hover-bg: $primary;\n$dropdown-divider-bg: $gray-700;\n\n//context menus\n$contextmenu-bg: var(--dh-color-popover-bg);\n$contextmenu-color: var(--dh-color-text);\n$contextmenu-disabled-color: var(--dh-color-input-disabled-fg);\n$contextmenu-keyboard-selected-bg: var(--dh-color-keyboard-selected-bg);\n$contextmenu-selected-bg: var(--dh-color-item-list-hover-bg);\n$contextmenu-selected-color: var(--dh-color-item-list-selected-fg);\n\n//hr\n$hr-border-color: var(--dh-color-hr);\n\n//links\n$link-color: $gray-400;\n$link-hover-color: $foreground;\n\n//progress-bar\n$progress-bg: $gray-600;\n$progress-border-radius: 1rem;\n\n// Set global options\n$enable-shadows: false;\n$enable-gradients: false;\n$enable-print-styles: false; //I don't think anyone should expect to \"print\" this app.\n\n// Transition times\n$transition: 0.15s;\n$transition-mid: 0.2s;\n$transition-long: 0.3s;\n$transition-slow: 0.6s;\n\n//form-validation icon, uses vsWarning icon encoded here as svg\n$form-feedback-icon-invalid-color: $danger;\n$form-feedback-icon-invalid: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cg fill='none'%3E%3Cg fill='#{$form-feedback-icon-invalid-color}'%3E%3Cpath d='M7.56 1h.88l6.54 12.26-.44.74H1.44L1 13.26 7.56 1zM8 2.28 2.28 13H13.7L8 2.28zM8.625 12v-1h-1.25v1h1.25zm-1.25-2V6h1.25v4h-1.25z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E \"),\n '#',\n '%23'\n);\n\n// This section of variables is not consumed directly by DH, but they need to be\n// defined for sass to compile _variables\n$table-dark-bg: $gray-800;\n$table-dark-accent-bg: var(--dh-color-highlight-hover);\n$table-dark-hover-bg: var(--dh-color-highlight-active);\n$table-dark-border-color: $gray-700;\n$popover-bg: var(--dh-color-tooltip-bg);\n$popover-border-color: var(--dh-color-overlay-modal-bg);\n$popover-header-bg: #000;\n$popover-arrow-outer-color: var(--dh-color-dropshadow);\n$custom-range-thumb-active-bg: var(--dh-color-accent-1100);\n"]}
@@ -258,7 +258,7 @@ export class IrisGridRenderer extends GridRenderer {
258
258
  context.fillRect(-scrimBlurSize, -scrimBlurSize + gridY, scrimBlurSize * 2 + width, (scrimBlurSize * 2 + (height - gridY)) * loadingScrimProgress);
259
259
 
260
260
  // add an overlay of the scrim color to darken things a bit
261
- context.globalCompositeOperation = 'overlay';
261
+ context.globalCompositeOperation = 'source-over';
262
262
  context.filter = "blur(".concat(scrimBlurSize, "px) opacity(15%)");
263
263
  context.fillRect(-scrimBlurSize, -scrimBlurSize + gridY, scrimBlurSize * 2 + width, (scrimBlurSize * 2 + (height - gridY)) * loadingScrimProgress);
264
264
  context.restore();
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridRenderer.js","names":["DEFAULT_FONT_WIDTH","GridRenderer","GridUtils","TableUtils","assertNotNull","getOrThrow","IrisGridTextCellRenderer","IrisGridDataBarCellRenderer","getIcon","ICON_NAMES","Object","freeze","SORT_UP","SORT_DOWN","CARET_DOWN","CARET_RIGHT","CELL_OVERFLOW","EXPAND_ICON_SIZE","IrisGridRenderer","constructor","arguments","_defineProperty","isFilterValid","advancedFilter","quickFilter","isAdvancedFilterValid","filter","isQuickFilterValid","getSortIcon","sort","direction","sortDirection","ascending","descending","drawCanvas","state","drawScrim","drawGrid","context","drawCellOverflowButton","drawGridLines","drawGroupedColumnLine","drawPendingRowLine","drawCellContent","column","row","metrics","model","modelColumns","modelRows","modelColumn","get","modelRow","undefined","renderType","renderTypeForCell","cellRenderer","getCellRenderer","getCellOverflowButtonPosition","_ref","mouseX","mouseY","theme","textCellRenderer","shouldRenderOverflowButton","left","buttonLeft","top","buttonTop","width","buttonWidth","height","buttonHeight","cellHorizontalPadding","overflowButtonColor","overflowButtonHoverColor","save","fillStyle","icon","translate","fill","restore","groupedColumns","maxY","allColumnWidths","allColumnXs","length","groupedColumnDividerColor","lastVisibleGroupColumnIndex","columnX","columnWidth","x","strokeStyle","lineWidth","beginPath","moveTo","lineTo","stroke","allRowYs","maxX","pendingRowCount","firstPendingRow","rowCount","floatingBottomRowCount","y","setLineDash","pendingTextColor","drawMouseColumnHover","hoverSelectColumn","linkerColumnHoverBackgroundColor","fillRect","drawMouseRowHover","isSelectingColumn","loadingScrimProgress","gridY","scrimBlurSize","scrimColor","globalCompositeOperation","concat","rect","clip","drawColumnHeaders","reverseType","columnHeaderHeight","drawFilterHeaders","hasReverse","REVERSE_TYPE","NONE","color","headerReverseBarColor","headerSortBarColor","drawHeaderBar","reverseHeaderBarHeight","sortHeaderBarHeight","barHeight","interior","offset","headerBarCasingColor","columnHeaderMaxDepth","drawColumnHeadersAtDepth","range","boundsProp","depth","isMenuShown","bounds","_objectSpread","drawColumnHeaderAtIndex","index","_model$columns$modelC","_fontWidths$get","gridX","fontWidths","headerHorizontalPadding","columnName","columns","name","getSortForColumn","text","textForColumnHeader","fontWidth","font","textWidth","textRight","defaultX","Math","min","yOffset","isFilterBarShown","quickFilters","advancedFilters","drawExpandedFilterHeaders","size","drawCollapsedFilterHeaders","filterBarHeight","visibleColumns","textAlign","filterBarExpandedActiveBackgroundColor","filterBarExpandedBackgroundColor","y1","filterBarSeparatorColor","i","isFilterable","x1","drawExpandedFilterHeader","filterBarExpandedActiveCellBackgroundColor","filterBarErrorColor","filterBarHorizontalPadding","headerColor","filterText","getFilterText","measureText","maxLength","substring","rectLeft","rectTop","rectWidth","rectHeight","strokeRect","textX","textY","fillText","headerSeparatorColor","filterBarCollapsedHeight","drawCollapsedFilterHeader","filterBarActiveColor","filterBarActiveBackgroundColor","drawRowFooters","floatingTopHeight","floatingBottomHeight","floatingRows","rowFooterWidth","horizontalBarHeight","verticalBarWidth","allRowHeights","floatingGridRowColor","floatingRowBackgroundColors","rowHoverBackgroundColor","mouseRow","getRowAtY","includes","rowHeight","rowY","textForRowFooter","getExpandButtonPosition","_ref2","NULL_POSITION","getCellInfoFromXY","max"],"sources":["../src/IrisGridRenderer.ts"],"sourcesContent":["/* eslint react/destructuring-assignment: \"off\" */\n/* eslint class-methods-use-this: \"off\" */\n/* eslint no-param-reassign: \"off\" */\nimport {\n BoundedAxisRange,\n Coordinate,\n DEFAULT_FONT_WIDTH,\n GridMetrics,\n GridRangeIndex,\n GridRenderer,\n GridRenderState,\n GridThemeType,\n GridUtils,\n VisibleIndex,\n} from '@deephaven/grid';\nimport type { Sort } from '@deephaven/jsapi-types';\nimport { TableUtils, ReverseType } from '@deephaven/jsapi-utils';\nimport { assertNotNull, getOrThrow } from '@deephaven/utils';\nimport {\n ReadonlyAdvancedFilterMap,\n ReadonlyQuickFilterMap,\n AdvancedFilter,\n QuickFilter,\n} from './CommonTypes';\nimport { IrisGridThemeType } from './IrisGridTheme';\nimport IrisGridModel from './IrisGridModel';\nimport IrisGridTextCellRenderer from './IrisGridTextCellRenderer';\nimport IrisGridDataBarCellRenderer from './IrisGridDataBarCellRenderer';\nimport { getIcon } from './IrisGridIcons';\n\nconst ICON_NAMES = Object.freeze({\n SORT_UP: 'sortUp',\n SORT_DOWN: 'sortDown',\n CARET_DOWN: 'caretDown',\n CARET_RIGHT: 'caretRight',\n CELL_OVERFLOW: 'cellOverflow',\n});\n\nconst EXPAND_ICON_SIZE = 10;\n\nexport type IrisGridRenderState = GridRenderState & {\n model: IrisGridModel;\n theme: IrisGridThemeType;\n hoverSelectColumn: GridRangeIndex;\n isSelectingColumn: boolean;\n loadingScrimProgress: number;\n reverseType: ReverseType;\n isFilterBarShown: boolean;\n advancedFilters: ReadonlyAdvancedFilterMap;\n quickFilters: ReadonlyQuickFilterMap;\n isMenuShown: boolean;\n};\n/**\n * Handles rendering some of the Iris specific features, such as sorting icons, sort bar display\n * */\nexport class IrisGridRenderer extends GridRenderer {\n static isFilterValid(\n advancedFilter: AdvancedFilter | undefined | null,\n quickFilter: QuickFilter | undefined | null\n ): boolean {\n const isAdvancedFilterValid =\n advancedFilter == null || advancedFilter.filter != null;\n const isQuickFilterValid =\n quickFilter == null || quickFilter.filter != null;\n return isAdvancedFilterValid && isQuickFilterValid;\n }\n\n protected textCellRenderer = new IrisGridTextCellRenderer();\n\n protected dataBarCellRenderer = new IrisGridDataBarCellRenderer();\n\n getSortIcon(sort: Sort | null): Path2D | null {\n if (!sort) {\n return null;\n }\n if (sort.direction === TableUtils.sortDirection.ascending) {\n return getIcon(ICON_NAMES.SORT_UP);\n }\n if (sort.direction === TableUtils.sortDirection.descending) {\n return getIcon(ICON_NAMES.SORT_DOWN);\n }\n return null;\n }\n\n drawCanvas(state: IrisGridRenderState): void {\n super.drawCanvas(state);\n\n this.drawScrim(state);\n }\n\n drawGrid(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n super.drawGrid(context, state);\n this.drawCellOverflowButton(state);\n }\n\n drawGridLines(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n super.drawGridLines(context, state);\n\n this.drawGroupedColumnLine(context, state);\n\n this.drawPendingRowLine(context, state);\n }\n\n drawCellContent(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n column: VisibleIndex,\n row: VisibleIndex\n ): void {\n const { metrics, model } = state;\n const { modelColumns, modelRows } = metrics;\n const modelColumn = modelColumns.get(column);\n const modelRow = getOrThrow(modelRows, row);\n if (modelColumn === undefined) {\n return;\n }\n\n const renderType = model.renderTypeForCell(modelColumn, modelRow);\n const cellRenderer = this.getCellRenderer(renderType);\n cellRenderer.drawCellContent(context, state, column, row);\n }\n\n getCellOverflowButtonPosition({\n mouseX,\n mouseY,\n metrics,\n theme,\n }: {\n mouseX: Coordinate | null;\n mouseY: Coordinate | null;\n metrics: GridMetrics | undefined;\n theme: GridThemeType;\n }): {\n left: Coordinate | null;\n top: Coordinate | null;\n width: number | null;\n height: number | null;\n } {\n return this.textCellRenderer.getCellOverflowButtonPosition(\n mouseX,\n mouseY,\n metrics,\n theme\n );\n }\n\n shouldRenderOverflowButton(state: IrisGridRenderState): boolean {\n return this.textCellRenderer.shouldRenderOverflowButton(state);\n }\n\n drawCellOverflowButton(state: IrisGridRenderState): void {\n const { context, mouseX, mouseY, theme } = state;\n if (mouseX == null || mouseY == null) return;\n\n if (!this.shouldRenderOverflowButton(state)) {\n return;\n }\n\n const {\n left: buttonLeft,\n top: buttonTop,\n width: buttonWidth,\n height: buttonHeight,\n } = this.getCellOverflowButtonPosition(state);\n\n const {\n cellHorizontalPadding,\n overflowButtonColor,\n overflowButtonHoverColor,\n } = theme;\n\n context.save();\n if (\n overflowButtonHoverColor != null &&\n buttonLeft != null &&\n buttonWidth != null &&\n buttonTop != null &&\n buttonHeight != null &&\n mouseX >= buttonLeft &&\n mouseX <= buttonLeft + buttonWidth &&\n mouseY >= buttonTop &&\n mouseY <= buttonTop + buttonHeight\n ) {\n context.fillStyle = overflowButtonHoverColor;\n } else if (overflowButtonColor != null) {\n context.fillStyle = overflowButtonColor;\n }\n const icon = getIcon(ICON_NAMES.CELL_OVERFLOW);\n if (buttonLeft != null && buttonTop != null) {\n context.translate(buttonLeft + cellHorizontalPadding, buttonTop + 2);\n }\n context.fill(icon);\n\n context.restore();\n }\n\n drawGroupedColumnLine(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n const { metrics, model, theme } = state;\n const { groupedColumns } = model;\n const { maxY, allColumnWidths, allColumnXs } = metrics;\n if (\n groupedColumns.length === 0 ||\n theme.groupedColumnDividerColor == null\n ) {\n return;\n }\n\n // This assumes that the engine puts the grouped columns at the start of the\n // model, so model and visible index match for grouped columns. If we ever\n // add freeze support for tree tables or allow moving the grouped columns,\n // this assumption may no longer hold true. If such a change occurs, we'll\n // need to revisit this since a single vertical divider may no longer make\n // sense.\n const lastVisibleGroupColumnIndex = groupedColumns.length - 1;\n\n const columnX = allColumnXs.get(lastVisibleGroupColumnIndex);\n const columnWidth = allColumnWidths.get(lastVisibleGroupColumnIndex);\n if (columnX == null || columnWidth == null) {\n return;\n }\n\n const x = columnX + columnWidth + 0.5;\n\n context.strokeStyle = theme.groupedColumnDividerColor;\n context.lineWidth = 1;\n context.beginPath();\n context.moveTo(x, 0);\n context.lineTo(x, maxY);\n context.stroke();\n }\n\n drawPendingRowLine(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n const { metrics, model, theme } = state;\n const { allRowYs, maxX } = metrics;\n const { pendingRowCount } = model;\n if (pendingRowCount <= 0) {\n return;\n }\n\n const firstPendingRow =\n model.rowCount - model.pendingRowCount - model.floatingBottomRowCount;\n let y = allRowYs.get(firstPendingRow);\n if (y == null) {\n return;\n }\n\n y -= 0.5;\n context.save();\n context.setLineDash([4, 2]);\n context.strokeStyle = theme.pendingTextColor;\n\n context.lineWidth = 1;\n context.beginPath();\n context.moveTo(0, y);\n context.lineTo(maxX, y);\n context.stroke();\n context.restore();\n }\n\n drawMouseColumnHover(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n const { theme, metrics, hoverSelectColumn } = state;\n if (\n hoverSelectColumn == null ||\n theme.linkerColumnHoverBackgroundColor == null\n ) {\n return;\n }\n\n const { allColumnWidths, allColumnXs, maxY } = metrics;\n\n const x = getOrThrow(allColumnXs, hoverSelectColumn);\n const columnWidth = getOrThrow(allColumnWidths, hoverSelectColumn);\n\n context.fillStyle = theme.linkerColumnHoverBackgroundColor;\n context.fillRect(x, 0, columnWidth, maxY);\n }\n\n drawMouseRowHover(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n const { isSelectingColumn } = state;\n if (!isSelectingColumn) {\n super.drawMouseRowHover(context, state);\n }\n }\n\n drawScrim(state: IrisGridRenderState): void {\n const { context, loadingScrimProgress, metrics, theme } = state;\n if (loadingScrimProgress == null) {\n return;\n }\n\n const { width, height, gridY } = metrics;\n const { scrimBlurSize, scrimColor } = theme;\n\n context.save();\n\n // Use global composite so we can change the underlying layer to grayscale\n context.globalCompositeOperation = 'color';\n context.filter = `blur(${scrimBlurSize}px)`;\n if (scrimColor != null) {\n context.fillStyle = scrimColor;\n }\n\n // Clip the path so the top edge is hard edge, bottom edge is soft/blurry\n context.beginPath();\n context.rect(0, gridY, width, height - gridY);\n context.clip();\n\n // Extend the edges beyond the clip area so they're hard edges\n context.fillRect(\n -scrimBlurSize,\n -scrimBlurSize + gridY,\n scrimBlurSize * 2 + width,\n (scrimBlurSize * 2 + (height - gridY)) * loadingScrimProgress\n );\n\n // add an overlay of the scrim color to darken things a bit\n context.globalCompositeOperation = 'overlay';\n context.filter = `blur(${scrimBlurSize}px) opacity(15%)`;\n context.fillRect(\n -scrimBlurSize,\n -scrimBlurSize + gridY,\n scrimBlurSize * 2 + width,\n (scrimBlurSize * 2 + (height - gridY)) * loadingScrimProgress\n );\n\n context.restore();\n }\n\n drawColumnHeaders(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n super.drawColumnHeaders(context, state);\n\n const { theme, metrics, model, reverseType } = state;\n const { columnHeaderHeight } = metrics;\n\n this.drawFilterHeaders(context, state);\n\n if (columnHeaderHeight <= 0) {\n return;\n }\n\n const { sort } = model;\n // if there is only one sort bar, it is interior to the header to save space\n if (sort.length === 1) {\n const hasReverse = reverseType !== TableUtils.REVERSE_TYPE.NONE;\n\n let color;\n if (hasReverse) {\n color = theme.headerReverseBarColor;\n } else {\n color = theme.headerSortBarColor;\n }\n this.drawHeaderBar(\n context,\n state,\n color,\n hasReverse ? theme.reverseHeaderBarHeight : theme.sortHeaderBarHeight\n );\n } else if (sort.length > 1) {\n // if there's multiple bars, the sort is interior to header\n // and the reverse claims space in the table\n if (\n // has table reverse\n reverseType !== TableUtils.REVERSE_TYPE.NONE\n ) {\n this.drawHeaderBar(\n context,\n state,\n theme.headerReverseBarColor,\n theme.reverseHeaderBarHeight,\n false\n );\n }\n this.drawHeaderBar(\n context,\n state,\n theme.headerSortBarColor,\n theme.sortHeaderBarHeight\n );\n }\n }\n\n drawHeaderBar(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n color: string | CanvasGradient | CanvasPattern,\n barHeight: number,\n interior = true\n ): void {\n const { theme, metrics, model } = state;\n const { columnHeaderHeight, width } = metrics;\n // Draw casing with 1 pixel above and below the bar,\n // 1px falls on the existing split between grid/headers\n // so don't need to be accounnted for in math elsewhere\n let offset = 0;\n if (!interior) {\n offset = barHeight;\n }\n context.fillStyle = theme.headerBarCasingColor;\n context.fillRect(\n 0,\n model.columnHeaderMaxDepth * columnHeaderHeight - barHeight - 2 + offset,\n width,\n barHeight + 2\n );\n\n context.fillStyle = color;\n context.fillRect(\n 0,\n model.columnHeaderMaxDepth * columnHeaderHeight - barHeight - 1 + offset,\n width,\n barHeight\n );\n }\n\n drawColumnHeadersAtDepth(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n range: BoundedAxisRange,\n boundsProp: { minX: number; maxX: number },\n depth: number\n ): void {\n const { metrics, model, isMenuShown } = state;\n const { columnHeaderMaxDepth } = model;\n const { width } = metrics;\n const bounds = {\n ...boundsProp,\n maxX:\n depth === columnHeaderMaxDepth - 1 && boundsProp.maxX === width\n ? width - (isMenuShown ? 0 : 30) // Account for the menu button\n : boundsProp.maxX,\n };\n super.drawColumnHeadersAtDepth(context, state, range, bounds, depth);\n }\n\n drawColumnHeaderAtIndex(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n index: VisibleIndex,\n bounds: { minX: number; maxX: number }\n ): void {\n super.drawColumnHeaderAtIndex(context, state, index, bounds);\n const { metrics, model, theme } = state;\n const {\n modelColumns,\n allColumnWidths,\n allColumnXs,\n gridX,\n columnHeaderHeight,\n fontWidths,\n } = metrics;\n\n const { headerHorizontalPadding } = theme;\n const columnWidth = getOrThrow(allColumnWidths, index, 0);\n const columnX = getOrThrow(allColumnXs, index) + gridX;\n const modelColumn = modelColumns.get(index);\n\n if (modelColumn == null) {\n return;\n }\n\n const columnName = model.columns[modelColumn]?.name;\n\n if (columnName == null) {\n return;\n }\n\n const sort = TableUtils.getSortForColumn(model.sort, columnName);\n\n if (!sort) {\n return;\n }\n\n const icon = this.getSortIcon(sort);\n if (!icon) {\n return;\n }\n\n const text = model.textForColumnHeader(modelColumn);\n if (text === undefined) {\n return;\n }\n\n const fontWidth = fontWidths.get(context.font) ?? DEFAULT_FONT_WIDTH;\n assertNotNull(fontWidth);\n const textWidth = text.length * fontWidth;\n const textRight = gridX + columnX + textWidth + headerHorizontalPadding;\n let { maxX } = bounds;\n maxX -= headerHorizontalPadding;\n const defaultX =\n gridX + columnX + columnWidth - headerHorizontalPadding - 1;\n\n const x = textRight > maxX ? textRight + 1 : Math.min(maxX, defaultX);\n const yOffset =\n sort.direction === TableUtils.sortDirection.ascending ? -6 : -12;\n const y = columnHeaderHeight * 0.5 + yOffset;\n\n context.save();\n\n context.beginPath();\n context.rect(columnX, 0, columnWidth, columnHeaderHeight);\n context.clip();\n\n context.fillStyle = theme.headerSortBarColor;\n context.translate(x, y);\n context.fill(icon);\n\n context.restore();\n }\n\n drawFilterHeaders(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n const { isFilterBarShown, quickFilters, advancedFilters } = state;\n\n if (isFilterBarShown) {\n this.drawExpandedFilterHeaders(context, state);\n } else if (\n (quickFilters != null && quickFilters.size > 0) ||\n (advancedFilters != null && advancedFilters.size > 0)\n ) {\n this.drawCollapsedFilterHeaders(context, state);\n }\n }\n\n drawExpandedFilterHeaders(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n const { metrics, model, theme, quickFilters, advancedFilters } = state;\n const { filterBarHeight } = theme;\n\n if (filterBarHeight <= 0) {\n return;\n }\n\n const {\n gridX,\n gridY,\n maxX,\n modelColumns,\n visibleColumns,\n allColumnWidths,\n allColumnXs,\n } = metrics;\n\n const columnHeaderHeight = gridY - filterBarHeight;\n\n context.save();\n\n context.font = theme.font;\n context.textAlign = 'left';\n\n if (\n (quickFilters != null && quickFilters.size > 0) ||\n (advancedFilters != null && advancedFilters.size > 0)\n ) {\n // fill style if a fiter is set on any column\n context.fillStyle = theme.filterBarExpandedActiveBackgroundColor;\n } else {\n // fill style with no filters set\n context.fillStyle = theme.filterBarExpandedBackgroundColor;\n }\n\n // Draw the background\n context.fillRect(gridX, columnHeaderHeight, maxX, filterBarHeight - 1);\n\n // Draw the bottom border\n context.fillStyle = theme.headerBarCasingColor;\n\n context.fillRect(gridX, columnHeaderHeight + filterBarHeight - 1, maxX, 1);\n\n // Draw the filter input boxes\n const y1 = columnHeaderHeight;\n context.strokeStyle = theme.filterBarSeparatorColor;\n context.beginPath();\n\n for (let i = 0; i < visibleColumns.length; i += 1) {\n const column = visibleColumns[i];\n const modelColumn = getOrThrow(modelColumns, column);\n const columnX = getOrThrow(allColumnXs, column);\n const columnWidth = getOrThrow(allColumnWidths, column);\n if (model.isFilterable(modelColumn) && columnWidth > 0) {\n const x1 = gridX + (columnX ?? 0);\n context.rect(x1 + 0.5, y1 + 0.5, columnWidth, filterBarHeight - 2); // 1 for the border, 1 for the casing\n }\n }\n context.stroke();\n\n for (let i = 0; i < visibleColumns.length; i += 1) {\n const column = visibleColumns[i];\n const columnWidth = getOrThrow(allColumnWidths, column);\n const columnX = getOrThrow(allColumnXs, column);\n const x = columnX + gridX;\n this.drawExpandedFilterHeader(context, state, column, x, columnWidth);\n }\n\n context.restore();\n }\n\n drawExpandedFilterHeader(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n column: VisibleIndex,\n columnX: Coordinate,\n columnWidth: number\n ): void {\n if (columnWidth <= 0) {\n return;\n }\n\n const { metrics, theme, quickFilters, advancedFilters } = state;\n const { modelColumns, gridY } = metrics;\n const {\n filterBarHeight,\n filterBarExpandedActiveCellBackgroundColor,\n filterBarErrorColor,\n filterBarHorizontalPadding,\n headerColor,\n } = theme;\n const columnHeaderHeight = gridY - filterBarHeight;\n const modelColumn = modelColumns.get(column);\n if (modelColumn === undefined) return;\n const quickFilter = quickFilters.get(modelColumn);\n const advancedFilter = advancedFilters.get(modelColumn);\n if (quickFilter == null && advancedFilter == null) {\n return;\n }\n\n let text = null;\n if (quickFilter != null) {\n const { text: filterText } = quickFilter;\n text = filterText;\n if (!text) {\n text = TableUtils.getFilterText(quickFilter.filter);\n }\n\n if (text != null) {\n const { fontWidths } = metrics;\n let fontWidth = fontWidths.get(context.font);\n if (fontWidth == null || fontWidth === 0) {\n fontWidth = context.measureText('8').width;\n if (!fontWidth) {\n fontWidth = 10;\n }\n }\n\n const maxLength =\n (columnWidth - filterBarHorizontalPadding * 2) / fontWidth;\n if (maxLength <= 0) {\n text = '';\n } else if (text.length > maxLength) {\n text = `${text.substring(0, maxLength - 1)}…`;\n }\n }\n }\n\n context.save();\n\n const isFilterValid = IrisGridRenderer.isFilterValid(\n advancedFilter,\n quickFilter\n );\n if (isFilterValid && filterBarExpandedActiveCellBackgroundColor != null) {\n // draw active filter background inside cell\n context.fillStyle = filterBarExpandedActiveCellBackgroundColor;\n context.fillRect(\n columnX + 1, // +1 left border\n columnHeaderHeight + 1, // +1 top border\n columnWidth - 1, // -1 right border\n filterBarHeight - 3 // -3 top, bottom border and bottom casing\n );\n } else if (filterBarErrorColor != null) {\n // draw error box inside cell\n context.fillStyle = filterBarErrorColor;\n context.lineWidth = 2;\n context.strokeStyle = filterBarErrorColor;\n // Because this is drawn with a strokeRect, we have to add/subtract half the,\n // linewidth from each side to make interior, in addition to accounting for any borders/casings\n const rectLeft = columnX + 2; // 1 for strokeRect, 1 for border\n const rectTop = columnHeaderHeight + 2; // 1 for strokeRect, 1 for border\n const rectWidth = columnWidth - 3; // for 2 border and 1 for strokeRect\n const rectHeight = filterBarHeight - 5; // -2 for strokeRect, -3 for top, bottom border and bottom casing\n context.strokeRect(rectLeft, rectTop, rectWidth, rectHeight);\n }\n\n if (text != null && text !== '') {\n const textX = columnX + filterBarHorizontalPadding;\n const textY = columnHeaderHeight + filterBarHeight * 0.5 + 1; // + 1 for border\n context.fillStyle = headerColor;\n context.fillText(text, textX, textY);\n }\n\n context.restore();\n }\n\n drawCollapsedFilterHeaders(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n const { metrics, theme } = state;\n const { headerSeparatorColor, filterBarCollapsedHeight } = theme;\n\n if (filterBarCollapsedHeight <= 0) {\n return;\n }\n\n const { gridX, gridY, maxX, visibleColumns, allColumnWidths, allColumnXs } =\n metrics;\n const columnHeaderHeight = gridY - filterBarCollapsedHeight;\n\n context.save();\n\n // Draw the background of the collapsed filter bar\n context.fillStyle = headerSeparatorColor;\n context.fillRect(gridX, columnHeaderHeight, maxX, filterBarCollapsedHeight);\n\n for (let i = 0; i < visibleColumns.length; i += 1) {\n const column = visibleColumns[i];\n const columnWidth = allColumnWidths.get(column);\n const columnX = allColumnXs.get(column);\n if (columnX != null && columnWidth != null) {\n const x = columnX + gridX;\n // draw the collapsed cells\n this.drawCollapsedFilterHeader(context, state, column, x, columnWidth);\n }\n }\n\n context.restore();\n }\n\n drawCollapsedFilterHeader(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n column: VisibleIndex,\n columnX: Coordinate,\n columnWidth: number\n ): void {\n if (columnWidth <= 0) {\n return;\n }\n\n const { metrics, theme, quickFilters, advancedFilters } = state;\n const { modelColumns, gridY } = metrics;\n const modelColumn = modelColumns.get(column);\n\n if (modelColumn === undefined) return;\n const quickFilter = quickFilters.get(modelColumn);\n const advancedFilter = advancedFilters.get(modelColumn);\n\n const {\n filterBarCollapsedHeight,\n filterBarActiveColor,\n filterBarActiveBackgroundColor,\n filterBarErrorColor,\n } = theme;\n\n context.save();\n\n const isFilterValid = IrisGridRenderer.isFilterValid(\n advancedFilter,\n quickFilter\n );\n\n if (\n filterBarActiveBackgroundColor != null &&\n quickFilter == null &&\n advancedFilter == null\n ) {\n context.fillStyle = filterBarActiveBackgroundColor;\n } else if (filterBarActiveColor != null && isFilterValid) {\n context.fillStyle = filterBarActiveColor;\n } else if (filterBarErrorColor != null) {\n context.fillStyle = filterBarErrorColor;\n }\n\n const x = columnX + 1; // for gap between columns\n const y = gridY - filterBarCollapsedHeight;\n const rectWidth = columnWidth - 1; // for gap between columns\n const rectHeight = filterBarCollapsedHeight - 1; // for casing bottom\n context.fillRect(x, y, rectWidth, rectHeight);\n\n context.restore();\n }\n\n drawRowFooters(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n const { metrics, model, mouseX, mouseY, theme } = state;\n const {\n gridY,\n gridX,\n maxX,\n modelRows,\n floatingTopHeight,\n floatingBottomHeight,\n floatingRows,\n rowFooterWidth,\n height,\n horizontalBarHeight,\n verticalBarWidth,\n allRowHeights,\n allRowYs,\n width,\n } = metrics;\n // Only draw the footers on the floating rows\n if (rowFooterWidth <= 0 || floatingRows.length === 0) {\n return;\n }\n\n const {\n cellHorizontalPadding,\n floatingGridRowColor,\n floatingRowBackgroundColors,\n headerColor,\n rowHoverBackgroundColor,\n } = theme;\n\n context.translate(gridX, gridY);\n\n context.beginPath();\n const x = Math.min(maxX, width - rowFooterWidth - verticalBarWidth - gridX);\n context.fillStyle = floatingRowBackgroundColors;\n if (floatingTopHeight > 0) {\n context.rect(x, 0, rowFooterWidth, floatingTopHeight);\n }\n if (floatingBottomHeight > 0) {\n context.rect(\n x,\n height - gridY - horizontalBarHeight - floatingBottomHeight,\n rowFooterWidth,\n floatingBottomHeight\n );\n }\n context.fill();\n\n const mouseRow =\n mouseX != null &&\n mouseY != null &&\n mouseX >= gridX &&\n mouseX <= maxX + rowFooterWidth\n ? GridUtils.getRowAtY(mouseY, metrics)\n : null;\n if (\n rowHoverBackgroundColor != null &&\n mouseRow !== null &&\n floatingRows.includes(mouseRow)\n ) {\n context.fillStyle = rowHoverBackgroundColor;\n const y = allRowYs.get(mouseRow);\n const rowHeight = allRowHeights.get(mouseRow);\n assertNotNull(y);\n assertNotNull(rowHeight);\n context.fillRect(x, y, rowFooterWidth, rowHeight);\n }\n\n context.beginPath();\n if (floatingGridRowColor != null) {\n context.strokeStyle = floatingGridRowColor;\n }\n if (floatingTopHeight > 0) {\n context.moveTo(x + 0.5, 0.5);\n context.lineTo(x + 0.5, floatingTopHeight - 0.5);\n }\n if (floatingBottomHeight > 0) {\n const y = height - gridY - horizontalBarHeight - floatingBottomHeight;\n context.moveTo(x - 0.5, y + 0.5);\n context.lineTo(x - 0.5, y + floatingBottomHeight - 0.5);\n }\n context.stroke();\n\n context.fillStyle = headerColor;\n context.textAlign = 'left';\n\n const textX = x + cellHorizontalPadding;\n for (let i = 0; i < floatingRows.length; i += 1) {\n const row = floatingRows[i];\n const rowHeight = allRowHeights.get(row);\n const rowY = allRowYs.get(row);\n const modelRow = modelRows.get(row);\n if (rowY != null && rowHeight != null && modelRow != null) {\n const textY = rowY + rowHeight * 0.5;\n context.fillText(model.textForRowFooter(modelRow), textX, textY);\n }\n }\n\n context.translate(-gridX, -gridY);\n }\n\n getExpandButtonPosition(\n {\n mouseX,\n mouseY,\n metrics,\n theme,\n }: {\n mouseX: Coordinate | null;\n mouseY: Coordinate | null;\n metrics: GridMetrics | undefined;\n theme: GridThemeType;\n },\n depth: number | null\n ): {\n left: Coordinate | null;\n top: Coordinate | null;\n width: number | null;\n height: number | null;\n } {\n const NULL_POSITION = { left: null, top: null, width: null, height: null };\n if (mouseX == null || mouseY == null || depth == null || !metrics) {\n return NULL_POSITION;\n }\n const { rowHeight, left, top } = GridUtils.getCellInfoFromXY(\n mouseX,\n mouseY,\n metrics\n );\n\n assertNotNull(left);\n assertNotNull(rowHeight);\n assertNotNull(top);\n const { cellHorizontalPadding } = theme;\n\n const width = EXPAND_ICON_SIZE + 2 * cellHorizontalPadding;\n\n const buttonLeft = Math.max(left + EXPAND_ICON_SIZE * depth, metrics.gridX);\n const buttonTop = metrics.gridY + top;\n\n return {\n left: buttonLeft,\n top: buttonTop,\n width,\n height: rowHeight,\n };\n }\n}\n\nexport default IrisGridRenderer;\n"],"mappings":";;;;;AAAA;AACA;AACA;AACA,SAGEA,kBAAkB,EAGlBC,YAAY,EAGZC,SAAS,QAEJ,iBAAiB;AAExB,SAASC,UAAU,QAAqB,wBAAwB;AAChE,SAASC,aAAa,EAAEC,UAAU,QAAQ,kBAAkB;AAAC,OAStDC,wBAAwB;AAAA,OACxBC,2BAA2B;AAAA,SACzBC,OAAO;AAEhB,IAAMC,UAAU,GAAGC,MAAM,CAACC,MAAM,CAAC;EAC/BC,OAAO,EAAE,QAAQ;EACjBC,SAAS,EAAE,UAAU;EACrBC,UAAU,EAAE,WAAW;EACvBC,WAAW,EAAE,YAAY;EACzBC,aAAa,EAAE;AACjB,CAAC,CAAC;AAEF,IAAMC,gBAAgB,GAAG,EAAE;AAc3B;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,SAASjB,YAAY,CAAC;EAAAkB,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA,2BAYpB,IAAIf,wBAAwB,CAAC,CAAC;IAAAe,eAAA,8BAE3B,IAAId,2BAA2B,CAAC,CAAC;EAAA;EAbjE,OAAOe,aAAaA,CAClBC,cAAiD,EACjDC,WAA2C,EAClC;IACT,IAAMC,qBAAqB,GACzBF,cAAc,IAAI,IAAI,IAAIA,cAAc,CAACG,MAAM,IAAI,IAAI;IACzD,IAAMC,kBAAkB,GACtBH,WAAW,IAAI,IAAI,IAAIA,WAAW,CAACE,MAAM,IAAI,IAAI;IACnD,OAAOD,qBAAqB,IAAIE,kBAAkB;EACpD;EAMAC,WAAWA,CAACC,IAAiB,EAAiB;IAC5C,IAAI,CAACA,IAAI,EAAE;MACT,OAAO,IAAI;IACb;IACA,IAAIA,IAAI,CAACC,SAAS,KAAK3B,UAAU,CAAC4B,aAAa,CAACC,SAAS,EAAE;MACzD,OAAOxB,OAAO,CAACC,UAAU,CAACG,OAAO,CAAC;IACpC;IACA,IAAIiB,IAAI,CAACC,SAAS,KAAK3B,UAAU,CAAC4B,aAAa,CAACE,UAAU,EAAE;MAC1D,OAAOzB,OAAO,CAACC,UAAU,CAACI,SAAS,CAAC;IACtC;IACA,OAAO,IAAI;EACb;EAEAqB,UAAUA,CAACC,KAA0B,EAAQ;IAC3C,KAAK,CAACD,UAAU,CAACC,KAAK,CAAC;IAEvB,IAAI,CAACC,SAAS,CAACD,KAAK,CAAC;EACvB;EAEAE,QAAQA,CACNC,OAAiC,EACjCH,KAA0B,EACpB;IACN,KAAK,CAACE,QAAQ,CAACC,OAAO,EAAEH,KAAK,CAAC;IAC9B,IAAI,CAACI,sBAAsB,CAACJ,KAAK,CAAC;EACpC;EAEAK,aAAaA,CACXF,OAAiC,EACjCH,KAA0B,EACpB;IACN,KAAK,CAACK,aAAa,CAACF,OAAO,EAAEH,KAAK,CAAC;IAEnC,IAAI,CAACM,qBAAqB,CAACH,OAAO,EAAEH,KAAK,CAAC;IAE1C,IAAI,CAACO,kBAAkB,CAACJ,OAAO,EAAEH,KAAK,CAAC;EACzC;EAEAQ,eAAeA,CACbL,OAAiC,EACjCH,KAA0B,EAC1BS,MAAoB,EACpBC,GAAiB,EACX;IACN,IAAM;MAAEC,OAAO;MAAEC;IAAM,CAAC,GAAGZ,KAAK;IAChC,IAAM;MAAEa,YAAY;MAAEC;IAAU,CAAC,GAAGH,OAAO;IAC3C,IAAMI,WAAW,GAAGF,YAAY,CAACG,GAAG,CAACP,MAAM,CAAC;IAC5C,IAAMQ,QAAQ,GAAG/C,UAAU,CAAC4C,SAAS,EAAEJ,GAAG,CAAC;IAC3C,IAAIK,WAAW,KAAKG,SAAS,EAAE;MAC7B;IACF;IAEA,IAAMC,UAAU,GAAGP,KAAK,CAACQ,iBAAiB,CAACL,WAAW,EAAEE,QAAQ,CAAC;IACjE,IAAMI,YAAY,GAAG,IAAI,CAACC,eAAe,CAACH,UAAU,CAAC;IACrDE,YAAY,CAACb,eAAe,CAACL,OAAO,EAAEH,KAAK,EAAES,MAAM,EAAEC,GAAG,CAAC;EAC3D;EAEAa,6BAA6BA,CAAAC,IAAA,EAe3B;IAAA,IAf4B;MAC5BC,MAAM;MACNC,MAAM;MACNf,OAAO;MACPgB;IAMF,CAAC,GAAAH,IAAA;IAMC,OAAO,IAAI,CAACI,gBAAgB,CAACL,6BAA6B,CACxDE,MAAM,EACNC,MAAM,EACNf,OAAO,EACPgB,KACF,CAAC;EACH;EAEAE,0BAA0BA,CAAC7B,KAA0B,EAAW;IAC9D,OAAO,IAAI,CAAC4B,gBAAgB,CAACC,0BAA0B,CAAC7B,KAAK,CAAC;EAChE;EAEAI,sBAAsBA,CAACJ,KAA0B,EAAQ;IACvD,IAAM;MAAEG,OAAO;MAAEsB,MAAM;MAAEC,MAAM;MAAEC;IAAM,CAAC,GAAG3B,KAAK;IAChD,IAAIyB,MAAM,IAAI,IAAI,IAAIC,MAAM,IAAI,IAAI,EAAE;IAEtC,IAAI,CAAC,IAAI,CAACG,0BAA0B,CAAC7B,KAAK,CAAC,EAAE;MAC3C;IACF;IAEA,IAAM;MACJ8B,IAAI,EAAEC,UAAU;MAChBC,GAAG,EAAEC,SAAS;MACdC,KAAK,EAAEC,WAAW;MAClBC,MAAM,EAAEC;IACV,CAAC,GAAG,IAAI,CAACd,6BAA6B,CAACvB,KAAK,CAAC;IAE7C,IAAM;MACJsC,qBAAqB;MACrBC,mBAAmB;MACnBC;IACF,CAAC,GAAGb,KAAK;IAETxB,OAAO,CAACsC,IAAI,CAAC,CAAC;IACd,IACED,wBAAwB,IAAI,IAAI,IAChCT,UAAU,IAAI,IAAI,IAClBI,WAAW,IAAI,IAAI,IACnBF,SAAS,IAAI,IAAI,IACjBI,YAAY,IAAI,IAAI,IACpBZ,MAAM,IAAIM,UAAU,IACpBN,MAAM,IAAIM,UAAU,GAAGI,WAAW,IAClCT,MAAM,IAAIO,SAAS,IACnBP,MAAM,IAAIO,SAAS,GAAGI,YAAY,EAClC;MACAlC,OAAO,CAACuC,SAAS,GAAGF,wBAAwB;IAC9C,CAAC,MAAM,IAAID,mBAAmB,IAAI,IAAI,EAAE;MACtCpC,OAAO,CAACuC,SAAS,GAAGH,mBAAmB;IACzC;IACA,IAAMI,IAAI,GAAGtE,OAAO,CAACC,UAAU,CAACO,aAAa,CAAC;IAC9C,IAAIkD,UAAU,IAAI,IAAI,IAAIE,SAAS,IAAI,IAAI,EAAE;MAC3C9B,OAAO,CAACyC,SAAS,CAACb,UAAU,GAAGO,qBAAqB,EAAEL,SAAS,GAAG,CAAC,CAAC;IACtE;IACA9B,OAAO,CAAC0C,IAAI,CAACF,IAAI,CAAC;IAElBxC,OAAO,CAAC2C,OAAO,CAAC,CAAC;EACnB;EAEAxC,qBAAqBA,CACnBH,OAAiC,EACjCH,KAA0B,EACpB;IACN,IAAM;MAAEW,OAAO;MAAEC,KAAK;MAAEe;IAAM,CAAC,GAAG3B,KAAK;IACvC,IAAM;MAAE+C;IAAe,CAAC,GAAGnC,KAAK;IAChC,IAAM;MAAEoC,IAAI;MAAEC,eAAe;MAAEC;IAAY,CAAC,GAAGvC,OAAO;IACtD,IACEoC,cAAc,CAACI,MAAM,KAAK,CAAC,IAC3BxB,KAAK,CAACyB,yBAAyB,IAAI,IAAI,EACvC;MACA;IACF;;IAEA;IACA;IACA;IACA;IACA;IACA;IACA,IAAMC,2BAA2B,GAAGN,cAAc,CAACI,MAAM,GAAG,CAAC;IAE7D,IAAMG,OAAO,GAAGJ,WAAW,CAAClC,GAAG,CAACqC,2BAA2B,CAAC;IAC5D,IAAME,WAAW,GAAGN,eAAe,CAACjC,GAAG,CAACqC,2BAA2B,CAAC;IACpE,IAAIC,OAAO,IAAI,IAAI,IAAIC,WAAW,IAAI,IAAI,EAAE;MAC1C;IACF;IAEA,IAAMC,CAAC,GAAGF,OAAO,GAAGC,WAAW,GAAG,GAAG;IAErCpD,OAAO,CAACsD,WAAW,GAAG9B,KAAK,CAACyB,yBAAyB;IACrDjD,OAAO,CAACuD,SAAS,GAAG,CAAC;IACrBvD,OAAO,CAACwD,SAAS,CAAC,CAAC;IACnBxD,OAAO,CAACyD,MAAM,CAACJ,CAAC,EAAE,CAAC,CAAC;IACpBrD,OAAO,CAAC0D,MAAM,CAACL,CAAC,EAAER,IAAI,CAAC;IACvB7C,OAAO,CAAC2D,MAAM,CAAC,CAAC;EAClB;EAEAvD,kBAAkBA,CAChBJ,OAAiC,EACjCH,KAA0B,EACpB;IACN,IAAM;MAAEW,OAAO;MAAEC,KAAK;MAAEe;IAAM,CAAC,GAAG3B,KAAK;IACvC,IAAM;MAAE+D,QAAQ;MAAEC;IAAK,CAAC,GAAGrD,OAAO;IAClC,IAAM;MAAEsD;IAAgB,CAAC,GAAGrD,KAAK;IACjC,IAAIqD,eAAe,IAAI,CAAC,EAAE;MACxB;IACF;IAEA,IAAMC,eAAe,GACnBtD,KAAK,CAACuD,QAAQ,GAAGvD,KAAK,CAACqD,eAAe,GAAGrD,KAAK,CAACwD,sBAAsB;IACvE,IAAIC,CAAC,GAAGN,QAAQ,CAAC/C,GAAG,CAACkD,eAAe,CAAC;IACrC,IAAIG,CAAC,IAAI,IAAI,EAAE;MACb;IACF;IAEAA,CAAC,IAAI,GAAG;IACRlE,OAAO,CAACsC,IAAI,CAAC,CAAC;IACdtC,OAAO,CAACmE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3BnE,OAAO,CAACsD,WAAW,GAAG9B,KAAK,CAAC4C,gBAAgB;IAE5CpE,OAAO,CAACuD,SAAS,GAAG,CAAC;IACrBvD,OAAO,CAACwD,SAAS,CAAC,CAAC;IACnBxD,OAAO,CAACyD,MAAM,CAAC,CAAC,EAAES,CAAC,CAAC;IACpBlE,OAAO,CAAC0D,MAAM,CAACG,IAAI,EAAEK,CAAC,CAAC;IACvBlE,OAAO,CAAC2D,MAAM,CAAC,CAAC;IAChB3D,OAAO,CAAC2C,OAAO,CAAC,CAAC;EACnB;EAEA0B,oBAAoBA,CAClBrE,OAAiC,EACjCH,KAA0B,EACpB;IACN,IAAM;MAAE2B,KAAK;MAAEhB,OAAO;MAAE8D;IAAkB,CAAC,GAAGzE,KAAK;IACnD,IACEyE,iBAAiB,IAAI,IAAI,IACzB9C,KAAK,CAAC+C,gCAAgC,IAAI,IAAI,EAC9C;MACA;IACF;IAEA,IAAM;MAAEzB,eAAe;MAAEC,WAAW;MAAEF;IAAK,CAAC,GAAGrC,OAAO;IAEtD,IAAM6C,CAAC,GAAGtF,UAAU,CAACgF,WAAW,EAAEuB,iBAAiB,CAAC;IACpD,IAAMlB,WAAW,GAAGrF,UAAU,CAAC+E,eAAe,EAAEwB,iBAAiB,CAAC;IAElEtE,OAAO,CAACuC,SAAS,GAAGf,KAAK,CAAC+C,gCAAgC;IAC1DvE,OAAO,CAACwE,QAAQ,CAACnB,CAAC,EAAE,CAAC,EAAED,WAAW,EAAEP,IAAI,CAAC;EAC3C;EAEA4B,iBAAiBA,CACfzE,OAAiC,EACjCH,KAA0B,EACpB;IACN,IAAM;MAAE6E;IAAkB,CAAC,GAAG7E,KAAK;IACnC,IAAI,CAAC6E,iBAAiB,EAAE;MACtB,KAAK,CAACD,iBAAiB,CAACzE,OAAO,EAAEH,KAAK,CAAC;IACzC;EACF;EAEAC,SAASA,CAACD,KAA0B,EAAQ;IAC1C,IAAM;MAAEG,OAAO;MAAE2E,oBAAoB;MAAEnE,OAAO;MAAEgB;IAAM,CAAC,GAAG3B,KAAK;IAC/D,IAAI8E,oBAAoB,IAAI,IAAI,EAAE;MAChC;IACF;IAEA,IAAM;MAAE5C,KAAK;MAAEE,MAAM;MAAE2C;IAAM,CAAC,GAAGpE,OAAO;IACxC,IAAM;MAAEqE,aAAa;MAAEC;IAAW,CAAC,GAAGtD,KAAK;IAE3CxB,OAAO,CAACsC,IAAI,CAAC,CAAC;;IAEd;IACAtC,OAAO,CAAC+E,wBAAwB,GAAG,OAAO;IAC1C/E,OAAO,CAACZ,MAAM,WAAA4F,MAAA,CAAWH,aAAa,QAAK;IAC3C,IAAIC,UAAU,IAAI,IAAI,EAAE;MACtB9E,OAAO,CAACuC,SAAS,GAAGuC,UAAU;IAChC;;IAEA;IACA9E,OAAO,CAACwD,SAAS,CAAC,CAAC;IACnBxD,OAAO,CAACiF,IAAI,CAAC,CAAC,EAAEL,KAAK,EAAE7C,KAAK,EAAEE,MAAM,GAAG2C,KAAK,CAAC;IAC7C5E,OAAO,CAACkF,IAAI,CAAC,CAAC;;IAEd;IACAlF,OAAO,CAACwE,QAAQ,CACd,CAACK,aAAa,EACd,CAACA,aAAa,GAAGD,KAAK,EACtBC,aAAa,GAAG,CAAC,GAAG9C,KAAK,EACzB,CAAC8C,aAAa,GAAG,CAAC,IAAI5C,MAAM,GAAG2C,KAAK,CAAC,IAAID,oBAC3C,CAAC;;IAED;IACA3E,OAAO,CAAC+E,wBAAwB,GAAG,SAAS;IAC5C/E,OAAO,CAACZ,MAAM,WAAA4F,MAAA,CAAWH,aAAa,qBAAkB;IACxD7E,OAAO,CAACwE,QAAQ,CACd,CAACK,aAAa,EACd,CAACA,aAAa,GAAGD,KAAK,EACtBC,aAAa,GAAG,CAAC,GAAG9C,KAAK,EACzB,CAAC8C,aAAa,GAAG,CAAC,IAAI5C,MAAM,GAAG2C,KAAK,CAAC,IAAID,oBAC3C,CAAC;IAED3E,OAAO,CAAC2C,OAAO,CAAC,CAAC;EACnB;EAEAwC,iBAAiBA,CACfnF,OAAiC,EACjCH,KAA0B,EACpB;IACN,KAAK,CAACsF,iBAAiB,CAACnF,OAAO,EAAEH,KAAK,CAAC;IAEvC,IAAM;MAAE2B,KAAK;MAAEhB,OAAO;MAAEC,KAAK;MAAE2E;IAAY,CAAC,GAAGvF,KAAK;IACpD,IAAM;MAAEwF;IAAmB,CAAC,GAAG7E,OAAO;IAEtC,IAAI,CAAC8E,iBAAiB,CAACtF,OAAO,EAAEH,KAAK,CAAC;IAEtC,IAAIwF,kBAAkB,IAAI,CAAC,EAAE;MAC3B;IACF;IAEA,IAAM;MAAE9F;IAAK,CAAC,GAAGkB,KAAK;IACtB;IACA,IAAIlB,IAAI,CAACyD,MAAM,KAAK,CAAC,EAAE;MACrB,IAAMuC,UAAU,GAAGH,WAAW,KAAKvH,UAAU,CAAC2H,YAAY,CAACC,IAAI;MAE/D,IAAIC,KAAK;MACT,IAAIH,UAAU,EAAE;QACdG,KAAK,GAAGlE,KAAK,CAACmE,qBAAqB;MACrC,CAAC,MAAM;QACLD,KAAK,GAAGlE,KAAK,CAACoE,kBAAkB;MAClC;MACA,IAAI,CAACC,aAAa,CAChB7F,OAAO,EACPH,KAAK,EACL6F,KAAK,EACLH,UAAU,GAAG/D,KAAK,CAACsE,sBAAsB,GAAGtE,KAAK,CAACuE,mBACpD,CAAC;IACH,CAAC,MAAM,IAAIxG,IAAI,CAACyD,MAAM,GAAG,CAAC,EAAE;MAC1B;MACA;MACA;MACE;MACAoC,WAAW,KAAKvH,UAAU,CAAC2H,YAAY,CAACC,IAAI,EAC5C;QACA,IAAI,CAACI,aAAa,CAChB7F,OAAO,EACPH,KAAK,EACL2B,KAAK,CAACmE,qBAAqB,EAC3BnE,KAAK,CAACsE,sBAAsB,EAC5B,KACF,CAAC;MACH;MACA,IAAI,CAACD,aAAa,CAChB7F,OAAO,EACPH,KAAK,EACL2B,KAAK,CAACoE,kBAAkB,EACxBpE,KAAK,CAACuE,mBACR,CAAC;IACH;EACF;EAEAF,aAAaA,CACX7F,OAAiC,EACjCH,KAA0B,EAC1B6F,KAA8C,EAC9CM,SAAiB,EAEX;IAAA,IADNC,QAAQ,GAAAnH,SAAA,CAAAkE,MAAA,QAAAlE,SAAA,QAAAiC,SAAA,GAAAjC,SAAA,MAAG,IAAI;IAEf,IAAM;MAAE0C,KAAK;MAAEhB,OAAO;MAAEC;IAAM,CAAC,GAAGZ,KAAK;IACvC,IAAM;MAAEwF,kBAAkB;MAAEtD;IAAM,CAAC,GAAGvB,OAAO;IAC7C;IACA;IACA;IACA,IAAI0F,MAAM,GAAG,CAAC;IACd,IAAI,CAACD,QAAQ,EAAE;MACbC,MAAM,GAAGF,SAAS;IACpB;IACAhG,OAAO,CAACuC,SAAS,GAAGf,KAAK,CAAC2E,oBAAoB;IAC9CnG,OAAO,CAACwE,QAAQ,CACd,CAAC,EACD/D,KAAK,CAAC2F,oBAAoB,GAAGf,kBAAkB,GAAGW,SAAS,GAAG,CAAC,GAAGE,MAAM,EACxEnE,KAAK,EACLiE,SAAS,GAAG,CACd,CAAC;IAEDhG,OAAO,CAACuC,SAAS,GAAGmD,KAAK;IACzB1F,OAAO,CAACwE,QAAQ,CACd,CAAC,EACD/D,KAAK,CAAC2F,oBAAoB,GAAGf,kBAAkB,GAAGW,SAAS,GAAG,CAAC,GAAGE,MAAM,EACxEnE,KAAK,EACLiE,SACF,CAAC;EACH;EAEAK,wBAAwBA,CACtBrG,OAAiC,EACjCH,KAA0B,EAC1ByG,KAAuB,EACvBC,UAA0C,EAC1CC,KAAa,EACP;IACN,IAAM;MAAEhG,OAAO;MAAEC,KAAK;MAAEgG;IAAY,CAAC,GAAG5G,KAAK;IAC7C,IAAM;MAAEuG;IAAqB,CAAC,GAAG3F,KAAK;IACtC,IAAM;MAAEsB;IAAM,CAAC,GAAGvB,OAAO;IACzB,IAAMkG,MAAM,GAAAC,aAAA,CAAAA,aAAA,KACPJ,UAAU;MACb1C,IAAI,EACF2C,KAAK,KAAKJ,oBAAoB,GAAG,CAAC,IAAIG,UAAU,CAAC1C,IAAI,KAAK9B,KAAK,GAC3DA,KAAK,IAAI0E,WAAW,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;MAAA,EAC/BF,UAAU,CAAC1C;IAAI,EACtB;IACD,KAAK,CAACwC,wBAAwB,CAACrG,OAAO,EAAEH,KAAK,EAAEyG,KAAK,EAAEI,MAAM,EAAEF,KAAK,CAAC;EACtE;EAEAI,uBAAuBA,CACrB5G,OAAiC,EACjCH,KAA0B,EAC1BgH,KAAmB,EACnBH,MAAsC,EAChC;IAAA,IAAAI,qBAAA,EAAAC,eAAA;IACN,KAAK,CAACH,uBAAuB,CAAC5G,OAAO,EAAEH,KAAK,EAAEgH,KAAK,EAAEH,MAAM,CAAC;IAC5D,IAAM;MAAElG,OAAO;MAAEC,KAAK;MAAEe;IAAM,CAAC,GAAG3B,KAAK;IACvC,IAAM;MACJa,YAAY;MACZoC,eAAe;MACfC,WAAW;MACXiE,KAAK;MACL3B,kBAAkB;MAClB4B;IACF,CAAC,GAAGzG,OAAO;IAEX,IAAM;MAAE0G;IAAwB,CAAC,GAAG1F,KAAK;IACzC,IAAM4B,WAAW,GAAGrF,UAAU,CAAC+E,eAAe,EAAE+D,KAAK,EAAE,CAAC,CAAC;IACzD,IAAM1D,OAAO,GAAGpF,UAAU,CAACgF,WAAW,EAAE8D,KAAK,CAAC,GAAGG,KAAK;IACtD,IAAMpG,WAAW,GAAGF,YAAY,CAACG,GAAG,CAACgG,KAAK,CAAC;IAE3C,IAAIjG,WAAW,IAAI,IAAI,EAAE;MACvB;IACF;IAEA,IAAMuG,UAAU,IAAAL,qBAAA,GAAGrG,KAAK,CAAC2G,OAAO,CAACxG,WAAW,CAAC,cAAAkG,qBAAA,uBAA1BA,qBAAA,CAA4BO,IAAI;IAEnD,IAAIF,UAAU,IAAI,IAAI,EAAE;MACtB;IACF;IAEA,IAAM5H,IAAI,GAAG1B,UAAU,CAACyJ,gBAAgB,CAAC7G,KAAK,CAAClB,IAAI,EAAE4H,UAAU,CAAC;IAEhE,IAAI,CAAC5H,IAAI,EAAE;MACT;IACF;IAEA,IAAMiD,IAAI,GAAG,IAAI,CAAClD,WAAW,CAACC,IAAI,CAAC;IACnC,IAAI,CAACiD,IAAI,EAAE;MACT;IACF;IAEA,IAAM+E,IAAI,GAAG9G,KAAK,CAAC+G,mBAAmB,CAAC5G,WAAW,CAAC;IACnD,IAAI2G,IAAI,KAAKxG,SAAS,EAAE;MACtB;IACF;IAEA,IAAM0G,SAAS,IAAAV,eAAA,GAAGE,UAAU,CAACpG,GAAG,CAACb,OAAO,CAAC0H,IAAI,CAAC,cAAAX,eAAA,cAAAA,eAAA,GAAIrJ,kBAAkB;IACpEI,aAAa,CAAC2J,SAAS,CAAC;IACxB,IAAME,SAAS,GAAGJ,IAAI,CAACvE,MAAM,GAAGyE,SAAS;IACzC,IAAMG,SAAS,GAAGZ,KAAK,GAAG7D,OAAO,GAAGwE,SAAS,GAAGT,uBAAuB;IACvE,IAAI;MAAErD;IAAK,CAAC,GAAG6C,MAAM;IACrB7C,IAAI,IAAIqD,uBAAuB;IAC/B,IAAMW,QAAQ,GACZb,KAAK,GAAG7D,OAAO,GAAGC,WAAW,GAAG8D,uBAAuB,GAAG,CAAC;IAE7D,IAAM7D,CAAC,GAAGuE,SAAS,GAAG/D,IAAI,GAAG+D,SAAS,GAAG,CAAC,GAAGE,IAAI,CAACC,GAAG,CAAClE,IAAI,EAAEgE,QAAQ,CAAC;IACrE,IAAMG,OAAO,GACXzI,IAAI,CAACC,SAAS,KAAK3B,UAAU,CAAC4B,aAAa,CAACC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE;IAClE,IAAMwE,CAAC,GAAGmB,kBAAkB,GAAG,GAAG,GAAG2C,OAAO;IAE5ChI,OAAO,CAACsC,IAAI,CAAC,CAAC;IAEdtC,OAAO,CAACwD,SAAS,CAAC,CAAC;IACnBxD,OAAO,CAACiF,IAAI,CAAC9B,OAAO,EAAE,CAAC,EAAEC,WAAW,EAAEiC,kBAAkB,CAAC;IACzDrF,OAAO,CAACkF,IAAI,CAAC,CAAC;IAEdlF,OAAO,CAACuC,SAAS,GAAGf,KAAK,CAACoE,kBAAkB;IAC5C5F,OAAO,CAACyC,SAAS,CAACY,CAAC,EAAEa,CAAC,CAAC;IACvBlE,OAAO,CAAC0C,IAAI,CAACF,IAAI,CAAC;IAElBxC,OAAO,CAAC2C,OAAO,CAAC,CAAC;EACnB;EAEA2C,iBAAiBA,CACftF,OAAiC,EACjCH,KAA0B,EACpB;IACN,IAAM;MAAEoI,gBAAgB;MAAEC,YAAY;MAAEC;IAAgB,CAAC,GAAGtI,KAAK;IAEjE,IAAIoI,gBAAgB,EAAE;MACpB,IAAI,CAACG,yBAAyB,CAACpI,OAAO,EAAEH,KAAK,CAAC;IAChD,CAAC,MAAM,IACJqI,YAAY,IAAI,IAAI,IAAIA,YAAY,CAACG,IAAI,GAAG,CAAC,IAC7CF,eAAe,IAAI,IAAI,IAAIA,eAAe,CAACE,IAAI,GAAG,CAAE,EACrD;MACA,IAAI,CAACC,0BAA0B,CAACtI,OAAO,EAAEH,KAAK,CAAC;IACjD;EACF;EAEAuI,yBAAyBA,CACvBpI,OAAiC,EACjCH,KAA0B,EACpB;IACN,IAAM;MAAEW,OAAO;MAAEC,KAAK;MAAEe,KAAK;MAAE0G,YAAY;MAAEC;IAAgB,CAAC,GAAGtI,KAAK;IACtE,IAAM;MAAE0I;IAAgB,CAAC,GAAG/G,KAAK;IAEjC,IAAI+G,eAAe,IAAI,CAAC,EAAE;MACxB;IACF;IAEA,IAAM;MACJvB,KAAK;MACLpC,KAAK;MACLf,IAAI;MACJnD,YAAY;MACZ8H,cAAc;MACd1F,eAAe;MACfC;IACF,CAAC,GAAGvC,OAAO;IAEX,IAAM6E,kBAAkB,GAAGT,KAAK,GAAG2D,eAAe;IAElDvI,OAAO,CAACsC,IAAI,CAAC,CAAC;IAEdtC,OAAO,CAAC0H,IAAI,GAAGlG,KAAK,CAACkG,IAAI;IACzB1H,OAAO,CAACyI,SAAS,GAAG,MAAM;IAE1B,IACGP,YAAY,IAAI,IAAI,IAAIA,YAAY,CAACG,IAAI,GAAG,CAAC,IAC7CF,eAAe,IAAI,IAAI,IAAIA,eAAe,CAACE,IAAI,GAAG,CAAE,EACrD;MACA;MACArI,OAAO,CAACuC,SAAS,GAAGf,KAAK,CAACkH,sCAAsC;IAClE,CAAC,MAAM;MACL;MACA1I,OAAO,CAACuC,SAAS,GAAGf,KAAK,CAACmH,gCAAgC;IAC5D;;IAEA;IACA3I,OAAO,CAACwE,QAAQ,CAACwC,KAAK,EAAE3B,kBAAkB,EAAExB,IAAI,EAAE0E,eAAe,GAAG,CAAC,CAAC;;IAEtE;IACAvI,OAAO,CAACuC,SAAS,GAAGf,KAAK,CAAC2E,oBAAoB;IAE9CnG,OAAO,CAACwE,QAAQ,CAACwC,KAAK,EAAE3B,kBAAkB,GAAGkD,eAAe,GAAG,CAAC,EAAE1E,IAAI,EAAE,CAAC,CAAC;;IAE1E;IACA,IAAM+E,EAAE,GAAGvD,kBAAkB;IAC7BrF,OAAO,CAACsD,WAAW,GAAG9B,KAAK,CAACqH,uBAAuB;IACnD7I,OAAO,CAACwD,SAAS,CAAC,CAAC;IAEnB,KAAK,IAAIsF,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGN,cAAc,CAACxF,MAAM,EAAE8F,CAAC,IAAI,CAAC,EAAE;MACjD,IAAMxI,MAAM,GAAGkI,cAAc,CAACM,CAAC,CAAC;MAChC,IAAMlI,WAAW,GAAG7C,UAAU,CAAC2C,YAAY,EAAEJ,MAAM,CAAC;MACpD,IAAM6C,OAAO,GAAGpF,UAAU,CAACgF,WAAW,EAAEzC,MAAM,CAAC;MAC/C,IAAM8C,WAAW,GAAGrF,UAAU,CAAC+E,eAAe,EAAExC,MAAM,CAAC;MACvD,IAAIG,KAAK,CAACsI,YAAY,CAACnI,WAAW,CAAC,IAAIwC,WAAW,GAAG,CAAC,EAAE;QACtD,IAAM4F,EAAE,GAAGhC,KAAK,IAAI7D,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAI,CAAC,CAAC;QACjCnD,OAAO,CAACiF,IAAI,CAAC+D,EAAE,GAAG,GAAG,EAAEJ,EAAE,GAAG,GAAG,EAAExF,WAAW,EAAEmF,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC;MACtE;IACF;;IACAvI,OAAO,CAAC2D,MAAM,CAAC,CAAC;IAEhB,KAAK,IAAImF,EAAC,GAAG,CAAC,EAAEA,EAAC,GAAGN,cAAc,CAACxF,MAAM,EAAE8F,EAAC,IAAI,CAAC,EAAE;MACjD,IAAMxI,OAAM,GAAGkI,cAAc,CAACM,EAAC,CAAC;MAChC,IAAM1F,YAAW,GAAGrF,UAAU,CAAC+E,eAAe,EAAExC,OAAM,CAAC;MACvD,IAAM6C,QAAO,GAAGpF,UAAU,CAACgF,WAAW,EAAEzC,OAAM,CAAC;MAC/C,IAAM+C,CAAC,GAAGF,QAAO,GAAG6D,KAAK;MACzB,IAAI,CAACiC,wBAAwB,CAACjJ,OAAO,EAAEH,KAAK,EAAES,OAAM,EAAE+C,CAAC,EAAED,YAAW,CAAC;IACvE;IAEApD,OAAO,CAAC2C,OAAO,CAAC,CAAC;EACnB;EAEAsG,wBAAwBA,CACtBjJ,OAAiC,EACjCH,KAA0B,EAC1BS,MAAoB,EACpB6C,OAAmB,EACnBC,WAAmB,EACb;IACN,IAAIA,WAAW,IAAI,CAAC,EAAE;MACpB;IACF;IAEA,IAAM;MAAE5C,OAAO;MAAEgB,KAAK;MAAE0G,YAAY;MAAEC;IAAgB,CAAC,GAAGtI,KAAK;IAC/D,IAAM;MAAEa,YAAY;MAAEkE;IAAM,CAAC,GAAGpE,OAAO;IACvC,IAAM;MACJ+H,eAAe;MACfW,0CAA0C;MAC1CC,mBAAmB;MACnBC,0BAA0B;MAC1BC;IACF,CAAC,GAAG7H,KAAK;IACT,IAAM6D,kBAAkB,GAAGT,KAAK,GAAG2D,eAAe;IAClD,IAAM3H,WAAW,GAAGF,YAAY,CAACG,GAAG,CAACP,MAAM,CAAC;IAC5C,IAAIM,WAAW,KAAKG,SAAS,EAAE;IAC/B,IAAM7B,WAAW,GAAGgJ,YAAY,CAACrH,GAAG,CAACD,WAAW,CAAC;IACjD,IAAM3B,cAAc,GAAGkJ,eAAe,CAACtH,GAAG,CAACD,WAAW,CAAC;IACvD,IAAI1B,WAAW,IAAI,IAAI,IAAID,cAAc,IAAI,IAAI,EAAE;MACjD;IACF;IAEA,IAAIsI,IAAI,GAAG,IAAI;IACf,IAAIrI,WAAW,IAAI,IAAI,EAAE;MACvB,IAAM;QAAEqI,IAAI,EAAE+B;MAAW,CAAC,GAAGpK,WAAW;MACxCqI,IAAI,GAAG+B,UAAU;MACjB,IAAI,CAAC/B,IAAI,EAAE;QACTA,IAAI,GAAG1J,UAAU,CAAC0L,aAAa,CAACrK,WAAW,CAACE,MAAM,CAAC;MACrD;MAEA,IAAImI,IAAI,IAAI,IAAI,EAAE;QAChB,IAAM;UAAEN;QAAW,CAAC,GAAGzG,OAAO;QAC9B,IAAIiH,SAAS,GAAGR,UAAU,CAACpG,GAAG,CAACb,OAAO,CAAC0H,IAAI,CAAC;QAC5C,IAAID,SAAS,IAAI,IAAI,IAAIA,SAAS,KAAK,CAAC,EAAE;UACxCA,SAAS,GAAGzH,OAAO,CAACwJ,WAAW,CAAC,GAAG,CAAC,CAACzH,KAAK;UAC1C,IAAI,CAAC0F,SAAS,EAAE;YACdA,SAAS,GAAG,EAAE;UAChB;QACF;QAEA,IAAMgC,SAAS,GACb,CAACrG,WAAW,GAAGgG,0BAA0B,GAAG,CAAC,IAAI3B,SAAS;QAC5D,IAAIgC,SAAS,IAAI,CAAC,EAAE;UAClBlC,IAAI,GAAG,EAAE;QACX,CAAC,MAAM,IAAIA,IAAI,CAACvE,MAAM,GAAGyG,SAAS,EAAE;UAClClC,IAAI,MAAAvC,MAAA,CAAMuC,IAAI,CAACmC,SAAS,CAAC,CAAC,EAAED,SAAS,GAAG,CAAC,CAAC,WAAG;QAC/C;MACF;IACF;IAEAzJ,OAAO,CAACsC,IAAI,CAAC,CAAC;IAEd,IAAMtD,aAAa,GAAGJ,gBAAgB,CAACI,aAAa,CAClDC,cAAc,EACdC,WACF,CAAC;IACD,IAAIF,aAAa,IAAIkK,0CAA0C,IAAI,IAAI,EAAE;MACvE;MACAlJ,OAAO,CAACuC,SAAS,GAAG2G,0CAA0C;MAC9DlJ,OAAO,CAACwE,QAAQ,CACdrB,OAAO,GAAG,CAAC;MAAE;MACbkC,kBAAkB,GAAG,CAAC;MAAE;MACxBjC,WAAW,GAAG,CAAC;MAAE;MACjBmF,eAAe,GAAG,CAAC,CAAC;MACtB,CAAC;IACH,CAAC,MAAM,IAAIY,mBAAmB,IAAI,IAAI,EAAE;MACtC;MACAnJ,OAAO,CAACuC,SAAS,GAAG4G,mBAAmB;MACvCnJ,OAAO,CAACuD,SAAS,GAAG,CAAC;MACrBvD,OAAO,CAACsD,WAAW,GAAG6F,mBAAmB;MACzC;MACA;MACA,IAAMQ,QAAQ,GAAGxG,OAAO,GAAG,CAAC,CAAC,CAAC;MAC9B,IAAMyG,OAAO,GAAGvE,kBAAkB,GAAG,CAAC,CAAC,CAAC;MACxC,IAAMwE,SAAS,GAAGzG,WAAW,GAAG,CAAC,CAAC,CAAC;MACnC,IAAM0G,UAAU,GAAGvB,eAAe,GAAG,CAAC,CAAC,CAAC;MACxCvI,OAAO,CAAC+J,UAAU,CAACJ,QAAQ,EAAEC,OAAO,EAAEC,SAAS,EAAEC,UAAU,CAAC;IAC9D;IAEA,IAAIvC,IAAI,IAAI,IAAI,IAAIA,IAAI,KAAK,EAAE,EAAE;MAC/B,IAAMyC,KAAK,GAAG7G,OAAO,GAAGiG,0BAA0B;MAClD,IAAMa,KAAK,GAAG5E,kBAAkB,GAAGkD,eAAe,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;MAC9DvI,OAAO,CAACuC,SAAS,GAAG8G,WAAW;MAC/BrJ,OAAO,CAACkK,QAAQ,CAAC3C,IAAI,EAAEyC,KAAK,EAAEC,KAAK,CAAC;IACtC;IAEAjK,OAAO,CAAC2C,OAAO,CAAC,CAAC;EACnB;EAEA2F,0BAA0BA,CACxBtI,OAAiC,EACjCH,KAA0B,EACpB;IACN,IAAM;MAAEW,OAAO;MAAEgB;IAAM,CAAC,GAAG3B,KAAK;IAChC,IAAM;MAAEsK,oBAAoB;MAAEC;IAAyB,CAAC,GAAG5I,KAAK;IAEhE,IAAI4I,wBAAwB,IAAI,CAAC,EAAE;MACjC;IACF;IAEA,IAAM;MAAEpD,KAAK;MAAEpC,KAAK;MAAEf,IAAI;MAAE2E,cAAc;MAAE1F,eAAe;MAAEC;IAAY,CAAC,GACxEvC,OAAO;IACT,IAAM6E,kBAAkB,GAAGT,KAAK,GAAGwF,wBAAwB;IAE3DpK,OAAO,CAACsC,IAAI,CAAC,CAAC;;IAEd;IACAtC,OAAO,CAACuC,SAAS,GAAG4H,oBAAoB;IACxCnK,OAAO,CAACwE,QAAQ,CAACwC,KAAK,EAAE3B,kBAAkB,EAAExB,IAAI,EAAEuG,wBAAwB,CAAC;IAE3E,KAAK,IAAItB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGN,cAAc,CAACxF,MAAM,EAAE8F,CAAC,IAAI,CAAC,EAAE;MACjD,IAAMxI,MAAM,GAAGkI,cAAc,CAACM,CAAC,CAAC;MAChC,IAAM1F,WAAW,GAAGN,eAAe,CAACjC,GAAG,CAACP,MAAM,CAAC;MAC/C,IAAM6C,OAAO,GAAGJ,WAAW,CAAClC,GAAG,CAACP,MAAM,CAAC;MACvC,IAAI6C,OAAO,IAAI,IAAI,IAAIC,WAAW,IAAI,IAAI,EAAE;QAC1C,IAAMC,CAAC,GAAGF,OAAO,GAAG6D,KAAK;QACzB;QACA,IAAI,CAACqD,yBAAyB,CAACrK,OAAO,EAAEH,KAAK,EAAES,MAAM,EAAE+C,CAAC,EAAED,WAAW,CAAC;MACxE;IACF;IAEApD,OAAO,CAAC2C,OAAO,CAAC,CAAC;EACnB;EAEA0H,yBAAyBA,CACvBrK,OAAiC,EACjCH,KAA0B,EAC1BS,MAAoB,EACpB6C,OAAmB,EACnBC,WAAmB,EACb;IACN,IAAIA,WAAW,IAAI,CAAC,EAAE;MACpB;IACF;IAEA,IAAM;MAAE5C,OAAO;MAAEgB,KAAK;MAAE0G,YAAY;MAAEC;IAAgB,CAAC,GAAGtI,KAAK;IAC/D,IAAM;MAAEa,YAAY;MAAEkE;IAAM,CAAC,GAAGpE,OAAO;IACvC,IAAMI,WAAW,GAAGF,YAAY,CAACG,GAAG,CAACP,MAAM,CAAC;IAE5C,IAAIM,WAAW,KAAKG,SAAS,EAAE;IAC/B,IAAM7B,WAAW,GAAGgJ,YAAY,CAACrH,GAAG,CAACD,WAAW,CAAC;IACjD,IAAM3B,cAAc,GAAGkJ,eAAe,CAACtH,GAAG,CAACD,WAAW,CAAC;IAEvD,IAAM;MACJwJ,wBAAwB;MACxBE,oBAAoB;MACpBC,8BAA8B;MAC9BpB;IACF,CAAC,GAAG3H,KAAK;IAETxB,OAAO,CAACsC,IAAI,CAAC,CAAC;IAEd,IAAMtD,aAAa,GAAGJ,gBAAgB,CAACI,aAAa,CAClDC,cAAc,EACdC,WACF,CAAC;IAED,IACEqL,8BAA8B,IAAI,IAAI,IACtCrL,WAAW,IAAI,IAAI,IACnBD,cAAc,IAAI,IAAI,EACtB;MACAe,OAAO,CAACuC,SAAS,GAAGgI,8BAA8B;IACpD,CAAC,MAAM,IAAID,oBAAoB,IAAI,IAAI,IAAItL,aAAa,EAAE;MACxDgB,OAAO,CAACuC,SAAS,GAAG+H,oBAAoB;IAC1C,CAAC,MAAM,IAAInB,mBAAmB,IAAI,IAAI,EAAE;MACtCnJ,OAAO,CAACuC,SAAS,GAAG4G,mBAAmB;IACzC;IAEA,IAAM9F,CAAC,GAAGF,OAAO,GAAG,CAAC,CAAC,CAAC;IACvB,IAAMe,CAAC,GAAGU,KAAK,GAAGwF,wBAAwB;IAC1C,IAAMP,SAAS,GAAGzG,WAAW,GAAG,CAAC,CAAC,CAAC;IACnC,IAAM0G,UAAU,GAAGM,wBAAwB,GAAG,CAAC,CAAC,CAAC;IACjDpK,OAAO,CAACwE,QAAQ,CAACnB,CAAC,EAAEa,CAAC,EAAE2F,SAAS,EAAEC,UAAU,CAAC;IAE7C9J,OAAO,CAAC2C,OAAO,CAAC,CAAC;EACnB;EAEA6H,cAAcA,CACZxK,OAAiC,EACjCH,KAA0B,EACpB;IACN,IAAM;MAAEW,OAAO;MAAEC,KAAK;MAAEa,MAAM;MAAEC,MAAM;MAAEC;IAAM,CAAC,GAAG3B,KAAK;IACvD,IAAM;MACJ+E,KAAK;MACLoC,KAAK;MACLnD,IAAI;MACJlD,SAAS;MACT8J,iBAAiB;MACjBC,oBAAoB;MACpBC,YAAY;MACZC,cAAc;MACd3I,MAAM;MACN4I,mBAAmB;MACnBC,gBAAgB;MAChBC,aAAa;MACbnH,QAAQ;MACR7B;IACF,CAAC,GAAGvB,OAAO;IACX;IACA,IAAIoK,cAAc,IAAI,CAAC,IAAID,YAAY,CAAC3H,MAAM,KAAK,CAAC,EAAE;MACpD;IACF;IAEA,IAAM;MACJb,qBAAqB;MACrB6I,oBAAoB;MACpBC,2BAA2B;MAC3B5B,WAAW;MACX6B;IACF,CAAC,GAAG1J,KAAK;IAETxB,OAAO,CAACyC,SAAS,CAACuE,KAAK,EAAEpC,KAAK,CAAC;IAE/B5E,OAAO,CAACwD,SAAS,CAAC,CAAC;IACnB,IAAMH,CAAC,GAAGyE,IAAI,CAACC,GAAG,CAAClE,IAAI,EAAE9B,KAAK,GAAG6I,cAAc,GAAGE,gBAAgB,GAAG9D,KAAK,CAAC;IAC3EhH,OAAO,CAACuC,SAAS,GAAG0I,2BAA2B;IAC/C,IAAIR,iBAAiB,GAAG,CAAC,EAAE;MACzBzK,OAAO,CAACiF,IAAI,CAAC5B,CAAC,EAAE,CAAC,EAAEuH,cAAc,EAAEH,iBAAiB,CAAC;IACvD;IACA,IAAIC,oBAAoB,GAAG,CAAC,EAAE;MAC5B1K,OAAO,CAACiF,IAAI,CACV5B,CAAC,EACDpB,MAAM,GAAG2C,KAAK,GAAGiG,mBAAmB,GAAGH,oBAAoB,EAC3DE,cAAc,EACdF,oBACF,CAAC;IACH;IACA1K,OAAO,CAAC0C,IAAI,CAAC,CAAC;IAEd,IAAMyI,QAAQ,GACZ7J,MAAM,IAAI,IAAI,IACdC,MAAM,IAAI,IAAI,IACdD,MAAM,IAAI0F,KAAK,IACf1F,MAAM,IAAIuC,IAAI,GAAG+G,cAAc,GAC3BhN,SAAS,CAACwN,SAAS,CAAC7J,MAAM,EAAEf,OAAO,CAAC,GACpC,IAAI;IACV,IACE0K,uBAAuB,IAAI,IAAI,IAC/BC,QAAQ,KAAK,IAAI,IACjBR,YAAY,CAACU,QAAQ,CAACF,QAAQ,CAAC,EAC/B;MACAnL,OAAO,CAACuC,SAAS,GAAG2I,uBAAuB;MAC3C,IAAMhH,CAAC,GAAGN,QAAQ,CAAC/C,GAAG,CAACsK,QAAQ,CAAC;MAChC,IAAMG,SAAS,GAAGP,aAAa,CAAClK,GAAG,CAACsK,QAAQ,CAAC;MAC7CrN,aAAa,CAACoG,CAAC,CAAC;MAChBpG,aAAa,CAACwN,SAAS,CAAC;MACxBtL,OAAO,CAACwE,QAAQ,CAACnB,CAAC,EAAEa,CAAC,EAAE0G,cAAc,EAAEU,SAAS,CAAC;IACnD;IAEAtL,OAAO,CAACwD,SAAS,CAAC,CAAC;IACnB,IAAIwH,oBAAoB,IAAI,IAAI,EAAE;MAChChL,OAAO,CAACsD,WAAW,GAAG0H,oBAAoB;IAC5C;IACA,IAAIP,iBAAiB,GAAG,CAAC,EAAE;MACzBzK,OAAO,CAACyD,MAAM,CAACJ,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC;MAC5BrD,OAAO,CAAC0D,MAAM,CAACL,CAAC,GAAG,GAAG,EAAEoH,iBAAiB,GAAG,GAAG,CAAC;IAClD;IACA,IAAIC,oBAAoB,GAAG,CAAC,EAAE;MAC5B,IAAMxG,EAAC,GAAGjC,MAAM,GAAG2C,KAAK,GAAGiG,mBAAmB,GAAGH,oBAAoB;MACrE1K,OAAO,CAACyD,MAAM,CAACJ,CAAC,GAAG,GAAG,EAAEa,EAAC,GAAG,GAAG,CAAC;MAChClE,OAAO,CAAC0D,MAAM,CAACL,CAAC,GAAG,GAAG,EAAEa,EAAC,GAAGwG,oBAAoB,GAAG,GAAG,CAAC;IACzD;IACA1K,OAAO,CAAC2D,MAAM,CAAC,CAAC;IAEhB3D,OAAO,CAACuC,SAAS,GAAG8G,WAAW;IAC/BrJ,OAAO,CAACyI,SAAS,GAAG,MAAM;IAE1B,IAAMuB,KAAK,GAAG3G,CAAC,GAAGlB,qBAAqB;IACvC,KAAK,IAAI2G,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG6B,YAAY,CAAC3H,MAAM,EAAE8F,CAAC,IAAI,CAAC,EAAE;MAC/C,IAAMvI,GAAG,GAAGoK,YAAY,CAAC7B,CAAC,CAAC;MAC3B,IAAMwC,UAAS,GAAGP,aAAa,CAAClK,GAAG,CAACN,GAAG,CAAC;MACxC,IAAMgL,IAAI,GAAG3H,QAAQ,CAAC/C,GAAG,CAACN,GAAG,CAAC;MAC9B,IAAMO,QAAQ,GAAGH,SAAS,CAACE,GAAG,CAACN,GAAG,CAAC;MACnC,IAAIgL,IAAI,IAAI,IAAI,IAAID,UAAS,IAAI,IAAI,IAAIxK,QAAQ,IAAI,IAAI,EAAE;QACzD,IAAMmJ,KAAK,GAAGsB,IAAI,GAAGD,UAAS,GAAG,GAAG;QACpCtL,OAAO,CAACkK,QAAQ,CAACzJ,KAAK,CAAC+K,gBAAgB,CAAC1K,QAAQ,CAAC,EAAEkJ,KAAK,EAAEC,KAAK,CAAC;MAClE;IACF;IAEAjK,OAAO,CAACyC,SAAS,CAAC,CAACuE,KAAK,EAAE,CAACpC,KAAK,CAAC;EACnC;EAEA6G,uBAAuBA,CAAAC,KAAA,EAYrBlF,KAAoB,EAMpB;IAAA,IAjBA;MACElF,MAAM;MACNC,MAAM;MACNf,OAAO;MACPgB;IAMF,CAAC,GAAAkK,KAAA;IAQD,IAAMC,aAAa,GAAG;MAAEhK,IAAI,EAAE,IAAI;MAAEE,GAAG,EAAE,IAAI;MAAEE,KAAK,EAAE,IAAI;MAAEE,MAAM,EAAE;IAAK,CAAC;IAC1E,IAAIX,MAAM,IAAI,IAAI,IAAIC,MAAM,IAAI,IAAI,IAAIiF,KAAK,IAAI,IAAI,IAAI,CAAChG,OAAO,EAAE;MACjE,OAAOmL,aAAa;IACtB;IACA,IAAM;MAAEL,SAAS;MAAE3J,IAAI;MAAEE;IAAI,CAAC,GAAGjE,SAAS,CAACgO,iBAAiB,CAC1DtK,MAAM,EACNC,MAAM,EACNf,OACF,CAAC;IAED1C,aAAa,CAAC6D,IAAI,CAAC;IACnB7D,aAAa,CAACwN,SAAS,CAAC;IACxBxN,aAAa,CAAC+D,GAAG,CAAC;IAClB,IAAM;MAAEM;IAAsB,CAAC,GAAGX,KAAK;IAEvC,IAAMO,KAAK,GAAGpD,gBAAgB,GAAG,CAAC,GAAGwD,qBAAqB;IAE1D,IAAMP,UAAU,GAAGkG,IAAI,CAAC+D,GAAG,CAAClK,IAAI,GAAGhD,gBAAgB,GAAG6H,KAAK,EAAEhG,OAAO,CAACwG,KAAK,CAAC;IAC3E,IAAMlF,SAAS,GAAGtB,OAAO,CAACoE,KAAK,GAAG/C,GAAG;IAErC,OAAO;MACLF,IAAI,EAAEC,UAAU;MAChBC,GAAG,EAAEC,SAAS;MACdC,KAAK;MACLE,MAAM,EAAEqJ;IACV,CAAC;EACH;AACF;AAEA,eAAe1M,gBAAgB"}
1
+ {"version":3,"file":"IrisGridRenderer.js","names":["DEFAULT_FONT_WIDTH","GridRenderer","GridUtils","TableUtils","assertNotNull","getOrThrow","IrisGridTextCellRenderer","IrisGridDataBarCellRenderer","getIcon","ICON_NAMES","Object","freeze","SORT_UP","SORT_DOWN","CARET_DOWN","CARET_RIGHT","CELL_OVERFLOW","EXPAND_ICON_SIZE","IrisGridRenderer","constructor","arguments","_defineProperty","isFilterValid","advancedFilter","quickFilter","isAdvancedFilterValid","filter","isQuickFilterValid","getSortIcon","sort","direction","sortDirection","ascending","descending","drawCanvas","state","drawScrim","drawGrid","context","drawCellOverflowButton","drawGridLines","drawGroupedColumnLine","drawPendingRowLine","drawCellContent","column","row","metrics","model","modelColumns","modelRows","modelColumn","get","modelRow","undefined","renderType","renderTypeForCell","cellRenderer","getCellRenderer","getCellOverflowButtonPosition","_ref","mouseX","mouseY","theme","textCellRenderer","shouldRenderOverflowButton","left","buttonLeft","top","buttonTop","width","buttonWidth","height","buttonHeight","cellHorizontalPadding","overflowButtonColor","overflowButtonHoverColor","save","fillStyle","icon","translate","fill","restore","groupedColumns","maxY","allColumnWidths","allColumnXs","length","groupedColumnDividerColor","lastVisibleGroupColumnIndex","columnX","columnWidth","x","strokeStyle","lineWidth","beginPath","moveTo","lineTo","stroke","allRowYs","maxX","pendingRowCount","firstPendingRow","rowCount","floatingBottomRowCount","y","setLineDash","pendingTextColor","drawMouseColumnHover","hoverSelectColumn","linkerColumnHoverBackgroundColor","fillRect","drawMouseRowHover","isSelectingColumn","loadingScrimProgress","gridY","scrimBlurSize","scrimColor","globalCompositeOperation","concat","rect","clip","drawColumnHeaders","reverseType","columnHeaderHeight","drawFilterHeaders","hasReverse","REVERSE_TYPE","NONE","color","headerReverseBarColor","headerSortBarColor","drawHeaderBar","reverseHeaderBarHeight","sortHeaderBarHeight","barHeight","interior","offset","headerBarCasingColor","columnHeaderMaxDepth","drawColumnHeadersAtDepth","range","boundsProp","depth","isMenuShown","bounds","_objectSpread","drawColumnHeaderAtIndex","index","_model$columns$modelC","_fontWidths$get","gridX","fontWidths","headerHorizontalPadding","columnName","columns","name","getSortForColumn","text","textForColumnHeader","fontWidth","font","textWidth","textRight","defaultX","Math","min","yOffset","isFilterBarShown","quickFilters","advancedFilters","drawExpandedFilterHeaders","size","drawCollapsedFilterHeaders","filterBarHeight","visibleColumns","textAlign","filterBarExpandedActiveBackgroundColor","filterBarExpandedBackgroundColor","y1","filterBarSeparatorColor","i","isFilterable","x1","drawExpandedFilterHeader","filterBarExpandedActiveCellBackgroundColor","filterBarErrorColor","filterBarHorizontalPadding","headerColor","filterText","getFilterText","measureText","maxLength","substring","rectLeft","rectTop","rectWidth","rectHeight","strokeRect","textX","textY","fillText","headerSeparatorColor","filterBarCollapsedHeight","drawCollapsedFilterHeader","filterBarActiveColor","filterBarActiveBackgroundColor","drawRowFooters","floatingTopHeight","floatingBottomHeight","floatingRows","rowFooterWidth","horizontalBarHeight","verticalBarWidth","allRowHeights","floatingGridRowColor","floatingRowBackgroundColors","rowHoverBackgroundColor","mouseRow","getRowAtY","includes","rowHeight","rowY","textForRowFooter","getExpandButtonPosition","_ref2","NULL_POSITION","getCellInfoFromXY","max"],"sources":["../src/IrisGridRenderer.ts"],"sourcesContent":["/* eslint react/destructuring-assignment: \"off\" */\n/* eslint class-methods-use-this: \"off\" */\n/* eslint no-param-reassign: \"off\" */\nimport {\n BoundedAxisRange,\n Coordinate,\n DEFAULT_FONT_WIDTH,\n GridMetrics,\n GridRangeIndex,\n GridRenderer,\n GridRenderState,\n GridThemeType,\n GridUtils,\n VisibleIndex,\n} from '@deephaven/grid';\nimport type { Sort } from '@deephaven/jsapi-types';\nimport { TableUtils, ReverseType } from '@deephaven/jsapi-utils';\nimport { assertNotNull, getOrThrow } from '@deephaven/utils';\nimport {\n ReadonlyAdvancedFilterMap,\n ReadonlyQuickFilterMap,\n AdvancedFilter,\n QuickFilter,\n} from './CommonTypes';\nimport { IrisGridThemeType } from './IrisGridTheme';\nimport IrisGridModel from './IrisGridModel';\nimport IrisGridTextCellRenderer from './IrisGridTextCellRenderer';\nimport IrisGridDataBarCellRenderer from './IrisGridDataBarCellRenderer';\nimport { getIcon } from './IrisGridIcons';\n\nconst ICON_NAMES = Object.freeze({\n SORT_UP: 'sortUp',\n SORT_DOWN: 'sortDown',\n CARET_DOWN: 'caretDown',\n CARET_RIGHT: 'caretRight',\n CELL_OVERFLOW: 'cellOverflow',\n});\n\nconst EXPAND_ICON_SIZE = 10;\n\nexport type IrisGridRenderState = GridRenderState & {\n model: IrisGridModel;\n theme: IrisGridThemeType;\n hoverSelectColumn: GridRangeIndex;\n isSelectingColumn: boolean;\n loadingScrimProgress: number;\n reverseType: ReverseType;\n isFilterBarShown: boolean;\n advancedFilters: ReadonlyAdvancedFilterMap;\n quickFilters: ReadonlyQuickFilterMap;\n isMenuShown: boolean;\n};\n/**\n * Handles rendering some of the Iris specific features, such as sorting icons, sort bar display\n * */\nexport class IrisGridRenderer extends GridRenderer {\n static isFilterValid(\n advancedFilter: AdvancedFilter | undefined | null,\n quickFilter: QuickFilter | undefined | null\n ): boolean {\n const isAdvancedFilterValid =\n advancedFilter == null || advancedFilter.filter != null;\n const isQuickFilterValid =\n quickFilter == null || quickFilter.filter != null;\n return isAdvancedFilterValid && isQuickFilterValid;\n }\n\n protected textCellRenderer = new IrisGridTextCellRenderer();\n\n protected dataBarCellRenderer = new IrisGridDataBarCellRenderer();\n\n getSortIcon(sort: Sort | null): Path2D | null {\n if (!sort) {\n return null;\n }\n if (sort.direction === TableUtils.sortDirection.ascending) {\n return getIcon(ICON_NAMES.SORT_UP);\n }\n if (sort.direction === TableUtils.sortDirection.descending) {\n return getIcon(ICON_NAMES.SORT_DOWN);\n }\n return null;\n }\n\n drawCanvas(state: IrisGridRenderState): void {\n super.drawCanvas(state);\n\n this.drawScrim(state);\n }\n\n drawGrid(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n super.drawGrid(context, state);\n this.drawCellOverflowButton(state);\n }\n\n drawGridLines(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n super.drawGridLines(context, state);\n\n this.drawGroupedColumnLine(context, state);\n\n this.drawPendingRowLine(context, state);\n }\n\n drawCellContent(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n column: VisibleIndex,\n row: VisibleIndex\n ): void {\n const { metrics, model } = state;\n const { modelColumns, modelRows } = metrics;\n const modelColumn = modelColumns.get(column);\n const modelRow = getOrThrow(modelRows, row);\n if (modelColumn === undefined) {\n return;\n }\n\n const renderType = model.renderTypeForCell(modelColumn, modelRow);\n const cellRenderer = this.getCellRenderer(renderType);\n cellRenderer.drawCellContent(context, state, column, row);\n }\n\n getCellOverflowButtonPosition({\n mouseX,\n mouseY,\n metrics,\n theme,\n }: {\n mouseX: Coordinate | null;\n mouseY: Coordinate | null;\n metrics: GridMetrics | undefined;\n theme: GridThemeType;\n }): {\n left: Coordinate | null;\n top: Coordinate | null;\n width: number | null;\n height: number | null;\n } {\n return this.textCellRenderer.getCellOverflowButtonPosition(\n mouseX,\n mouseY,\n metrics,\n theme\n );\n }\n\n shouldRenderOverflowButton(state: IrisGridRenderState): boolean {\n return this.textCellRenderer.shouldRenderOverflowButton(state);\n }\n\n drawCellOverflowButton(state: IrisGridRenderState): void {\n const { context, mouseX, mouseY, theme } = state;\n if (mouseX == null || mouseY == null) return;\n\n if (!this.shouldRenderOverflowButton(state)) {\n return;\n }\n\n const {\n left: buttonLeft,\n top: buttonTop,\n width: buttonWidth,\n height: buttonHeight,\n } = this.getCellOverflowButtonPosition(state);\n\n const {\n cellHorizontalPadding,\n overflowButtonColor,\n overflowButtonHoverColor,\n } = theme;\n\n context.save();\n if (\n overflowButtonHoverColor != null &&\n buttonLeft != null &&\n buttonWidth != null &&\n buttonTop != null &&\n buttonHeight != null &&\n mouseX >= buttonLeft &&\n mouseX <= buttonLeft + buttonWidth &&\n mouseY >= buttonTop &&\n mouseY <= buttonTop + buttonHeight\n ) {\n context.fillStyle = overflowButtonHoverColor;\n } else if (overflowButtonColor != null) {\n context.fillStyle = overflowButtonColor;\n }\n const icon = getIcon(ICON_NAMES.CELL_OVERFLOW);\n if (buttonLeft != null && buttonTop != null) {\n context.translate(buttonLeft + cellHorizontalPadding, buttonTop + 2);\n }\n context.fill(icon);\n\n context.restore();\n }\n\n drawGroupedColumnLine(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n const { metrics, model, theme } = state;\n const { groupedColumns } = model;\n const { maxY, allColumnWidths, allColumnXs } = metrics;\n if (\n groupedColumns.length === 0 ||\n theme.groupedColumnDividerColor == null\n ) {\n return;\n }\n\n // This assumes that the engine puts the grouped columns at the start of the\n // model, so model and visible index match for grouped columns. If we ever\n // add freeze support for tree tables or allow moving the grouped columns,\n // this assumption may no longer hold true. If such a change occurs, we'll\n // need to revisit this since a single vertical divider may no longer make\n // sense.\n const lastVisibleGroupColumnIndex = groupedColumns.length - 1;\n\n const columnX = allColumnXs.get(lastVisibleGroupColumnIndex);\n const columnWidth = allColumnWidths.get(lastVisibleGroupColumnIndex);\n if (columnX == null || columnWidth == null) {\n return;\n }\n\n const x = columnX + columnWidth + 0.5;\n\n context.strokeStyle = theme.groupedColumnDividerColor;\n context.lineWidth = 1;\n context.beginPath();\n context.moveTo(x, 0);\n context.lineTo(x, maxY);\n context.stroke();\n }\n\n drawPendingRowLine(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n const { metrics, model, theme } = state;\n const { allRowYs, maxX } = metrics;\n const { pendingRowCount } = model;\n if (pendingRowCount <= 0) {\n return;\n }\n\n const firstPendingRow =\n model.rowCount - model.pendingRowCount - model.floatingBottomRowCount;\n let y = allRowYs.get(firstPendingRow);\n if (y == null) {\n return;\n }\n\n y -= 0.5;\n context.save();\n context.setLineDash([4, 2]);\n context.strokeStyle = theme.pendingTextColor;\n\n context.lineWidth = 1;\n context.beginPath();\n context.moveTo(0, y);\n context.lineTo(maxX, y);\n context.stroke();\n context.restore();\n }\n\n drawMouseColumnHover(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n const { theme, metrics, hoverSelectColumn } = state;\n if (\n hoverSelectColumn == null ||\n theme.linkerColumnHoverBackgroundColor == null\n ) {\n return;\n }\n\n const { allColumnWidths, allColumnXs, maxY } = metrics;\n\n const x = getOrThrow(allColumnXs, hoverSelectColumn);\n const columnWidth = getOrThrow(allColumnWidths, hoverSelectColumn);\n\n context.fillStyle = theme.linkerColumnHoverBackgroundColor;\n context.fillRect(x, 0, columnWidth, maxY);\n }\n\n drawMouseRowHover(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n const { isSelectingColumn } = state;\n if (!isSelectingColumn) {\n super.drawMouseRowHover(context, state);\n }\n }\n\n drawScrim(state: IrisGridRenderState): void {\n const { context, loadingScrimProgress, metrics, theme } = state;\n if (loadingScrimProgress == null) {\n return;\n }\n\n const { width, height, gridY } = metrics;\n const { scrimBlurSize, scrimColor } = theme;\n\n context.save();\n\n // Use global composite so we can change the underlying layer to grayscale\n context.globalCompositeOperation = 'color';\n context.filter = `blur(${scrimBlurSize}px)`;\n if (scrimColor != null) {\n context.fillStyle = scrimColor;\n }\n\n // Clip the path so the top edge is hard edge, bottom edge is soft/blurry\n context.beginPath();\n context.rect(0, gridY, width, height - gridY);\n context.clip();\n\n // Extend the edges beyond the clip area so they're hard edges\n context.fillRect(\n -scrimBlurSize,\n -scrimBlurSize + gridY,\n scrimBlurSize * 2 + width,\n (scrimBlurSize * 2 + (height - gridY)) * loadingScrimProgress\n );\n\n // add an overlay of the scrim color to darken things a bit\n context.globalCompositeOperation = 'source-over';\n context.filter = `blur(${scrimBlurSize}px) opacity(15%)`;\n context.fillRect(\n -scrimBlurSize,\n -scrimBlurSize + gridY,\n scrimBlurSize * 2 + width,\n (scrimBlurSize * 2 + (height - gridY)) * loadingScrimProgress\n );\n\n context.restore();\n }\n\n drawColumnHeaders(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n super.drawColumnHeaders(context, state);\n\n const { theme, metrics, model, reverseType } = state;\n const { columnHeaderHeight } = metrics;\n\n this.drawFilterHeaders(context, state);\n\n if (columnHeaderHeight <= 0) {\n return;\n }\n\n const { sort } = model;\n // if there is only one sort bar, it is interior to the header to save space\n if (sort.length === 1) {\n const hasReverse = reverseType !== TableUtils.REVERSE_TYPE.NONE;\n\n let color;\n if (hasReverse) {\n color = theme.headerReverseBarColor;\n } else {\n color = theme.headerSortBarColor;\n }\n this.drawHeaderBar(\n context,\n state,\n color,\n hasReverse ? theme.reverseHeaderBarHeight : theme.sortHeaderBarHeight\n );\n } else if (sort.length > 1) {\n // if there's multiple bars, the sort is interior to header\n // and the reverse claims space in the table\n if (\n // has table reverse\n reverseType !== TableUtils.REVERSE_TYPE.NONE\n ) {\n this.drawHeaderBar(\n context,\n state,\n theme.headerReverseBarColor,\n theme.reverseHeaderBarHeight,\n false\n );\n }\n this.drawHeaderBar(\n context,\n state,\n theme.headerSortBarColor,\n theme.sortHeaderBarHeight\n );\n }\n }\n\n drawHeaderBar(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n color: string | CanvasGradient | CanvasPattern,\n barHeight: number,\n interior = true\n ): void {\n const { theme, metrics, model } = state;\n const { columnHeaderHeight, width } = metrics;\n // Draw casing with 1 pixel above and below the bar,\n // 1px falls on the existing split between grid/headers\n // so don't need to be accounnted for in math elsewhere\n let offset = 0;\n if (!interior) {\n offset = barHeight;\n }\n context.fillStyle = theme.headerBarCasingColor;\n context.fillRect(\n 0,\n model.columnHeaderMaxDepth * columnHeaderHeight - barHeight - 2 + offset,\n width,\n barHeight + 2\n );\n\n context.fillStyle = color;\n context.fillRect(\n 0,\n model.columnHeaderMaxDepth * columnHeaderHeight - barHeight - 1 + offset,\n width,\n barHeight\n );\n }\n\n drawColumnHeadersAtDepth(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n range: BoundedAxisRange,\n boundsProp: { minX: number; maxX: number },\n depth: number\n ): void {\n const { metrics, model, isMenuShown } = state;\n const { columnHeaderMaxDepth } = model;\n const { width } = metrics;\n const bounds = {\n ...boundsProp,\n maxX:\n depth === columnHeaderMaxDepth - 1 && boundsProp.maxX === width\n ? width - (isMenuShown ? 0 : 30) // Account for the menu button\n : boundsProp.maxX,\n };\n super.drawColumnHeadersAtDepth(context, state, range, bounds, depth);\n }\n\n drawColumnHeaderAtIndex(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n index: VisibleIndex,\n bounds: { minX: number; maxX: number }\n ): void {\n super.drawColumnHeaderAtIndex(context, state, index, bounds);\n const { metrics, model, theme } = state;\n const {\n modelColumns,\n allColumnWidths,\n allColumnXs,\n gridX,\n columnHeaderHeight,\n fontWidths,\n } = metrics;\n\n const { headerHorizontalPadding } = theme;\n const columnWidth = getOrThrow(allColumnWidths, index, 0);\n const columnX = getOrThrow(allColumnXs, index) + gridX;\n const modelColumn = modelColumns.get(index);\n\n if (modelColumn == null) {\n return;\n }\n\n const columnName = model.columns[modelColumn]?.name;\n\n if (columnName == null) {\n return;\n }\n\n const sort = TableUtils.getSortForColumn(model.sort, columnName);\n\n if (!sort) {\n return;\n }\n\n const icon = this.getSortIcon(sort);\n if (!icon) {\n return;\n }\n\n const text = model.textForColumnHeader(modelColumn);\n if (text === undefined) {\n return;\n }\n\n const fontWidth = fontWidths.get(context.font) ?? DEFAULT_FONT_WIDTH;\n assertNotNull(fontWidth);\n const textWidth = text.length * fontWidth;\n const textRight = gridX + columnX + textWidth + headerHorizontalPadding;\n let { maxX } = bounds;\n maxX -= headerHorizontalPadding;\n const defaultX =\n gridX + columnX + columnWidth - headerHorizontalPadding - 1;\n\n const x = textRight > maxX ? textRight + 1 : Math.min(maxX, defaultX);\n const yOffset =\n sort.direction === TableUtils.sortDirection.ascending ? -6 : -12;\n const y = columnHeaderHeight * 0.5 + yOffset;\n\n context.save();\n\n context.beginPath();\n context.rect(columnX, 0, columnWidth, columnHeaderHeight);\n context.clip();\n\n context.fillStyle = theme.headerSortBarColor;\n context.translate(x, y);\n context.fill(icon);\n\n context.restore();\n }\n\n drawFilterHeaders(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n const { isFilterBarShown, quickFilters, advancedFilters } = state;\n\n if (isFilterBarShown) {\n this.drawExpandedFilterHeaders(context, state);\n } else if (\n (quickFilters != null && quickFilters.size > 0) ||\n (advancedFilters != null && advancedFilters.size > 0)\n ) {\n this.drawCollapsedFilterHeaders(context, state);\n }\n }\n\n drawExpandedFilterHeaders(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n const { metrics, model, theme, quickFilters, advancedFilters } = state;\n const { filterBarHeight } = theme;\n\n if (filterBarHeight <= 0) {\n return;\n }\n\n const {\n gridX,\n gridY,\n maxX,\n modelColumns,\n visibleColumns,\n allColumnWidths,\n allColumnXs,\n } = metrics;\n\n const columnHeaderHeight = gridY - filterBarHeight;\n\n context.save();\n\n context.font = theme.font;\n context.textAlign = 'left';\n\n if (\n (quickFilters != null && quickFilters.size > 0) ||\n (advancedFilters != null && advancedFilters.size > 0)\n ) {\n // fill style if a fiter is set on any column\n context.fillStyle = theme.filterBarExpandedActiveBackgroundColor;\n } else {\n // fill style with no filters set\n context.fillStyle = theme.filterBarExpandedBackgroundColor;\n }\n\n // Draw the background\n context.fillRect(gridX, columnHeaderHeight, maxX, filterBarHeight - 1);\n\n // Draw the bottom border\n context.fillStyle = theme.headerBarCasingColor;\n\n context.fillRect(gridX, columnHeaderHeight + filterBarHeight - 1, maxX, 1);\n\n // Draw the filter input boxes\n const y1 = columnHeaderHeight;\n context.strokeStyle = theme.filterBarSeparatorColor;\n context.beginPath();\n\n for (let i = 0; i < visibleColumns.length; i += 1) {\n const column = visibleColumns[i];\n const modelColumn = getOrThrow(modelColumns, column);\n const columnX = getOrThrow(allColumnXs, column);\n const columnWidth = getOrThrow(allColumnWidths, column);\n if (model.isFilterable(modelColumn) && columnWidth > 0) {\n const x1 = gridX + (columnX ?? 0);\n context.rect(x1 + 0.5, y1 + 0.5, columnWidth, filterBarHeight - 2); // 1 for the border, 1 for the casing\n }\n }\n context.stroke();\n\n for (let i = 0; i < visibleColumns.length; i += 1) {\n const column = visibleColumns[i];\n const columnWidth = getOrThrow(allColumnWidths, column);\n const columnX = getOrThrow(allColumnXs, column);\n const x = columnX + gridX;\n this.drawExpandedFilterHeader(context, state, column, x, columnWidth);\n }\n\n context.restore();\n }\n\n drawExpandedFilterHeader(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n column: VisibleIndex,\n columnX: Coordinate,\n columnWidth: number\n ): void {\n if (columnWidth <= 0) {\n return;\n }\n\n const { metrics, theme, quickFilters, advancedFilters } = state;\n const { modelColumns, gridY } = metrics;\n const {\n filterBarHeight,\n filterBarExpandedActiveCellBackgroundColor,\n filterBarErrorColor,\n filterBarHorizontalPadding,\n headerColor,\n } = theme;\n const columnHeaderHeight = gridY - filterBarHeight;\n const modelColumn = modelColumns.get(column);\n if (modelColumn === undefined) return;\n const quickFilter = quickFilters.get(modelColumn);\n const advancedFilter = advancedFilters.get(modelColumn);\n if (quickFilter == null && advancedFilter == null) {\n return;\n }\n\n let text = null;\n if (quickFilter != null) {\n const { text: filterText } = quickFilter;\n text = filterText;\n if (!text) {\n text = TableUtils.getFilterText(quickFilter.filter);\n }\n\n if (text != null) {\n const { fontWidths } = metrics;\n let fontWidth = fontWidths.get(context.font);\n if (fontWidth == null || fontWidth === 0) {\n fontWidth = context.measureText('8').width;\n if (!fontWidth) {\n fontWidth = 10;\n }\n }\n\n const maxLength =\n (columnWidth - filterBarHorizontalPadding * 2) / fontWidth;\n if (maxLength <= 0) {\n text = '';\n } else if (text.length > maxLength) {\n text = `${text.substring(0, maxLength - 1)}…`;\n }\n }\n }\n\n context.save();\n\n const isFilterValid = IrisGridRenderer.isFilterValid(\n advancedFilter,\n quickFilter\n );\n if (isFilterValid && filterBarExpandedActiveCellBackgroundColor != null) {\n // draw active filter background inside cell\n context.fillStyle = filterBarExpandedActiveCellBackgroundColor;\n context.fillRect(\n columnX + 1, // +1 left border\n columnHeaderHeight + 1, // +1 top border\n columnWidth - 1, // -1 right border\n filterBarHeight - 3 // -3 top, bottom border and bottom casing\n );\n } else if (filterBarErrorColor != null) {\n // draw error box inside cell\n context.fillStyle = filterBarErrorColor;\n context.lineWidth = 2;\n context.strokeStyle = filterBarErrorColor;\n // Because this is drawn with a strokeRect, we have to add/subtract half the,\n // linewidth from each side to make interior, in addition to accounting for any borders/casings\n const rectLeft = columnX + 2; // 1 for strokeRect, 1 for border\n const rectTop = columnHeaderHeight + 2; // 1 for strokeRect, 1 for border\n const rectWidth = columnWidth - 3; // for 2 border and 1 for strokeRect\n const rectHeight = filterBarHeight - 5; // -2 for strokeRect, -3 for top, bottom border and bottom casing\n context.strokeRect(rectLeft, rectTop, rectWidth, rectHeight);\n }\n\n if (text != null && text !== '') {\n const textX = columnX + filterBarHorizontalPadding;\n const textY = columnHeaderHeight + filterBarHeight * 0.5 + 1; // + 1 for border\n context.fillStyle = headerColor;\n context.fillText(text, textX, textY);\n }\n\n context.restore();\n }\n\n drawCollapsedFilterHeaders(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n const { metrics, theme } = state;\n const { headerSeparatorColor, filterBarCollapsedHeight } = theme;\n\n if (filterBarCollapsedHeight <= 0) {\n return;\n }\n\n const { gridX, gridY, maxX, visibleColumns, allColumnWidths, allColumnXs } =\n metrics;\n const columnHeaderHeight = gridY - filterBarCollapsedHeight;\n\n context.save();\n\n // Draw the background of the collapsed filter bar\n context.fillStyle = headerSeparatorColor;\n context.fillRect(gridX, columnHeaderHeight, maxX, filterBarCollapsedHeight);\n\n for (let i = 0; i < visibleColumns.length; i += 1) {\n const column = visibleColumns[i];\n const columnWidth = allColumnWidths.get(column);\n const columnX = allColumnXs.get(column);\n if (columnX != null && columnWidth != null) {\n const x = columnX + gridX;\n // draw the collapsed cells\n this.drawCollapsedFilterHeader(context, state, column, x, columnWidth);\n }\n }\n\n context.restore();\n }\n\n drawCollapsedFilterHeader(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n column: VisibleIndex,\n columnX: Coordinate,\n columnWidth: number\n ): void {\n if (columnWidth <= 0) {\n return;\n }\n\n const { metrics, theme, quickFilters, advancedFilters } = state;\n const { modelColumns, gridY } = metrics;\n const modelColumn = modelColumns.get(column);\n\n if (modelColumn === undefined) return;\n const quickFilter = quickFilters.get(modelColumn);\n const advancedFilter = advancedFilters.get(modelColumn);\n\n const {\n filterBarCollapsedHeight,\n filterBarActiveColor,\n filterBarActiveBackgroundColor,\n filterBarErrorColor,\n } = theme;\n\n context.save();\n\n const isFilterValid = IrisGridRenderer.isFilterValid(\n advancedFilter,\n quickFilter\n );\n\n if (\n filterBarActiveBackgroundColor != null &&\n quickFilter == null &&\n advancedFilter == null\n ) {\n context.fillStyle = filterBarActiveBackgroundColor;\n } else if (filterBarActiveColor != null && isFilterValid) {\n context.fillStyle = filterBarActiveColor;\n } else if (filterBarErrorColor != null) {\n context.fillStyle = filterBarErrorColor;\n }\n\n const x = columnX + 1; // for gap between columns\n const y = gridY - filterBarCollapsedHeight;\n const rectWidth = columnWidth - 1; // for gap between columns\n const rectHeight = filterBarCollapsedHeight - 1; // for casing bottom\n context.fillRect(x, y, rectWidth, rectHeight);\n\n context.restore();\n }\n\n drawRowFooters(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState\n ): void {\n const { metrics, model, mouseX, mouseY, theme } = state;\n const {\n gridY,\n gridX,\n maxX,\n modelRows,\n floatingTopHeight,\n floatingBottomHeight,\n floatingRows,\n rowFooterWidth,\n height,\n horizontalBarHeight,\n verticalBarWidth,\n allRowHeights,\n allRowYs,\n width,\n } = metrics;\n // Only draw the footers on the floating rows\n if (rowFooterWidth <= 0 || floatingRows.length === 0) {\n return;\n }\n\n const {\n cellHorizontalPadding,\n floatingGridRowColor,\n floatingRowBackgroundColors,\n headerColor,\n rowHoverBackgroundColor,\n } = theme;\n\n context.translate(gridX, gridY);\n\n context.beginPath();\n const x = Math.min(maxX, width - rowFooterWidth - verticalBarWidth - gridX);\n context.fillStyle = floatingRowBackgroundColors;\n if (floatingTopHeight > 0) {\n context.rect(x, 0, rowFooterWidth, floatingTopHeight);\n }\n if (floatingBottomHeight > 0) {\n context.rect(\n x,\n height - gridY - horizontalBarHeight - floatingBottomHeight,\n rowFooterWidth,\n floatingBottomHeight\n );\n }\n context.fill();\n\n const mouseRow =\n mouseX != null &&\n mouseY != null &&\n mouseX >= gridX &&\n mouseX <= maxX + rowFooterWidth\n ? GridUtils.getRowAtY(mouseY, metrics)\n : null;\n if (\n rowHoverBackgroundColor != null &&\n mouseRow !== null &&\n floatingRows.includes(mouseRow)\n ) {\n context.fillStyle = rowHoverBackgroundColor;\n const y = allRowYs.get(mouseRow);\n const rowHeight = allRowHeights.get(mouseRow);\n assertNotNull(y);\n assertNotNull(rowHeight);\n context.fillRect(x, y, rowFooterWidth, rowHeight);\n }\n\n context.beginPath();\n if (floatingGridRowColor != null) {\n context.strokeStyle = floatingGridRowColor;\n }\n if (floatingTopHeight > 0) {\n context.moveTo(x + 0.5, 0.5);\n context.lineTo(x + 0.5, floatingTopHeight - 0.5);\n }\n if (floatingBottomHeight > 0) {\n const y = height - gridY - horizontalBarHeight - floatingBottomHeight;\n context.moveTo(x - 0.5, y + 0.5);\n context.lineTo(x - 0.5, y + floatingBottomHeight - 0.5);\n }\n context.stroke();\n\n context.fillStyle = headerColor;\n context.textAlign = 'left';\n\n const textX = x + cellHorizontalPadding;\n for (let i = 0; i < floatingRows.length; i += 1) {\n const row = floatingRows[i];\n const rowHeight = allRowHeights.get(row);\n const rowY = allRowYs.get(row);\n const modelRow = modelRows.get(row);\n if (rowY != null && rowHeight != null && modelRow != null) {\n const textY = rowY + rowHeight * 0.5;\n context.fillText(model.textForRowFooter(modelRow), textX, textY);\n }\n }\n\n context.translate(-gridX, -gridY);\n }\n\n getExpandButtonPosition(\n {\n mouseX,\n mouseY,\n metrics,\n theme,\n }: {\n mouseX: Coordinate | null;\n mouseY: Coordinate | null;\n metrics: GridMetrics | undefined;\n theme: GridThemeType;\n },\n depth: number | null\n ): {\n left: Coordinate | null;\n top: Coordinate | null;\n width: number | null;\n height: number | null;\n } {\n const NULL_POSITION = { left: null, top: null, width: null, height: null };\n if (mouseX == null || mouseY == null || depth == null || !metrics) {\n return NULL_POSITION;\n }\n const { rowHeight, left, top } = GridUtils.getCellInfoFromXY(\n mouseX,\n mouseY,\n metrics\n );\n\n assertNotNull(left);\n assertNotNull(rowHeight);\n assertNotNull(top);\n const { cellHorizontalPadding } = theme;\n\n const width = EXPAND_ICON_SIZE + 2 * cellHorizontalPadding;\n\n const buttonLeft = Math.max(left + EXPAND_ICON_SIZE * depth, metrics.gridX);\n const buttonTop = metrics.gridY + top;\n\n return {\n left: buttonLeft,\n top: buttonTop,\n width,\n height: rowHeight,\n };\n }\n}\n\nexport default IrisGridRenderer;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridTheme.d.ts","sourceRoot":"","sources":["../src/IrisGridTheme.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAK7E,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG;IAC9C,wBAAwB,EAAE,MAAM,CAAC;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,SAAS,CAAC;IAChC,wBAAwB,EAAE,SAAS,CAAC;IACpC,2BAA2B,EAAE,SAAS,CAAC;IACvC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,eAAe,EAAE,SAAS,CAAC;IAC3B,gBAAgB,EAAE,SAAS,CAAC;IAC5B,SAAS,EAAE,SAAS,CAAC;IACrB,mBAAmB,EAAE,SAAS,CAAC;IAC/B,mBAAmB,EAAE,SAAS,CAAC;IAC/B,eAAe,EAAE,SAAS,CAAC;IAC3B,cAAc,EAAE,SAAS,CAAC;IAC1B,yBAAyB,EAAE,SAAS,CAAC;IACrC,gCAAgC,EAAE,SAAS,CAAC;IAC5C,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,SAAS,CAAC;IACtB,qBAAqB,EAAE,SAAS,CAAC;IACjC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,SAAS,CAAC;IAC9B,oBAAoB,EAAE,SAAS,CAAC;IAChC,sCAAsC,EAAE,SAAS,CAAC;IAClD,gCAAgC,EAAE,SAAS,CAAC;IAC5C,uBAAuB,EAAE,SAAS,CAAC;IACnC,0CAA0C,EAAE,SAAS,CAAC;IACtD,mBAAmB,EAAE,SAAS,CAAC;IAC/B,0BAA0B,EAAE,MAAM,CAAC;IACnC,8BAA8B,EAAE,SAAS,CAAC;IAC1C,mBAAmB,EAAE,SAAS,CAAC;IAC/B,wBAAwB,EAAE,SAAS,CAAC;IACpC,oBAAoB,EAAE,iBAAiB,CAAC;CACzC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,0BAA0B,IAAI,OAAO,CAAC,iBAAiB,CAAC,CA8GvE"}
1
+ {"version":3,"file":"IrisGridTheme.d.ts","sourceRoot":"","sources":["../src/IrisGridTheme.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAK7E,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG;IAC9C,wBAAwB,EAAE,MAAM,CAAC;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,SAAS,CAAC;IAChC,wBAAwB,EAAE,SAAS,CAAC;IACpC,2BAA2B,EAAE,SAAS,CAAC;IACvC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,eAAe,EAAE,SAAS,CAAC;IAC3B,gBAAgB,EAAE,SAAS,CAAC;IAC5B,SAAS,EAAE,SAAS,CAAC;IACrB,mBAAmB,EAAE,SAAS,CAAC;IAC/B,mBAAmB,EAAE,SAAS,CAAC;IAC/B,eAAe,EAAE,SAAS,CAAC;IAC3B,cAAc,EAAE,SAAS,CAAC;IAC1B,yBAAyB,EAAE,SAAS,CAAC;IACrC,gCAAgC,EAAE,SAAS,CAAC;IAC5C,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,SAAS,CAAC;IACtB,qBAAqB,EAAE,SAAS,CAAC;IACjC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,SAAS,CAAC;IAC9B,oBAAoB,EAAE,SAAS,CAAC;IAChC,sCAAsC,EAAE,SAAS,CAAC;IAClD,gCAAgC,EAAE,SAAS,CAAC;IAC5C,uBAAuB,EAAE,SAAS,CAAC;IACnC,0CAA0C,EAAE,SAAS,CAAC;IACtD,mBAAmB,EAAE,SAAS,CAAC;IAC/B,0BAA0B,EAAE,MAAM,CAAC;IACnC,8BAA8B,EAAE,SAAS,CAAC;IAC1C,mBAAmB,EAAE,SAAS,CAAC;IAC/B,wBAAwB,EAAE,SAAS,CAAC;IACpC,oBAAoB,EAAE,iBAAiB,CAAC;CACzC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,0BAA0B,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAgHvE"}
@@ -85,6 +85,7 @@ export function createDefaultIrisGridTheme() {
85
85
  sortHeaderBarHeight: 2,
86
86
  reverseHeaderBarHeight: 4,
87
87
  filterBarHorizontalPadding: 4,
88
+ shadowAlpha: parseFloat(IrisGridTheme['row-shadow-alpha']) || 0.15,
88
89
  // Amount of blur to apply to the bottom of the scrim while animating in
89
90
  scrimBlurSize: 25,
90
91
  minScrimTransitionTime: 150,
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridTheme.js","names":["resolveCssVariablesInRecord","Log","IrisGridThemeRaw","log","module","createDefaultIrisGridTheme","IrisGridTheme","debug2","Object","freeze","backgroundColor","white","black","font","headerBackgroundColor","headerColor","headerSeparatorColor","headerSeparatorHoverColor","headerHiddenSeparatorHoverColor","headerSortBarColor","headerReverseBarColor","headerBarCasingColor","headerFont","rowBackgroundColors","rowHoverBackgroundColor","selectionColor","selectionOutlineColor","selectionOutlineCasingColor","selectedRowHoverBackgroundColor","scrollBarBackgroundColor","scrollBarHoverBackgroundColor","scrollBarCasingColor","scrollBarCornerColor","scrollBarColor","scrollBarHoverColor","scrollBarActiveColor","scrollBarSelectionTickColor","scrollBarActiveSelectionTickColor","textColor","hyperlinkColor","positiveNumberColor","negativeNumberColor","zeroNumberColor","dateColor","pendingTextColor","errorTextColor","nullStringColor","filterBarActiveBackgroundColor","filterBarExpandedBackgroundColor","filterBarExpandedActiveBackgroundColor","filterBarExpandedActiveCellBackgroundColor","filterBarSeparatorColor","filterBarActiveColor","filterBarErrorColor","filterIconColor","scrimColor","contextMenuSortIconColor","contextMenuReverseIconColor","allowRowResize","autoSelectRow","gridColumnColor","gridRowColor","groupedColumnDividerColor","columnHoverBackgroundColor","headerHorizontalPadding","scrollBarSize","scrollBarHoverSize","minScrollHandleSize","rowHeight","parseInt","columnWidth","rowHeaderWidth","rowFooterWidth","columnHeaderHeight","filterBarHeight","filterBarCollapsedHeight","sortHeaderBarHeight","reverseHeaderBarHeight","filterBarHorizontalPadding","scrimBlurSize","minScrimTransitionTime","maxScrimTransitionTime","scrollSnapToRow","linkerColumnHoverBackgroundColor","treeLineColor","treeMarkerColor","treeMarkerHoverColor","floatingGridColumnColor","floatingGridRowColor","floatingRowBackgroundColors","floatingDividerInnerColor","floatingDividerOuterColor","overflowButtonColor","overflowButtonHoverColor","zeroLineColor","positiveBarColor","negativeBarColor","markerBarColor"],"sources":["../src/IrisGridTheme.ts"],"sourcesContent":["import { resolveCssVariablesInRecord } from '@deephaven/components';\nimport type { GridThemeType } from '@deephaven/grid';\nimport Log from '@deephaven/log';\nimport { GridColor, NullableGridColor } from '@deephaven/grid/src/GridTheme';\nimport IrisGridThemeRaw from './IrisGridTheme.module.scss';\n\nconst log = Log.module('IrisGridTheme');\n\nexport type IrisGridThemeType = GridThemeType & {\n filterBarCollapsedHeight: number;\n filterBarHeight: number;\n reverseHeaderBarHeight: number;\n filterIconColor: string;\n filterBarActiveColor: GridColor;\n contextMenuSortIconColor: GridColor;\n contextMenuReverseIconColor: GridColor;\n minScrimTransitionTime: number;\n maxScrimTransitionTime: number;\n nullStringColor: GridColor;\n pendingTextColor: GridColor;\n dateColor: GridColor;\n positiveNumberColor: GridColor;\n negativeNumberColor: GridColor;\n zeroNumberColor: GridColor;\n errorTextColor: GridColor;\n groupedColumnDividerColor: GridColor;\n linkerColumnHoverBackgroundColor: GridColor;\n scrimBlurSize: number;\n scrimColor: GridColor;\n headerReverseBarColor: GridColor;\n sortHeaderBarHeight: number;\n headerSortBarColor: GridColor;\n headerBarCasingColor: GridColor;\n filterBarExpandedActiveBackgroundColor: GridColor;\n filterBarExpandedBackgroundColor: GridColor;\n filterBarSeparatorColor: GridColor;\n filterBarExpandedActiveCellBackgroundColor: GridColor;\n filterBarErrorColor: GridColor;\n filterBarHorizontalPadding: number;\n filterBarActiveBackgroundColor: GridColor;\n overflowButtonColor: GridColor;\n overflowButtonHoverColor: GridColor;\n floatingGridRowColor: NullableGridColor;\n};\n\n/**\n * Derive default Iris grid theme from IrisGridThemeRaw. Note that CSS variables\n * contained in IrisGridThemeRaw are resolved to their actual values. This means\n * that the returned theme is statically defined and does not change when CSS\n * variables change.\n */\nexport function createDefaultIrisGridTheme(): Partial<IrisGridThemeType> {\n const IrisGridTheme = resolveCssVariablesInRecord(IrisGridThemeRaw);\n log.debug2('Iris grid theme:', IrisGridThemeRaw);\n log.debug2('Iris grid theme derived:', IrisGridTheme);\n\n return Object.freeze({\n backgroundColor: IrisGridTheme['grid-bg'],\n white: IrisGridTheme.white,\n black: IrisGridTheme.black,\n font: IrisGridTheme.font,\n headerBackgroundColor: IrisGridTheme['header-bg'],\n headerColor: IrisGridTheme['header-color'],\n headerSeparatorColor: IrisGridTheme['header-separator-color'],\n headerSeparatorHoverColor: IrisGridTheme['header-separator-hover-color'],\n headerHiddenSeparatorHoverColor:\n IrisGridTheme['header-hidden-separator-hover-color'],\n headerSortBarColor: IrisGridTheme['header-sort-bar-color'],\n headerReverseBarColor: IrisGridTheme['header-reverse-bar-color'],\n headerBarCasingColor: IrisGridTheme['header-bar-casing-color'],\n headerFont: IrisGridTheme['header-font'],\n rowBackgroundColors: IrisGridTheme['row-background-colors'],\n rowHoverBackgroundColor: IrisGridTheme['row-hover-bg'],\n selectionColor: IrisGridTheme['selection-color'],\n selectionOutlineColor: IrisGridTheme['selection-outline-color'],\n selectionOutlineCasingColor:\n IrisGridTheme['selection-outline-casing-color'],\n selectedRowHoverBackgroundColor: IrisGridTheme['selected-row-hover-bg'],\n scrollBarBackgroundColor: IrisGridTheme['scroll-bar-bg'],\n scrollBarHoverBackgroundColor: IrisGridTheme['scroll-bar-hover-bg'],\n scrollBarCasingColor: IrisGridTheme['scroll-bar-casing-color'],\n scrollBarCornerColor: IrisGridTheme['scroll-bar-corner-color'],\n scrollBarColor: IrisGridTheme['scroll-bar-color'],\n scrollBarHoverColor: IrisGridTheme['scroll-bar-hover-color'],\n scrollBarActiveColor: IrisGridTheme['scroll-bar-active-color'],\n scrollBarSelectionTickColor: IrisGridTheme['selected-row-hover-bg'],\n scrollBarActiveSelectionTickColor:\n IrisGridTheme['scroll-bar-active-selection-tick-color'],\n textColor: IrisGridTheme['text-color'],\n hyperlinkColor: IrisGridTheme['hyperlink-color'],\n positiveNumberColor: IrisGridTheme['positive-number-color'],\n negativeNumberColor: IrisGridTheme['negative-number-color'],\n zeroNumberColor: IrisGridTheme['zero-number-color'],\n dateColor: IrisGridTheme['date-color'],\n pendingTextColor: IrisGridTheme['pending-text-color'],\n errorTextColor: IrisGridTheme['error-text-color'],\n nullStringColor: IrisGridTheme['null-string-color'],\n filterBarActiveBackgroundColor: IrisGridTheme['filter-bar-active-bg'],\n filterBarExpandedBackgroundColor: IrisGridTheme['filter-bar-expanded-bg'],\n filterBarExpandedActiveBackgroundColor:\n IrisGridTheme['filter-bar-expanded-active-bg'],\n filterBarExpandedActiveCellBackgroundColor:\n IrisGridTheme['filter-bar-expanded-active-cell-bg'],\n filterBarSeparatorColor: IrisGridTheme['filter-bar-separator-color'],\n filterBarActiveColor: IrisGridTheme['filter-bar-active-color'],\n filterBarErrorColor: IrisGridTheme['filter-bar-error-color'],\n filterIconColor: IrisGridTheme['filter-icon-color'],\n scrimColor: IrisGridTheme['scrim-color'],\n contextMenuSortIconColor: IrisGridTheme['context-menu-sort-icon-color'],\n contextMenuReverseIconColor:\n IrisGridTheme['context-menu-reverse-icon-color'],\n\n allowRowResize: false,\n autoSelectRow: true,\n gridColumnColor: null,\n gridRowColor: null,\n groupedColumnDividerColor: IrisGridTheme['grouped-column-divider-color'],\n columnHoverBackgroundColor: null,\n headerHorizontalPadding: 12,\n scrollBarSize: 13,\n scrollBarHoverSize: 16, // system default scrollbar width is 17\n minScrollHandleSize: 24,\n rowHeight: parseInt(IrisGridTheme['row-height'], 10) || 19, // IrisGrid test breaks without the fallback value\n columnWidth: 100,\n rowHeaderWidth: 0,\n rowFooterWidth: 60,\n columnHeaderHeight: parseInt(IrisGridTheme['header-height'], 10) || 30,\n filterBarHeight: 30, // includes 1px casing at bottom\n filterBarCollapsedHeight: 5, // includes 1px casing at bottom\n sortHeaderBarHeight: 2,\n reverseHeaderBarHeight: 4,\n filterBarHorizontalPadding: 4,\n\n // Amount of blur to apply to the bottom of the scrim while animating in\n scrimBlurSize: 25,\n minScrimTransitionTime: 150,\n maxScrimTransitionTime: 350,\n\n scrollSnapToRow: true,\n\n linkerColumnHoverBackgroundColor: IrisGridTheme['linker-column-hover-bg'],\n\n treeLineColor: IrisGridTheme['tree-line-color'],\n treeMarkerColor: IrisGridTheme['tree-marker-color'],\n treeMarkerHoverColor: IrisGridTheme['tree-marker-hover-color'],\n\n floatingGridColumnColor: null,\n floatingGridRowColor: IrisGridTheme['floating-grid-row-color'],\n floatingRowBackgroundColors:\n IrisGridTheme['floating-row-background-colors'],\n floatingDividerInnerColor: IrisGridTheme['floating-divider-inner-color'],\n floatingDividerOuterColor: IrisGridTheme['floating-divider-outer-color'],\n\n overflowButtonColor: IrisGridTheme['overflow-button-color'],\n overflowButtonHoverColor: IrisGridTheme['overflow-button-hover-color'],\n\n zeroLineColor: IrisGridTheme['zero-line-color'],\n positiveBarColor: IrisGridTheme['positive-bar-color'],\n negativeBarColor: IrisGridTheme['negative-bar-color'],\n markerBarColor: IrisGridTheme['marker-bar-color'],\n });\n}\n"],"mappings":"AAAA,SAASA,2BAA2B,QAAQ,uBAAuB;AAEnE,OAAOC,GAAG,MAAM,gBAAgB;AAAC,OAE1BC,gBAAgB;AAEvB,IAAMC,GAAG,GAAGF,GAAG,CAACG,MAAM,CAAC,eAAe,CAAC;AAuCvC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,0BAA0BA,CAAA,EAA+B;EACvE,IAAMC,aAAa,GAAGN,2BAA2B,CAACE,gBAAgB,CAAC;EACnEC,GAAG,CAACI,MAAM,CAAC,kBAAkB,EAAEL,gBAAgB,CAAC;EAChDC,GAAG,CAACI,MAAM,CAAC,0BAA0B,EAAED,aAAa,CAAC;EAErD,OAAOE,MAAM,CAACC,MAAM,CAAC;IACnBC,eAAe,EAAEJ,aAAa,CAAC,SAAS,CAAC;IACzCK,KAAK,EAAEL,aAAa,CAACK,KAAK;IAC1BC,KAAK,EAAEN,aAAa,CAACM,KAAK;IAC1BC,IAAI,EAAEP,aAAa,CAACO,IAAI;IACxBC,qBAAqB,EAAER,aAAa,CAAC,WAAW,CAAC;IACjDS,WAAW,EAAET,aAAa,CAAC,cAAc,CAAC;IAC1CU,oBAAoB,EAAEV,aAAa,CAAC,wBAAwB,CAAC;IAC7DW,yBAAyB,EAAEX,aAAa,CAAC,8BAA8B,CAAC;IACxEY,+BAA+B,EAC7BZ,aAAa,CAAC,qCAAqC,CAAC;IACtDa,kBAAkB,EAAEb,aAAa,CAAC,uBAAuB,CAAC;IAC1Dc,qBAAqB,EAAEd,aAAa,CAAC,0BAA0B,CAAC;IAChEe,oBAAoB,EAAEf,aAAa,CAAC,yBAAyB,CAAC;IAC9DgB,UAAU,EAAEhB,aAAa,CAAC,aAAa,CAAC;IACxCiB,mBAAmB,EAAEjB,aAAa,CAAC,uBAAuB,CAAC;IAC3DkB,uBAAuB,EAAElB,aAAa,CAAC,cAAc,CAAC;IACtDmB,cAAc,EAAEnB,aAAa,CAAC,iBAAiB,CAAC;IAChDoB,qBAAqB,EAAEpB,aAAa,CAAC,yBAAyB,CAAC;IAC/DqB,2BAA2B,EACzBrB,aAAa,CAAC,gCAAgC,CAAC;IACjDsB,+BAA+B,EAAEtB,aAAa,CAAC,uBAAuB,CAAC;IACvEuB,wBAAwB,EAAEvB,aAAa,CAAC,eAAe,CAAC;IACxDwB,6BAA6B,EAAExB,aAAa,CAAC,qBAAqB,CAAC;IACnEyB,oBAAoB,EAAEzB,aAAa,CAAC,yBAAyB,CAAC;IAC9D0B,oBAAoB,EAAE1B,aAAa,CAAC,yBAAyB,CAAC;IAC9D2B,cAAc,EAAE3B,aAAa,CAAC,kBAAkB,CAAC;IACjD4B,mBAAmB,EAAE5B,aAAa,CAAC,wBAAwB,CAAC;IAC5D6B,oBAAoB,EAAE7B,aAAa,CAAC,yBAAyB,CAAC;IAC9D8B,2BAA2B,EAAE9B,aAAa,CAAC,uBAAuB,CAAC;IACnE+B,iCAAiC,EAC/B/B,aAAa,CAAC,wCAAwC,CAAC;IACzDgC,SAAS,EAAEhC,aAAa,CAAC,YAAY,CAAC;IACtCiC,cAAc,EAAEjC,aAAa,CAAC,iBAAiB,CAAC;IAChDkC,mBAAmB,EAAElC,aAAa,CAAC,uBAAuB,CAAC;IAC3DmC,mBAAmB,EAAEnC,aAAa,CAAC,uBAAuB,CAAC;IAC3DoC,eAAe,EAAEpC,aAAa,CAAC,mBAAmB,CAAC;IACnDqC,SAAS,EAAErC,aAAa,CAAC,YAAY,CAAC;IACtCsC,gBAAgB,EAAEtC,aAAa,CAAC,oBAAoB,CAAC;IACrDuC,cAAc,EAAEvC,aAAa,CAAC,kBAAkB,CAAC;IACjDwC,eAAe,EAAExC,aAAa,CAAC,mBAAmB,CAAC;IACnDyC,8BAA8B,EAAEzC,aAAa,CAAC,sBAAsB,CAAC;IACrE0C,gCAAgC,EAAE1C,aAAa,CAAC,wBAAwB,CAAC;IACzE2C,sCAAsC,EACpC3C,aAAa,CAAC,+BAA+B,CAAC;IAChD4C,0CAA0C,EACxC5C,aAAa,CAAC,oCAAoC,CAAC;IACrD6C,uBAAuB,EAAE7C,aAAa,CAAC,4BAA4B,CAAC;IACpE8C,oBAAoB,EAAE9C,aAAa,CAAC,yBAAyB,CAAC;IAC9D+C,mBAAmB,EAAE/C,aAAa,CAAC,wBAAwB,CAAC;IAC5DgD,eAAe,EAAEhD,aAAa,CAAC,mBAAmB,CAAC;IACnDiD,UAAU,EAAEjD,aAAa,CAAC,aAAa,CAAC;IACxCkD,wBAAwB,EAAElD,aAAa,CAAC,8BAA8B,CAAC;IACvEmD,2BAA2B,EACzBnD,aAAa,CAAC,iCAAiC,CAAC;IAElDoD,cAAc,EAAE,KAAK;IACrBC,aAAa,EAAE,IAAI;IACnBC,eAAe,EAAE,IAAI;IACrBC,YAAY,EAAE,IAAI;IAClBC,yBAAyB,EAAExD,aAAa,CAAC,8BAA8B,CAAC;IACxEyD,0BAA0B,EAAE,IAAI;IAChCC,uBAAuB,EAAE,EAAE;IAC3BC,aAAa,EAAE,EAAE;IACjBC,kBAAkB,EAAE,EAAE;IAAE;IACxBC,mBAAmB,EAAE,EAAE;IACvBC,SAAS,EAAEC,QAAQ,CAAC/D,aAAa,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE;IAAE;IAC5DgE,WAAW,EAAE,GAAG;IAChBC,cAAc,EAAE,CAAC;IACjBC,cAAc,EAAE,EAAE;IAClBC,kBAAkB,EAAEJ,QAAQ,CAAC/D,aAAa,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE;IACtEoE,eAAe,EAAE,EAAE;IAAE;IACrBC,wBAAwB,EAAE,CAAC;IAAE;IAC7BC,mBAAmB,EAAE,CAAC;IACtBC,sBAAsB,EAAE,CAAC;IACzBC,0BAA0B,EAAE,CAAC;IAE7B;IACAC,aAAa,EAAE,EAAE;IACjBC,sBAAsB,EAAE,GAAG;IAC3BC,sBAAsB,EAAE,GAAG;IAE3BC,eAAe,EAAE,IAAI;IAErBC,gCAAgC,EAAE7E,aAAa,CAAC,wBAAwB,CAAC;IAEzE8E,aAAa,EAAE9E,aAAa,CAAC,iBAAiB,CAAC;IAC/C+E,eAAe,EAAE/E,aAAa,CAAC,mBAAmB,CAAC;IACnDgF,oBAAoB,EAAEhF,aAAa,CAAC,yBAAyB,CAAC;IAE9DiF,uBAAuB,EAAE,IAAI;IAC7BC,oBAAoB,EAAElF,aAAa,CAAC,yBAAyB,CAAC;IAC9DmF,2BAA2B,EACzBnF,aAAa,CAAC,gCAAgC,CAAC;IACjDoF,yBAAyB,EAAEpF,aAAa,CAAC,8BAA8B,CAAC;IACxEqF,yBAAyB,EAAErF,aAAa,CAAC,8BAA8B,CAAC;IAExEsF,mBAAmB,EAAEtF,aAAa,CAAC,uBAAuB,CAAC;IAC3DuF,wBAAwB,EAAEvF,aAAa,CAAC,6BAA6B,CAAC;IAEtEwF,aAAa,EAAExF,aAAa,CAAC,iBAAiB,CAAC;IAC/CyF,gBAAgB,EAAEzF,aAAa,CAAC,oBAAoB,CAAC;IACrD0F,gBAAgB,EAAE1F,aAAa,CAAC,oBAAoB,CAAC;IACrD2F,cAAc,EAAE3F,aAAa,CAAC,kBAAkB;EAClD,CAAC,CAAC;AACJ"}
1
+ {"version":3,"file":"IrisGridTheme.js","names":["resolveCssVariablesInRecord","Log","IrisGridThemeRaw","log","module","createDefaultIrisGridTheme","IrisGridTheme","debug2","Object","freeze","backgroundColor","white","black","font","headerBackgroundColor","headerColor","headerSeparatorColor","headerSeparatorHoverColor","headerHiddenSeparatorHoverColor","headerSortBarColor","headerReverseBarColor","headerBarCasingColor","headerFont","rowBackgroundColors","rowHoverBackgroundColor","selectionColor","selectionOutlineColor","selectionOutlineCasingColor","selectedRowHoverBackgroundColor","scrollBarBackgroundColor","scrollBarHoverBackgroundColor","scrollBarCasingColor","scrollBarCornerColor","scrollBarColor","scrollBarHoverColor","scrollBarActiveColor","scrollBarSelectionTickColor","scrollBarActiveSelectionTickColor","textColor","hyperlinkColor","positiveNumberColor","negativeNumberColor","zeroNumberColor","dateColor","pendingTextColor","errorTextColor","nullStringColor","filterBarActiveBackgroundColor","filterBarExpandedBackgroundColor","filterBarExpandedActiveBackgroundColor","filterBarExpandedActiveCellBackgroundColor","filterBarSeparatorColor","filterBarActiveColor","filterBarErrorColor","filterIconColor","scrimColor","contextMenuSortIconColor","contextMenuReverseIconColor","allowRowResize","autoSelectRow","gridColumnColor","gridRowColor","groupedColumnDividerColor","columnHoverBackgroundColor","headerHorizontalPadding","scrollBarSize","scrollBarHoverSize","minScrollHandleSize","rowHeight","parseInt","columnWidth","rowHeaderWidth","rowFooterWidth","columnHeaderHeight","filterBarHeight","filterBarCollapsedHeight","sortHeaderBarHeight","reverseHeaderBarHeight","filterBarHorizontalPadding","shadowAlpha","parseFloat","scrimBlurSize","minScrimTransitionTime","maxScrimTransitionTime","scrollSnapToRow","linkerColumnHoverBackgroundColor","treeLineColor","treeMarkerColor","treeMarkerHoverColor","floatingGridColumnColor","floatingGridRowColor","floatingRowBackgroundColors","floatingDividerInnerColor","floatingDividerOuterColor","overflowButtonColor","overflowButtonHoverColor","zeroLineColor","positiveBarColor","negativeBarColor","markerBarColor"],"sources":["../src/IrisGridTheme.ts"],"sourcesContent":["import { resolveCssVariablesInRecord } from '@deephaven/components';\nimport type { GridThemeType } from '@deephaven/grid';\nimport Log from '@deephaven/log';\nimport { GridColor, NullableGridColor } from '@deephaven/grid/src/GridTheme';\nimport IrisGridThemeRaw from './IrisGridTheme.module.scss';\n\nconst log = Log.module('IrisGridTheme');\n\nexport type IrisGridThemeType = GridThemeType & {\n filterBarCollapsedHeight: number;\n filterBarHeight: number;\n reverseHeaderBarHeight: number;\n filterIconColor: string;\n filterBarActiveColor: GridColor;\n contextMenuSortIconColor: GridColor;\n contextMenuReverseIconColor: GridColor;\n minScrimTransitionTime: number;\n maxScrimTransitionTime: number;\n nullStringColor: GridColor;\n pendingTextColor: GridColor;\n dateColor: GridColor;\n positiveNumberColor: GridColor;\n negativeNumberColor: GridColor;\n zeroNumberColor: GridColor;\n errorTextColor: GridColor;\n groupedColumnDividerColor: GridColor;\n linkerColumnHoverBackgroundColor: GridColor;\n scrimBlurSize: number;\n scrimColor: GridColor;\n headerReverseBarColor: GridColor;\n sortHeaderBarHeight: number;\n headerSortBarColor: GridColor;\n headerBarCasingColor: GridColor;\n filterBarExpandedActiveBackgroundColor: GridColor;\n filterBarExpandedBackgroundColor: GridColor;\n filterBarSeparatorColor: GridColor;\n filterBarExpandedActiveCellBackgroundColor: GridColor;\n filterBarErrorColor: GridColor;\n filterBarHorizontalPadding: number;\n filterBarActiveBackgroundColor: GridColor;\n overflowButtonColor: GridColor;\n overflowButtonHoverColor: GridColor;\n floatingGridRowColor: NullableGridColor;\n};\n\n/**\n * Derive default Iris grid theme from IrisGridThemeRaw. Note that CSS variables\n * contained in IrisGridThemeRaw are resolved to their actual values. This means\n * that the returned theme is statically defined and does not change when CSS\n * variables change.\n */\nexport function createDefaultIrisGridTheme(): Partial<IrisGridThemeType> {\n const IrisGridTheme = resolveCssVariablesInRecord(IrisGridThemeRaw);\n log.debug2('Iris grid theme:', IrisGridThemeRaw);\n log.debug2('Iris grid theme derived:', IrisGridTheme);\n\n return Object.freeze({\n backgroundColor: IrisGridTheme['grid-bg'],\n white: IrisGridTheme.white,\n black: IrisGridTheme.black,\n font: IrisGridTheme.font,\n headerBackgroundColor: IrisGridTheme['header-bg'],\n headerColor: IrisGridTheme['header-color'],\n headerSeparatorColor: IrisGridTheme['header-separator-color'],\n headerSeparatorHoverColor: IrisGridTheme['header-separator-hover-color'],\n headerHiddenSeparatorHoverColor:\n IrisGridTheme['header-hidden-separator-hover-color'],\n headerSortBarColor: IrisGridTheme['header-sort-bar-color'],\n headerReverseBarColor: IrisGridTheme['header-reverse-bar-color'],\n headerBarCasingColor: IrisGridTheme['header-bar-casing-color'],\n headerFont: IrisGridTheme['header-font'],\n rowBackgroundColors: IrisGridTheme['row-background-colors'],\n rowHoverBackgroundColor: IrisGridTheme['row-hover-bg'],\n selectionColor: IrisGridTheme['selection-color'],\n selectionOutlineColor: IrisGridTheme['selection-outline-color'],\n selectionOutlineCasingColor:\n IrisGridTheme['selection-outline-casing-color'],\n selectedRowHoverBackgroundColor: IrisGridTheme['selected-row-hover-bg'],\n scrollBarBackgroundColor: IrisGridTheme['scroll-bar-bg'],\n scrollBarHoverBackgroundColor: IrisGridTheme['scroll-bar-hover-bg'],\n scrollBarCasingColor: IrisGridTheme['scroll-bar-casing-color'],\n scrollBarCornerColor: IrisGridTheme['scroll-bar-corner-color'],\n scrollBarColor: IrisGridTheme['scroll-bar-color'],\n scrollBarHoverColor: IrisGridTheme['scroll-bar-hover-color'],\n scrollBarActiveColor: IrisGridTheme['scroll-bar-active-color'],\n scrollBarSelectionTickColor: IrisGridTheme['selected-row-hover-bg'],\n scrollBarActiveSelectionTickColor:\n IrisGridTheme['scroll-bar-active-selection-tick-color'],\n textColor: IrisGridTheme['text-color'],\n hyperlinkColor: IrisGridTheme['hyperlink-color'],\n positiveNumberColor: IrisGridTheme['positive-number-color'],\n negativeNumberColor: IrisGridTheme['negative-number-color'],\n zeroNumberColor: IrisGridTheme['zero-number-color'],\n dateColor: IrisGridTheme['date-color'],\n pendingTextColor: IrisGridTheme['pending-text-color'],\n errorTextColor: IrisGridTheme['error-text-color'],\n nullStringColor: IrisGridTheme['null-string-color'],\n filterBarActiveBackgroundColor: IrisGridTheme['filter-bar-active-bg'],\n filterBarExpandedBackgroundColor: IrisGridTheme['filter-bar-expanded-bg'],\n filterBarExpandedActiveBackgroundColor:\n IrisGridTheme['filter-bar-expanded-active-bg'],\n filterBarExpandedActiveCellBackgroundColor:\n IrisGridTheme['filter-bar-expanded-active-cell-bg'],\n filterBarSeparatorColor: IrisGridTheme['filter-bar-separator-color'],\n filterBarActiveColor: IrisGridTheme['filter-bar-active-color'],\n filterBarErrorColor: IrisGridTheme['filter-bar-error-color'],\n filterIconColor: IrisGridTheme['filter-icon-color'],\n scrimColor: IrisGridTheme['scrim-color'],\n contextMenuSortIconColor: IrisGridTheme['context-menu-sort-icon-color'],\n contextMenuReverseIconColor:\n IrisGridTheme['context-menu-reverse-icon-color'],\n\n allowRowResize: false,\n autoSelectRow: true,\n gridColumnColor: null,\n gridRowColor: null,\n groupedColumnDividerColor: IrisGridTheme['grouped-column-divider-color'],\n columnHoverBackgroundColor: null,\n headerHorizontalPadding: 12,\n scrollBarSize: 13,\n scrollBarHoverSize: 16, // system default scrollbar width is 17\n minScrollHandleSize: 24,\n rowHeight: parseInt(IrisGridTheme['row-height'], 10) || 19, // IrisGrid test breaks without the fallback value\n columnWidth: 100,\n rowHeaderWidth: 0,\n rowFooterWidth: 60,\n columnHeaderHeight: parseInt(IrisGridTheme['header-height'], 10) || 30,\n filterBarHeight: 30, // includes 1px casing at bottom\n filterBarCollapsedHeight: 5, // includes 1px casing at bottom\n sortHeaderBarHeight: 2,\n reverseHeaderBarHeight: 4,\n filterBarHorizontalPadding: 4,\n\n shadowAlpha: parseFloat(IrisGridTheme['row-shadow-alpha']) || 0.15,\n\n // Amount of blur to apply to the bottom of the scrim while animating in\n scrimBlurSize: 25,\n minScrimTransitionTime: 150,\n maxScrimTransitionTime: 350,\n\n scrollSnapToRow: true,\n\n linkerColumnHoverBackgroundColor: IrisGridTheme['linker-column-hover-bg'],\n\n treeLineColor: IrisGridTheme['tree-line-color'],\n treeMarkerColor: IrisGridTheme['tree-marker-color'],\n treeMarkerHoverColor: IrisGridTheme['tree-marker-hover-color'],\n\n floatingGridColumnColor: null,\n floatingGridRowColor: IrisGridTheme['floating-grid-row-color'],\n floatingRowBackgroundColors:\n IrisGridTheme['floating-row-background-colors'],\n floatingDividerInnerColor: IrisGridTheme['floating-divider-inner-color'],\n floatingDividerOuterColor: IrisGridTheme['floating-divider-outer-color'],\n\n overflowButtonColor: IrisGridTheme['overflow-button-color'],\n overflowButtonHoverColor: IrisGridTheme['overflow-button-hover-color'],\n\n zeroLineColor: IrisGridTheme['zero-line-color'],\n positiveBarColor: IrisGridTheme['positive-bar-color'],\n negativeBarColor: IrisGridTheme['negative-bar-color'],\n markerBarColor: IrisGridTheme['marker-bar-color'],\n });\n}\n"],"mappings":"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"}
@@ -21,6 +21,7 @@
21
21
  selection-outline-color: var(--dh-color-grid-selection-outline);
22
22
  selection-outline-casing-color: var(--dh-color-grid-selection-outline-casing);
23
23
  row-hover-bg: var(--dh-color-grid-row-hover-bg);
24
+ row-shadow-alpha: var(--dh-color-grid-row-shadow-alpha);
24
25
  selected-row-hover-bg: var(--dh-color-grid-row-hover-bg-selected);
25
26
  scroll-bar-active-selection-tick-color: var(--dh-color-grid-scroll-bar-active-selection-tick);
26
27
  scroll-bar-bg: var(--dh-color-grid-scroll-bar-bg);
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../src/IrisGridTheme.module.scss","../../../node_modules/@deephaven/components/scss/custom.scss"],"names":[],"mappings":"AAAA;ACAA;ADSA;EACE;EACA,MACE;EAEF;EACA;EACA;EACA;EACA,eAXc;EAYd;EACA;EACA;EAGA;EACA;EACA;EACA,aACE;EAEF,YA1BW;EA2BX;EAEA;EACA;EACA;EACA;EACA;EACA;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAGA;EAGA;EACA;EACA;EAEA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA","file":"IrisGridTheme.module.css","sourcesContent":["/* stylelint-disable */\n@import '@deephaven/components/scss/custom.scss';\n\n$font-size: 12px;\n$row-height: 19px;\n$header-bg: $content-bg;\n$header-separator-color: $gray-900;\n$header-height: 30px;\n\n:export {\n grid-bg: var(--dh-color-grid-bg);\n font:\n $font-size Fira Sans,\n sans-serif; // must be preloaded\n white: var(--dh-color-white);\n black: var(--dh-color-black);\n header-bg: var(--dh-color-grid-header-bg);\n header-color: var(--dh-color-grid-header-text);\n header-height: $header-height;\n header-separator-color: var(--dh-color-grid-header-separator);\n header-separator-hover-color: var(--dh-color-grid-header-separator-hover);\n header-hidden-separator-hover-color: var(\n --dh-color-grid-header-separator-hidden-hover\n );\n header-sort-bar-color: var(--dh-color-grid-header-sort-bar);\n header-reverse-bar-color: var(--dh-color-grid-header-reverse-bar);\n header-bar-casing-color: var(--dh-color-grid-header-bar-casing);\n header-font:\n 600 $font-size Fira Sans,\n sans-serif; // must be preloaded\n row-height: $row-height;\n row-background-colors: var(--dh-color-grid-row-0-bg)\n var(--dh-color-grid-row-1-bg);\n selection-color: var(--dh-color-grid-selection);\n selection-outline-color: var(--dh-color-grid-selection-outline);\n selection-outline-casing-color: var(--dh-color-grid-selection-outline-casing);\n row-hover-bg: var(--dh-color-grid-row-hover-bg);\n selected-row-hover-bg: var(--dh-color-grid-row-hover-bg-selected);\n scroll-bar-active-selection-tick-color: var(\n --dh-color-grid-scroll-bar-active-selection-tick\n );\n\n scroll-bar-bg: var(--dh-color-grid-scroll-bar-bg);\n scroll-bar-hover-bg: var(--dh-color-grid-scroll-bar-hover-bg);\n scroll-bar-casing-color: var(--dh-color-grid-scroll-bar-casing);\n scroll-bar-corner-color: var(--dh-color-grid-scroll-bar-corner);\n scroll-bar-color: var(--dh-color-grid-scroll-bar);\n scroll-bar-hover-color: var(--dh-color-grid-scroll-bar-hover);\n scroll-bar-active-color: var(--dh-color-grid-scroll-bar-active);\n\n text-color: var(--dh-color-grid-text);\n hyperlink-color: var(--dh-color-grid-text-hyperlink);\n positive-number-color: var(--dh-color-grid-number-positive);\n negative-number-color: var(--dh-color-grid-number-negative);\n zero-number-color: var(--dh-color-grid-number-zero);\n date-color: var(--dh-color-grid-date);\n pending-text-color: var(--dh-color-grid-text-pending);\n error-text-color: var(--dh-color-grid-text-error);\n null-string-color: var(--dh-color-grid-string-null);\n\n filter-bar-active-bg: var(--dh-color-grid-filter-bar-active-bg);\n filter-bar-active-color: var(--dh-color-grid-filter-bar-active);\n filter-bar-expanded-bg: var(--dh-color-grid-filter-bar-expanded-bg);\n filter-bar-expanded-active-bg: var(\n --dh-color-grid-filter-bar-expanded-active-bg\n );\n filter-bar-expanded-active-cell-bg: var(\n --dh-color-grid-filter-bar-expanded-active-cell-bg\n );\n filter-bar-separator-color: var(--dh-color-grid-filter-bar-separator);\n filter-bar-error-color: var(--dh-color-grid-filter-bar-error);\n filter-icon-color: var(--dh-color-grid-filter-icon);\n\n scrim-color: var(--dh-color-grid-scrim);\n context-menu-sort-icon-color: var(--dh-color-grid-context-menu-sort-icon);\n context-menu-reverse-icon-color: var(\n --dh-color-grid-context-menu-reverse-icon\n );\n linker-column-hover-bg: var(--dh-color-grid-column-linker-hover-bg);\n tree-line-color: var(--dh-color-grid-tree-line);\n tree-marker-color: var(--dh-color-grid-tree-marker);\n tree-marker-hover-color: var(--dh-color-grid-tree-marker-hover);\n grouped-column-divider-color: var(--dh-color-grid-column-grouped-divider);\n\n floating-grid-row-color: var(--dh-color-grid-floating-row);\n floating-row-background-colors: var(--dh-color-grid-floating-row-bg);\n floating-divider-inner-color: var(--dh-color-grid-floating-divider-inner);\n floating-divider-outer-color: var(--dh-color-grid-floating-divider-outer);\n\n overflow-button-color: var(--dh-color-grid-overflow-button);\n overflow-button-hover-color: var(--dh-color-grid-overflow-button-hover);\n\n zero-line-color: var(--dh-color-grid-data-bar-zero-line);\n positive-bar-color: var(--dh-color-grid-data-bar-positive);\n negative-bar-color: var(--dh-color-grid-data-bar-negative);\n marker-bar-color: var(--dh-color-grid-data-bar-marker);\n}\n","/* stylelint-disable scss/at-import-no-partial-leading-underscore */\n// Consumers should be able to resolve bootstrap/ to node_modules/bootstrap\n\n//Make bootstrap functions available for use in overrides\n@import 'bootstrap/scss/_functions.scss';\n@import './bootstrap_overrides.scss';\n\n//_variable imports come after bootstrap default overrides,\n// makes all other variables and mixins from bootstrap available\n/// with just importing customer.scss\n@import 'bootstrap/scss/_variables.scss';\n@import 'bootstrap/scss/_mixins.scss';\n\n//New variables come after imports\n@import './new_variables.scss';\n"]}
1
+ {"version":3,"sourceRoot":"","sources":["../src/IrisGridTheme.module.scss","../../../node_modules/@deephaven/components/scss/custom.scss"],"names":[],"mappings":"AAAA;ACAA;ADOA;EACE;EACA,MACE;EAEF;EACA;EACA;EACA;EACA,eAXc;EAYd;EACA;EACA;EAGA;EACA;EACA;EACA,aACE;EAEF,YAxBW;EAyBX;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAGA;EAGA;EACA;EACA;EAEA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA","file":"IrisGridTheme.module.css","sourcesContent":["/* stylelint-disable */\n@import '@deephaven/components/scss/custom.scss';\n\n$font-size: 12px;\n$row-height: 19px;\n$header-height: 30px;\n\n:export {\n grid-bg: var(--dh-color-grid-bg);\n font:\n $font-size Fira Sans,\n sans-serif; // must be preloaded\n white: var(--dh-color-white);\n black: var(--dh-color-black);\n header-bg: var(--dh-color-grid-header-bg);\n header-color: var(--dh-color-grid-header-text);\n header-height: $header-height;\n header-separator-color: var(--dh-color-grid-header-separator);\n header-separator-hover-color: var(--dh-color-grid-header-separator-hover);\n header-hidden-separator-hover-color: var(\n --dh-color-grid-header-separator-hidden-hover\n );\n header-sort-bar-color: var(--dh-color-grid-header-sort-bar);\n header-reverse-bar-color: var(--dh-color-grid-header-reverse-bar);\n header-bar-casing-color: var(--dh-color-grid-header-bar-casing);\n header-font:\n 600 $font-size Fira Sans,\n sans-serif; // must be preloaded\n row-height: $row-height;\n row-background-colors: var(--dh-color-grid-row-0-bg)\n var(--dh-color-grid-row-1-bg);\n selection-color: var(--dh-color-grid-selection);\n selection-outline-color: var(--dh-color-grid-selection-outline);\n selection-outline-casing-color: var(--dh-color-grid-selection-outline-casing);\n row-hover-bg: var(--dh-color-grid-row-hover-bg);\n row-shadow-alpha: var(--dh-color-grid-row-shadow-alpha);\n selected-row-hover-bg: var(--dh-color-grid-row-hover-bg-selected);\n scroll-bar-active-selection-tick-color: var(\n --dh-color-grid-scroll-bar-active-selection-tick\n );\n\n scroll-bar-bg: var(--dh-color-grid-scroll-bar-bg);\n scroll-bar-hover-bg: var(--dh-color-grid-scroll-bar-hover-bg);\n scroll-bar-casing-color: var(--dh-color-grid-scroll-bar-casing);\n scroll-bar-corner-color: var(--dh-color-grid-scroll-bar-corner);\n scroll-bar-color: var(--dh-color-grid-scroll-bar);\n scroll-bar-hover-color: var(--dh-color-grid-scroll-bar-hover);\n scroll-bar-active-color: var(--dh-color-grid-scroll-bar-active);\n\n text-color: var(--dh-color-grid-text);\n hyperlink-color: var(--dh-color-grid-text-hyperlink);\n positive-number-color: var(--dh-color-grid-number-positive);\n negative-number-color: var(--dh-color-grid-number-negative);\n zero-number-color: var(--dh-color-grid-number-zero);\n date-color: var(--dh-color-grid-date);\n pending-text-color: var(--dh-color-grid-text-pending);\n error-text-color: var(--dh-color-grid-text-error);\n null-string-color: var(--dh-color-grid-string-null);\n\n filter-bar-active-bg: var(--dh-color-grid-filter-bar-active-bg);\n filter-bar-active-color: var(--dh-color-grid-filter-bar-active);\n filter-bar-expanded-bg: var(--dh-color-grid-filter-bar-expanded-bg);\n filter-bar-expanded-active-bg: var(\n --dh-color-grid-filter-bar-expanded-active-bg\n );\n filter-bar-expanded-active-cell-bg: var(\n --dh-color-grid-filter-bar-expanded-active-cell-bg\n );\n filter-bar-separator-color: var(--dh-color-grid-filter-bar-separator);\n filter-bar-error-color: var(--dh-color-grid-filter-bar-error);\n filter-icon-color: var(--dh-color-grid-filter-icon);\n\n scrim-color: var(--dh-color-grid-scrim);\n context-menu-sort-icon-color: var(--dh-color-grid-context-menu-sort-icon);\n context-menu-reverse-icon-color: var(\n --dh-color-grid-context-menu-reverse-icon\n );\n linker-column-hover-bg: var(--dh-color-grid-column-linker-hover-bg);\n tree-line-color: var(--dh-color-grid-tree-line);\n tree-marker-color: var(--dh-color-grid-tree-marker);\n tree-marker-hover-color: var(--dh-color-grid-tree-marker-hover);\n grouped-column-divider-color: var(--dh-color-grid-column-grouped-divider);\n\n floating-grid-row-color: var(--dh-color-grid-floating-row);\n floating-row-background-colors: var(--dh-color-grid-floating-row-bg);\n floating-divider-inner-color: var(--dh-color-grid-floating-divider-inner);\n floating-divider-outer-color: var(--dh-color-grid-floating-divider-outer);\n\n overflow-button-color: var(--dh-color-grid-overflow-button);\n overflow-button-hover-color: var(--dh-color-grid-overflow-button-hover);\n\n zero-line-color: var(--dh-color-grid-data-bar-zero-line);\n positive-bar-color: var(--dh-color-grid-data-bar-positive);\n negative-bar-color: var(--dh-color-grid-data-bar-negative);\n marker-bar-color: var(--dh-color-grid-data-bar-marker);\n}\n","/* stylelint-disable scss/at-import-no-partial-leading-underscore */\n// Consumers should be able to resolve bootstrap/ to node_modules/bootstrap\n\n//Make bootstrap functions available for use in overrides\n@import 'bootstrap/scss/_functions.scss';\n@import './bootstrap_overrides.scss';\n\n//_variable imports come after bootstrap default overrides,\n// makes all other variables and mixins from bootstrap available\n/// with just importing customer.scss\n@import 'bootstrap/scss/_variables.scss';\n@import 'bootstrap/scss/_mixins.scss';\n\n//New variables come after imports\n@import './new_variables.scss';\n"]}
@@ -4,12 +4,12 @@
4
4
  }
5
5
  .iris-grid-partition-selector-search .iris-grid-partition-selector-search-empty {
6
6
  color: var(--dh-color-gray-600);
7
- padding: 0.375rem 0.75rem;
7
+ padding: 0.4214rem 0.75rem;
8
8
  text-align: center;
9
9
  }
10
10
  .iris-grid-partition-selector-search .iris-grid-partition-selector-loading {
11
11
  color: var(--dh-color-gray-600);
12
- padding: 0.375rem 0.75rem;
12
+ padding: 0.4214rem 0.75rem;
13
13
  text-align: center;
14
14
  }
15
15
  .iris-grid-partition-selector-search .search-container {
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../../node_modules/@deephaven/components/scss/custom.scss","../src/PartitionSelectorSearch.scss","../../../node_modules/@deephaven/components/scss/bootstrap_overrides.scss"],"names":[],"mappings":"AAAA;ACII;EACE;;AAGJ;EACE,OCMO;EDLP;EACA;;AAEF;EACE,OCCO;EDAP;EACA;;AAEF;EACE;;AACA;EACE,kBCLK","file":"PartitionSelectorSearch.css","sourcesContent":["/* stylelint-disable scss/at-import-no-partial-leading-underscore */\n// Consumers should be able to resolve bootstrap/ to node_modules/bootstrap\n\n//Make bootstrap functions available for use in overrides\n@import 'bootstrap/scss/_functions.scss';\n@import './bootstrap_overrides.scss';\n\n//_variable imports come after bootstrap default overrides,\n// makes all other variables and mixins from bootstrap available\n/// with just importing customer.scss\n@import 'bootstrap/scss/_variables.scss';\n@import 'bootstrap/scss/_mixins.scss';\n\n//New variables come after imports\n@import './new_variables.scss';\n","@import '@deephaven/components/scss/custom.scss';\n$partition-selector-search-input-bg: $gray-500;\n.iris-grid-partition-selector-search {\n .iris-grid-partition-selector-search-list {\n .item-list-scroll-pane {\n border: none;\n }\n }\n .iris-grid-partition-selector-search-empty {\n color: $text-muted;\n padding: $input-padding-y $input-btn-padding-x;\n text-align: center;\n }\n .iris-grid-partition-selector-loading {\n color: $text-muted;\n padding: $input-padding-y $input-btn-padding-x;\n text-align: center;\n }\n .search-container {\n padding: $tooltip-padding-y $tooltip-padding-x;\n .form-control {\n background-color: $partition-selector-search-input-bg;\n }\n }\n}\n","// Styling overrides for bootstrap\n@use 'sass:map';\n\n// Override / set color variables\n$red: var(--dh-color-visual-red);\n$orange: var(--dh-color-visual-orange);\n$yellow: var(--dh-color-visual-yellow);\n$green: var(--dh-color-visual-green);\n$blue: var(--dh-color-visual-blue);\n$purple: var(--dh-color-visual-purple);\n\n//Define our Gray scale\n$gray-100: var(--dh-color-gray-900, #fcfcfa);\n$gray-200: var(--dh-color-gray-800);\n$gray-300: var(--dh-color-gray-700);\n$gray-400: var(--dh-color-gray-600);\n$gray-500: var(--dh-color-gray-500);\n// intentional duplicate, scale doesn't line up otherwise\n// as we have gray-850 and spectrum doesn't and it is needed\n$gray-600: var(--dh-color-gray-500);\n$gray-700: var(--dh-color-gray-400);\n$gray-800: var(--dh-color-gray-300);\n$gray-850: var(--dh-color-gray-200);\n$gray-900: var(--dh-color-gray-75);\n$black: var(--dh-color-black, #1a171a);\n$white: var(--dh-color-white, #f0f0ee);\n\n//Define some UI colors\n$interfacegray: var(--dh-color-content-bg, #2d2a2e);\n$interfaceblue: var(--dh-color-accent-bg);\n$interfacewhite: $white;\n$interfaceblack: $black;\n$content-bg: var(--dh-color-content-bg, #2d2a2e);\n$background: var(--dh-color-bg);\n$foreground: var(--dh-color-fg);\n\n// Extend default Bootstrap $grays map\n$grays-custom: (\n '850': $gray-850,\n);\n$grays: () !default;\n$grays: map-merge($grays, $grays-custom);\n\n// Extend default Bootstrap $colors map\n$colors-custom: (\n 'black': $black,\n);\n$colors: () !default;\n$colors: map-merge($colors, $colors-custom);\n\n// Override default Bootstrap $theme-colors map by mapping each key to itself.\n// These will then be re-mapped inside of `button-outline-variant` and\n// `button-outline-variant` mixins in `bootstrap_override_mixins_buttons.scss`\n$theme-colors-self-map: ();\n@each $key\n in (\n 'primary',\n 'secondary',\n 'success',\n 'info',\n 'warning',\n 'danger',\n 'light',\n 'dark'\n )\n{\n $theme-colors-self-map: map.set($theme-colors-self-map, $key, $key);\n}\n$theme-colors: () !default;\n$theme-colors: map-merge($theme-colors, $theme-colors-self-map);\n\n// Used by bootstrap_override_mixins_buttons.scss to map Bootstrap colors to\n// DH semantic colors\n$bootstrap-dh-semantic-map: (\n 'primary': 'accent',\n 'secondary': 'neutral',\n 'success': 'positive',\n 'info': 'info',\n 'warning': 'notice',\n 'danger': 'negative',\n // We shouldn't be using these, but mapping so they work with our custom\n // `color-yiq` mixin. If we find a way to remove $light + $dark that are\n // defined in Bootstrap _variables.scss, we should remove these\n 'light': 'neutral',\n 'dark': 'neutral',\n);\n\n//Set default colors\n$body-bg: $black;\n$body-color: $interfacewhite;\n\n// Set brand colors\n$primary: var(--dh-color-accent-bg);\n$primary-hover: var(--dh-color-accent-hover-bg);\n$primary-dark: var(--dh-color-accent-down-bg);\n$primary-light: var(--dh-color-accent-1100);\n$secondary: var(--dh-color-neutral-bg);\n$secondary-hover: var(--dh-color-neutral-hover-bg);\n$success: $green;\n$info: $yellow;\n$warning: $orange;\n$danger: var(--dh-color-negative-bg);\n$danger-hover: var(--dh-color-negative-hover-bg);\n// We really don't want to use $light or $dark variables, but Bootstrap defines\n// them in _variables.scss. Explicitly setting them to ensure we are in control\n// of their values. If we can find a way to remove them, we should\n$light: var(--dh-color-gray-light);\n$dark: var(--dh-color-gray-dark);\n// Bootstrap doesn't define $mid, and we want to move away from this particular\n// semantic. Should be deleted by #1635\n$mid: var(--dh-color-gray-mid);\n\n$semantic-colors: (\n 'primary-hover': $primary-hover,\n 'primary-light': $primary-light,\n 'primary-dark': $primary-dark,\n 'mid': $mid,\n 'content-bg': $interfacegray,\n 'background': $interfaceblack,\n 'foreground': $interfacewhite,\n 'secondary-hover': $secondary-hover,\n 'danger-hover': $danger-hover,\n);\n\n$component-active-bg: $primary;\n$theme-color-interval: 9%;\n$yiq-contrasted-threshold: 180;\n\n// Override fonts\n$font-family-sans-serif:\n 'Fira Sans',\n -apple-system,\n blinkmacsystemfont,\n 'Segoe UI',\n 'Roboto',\n 'Helvetica Neue',\n arial,\n sans-serif; //fira sans then native system ui fallbacks\n$font-family-monospace: 'Fira Mono', menlo, monaco, consolas, 'Liberation Mono',\n 'Courier New', monospace;\n$font-family-base: $font-family-sans-serif;\n\n$headings-font-weight: 400;\n\n//Text overides\n$text-muted: $gray-400;\n\n//Style Selection highlight color\n$text-select-color: var(--dh-color-text-highlight);\n\n//Grid variables, same value as default just making easily accessible\n$grid-gutter-width: 30px;\n\n//Visual Overrides\n$border-radius: 4px;\n$box-shadow: 0 0.1rem 1rem hsla(var(--dh-color-black-hsl), 0.45); //because our UI is so dark, we need darker default shadows\n$box-shadow-900: 0 0.1rem 1rem hsla(var(--dh-color-true-black-hsl), 0.45); //darkest shadow for $black popups over $black UI\n\n//Override Btn\n$btn-border-radius: 4rem;\n$btn-padding-x: 1.5rem;\n$btn-transition:\n color 0.12s ease-in-out,\n background-color 0.12s ease-in-out,\n border-color 0.12s ease-in-out,\n box-shadow 0.12s ease-in-out; //default 0.15 is too long\n$btn-border-width: 2px;\n$btn-font-weight: var(--spectrum-global-font-weight-bold);\n\n//Override Inputs\n$input-bg: var(--dh-color-input-bg);\n$input-disabled-bg: var(--dh-color-input-disabled-bg);\n$input-color: var(--dh-color-input-fg);\n$input-border-color: var(--dh-color-input-border);\n$input-placeholder-color: var(--dh-color-input-placeholder);\n$input-focus-border-color: var(--dh-color-input-focus-border);\n\n$input-btn-focus-width: 0.2rem;\n$input-btn-focus-color: hsla(var(--dh-color-accent-hsl), 0.35);\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color;\n\n//checkbox\n$custom-control-indicator-bg: $gray-600;\n$custom-control-indicator-active-bg: var(--dh-color-accent-1100);\n$custom-control-indicator-bg-size: 75% 75%;\n$custom-control-indicator-disabled-bg: $gray-800;\n$custom-control-indicator-checked-disabled-bg: $gray-800;\n$custom-control-label-disabled-color: $gray-400;\n\n// The $custom-select-indicator variable is used by Bootstrap to provide the\n// icon for the select dropdown. Inline svgs can't use CSS variables, so we hard\n// code the color to #929192 (the default value of --dh-color-gray-600). PR #1651\n// overrides this icon altogether for known dropdowns, so technically we may not\n// need this, but it's here in case there are any remaining instances.\n$custom-select-indicator-color: #929192;\n$custom-select-bg-size: 16px 16px;\n//dhSort icon encoded\n$custom-select-indicator: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M4 7l-.4-.8 4-3.7h.8l4 3.7-.4.8H4zm0 2l-.4.8 4 3.7h.8l4-3.7L12 9H4z'/%3E%3C/svg%3E\"),\n '#',\n '%23'\n);\n$custom-select-focus-box-shadow: $input-btn-focus-box-shadow;\n$custom-select-disabled-color: $gray-500;\n$custom-select-disabled-bg: $gray-800;\n\n//modal\n$modal-content-bg: $gray-200;\n$modal-content-border-width: 0;\n$modal-md: 550px;\n\n// Toast notification\n$toast-bg: var(--dh-color-accent-100);\n$toast-color: var(--dh-color-text);\n$toast-error-bg: var(--dh-color-negative-bg);\n$toast-error-color: var(--dh-color-text);\n\n//tooltips\n$tooltip-bg: var(--dh-color-tooltip-bg);\n$tooltip-color: var(--dh-color-tooltip-fg);\n$tooltip-box-shadow: 0 0.1rem 1.5rem 0.1rem var(--dh-color-tooltip-box-shadow);\n\n//drowdowns\n$dropdown-bg: $gray-600;\n$dropdown-link-color: $foreground;\n$dropdown-link-hover-color: $foreground;\n$dropdown-link-hover-bg: $primary;\n$dropdown-divider-bg: $gray-700;\n\n//context menus\n$contextmenu-bg: $gray-600;\n$contextmenu-color: $foreground;\n$contextmenu-disabled-color: $text-muted;\n$contextmenu-keyboard-selected-bg: hsla(var(--dh-color-accent-hsl), 0.5);\n$contextmenu-selected-bg: $primary;\n$contextmenu-selected-color: $foreground;\n\n//links\n$link-color: $gray-400;\n$link-hover-color: $foreground;\n\n//progress-bar\n$progress-bg: $gray-600;\n$progress-border-radius: 1rem;\n\n// Set global options\n$enable-shadows: false;\n$enable-gradients: false;\n$enable-print-styles: false; //I don't think anyone should expect to \"print\" this app.\n\n// Transition times\n$transition: 0.15s;\n$transition-mid: 0.2s;\n$transition-long: 0.3s;\n$transition-slow: 0.6s;\n\n//form-validation icon, uses vsWarning icon encoded here as svg\n$form-feedback-icon-invalid-color: $danger;\n$form-feedback-icon-invalid: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cg fill='none'%3E%3Cg fill='#{$form-feedback-icon-invalid-color}'%3E%3Cpath d='M7.56 1h.88l6.54 12.26-.44.74H1.44L1 13.26 7.56 1zM8 2.28 2.28 13H13.7L8 2.28zM8.625 12v-1h-1.25v1h1.25zm-1.25-2V6h1.25v4h-1.25z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E \"),\n '#',\n '%23'\n);\n\n// This section of variables is not consumed directly by DH, but they need to be\n// defined for sass to compile _variables\n$table-dark-bg: $gray-800;\n$table-dark-accent-bg: var(--dh-color-highlight-hover);\n$table-dark-hover-bg: var(--dh-color-highlight-active);\n$table-dark-border-color: $gray-700;\n$popover-bg: var(--dh-color-tooltip-bg);\n$popover-border-color: var(--dh-color-overlay-modal-bg);\n$popover-header-bg: #000;\n$popover-arrow-outer-color: var(--dh-color-dropshadow);\n$custom-range-thumb-active-bg: var(--dh-color-accent-1100);\n"]}
1
+ {"version":3,"sourceRoot":"","sources":["../../../node_modules/@deephaven/components/scss/custom.scss","../src/PartitionSelectorSearch.scss","../../../node_modules/@deephaven/components/scss/bootstrap_overrides.scss"],"names":[],"mappings":"AAAA;ACII;EACE;;AAGJ;EACE,OCMO;EDLP;EACA;;AAEF;EACE,OCCO;EDAP;EACA;;AAEF;EACE;;AACA;EACE,kBCLK","file":"PartitionSelectorSearch.css","sourcesContent":["/* stylelint-disable scss/at-import-no-partial-leading-underscore */\n// Consumers should be able to resolve bootstrap/ to node_modules/bootstrap\n\n//Make bootstrap functions available for use in overrides\n@import 'bootstrap/scss/_functions.scss';\n@import './bootstrap_overrides.scss';\n\n//_variable imports come after bootstrap default overrides,\n// makes all other variables and mixins from bootstrap available\n/// with just importing customer.scss\n@import 'bootstrap/scss/_variables.scss';\n@import 'bootstrap/scss/_mixins.scss';\n\n//New variables come after imports\n@import './new_variables.scss';\n","@import '@deephaven/components/scss/custom.scss';\n$partition-selector-search-input-bg: $gray-500;\n.iris-grid-partition-selector-search {\n .iris-grid-partition-selector-search-list {\n .item-list-scroll-pane {\n border: none;\n }\n }\n .iris-grid-partition-selector-search-empty {\n color: $text-muted;\n padding: $input-padding-y $input-btn-padding-x;\n text-align: center;\n }\n .iris-grid-partition-selector-loading {\n color: $text-muted;\n padding: $input-padding-y $input-btn-padding-x;\n text-align: center;\n }\n .search-container {\n padding: $tooltip-padding-y $tooltip-padding-x;\n .form-control {\n background-color: $partition-selector-search-input-bg;\n }\n }\n}\n","// Styling overrides for bootstrap\n@use 'sass:map';\n\n// Override / set color variables\n$red: var(--dh-color-visual-red);\n$orange: var(--dh-color-visual-orange);\n$yellow: var(--dh-color-visual-yellow);\n$green: var(--dh-color-visual-green);\n$blue: var(--dh-color-visual-blue);\n$purple: var(--dh-color-visual-purple);\n\n//Define our Gray scale\n$gray-100: var(--dh-color-gray-900, #fcfcfa);\n$gray-200: var(--dh-color-gray-800);\n$gray-300: var(--dh-color-gray-700);\n$gray-400: var(--dh-color-gray-600);\n$gray-500: var(--dh-color-gray-500);\n// intentional duplicate, scale doesn't line up otherwise\n// as we have gray-850 and spectrum doesn't and it is needed\n$gray-600: var(--dh-color-gray-500);\n$gray-700: var(--dh-color-gray-400);\n$gray-800: var(--dh-color-gray-300);\n$gray-850: var(--dh-color-gray-200);\n$gray-900: var(--dh-color-gray-75);\n$black: var(--dh-color-black, #1a171a);\n$white: var(--dh-color-white, #f0f0ee);\n\n//Define some UI colors\n$interfacegray: var(--dh-color-content-bg, #2d2a2e);\n$interfaceblue: var(--dh-color-accent-bg);\n$interfacewhite: $white;\n$interfaceblack: $black;\n$content-bg: var(--dh-color-content-bg, #2d2a2e);\n$background: var(--dh-color-bg);\n$foreground: var(--dh-color-fg);\n\n// Extend default Bootstrap $grays map\n$grays-custom: (\n '850': $gray-850,\n);\n$grays: () !default;\n$grays: map-merge($grays, $grays-custom);\n\n// Extend default Bootstrap $colors map\n$colors-custom: (\n 'black': $black,\n);\n$colors: () !default;\n$colors: map-merge($colors, $colors-custom);\n\n// Override default Bootstrap $theme-colors map by mapping each key to itself.\n// These will then be re-mapped inside of `button-outline-variant` and\n// `button-outline-variant` mixins in `bootstrap_override_mixins_buttons.scss`\n$theme-colors-self-map: ();\n@each $key\n in (\n 'primary',\n 'secondary',\n 'success',\n 'info',\n 'warning',\n 'danger',\n 'light',\n 'dark'\n )\n{\n $theme-colors-self-map: map.set($theme-colors-self-map, $key, $key);\n}\n$theme-colors: () !default;\n$theme-colors: map-merge($theme-colors, $theme-colors-self-map);\n\n// Used by bootstrap_override_mixins_buttons.scss to map Bootstrap colors to\n// DH semantic colors\n$bootstrap-dh-semantic-map: (\n 'primary': 'accent',\n 'secondary': 'neutral',\n 'success': 'positive',\n 'info': 'info',\n 'warning': 'notice',\n 'danger': 'negative',\n // We shouldn't be using these, but mapping so they work with our custom\n // `color-yiq` mixin. If we find a way to remove $light + $dark that are\n // defined in Bootstrap _variables.scss, we should remove these\n 'light': 'neutral',\n 'dark': 'neutral',\n);\n\n//Set default colors\n$body-bg: $black;\n$body-color: $interfacewhite;\n\n// Set brand colors\n$primary: var(--dh-color-accent-bg);\n$primary-hover: var(--dh-color-accent-hover-bg);\n$primary-dark: var(--dh-color-accent-down-bg);\n$primary-light: var(--dh-color-accent-1100);\n$secondary: var(--dh-color-neutral-bg);\n$secondary-hover: var(--dh-color-neutral-hover-bg);\n$success: $green;\n$info: $yellow;\n$warning: $orange;\n$danger: var(--dh-color-negative-bg);\n$danger-hover: var(--dh-color-negative-hover-bg);\n// We really don't want to use $light or $dark variables, but Bootstrap defines\n// them in _variables.scss. Explicitly setting them to ensure we are in control\n// of their values. If we can find a way to remove them, we should\n$light: var(--dh-color-gray-light);\n$dark: var(--dh-color-gray-dark);\n// Bootstrap doesn't define $mid, and we want to move away from this particular\n// semantic. Should be deleted by #1635\n$mid: var(--dh-color-gray-mid);\n\n$semantic-colors: (\n 'primary-hover': $primary-hover,\n 'primary-light': $primary-light,\n 'primary-dark': $primary-dark,\n 'mid': $mid,\n 'content-bg': $interfacegray,\n 'background': $interfaceblack,\n 'foreground': $interfacewhite,\n 'secondary-hover': $secondary-hover,\n 'danger-hover': $danger-hover,\n);\n\n$component-active-bg: $primary;\n$theme-color-interval: 9%;\n$yiq-contrasted-threshold: 180;\n\n// Override fonts\n$font-family-sans-serif:\n 'Fira Sans',\n -apple-system,\n blinkmacsystemfont,\n 'Segoe UI',\n 'Roboto',\n 'Helvetica Neue',\n arial,\n sans-serif; //fira sans then native system ui fallbacks\n$font-family-monospace: 'Fira Mono', menlo, monaco, consolas, 'Liberation Mono',\n 'Courier New', monospace;\n$font-family-base: $font-family-sans-serif;\n\n$headings-font-weight: 400;\n\n//Text overides\n$text-muted: $gray-400;\n\n//Style Selection highlight color\n$text-select-color: var(--dh-color-text-highlight);\n\n//Grid variables, same value as default just making easily accessible\n$grid-gutter-width: 30px;\n\n//Visual Overrides\n$border-radius: 4px;\n$box-shadow: 0 0.1rem 1rem var(--dh-color-dropshadow);\n\n//Override Btn\n$btn-border-radius: 4rem;\n$btn-padding-x: 1.5rem;\n$btn-transition:\n color 0.12s ease-in-out,\n background-color 0.12s ease-in-out,\n border-color 0.12s ease-in-out,\n box-shadow 0.12s ease-in-out; //default 0.15 is too long\n$btn-border-width: 2px;\n$btn-font-weight: var(--spectrum-global-font-weight-bold);\n$btn-line-height: 1.3;\n\n//Override Inputs\n$input-bg: var(--dh-color-input-bg);\n$input-disabled-bg: var(--dh-color-input-disabled-bg);\n$input-color: var(--dh-color-input-fg);\n$input-border-color: var(--dh-color-input-border);\n$input-placeholder-color: var(--dh-color-input-placeholder);\n$input-focus-border-color: var(--dh-color-input-focus-border);\n\n$input-btn-focus-width: 0.2rem;\n$input-btn-focus-color: hsla(var(--dh-color-accent-hsl), 0.35);\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color;\n$input-btn-line-height: 1.3;\n// Bootstrap uses a calc expression to determine the input height (calc(line-height + 2*padding-y + border)).\n// The padding-y value has to be in rem to match units. Using 0.4214rem with 1.3\n// line height gets us to 31.99px vs Spectrum's 32px.\n$input-btn-padding-y: 0.4214rem;\n\n//checkbox\n$custom-control-indicator-bg: var(--dh-color-input-bg);\n$custom-control-indicator-border-color: var(--dh-color-input-border);\n$custom-checkbox-indicator-border-radius: 2px;\n$custom-control-indicator-border-width: 2px;\n$custom-control-indicator-active-bg: var(--dh-color-input-bg);\n$custom-control-indicator-active-border-color: var(--dh-color-input-fg);\n$custom-control-indicator-checked-bg: var(--dh-color-input-fg);\n$custom-control-indicator-checked-color: black; // used as mask fill color\n$custom-checkbox-indicator-indeterminate-bg: var(--dh-color-input-fg);\n$custom-control-indicator-bg-size: 75% 75%;\n$custom-control-indicator-disabled-bg: var(--dh-color-input-disabled-bg);\n$custom-control-indicator-checked-disabled-bg: var(\n --dh-color-input-disabled-bg\n);\n$custom-control-label-disabled-color: var(--dh-color-input-disabled-fg);\n\n// The $custom-select-indicator variable is used by Bootstrap to provide the\n// icon for the select dropdown. Inline svgs can't use CSS variables, so we hard\n// code the color to #929192 (the default value of --dh-color-gray-600). PR #1651\n// overrides this icon altogether for known dropdowns, so technically we may not\n// need this, but it's here in case there are any remaining instances.\n$custom-select-indicator-color: #929192;\n$custom-select-bg: var(--dh-color-selector-bg);\n$custom-select-bg-size: 16px 16px;\n//dhSort icon encoded\n$custom-select-indicator: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M4 7l-.4-.8 4-3.7h.8l4 3.7-.4.8H4zm0 2l-.4.8 4 3.7h.8l4-3.7L12 9H4z'/%3E%3C/svg%3E\"),\n '#',\n '%23'\n);\n$custom-select-focus-box-shadow: $input-btn-focus-box-shadow;\n$custom-select-disabled-color: $gray-500;\n$custom-select-disabled-bg: $gray-800;\n\n//modal\n$modal-content-bg: $content-bg;\n$modal-content-border-width: 0;\n$modal-md: 550px;\n$close-color: var(--dh-color-text);\n$close-text-shadow: none;\n\n// Toast notification\n$toast-bg: var(--dh-color-accent-100);\n$toast-color: var(--dh-color-text);\n$toast-error-bg: var(--dh-color-negative-bg);\n$toast-error-color: var(--dh-color-text);\n\n//tooltips\n$tooltip-bg: var(--dh-color-tooltip-bg);\n$tooltip-color: var(--dh-color-tooltip-fg);\n$tooltip-box-shadow: 0 0.1rem 1.5rem 0.1rem var(--dh-color-tooltip-box-shadow);\n\n//drowdowns\n$dropdown-bg: $gray-600;\n$dropdown-link-color: $foreground;\n$dropdown-link-hover-color: $foreground;\n$dropdown-link-hover-bg: $primary;\n$dropdown-divider-bg: $gray-700;\n\n//context menus\n$contextmenu-bg: var(--dh-color-popover-bg);\n$contextmenu-color: var(--dh-color-text);\n$contextmenu-disabled-color: var(--dh-color-input-disabled-fg);\n$contextmenu-keyboard-selected-bg: var(--dh-color-keyboard-selected-bg);\n$contextmenu-selected-bg: var(--dh-color-item-list-hover-bg);\n$contextmenu-selected-color: var(--dh-color-item-list-selected-fg);\n\n//hr\n$hr-border-color: var(--dh-color-hr);\n\n//links\n$link-color: $gray-400;\n$link-hover-color: $foreground;\n\n//progress-bar\n$progress-bg: $gray-600;\n$progress-border-radius: 1rem;\n\n// Set global options\n$enable-shadows: false;\n$enable-gradients: false;\n$enable-print-styles: false; //I don't think anyone should expect to \"print\" this app.\n\n// Transition times\n$transition: 0.15s;\n$transition-mid: 0.2s;\n$transition-long: 0.3s;\n$transition-slow: 0.6s;\n\n//form-validation icon, uses vsWarning icon encoded here as svg\n$form-feedback-icon-invalid-color: $danger;\n$form-feedback-icon-invalid: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cg fill='none'%3E%3Cg fill='#{$form-feedback-icon-invalid-color}'%3E%3Cpath d='M7.56 1h.88l6.54 12.26-.44.74H1.44L1 13.26 7.56 1zM8 2.28 2.28 13H13.7L8 2.28zM8.625 12v-1h-1.25v1h1.25zm-1.25-2V6h1.25v4h-1.25z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E \"),\n '#',\n '%23'\n);\n\n// This section of variables is not consumed directly by DH, but they need to be\n// defined for sass to compile _variables\n$table-dark-bg: $gray-800;\n$table-dark-accent-bg: var(--dh-color-highlight-hover);\n$table-dark-hover-bg: var(--dh-color-highlight-active);\n$table-dark-border-color: $gray-700;\n$popover-bg: var(--dh-color-tooltip-bg);\n$popover-border-color: var(--dh-color-overlay-modal-bg);\n$popover-header-bg: #000;\n$popover-arrow-outer-color: var(--dh-color-dropshadow);\n$custom-range-thumb-active-bg: var(--dh-color-accent-1100);\n"]}
@@ -1,13 +1,6 @@
1
1
  /* stylelint-disable scss/at-import-no-partial-leading-underscore */
2
2
  .pending-data-bottom-bar {
3
- background-color: var(--dh-color-content-bg, #2d2a2e);
4
- }
5
- .pending-data-bottom-bar .buttons-container .btn-outline-primary {
6
- color: var(--dh-color-gray-900, #fcfcfa);
7
- border-color: var(--dh-color-gray-900, #fcfcfa);
8
- }
9
- .pending-data-bottom-bar .buttons-container .btn-outline-primary:hover {
10
- background-color: var(--dh-color-negative-hover-bg);
3
+ background-color: var(--dh-color-surface-bg);
11
4
  }
12
5
 
13
6
  /*# sourceMappingURL=PendingDataBottomBar.css.map */