diff --git a/package-lock.json b/package-lock.json index 207cdbb2f..6c9bf8318 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,16 +1,16 @@ { "name": "react-autoql", - "version": "8.8.26", + "version": "8.8.33", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "react-autoql", - "version": "8.8.26", + "version": "8.8.33", "license": "ISC", "dependencies": { "@react-icons/all-files": "^4.1.0", - "autoql-fe-utils": "1.6.5", + "autoql-fe-utils": "1.6.8", "axios": "^1.4.0", "classnames": "^2.5.1", "d3-array": "^2.3.3", @@ -4663,9 +4663,9 @@ "dev": true }, "node_modules/@types/lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-YpS0zzoduEhuOWjAotS6A5AVCva7X4lVlYLF0FYHAY9sdraBfnatttHItlWeZdGhuEkf+OzMNg2ZYAx8t+52uQ==" + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.13.tgz", + "integrity": "sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==" }, "node_modules/@types/node": { "version": "20.14.11", @@ -5186,9 +5186,9 @@ } }, "node_modules/autoql-fe-utils": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/autoql-fe-utils/-/autoql-fe-utils-1.6.5.tgz", - "integrity": "sha512-/T9uf9IHgX/OriCZiiIgMR8ZhITjjTTdCr5g2DbDvqMh8XrvJRFn7H7a9AUT6qH6tu65+3aV1j7CcrYx2VAZyw==", + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/autoql-fe-utils/-/autoql-fe-utils-1.6.8.tgz", + "integrity": "sha512-CPs0NPT/ZA44DCCJ+JmhoPyth0aCVVKh49FI5LjMZC1U8RSdozbB7C9fTXHDbj6fNEYySh1ybRedcwfhIzPvBg==", "dependencies": { "@types/lodash": "^4.14.195", "axios": "^1.4.0", @@ -7291,9 +7291,9 @@ } }, "node_modules/engine.io-client": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.1.tgz", - "integrity": "sha512-aYuoak7I+R83M/BBPIOs2to51BmFIpC1wZe6zZzMrT2llVsHy5cvcmdsJgP2Qz6smHu+sD9oexiSUAVd8OfBPw==", + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.2.tgz", + "integrity": "sha512-TAr+NKeoVTjEVW8P3iHguO1LO6RlUz9O5Y8o7EY0fU+gY1NYqas7NN3slpFtbXEsLMHk0h90fJMfKjRkQ0qUIw==", "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1", @@ -17454,9 +17454,9 @@ "dev": true }, "node_modules/socket.io": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.0.tgz", - "integrity": "sha512-8U6BEgGjQOfGz3HHTYaC/L1GaxDCJ/KM0XTkJly0EhZ5U/du9uNEZy4ZgYzEzIqlx2CMm25CrCqr1ck899eLNA==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.1.tgz", + "integrity": "sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==", "dependencies": { "accepts": "~1.3.4", "base64id": "~2.0.0", @@ -17500,9 +17500,9 @@ } }, "node_modules/socket.io-client": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.0.tgz", - "integrity": "sha512-C0jdhD5yQahMws9alf/yvtsMGTaIDBnZ8Rb5HU56svyq0l5LIrGzIDZZD5pHQlmzxLuU91Gz+VpQMKgCTNYtkw==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.1.tgz", + "integrity": "sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ==", "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.2", @@ -18716,9 +18716,9 @@ "dev": true }, "node_modules/xmlhttprequest-ssl": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.1.tgz", - "integrity": "sha512-ptjR8YSJIXoA3Mbv5po7RtSYHO6mZr8s7i5VGmEk7QY2pQWyT1o0N+W1gKbOyJPUCGXGnuw0wqe8f0L6Y0ny7g==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz", + "integrity": "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==", "engines": { "node": ">=0.4.0" } @@ -22129,9 +22129,9 @@ "dev": true }, "@types/lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-YpS0zzoduEhuOWjAotS6A5AVCva7X4lVlYLF0FYHAY9sdraBfnatttHItlWeZdGhuEkf+OzMNg2ZYAx8t+52uQ==" + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.13.tgz", + "integrity": "sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==" }, "@types/node": { "version": "20.14.11", @@ -22524,9 +22524,9 @@ } }, "autoql-fe-utils": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/autoql-fe-utils/-/autoql-fe-utils-1.6.5.tgz", - "integrity": "sha512-/T9uf9IHgX/OriCZiiIgMR8ZhITjjTTdCr5g2DbDvqMh8XrvJRFn7H7a9AUT6qH6tu65+3aV1j7CcrYx2VAZyw==", + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/autoql-fe-utils/-/autoql-fe-utils-1.6.8.tgz", + "integrity": "sha512-CPs0NPT/ZA44DCCJ+JmhoPyth0aCVVKh49FI5LjMZC1U8RSdozbB7C9fTXHDbj6fNEYySh1ybRedcwfhIzPvBg==", "requires": { "@types/lodash": "^4.14.195", "axios": "^1.4.0", @@ -24097,9 +24097,9 @@ } }, "engine.io-client": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.1.tgz", - "integrity": "sha512-aYuoak7I+R83M/BBPIOs2to51BmFIpC1wZe6zZzMrT2llVsHy5cvcmdsJgP2Qz6smHu+sD9oexiSUAVd8OfBPw==", + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.2.tgz", + "integrity": "sha512-TAr+NKeoVTjEVW8P3iHguO1LO6RlUz9O5Y8o7EY0fU+gY1NYqas7NN3slpFtbXEsLMHk0h90fJMfKjRkQ0qUIw==", "requires": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1", @@ -31603,9 +31603,9 @@ "dev": true }, "socket.io": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.0.tgz", - "integrity": "sha512-8U6BEgGjQOfGz3HHTYaC/L1GaxDCJ/KM0XTkJly0EhZ5U/du9uNEZy4ZgYzEzIqlx2CMm25CrCqr1ck899eLNA==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.1.tgz", + "integrity": "sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==", "requires": { "accepts": "~1.3.4", "base64id": "~2.0.0", @@ -31633,9 +31633,9 @@ } }, "socket.io-client": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.0.tgz", - "integrity": "sha512-C0jdhD5yQahMws9alf/yvtsMGTaIDBnZ8Rb5HU56svyq0l5LIrGzIDZZD5pHQlmzxLuU91Gz+VpQMKgCTNYtkw==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.1.tgz", + "integrity": "sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ==", "requires": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.2", @@ -32528,9 +32528,9 @@ "dev": true }, "xmlhttprequest-ssl": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.1.tgz", - "integrity": "sha512-ptjR8YSJIXoA3Mbv5po7RtSYHO6mZr8s7i5VGmEk7QY2pQWyT1o0N+W1gKbOyJPUCGXGnuw0wqe8f0L6Y0ny7g==" + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz", + "integrity": "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==" }, "y18n": { "version": "5.0.8", diff --git a/package.json b/package.json index ca2574708..94396810f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-autoql", - "version": "8.8.26", + "version": "8.8.33", "description": "React Widget Library", "main": "dist/autoql.cjs.js", "module": "dist/autoql.esm.js", @@ -62,7 +62,7 @@ }, "dependencies": { "@react-icons/all-files": "^4.1.0", - "autoql-fe-utils": "1.6.5", + "autoql-fe-utils": "1.6.8", "axios": "^1.4.0", "classnames": "^2.5.1", "d3-array": "^2.3.3", @@ -172,4 +172,4 @@ } }, "cacheDirectories": [] -} \ No newline at end of file +} diff --git a/src/components/ChatContent/ChatContent.js b/src/components/ChatContent/ChatContent.js index 86419b9c4..476831f0d 100644 --- a/src/components/ChatContent/ChatContent.js +++ b/src/components/ChatContent/ChatContent.js @@ -41,10 +41,8 @@ export default class ChatContent extends React.Component { authentication: authenticationType.isRequired, autoQLConfig: autoQLConfigType.isRequired, dataFormatting: dataFormattingType, - clearOnClose: PropTypes.bool.isRequired, enableVoiceRecord: PropTypes.bool.isRequired, maxMessages: PropTypes.number.isRequired, - introMessage: PropTypes.string.isRequired, inputPlaceholder: PropTypes.string.isRequired, enableDynamicCharting: PropTypes.bool.isRequired, autoChartAggregations: PropTypes.bool.isRequired, diff --git a/src/components/Icon/Icon.js b/src/components/Icon/Icon.js index ee1191e2d..c430ef5bd 100644 --- a/src/components/Icon/Icon.js +++ b/src/components/Icon/Icon.js @@ -37,6 +37,7 @@ import { FiCheck } from '@react-icons/all-files/fi/FiCheck' import { FiDatabase } from '@react-icons/all-files/fi/FiDatabase' import { FiDownload } from '@react-icons/all-files/fi/FiDownload' import { FiEye } from '@react-icons/all-files/fi/FiEye' +import { FiLayers } from '@react-icons/all-files/fi/FiLayers' import { FiMoreHorizontal } from '@react-icons/all-files/fi/FiMoreHorizontal' import { FiMoreVertical } from '@react-icons/all-files/fi/FiMoreVertical' import { FiPauseCircle } from '@react-icons/all-files/fi/FiPauseCircle' @@ -49,7 +50,6 @@ import { FiMinimize } from '@react-icons/all-files/fi/FiMinimize' import { FiRefreshCw } from '@react-icons/all-files/fi/FiRefreshCw' import { FiTool } from '@react-icons/all-files/fi/FiTool' import { FiMinus } from '@react-icons/all-files/fi/FiMinus' - import { RiFilterLine } from '@react-icons/all-files/ri/RiFilterLine' import { RiFilterOffLine } from '@react-icons/all-files/ri/RiFilterOffLine' import { RiListSettingsLine } from '@react-icons/all-files/ri/RiListSettingsLine' @@ -212,6 +212,10 @@ export default class Icon extends React.Component { icon = break } + case 'layers': { + icon = + break + } case 'mark-read': { icon = break diff --git a/src/components/Notifications/JoinColumnSelectionTable/JoinColumnSelectionTable.scss b/src/components/Notifications/JoinColumnSelectionTable/JoinColumnSelectionTable.scss index c0c0a356d..217df1c96 100644 --- a/src/components/Notifications/JoinColumnSelectionTable/JoinColumnSelectionTable.scss +++ b/src/components/Notifications/JoinColumnSelectionTable/JoinColumnSelectionTable.scss @@ -81,13 +81,13 @@ .add-second-join-icon, .remove-second-join-icon { position: absolute; - top: 37px; - left: -10px; + bottom: -6px; + right: -6px; cursor: pointer; background-color: var(--react-autoql-accent-color); border-radius: 50%; - width: 20px; - height: 20px; + width: 12px; + height: 12px; display: flex; justify-content: center; align-items: center; diff --git a/src/components/Notifications/NotificationItem/NotificationItem.js b/src/components/Notifications/NotificationItem/NotificationItem.js index 7dd8269ee..aad749b70 100644 --- a/src/components/Notifications/NotificationItem/NotificationItem.js +++ b/src/components/Notifications/NotificationItem/NotificationItem.js @@ -265,7 +265,12 @@ export default class NotificationItem extends React.Component { ) } - return {this.props.notification.title} + return ( + + {this.props.notification?.project?.id === 'composite' && } + {this.props.notification.title} + + ) } renderNotificationMessage = () => { @@ -556,7 +561,8 @@ export default class NotificationItem extends React.Component { ${this.isUnread() ? 'unread' : ''} ${this.isError() ? 'is-error' : ''} ${this.state.isMoreOptionsMenuOpen ? 'menu-open' : ''} - ${this.state.deleted ? 'react-autoql-notification-item-deleted' : ''}`} + ${this.state.deleted ? 'react-autoql-notification-item-deleted' : ''} + ${this.props.notification?.project?.id === 'composite' ? 'composite-project' : ''}`} > {!this.props.tooltipID && } {!this.props.chartTooltipID && } diff --git a/src/components/Notifications/NotificationQueryResponse/NotificationQueryResponse.js b/src/components/Notifications/NotificationQueryResponse/NotificationQueryResponse.js index ec59a93f8..7cab40859 100644 --- a/src/components/Notifications/NotificationQueryResponse/NotificationQueryResponse.js +++ b/src/components/Notifications/NotificationQueryResponse/NotificationQueryResponse.js @@ -10,6 +10,16 @@ import OptionsToolbar from '../../OptionsToolbar/OptionsToolbar' import { authenticationType, autoQLConfigType, dataFormattingType } from '../../../props/types' export default class NotificationQueryResponse extends React.Component { + constructor(props) { + super(props) + this.state = { + isMounted: false, + outputRef: null, + } + } + setOutputRef = (r) => { + this.setState({ outputRef: r }) + } static propTypes = { authentication: authenticationType, autoQLConfig: autoQLConfigType, @@ -43,26 +53,24 @@ export default class NotificationQueryResponse extends React.Component {
(this.dataContainer = r)} className='react-autoql-notification-query-data-container'> {queryResponse ? ( - queryResponse.data.hasQueryResult === false ? null : ( - (this.OUTPUT_REF = r)} - vizToolbarRef={this.vizToolbarRef} - optionsToolbarRef={this.optionsToolbarRef} - authentication={this.props.authentication} - autoQLConfig={this.props.autoQLConfig} - dataFormatting={this.props.dataFormatting} - queryResponse={queryResponse} - autoChartAggregations={this.props.autoChartAggregations} - isResizing={this.props.isResizing || !this.props.shouldRender} - popoverParentElement={this.props.popoverParentElement} - showSingleValueResponseTitle={true} - tooltipID={this.props.tooltipID} - chartTooltipID={this.props.chartTooltipID} - showQueryInterpretation={false} - enableDynamicCharting={true} - useInfiniteScroll={false} - /> - ) + ) : (
@@ -84,7 +92,7 @@ export default class NotificationQueryResponse extends React.Component { (this.vizToolbarRef = r)} - responseRef={this.OUTPUT_REF} + responseRef={this.state.outputRef} />
@@ -92,7 +100,7 @@ export default class NotificationQueryResponse extends React.Component { authentication={this.props.authentication} autoQLConfig={this.props.autoQLConfig} ref={(r) => (this.optionsToolbarRef = r)} - responseRef={this.OUTPUT_REF} + responseRef={this.state.outputRef} onSuccessAlert={this.props.onSuccessCallback} onErrorCallback={this.props.onErrorCallback} popoverPositions={['top', 'left', 'bottom', 'right']} diff --git a/src/components/Notifications/RuleSimple/RuleSimple.js b/src/components/Notifications/RuleSimple/RuleSimple.js index 924b6ee8a..7407a3d1c 100644 --- a/src/components/Notifications/RuleSimple/RuleSimple.js +++ b/src/components/Notifications/RuleSimple/RuleSimple.js @@ -909,7 +909,12 @@ export default class RuleSimple extends React.Component { }) .then((response) => { this.onValidationResponse(response) - this.setState({ isLoadingSecondQuery: false }) + const secondQueryCompareColumnIndex = this.getCompareColumnIndex(response, this.state.storedInitialData, 1) + this.setState({ + isLoadingSecondQuery: false, + secondQuerySelectedColumns: + secondQueryCompareColumnIndex !== undefined ? [secondQueryCompareColumnIndex] : [], + }) }) .catch((error) => { if (error?.response?.data?.message !== REQUEST_CANCELLED_ERROR) {