@deephaven/iris-grid 0.19.2-beta.0 → 0.19.2-beta.4

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 (86) hide show
  1. package/dist/AdvancedFilterCreator.js +1 -1
  2. package/dist/AdvancedFilterCreator.js.map +1 -1
  3. package/dist/AdvancedFilterCreatorSelectValueList.js +1 -1
  4. package/dist/AdvancedFilterCreatorSelectValueList.js.map +1 -1
  5. package/dist/ColumnStatistics.js +2 -2
  6. package/dist/ColumnStatistics.js.map +1 -1
  7. package/dist/FilterInputField.d.ts.map +1 -1
  8. package/dist/FilterInputField.js +2 -2
  9. package/dist/FilterInputField.js.map +1 -1
  10. package/dist/IrisGrid.d.ts +1 -1
  11. package/dist/IrisGrid.d.ts.map +1 -1
  12. package/dist/IrisGrid.js +8 -6
  13. package/dist/IrisGrid.js.map +1 -1
  14. package/dist/IrisGridCopyHandler.d.ts.map +1 -1
  15. package/dist/IrisGridCopyHandler.js +1 -1
  16. package/dist/IrisGridCopyHandler.js.map +1 -1
  17. package/dist/IrisGridMetricCalculator.js +2 -2
  18. package/dist/IrisGridMetricCalculator.js.map +1 -1
  19. package/dist/IrisGridRenderer.d.ts.map +1 -1
  20. package/dist/IrisGridRenderer.js +23 -20
  21. package/dist/IrisGridRenderer.js.map +1 -1
  22. package/dist/IrisGridTableModel.d.ts.map +1 -1
  23. package/dist/IrisGridTableModel.js +10 -2
  24. package/dist/IrisGridTableModel.js.map +1 -1
  25. package/dist/IrisGridTableModelTemplate.js +34 -26
  26. package/dist/IrisGridTableModelTemplate.js.map +1 -1
  27. package/dist/IrisGridTestUtils.d.ts.map +1 -1
  28. package/dist/IrisGridTestUtils.js +2 -1
  29. package/dist/IrisGridTestUtils.js.map +1 -1
  30. package/dist/IrisGridTreeTableModel.js +1 -1
  31. package/dist/IrisGridTreeTableModel.js.map +1 -1
  32. package/dist/IrisGridUtils.js +4 -4
  33. package/dist/IrisGridUtils.js.map +1 -1
  34. package/dist/PendingDataBottomBar.d.ts.map +1 -1
  35. package/dist/PendingDataBottomBar.js +3 -3
  36. package/dist/PendingDataBottomBar.js.map +1 -1
  37. package/dist/format-context-menus/CustomFormatAction.js +1 -1
  38. package/dist/format-context-menus/CustomFormatAction.js.map +1 -1
  39. package/dist/format-context-menus/DecimalFormatContextMenu.js +1 -1
  40. package/dist/format-context-menus/DecimalFormatContextMenu.js.map +1 -1
  41. package/dist/format-context-menus/FormatContextMenuUtils.js +1 -1
  42. package/dist/format-context-menus/FormatContextMenuUtils.js.map +1 -1
  43. package/dist/format-context-menus/IntegerFormatContextMenu.js +1 -1
  44. package/dist/format-context-menus/IntegerFormatContextMenu.js.map +1 -1
  45. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.d.ts.map +1 -1
  46. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js +2 -2
  47. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js.map +1 -1
  48. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js +2 -2
  49. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js.map +1 -1
  50. package/dist/mousehandlers/IrisGridContextMenuHandler.js +3 -3
  51. package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
  52. package/dist/mousehandlers/IrisGridFilterMouseHandler.js +2 -2
  53. package/dist/mousehandlers/IrisGridFilterMouseHandler.js.map +1 -1
  54. package/dist/sidebar/CustomColumnBuilder.d.ts +0 -1
  55. package/dist/sidebar/CustomColumnBuilder.d.ts.map +1 -1
  56. package/dist/sidebar/CustomColumnBuilder.js +0 -6
  57. package/dist/sidebar/CustomColumnBuilder.js.map +1 -1
  58. package/dist/sidebar/CustomColumnInput.js +1 -1
  59. package/dist/sidebar/CustomColumnInput.js.map +1 -1
  60. package/dist/sidebar/InputEditor.js +2 -2
  61. package/dist/sidebar/InputEditor.js.map +1 -1
  62. package/dist/sidebar/RollupRows.d.ts.map +1 -1
  63. package/dist/sidebar/RollupRows.js +10 -10
  64. package/dist/sidebar/RollupRows.js.map +1 -1
  65. package/dist/sidebar/TableCsvExporter.d.ts +1 -1
  66. package/dist/sidebar/TableCsvExporter.d.ts.map +1 -1
  67. package/dist/sidebar/TableCsvExporter.js +51 -27
  68. package/dist/sidebar/TableCsvExporter.js.map +1 -1
  69. package/dist/sidebar/TableSaver.d.ts +4 -1
  70. package/dist/sidebar/TableSaver.d.ts.map +1 -1
  71. package/dist/sidebar/TableSaver.js +8 -6
  72. package/dist/sidebar/TableSaver.js.map +1 -1
  73. package/dist/sidebar/VisibilityOrderingBuilder.d.ts +3 -3
  74. package/dist/sidebar/VisibilityOrderingBuilder.d.ts.map +1 -1
  75. package/dist/sidebar/VisibilityOrderingBuilder.js +2 -2
  76. package/dist/sidebar/VisibilityOrderingBuilder.js.map +1 -1
  77. package/dist/sidebar/aggregations/Aggregations.js +1 -1
  78. package/dist/sidebar/aggregations/Aggregations.js.map +1 -1
  79. package/dist/sidebar/conditional-formatting/ConditionEditor.d.ts.map +1 -1
  80. package/dist/sidebar/conditional-formatting/ConditionEditor.js +2 -2
  81. package/dist/sidebar/conditional-formatting/ConditionEditor.js.map +1 -1
  82. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js.map +1 -1
  83. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.d.ts.map +1 -1
  84. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js +1 -1
  85. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js.map +1 -1
  86. package/package.json +15 -15
@@ -533,7 +533,7 @@ class AdvancedFilterCreator extends PureComponent {
533
533
  className: "advanced-filter-column-name"
534
534
  }, column.name, "\xA0", /*#__PURE__*/React.createElement("span", {
535
535
  className: "column-type"
536
- }, "(", columnType, ")")), filterItemElements, isValuesTableAvailable && !valuesTableError && /*#__PURE__*/React.createElement(React.Fragment, null, !isBoolean && /*#__PURE__*/React.createElement("hr", null), /*#__PURE__*/React.createElement("div", {
536
+ }, "(", columnType, ")")), filterItemElements, isValuesTableAvailable && valuesTableError == null && /*#__PURE__*/React.createElement(React.Fragment, null, !isBoolean && /*#__PURE__*/React.createElement("hr", null), /*#__PURE__*/React.createElement("div", {
537
537
  className: "form-group"
538
538
  }, /*#__PURE__*/React.createElement(AdvancedFilterCreatorSelectValue, {
539
539
  table: valuesTable,
@@ -1 +1 @@
1
- {"version":3,"file":"AdvancedFilterCreator.js","names":["React","PureComponent","classNames","FontAwesomeIcon","memoize","Operator","FilterOperator","assertOperatorValue","assertFilterOperatorValue","dhSortAmountDown","dhNewCircleLargeFilled","TableUtils","ContextActionUtils","Tooltip","Log","PromiseUtils","assertNotNull","shortid","AdvancedFilterCreatorFilterItem","AdvancedFilterCreatorSelectValue","log","module","AdvancedFilterCreator","makeFilterItem","key","constructor","props","columnType","getFilterTypes","handleAddAnd","bind","handleAddOr","handleChangeFilterOperator","handleDone","handleFilterChange","handleFilterDelete","handleSelectValueChange","handleReset","handleSortDown","handleSortUp","handleSubmit","handleFocusTrapStart","handleFocusTrapEnd","handleUpdateTimeout","focusTrapContainer","createRef","options","filterOperators","invertSelection","selectedValues","filterItems","map","selectedType","value","length","push","state","valuesTableError","valuesTable","undefined","componentDidMount","initValuesTable","componentWillUnmount","debounceTimeout","clearTimeout","sendUpdate","valuesTablePromise","cancel","getFilterChangeHandler","index","getFilterDeleteHandler","model","column","isValuesTableAvailable","debug","makeCancelableTablePromise","then","sort","columns","asc","applySort","setState","catch","error","isCanceled","current","querySelector","focus","inputs","querySelectorAll","element","concat","and","or","event","target","currentTarget","operator","strIndex","dataset","parseInt","startUpdateTimer","filterIndex","splice","addToExisting","isModifierKeyDown","sortTable","sortDirection","descending","ascending","stopUpdateTimer","preventDefault","onDone","shouldShowAddFilter","filterItem","direction","onSortChange","setTimeout","debounceFilterUpdate","onFilterChange","formatter","items","filter","operators","i","slice","makeAdvancedFilter","timeZone","render","isBoolean","isBooleanType","type","isDateType","filterTypes","substring","lastIndexOf","filterItemElements","filterOperator","isAndFilter","operatorElement","active","showAddFilterItem","addFilterItem","hidden","name"],"sources":["../src/AdvancedFilterCreator.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-noninteractive-tabindex */\n// disabled for tab-index on focus traps, which are intentionally non-interactive\n\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport memoize from 'memoize-one';\nimport {\n Operator as FilterOperator,\n OperatorValue as FilterOperatorValue,\n TypeValue as FilterTypeValue,\n assertOperatorValue as assertFilterOperatorValue,\n} from '@deephaven/filters';\nimport { dhSortAmountDown, dhNewCircleLargeFilled } from '@deephaven/icons';\nimport {\n Formatter,\n TableUtils,\n SortDirection,\n FilterItem,\n} from '@deephaven/jsapi-utils';\nimport { ContextActionUtils, Tooltip } from '@deephaven/components';\nimport Log from '@deephaven/log';\nimport {\n CancelablePromise,\n PromiseUtils,\n assertNotNull,\n} from '@deephaven/utils';\nimport { Column, FilterCondition, Table } from '@deephaven/jsapi-shim';\nimport shortid from 'shortid';\nimport AdvancedFilterCreatorFilterItem from './AdvancedFilterCreatorFilterItem';\nimport AdvancedFilterCreatorSelectValue from './AdvancedFilterCreatorSelectValue';\nimport './AdvancedFilterCreator.scss';\nimport IrisGridModel from './IrisGridModel';\nimport { AdvancedFilterOptions } from './CommonTypes';\n\nconst log = Log.module('AdvancedFilterCreator');\n\ntype FilterChangeHandler = (\n selectedType: FilterTypeValue,\n value: string\n) => void;\n\ninterface AdvancedFilterCreatorProps {\n model: IrisGridModel;\n column: Column;\n onFilterChange: (\n column: Column,\n filter: FilterCondition | null,\n options: AdvancedFilterOptions\n ) => void;\n onSortChange: (\n column: Column,\n direction: SortDirection,\n addToExisting?: boolean\n ) => void;\n onDone: () => void;\n options: AdvancedFilterOptions;\n sortDirection: SortDirection;\n formatter: Formatter;\n}\n\ninterface AdvancedFilterItem {\n selectedType?: FilterTypeValue;\n value?: string;\n key: string;\n}\n\ninterface AdvancedFilterCreatorState {\n // Filter items\n filterItems: AdvancedFilterItem[];\n\n // And/Or between the filter items\n filterOperators: FilterOperatorValue[];\n\n invertSelection: boolean;\n\n selectedValues: unknown[];\n\n valuesTableError: null;\n valuesTable?: Table;\n}\n\nclass AdvancedFilterCreator extends PureComponent<\n AdvancedFilterCreatorProps,\n AdvancedFilterCreatorState\n> {\n static debounceFilterUpdate = 250;\n\n static defaultProps = {\n options: {\n filterItems: null,\n filterOperators: null,\n invertSelection: true,\n selectedValues: [],\n },\n sortDirection: null,\n };\n\n static makeFilterItem(): AdvancedFilterItem {\n return { key: shortid() };\n }\n\n constructor(props: AdvancedFilterCreatorProps) {\n super(props);\n\n this.handleAddAnd = this.handleAddAnd.bind(this);\n this.handleAddOr = this.handleAddOr.bind(this);\n this.handleChangeFilterOperator = this.handleChangeFilterOperator.bind(\n this\n );\n this.handleDone = this.handleDone.bind(this);\n this.handleFilterChange = this.handleFilterChange.bind(this);\n this.handleFilterDelete = this.handleFilterDelete.bind(this);\n this.handleSelectValueChange = this.handleSelectValueChange.bind(this);\n this.handleReset = this.handleReset.bind(this);\n this.handleSortDown = this.handleSortDown.bind(this);\n this.handleSortUp = this.handleSortUp.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleFocusTrapStart = this.handleFocusTrapStart.bind(this);\n this.handleFocusTrapEnd = this.handleFocusTrapEnd.bind(this);\n this.handleUpdateTimeout = this.handleUpdateTimeout.bind(this);\n\n this.focusTrapContainer = React.createRef();\n\n const { options } = props;\n let { filterOperators, invertSelection, selectedValues } = options;\n\n // can be null or an empty array\n const filterItems: AdvancedFilterItem[] =\n options.filterItems?.map(({ selectedType, value }) => ({\n selectedType,\n value,\n key: shortid(),\n })) ?? [];\n if (filterItems.length === 0) {\n filterItems.push(AdvancedFilterCreator.makeFilterItem());\n }\n if (filterOperators == null) {\n filterOperators = [];\n }\n if (invertSelection == null) {\n invertSelection = true;\n }\n if (selectedValues == null) {\n selectedValues = [];\n }\n\n this.state = {\n // Filter items\n filterItems,\n\n // And/Or between the filter items\n filterOperators,\n\n invertSelection,\n\n selectedValues,\n\n valuesTableError: null,\n valuesTable: undefined,\n };\n }\n\n componentDidMount(): void {\n this.initValuesTable();\n }\n\n componentWillUnmount(): void {\n if (this.debounceTimeout != null) {\n clearTimeout(this.debounceTimeout);\n this.sendUpdate();\n }\n if (this.valuesTablePromise != null) {\n this.valuesTablePromise.cancel();\n }\n }\n\n focusTrapContainer: React.RefObject<HTMLFormElement>;\n\n debounceTimeout?: ReturnType<typeof setTimeout>;\n\n valuesTablePromise?: CancelablePromise<Table>;\n\n getFilterChangeHandler(index: number): FilterChangeHandler {\n return this.handleFilterChange.bind(this, index);\n }\n\n getFilterDeleteHandler(index: number): () => void {\n return this.handleFilterDelete.bind(this, index);\n }\n\n getFilterTypes = memoize((columnType: string): FilterTypeValue[] =>\n TableUtils.getFilterTypes(columnType)\n );\n\n initValuesTable(): void {\n const { model, column } = this.props;\n if (!model.isValuesTableAvailable) {\n log.debug('No values table for this model, just ignore');\n return;\n }\n\n this.valuesTablePromise = TableUtils.makeCancelableTablePromise(\n model.valuesTable(column)\n );\n this.valuesTablePromise\n .then(valuesTable => {\n const sort = valuesTable.columns[0].sort().asc();\n valuesTable.applySort([sort]);\n\n this.setState({ valuesTable });\n })\n .catch(error => {\n if (PromiseUtils.isCanceled(error)) {\n return;\n }\n\n log.error('Unable to open values table', error);\n this.setState({ valuesTableError: error });\n });\n }\n\n handleFocusTrapEnd(): void {\n (this.focusTrapContainer?.current?.querySelector(\n 'button,select,input,textarea'\n ) as HTMLElement).focus();\n }\n\n handleFocusTrapStart(): void {\n const inputs = this.focusTrapContainer?.current?.querySelectorAll(\n 'button,select,input,textarea'\n );\n if (inputs && inputs.length > 0) {\n const element = inputs[inputs.length - 1] as HTMLElement;\n element.focus();\n }\n }\n\n handleAddAnd(): void {\n let { filterItems, filterOperators } = this.state;\n filterItems = filterItems.concat(AdvancedFilterCreator.makeFilterItem());\n filterOperators = filterOperators.concat(FilterOperator.and);\n this.setState({ filterItems, filterOperators });\n }\n\n handleAddOr(): void {\n let { filterItems, filterOperators } = this.state;\n filterItems = filterItems.concat(AdvancedFilterCreator.makeFilterItem());\n filterOperators = filterOperators.concat(FilterOperator.or);\n this.setState({ filterItems, filterOperators });\n }\n\n handleChangeFilterOperator(event: React.MouseEvent<HTMLButtonElement>): void {\n const target = event.currentTarget;\n\n const { operator, index: strIndex } = target.dataset;\n assertNotNull(strIndex);\n const index = parseInt(strIndex, 10);\n\n let { filterOperators } = this.state;\n filterOperators = [...filterOperators];\n\n assertFilterOperatorValue(operator);\n\n filterOperators[index] = operator;\n\n this.setState({ filterOperators });\n\n this.startUpdateTimer();\n }\n\n handleFilterChange(\n filterIndex: number,\n selectedType: FilterTypeValue,\n value: string\n ): void {\n let { filterItems } = this.state;\n filterItems = [...filterItems];\n const { key } = filterItems[filterIndex];\n filterItems[filterIndex] = { key, selectedType, value };\n\n this.setState({ filterItems });\n\n this.startUpdateTimer();\n }\n\n handleFilterDelete(filterIndex: number): void {\n let { filterItems, filterOperators } = this.state;\n filterItems = [...filterItems];\n filterOperators = [...filterOperators];\n if (filterIndex < filterItems.length) {\n filterItems.splice(filterIndex, 1);\n }\n\n if (filterIndex < filterOperators.length) {\n filterOperators.splice(filterIndex, 1);\n } else if (filterIndex === filterOperators.length) {\n // When deleting the last filter item, we also need to remove the last filter operator\n filterOperators.splice(filterOperators.length - 1, 1);\n }\n\n if (filterItems.length === 0) {\n filterItems.push(AdvancedFilterCreator.makeFilterItem());\n }\n\n this.setState({ filterItems, filterOperators });\n\n this.startUpdateTimer();\n }\n\n handleSelectValueChange(\n selectedValues: unknown[],\n invertSelection: boolean\n ): void {\n this.setState({ selectedValues, invertSelection });\n\n this.startUpdateTimer();\n }\n\n handleReset(): void {\n log.debug('Resetting Advanced Filter');\n\n this.setState({\n filterItems: [AdvancedFilterCreator.makeFilterItem()],\n filterOperators: [],\n selectedValues: [],\n invertSelection: true,\n });\n\n this.startUpdateTimer();\n }\n\n handleSortDown(event: React.MouseEvent<HTMLButtonElement>): void {\n const addToExisting = ContextActionUtils.isModifierKeyDown(event);\n this.sortTable(TableUtils.sortDirection.descending, addToExisting);\n }\n\n handleSortUp(event: React.MouseEvent<HTMLButtonElement>): void {\n const addToExisting = ContextActionUtils.isModifierKeyDown(event);\n this.sortTable(TableUtils.sortDirection.ascending, addToExisting);\n }\n\n handleSubmit(event: React.FormEvent<HTMLFormElement>): void {\n log.debug('Submitting Advanced Filter');\n this.stopUpdateTimer();\n this.sendUpdate();\n\n event.preventDefault();\n }\n\n handleDone(event: React.MouseEvent<HTMLButtonElement>): void {\n log.debug('Submitting and Closing Advanced Filter');\n this.stopUpdateTimer();\n this.sendUpdate();\n\n const { onDone } = this.props;\n onDone();\n\n event.preventDefault();\n }\n\n handleUpdateTimeout(): void {\n this.debounceTimeout = undefined;\n this.sendUpdate();\n }\n\n /**\n * Convenience function to check if the previous filter has been inputted, and\n * we should show the add filter buttons (+ AND OR)\n * @returns true If the add filter buttons should be shown, false otherwise\n */\n shouldShowAddFilter(): boolean {\n const { filterItems } = this.state;\n if (filterItems.length === 0) {\n return false;\n }\n\n const filterItem = filterItems[filterItems.length - 1];\n const { selectedType, value } = filterItem;\n\n return (\n selectedType != null &&\n selectedType.length > 0 &&\n value != null &&\n value.length > 0\n );\n }\n\n /**\n * Sorts the table in the specified direction. If already sorted in that direction, remove it.\n * @param direction The sort direction, ASC or DESC\n * @param addToExisting Add to the existing sort, or replace the existing table sort\n */\n sortTable(direction: SortDirection, addToExisting = false): void {\n const { column, onSortChange } = this.props;\n onSortChange(column, direction, addToExisting);\n }\n\n startUpdateTimer(): void {\n this.stopUpdateTimer();\n\n this.debounceTimeout = setTimeout(\n this.handleUpdateTimeout,\n AdvancedFilterCreator.debounceFilterUpdate\n );\n }\n\n stopUpdateTimer(): void {\n if (this.debounceTimeout !== undefined) {\n clearTimeout(this.debounceTimeout);\n this.debounceTimeout = undefined;\n }\n }\n\n sendUpdate(): void {\n const {\n filterItems,\n filterOperators,\n invertSelection,\n selectedValues,\n } = this.state;\n const { column, onFilterChange, model } = this.props;\n const { formatter } = model;\n\n const items = filterItems.filter(\n ({ selectedType, value }) =>\n selectedType != null && value != null && value !== ''\n ) as FilterItem[];\n\n const operators = filterOperators\n .filter(\n (operator, i) =>\n operator != null &&\n filterItems[i].selectedType != null &&\n filterItems[i].value != null &&\n filterItems[i].value !== ''\n )\n .slice(0, items.length - 1);\n // slice last operator, user may have set an operator but not a value\n\n const options = {\n filterItems: items,\n filterOperators: operators,\n invertSelection,\n selectedValues,\n };\n\n const filter = TableUtils.makeAdvancedFilter(\n column,\n options,\n formatter.timeZone\n );\n\n onFilterChange(column, filter, options);\n }\n\n render(): JSX.Element {\n const { column, model, sortDirection, formatter } = this.props;\n const {\n filterItems,\n filterOperators,\n invertSelection,\n selectedValues,\n valuesTable,\n valuesTableError,\n } = this.state;\n const { isValuesTableAvailable } = model;\n const isBoolean = TableUtils.isBooleanType(column.type);\n const isDateType = TableUtils.isDateType(column.type);\n const filterTypes = this.getFilterTypes(column.type);\n const columnType = column.type.substring(column.type.lastIndexOf('.') + 1);\n const filterItemElements = [];\n if (!isBoolean && filterTypes.length) {\n for (let i = 0; i < filterItems.length; i += 1) {\n const filterItem = filterItems[i];\n const { key, selectedType, value } = filterItem;\n\n const element = (\n <AdvancedFilterCreatorFilterItem\n key={key}\n column={column}\n filterTypes={filterTypes}\n onChange={this.getFilterChangeHandler(i)}\n onDelete={this.getFilterDeleteHandler(i)}\n selectedType={selectedType}\n value={value}\n formatter={formatter}\n />\n );\n filterItemElements.push(element);\n\n if (i < filterOperators.length) {\n const filterOperator = filterOperators[i];\n const isAndFilter = filterOperator === FilterOperator.and;\n const operatorElement = (\n <div\n key={`filterOperator${key}`}\n className=\"form-row justify-content-end advanced-filter-creator-filter-operator\"\n >\n <button\n type=\"button\"\n className={classNames('btn btn-link filter-operator', {\n active: isAndFilter,\n })}\n onClick={this.handleChangeFilterOperator}\n data-index={i}\n data-operator={FilterOperator.and}\n >\n AND\n </button>\n <button\n type=\"button\"\n className={classNames('btn btn-link filter-operator', {\n active: !isAndFilter,\n })}\n onClick={this.handleChangeFilterOperator}\n data-index={i}\n data-operator={FilterOperator.or}\n >\n OR\n </button>\n </div>\n );\n filterItemElements.push(operatorElement);\n }\n }\n }\n const showAddFilterItem = this.shouldShowAddFilter();\n const addFilterItem = (\n <div\n key=\"addFilterItem\"\n className={classNames('form-row justify-content-end add-filter-item', {\n hidden: !showAddFilterItem,\n })}\n >\n <span className=\"text-muted\">\n <FontAwesomeIcon icon={dhNewCircleLargeFilled} />\n </span>\n <button\n type=\"button\"\n className=\"btn btn-link btn-filter-item\"\n onClick={this.handleAddAnd}\n disabled={!showAddFilterItem}\n >\n AND\n <Tooltip>Add filter with AND</Tooltip>\n </button>\n <button\n type=\"button\"\n className=\"btn btn-link btn-filter-item\"\n onClick={this.handleAddOr}\n disabled={!showAddFilterItem}\n >\n OR\n <Tooltip>Add filter with OR</Tooltip>\n </button>\n </div>\n );\n filterItemElements.push(addFilterItem);\n\n return (\n <div className=\"advanced-filter-creator\" role=\"presentation\">\n <div tabIndex={0} onFocus={this.handleFocusTrapStart} />\n <form onSubmit={this.handleSubmit} ref={this.focusTrapContainer}>\n <div className=\"title-bar\">\n <h6 className=\"advanced-filter-title\">Advanced Filters</h6>\n <div className=\"advanced-filter-menu-buttons\">\n <button\n type=\"button\"\n className={classNames(\n 'btn btn-link btn-link-icon sort-operator',\n {\n active:\n sortDirection === TableUtils.sortDirection.descending,\n }\n )}\n onClick={this.handleSortDown}\n >\n <FontAwesomeIcon icon={dhSortAmountDown} />\n <Tooltip>Sort {column.name} Descending</Tooltip>\n </button>\n <button\n type=\"button\"\n className={classNames(\n 'btn btn-link btn-link-icon sort-operator',\n {\n active:\n sortDirection === TableUtils.sortDirection.ascending,\n }\n )}\n onClick={this.handleSortUp}\n >\n <FontAwesomeIcon rotation={180} icon={dhSortAmountDown} />\n <Tooltip>Sort {column.name} Ascending</Tooltip>\n </button>\n </div>\n </div>\n <hr />\n <div className=\"advanced-filter-column-name\">\n {column.name}&nbsp;\n <span className=\"column-type\">({columnType})</span>\n </div>\n {filterItemElements}\n {isValuesTableAvailable && !valuesTableError && (\n <>\n {!isBoolean && <hr />}\n <div className=\"form-group\">\n <AdvancedFilterCreatorSelectValue<unknown>\n table={valuesTable}\n onChange={this.handleSelectValueChange}\n invertSelection={invertSelection}\n selectedValues={selectedValues}\n formatter={formatter}\n showSearch={!isDateType}\n timeZone={formatter.timeZone}\n />\n </div>\n </>\n )}\n <div className=\"form-row justify-content-end\">\n <button\n type=\"button\"\n className=\"btn btn-outline-primary mr-2\"\n onClick={this.handleReset}\n >\n Reset\n </button>\n <button\n type=\"button\"\n className=\"btn btn-primary\"\n onClick={this.handleDone}\n >\n Done\n </button>\n </div>\n </form>\n <div tabIndex={0} onFocus={this.handleFocusTrapEnd} />\n </div>\n );\n }\n}\n\nexport default AdvancedFilterCreator;\n"],"mappings":"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"}
1
+ {"version":3,"file":"AdvancedFilterCreator.js","names":["React","PureComponent","classNames","FontAwesomeIcon","memoize","Operator","FilterOperator","assertOperatorValue","assertFilterOperatorValue","dhSortAmountDown","dhNewCircleLargeFilled","TableUtils","ContextActionUtils","Tooltip","Log","PromiseUtils","assertNotNull","shortid","AdvancedFilterCreatorFilterItem","AdvancedFilterCreatorSelectValue","log","module","AdvancedFilterCreator","makeFilterItem","key","constructor","props","columnType","getFilterTypes","handleAddAnd","bind","handleAddOr","handleChangeFilterOperator","handleDone","handleFilterChange","handleFilterDelete","handleSelectValueChange","handleReset","handleSortDown","handleSortUp","handleSubmit","handleFocusTrapStart","handleFocusTrapEnd","handleUpdateTimeout","focusTrapContainer","createRef","options","filterOperators","invertSelection","selectedValues","filterItems","map","selectedType","value","length","push","state","valuesTableError","valuesTable","undefined","componentDidMount","initValuesTable","componentWillUnmount","debounceTimeout","clearTimeout","sendUpdate","valuesTablePromise","cancel","getFilterChangeHandler","index","getFilterDeleteHandler","model","column","isValuesTableAvailable","debug","makeCancelableTablePromise","then","sort","columns","asc","applySort","setState","catch","error","isCanceled","current","querySelector","focus","inputs","querySelectorAll","element","concat","and","or","event","target","currentTarget","operator","strIndex","dataset","parseInt","startUpdateTimer","filterIndex","splice","addToExisting","isModifierKeyDown","sortTable","sortDirection","descending","ascending","stopUpdateTimer","preventDefault","onDone","shouldShowAddFilter","filterItem","direction","onSortChange","setTimeout","debounceFilterUpdate","onFilterChange","formatter","items","filter","operators","i","slice","makeAdvancedFilter","timeZone","render","isBoolean","isBooleanType","type","isDateType","filterTypes","substring","lastIndexOf","filterItemElements","filterOperator","isAndFilter","operatorElement","active","showAddFilterItem","addFilterItem","hidden","name"],"sources":["../src/AdvancedFilterCreator.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-noninteractive-tabindex */\n// disabled for tab-index on focus traps, which are intentionally non-interactive\n\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport memoize from 'memoize-one';\nimport {\n Operator as FilterOperator,\n OperatorValue as FilterOperatorValue,\n TypeValue as FilterTypeValue,\n assertOperatorValue as assertFilterOperatorValue,\n} from '@deephaven/filters';\nimport { dhSortAmountDown, dhNewCircleLargeFilled } from '@deephaven/icons';\nimport {\n Formatter,\n TableUtils,\n SortDirection,\n FilterItem,\n} from '@deephaven/jsapi-utils';\nimport { ContextActionUtils, Tooltip } from '@deephaven/components';\nimport Log from '@deephaven/log';\nimport {\n CancelablePromise,\n PromiseUtils,\n assertNotNull,\n} from '@deephaven/utils';\nimport { Column, FilterCondition, Table } from '@deephaven/jsapi-shim';\nimport shortid from 'shortid';\nimport AdvancedFilterCreatorFilterItem from './AdvancedFilterCreatorFilterItem';\nimport AdvancedFilterCreatorSelectValue from './AdvancedFilterCreatorSelectValue';\nimport './AdvancedFilterCreator.scss';\nimport IrisGridModel from './IrisGridModel';\nimport { AdvancedFilterOptions } from './CommonTypes';\n\nconst log = Log.module('AdvancedFilterCreator');\n\ntype FilterChangeHandler = (\n selectedType: FilterTypeValue,\n value: string\n) => void;\n\ninterface AdvancedFilterCreatorProps {\n model: IrisGridModel;\n column: Column;\n onFilterChange: (\n column: Column,\n filter: FilterCondition | null,\n options: AdvancedFilterOptions\n ) => void;\n onSortChange: (\n column: Column,\n direction: SortDirection,\n addToExisting?: boolean\n ) => void;\n onDone: () => void;\n options: AdvancedFilterOptions;\n sortDirection: SortDirection;\n formatter: Formatter;\n}\n\ninterface AdvancedFilterItem {\n selectedType?: FilterTypeValue;\n value?: string;\n key: string;\n}\n\ninterface AdvancedFilterCreatorState {\n // Filter items\n filterItems: AdvancedFilterItem[];\n\n // And/Or between the filter items\n filterOperators: FilterOperatorValue[];\n\n invertSelection: boolean;\n\n selectedValues: unknown[];\n\n valuesTableError: null;\n valuesTable?: Table;\n}\n\nclass AdvancedFilterCreator extends PureComponent<\n AdvancedFilterCreatorProps,\n AdvancedFilterCreatorState\n> {\n static debounceFilterUpdate = 250;\n\n static defaultProps = {\n options: {\n filterItems: null,\n filterOperators: null,\n invertSelection: true,\n selectedValues: [],\n },\n sortDirection: null,\n };\n\n static makeFilterItem(): AdvancedFilterItem {\n return { key: shortid() };\n }\n\n constructor(props: AdvancedFilterCreatorProps) {\n super(props);\n\n this.handleAddAnd = this.handleAddAnd.bind(this);\n this.handleAddOr = this.handleAddOr.bind(this);\n this.handleChangeFilterOperator = this.handleChangeFilterOperator.bind(\n this\n );\n this.handleDone = this.handleDone.bind(this);\n this.handleFilterChange = this.handleFilterChange.bind(this);\n this.handleFilterDelete = this.handleFilterDelete.bind(this);\n this.handleSelectValueChange = this.handleSelectValueChange.bind(this);\n this.handleReset = this.handleReset.bind(this);\n this.handleSortDown = this.handleSortDown.bind(this);\n this.handleSortUp = this.handleSortUp.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleFocusTrapStart = this.handleFocusTrapStart.bind(this);\n this.handleFocusTrapEnd = this.handleFocusTrapEnd.bind(this);\n this.handleUpdateTimeout = this.handleUpdateTimeout.bind(this);\n\n this.focusTrapContainer = React.createRef();\n\n const { options } = props;\n let { filterOperators, invertSelection, selectedValues } = options;\n\n // can be null or an empty array\n const filterItems: AdvancedFilterItem[] =\n options.filterItems?.map(({ selectedType, value }) => ({\n selectedType,\n value,\n key: shortid(),\n })) ?? [];\n if (filterItems.length === 0) {\n filterItems.push(AdvancedFilterCreator.makeFilterItem());\n }\n if (filterOperators == null) {\n filterOperators = [];\n }\n if (invertSelection == null) {\n invertSelection = true;\n }\n if (selectedValues == null) {\n selectedValues = [];\n }\n\n this.state = {\n // Filter items\n filterItems,\n\n // And/Or between the filter items\n filterOperators,\n\n invertSelection,\n\n selectedValues,\n\n valuesTableError: null,\n valuesTable: undefined,\n };\n }\n\n componentDidMount(): void {\n this.initValuesTable();\n }\n\n componentWillUnmount(): void {\n if (this.debounceTimeout != null) {\n clearTimeout(this.debounceTimeout);\n this.sendUpdate();\n }\n if (this.valuesTablePromise != null) {\n this.valuesTablePromise.cancel();\n }\n }\n\n focusTrapContainer: React.RefObject<HTMLFormElement>;\n\n debounceTimeout?: ReturnType<typeof setTimeout>;\n\n valuesTablePromise?: CancelablePromise<Table>;\n\n getFilterChangeHandler(index: number): FilterChangeHandler {\n return this.handleFilterChange.bind(this, index);\n }\n\n getFilterDeleteHandler(index: number): () => void {\n return this.handleFilterDelete.bind(this, index);\n }\n\n getFilterTypes = memoize((columnType: string): FilterTypeValue[] =>\n TableUtils.getFilterTypes(columnType)\n );\n\n initValuesTable(): void {\n const { model, column } = this.props;\n if (!model.isValuesTableAvailable) {\n log.debug('No values table for this model, just ignore');\n return;\n }\n\n this.valuesTablePromise = TableUtils.makeCancelableTablePromise(\n model.valuesTable(column)\n );\n this.valuesTablePromise\n .then(valuesTable => {\n const sort = valuesTable.columns[0].sort().asc();\n valuesTable.applySort([sort]);\n\n this.setState({ valuesTable });\n })\n .catch(error => {\n if (PromiseUtils.isCanceled(error)) {\n return;\n }\n\n log.error('Unable to open values table', error);\n this.setState({ valuesTableError: error });\n });\n }\n\n handleFocusTrapEnd(): void {\n (this.focusTrapContainer?.current?.querySelector(\n 'button,select,input,textarea'\n ) as HTMLElement).focus();\n }\n\n handleFocusTrapStart(): void {\n const inputs = this.focusTrapContainer?.current?.querySelectorAll(\n 'button,select,input,textarea'\n );\n if (inputs && inputs.length > 0) {\n const element = inputs[inputs.length - 1] as HTMLElement;\n element.focus();\n }\n }\n\n handleAddAnd(): void {\n let { filterItems, filterOperators } = this.state;\n filterItems = filterItems.concat(AdvancedFilterCreator.makeFilterItem());\n filterOperators = filterOperators.concat(FilterOperator.and);\n this.setState({ filterItems, filterOperators });\n }\n\n handleAddOr(): void {\n let { filterItems, filterOperators } = this.state;\n filterItems = filterItems.concat(AdvancedFilterCreator.makeFilterItem());\n filterOperators = filterOperators.concat(FilterOperator.or);\n this.setState({ filterItems, filterOperators });\n }\n\n handleChangeFilterOperator(event: React.MouseEvent<HTMLButtonElement>): void {\n const target = event.currentTarget;\n\n const { operator, index: strIndex } = target.dataset;\n assertNotNull(strIndex);\n const index = parseInt(strIndex, 10);\n\n let { filterOperators } = this.state;\n filterOperators = [...filterOperators];\n\n assertFilterOperatorValue(operator);\n\n filterOperators[index] = operator;\n\n this.setState({ filterOperators });\n\n this.startUpdateTimer();\n }\n\n handleFilterChange(\n filterIndex: number,\n selectedType: FilterTypeValue,\n value: string\n ): void {\n let { filterItems } = this.state;\n filterItems = [...filterItems];\n const { key } = filterItems[filterIndex];\n filterItems[filterIndex] = { key, selectedType, value };\n\n this.setState({ filterItems });\n\n this.startUpdateTimer();\n }\n\n handleFilterDelete(filterIndex: number): void {\n let { filterItems, filterOperators } = this.state;\n filterItems = [...filterItems];\n filterOperators = [...filterOperators];\n if (filterIndex < filterItems.length) {\n filterItems.splice(filterIndex, 1);\n }\n\n if (filterIndex < filterOperators.length) {\n filterOperators.splice(filterIndex, 1);\n } else if (filterIndex === filterOperators.length) {\n // When deleting the last filter item, we also need to remove the last filter operator\n filterOperators.splice(filterOperators.length - 1, 1);\n }\n\n if (filterItems.length === 0) {\n filterItems.push(AdvancedFilterCreator.makeFilterItem());\n }\n\n this.setState({ filterItems, filterOperators });\n\n this.startUpdateTimer();\n }\n\n handleSelectValueChange(\n selectedValues: unknown[],\n invertSelection: boolean\n ): void {\n this.setState({ selectedValues, invertSelection });\n\n this.startUpdateTimer();\n }\n\n handleReset(): void {\n log.debug('Resetting Advanced Filter');\n\n this.setState({\n filterItems: [AdvancedFilterCreator.makeFilterItem()],\n filterOperators: [],\n selectedValues: [],\n invertSelection: true,\n });\n\n this.startUpdateTimer();\n }\n\n handleSortDown(event: React.MouseEvent<HTMLButtonElement>): void {\n const addToExisting = ContextActionUtils.isModifierKeyDown(event);\n this.sortTable(TableUtils.sortDirection.descending, addToExisting);\n }\n\n handleSortUp(event: React.MouseEvent<HTMLButtonElement>): void {\n const addToExisting = ContextActionUtils.isModifierKeyDown(event);\n this.sortTable(TableUtils.sortDirection.ascending, addToExisting);\n }\n\n handleSubmit(event: React.FormEvent<HTMLFormElement>): void {\n log.debug('Submitting Advanced Filter');\n this.stopUpdateTimer();\n this.sendUpdate();\n\n event.preventDefault();\n }\n\n handleDone(event: React.MouseEvent<HTMLButtonElement>): void {\n log.debug('Submitting and Closing Advanced Filter');\n this.stopUpdateTimer();\n this.sendUpdate();\n\n const { onDone } = this.props;\n onDone();\n\n event.preventDefault();\n }\n\n handleUpdateTimeout(): void {\n this.debounceTimeout = undefined;\n this.sendUpdate();\n }\n\n /**\n * Convenience function to check if the previous filter has been inputted, and\n * we should show the add filter buttons (+ AND OR)\n * @returns true If the add filter buttons should be shown, false otherwise\n */\n shouldShowAddFilter(): boolean {\n const { filterItems } = this.state;\n if (filterItems.length === 0) {\n return false;\n }\n\n const filterItem = filterItems[filterItems.length - 1];\n const { selectedType, value } = filterItem;\n\n return (\n selectedType != null &&\n selectedType.length > 0 &&\n value != null &&\n value.length > 0\n );\n }\n\n /**\n * Sorts the table in the specified direction. If already sorted in that direction, remove it.\n * @param direction The sort direction, ASC or DESC\n * @param addToExisting Add to the existing sort, or replace the existing table sort\n */\n sortTable(direction: SortDirection, addToExisting = false): void {\n const { column, onSortChange } = this.props;\n onSortChange(column, direction, addToExisting);\n }\n\n startUpdateTimer(): void {\n this.stopUpdateTimer();\n\n this.debounceTimeout = setTimeout(\n this.handleUpdateTimeout,\n AdvancedFilterCreator.debounceFilterUpdate\n );\n }\n\n stopUpdateTimer(): void {\n if (this.debounceTimeout !== undefined) {\n clearTimeout(this.debounceTimeout);\n this.debounceTimeout = undefined;\n }\n }\n\n sendUpdate(): void {\n const {\n filterItems,\n filterOperators,\n invertSelection,\n selectedValues,\n } = this.state;\n const { column, onFilterChange, model } = this.props;\n const { formatter } = model;\n\n const items = filterItems.filter(\n ({ selectedType, value }) =>\n selectedType != null && value != null && value !== ''\n ) as FilterItem[];\n\n const operators = filterOperators\n .filter(\n (operator, i) =>\n operator != null &&\n filterItems[i].selectedType != null &&\n filterItems[i].value != null &&\n filterItems[i].value !== ''\n )\n .slice(0, items.length - 1);\n // slice last operator, user may have set an operator but not a value\n\n const options = {\n filterItems: items,\n filterOperators: operators,\n invertSelection,\n selectedValues,\n };\n\n const filter = TableUtils.makeAdvancedFilter(\n column,\n options,\n formatter.timeZone\n );\n\n onFilterChange(column, filter, options);\n }\n\n render(): JSX.Element {\n const { column, model, sortDirection, formatter } = this.props;\n const {\n filterItems,\n filterOperators,\n invertSelection,\n selectedValues,\n valuesTable,\n valuesTableError,\n } = this.state;\n const { isValuesTableAvailable } = model;\n const isBoolean = TableUtils.isBooleanType(column.type);\n const isDateType = TableUtils.isDateType(column.type);\n const filterTypes = this.getFilterTypes(column.type);\n const columnType = column.type.substring(column.type.lastIndexOf('.') + 1);\n const filterItemElements = [];\n if (!isBoolean && filterTypes.length) {\n for (let i = 0; i < filterItems.length; i += 1) {\n const filterItem = filterItems[i];\n const { key, selectedType, value } = filterItem;\n\n const element = (\n <AdvancedFilterCreatorFilterItem\n key={key}\n column={column}\n filterTypes={filterTypes}\n onChange={this.getFilterChangeHandler(i)}\n onDelete={this.getFilterDeleteHandler(i)}\n selectedType={selectedType}\n value={value}\n formatter={formatter}\n />\n );\n filterItemElements.push(element);\n\n if (i < filterOperators.length) {\n const filterOperator = filterOperators[i];\n const isAndFilter = filterOperator === FilterOperator.and;\n const operatorElement = (\n <div\n key={`filterOperator${key}`}\n className=\"form-row justify-content-end advanced-filter-creator-filter-operator\"\n >\n <button\n type=\"button\"\n className={classNames('btn btn-link filter-operator', {\n active: isAndFilter,\n })}\n onClick={this.handleChangeFilterOperator}\n data-index={i}\n data-operator={FilterOperator.and}\n >\n AND\n </button>\n <button\n type=\"button\"\n className={classNames('btn btn-link filter-operator', {\n active: !isAndFilter,\n })}\n onClick={this.handleChangeFilterOperator}\n data-index={i}\n data-operator={FilterOperator.or}\n >\n OR\n </button>\n </div>\n );\n filterItemElements.push(operatorElement);\n }\n }\n }\n const showAddFilterItem = this.shouldShowAddFilter();\n const addFilterItem = (\n <div\n key=\"addFilterItem\"\n className={classNames('form-row justify-content-end add-filter-item', {\n hidden: !showAddFilterItem,\n })}\n >\n <span className=\"text-muted\">\n <FontAwesomeIcon icon={dhNewCircleLargeFilled} />\n </span>\n <button\n type=\"button\"\n className=\"btn btn-link btn-filter-item\"\n onClick={this.handleAddAnd}\n disabled={!showAddFilterItem}\n >\n AND\n <Tooltip>Add filter with AND</Tooltip>\n </button>\n <button\n type=\"button\"\n className=\"btn btn-link btn-filter-item\"\n onClick={this.handleAddOr}\n disabled={!showAddFilterItem}\n >\n OR\n <Tooltip>Add filter with OR</Tooltip>\n </button>\n </div>\n );\n filterItemElements.push(addFilterItem);\n\n return (\n <div className=\"advanced-filter-creator\" role=\"presentation\">\n <div tabIndex={0} onFocus={this.handleFocusTrapStart} />\n <form onSubmit={this.handleSubmit} ref={this.focusTrapContainer}>\n <div className=\"title-bar\">\n <h6 className=\"advanced-filter-title\">Advanced Filters</h6>\n <div className=\"advanced-filter-menu-buttons\">\n <button\n type=\"button\"\n className={classNames(\n 'btn btn-link btn-link-icon sort-operator',\n {\n active:\n sortDirection === TableUtils.sortDirection.descending,\n }\n )}\n onClick={this.handleSortDown}\n >\n <FontAwesomeIcon icon={dhSortAmountDown} />\n <Tooltip>Sort {column.name} Descending</Tooltip>\n </button>\n <button\n type=\"button\"\n className={classNames(\n 'btn btn-link btn-link-icon sort-operator',\n {\n active:\n sortDirection === TableUtils.sortDirection.ascending,\n }\n )}\n onClick={this.handleSortUp}\n >\n <FontAwesomeIcon rotation={180} icon={dhSortAmountDown} />\n <Tooltip>Sort {column.name} Ascending</Tooltip>\n </button>\n </div>\n </div>\n <hr />\n <div className=\"advanced-filter-column-name\">\n {column.name}&nbsp;\n <span className=\"column-type\">({columnType})</span>\n </div>\n {filterItemElements}\n {isValuesTableAvailable && valuesTableError == null && (\n <>\n {!isBoolean && <hr />}\n <div className=\"form-group\">\n <AdvancedFilterCreatorSelectValue<unknown>\n table={valuesTable}\n onChange={this.handleSelectValueChange}\n invertSelection={invertSelection}\n selectedValues={selectedValues}\n formatter={formatter}\n showSearch={!isDateType}\n timeZone={formatter.timeZone}\n />\n </div>\n </>\n )}\n <div className=\"form-row justify-content-end\">\n <button\n type=\"button\"\n className=\"btn btn-outline-primary mr-2\"\n onClick={this.handleReset}\n >\n Reset\n </button>\n <button\n type=\"button\"\n className=\"btn btn-primary\"\n onClick={this.handleDone}\n >\n Done\n </button>\n </div>\n </form>\n <div tabIndex={0} onFocus={this.handleFocusTrapEnd} />\n </div>\n );\n }\n}\n\nexport default AdvancedFilterCreator;\n"],"mappings":"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"}
@@ -22,7 +22,7 @@ class AdvancedFilterCreatorSelectValueList extends PureComponent {
22
22
  for (var i = 0; i < values.length; i += 1) {
23
23
  var v = values[i];
24
24
 
25
- if (v === value || v != null && v.valueOf && value != null && value.valueOf && v.valueOf() === value.valueOf()) {
25
+ if (v === value || v != null && v.valueOf != null && value != null && value.valueOf != null && v.valueOf() === value.valueOf()) {
26
26
  return i;
27
27
  }
28
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AdvancedFilterCreatorSelectValueList.js","names":["React","PureComponent","CSSTransition","dh","LoadingSpinner","SelectValueList","Log","log","module","AdvancedFilterCreatorSelectValueList","indexOf","value","values","i","length","v","valueOf","constructor","props","handleSelect","bind","handleViewportChange","handleSelectionUpdate","handleTableUpdate","list","selectedValues","state","itemCount","items","offset","isLoading","componentDidMount","table","startListening","componentDidUpdate","prevProps","filters","invertSelection","stopListening","resetViewport","setState","applyFilter","componentWillUnmount","itemIndex","selectedIndex","splice","push","isSelected","visibleItemIndex","onChange","top","bottom","updateViewport","updateItemSelection","event","formatter","data","detail","column","columns","r","rows","row","get","displayValue","getFormattedString","type","name","isValueSelected","debug2","size","addEventListener","Table","EVENT_UPDATED","removeEventListener","topRow","bottomRow","item","viewportSize","Math","max","setViewport","render","undefined"],"sources":["../src/AdvancedFilterCreatorSelectValueList.tsx"],"sourcesContent":["/* eslint react/no-did-update-set-state: \"off\" */\nimport React, { PureComponent } from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport dh, { FilterCondition, Table } from '@deephaven/jsapi-shim';\nimport { Formatter } from '@deephaven/jsapi-utils';\nimport {\n LoadingSpinner,\n SelectValueList,\n SelectItem,\n} from '@deephaven/components';\nimport Log from '@deephaven/log';\n\nconst log = Log.module('AdvancedFilterCreatorSelectValueList');\n\ninterface AdvancedFilterCreatorSelectValueListProps<T> {\n selectedValues: T[];\n table?: Table;\n filters: FilterCondition[];\n invertSelection: boolean;\n onChange: (selectedValues: T[], invertSelection: boolean) => void;\n formatter: Formatter;\n}\n\ninterface AdvancedFilterCreatorSelectValueListState<T> {\n itemCount: number;\n items: SelectItem<T>[];\n offset: number;\n selectedValues: T[];\n isLoading: boolean;\n}\n/**\n * Select values from a long scrollable list.\n * Swaps items in and out for infinite scrolling\n */\nclass AdvancedFilterCreatorSelectValueList<T = unknown> extends PureComponent<\n AdvancedFilterCreatorSelectValueListProps<T>,\n AdvancedFilterCreatorSelectValueListState<T>\n> {\n static defaultProps = {\n invertSelection: true,\n selectedValues: [],\n onChange: (): void => undefined,\n };\n\n /**\n * Get the index of a value in an array. Has some special handling for some types, like DateTimes and Longs.\n * @param value The value to search for\n * @param values The array of values to search within\n */\n static indexOf(\n value: { valueof?: unknown },\n values: { valueof?: unknown }[]\n ): number {\n for (let i = 0; i < values.length; i += 1) {\n const v = values[i];\n if (\n v === value ||\n (v != null &&\n v.valueOf &&\n value != null &&\n value.valueOf &&\n v.valueOf() === value.valueOf())\n ) {\n return i;\n }\n }\n\n return -1;\n }\n\n constructor(props: AdvancedFilterCreatorSelectValueListProps<T>) {\n super(props);\n\n this.handleSelect = this.handleSelect.bind(this);\n this.handleViewportChange = this.handleViewportChange.bind(this);\n this.handleSelectionUpdate = this.handleSelectionUpdate.bind(this);\n this.handleTableUpdate = this.handleTableUpdate.bind(this);\n\n this.list = null;\n\n const { selectedValues } = this.props;\n\n this.state = {\n itemCount: 0,\n items: [],\n offset: 0,\n selectedValues,\n isLoading: true,\n };\n }\n\n componentDidMount(): void {\n const { table } = this.props;\n if (table) this.startListening(table);\n }\n\n componentDidUpdate(\n prevProps: AdvancedFilterCreatorSelectValueListProps<T>\n ): void {\n const { filters, invertSelection, selectedValues, table } = this.props;\n if (prevProps.table !== table) {\n if (prevProps.table) this.stopListening(prevProps.table);\n if (table) this.startListening(table);\n this.resetViewport();\n }\n\n if (prevProps.invertSelection !== invertSelection) {\n this.setState({ selectedValues: [] }, this.handleSelectionUpdate);\n }\n\n if (prevProps.selectedValues !== selectedValues) {\n this.setState({ selectedValues }, this.handleSelectionUpdate);\n }\n\n if (prevProps.filters !== filters) {\n table?.applyFilter(filters);\n this.resetViewport();\n }\n }\n\n componentWillUnmount(): void {\n const { table } = this.props;\n if (table) this.stopListening(table);\n }\n\n list: SelectValueList<T> | null;\n\n handleSelect(itemIndex: number, value: T): void {\n const { invertSelection } = this.props;\n let { selectedValues } = this.state;\n selectedValues = [...selectedValues];\n const selectedIndex = AdvancedFilterCreatorSelectValueList.indexOf(\n value,\n selectedValues\n );\n if (selectedIndex >= 0) {\n selectedValues.splice(selectedIndex, 1);\n } else {\n selectedValues.push(value);\n }\n\n let isSelected = selectedIndex < 0;\n if (invertSelection) {\n isSelected = !isSelected;\n }\n\n const { offset } = this.state;\n let { items } = this.state;\n items = [...items];\n const visibleItemIndex = itemIndex - offset;\n if (visibleItemIndex >= 0 && visibleItemIndex < items.length) {\n items[visibleItemIndex].isSelected = isSelected;\n }\n\n this.setState({ items, selectedValues });\n\n const { onChange } = this.props;\n onChange(selectedValues, invertSelection);\n }\n\n handleViewportChange(top: number, bottom: number): void {\n this.updateViewport(top, bottom);\n }\n\n handleSelectionUpdate(): void {\n this.updateItemSelection();\n }\n\n handleTableUpdate(event: CustomEvent): void {\n const { table, formatter } = this.props;\n if (!table) return;\n\n const data = event.detail;\n const { offset } = data;\n const items = [];\n const column = table.columns[0];\n for (let r = 0; r < data.rows.length; r += 1) {\n const row = data.rows[r];\n const value = row.get(column);\n const displayValue = formatter.getFormattedString(\n value,\n column.type,\n column.name\n );\n const isSelected = this.isValueSelected(value);\n items.push({\n displayValue,\n value,\n isSelected,\n });\n }\n\n log.debug2('Received table update:', offset, items.length);\n\n const itemCount = table.size;\n this.setState({ itemCount, items, offset, isLoading: false });\n }\n\n isValueSelected(value: T): boolean {\n const { invertSelection } = this.props;\n const { selectedValues } = this.state;\n\n // Need to check if any of the valueOf matches, timestamp value that is equal\n const selectedIndex = AdvancedFilterCreatorSelectValueList.indexOf(\n value,\n selectedValues\n );\n\n return invertSelection ? selectedIndex < 0 : selectedIndex >= 0;\n }\n\n startListening(table: Table): void {\n table.addEventListener(dh.Table.EVENT_UPDATED, this.handleTableUpdate);\n }\n\n stopListening(table: Table): void {\n table.removeEventListener(dh.Table.EVENT_UPDATED, this.handleTableUpdate);\n }\n\n resetViewport(): void {\n if (this.list && this.list.topRow != null && this.list.bottomRow != null) {\n this.updateViewport(this.list.topRow, this.list.bottomRow, true);\n }\n }\n\n updateItemSelection(): void {\n let { items } = this.state;\n\n items = [...items];\n\n for (let i = 0; i < items.length; i += 1) {\n const item = items[i];\n const { value } = item;\n item.isSelected = this.isValueSelected(value);\n }\n\n this.setState({ items });\n }\n\n updateViewport(top: number, bottom: number, isLoading = false): void {\n const { table } = this.props;\n if (table == null) {\n return;\n }\n\n if (isLoading) {\n this.setState({ isLoading: true });\n }\n\n const viewportSize = bottom - top + 1;\n const topRow = Math.max(0, top - viewportSize * 3);\n const bottomRow = Math.max(topRow, bottom + viewportSize * 3);\n\n log.debug2('Setting viewport', topRow, ',', bottomRow);\n table.setViewport(topRow, bottomRow);\n }\n\n render(): React.ReactElement {\n const { offset, isLoading, items, itemCount } = this.state;\n\n return (\n <div className=\"select-value-list-wrapper\">\n <SelectValueList\n itemCount={itemCount}\n items={items}\n offset={offset}\n onSelect={this.handleSelect}\n onViewportChange={this.handleViewportChange}\n ref={list => {\n this.list = list;\n }}\n />\n <CSSTransition\n in={isLoading}\n timeout={250}\n classNames=\"fade\"\n mountOnEnter\n unmountOnExit\n >\n <div className=\"loading-list\">\n <LoadingSpinner className=\"loading-spinner-large\" />\n </div>\n </CSSTransition>\n </div>\n );\n }\n}\n\nexport default AdvancedFilterCreatorSelectValueList;\n"],"mappings":"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"}
1
+ {"version":3,"file":"AdvancedFilterCreatorSelectValueList.js","names":["React","PureComponent","CSSTransition","dh","LoadingSpinner","SelectValueList","Log","log","module","AdvancedFilterCreatorSelectValueList","indexOf","value","values","i","length","v","valueOf","constructor","props","handleSelect","bind","handleViewportChange","handleSelectionUpdate","handleTableUpdate","list","selectedValues","state","itemCount","items","offset","isLoading","componentDidMount","table","startListening","componentDidUpdate","prevProps","filters","invertSelection","stopListening","resetViewport","setState","applyFilter","componentWillUnmount","itemIndex","selectedIndex","splice","push","isSelected","visibleItemIndex","onChange","top","bottom","updateViewport","updateItemSelection","event","formatter","data","detail","column","columns","r","rows","row","get","displayValue","getFormattedString","type","name","isValueSelected","debug2","size","addEventListener","Table","EVENT_UPDATED","removeEventListener","topRow","bottomRow","item","viewportSize","Math","max","setViewport","render","undefined"],"sources":["../src/AdvancedFilterCreatorSelectValueList.tsx"],"sourcesContent":["/* eslint react/no-did-update-set-state: \"off\" */\nimport React, { PureComponent } from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport dh, { FilterCondition, Table } from '@deephaven/jsapi-shim';\nimport { Formatter } from '@deephaven/jsapi-utils';\nimport {\n LoadingSpinner,\n SelectValueList,\n SelectItem,\n} from '@deephaven/components';\nimport Log from '@deephaven/log';\n\nconst log = Log.module('AdvancedFilterCreatorSelectValueList');\n\ninterface AdvancedFilterCreatorSelectValueListProps<T> {\n selectedValues: T[];\n table?: Table;\n filters: FilterCondition[];\n invertSelection: boolean;\n onChange: (selectedValues: T[], invertSelection: boolean) => void;\n formatter: Formatter;\n}\n\ninterface AdvancedFilterCreatorSelectValueListState<T> {\n itemCount: number;\n items: SelectItem<T>[];\n offset: number;\n selectedValues: T[];\n isLoading: boolean;\n}\n/**\n * Select values from a long scrollable list.\n * Swaps items in and out for infinite scrolling\n */\nclass AdvancedFilterCreatorSelectValueList<T = unknown> extends PureComponent<\n AdvancedFilterCreatorSelectValueListProps<T>,\n AdvancedFilterCreatorSelectValueListState<T>\n> {\n static defaultProps = {\n invertSelection: true,\n selectedValues: [],\n onChange: (): void => undefined,\n };\n\n /**\n * Get the index of a value in an array. Has some special handling for some types, like DateTimes and Longs.\n * @param value The value to search for\n * @param values The array of values to search within\n */\n static indexOf(\n value: { valueof?: unknown },\n values: { valueof?: unknown }[]\n ): number {\n for (let i = 0; i < values.length; i += 1) {\n const v = values[i];\n if (\n v === value ||\n (v != null &&\n v.valueOf != null &&\n value != null &&\n value.valueOf != null &&\n v.valueOf() === value.valueOf())\n ) {\n return i;\n }\n }\n\n return -1;\n }\n\n constructor(props: AdvancedFilterCreatorSelectValueListProps<T>) {\n super(props);\n\n this.handleSelect = this.handleSelect.bind(this);\n this.handleViewportChange = this.handleViewportChange.bind(this);\n this.handleSelectionUpdate = this.handleSelectionUpdate.bind(this);\n this.handleTableUpdate = this.handleTableUpdate.bind(this);\n\n this.list = null;\n\n const { selectedValues } = this.props;\n\n this.state = {\n itemCount: 0,\n items: [],\n offset: 0,\n selectedValues,\n isLoading: true,\n };\n }\n\n componentDidMount(): void {\n const { table } = this.props;\n if (table) this.startListening(table);\n }\n\n componentDidUpdate(\n prevProps: AdvancedFilterCreatorSelectValueListProps<T>\n ): void {\n const { filters, invertSelection, selectedValues, table } = this.props;\n if (prevProps.table !== table) {\n if (prevProps.table) this.stopListening(prevProps.table);\n if (table) this.startListening(table);\n this.resetViewport();\n }\n\n if (prevProps.invertSelection !== invertSelection) {\n this.setState({ selectedValues: [] }, this.handleSelectionUpdate);\n }\n\n if (prevProps.selectedValues !== selectedValues) {\n this.setState({ selectedValues }, this.handleSelectionUpdate);\n }\n\n if (prevProps.filters !== filters) {\n table?.applyFilter(filters);\n this.resetViewport();\n }\n }\n\n componentWillUnmount(): void {\n const { table } = this.props;\n if (table) this.stopListening(table);\n }\n\n list: SelectValueList<T> | null;\n\n handleSelect(itemIndex: number, value: T): void {\n const { invertSelection } = this.props;\n let { selectedValues } = this.state;\n selectedValues = [...selectedValues];\n const selectedIndex = AdvancedFilterCreatorSelectValueList.indexOf(\n value,\n selectedValues\n );\n if (selectedIndex >= 0) {\n selectedValues.splice(selectedIndex, 1);\n } else {\n selectedValues.push(value);\n }\n\n let isSelected = selectedIndex < 0;\n if (invertSelection) {\n isSelected = !isSelected;\n }\n\n const { offset } = this.state;\n let { items } = this.state;\n items = [...items];\n const visibleItemIndex = itemIndex - offset;\n if (visibleItemIndex >= 0 && visibleItemIndex < items.length) {\n items[visibleItemIndex].isSelected = isSelected;\n }\n\n this.setState({ items, selectedValues });\n\n const { onChange } = this.props;\n onChange(selectedValues, invertSelection);\n }\n\n handleViewportChange(top: number, bottom: number): void {\n this.updateViewport(top, bottom);\n }\n\n handleSelectionUpdate(): void {\n this.updateItemSelection();\n }\n\n handleTableUpdate(event: CustomEvent): void {\n const { table, formatter } = this.props;\n if (!table) return;\n\n const data = event.detail;\n const { offset } = data;\n const items = [];\n const column = table.columns[0];\n for (let r = 0; r < data.rows.length; r += 1) {\n const row = data.rows[r];\n const value = row.get(column);\n const displayValue = formatter.getFormattedString(\n value,\n column.type,\n column.name\n );\n const isSelected = this.isValueSelected(value);\n items.push({\n displayValue,\n value,\n isSelected,\n });\n }\n\n log.debug2('Received table update:', offset, items.length);\n\n const itemCount = table.size;\n this.setState({ itemCount, items, offset, isLoading: false });\n }\n\n isValueSelected(value: T): boolean {\n const { invertSelection } = this.props;\n const { selectedValues } = this.state;\n\n // Need to check if any of the valueOf matches, timestamp value that is equal\n const selectedIndex = AdvancedFilterCreatorSelectValueList.indexOf(\n value,\n selectedValues\n );\n\n return invertSelection ? selectedIndex < 0 : selectedIndex >= 0;\n }\n\n startListening(table: Table): void {\n table.addEventListener(dh.Table.EVENT_UPDATED, this.handleTableUpdate);\n }\n\n stopListening(table: Table): void {\n table.removeEventListener(dh.Table.EVENT_UPDATED, this.handleTableUpdate);\n }\n\n resetViewport(): void {\n if (this.list && this.list.topRow != null && this.list.bottomRow != null) {\n this.updateViewport(this.list.topRow, this.list.bottomRow, true);\n }\n }\n\n updateItemSelection(): void {\n let { items } = this.state;\n\n items = [...items];\n\n for (let i = 0; i < items.length; i += 1) {\n const item = items[i];\n const { value } = item;\n item.isSelected = this.isValueSelected(value);\n }\n\n this.setState({ items });\n }\n\n updateViewport(top: number, bottom: number, isLoading = false): void {\n const { table } = this.props;\n if (table == null) {\n return;\n }\n\n if (isLoading) {\n this.setState({ isLoading: true });\n }\n\n const viewportSize = bottom - top + 1;\n const topRow = Math.max(0, top - viewportSize * 3);\n const bottomRow = Math.max(topRow, bottom + viewportSize * 3);\n\n log.debug2('Setting viewport', topRow, ',', bottomRow);\n table.setViewport(topRow, bottomRow);\n }\n\n render(): React.ReactElement {\n const { offset, isLoading, items, itemCount } = this.state;\n\n return (\n <div className=\"select-value-list-wrapper\">\n <SelectValueList\n itemCount={itemCount}\n items={items}\n offset={offset}\n onSelect={this.handleSelect}\n onViewportChange={this.handleViewportChange}\n ref={list => {\n this.list = list;\n }}\n />\n <CSSTransition\n in={isLoading}\n timeout={250}\n classNames=\"fade\"\n mountOnEnter\n unmountOnExit\n >\n <div className=\"loading-list\">\n <LoadingSpinner className=\"loading-spinner-large\" />\n </div>\n </CSSTransition>\n </div>\n );\n }\n}\n\nexport default AdvancedFilterCreatorSelectValueList;\n"],"mappings":"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"}
@@ -118,7 +118,7 @@ class ColumnStatistics extends Component {
118
118
  }
119
119
 
120
120
  handleError(error) {
121
- if (error && PromiseUtils.isCanceled(error)) {
121
+ if (error != null && PromiseUtils.isCanceled(error)) {
122
122
  log.debug('Called handleError on a cancelled promise result');
123
123
  return;
124
124
  }
@@ -202,7 +202,7 @@ class ColumnStatistics extends Component {
202
202
  type: "button",
203
203
  className: "btn btn-link px-0",
204
204
  onClick: this.handleGenerateStatistics
205
- }, "Generate Stats"), error && /*#__PURE__*/React.createElement("div", {
205
+ }, "Generate Stats"), error != null && /*#__PURE__*/React.createElement("div", {
206
206
  className: "error-message"
207
207
  }, "".concat(error)), statistics && !loading && /*#__PURE__*/React.createElement("button", {
208
208
  type: "button",
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnStatistics.js","names":["React","Component","classNames","FontAwesomeIcon","Button","ContextActionUtils","LoadingSpinner","dhFreeze","dhRefresh","vsCopy","vsLock","vsPassFilled","Log","PromiseUtils","isExpandableGridModel","log","module","STATS_LABEL_OVERRIDES","SIZE","ColumnStatistics","getStatsLabel","operation","split","map","w","toUpperCase","substr","toLowerCase","join","constructor","props","handleError","bind","handleGenerateStatistics","handleStatistics","handleCopyHeader","cancelablePromise","state","error","loading","statistics","numRows","copied","componentDidMount","maybeGenerateStatistics","componentWillUnmount","cancel","setState","model","rowCount","isColumnStatisticsAvailable","AUTO_GENERATE_LIMIT","column","makeCancelable","columnStatistics","then","catch","stats","debug","onStatistics","statisticsMap","forEach","value","push","type","getType","uniqueValues","className","isCanceled","render","showGenerateStatistics","statisticElements","columnType","substring","lastIndexOf","description","i","length","formattedValue","displayString","name","statisticElement","rowCountLabel","hasExpandableRows","formattedRowCount","columnIndex","getColumnIndexByName","copyToClipboard","e","isColumnMovable","isColumnFrozen"],"sources":["../src/ColumnStatistics.tsx"],"sourcesContent":["import React, { Component, Key } from 'react';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n Button,\n ContextActionUtils,\n LoadingSpinner,\n} from '@deephaven/components';\nimport {\n dhFreeze,\n dhRefresh,\n vsCopy,\n vsLock,\n vsPassFilled,\n} from '@deephaven/icons';\nimport {\n Column,\n ColumnStatistics as APIColumnStatistics,\n} from '@deephaven/jsapi-shim';\nimport Log from '@deephaven/log';\nimport { CancelablePromise, PromiseUtils } from '@deephaven/utils';\nimport { isExpandableGridModel } from '@deephaven/grid';\nimport './ColumnStatistics.scss';\nimport IrisGridModel from './IrisGridModel';\n\nconst log = Log.module('ColumnStatistics');\nconst STATS_LABEL_OVERRIDES: Record<string, string> = {\n SIZE: 'Number of Rows',\n};\n\ninterface Statistic {\n operation: Key;\n className?: string;\n value: unknown;\n type: string;\n}\n\ninterface ColumnStatisticsProps {\n column: Column;\n model: IrisGridModel;\n onStatistics: () => void;\n}\ninterface ColumnStatisticsState {\n error: unknown;\n loading: boolean;\n statistics: Statistic[] | null;\n numRows: number;\n copied: boolean;\n}\n\nclass ColumnStatistics extends Component<\n ColumnStatisticsProps,\n ColumnStatisticsState\n> {\n /** Automatically generate the statistics when the row count is below this threshold */\n static AUTO_GENERATE_LIMIT = 100000;\n\n static getStatsLabel(operation: string): string {\n return (\n STATS_LABEL_OVERRIDES[operation] ??\n operation\n .split(' ')\n .map(w => w[0].toUpperCase() + w.substr(1).toLowerCase())\n .join(' ')\n );\n }\n\n constructor(props: ColumnStatisticsProps) {\n super(props);\n\n this.handleError = this.handleError.bind(this);\n this.handleGenerateStatistics = this.handleGenerateStatistics.bind(this);\n this.handleStatistics = this.handleStatistics.bind(this);\n this.handleCopyHeader = this.handleCopyHeader.bind(this);\n\n this.cancelablePromise = null;\n\n this.state = {\n error: null,\n loading: false,\n statistics: null,\n numRows: 0,\n copied: false,\n };\n }\n\n componentDidMount(): void {\n this.maybeGenerateStatistics();\n }\n\n componentWillUnmount(): void {\n if (this.cancelablePromise) {\n this.cancelablePromise.cancel();\n }\n }\n\n cancelablePromise: CancelablePromise<APIColumnStatistics> | null;\n\n handleCopyHeader(): void {\n this.setState({ copied: true });\n }\n\n maybeGenerateStatistics(): void {\n const { model } = this.props;\n\n const numRows = model.rowCount;\n this.setState({ numRows });\n if (!model.isColumnStatisticsAvailable) {\n this.setState({ loading: false });\n } else if (numRows < ColumnStatistics.AUTO_GENERATE_LIMIT) {\n this.handleGenerateStatistics();\n }\n }\n\n handleGenerateStatistics(): void {\n this.setState({ loading: true });\n\n const { column, model } = this.props;\n\n this.cancelablePromise = PromiseUtils.makeCancelable(\n model.columnStatistics(column)\n );\n\n this.cancelablePromise.then(this.handleStatistics).catch(this.handleError);\n }\n\n handleStatistics(stats: APIColumnStatistics): void {\n log.debug('Received statistics', stats);\n\n const { model, onStatistics } = this.props;\n const statistics: Statistic[] = [];\n\n stats.statisticsMap.forEach((value, operation) => {\n statistics.push({\n operation: ColumnStatistics.getStatsLabel(operation),\n value,\n type: stats.getType(operation),\n });\n });\n\n stats.uniqueValues.forEach((value, operation) => {\n statistics.push({\n operation,\n className: 'column-statistics-unique-value',\n value,\n type: 'long',\n });\n });\n\n this.setState({\n loading: false,\n statistics,\n numRows: model.rowCount,\n });\n\n onStatistics();\n }\n\n handleError(error: Error): void {\n if (error && PromiseUtils.isCanceled(error)) {\n log.debug('Called handleError on a cancelled promise result');\n return;\n }\n\n log.error('Error generating statistics', error);\n this.setState({\n error,\n loading: false,\n statistics: null,\n });\n }\n\n render(): React.ReactElement {\n const { column, model } = this.props;\n const { error, loading, statistics, numRows, copied } = this.state;\n const showGenerateStatistics =\n !loading &&\n error == null &&\n statistics == null &&\n model.isColumnStatisticsAvailable;\n const statisticElements = [];\n const columnType = column.type.substring(column.type.lastIndexOf('.') + 1);\n const description = column.description === null ? null : column.description;\n if (statistics != null) {\n for (let i = 0; i < statistics.length; i += 1) {\n const { operation, className, value, type } = statistics[i];\n const formattedValue = !type\n ? model.displayString(value, column.type, column.name)\n : model.displayString(value, type);\n const statisticElement = (\n <React.Fragment key={operation}>\n <div\n className={classNames('column-statistic-operation', className)}\n >\n {operation}\n </div>\n <div className=\"column-statistic-value\">{formattedValue}</div>\n </React.Fragment>\n );\n statisticElements.push(statisticElement);\n }\n }\n const rowCountLabel =\n isExpandableGridModel(model) && model.hasExpandableRows\n ? 'Expanded Rows'\n : 'Number of Rows';\n const formattedRowCount = model.displayString(numRows, 'long');\n const columnIndex = model.getColumnIndexByName(column.name);\n return (\n <div className=\"column-statistics\">\n <div className=\"column-statistics-title\">\n {column.name}\n <span className=\"column-statistics-type\">&nbsp;({columnType})</span>\n <Button\n kind=\"ghost\"\n className=\"column-statistics-copy\"\n icon={copied ? vsPassFilled : vsCopy}\n onClick={() => {\n ContextActionUtils.copyToClipboard(column.name)\n .then(this.handleCopyHeader)\n .catch(e => log.error('Unable to column name', e));\n }}\n tooltip={copied ? 'Copied text' : 'Copy column name'}\n />\n </div>\n {description != null && (\n <div className=\"column-statistics-description\">{description}</div>\n )}\n {columnIndex != null && !model.isColumnMovable(columnIndex) && (\n <div className=\"column-statistics-status\">\n <FontAwesomeIcon\n icon={model.isColumnFrozen(columnIndex) ? dhFreeze : vsLock}\n className=\"mr-1\"\n />\n {model.isColumnFrozen(columnIndex) ? 'Frozen' : 'Not movable'}\n </div>\n )}\n <div className=\"column-statistics-grid\">\n {statistics == null && (\n <>\n <div className=\"column-statistic-operation\">{rowCountLabel}</div>\n <div className=\"column-statistic-value\">{formattedRowCount}</div>\n </>\n )}\n\n {statisticElements}\n </div>\n {showGenerateStatistics && (\n <button\n type=\"button\"\n className=\"btn btn-link px-0\"\n onClick={this.handleGenerateStatistics}\n >\n Generate Stats\n </button>\n )}\n {error && <div className=\"error-message\">{`${error}`}</div>}\n {statistics && !loading && (\n <button\n type=\"button\"\n className=\"btn btn-link px-0\"\n onClick={this.handleGenerateStatistics}\n >\n <FontAwesomeIcon icon={dhRefresh} className=\"mr-1\" />\n Refresh\n </button>\n )}\n {loading && (\n <div className=\"column-statistics-loading\">\n <LoadingSpinner className=\"mr-2\" />\n Calculating Stats...\n </div>\n )}\n </div>\n );\n }\n}\n\nexport default ColumnStatistics;\n"],"mappings":"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"}
1
+ {"version":3,"file":"ColumnStatistics.js","names":["React","Component","classNames","FontAwesomeIcon","Button","ContextActionUtils","LoadingSpinner","dhFreeze","dhRefresh","vsCopy","vsLock","vsPassFilled","Log","PromiseUtils","isExpandableGridModel","log","module","STATS_LABEL_OVERRIDES","SIZE","ColumnStatistics","getStatsLabel","operation","split","map","w","toUpperCase","substr","toLowerCase","join","constructor","props","handleError","bind","handleGenerateStatistics","handleStatistics","handleCopyHeader","cancelablePromise","state","error","loading","statistics","numRows","copied","componentDidMount","maybeGenerateStatistics","componentWillUnmount","cancel","setState","model","rowCount","isColumnStatisticsAvailable","AUTO_GENERATE_LIMIT","column","makeCancelable","columnStatistics","then","catch","stats","debug","onStatistics","statisticsMap","forEach","value","push","type","getType","uniqueValues","className","isCanceled","render","showGenerateStatistics","statisticElements","columnType","substring","lastIndexOf","description","i","length","formattedValue","displayString","name","statisticElement","rowCountLabel","hasExpandableRows","formattedRowCount","columnIndex","getColumnIndexByName","copyToClipboard","e","isColumnMovable","isColumnFrozen"],"sources":["../src/ColumnStatistics.tsx"],"sourcesContent":["import React, { Component, Key } from 'react';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n Button,\n ContextActionUtils,\n LoadingSpinner,\n} from '@deephaven/components';\nimport {\n dhFreeze,\n dhRefresh,\n vsCopy,\n vsLock,\n vsPassFilled,\n} from '@deephaven/icons';\nimport {\n Column,\n ColumnStatistics as APIColumnStatistics,\n} from '@deephaven/jsapi-shim';\nimport Log from '@deephaven/log';\nimport { CancelablePromise, PromiseUtils } from '@deephaven/utils';\nimport { isExpandableGridModel } from '@deephaven/grid';\nimport './ColumnStatistics.scss';\nimport IrisGridModel from './IrisGridModel';\n\nconst log = Log.module('ColumnStatistics');\nconst STATS_LABEL_OVERRIDES: Record<string, string> = {\n SIZE: 'Number of Rows',\n};\n\ninterface Statistic {\n operation: Key;\n className?: string;\n value: unknown;\n type: string;\n}\n\ninterface ColumnStatisticsProps {\n column: Column;\n model: IrisGridModel;\n onStatistics: () => void;\n}\ninterface ColumnStatisticsState {\n error: unknown;\n loading: boolean;\n statistics: Statistic[] | null;\n numRows: number;\n copied: boolean;\n}\n\nclass ColumnStatistics extends Component<\n ColumnStatisticsProps,\n ColumnStatisticsState\n> {\n /** Automatically generate the statistics when the row count is below this threshold */\n static AUTO_GENERATE_LIMIT = 100000;\n\n static getStatsLabel(operation: string): string {\n return (\n STATS_LABEL_OVERRIDES[operation] ??\n operation\n .split(' ')\n .map(w => w[0].toUpperCase() + w.substr(1).toLowerCase())\n .join(' ')\n );\n }\n\n constructor(props: ColumnStatisticsProps) {\n super(props);\n\n this.handleError = this.handleError.bind(this);\n this.handleGenerateStatistics = this.handleGenerateStatistics.bind(this);\n this.handleStatistics = this.handleStatistics.bind(this);\n this.handleCopyHeader = this.handleCopyHeader.bind(this);\n\n this.cancelablePromise = null;\n\n this.state = {\n error: null,\n loading: false,\n statistics: null,\n numRows: 0,\n copied: false,\n };\n }\n\n componentDidMount(): void {\n this.maybeGenerateStatistics();\n }\n\n componentWillUnmount(): void {\n if (this.cancelablePromise) {\n this.cancelablePromise.cancel();\n }\n }\n\n cancelablePromise: CancelablePromise<APIColumnStatistics> | null;\n\n handleCopyHeader(): void {\n this.setState({ copied: true });\n }\n\n maybeGenerateStatistics(): void {\n const { model } = this.props;\n\n const numRows = model.rowCount;\n this.setState({ numRows });\n if (!model.isColumnStatisticsAvailable) {\n this.setState({ loading: false });\n } else if (numRows < ColumnStatistics.AUTO_GENERATE_LIMIT) {\n this.handleGenerateStatistics();\n }\n }\n\n handleGenerateStatistics(): void {\n this.setState({ loading: true });\n\n const { column, model } = this.props;\n\n this.cancelablePromise = PromiseUtils.makeCancelable(\n model.columnStatistics(column)\n );\n\n this.cancelablePromise.then(this.handleStatistics).catch(this.handleError);\n }\n\n handleStatistics(stats: APIColumnStatistics): void {\n log.debug('Received statistics', stats);\n\n const { model, onStatistics } = this.props;\n const statistics: Statistic[] = [];\n\n stats.statisticsMap.forEach((value, operation) => {\n statistics.push({\n operation: ColumnStatistics.getStatsLabel(operation),\n value,\n type: stats.getType(operation),\n });\n });\n\n stats.uniqueValues.forEach((value, operation) => {\n statistics.push({\n operation,\n className: 'column-statistics-unique-value',\n value,\n type: 'long',\n });\n });\n\n this.setState({\n loading: false,\n statistics,\n numRows: model.rowCount,\n });\n\n onStatistics();\n }\n\n handleError(error: Error): void {\n if (error != null && PromiseUtils.isCanceled(error)) {\n log.debug('Called handleError on a cancelled promise result');\n return;\n }\n\n log.error('Error generating statistics', error);\n this.setState({\n error,\n loading: false,\n statistics: null,\n });\n }\n\n render(): React.ReactElement {\n const { column, model } = this.props;\n const { error, loading, statistics, numRows, copied } = this.state;\n const showGenerateStatistics =\n !loading &&\n error == null &&\n statistics == null &&\n model.isColumnStatisticsAvailable;\n const statisticElements = [];\n const columnType = column.type.substring(column.type.lastIndexOf('.') + 1);\n const description = column.description === null ? null : column.description;\n if (statistics != null) {\n for (let i = 0; i < statistics.length; i += 1) {\n const { operation, className, value, type } = statistics[i];\n const formattedValue = !type\n ? model.displayString(value, column.type, column.name)\n : model.displayString(value, type);\n const statisticElement = (\n <React.Fragment key={operation}>\n <div\n className={classNames('column-statistic-operation', className)}\n >\n {operation}\n </div>\n <div className=\"column-statistic-value\">{formattedValue}</div>\n </React.Fragment>\n );\n statisticElements.push(statisticElement);\n }\n }\n const rowCountLabel =\n isExpandableGridModel(model) && model.hasExpandableRows\n ? 'Expanded Rows'\n : 'Number of Rows';\n const formattedRowCount = model.displayString(numRows, 'long');\n const columnIndex = model.getColumnIndexByName(column.name);\n return (\n <div className=\"column-statistics\">\n <div className=\"column-statistics-title\">\n {column.name}\n <span className=\"column-statistics-type\">&nbsp;({columnType})</span>\n <Button\n kind=\"ghost\"\n className=\"column-statistics-copy\"\n icon={copied ? vsPassFilled : vsCopy}\n onClick={() => {\n ContextActionUtils.copyToClipboard(column.name)\n .then(this.handleCopyHeader)\n .catch(e => log.error('Unable to column name', e));\n }}\n tooltip={copied ? 'Copied text' : 'Copy column name'}\n />\n </div>\n {description != null && (\n <div className=\"column-statistics-description\">{description}</div>\n )}\n {columnIndex != null && !model.isColumnMovable(columnIndex) && (\n <div className=\"column-statistics-status\">\n <FontAwesomeIcon\n icon={model.isColumnFrozen(columnIndex) ? dhFreeze : vsLock}\n className=\"mr-1\"\n />\n {model.isColumnFrozen(columnIndex) ? 'Frozen' : 'Not movable'}\n </div>\n )}\n <div className=\"column-statistics-grid\">\n {statistics == null && (\n <>\n <div className=\"column-statistic-operation\">{rowCountLabel}</div>\n <div className=\"column-statistic-value\">{formattedRowCount}</div>\n </>\n )}\n\n {statisticElements}\n </div>\n {showGenerateStatistics && (\n <button\n type=\"button\"\n className=\"btn btn-link px-0\"\n onClick={this.handleGenerateStatistics}\n >\n Generate Stats\n </button>\n )}\n {error != null && <div className=\"error-message\">{`${error}`}</div>}\n {statistics && !loading && (\n <button\n type=\"button\"\n className=\"btn btn-link px-0\"\n onClick={this.handleGenerateStatistics}\n >\n <FontAwesomeIcon icon={dhRefresh} className=\"mr-1\" />\n Refresh\n </button>\n )}\n {loading && (\n <div className=\"column-statistics-loading\">\n <LoadingSpinner className=\"mr-2\" />\n Calculating Stats...\n </div>\n )}\n </div>\n );\n }\n}\n\nexport default ColumnStatistics;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FilterInputField.d.ts","sourceRoot":"","sources":["../src/FilterInputField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAIxE,OAAO,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAE5C,UAAU,qBAAqB;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,EAAE,OAAO,CAAC;IAC7B,0BAA0B,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACvE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,MAAM,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACjE,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,aAAa,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,CAAC;IAC7E,UAAU,EAAE,MAAM,CAAC;CACpB;AACD,UAAU,qBAAqB;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AACD;;;GAGG;AACH,cAAM,gBAAiB,SAAQ,aAAa,CAC1C,qBAAqB,EACrB,qBAAqB,CACtB;IACC,MAAM,CAAC,YAAY;;;;;0CAKe,IAAI;wBACtB,IAAI;sBACN,IAAI;qBACL,IAAI;6BACI,IAAI;;MAEvB;gBAEU,KAAK,EAAE,qBAAqB;IAwBxC,iBAAiB,IAAI,IAAI;IAIzB,kBAAkB,CAAC,SAAS,EAAE,qBAAqB,GAAG,IAAI;IAW1D,oBAAoB,IAAI,IAAI;IAI5B,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAEpC,YAAY,EAAE,MAAM,CAAC;IAErB,mBAAmB,EAAE,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC;IAK5D,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B,KAAK,IAAI,IAAI;IAIb,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAOxD,YAAY,IAAI,IAAI;IAYpB,YAAY,CAAC,YAAY,UAAO,EAAE,YAAY,UAAO,GAAG,IAAI;IAO5D,WAAW,IAAI,IAAI;IAInB,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAiB3D,SAAS,CAAC,QAAQ,UAAQ,GAAG,IAAI;IAOjC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAsBjE,iBAAiB,CACf,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,GAC5D,IAAI;IAKP,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK/B,MAAM,IAAI,YAAY;CAoDvB;AAED,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"FilterInputField.d.ts","sourceRoot":"","sources":["../src/FilterInputField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAIxE,OAAO,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAE5C,UAAU,qBAAqB;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,EAAE,OAAO,CAAC;IAC7B,0BAA0B,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACvE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,MAAM,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACjE,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,aAAa,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,CAAC;IAC7E,UAAU,EAAE,MAAM,CAAC;CACpB;AACD,UAAU,qBAAqB;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AACD;;;GAGG;AACH,cAAM,gBAAiB,SAAQ,aAAa,CAC1C,qBAAqB,EACrB,qBAAqB,CACtB;IACC,MAAM,CAAC,YAAY;;;;;0CAKe,IAAI;wBACtB,IAAI;sBACN,IAAI;qBACL,IAAI;6BACI,IAAI;;MAEvB;gBAEU,KAAK,EAAE,qBAAqB;IAwBxC,iBAAiB,IAAI,IAAI;IAIzB,kBAAkB,CAAC,SAAS,EAAE,qBAAqB,GAAG,IAAI;IAW1D,oBAAoB,IAAI,IAAI;IAI5B,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAEpC,YAAY,EAAE,MAAM,CAAC;IAErB,mBAAmB,EAAE,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC;IAK5D,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B,KAAK,IAAI,IAAI;IAIb,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAOxD,YAAY,IAAI,IAAI;IAYpB,YAAY,CAAC,YAAY,UAAO,EAAE,YAAY,UAAO,GAAG,IAAI;IAO5D,WAAW,IAAI,IAAI;IAInB,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAuB3D,SAAS,CAAC,QAAQ,UAAQ,GAAG,IAAI;IAOjC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAsBjE,iBAAiB,CACf,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,GAC5D,IAAI;IAKP,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK/B,MAAM,IAAI,YAAY;CAoDvB;AAED,eAAe,gBAAgB,CAAC"}
@@ -131,11 +131,11 @@ class FilterInputField extends PureComponent {
131
131
  relatedTarget
132
132
  } = event; // handleCommit results in a call that steals focus
133
133
 
134
- if (relatedTarget !== null && relatedTarget !== void 0 && relatedTarget.classList.contains('context-menu-container')) {
134
+ if (relatedTarget != null && relatedTarget.classList.contains('context-menu-container')) {
135
135
  // input blurred by calling context-menu
136
136
  // don't set grid focus, but do null column focus
137
137
  this.handleCommit(false, true);
138
- } else if (relatedTarget !== null && relatedTarget !== void 0 && relatedTarget.classList.contains('advanced-filter-button')) {
138
+ } else if (relatedTarget != null && relatedTarget.classList.contains('advanced-filter-button')) {
139
139
  // blurred by clicking an advanced filter button
140
140
  // don't set grid focus, maintain focusedFilterBarColumn state
141
141
  this.handleCommit(false, false);
@@ -1 +1 @@
1
- {"version":3,"file":"FilterInputField.js","names":["React","PureComponent","classNames","debounce","vsFilter","dhFilterFilled","FontAwesomeIcon","FilterInputField","constructor","props","debounceMs","debouncedSendUpdate","sendUpdate","bind","handleCancel","handleChange","handleCommit","handleFocus","handleBlur","handleKeyDown","handleContextMenu","inputField","value","initialValue","state","isChanged","componentDidMount","focus","componentDidUpdate","prevProps","flush","componentWillUnmount","cancel","setValue","setState","event","target","onDone","setGridFocus","defocusInput","select","relatedTarget","classList","contains","handleTab","backward","onTab","key","stopPropagation","preventDefault","shiftKey","onContextMenu","onChange","render","className","style","isAdvancedFilterSet","onAdvancedFiltersTriggered","undefined"],"sources":["../src/FilterInputField.tsx"],"sourcesContent":["import React, { ChangeEvent, PureComponent, ReactElement } from 'react';\nimport classNames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport { vsFilter, dhFilterFilled } from '@deephaven/icons';\nimport './FilterInputField.scss';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport type { DebouncedFunc } from 'lodash';\n\ninterface FilterInputFieldProps {\n className: string;\n style: React.CSSProperties;\n value: string;\n isAdvancedFilterSet: boolean;\n onAdvancedFiltersTriggered: React.MouseEventHandler<HTMLButtonElement>;\n onChange: (value: string) => void;\n onDone: (setGridFocus?: boolean, defocusInput?: boolean) => void;\n onTab: (backward: boolean) => void;\n onContextMenu: React.MouseEventHandler<HTMLInputElement | HTMLButtonElement>;\n debounceMs: number;\n}\ninterface FilterInputFieldState {\n isChanged: boolean;\n value: string;\n}\n/**\n * An input field showing a input field and button.\n * Debounces changes.\n */\nclass FilterInputField extends PureComponent<\n FilterInputFieldProps,\n FilterInputFieldState\n> {\n static defaultProps = {\n style: {},\n className: '',\n value: '',\n isAdvancedFilterSet: false,\n onAdvancedFiltersTriggered: (): void => undefined,\n onChange: (): void => undefined,\n onDone: (): void => undefined,\n onTab: (): void => undefined,\n onContextMenu: (): void => undefined,\n debounceMs: 150,\n };\n\n constructor(props: FilterInputFieldProps) {\n super(props);\n\n const { debounceMs } = props;\n\n this.debouncedSendUpdate = debounce(this.sendUpdate.bind(this), debounceMs);\n this.handleCancel = this.handleCancel.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleCommit = this.handleCommit.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleContextMenu = this.handleContextMenu.bind(this);\n\n this.inputField = null;\n\n const { value } = props;\n this.initialValue = value;\n this.state = {\n isChanged: false,\n value,\n };\n }\n\n componentDidMount(): void {\n this.inputField?.focus();\n }\n\n componentDidUpdate(prevProps: FilterInputFieldProps): void {\n const { debounceMs } = this.props;\n if (prevProps.debounceMs !== debounceMs) {\n this.debouncedSendUpdate.flush();\n this.debouncedSendUpdate = debounce(\n this.sendUpdate.bind(this),\n debounceMs\n );\n }\n }\n\n componentWillUnmount(): void {\n this.debouncedSendUpdate.cancel();\n }\n\n inputField: HTMLInputElement | null;\n\n initialValue: string;\n\n debouncedSendUpdate: DebouncedFunc<(value: string) => void>;\n\n // clear filters needs to be able to reset the value externally\n // and due to the way this component handles its own debouncing\n // this was easier than moving state up.\n setValue(value: string): void {\n this.initialValue = value;\n this.setState({ value });\n }\n\n focus(): void {\n this.inputField?.focus();\n }\n\n handleChange(event: ChangeEvent<HTMLInputElement>): void {\n const { value } = event.target;\n this.setState({ value, isChanged: true });\n\n this.debouncedSendUpdate(value);\n }\n\n handleCancel(): void {\n this.debouncedSendUpdate.cancel();\n const { initialValue } = this;\n const { isChanged } = this.state;\n if (isChanged) {\n this.sendUpdate(initialValue);\n }\n\n const { onDone } = this.props;\n onDone();\n }\n\n handleCommit(setGridFocus = true, defocusInput = true): void {\n this.debouncedSendUpdate.flush();\n\n const { onDone } = this.props;\n onDone(setGridFocus, defocusInput);\n }\n\n handleFocus(): void {\n this.inputField?.select();\n }\n\n handleBlur(event: React.FocusEvent<HTMLInputElement>): void {\n const { relatedTarget } = event;\n // handleCommit results in a call that steals focus\n if (relatedTarget?.classList.contains('context-menu-container')) {\n // input blurred by calling context-menu\n // don't set grid focus, but do null column focus\n this.handleCommit(false, true);\n } else if (relatedTarget?.classList.contains('advanced-filter-button')) {\n // blurred by clicking an advanced filter button\n // don't set grid focus, maintain focusedFilterBarColumn state\n this.handleCommit(false, false);\n } else {\n // clear both, blurred elsewhere\n this.handleCommit(true, true);\n }\n }\n\n handleTab(backward = false): void {\n this.debouncedSendUpdate.flush();\n\n const { onTab } = this.props;\n onTab(backward);\n }\n\n handleKeyDown(event: React.KeyboardEvent<HTMLInputElement>): void {\n switch (event.key) {\n case 'Escape':\n event.stopPropagation();\n event.preventDefault();\n this.handleCancel();\n break;\n case 'Enter':\n event.stopPropagation();\n event.preventDefault();\n this.handleCommit();\n break;\n case 'Tab':\n event.stopPropagation();\n event.preventDefault();\n this.handleTab(event.shiftKey);\n break;\n default:\n break;\n }\n }\n\n handleContextMenu(\n event: React.MouseEvent<HTMLInputElement | HTMLButtonElement>\n ): void {\n const { onContextMenu } = this.props;\n onContextMenu(event);\n }\n\n sendUpdate(value: string): void {\n const { onChange } = this.props;\n onChange(value);\n }\n\n render(): ReactElement {\n const {\n className,\n style,\n isAdvancedFilterSet,\n onAdvancedFiltersTriggered,\n } = this.props;\n const { value } = this.state;\n return (\n <div\n style={style}\n className=\"iris-grid-input-autosized-wrapper\"\n data-value={value} // used by css based autosizer\n >\n <input\n ref={inputField => {\n this.inputField = inputField;\n }}\n className={classNames('iris-grid-input-field', className)}\n type=\"text\"\n value={value}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onChange={this.handleChange}\n onKeyDown={this.handleKeyDown}\n onContextMenu={this.handleContextMenu}\n autoComplete=\"off\"\n autoCorrect=\"off\"\n autoCapitalize=\"off\"\n spellCheck=\"false\"\n />\n <div className=\"advanced-filter-button-container\">\n <button\n type=\"button\"\n className={classNames(\n 'btn btn-link btn-link-icon advanced-filter-button',\n {\n 'filter-set': isAdvancedFilterSet,\n }\n )}\n onClick={onAdvancedFiltersTriggered}\n onContextMenu={this.handleContextMenu}\n >\n <div className=\"fa-layers \">\n <FontAwesomeIcon icon={dhFilterFilled} className=\"filter-solid\" />\n <FontAwesomeIcon icon={vsFilter} className=\"filter-light\" />\n </div>\n </button>\n </div>\n </div>\n );\n }\n}\n\nexport default FilterInputField;\n"],"mappings":"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"}
1
+ {"version":3,"file":"FilterInputField.js","names":["React","PureComponent","classNames","debounce","vsFilter","dhFilterFilled","FontAwesomeIcon","FilterInputField","constructor","props","debounceMs","debouncedSendUpdate","sendUpdate","bind","handleCancel","handleChange","handleCommit","handleFocus","handleBlur","handleKeyDown","handleContextMenu","inputField","value","initialValue","state","isChanged","componentDidMount","focus","componentDidUpdate","prevProps","flush","componentWillUnmount","cancel","setValue","setState","event","target","onDone","setGridFocus","defocusInput","select","relatedTarget","classList","contains","handleTab","backward","onTab","key","stopPropagation","preventDefault","shiftKey","onContextMenu","onChange","render","className","style","isAdvancedFilterSet","onAdvancedFiltersTriggered","undefined"],"sources":["../src/FilterInputField.tsx"],"sourcesContent":["import React, { ChangeEvent, PureComponent, ReactElement } from 'react';\nimport classNames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport { vsFilter, dhFilterFilled } from '@deephaven/icons';\nimport './FilterInputField.scss';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport type { DebouncedFunc } from 'lodash';\n\ninterface FilterInputFieldProps {\n className: string;\n style: React.CSSProperties;\n value: string;\n isAdvancedFilterSet: boolean;\n onAdvancedFiltersTriggered: React.MouseEventHandler<HTMLButtonElement>;\n onChange: (value: string) => void;\n onDone: (setGridFocus?: boolean, defocusInput?: boolean) => void;\n onTab: (backward: boolean) => void;\n onContextMenu: React.MouseEventHandler<HTMLInputElement | HTMLButtonElement>;\n debounceMs: number;\n}\ninterface FilterInputFieldState {\n isChanged: boolean;\n value: string;\n}\n/**\n * An input field showing a input field and button.\n * Debounces changes.\n */\nclass FilterInputField extends PureComponent<\n FilterInputFieldProps,\n FilterInputFieldState\n> {\n static defaultProps = {\n style: {},\n className: '',\n value: '',\n isAdvancedFilterSet: false,\n onAdvancedFiltersTriggered: (): void => undefined,\n onChange: (): void => undefined,\n onDone: (): void => undefined,\n onTab: (): void => undefined,\n onContextMenu: (): void => undefined,\n debounceMs: 150,\n };\n\n constructor(props: FilterInputFieldProps) {\n super(props);\n\n const { debounceMs } = props;\n\n this.debouncedSendUpdate = debounce(this.sendUpdate.bind(this), debounceMs);\n this.handleCancel = this.handleCancel.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleCommit = this.handleCommit.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleContextMenu = this.handleContextMenu.bind(this);\n\n this.inputField = null;\n\n const { value } = props;\n this.initialValue = value;\n this.state = {\n isChanged: false,\n value,\n };\n }\n\n componentDidMount(): void {\n this.inputField?.focus();\n }\n\n componentDidUpdate(prevProps: FilterInputFieldProps): void {\n const { debounceMs } = this.props;\n if (prevProps.debounceMs !== debounceMs) {\n this.debouncedSendUpdate.flush();\n this.debouncedSendUpdate = debounce(\n this.sendUpdate.bind(this),\n debounceMs\n );\n }\n }\n\n componentWillUnmount(): void {\n this.debouncedSendUpdate.cancel();\n }\n\n inputField: HTMLInputElement | null;\n\n initialValue: string;\n\n debouncedSendUpdate: DebouncedFunc<(value: string) => void>;\n\n // clear filters needs to be able to reset the value externally\n // and due to the way this component handles its own debouncing\n // this was easier than moving state up.\n setValue(value: string): void {\n this.initialValue = value;\n this.setState({ value });\n }\n\n focus(): void {\n this.inputField?.focus();\n }\n\n handleChange(event: ChangeEvent<HTMLInputElement>): void {\n const { value } = event.target;\n this.setState({ value, isChanged: true });\n\n this.debouncedSendUpdate(value);\n }\n\n handleCancel(): void {\n this.debouncedSendUpdate.cancel();\n const { initialValue } = this;\n const { isChanged } = this.state;\n if (isChanged) {\n this.sendUpdate(initialValue);\n }\n\n const { onDone } = this.props;\n onDone();\n }\n\n handleCommit(setGridFocus = true, defocusInput = true): void {\n this.debouncedSendUpdate.flush();\n\n const { onDone } = this.props;\n onDone(setGridFocus, defocusInput);\n }\n\n handleFocus(): void {\n this.inputField?.select();\n }\n\n handleBlur(event: React.FocusEvent<HTMLInputElement>): void {\n const { relatedTarget } = event;\n // handleCommit results in a call that steals focus\n if (\n relatedTarget != null &&\n relatedTarget.classList.contains('context-menu-container')\n ) {\n // input blurred by calling context-menu\n // don't set grid focus, but do null column focus\n this.handleCommit(false, true);\n } else if (\n relatedTarget != null &&\n relatedTarget.classList.contains('advanced-filter-button')\n ) {\n // blurred by clicking an advanced filter button\n // don't set grid focus, maintain focusedFilterBarColumn state\n this.handleCommit(false, false);\n } else {\n // clear both, blurred elsewhere\n this.handleCommit(true, true);\n }\n }\n\n handleTab(backward = false): void {\n this.debouncedSendUpdate.flush();\n\n const { onTab } = this.props;\n onTab(backward);\n }\n\n handleKeyDown(event: React.KeyboardEvent<HTMLInputElement>): void {\n switch (event.key) {\n case 'Escape':\n event.stopPropagation();\n event.preventDefault();\n this.handleCancel();\n break;\n case 'Enter':\n event.stopPropagation();\n event.preventDefault();\n this.handleCommit();\n break;\n case 'Tab':\n event.stopPropagation();\n event.preventDefault();\n this.handleTab(event.shiftKey);\n break;\n default:\n break;\n }\n }\n\n handleContextMenu(\n event: React.MouseEvent<HTMLInputElement | HTMLButtonElement>\n ): void {\n const { onContextMenu } = this.props;\n onContextMenu(event);\n }\n\n sendUpdate(value: string): void {\n const { onChange } = this.props;\n onChange(value);\n }\n\n render(): ReactElement {\n const {\n className,\n style,\n isAdvancedFilterSet,\n onAdvancedFiltersTriggered,\n } = this.props;\n const { value } = this.state;\n return (\n <div\n style={style}\n className=\"iris-grid-input-autosized-wrapper\"\n data-value={value} // used by css based autosizer\n >\n <input\n ref={inputField => {\n this.inputField = inputField;\n }}\n className={classNames('iris-grid-input-field', className)}\n type=\"text\"\n value={value}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onChange={this.handleChange}\n onKeyDown={this.handleKeyDown}\n onContextMenu={this.handleContextMenu}\n autoComplete=\"off\"\n autoCorrect=\"off\"\n autoCapitalize=\"off\"\n spellCheck=\"false\"\n />\n <div className=\"advanced-filter-button-container\">\n <button\n type=\"button\"\n className={classNames(\n 'btn btn-link btn-link-icon advanced-filter-button',\n {\n 'filter-set': isAdvancedFilterSet,\n }\n )}\n onClick={onAdvancedFiltersTriggered}\n onContextMenu={this.handleContextMenu}\n >\n <div className=\"fa-layers \">\n <FontAwesomeIcon icon={dhFilterFilled} className=\"filter-solid\" />\n <FontAwesomeIcon icon={vsFilter} className=\"filter-light\" />\n </div>\n </button>\n </div>\n </div>\n );\n }\n}\n\nexport default FilterInputField;\n"],"mappings":"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"}
@@ -270,7 +270,7 @@ export declare class IrisGrid extends Component<IrisGridProps, IrisGridState> {
270
270
  contextActions: ContextAction[];
271
271
  getAdvancedMenuOpenedHandler: ((column: any) => () => void) & memoize.Memoized<(column: any) => () => void>;
272
272
  getCachedAdvancedFilterMenuActions: ((model: any, column: any, advancedFilterOptions: any, sortDirection?: SortDirection | undefined, formatter?: any) => JSX.Element) & memoize.Memoized<(model: any, column: any, advancedFilterOptions: any, sortDirection?: SortDirection | undefined, formatter?: any) => JSX.Element>;
273
- getCachedOptionItems: ((isChartBuilderAvailable: any, isCustomColumnsAvailable: any, isFormatColumnsAvailable: any, isRollupAvailable: any, isTotalsAvailable: any, isSelectDistinctAvailable: any, isExportAvailable: any, toggleFilterBarAction: any, toggleSearchBarAction: any, toggleGotoRowAction: any, isFilterBarShown: any, showSearchBar: any, canDownloadCsv: any, canToggleSearch: any, showGotoRow: any) => OptionItem[]) & memoize.Memoized<(isChartBuilderAvailable: any, isCustomColumnsAvailable: any, isFormatColumnsAvailable: any, isRollupAvailable: any, isTotalsAvailable: any, isSelectDistinctAvailable: any, isExportAvailable: any, toggleFilterBarAction: any, toggleSearchBarAction: any, toggleGotoRowAction: any, isFilterBarShown: any, showSearchBar: any, canDownloadCsv: any, canToggleSearch: any, showGotoRow: any) => OptionItem[]>;
273
+ getCachedOptionItems: ((isChartBuilderAvailable: boolean, isCustomColumnsAvailable: boolean, isFormatColumnsAvailable: boolean, isRollupAvailable: boolean, isTotalsAvailable: boolean, isSelectDistinctAvailable: boolean, isExportAvailable: boolean, toggleFilterBarAction: any, toggleSearchBarAction: any, toggleGotoRowAction: any, isFilterBarShown: boolean, showSearchBar: boolean, canDownloadCsv: boolean, canToggleSearch: boolean, showGotoRow: boolean) => OptionItem[]) & memoize.Memoized<(isChartBuilderAvailable: boolean, isCustomColumnsAvailable: boolean, isFormatColumnsAvailable: boolean, isRollupAvailable: boolean, isTotalsAvailable: boolean, isSelectDistinctAvailable: boolean, isExportAvailable: boolean, toggleFilterBarAction: any, toggleSearchBarAction: any, toggleGotoRowAction: any, isFilterBarShown: boolean, showSearchBar: boolean, canDownloadCsv: boolean, canToggleSearch: boolean, showGotoRow: boolean) => OptionItem[]>;
274
274
  getCachedHiddenColumns: ((hiddenColumns: any) => any) & memoize.Memoized<(hiddenColumns: any) => any>;
275
275
  getAggregationMap: ((columns: Column[], aggregations: Aggregation[]) => AggregationMap) & memoize.Memoized<(columns: Column[], aggregations: Aggregation[]) => AggregationMap>;
276
276
  getOperationMap: ((columns: Column[], aggregations: Aggregation[]) => OperationMap) & memoize.Memoized<(columns: Column[], aggregations: Aggregation[]) => OperationMap>;
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGrid.d.ts","sourceRoot":"","sources":["../src/IrisGrid.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IrisGrid.d.ts","sourceRoot":"","sources":["../src/IrisGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,WAAW,EACX,SAAS,EACT,aAAa,EACb,YAAY,EACZ,SAAS,EACV,MAAM,OAAO,CAAC;AACf,OAAO,OAAO,MAAM,UAAU,CAAC;AAG/B,OAAO,SAAS,MAAM,YAAY,CAAC;AAInC,OAAO,EASL,OAAO,EACP,aAAa,EAGd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,IAAI,EACJ,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,aAAa,EAEb,UAAU,EACV,UAAU,EACV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,SAAS,EAET,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAiBzB,OAAW,EACT,MAAM,EACN,YAAY,EACZ,eAAe,EACf,IAAI,EACJ,KAAK,EACL,yBAAyB,EAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,SAAS,EAGT,cAAc,EACd,WAAW,EACX,aAAa,EACb,8BAA8B,EAC9B,iBAAiB,EACjB,QAAQ,EACT,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,OAAO,EAGR,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EACL,cAAc,IAAI,qBAAqB,EAExC,MAAM,6DAA6D,CAAC;AAErE,OAA4B,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAiBlD,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAElE,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAsB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEnE,OAAO,iBAAiB,CAAC;AAEzB,OAAO,EASL,UAAU,EAEX,MAAM,WAAW,CAAC;AAEnB,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAG5C,OAAO,oBAAoB,MAAM,gCAAgC,CAAC;AAClE,OAA6B,EAC3B,4BAA4B,EAC7B,MAAM,gCAAgC,CAAC;AAOxC,OAAO,EACL,WAAW,EACX,mBAAmB,EACpB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,oBAAoB,MAAM,6CAA6C,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,cAAc,EACd,YAAY,EACZ,MAAM,EACN,UAAU,EACV,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,qBAAqB,EACtB,MAAM,eAAe,CAAC;AAiDvB,oBAAY,SAAS,GAAG,GAAG,CACzB,UAAU,EACV;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CACrD,CAAC;AACF,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,eAAe,EAAE,iBAAiB,CAAC;IACnC,gBAAgB,EAAE,GAAG,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;IACrD,kBAAkB,EAAE,UAAU,EAAE,CAAC;IACjC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,uBAAuB,EAAE,OAAO,CAAC;IACjC,kBAAkB,EAAE,qBAAqB,EAAE,CAAC;IAC5C,qBAAqB,EAAE,GAAG,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IACvD,YAAY,EAAE,aAAa,EAAE,CAAC;IAC9B,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,aAAa,EAAE,OAAO,EAAE,CAAC;IACzB,KAAK,EAAE,aAAa,CAAC;IACrB,aAAa,EAAE,CAAC,QAAQ,EAAE,oBAAoB,EAAE,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC9E,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAClC,cAAc,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC9E,aAAa,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;IAC5E,iBAAiB,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpE,wBAAwB,EAAE,4BAA4B,CAAC;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,cAAc,GAAG,IAAI,CAAC;IACpC,aAAa,EAAE,UAAU,EAAE,CAAC;IAC5B,qBAAqB,EAAE,UAAU,EAAE,CAAC;IACpC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,gBAAgB,EAAE,YAAY,CAAC;IAC/B,cAAc,EAAE,YAAY,CAAC;IAC7B,kBAAkB,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;IACtD,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B,mBAAmB,EAAE,mBAAmB,CAAC;IAEzC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IAGxB,wBAAwB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC;IAC5D,mBAAmB,EAAE,MAAM,CAAC;IAG5B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB,EAAE,OAAO,CAAC;IAEjC,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,UAAU,EAAE,CAAC;IACpC,mBAAmB,EAAE,OAAO,CAAC;IAE7B,aAAa,EAAE,CAAC,GAAG,EAAE;QACnB,KAAK,EAAE,aAAa,CAAC;QACrB,KAAK,EAAE,OAAO,CAAC;QACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,cAAc,CAAC;QACzB,WAAW,EAAE,cAAc,CAAC;QAC5B,QAAQ,EAAE,cAAc,CAAC;QACzB,WAAW,EAAE,cAAc,CAAC;KAC7B,KAAK,aAAa,CAAC;IAEpB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,iBAAiB,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;IAEhD,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,UAAU,EAAE,CAAC;IAG5B,KAAK,EAAE,aAAa,CAAC;IAErB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,gBAAgB,EAAE,wBAAwB,CAAC;IAC3C,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAElC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,gBAAgB,EAAE,eAAe,EAAE,CAAC;IAGpC,YAAY,EAAE,cAAc,CAAC;IAC7B,eAAe,EAAE,iBAAiB,CAAC;IACnC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IAEnC,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,UAAU,EAAE,CAAC;IAC5B,qBAAqB,EAAE,UAAU,EAAE,CAAC;IAGpC,cAAc,EAAE,SAAS,EAAE,CAAC;IAG5B,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IAGpC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,mBAAmB,EAAE,OAAO,CAAC;IAE7B,YAAY,EAAE,aAAa,EAAE,CAAC;IAC9B,SAAS,EAAE,aAAa,EAAE,CAAC;IAE3B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAElC,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,qBAAqB,EAAE,GAAG,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAEvD,kBAAkB,EAAE,qBAAqB,EAAE,CAAC;IAC5C,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,wBAAwB,CAAC,EAAE,qBAAqB,CAAC;IAGjD,iBAAiB,EAAE,cAAc,CAAC;IAElC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1C,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,UAAU,EAAE,CAAC;IACpC,mBAAmB,EAAE,OAAO,CAAC;IAE7B,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B,qBAAqB,EAAE,EAAE,CAAC;IAC1B,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,mBAAmB,EAAE,WAAW,GAAG,IAAI,CAAC;IAExC,WAAW,EAAE,UAAU,EAAE,CAAC;IAE1B,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,cAAc,CAAC;IAC/B,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACxC,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACzC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhC,YAAY,EAAE,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;IACjC,aAAa,EAAE,UAAU,EAAE,CAAC;IAC5B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,0BAA0B,EAAE,aAAa,GAAG,IAAI,CAAC;IAEjD,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,qBAAa,QAAS,SAAQ,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IACnE,MAAM,CAAC,WAAW,SAAO;IAEzB,MAAM,CAAC,WAAW,SAAO;IAEzB,MAAM,CAAC,mBAAmB,SAAO;IAEjC,MAAM,CAAC,YAAY;;;;;;;;;;;;;;gCAcK,IAAI;8BACN,IAAI;uBACX,IAAI;6BACE,IAAI;iCACA,IAAI;wCACG,IAAI;;;;;;;;;;;;;;;kCAYV,IAAI;;;;;;;;;;;;;;6BAcT,IAAI;;;;;;;;;;;;;;;;;;;;;;MAsBvB;IAEF,MAAM,CAAC,eAAe,CACpB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,eAAe,GAAG,IAAI;gBASb,KAAK,EAAE,aAAa;IAkThC,iBAAiB,IAAI,IAAI;IAgBzB,kBAAkB,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI;IAyElD,oBAAoB,IAAI,IAAI;IAe5B,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAElB,WAAW,EAAE,cAAc,GAAG,IAAI,CAAC;IAEnC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IAEpC,gBAAgB,EAAE,IAAI,CACpB,aAAa,EACX,iBAAiB,GACjB,qBAAqB,GACrB,eAAe,GACf,cAAc,GACd,aAAa,GACb,cAAc,GACd,cAAc,GACd,uBAAuB,GACvB,OAAO,CACV,GAAG,IAAI,CAAC;IAET,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,OAAO,EAAE,OAAO,CAAC;IAEjB,mBAAmB,CAAC,EAAE,cAAc,EAAE,CAAC;IAEvC,wBAAwB,CAAC,EAAE,8BAA8B,CAAC;IAE1D,oBAAoB,EAAE;QAAE,mBAAmB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAEvD,oBAAoB,EAAE;QAAE,mBAAmB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAEvD,wBAAwB,EAAE,OAAO,CAAC;IAGlC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,YAAY,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAE7C,QAAQ,EAAE,gBAAgB,CAAC;IAE3B,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAE9B,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAEnD,WAAW,EAAE,OAAO,CAAC;IAErB,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAElD,qBAAqB,EAAE,MAAM,CAAC;IAE9B,qBAAqB,EAAE,MAAM,CAAC;IAE9B,mBAAmB,EAAE,MAAM,CAAC;IAE5B,aAAa,EAAE,MAAM,CAAC;IAEtB,YAAY,EAAE,MAAM,CAAC;IAErB,cAAc,EAAE,aAAa,EAAE,CAAC;IAEhC,4BAA4B,gFAG1B;IAEF,kCAAkC,0RAoBhC;IAEF,oBAAoB,6BAES,OAAO,4BACN,OAAO,4BACP,OAAO,qBACd,OAAO,qBACP,OAAO,6BACC,OAAO,qBACf,OAAO,sGAIR,OAAO,iBACV,OAAO,kBACN,OAAO,mBACN,OAAO,eACX,OAAO,gEAdK,OAAO,4BACN,OAAO,4BACP,OAAO,qBACd,OAAO,qBACP,OAAO,6BACC,OAAO,qBACf,OAAO,sGAIR,OAAO,iBACV,OAAO,kBACN,OAAO,mBACN,OAAO,eACX,OAAO,mBA4FtB;IAEF,sBAAsB,gFAGnB;IAEH,iBAAiB,aACL,MAAM,EAAE,gBAAgB,WAAW,EAAE,KAAG,cAAc,+BAAtD,MAAM,EAAE,gBAAgB,WAAW,EAAE,KAAG,cAAc,EAYhE;IAEF,eAAe,aACH,MAAM,EAAE,gBAAgB,WAAW,EAAE,KAAG,YAAY,+BAApD,MAAM,EAAE,gBAAgB,WAAW,EAAE,KAAG,YAAY,EAmB9D;IAEF,iBAAiB,kBACA,WAAW,EAAE,KAAG,oBAAoB,EAAE,oCAAtC,WAAW,EAAE,KAAG,oBAAoB,EAAE,EAMrD;IAEF,sBAAsB,kHAEpB;IAIF,qBAAqB,wGAAoD;IAEzE;;;;;;;OAOG;IACH,6BAA6B,aAEhB,MAAM,EAAE,cACL,qBAAqB,EAAE,kFAGlC,YAAY,EAAE,+BAJN,MAAM,EAAE,cACL,qBAAqB,EAAE,kFAGlC,YAAY,EAAE,EAejB;IAEF,oBAAoB,kQAOlB;IAEF,oBAAoB,4DACsB,mBAAmB,GAAG,IAAI,8EAA1B,mBAAmB,GAAG,IAAI,EAelE;IAEF,sBAAsB;;;;;;;;;;;;;;;;;;;;;;OAyBpB;IAEF,eAAe,0PAeb;IAEF,cAAc,WAEH,aAAa,cACR,OAAO,KAClB,QAAQ,iBAAiB,CAAC,6BAFpB,aAAa,cACR,OAAO,KAClB,QAAQ,iBAAiB,CAAC,EAM7B;IAEF,eAAe,CACb,WAAW,EAAE,cAAc,EAC3B,QAAQ,EAAE,cAAc,EACxB,QAAQ,UAAQ,GACf,MAAM,GAAG,OAAO;IAgBnB,cAAc,CAAC,WAAW,EAAE,cAAc,GAAG,UAAU,GAAG,IAAI,GAAG,SAAS;IAW1E,WAAW,CAAC,QAAQ,EAAE,cAAc,GAAG,UAAU,GAAG,IAAI,GAAG,SAAS;IAWpE,QAAQ,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAQtC,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,YAAY;IAKtD;;;;;OAKG;IACH,iBAAiB,CACf,YAAY,EAAE,WAAW,EAAE,EAC3B,eAAe,UAAQ,GACtB,IAAI;IA+BP;;;;;;OAMG;IACH,gBAAgB,CACd,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,YAAY,EAAE,cAAc,GAC3B,OAAO;IAuBV,oBAAoB,CAAC,eAAe,EAAE,iBAAiB,GAAG,IAAI;IAI9D,iBAAiB,CACf,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,eAAe,GAAG,IAAI,EAC9B,OAAO,EAAE,qBAAqB,GAC7B,IAAI;IAmBP;;;;;OAKG;IACH,cAAc,CACZ,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,MAAM,GACX,IAAI;IAYP;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAqCxC,kBAAkB,CAAC,WAAW,EAAE,UAAU,GAAG,IAAI;IAsBjD,eAAe,IAAI,IAAI;IAwBvB,qBAAqB,IAAI,IAAI;IAS7B,mBAAmB,IAAI,IAAI;IAM3B;;OAEG;IACH,cAAc,IAAI,IAAI;IAwCtB,UAAU,CAAC,EACT,YAAY,EACZ,eAAe,GAChB,EAAE,IAAI,CAAC,aAAa,EAAE,cAAc,GAAG,iBAAiB,CAAC,GAAG,IAAI;IAOjE,uBAAuB,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,WAAW,UAAO,GAAG,IAAI;IAmDtE,qBAAqB,wBAEG,UAAU,EAAE,WACvB,MAAM,EAAE,gBACH,aAAa,EAAE,2BACJ,MAAM,4BACL,MAAM,qGAJZ,UAAU,EAAE,WACvB,MAAM,EAAE,gBACH,aAAa,EAAE,2BACJ,MAAM,4BACL,MAAM,6DA8BlC;IAEF,eAAe,CACb,cAAc,EAAE;QAAE,qBAAqB,CAAC,EAAE,GAAG,CAAC,UAAU,EAAE,cAAc,CAAC,CAAA;KAAE,EAC3E,WAAW,UAAO,GACjB,IAAI;IA2BP,aAAa,IAAI,IAAI;IAKrB,SAAS,IAAI,IAAI;IAwCX,mBAAmB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCjE,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI;IAWjE,QAAQ,CACN,WAAW,EAAE,cAAc,EAC3B,QAAQ,EAAE,cAAc,EACxB,QAAQ,UAAQ,GACf,IAAI;IAcP;;;;;;OAMG;IACH,UAAU,CACR,MAAM,EAAE,SAAS,EAAE,EACnB,cAAc,UAAQ,EACtB,YAAY,UAAO,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,IAAI;IAyBP,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,UAAQ,GAAG,IAAI;IAiC5D,WAAW,IAAI,IAAI;IAenB;;OAEG;IACH,QAAQ,IAAI,IAAI;IA0ChB;;;OAGG;IACH,WAAW,IAAI,OAAO;IAItB,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAgB1C,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAgBzC,KAAK,IAAI,IAAI;IAIb,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IA+B1C,wBAAwB,CAAC,kBAAkB,EAAE,YAAY,GAAG,IAAI;IAUhE,wBAAwB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IA2BtD,0BAA0B,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IA6BxD,6BAA6B,CAC3B,YAAY,EAAE,UAAU,EAAE,EAC1B,gBAAgB,CAAC,EAAE,oBAAoB,GACtC,IAAI;IAgBP,uBAAuB,CACrB,WAAW,EAAE,MAAM,EACnB,qBAAqB,EAAE,UAAU,EAAE,EACnC,mBAAmB,EAAE,OAAO,GAC3B,IAAI;IAiBP,kBAAkB,+CAED,MAAM,yBACI,UAAU,EAAE,WAC1B,MAAM,EAAE,uBACI,OAAO,KAC3B,IAAI,EAUP;IAEF,mBAAmB,IAAI,IAAI;IAS3B,oBAAoB,IAAI,IAAI;IAQ5B,kBAAkB,IAAI,IAAI;IAM1B,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM1C,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAK9C,uBAAuB,IAAI,IAAI;IAO/B,mBAAmB,IAAI,IAAI;IAI3B,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAW1C,cAAc,IAAI,IAAI;IAatB,UAAU,CAAC,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,GAAG,IAAI;IAgBnE,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI;IAMhC,UAAU,CACR,WAAW,EAAE,UAAU,EACvB,SAAS,GAAE,aAA6C,EACxD,KAAK,UAAQ,EACb,aAAa,UAAQ,GACpB,IAAI;IAgBP,OAAO,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAMvC,YAAY,IAAI,OAAO;IAKvB,eAAe,CAAC,UAAU,qBAAkC,GAAG,IAAI;IA6BnE,sBAAsB,IAAI,OAAO;IAcjC,eAAe,IAAI,IAAI;IAqBvB,aAAa,CAAC,GAAG,SAAK,GAAG,IAAI;IAkBvB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAwC9B,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAcrC;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKlC;;OAEG;IACH,UAAU,CAAC,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,GAAG,IAAI;IAmB/D,0BAA0B,CACxB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,eAAe,GAAG,IAAI,EAC9B,OAAO,EAAE,qBAAqB,GAC7B,IAAI;IAOP,8BAA8B,CAC5B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,aAAa,EACxB,aAAa,UAAQ,GACpB,IAAI;IA6BP,wBAAwB,IAAI,IAAI;IAIhC,wBAAwB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAItD,mBAAmB,IAAI,IAAI;IAI3B,mBAAmB,IAAI,IAAI;IAI3B,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAiBnD,YAAY,IAAI,IAAI;IAKpB,iBAAiB,IAAI,IAAI;IAIzB,iBAAiB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;IAKvD,eAAe,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI;IAOpC,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAc1C,mBAAmB,CAAC,YAAY,UAAO,EAAE,YAAY,UAAO,GAAG,IAAI;IASnE,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAU3C,qBAAqB,CACnB,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,iBAAiB,GAAG,IAAI,GACvC,IAAI;IAuBP,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG,IAAI;IAKxD,eAAe,IAAI,IAAI;IAIvB,cAAc,IAAI,IAAI;IAQtB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAM1C,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAcvC,YAAY,IAAI,IAAI;IAqCpB,iBAAiB,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI;IAiC9C,sBAAsB,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI;IAW1D,yBAAyB,CACvB,YAAY,EAAE,aAAa,EAAE,EAC7B,eAAe,GAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAsB,GACrD,IAAI;IAIP,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IASxC,8BAA8B,CAC5B,kBAAkB,EAAE,qBAAqB,EAAE,GAC1C,IAAI;IAKP,6BAA6B,IAAI,IAAI;IAiBrC,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAkBhD,mCAAmC,mGACmB,IAAI,EAIxD;IAEF,iCAAiC,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI;IAkBtE,mCAAmC,IAAI,IAAI;IAO3C,yBAAyB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI;IA+ExD,0BAA0B,IAAI,IAAI;IAWlC,0BAA0B,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3C,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5C,wBAAwB,IAAI,IAAI;IAYhC;;;OAGG;IACH,wBAAwB,CAAC,mBAAmB,EAAE,mBAAmB,GAAG,IAAI;IAWxE;;;OAGG;IACH,uBAAuB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAevD;;;OAGG;IACH,qBAAqB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAiBrD,kBAAkB,CAAC,YAAY,EAAE,cAAc,GAAG,IAAI;IAuBtD,2BAA2B,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI;IAsB5D,wBAAwB,IAAI,IAAI;IAgBhC,mBAAmB,CACjB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,KAAK,EAClB,iBAAiB,EAAE,yBAAyB,EAC5C,UAAU,EAAE,SAAS,EAAE,GACtB,IAAI;IA8BP,yBAAyB,IAAI,IAAI;IAKjC,4BAA4B,yDAED,MAAM,8BACD,MAAM,GAAG,IAAI,WAa3C;IAEF,uBAAuB,IAAI,IAAI;IAQ/B,sBAAsB,IAAI,IAAI;IAQ9B;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI;IASvC,oBAAoB,IAAI,IAAI;IAc5B,kBAAkB,CAAC,WAAW,UAAO,GAAG,IAAI;IAY5C,eAAe,IAAI,IAAI;IAWvB,mBAAmB,IAAI,IAAI;IAM3B,qBAAqB,IAAI,OAAO;IA4ChC,wBAAwB,gCACO,aAAa,KAAG,SAAS,kDAAzB,aAAa,KAAG,SAAS,EAgCtD;IAEF,oCAAoC,IAAI,IAAI;IAK5C,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAuBvC,qCAAqC,CACnC,KAAK,EAAE,WAAW,CAAC,gBAAgB,CAAC,GACnC,IAAI;IAKP,gBAAgB,CACd,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,aAAa,GACnB,SAAS;IA+FZ,MAAM,IAAI,YAAY,GAAG,IAAI;CAkwB9B;AAED,eAAe,QAAQ,CAAC"}