diff --git a/README.md b/README.md index 6f8058d8..f9afdd89 100644 --- a/README.md +++ b/README.md @@ -196,6 +196,15 @@ Then administrator should make the following one time configurations using the a 6. Add global property `orderentryowa.labOrderAutoExpireTimeInDays` with a value of `30` days or any other number 7. Add global propery Lab Orderables Concept Set `orderentryowa.labOrderablesConceptSet`, whose value is the UUID of a concept set of Class LabSet and whose Set Members are other LabSet concept sets or concept of Class Test. +### Additional features + +As of version 1.3.0, the module supports a collecting an "order reason" for Lab Orders. Order reasons are specified at +individual test or panel level via global property `orderentryowa.orderReasonsMap` that supports a pipe-delimited +lists of panel or panel uuids mapping tests to concept sets that provides the reason for ordering. A single set of +tests/panels can also be mapped to the same concept set. For example: + +uuid-of-test-a=uuid-of-concept-set-that-contains-potential-reasons-for-test-a|uuid-of-test-b,uuid-of-panel-a=uuid-of-concept-set-that contains potential-reasons-for-test-b-and-panel-a + **NB:** Not having any of the above configurations will result into an error notice. Please check more information [here](https://wiki.openmrs.org/display/projects/Order+Entry+UI+Administrator+Guide) diff --git a/app/js/actions/actionTypes.js b/app/js/actions/actionTypes.js index ea19e850..032f047a 100644 --- a/app/js/actions/actionTypes.js +++ b/app/js/actions/actionTypes.js @@ -78,3 +78,10 @@ export const DISCONTINUE_ACTIVE_DRUG_ORDER = 'DISCONTINUE_ACTIVE_DRUG_ORDER'; export const DISCONTINUE_ORDER = 'DISCONTINUE_ORDER'; export const DISCONTINUE_ORDER_SUCCEDED = 'DISCONTINUE_ORDER_SUCCEDED'; export const SET_REDIRECT_TO_ADD_RESULTS = "SET_REDIRECT_TO_ADD_RESULTS"; +export const FETCH_ORDER_REASONS_GLOBAL_PROPERTY_FAILURE = 'FETCH_ORDER_REASONS_GLOBAL_PROPERTY_FAILURE'; +export const FETCH_ORDER_REASONS_GLOBAL_PROPERTY_SUCCESS = 'FETCH_ORDER_REASONS_GLOBAL_PROPERTY_SUCCESS'; +export const FETCH_ORDER_REASONS_GLOBAL_PROPERTY_LOADING = 'FETCH_ORDER_REASONS_GLOBAL_PROPERTY_LOADING'; +export const FETCH_ORDER_REASONS_FAILURE = 'FETCH_ORDER_REASONS_FAILURE'; +export const FETCH_ORDER_REASONS_SUCCESS = 'FETCH_ORDER_REASONS_SUCCESS'; +export const FETCH_ORDER_REASONS_LOADING = 'FETCH_ORDER_REASONS_LOADING'; +export const SET_LAB_ORDER_REASON = 'SET_LAB_ORDER_REASON'; diff --git a/app/js/actions/draftActions.js b/app/js/actions/draftActions.js index c25d6f7d..d2e1766e 100644 --- a/app/js/actions/draftActions.js +++ b/app/js/actions/draftActions.js @@ -1,4 +1,4 @@ -import { DELETE_DRAFT_DRUG_ORDER_SUCCESS, TOGGLE_DRAFT_LAB_ORDER_URGENCY } from './actionTypes'; +import { DELETE_DRAFT_DRUG_ORDER_SUCCESS, SET_LAB_ORDER_REASON, TOGGLE_DRAFT_LAB_ORDER_URGENCY } from './actionTypes'; import { DRUG_ORDER } from '../components/orderEntry/orderTypes'; import { selectDrugSuccess } from './drug'; import { setSelectedOrder } from './orderAction'; @@ -6,7 +6,7 @@ import { removeTestFromDraft, removeTestPanelFromDraft, deleteDraftLabOrder, -} from '../actions/draftLabOrderAction'; +} from './draftLabOrderAction'; import { deleteAllDrugDraftOrders } from './draftTableAction'; import constants from '../utils/constants'; @@ -54,3 +54,9 @@ export const discardTestsInDraft = (test = {}) => (dispatch) => { dispatch(deleteDraftLabOrder()); return dispatch(deleteAllDrugDraftOrders()); }; + +export const setLabOrderReason = ({ order, orderReason }) => ({ + type: SET_LAB_ORDER_REASON, + order, + orderReason, +}); \ No newline at end of file diff --git a/app/js/actions/fetchOrderReasons.js b/app/js/actions/fetchOrderReasons.js new file mode 100644 index 00000000..71dc033b --- /dev/null +++ b/app/js/actions/fetchOrderReasons.js @@ -0,0 +1,9 @@ +import axiosInstance from '../config'; + +const fetchOrderReasons = conceptUUID => ({ + type: 'FETCH_ORDER_REASONS', + payload: axiosInstance.get(`/concept/${conceptUUID}`), + +}); + +export default fetchOrderReasons; diff --git a/app/js/actions/fetchOrderReasonsGlobalProperty.js b/app/js/actions/fetchOrderReasonsGlobalProperty.js new file mode 100644 index 00000000..79567ce7 --- /dev/null +++ b/app/js/actions/fetchOrderReasonsGlobalProperty.js @@ -0,0 +1,59 @@ +import axiosInstance from '../config'; +import loading from "./loading"; +import networkError from "./networkError"; +import { + FETCH_ORDER_REASONS_GLOBAL_PROPERTY_FAILURE, + FETCH_ORDER_REASONS_GLOBAL_PROPERTY_SUCCESS, +} from "./actionTypes"; +import fetchOrderReasons from "./fetchOrderReasons"; + + +export const fetchOrderReasonsGlobalPropertySuccess = value => ({ + type: FETCH_ORDER_REASONS_GLOBAL_PROPERTY_SUCCESS, + payload: value, +}); + +export const fetchOrderReasonsGlobalPropertyFailure = error => ({ + type: FETCH_ORDER_REASONS_GLOBAL_PROPERTY_FAILURE, + payload: error, +}); + + +export const fetchOrderReasonsGlobalProperty = () => (dispatch) => { + dispatch(loading('FETCH_ORDER_REASONS_GLOBAL_PROPERTY', true)); + return axiosInstance.get(`systemsetting?v=custom:(value)&q=orderentryowa.orderReasonsMap`) + .then((response) => { + const orderReasonsMap = {}; + const reasonSetUuids = []; + + if (response.data.results.length > 0) { + response.data.results[0].value.split('|').forEach((element) => { + const orderables = element.split('=')[0]; + const reasonSetUuid = element.split('=')[1]; + orderables.split(',').forEach((orderable) => { + orderReasonsMap[orderable] = { + setUuid: reasonSetUuid, + members: [], + }; + }); + if (!reasonSetUuids.includes(reasonSetUuid)) { + reasonSetUuids.push(reasonSetUuid); + } + }); + + dispatch(fetchOrderReasonsGlobalPropertySuccess(orderReasonsMap)); + + reasonSetUuids.forEach((uuid) => { + dispatch(fetchOrderReasons(uuid)); + }); + dispatch(loading('FETCH_ORDER_REASON_GLOBAL_PROPERTY', false)); + } + }).catch((error) => { + if (!error.response) dispatch(networkError('Network error occurred')); + else dispatch(fetchOrderReasonsGlobalPropertyFailure(error)); + dispatch(loading('FETCH_ORDER_REASONS_GLOBAL_PROPERTY', false)); + }); +}; + + +export default fetchOrderReasonsGlobalProperty; \ No newline at end of file diff --git a/app/js/components/Draft.jsx b/app/js/components/Draft.jsx index 1ef76d0e..aba86f21 100644 --- a/app/js/components/Draft.jsx +++ b/app/js/components/Draft.jsx @@ -6,14 +6,32 @@ import { injectIntl, FormattedMessage } from 'react-intl'; import constants from '../utils/constants'; import IconButton from './button/IconButton'; import { getConceptShortName } from '../utils/helpers'; +import fetchOrderReasonsGlobalProperty from "../actions/fetchOrderReasonsGlobalProperty"; export class Draft extends PureComponent { + componentDidMount() { + this.props.dispatch(fetchOrderReasonsGlobalProperty()); + } + renderDraftList = () => { let draftType; - const { draftOrders, handleDraftDiscard, locale } = this.props; + const { + draftOrders, + handleDraftDiscard, + locale, + orderReasonsMap, + } = this.props; return draftOrders.map((order) => { const isPanel = !!order.set; const isOtherOrderType = !!order.type; + const orderReasons = + orderReasonsMap && orderReasonsMap[order.uuid] ? orderReasonsMap[order.uuid] : null; + + // set default order reason if not set + if (orderReasons && orderReasons.members && orderReasons.members.length > 0 + && order.orderReason === undefined) { + this.props.setLabOrderReason({ orderReason: orderReasons.members[0].uuid, order }); + } if (isPanel) { draftType = 'panel'; @@ -34,40 +52,64 @@ export class Draft extends PureComponent { ); return ( -
  • - {!order.action ? 'NEW' : order.action} - { orderName } -
    - - { order.type !== 'drugorder' ? + +
  • + {!order.action ? 'NEW' : order.action} + { orderName } +
    + + { order.type !== 'drugorder' ? +
    + +
    : + + } +
    + : - - } - - - - -
    -
  • ); + + + + + { order.type !== 'drugorder' && orderReasons && orderReasons.members && orderReasons.members.length > 0 && +
  • + + +
  • + } + + ); }); } @@ -84,7 +126,7 @@ export class Draft extends PureComponent { className="button confirm right modified-btn" value={addResults} disabled={isDisabled} - />) + />); } @@ -103,7 +145,7 @@ export class Draft extends PureComponent { className={`button ${showAddResultsButton ? 'right' : ''} cancel modified-btn`} value={draftOrders.length > 1 ? discardAll : discard} disabled={isDisabled} - />) + />); } renderSubmitButton = () => { const { @@ -119,7 +161,7 @@ export class Draft extends PureComponent { className={`button confirm ${!showAddResultsButton ? 'right' : ''} modified-btn`} value={save} disabled={isDisabled} - />) + />); } render() { @@ -153,20 +195,27 @@ export class Draft extends PureComponent { } Draft.propTypes = { + dispatch: PropTypes.func.isRequired, + isLoading: PropTypes.bool.isRequired, + intl: PropTypes.object.isRequired, + locale: PropTypes.string.isRequired, + orderReasonsMap: PropTypes.object.isRequired, draftOrders: PropTypes.arrayOf(PropTypes.any).isRequired, editDraftDrugOrder: PropTypes.func.isRequired, handleSubmit: PropTypes.func.isRequired, handleDraftDiscard: PropTypes.func.isRequired, + setLabOrderReason: PropTypes.func.isRequired, toggleDraftLabOrderUrgency: PropTypes.func.isRequired, showAddResultsButton: PropTypes.bool, }; Draft.defaultProps = { showAddResultsButton: false, -} +}; const mapStateToProps = state => ({ isLoading: state.createOrderReducer.status.loading, + orderReasonsMap: state.orderReasonsReducer.orderReasonsMap, }); export default connect(mapStateToProps)(injectIntl(Draft)); diff --git a/app/js/components/orderEntry/OrderEntryPage.jsx b/app/js/components/orderEntry/OrderEntryPage.jsx index a9639cb2..c349c4c9 100644 --- a/app/js/components/orderEntry/OrderEntryPage.jsx +++ b/app/js/components/orderEntry/OrderEntryPage.jsx @@ -27,6 +27,7 @@ import { loadGlobalProperties, APP_GLOBAL_PROPERTIES } from "../../utils/globalP import { editDraftDrugOrder, toggleDraftLabOrderUrgency, + setLabOrderReason, discardTestsInDraft, } from '../../actions/draftActions'; import imageLoader from '../../../img/loading.gif'; @@ -175,6 +176,7 @@ export class OrderEntryPage extends PureComponent { careSetting: this.props.inpatientCareSetting.uuid, encounter: this.props.encounterType.uuid, orderer: this.props.sessionReducer.currentProvider.uuid, + orderReason: order.orderReason, patient: this.props.patient.uuid, type: 'testorder', urgency: order.urgency || 'ROUTINE', @@ -385,6 +387,7 @@ export class OrderEntryPage extends PureComponent { } editDraftDrugOrder={this.props.editDraftDrugOrder} locale={this.props.sessionReducer.locale} + setLabOrderReason={this.props.setLabOrderReason} showAddResultsButton={this.state.addResultsUrl} /> @@ -492,6 +495,7 @@ OrderEntryPage.propTypes = { draftLabOrders: PropTypes.object.isRequired, draftDrugOrders: PropTypes.arrayOf(PropTypes.any).isRequired, toggleDraftLabOrderUrgency: PropTypes.func.isRequired, + setLabOrderReason: PropTypes.func.isRequired, discardTestsInDraft: PropTypes.func.isRequired, createOrder: PropTypes.func.isRequired, setContext: PropTypes.func.isRequired, @@ -577,6 +581,7 @@ const actionCreators = { createOrder, setContext, setRedirectToAddResults, + setLabOrderReason, }; const mapDispatchToProps = dispatch => bindActionCreators(actionCreators, dispatch); diff --git a/app/js/reducers/draftReducer/draftLabOrderReducer.js b/app/js/reducers/draftReducer/draftLabOrderReducer.js index cdc1d38f..f6306b8e 100644 --- a/app/js/reducers/draftReducer/draftLabOrderReducer.js +++ b/app/js/reducers/draftReducer/draftLabOrderReducer.js @@ -5,6 +5,7 @@ import { DELETE_TEST_FROM_DRAFT_LAB_ORDER, DELETE_PANEL_FROM_DRAFT_LAB_ORDER, DELETE_ALL_ITEMS_IN_DRAFT_LAB_ORDER, + SET_LAB_ORDER_REASON, } from '../../actions/actionTypes'; import initialState from '../initialState'; @@ -121,6 +122,23 @@ export default (state = initialState.draftReducer, action) => { }; } + case SET_LAB_ORDER_REASON: { + const { order, orderReason } = action; + return { + ...state, + draftLabOrders: { + ...state.draftLabOrders, + orders: state.draftLabOrders.orders.map((draftOrder) => { + if (draftOrder.uuid === order.uuid) { + return { ...draftOrder, orderReason }; + } + return draftOrder; + }), + }, + }; + } + + case DELETE_PANEL_FROM_DRAFT_LAB_ORDER: { const panel = action.orders; const panelTests = action.orders.setMembers; diff --git a/app/js/reducers/index.js b/app/js/reducers/index.js index 1dbfc309..f26cd7f5 100644 --- a/app/js/reducers/index.js +++ b/app/js/reducers/index.js @@ -32,6 +32,7 @@ import orderSelectionReducer from './orderSelectionReducer'; import draftReducer from './draftReducer'; import contextReducer from "./contextReducer"; import addResultsReducer from "./addResultsReducer"; +import orderReasonsReducer from "./orderReasonsReducer"; export default combineReducers({ openmrs: reducers, @@ -59,4 +60,5 @@ export default combineReducers({ orderSelectionReducer, contextReducer, addResultsReducer, + orderReasonsReducer, }); diff --git a/app/js/reducers/initialState.js b/app/js/reducers/initialState.js index c3b18e4e..6e8fc953 100644 --- a/app/js/reducers/initialState.js +++ b/app/js/reducers/initialState.js @@ -129,4 +129,9 @@ export default { selectedOrder: {}, activity: '', }, + orderReasons: { + orderReasonsMap: {}, + loading: false, + error: null, + }, }; diff --git a/app/js/reducers/orderReasonsReducer.js b/app/js/reducers/orderReasonsReducer.js new file mode 100644 index 00000000..2f8da768 --- /dev/null +++ b/app/js/reducers/orderReasonsReducer.js @@ -0,0 +1,66 @@ +import { + FETCH_ORDER_REASONS_GLOBAL_PROPERTY_SUCCESS, + FETCH_ORDER_REASONS_GLOBAL_PROPERTY_FAILURE, + FETCH_ORDER_REASONS_GLOBAL_PROPERTY_LOADING, + FETCH_ORDER_REASONS_LOADING, + FETCH_ORDER_REASONS_SUCCESS, + FETCH_ORDER_REASONS_FAILURE, +} from '../actions/actionTypes'; +import initialState from './initialState'; + +export default (state = initialState.orderReasons, action) => { + switch (action.type) { + case FETCH_ORDER_REASONS_GLOBAL_PROPERTY_SUCCESS: { + return { + ...state, + orderReasonsMap: action.payload, + }; + } + case FETCH_ORDER_REASONS_GLOBAL_PROPERTY_LOADING: { + return { + ...state, + loading: true, + }; + } + case FETCH_ORDER_REASONS_GLOBAL_PROPERTY_FAILURE: { + return { + ...state, + errorMessage: action.payload, + error: true, + loading: false, + }; + } + + case FETCH_ORDER_REASONS_SUCCESS: { + const newOrderReasonsMap = state.orderReasonsMap; + Object.keys(newOrderReasonsMap).forEach((orderReason) => { + if (newOrderReasonsMap[orderReason].setUuid === action.payload.data.uuid) { + newOrderReasonsMap[orderReason].members = action.payload.data.setMembers; + } + }); + + return { + ...state, + orderReasonsMap: newOrderReasonsMap, + }; + } + + case FETCH_ORDER_REASONS_LOADING: { + return { + ...state, + loading: true, + }; + } + + case FETCH_ORDER_REASONS_FAILURE: { + return { + ...state, + errorMessage: action.payload, + error: true, + loading: false, + }; + } + default: + return state; + } +}; diff --git a/package-lock.json b/package-lock.json index ed12aca9..0194f8f0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -106,27 +106,27 @@ } }, "@babel/runtime": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.6.tgz", - "integrity": "sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", "requires": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.14.0" }, "dependencies": { "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" } } }, "@babel/runtime-corejs2": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.18.6.tgz", - "integrity": "sha512-bTfcOSG6AHGVCd37zqoBax2e6r4Gy+q3sW2BgLo3h63NdU30C2AKXW0swyQsX/Ik+Zd6eVKQ9TTBKJ9tZQgWig==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.26.0.tgz", + "integrity": "sha512-AQKSxUdaM7uTEGFmLZj1LOgX3LaLdt4udjqywaVdN6R5P2KAgqtBkDW4TS2ySRYNqcKmEe8Xv96jegHJNNb7Gg==", "requires": { "core-js": "^2.6.12", - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.14.0" }, "dependencies": { "core-js": { @@ -135,9 +135,9 @@ "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" }, "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" } } }, @@ -286,9 +286,9 @@ } }, "@openmrs/react-components": { - "version": "1.5.3-pre.2", - "resolved": "https://registry.npmjs.org/@openmrs/react-components/-/react-components-1.5.3-pre.2.tgz", - "integrity": "sha512-pL1g4LUn8TIURUGQMRu0JMKKikXrGPw7lRcMlcCsSI8N1Z/hXc8fEJ9NDBhTAN2A7TPoF+14Rbx03Iw4niy22Q==", + "version": "1.5.3-pre.20", + "resolved": "https://registry.npmjs.org/@openmrs/react-components/-/react-components-1.5.3-pre.20.tgz", + "integrity": "sha512-gdN158wURmwMbN58+hjZQQ9o/T/LBNjEQaO0hymAXZGx3wLpWyD/OU3MUk1zf09xR+FAAT0eW3iHHRITQ7kX7Q==", "requires": { "@fortawesome/fontawesome-svg-core": "^1.2.2", "@fortawesome/free-solid-svg-icons": "^5.2.0", @@ -343,14 +343,14 @@ } }, "follow-redirects": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", - "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==" + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==" }, "underscore": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.4.tgz", - "integrity": "sha512-BQFnUDuAQ4Yf/cYY5LNrK9NCJFKriaRbD9uR1fTeXnBeoa97W0i41qkZfGO9pSo8I5KzjAcSY2XYtdf0oKd7KQ==" + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", + "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==" } } }, @@ -380,33 +380,27 @@ "dev": true }, "@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + "version": "15.7.13", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", + "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==" }, "@types/react": { - "version": "18.0.15", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.15.tgz", - "integrity": "sha512-iz3BtLuIYH1uWdsv6wXYdhozhqj20oD4/Hk2DNXIn1kFsmp9x8d9QB6FnPhfkbhd2PgEONt9Q1x/ebkwjfFLow==", + "version": "18.3.12", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz", + "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==", "requires": { "@types/prop-types": "*", - "@types/scheduler": "*", "csstype": "^3.0.2" } }, "@types/react-table": { - "version": "6.8.9", - "resolved": "https://registry.npmjs.org/@types/react-table/-/react-table-6.8.9.tgz", - "integrity": "sha512-fVQXjy/EYDbgraScgjDONA291McKqGrw0R0NeK639fx2bS4T19TnXMjg3FjOPlkI3qYTQtFTPADlRYysaQIMpA==", + "version": "6.8.15", + "resolved": "https://registry.npmjs.org/@types/react-table/-/react-table-6.8.15.tgz", + "integrity": "sha512-5+1Fv5aqvjEvfmjDhGyJgtA/spUSuTcUWSP8e2QS6vdFUdDeRiQmqDK+2619mm9htlmWMgb8vUMUlpsKXmUgRg==", "requires": { "@types/react": "*" } }, - "@types/scheduler": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" - }, "abab": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", @@ -2438,12 +2432,22 @@ } }, "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "dependencies": { + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + } } }, "caller-path": { @@ -3581,9 +3585,9 @@ } }, "csstype": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", - "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, "currently-unhandled": { "version": "0.4.1", @@ -3779,18 +3783,54 @@ } }, "deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.2.tgz", + "integrity": "sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==", "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", + "is-arguments": "^1.1.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "object-is": "^1.1.5", "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" + "regexp.prototype.flags": "^1.5.1" }, "dependencies": { + "define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "requires": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + } + }, "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -3826,6 +3866,16 @@ } } }, + "define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + } + }, "define-properties": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", @@ -4407,6 +4457,19 @@ "is-regex": "^1.0.4" } }, + "es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "requires": { + "get-intrinsic": "^1.2.4" + } + }, + "es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" + }, "es-to-primitive": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", @@ -6024,7 +6087,8 @@ "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true }, "function.prototype.name": { "version": "1.1.0", @@ -6086,15 +6150,22 @@ "dev": true }, "get-intrinsic": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", - "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "requires": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" }, "dependencies": { + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + }, "has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -6387,6 +6458,14 @@ } } }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "requires": { + "get-intrinsic": "^1.1.3" + } + }, "graceful-fs": { "version": "4.1.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", @@ -6491,6 +6570,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, "requires": { "function-bind": "^1.1.1" } @@ -6541,13 +6621,18 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "requires": { - "get-intrinsic": "^1.1.1" + "es-define-property": "^1.0.0" } }, + "has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==" + }, "has-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", @@ -6555,11 +6640,11 @@ "dev": true }, "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "requires": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" }, "dependencies": { "has-symbols": { @@ -6655,6 +6740,21 @@ "minimalistic-assert": "^1.0.1" } }, + "hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "requires": { + "function-bind": "^1.1.2" + }, + "dependencies": { + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + } + } + }, "he": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", @@ -7273,7 +7373,8 @@ "is-date-object": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true }, "is-descriptor": { "version": "0.1.6", @@ -7451,6 +7552,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, "requires": { "has": "^1.0.1" } @@ -11029,9 +11131,9 @@ } }, "npm": { - "version": "6.14.17", - "resolved": "https://registry.npmjs.org/npm/-/npm-6.14.17.tgz", - "integrity": "sha512-CxEDn1ydVRPDl4tHrlnq+WevYAhv4GF2AEHzJKQ4prZDZ96IS3Uo6t0Sy6O9kB6XzqkI+J00WfYCqqk0p6IJ1Q==", + "version": "6.14.18", + "resolved": "https://registry.npmjs.org/npm/-/npm-6.14.18.tgz", + "integrity": "sha512-p3SjqSchSuNQUqbJBgwdv0L3O6bKkaSfQrQzJsskNpNKLg0g37c5xTXFV0SqTlX9GWvoGxBELVJMRWq0J8oaLA==", "requires": { "JSONStream": "^1.3.5", "abbrev": "~1.1.1", @@ -11040,9 +11142,9 @@ "aproba": "^2.0.0", "archy": "~1.0.0", "bin-links": "^1.1.8", - "bluebird": "^3.5.5", + "bluebird": "^3.7.2", "byte-size": "^5.0.1", - "cacache": "^12.0.3", + "cacache": "^12.0.4", "call-limit": "^1.1.1", "chownr": "^1.1.4", "ci-info": "^2.0.0", @@ -11050,19 +11152,19 @@ "cli-table3": "^0.5.1", "cmd-shim": "^3.0.3", "columnify": "~1.5.4", - "config-chain": "^1.1.12", + "config-chain": "^1.1.13", "debuglog": "*", "detect-indent": "~5.0.0", "detect-newline": "^2.1.0", - "dezalgo": "~1.0.3", + "dezalgo": "^1.0.4", "editor": "~1.0.0", - "figgy-pudding": "^3.5.1", + "figgy-pudding": "^3.5.2", "find-npm-prefix": "^1.0.2", "fs-vacuum": "~1.2.10", "fs-write-stream-atomic": "~1.0.10", "gentle-fs": "^2.3.1", - "glob": "^7.1.6", - "graceful-fs": "^4.2.4", + "glob": "^7.2.3", + "graceful-fs": "^4.2.10", "has-unicode": "~2.0.1", "hosted-git-info": "^2.8.9", "iferr": "^1.0.2", @@ -11072,7 +11174,7 @@ "inherits": "^2.0.4", "ini": "^1.3.8", "init-package-json": "^1.10.3", - "is-cidr": "^3.0.0", + "is-cidr": "^3.1.1", "json-parse-better-errors": "^1.0.2", "lazy-property": "~1.0.0", "libcipm": "^4.0.8", @@ -11083,7 +11185,7 @@ "libnpmsearch": "^2.0.2", "libnpmteam": "^1.0.2", "libnpx": "^10.2.4", - "lock-verify": "^2.1.0", + "lock-verify": "^2.2.2", "lockfile": "^1.0.4", "lodash._baseindexof": "*", "lodash._baseuniq": "~4.6.0", @@ -11097,11 +11199,11 @@ "lodash.uniq": "~4.5.0", "lodash.without": "~4.4.0", "lru-cache": "^5.1.1", - "meant": "^1.0.2", + "meant": "^1.0.3", "mississippi": "^3.0.0", - "mkdirp": "^0.5.5", + "mkdirp": "^0.5.6", "move-concurrently": "^1.0.1", - "node-gyp": "^5.1.0", + "node-gyp": "^5.1.1", "nopt": "^4.0.3", "normalize-package-data": "^2.5.0", "npm-audit-report": "^1.3.3", @@ -11122,19 +11224,19 @@ "path-is-inside": "~1.0.2", "promise-inflight": "~1.0.1", "qrcode-terminal": "^0.12.0", - "query-string": "^6.8.2", - "qw": "~1.0.1", + "query-string": "^6.14.1", + "qw": "^1.0.2", "read": "~1.0.7", "read-cmd-shim": "^1.0.5", "read-installed": "~4.0.3", - "read-package-json": "^2.1.1", + "read-package-json": "^2.1.2", "read-package-tree": "^5.3.1", "readable-stream": "^3.6.0", "readdir-scoped-modules": "^1.1.0", - "request": "^2.88.0", + "request": "^2.88.2", "retry": "^0.12.0", "rimraf": "^2.7.1", - "safe-buffer": "^5.1.2", + "safe-buffer": "^5.2.1", "semver": "^5.7.1", "sha": "^3.0.0", "slide": "~1.1.6", @@ -11150,7 +11252,7 @@ "unique-filename": "^1.1.1", "unpipe": "~1.0.0", "update-notifier": "^2.5.0", - "uuid": "^3.3.3", + "uuid": "^3.4.0", "validate-npm-package-license": "^3.0.4", "validate-npm-package-name": "~3.0.0", "which": "^1.3.1", @@ -11158,6 +11260,14 @@ "write-file-atomic": "^2.4.3" }, "dependencies": { + "@iarna/cli": { + "version": "2.1.0", + "bundled": true, + "requires": { + "glob": "^7.1.2", + "signal-exit": "^3.0.2" + } + }, "JSONStream": { "version": "1.3.5", "bundled": true, @@ -11237,6 +11347,12 @@ "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true + } } }, "string_decoder": { @@ -11244,6 +11360,12 @@ "bundled": true, "requires": { "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true + } } } } @@ -11253,7 +11375,7 @@ "bundled": true }, "asn1": { - "version": "0.2.4", + "version": "0.2.6", "bundled": true, "requires": { "safer-buffer": "~2.1.0" @@ -11272,17 +11394,16 @@ "bundled": true }, "aws4": { - "version": "1.8.0", + "version": "1.11.0", "bundled": true }, "balanced-match": { - "version": "1.0.0", + "version": "1.0.2", "bundled": true }, "bcrypt-pbkdf": { "version": "1.0.2", "bundled": true, - "optional": true, "requires": { "tweetnacl": "^0.14.3" } @@ -11300,7 +11421,7 @@ } }, "bluebird": { - "version": "3.5.5", + "version": "3.7.2", "bundled": true }, "boxen": { @@ -11341,7 +11462,7 @@ "bundled": true }, "cacache": { - "version": "12.0.3", + "version": "12.0.4", "bundled": true, "requires": { "bluebird": "^3.5.5", @@ -11498,7 +11619,7 @@ } }, "combined-stream": { - "version": "1.0.6", + "version": "1.0.8", "bundled": true, "requires": { "delayed-stream": "~1.0.0" @@ -11529,6 +11650,12 @@ "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true + } } }, "string_decoder": { @@ -11536,12 +11663,18 @@ "bundled": true, "requires": { "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true + } } } } }, "config-chain": { - "version": "1.1.12", + "version": "1.1.13", "bundled": true, "requires": { "ini": "^1.3.4", @@ -11657,7 +11790,7 @@ "bundled": true }, "decode-uri-component": { - "version": "0.2.0", + "version": "0.2.2", "bundled": true }, "deep-extend": { @@ -11695,7 +11828,7 @@ "bundled": true }, "dezalgo": { - "version": "1.0.3", + "version": "1.0.4", "bundled": true, "requires": { "asap": "^2.0.0", @@ -11738,6 +11871,12 @@ "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true + } } }, "string_decoder": { @@ -11745,6 +11884,12 @@ "bundled": true, "requires": { "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true + } } } } @@ -11752,7 +11897,6 @@ "ecc-jsbn": { "version": "0.1.2", "bundled": true, - "optional": true, "requires": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -11781,7 +11925,7 @@ } }, "env-paths": { - "version": "2.2.0", + "version": "2.2.1", "bundled": true }, "err-code": { @@ -11862,7 +12006,11 @@ "bundled": true }, "figgy-pudding": { - "version": "3.5.1", + "version": "3.5.2", + "bundled": true + }, + "filter-obj": { + "version": "1.1.0", "bundled": true }, "find-npm-prefix": { @@ -11888,6 +12036,12 @@ "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true + } } }, "string_decoder": { @@ -11895,6 +12049,12 @@ "bundled": true, "requires": { "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true + } } } } @@ -11904,11 +12064,11 @@ "bundled": true }, "form-data": { - "version": "2.3.2", + "version": "2.3.3", "bundled": true, "requires": { "asynckit": "^0.4.0", - "combined-stream": "1.0.6", + "combined-stream": "^1.0.6", "mime-types": "^2.1.12" } }, @@ -11931,6 +12091,12 @@ "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true + } } }, "string_decoder": { @@ -11938,6 +12104,12 @@ "bundled": true, "requires": { "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true + } } } } @@ -11993,6 +12165,12 @@ "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true + } } }, "string_decoder": { @@ -12000,6 +12178,12 @@ "bundled": true, "requires": { "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true + } } } } @@ -12091,15 +12275,24 @@ } }, "glob": { - "version": "7.1.6", + "version": "7.2.3", "bundled": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "bundled": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } } }, "global-dirs": { @@ -12133,7 +12326,7 @@ } }, "graceful-fs": { - "version": "4.2.4", + "version": "4.2.10", "bundled": true }, "har-schema": { @@ -12313,7 +12506,7 @@ } }, "is-cidr": { - "version": "3.0.0", + "version": "3.1.1", "bundled": true, "requires": { "cidr-regex": "^2.0.10" @@ -12397,13 +12590,16 @@ }, "jsbn": { "version": "0.1.1", - "bundled": true, - "optional": true + "bundled": true }, "json-parse-better-errors": { "version": "1.0.2", "bundled": true }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "bundled": true + }, "json-schema": { "version": "0.4.0", "bundled": true @@ -12607,9 +12803,10 @@ } }, "lock-verify": { - "version": "2.1.0", + "version": "2.2.2", "bundled": true, "requires": { + "@iarna/cli": "^2.1.0", "npm-package-arg": "^6.1.0", "semver": "^5.4.1" } @@ -12716,7 +12913,7 @@ } }, "meant": { - "version": "1.0.2", + "version": "1.0.3", "bundled": true }, "mime-db": { @@ -12731,7 +12928,7 @@ } }, "minimatch": { - "version": "3.0.4", + "version": "3.1.2", "bundled": true, "requires": { "brace-expansion": "^1.1.7" @@ -12775,16 +12972,10 @@ } }, "mkdirp": { - "version": "0.5.5", + "version": "0.5.6", "bundled": true, "requires": { - "minimist": "^1.2.5" - }, - "dependencies": { - "minimist": { - "version": "1.2.6", - "bundled": true - } + "minimist": "^1.2.6" } }, "move-concurrently": { @@ -12823,7 +13014,7 @@ } }, "node-gyp": { - "version": "5.1.0", + "version": "5.1.1", "bundled": true, "requires": { "env-paths": "^2.2.0", @@ -13122,6 +13313,12 @@ "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true + } } }, "string_decoder": { @@ -13129,6 +13326,12 @@ "bundled": true, "requires": { "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true + } } } } @@ -13214,7 +13417,7 @@ "bundled": true }, "psl": { - "version": "1.1.29", + "version": "1.9.0", "bundled": true }, "pump": { @@ -13244,29 +13447,26 @@ } } }, - "punycode": { - "version": "1.4.1", - "bundled": true - }, "qrcode-terminal": { "version": "0.12.0", "bundled": true }, "qs": { - "version": "6.5.2", + "version": "6.5.3", "bundled": true }, "query-string": { - "version": "6.8.2", + "version": "6.14.1", "bundled": true, "requires": { "decode-uri-component": "^0.2.0", + "filter-obj": "^1.1.0", "split-on-first": "^1.0.0", "strict-uri-encode": "^2.0.0" } }, "qw": { - "version": "1.0.1", + "version": "1.0.2", "bundled": true }, "rc": { @@ -13307,12 +13507,11 @@ } }, "read-package-json": { - "version": "2.1.1", + "version": "2.1.2", "bundled": true, "requires": { "glob": "^7.1.1", - "graceful-fs": "^4.1.2", - "json-parse-better-errors": "^1.0.1", + "json-parse-even-better-errors": "^2.3.0", "normalize-package-data": "^2.0.0", "npm-normalize-package-bin": "^1.0.0" } @@ -13361,7 +13560,7 @@ } }, "request": { - "version": "2.88.0", + "version": "2.88.2", "bundled": true, "requires": { "aws-sign2": "~0.7.0", @@ -13371,7 +13570,7 @@ "extend": "~3.0.2", "forever-agent": "~0.6.1", "form-data": "~2.3.2", - "har-validator": "~5.1.0", + "har-validator": "~5.1.3", "http-signature": "~1.2.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", @@ -13381,7 +13580,7 @@ "performance-now": "^2.1.0", "qs": "~6.5.2", "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", + "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" } @@ -13423,7 +13622,7 @@ } }, "safe-buffer": { - "version": "5.1.2", + "version": "5.2.1", "bundled": true }, "safer-buffer": { @@ -13569,7 +13768,7 @@ "bundled": true }, "sshpk": { - "version": "1.14.2", + "version": "1.17.0", "bundled": true, "requires": { "asn1": "~0.2.3", @@ -13617,6 +13816,12 @@ "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true + } } }, "string_decoder": { @@ -13624,6 +13829,12 @@ "bundled": true, "requires": { "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true + } } } } @@ -13765,6 +13976,12 @@ "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true + } } }, "string_decoder": { @@ -13772,6 +13989,12 @@ "bundled": true, "requires": { "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true + } } } } @@ -13785,11 +14008,17 @@ "bundled": true }, "tough-cookie": { - "version": "2.4.3", + "version": "2.5.0", "bundled": true, "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "bundled": true + } } }, "tunnel-agent": { @@ -13801,8 +14030,7 @@ }, "tweetnacl": { "version": "0.14.5", - "bundled": true, - "optional": true + "bundled": true }, "typedarray": { "version": "0.0.6", @@ -13862,7 +14090,7 @@ } }, "uri-js": { - "version": "4.4.0", + "version": "4.4.1", "bundled": true, "requires": { "punycode": "^2.1.0" @@ -13897,7 +14125,7 @@ } }, "uuid": { - "version": "3.3.3", + "version": "3.4.0", "bundled": true }, "validate-npm-package-license": { @@ -16863,7 +17091,8 @@ "object-is": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz", - "integrity": "sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=" + "integrity": "sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=", + "dev": true }, "object-keys": { "version": "1.0.12", @@ -19205,9 +19434,12 @@ }, "dependencies": { "date-fns": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", - "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==" + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "requires": { + "@babel/runtime": "^7.21.0" + } }, "loose-envify": { "version": "1.4.0", @@ -19304,9 +19536,9 @@ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, "react-onclickoutside": { - "version": "6.12.2", - "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.12.2.tgz", - "integrity": "sha512-NMXGa223OnsrGVp5dJHkuKxQ4czdLmXSp5jSV9OqiCky9LOpPATn3vLldc+q5fK3gKbEHvr7J1u0yhBh/xYkpA==" + "version": "6.13.1", + "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.13.1.tgz", + "integrity": "sha512-LdrrxK/Yh9zbBQdFbMTXPp3dTSN9B+9YJQucdDu3JNKRrbdU+H+/TVONJoWtOwy4II8Sqf1y/DTI6w/vGPYW0w==" }, "react-overlays": { "version": "0.8.3", @@ -19407,14 +19639,19 @@ } }, "react-redux-toastr": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/react-redux-toastr/-/react-redux-toastr-7.6.8.tgz", - "integrity": "sha512-ex2MzJG/SjPk2PQZCuhxZXoZbqGY/orxEgajgL3fXiYoBaKmjLrI2SiR5z5+fDFgL+aEzgqVl+ZAQK3Fgshf4Q==", + "version": "7.6.13", + "resolved": "https://registry.npmjs.org/react-redux-toastr/-/react-redux-toastr-7.6.13.tgz", + "integrity": "sha512-dK0Qh5+xkvIYuh8EME8mFQVZMzeRc+DxV3U4SMWjEVpYt2D19+bH/u2hobmQclsebRVszNi0X/vlPIBihsy/GA==", "requires": { - "classnames": "^2.2.3", - "eventemitter3": "^3.1.0" + "classnames": "^2.3.2", + "eventemitter3": "^3.1.2" }, "dependencies": { + "classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" + }, "eventemitter3": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", @@ -19628,12 +19865,12 @@ } }, "recharts": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/recharts/-/recharts-1.8.5.tgz", - "integrity": "sha512-tM9mprJbXVEBxjM7zHsIy6Cc41oO/pVYqyAsOHLxlJrbNBuLs0PHB3iys2M+RqCF0//k8nJtZF6X6swSkWY3tg==", + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/recharts/-/recharts-1.8.6.tgz", + "integrity": "sha512-UlfSEOnZRAxxaH33Fc86yHEcqN+IRauPP31NfVvlGudtwVZEIb2RFI5b1J3npQo7XyoSnkUodg3Ha6EupkV+SQ==", "requires": { "classnames": "^2.2.5", - "core-js": "^2.6.10", + "core-js": "^3.4.2", "d3-interpolate": "^1.3.0", "d3-scale": "^2.1.0", "d3-shape": "^1.2.0", @@ -19646,9 +19883,9 @@ }, "dependencies": { "core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" + "version": "3.39.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.39.0.tgz", + "integrity": "sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g==" } } }, @@ -19825,20 +20062,22 @@ } }, "regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", + "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.2" }, "dependencies": { "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "requires": { + "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" } @@ -20800,6 +21039,37 @@ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, + "set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "dependencies": { + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + } + } + }, + "set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + } + }, "set-immediate-shim": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", diff --git a/tests/components/Draft.test.jsx b/tests/components/Draft.test.jsx index 18b00fb3..29afcd3d 100644 --- a/tests/components/Draft.test.jsx +++ b/tests/components/Draft.test.jsx @@ -34,6 +34,7 @@ props = { handleDraftDiscard: jest.fn(), toggleDraftLabOrderUrgency: jest.fn(), editDraftDrugOrder: jest.fn(), + dispatch: jest.fn(), locale: 'en', }; diff --git a/tests/components/__snapshots__/Draft.test.jsx.snap b/tests/components/__snapshots__/Draft.test.jsx.snap index 434ee76e..9b9642d5 100644 --- a/tests/components/__snapshots__/Draft.test.jsx.snap +++ b/tests/components/__snapshots__/Draft.test.jsx.snap @@ -2,6 +2,15 @@ exports[`Component: Draft should render on initial setup 1`] = ` -
  • - - NEW - - - Hct - -
    +
  • - - - - - ▲ - - - - + NEW - +
    + - - + - - - - - -
    -
  • + + + + ▲ + + + + + + + + + + + + + + + + + +