diff --git a/.github/workflows/scorecard.yaml b/.github/workflows/scorecard.yaml
index 20424324c1..a4e03760e6 100644
--- a/.github/workflows/scorecard.yaml
+++ b/.github/workflows/scorecard.yaml
@@ -67,6 +67,6 @@ jobs:
# Upload the results to GitHub's code scanning dashboard.
- name: "Upload to code-scanning"
- uses: github/codeql-action/upload-sarif@8214744c546c1e5c8f03dde8fab3a7353211988d # v3.26.7
+ uses: github/codeql-action/upload-sarif@294a9d92911152fe08befb9ec03e240add280cb3 # v3.26.8
with:
sarif_file: results.sarif
diff --git a/.github/workflows/translations.yaml b/.github/workflows/translations.yaml
index 2038ae562b..a5022e15bf 100644
--- a/.github/workflows/translations.yaml
+++ b/.github/workflows/translations.yaml
@@ -51,7 +51,7 @@ jobs:
git reset --hard
git reset HEAD~
- name: crowdin action
- uses: crowdin/github-action@cf0ccf9a71f614e66e011d461ea11e5dbabb93ca # pin@v2
+ uses: crowdin/github-action@95d6e895e871c3c7acf0cfb962f296baa41e63c6 # pin@v2
with:
upload_sources: true
upload_translations: false
diff --git a/docs/requirements.txt b/docs/requirements.txt
index ec5c9a02b6..087190c179 100644
--- a/docs/requirements.txt
+++ b/docs/requirements.txt
@@ -313,9 +313,9 @@ mkdocs-macros-plugin==1.2.0 \
--hash=sha256:3e442f8f37aa69710a69b5389e6b6cd0f54f4fcaee354aa57a61735ba8f97d27 \
--hash=sha256:7603b85cb336d669e29a8a9cc3af8b90767ffdf6021b3e023d5ec2e0a1f927a7
# via -r docs/requirements.in
-mkdocs-material==9.5.34 \
- --hash=sha256:1e60ddf716cfb5679dfd65900b8a25d277064ed82d9a53cd5190e3f894df7840 \
- --hash=sha256:54caa8be708de2b75167fd4d3b9f3d949579294f49cb242515d4653dbee9227e
+mkdocs-material==9.5.36 \
+ --hash=sha256:140456f761320f72b399effc073fa3f8aac744c77b0970797c201cae2f6c967f \
+ --hash=sha256:36734c1fd9404bea74236242ba3359b267fc930c7233b9fd086b0898825d0ac9
# via -r docs/requirements.in
mkdocs-material-extensions==1.3.1 \
--hash=sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443 \
diff --git a/src/backend/InvenTree/InvenTree/api_version.py b/src/backend/InvenTree/InvenTree/api_version.py
index aca655ff62..43f12f7737 100644
--- a/src/backend/InvenTree/InvenTree/api_version.py
+++ b/src/backend/InvenTree/InvenTree/api_version.py
@@ -1,16 +1,20 @@
"""InvenTree API version information."""
# InvenTree API version
-INVENTREE_API_VERSION = 258
+INVENTREE_API_VERSION = 259
"""Increment this API version number whenever there is a significant change to the API that any clients need to know about."""
INVENTREE_API_TEXT = """
-v258 - 2024-09-20 : https://github.com/inventree/InvenTree/pull/8137
+v259 - 2024-09-20 : https://github.com/inventree/InvenTree/pull/8137
- Implements new API endpoint for enabling custom UI features via plugins
+v258 - 2024-09-24 : https://github.com/inventree/InvenTree/pull/8163
+ - Enhances the existing PartScheduling API endpoint
+ - Adds a formal DRF serializer to the endpoint
+
v257 - 2024-09-22 : https://github.com/inventree/InvenTree/pull/8150
- Adds API endpoint for reporting barcode scan history
diff --git a/src/backend/InvenTree/part/api.py b/src/backend/InvenTree/part/api.py
index 1285378de2..4bb10ecf60 100644
--- a/src/backend/InvenTree/part/api.py
+++ b/src/backend/InvenTree/part/api.py
@@ -559,7 +559,7 @@ class PartScheduling(RetrieveAPI):
"""
queryset = Part.objects.all()
- serializer_class = EmptySerializer
+ serializer_class = part_serializers.PartSchedulingSerializer
def retrieve(self, request, *args, **kwargs):
"""Return scheduling information for the referenced Part instance."""
@@ -567,23 +567,24 @@ class PartScheduling(RetrieveAPI):
schedule = []
- def add_schedule_entry(
- date, quantity, title, label, url, speculative_quantity=0
- ):
- """Check if a scheduled entry should be added.
+ def add_schedule_entry(date, quantity, title, instance, speculative_quantity=0):
+ """Add a new entry to the schedule list.
- Rules:
- - date must be non-null
- - date cannot be in the "past"
- - quantity must not be zero
+ Arguments:
+ - date: The date of the scheduled event
+ - quantity: The quantity of stock to be added or removed
+ - title: The title of the scheduled event
+ - instance: The associated model instance (e.g. SalesOrder object)
+ - speculative_quantity: A speculative quantity to be added or removed
"""
schedule.append({
'date': date,
'quantity': quantity,
'speculative_quantity': speculative_quantity,
'title': title,
- 'label': label,
- 'url': url,
+ 'label': str(instance.reference),
+ 'model': instance.__class__.__name__.lower(),
+ 'model_id': instance.pk,
})
# Add purchase order (incoming stock) information
@@ -600,11 +601,7 @@ class PartScheduling(RetrieveAPI):
quantity = line.part.base_quantity(line_quantity)
add_schedule_entry(
- target_date,
- quantity,
- _('Incoming Purchase Order'),
- str(line.order),
- line.order.get_absolute_url(),
+ target_date, quantity, _('Incoming Purchase Order'), line.order
)
# Add sales order (outgoing stock) information
@@ -618,11 +615,7 @@ class PartScheduling(RetrieveAPI):
quantity = max(line.quantity - line.shipped, 0)
add_schedule_entry(
- target_date,
- -quantity,
- _('Outgoing Sales Order'),
- str(line.order),
- line.order.get_absolute_url(),
+ target_date, -quantity, _('Outgoing Sales Order'), line.order
)
# Add build orders (incoming stock) information
@@ -634,11 +627,7 @@ class PartScheduling(RetrieveAPI):
quantity = max(build.quantity - build.completed, 0)
add_schedule_entry(
- build.target_date,
- quantity,
- _('Stock produced by Build Order'),
- str(build),
- build.get_absolute_url(),
+ build.target_date, quantity, _('Stock produced by Build Order'), build
)
"""
@@ -721,8 +710,7 @@ class PartScheduling(RetrieveAPI):
build.target_date,
-part_allocated_quantity,
_('Stock required for Build Order'),
- str(build),
- build.get_absolute_url(),
+ build,
speculative_quantity=speculative_quantity,
)
@@ -742,9 +730,13 @@ class PartScheduling(RetrieveAPI):
return -1 if date_1 < date_2 else 1
# Sort by incrementing date values
- schedule = sorted(schedule, key=functools.cmp_to_key(compare))
+ schedules = sorted(schedule, key=functools.cmp_to_key(compare))
- return Response(schedule)
+ serializers = part_serializers.PartSchedulingSerializer(
+ schedules, many=True, context={'request': request}
+ )
+
+ return Response(serializers.data)
class PartRequirements(RetrieveAPI):
diff --git a/src/backend/InvenTree/part/serializers.py b/src/backend/InvenTree/part/serializers.py
index c520ca2abd..ffc935abb3 100644
--- a/src/backend/InvenTree/part/serializers.py
+++ b/src/backend/InvenTree/part/serializers.py
@@ -244,6 +244,39 @@ class PartInternalPriceSerializer(InvenTree.serializers.InvenTreeModelSerializer
)
+class PartSchedulingSerializer(serializers.Serializer):
+ """Serializer class for a PartScheduling entry."""
+
+ class Meta:
+ """Metaclass options for this serializer."""
+
+ fields = [
+ 'date',
+ 'quantity',
+ 'speculative_quantity',
+ 'title',
+ 'label',
+ 'model',
+ 'model_id',
+ ]
+
+ date = serializers.DateField(label=_('Date'), required=True, allow_null=True)
+
+ quantity = serializers.FloatField(label=_('Quantity'), required=True)
+
+ speculative_quantity = serializers.FloatField(
+ label=_('Speculative Quantity'), required=False
+ )
+
+ title = serializers.CharField(label=_('Title'), required=True)
+
+ label = serializers.CharField(label=_('Label'), required=True)
+
+ model = serializers.CharField(label=_('Model'), required=True)
+
+ model_id = serializers.IntegerField(label=_('Model ID'), required=True)
+
+
class PartThumbSerializer(serializers.Serializer):
"""Serializer for the 'image' field of the Part model.
diff --git a/src/backend/InvenTree/templates/js/translated/part.js b/src/backend/InvenTree/templates/js/translated/part.js
index 9080b6b27d..a065aad924 100644
--- a/src/backend/InvenTree/templates/js/translated/part.js
+++ b/src/backend/InvenTree/templates/js/translated/part.js
@@ -3078,10 +3078,26 @@ function loadPartSchedulingChart(canvas_id, part_id) {
quantity_string += makeIconBadge('fa-question-circle icon-blue', '{% trans "Speculative" %}');
}
+ let url = '#';
+
+ switch (entry.model) {
+ case 'salesorder':
+ url = `/order/sales-order/${entry.model_id}/`;
+ break;
+ case 'purchaseorder':
+ url = `/order/purchase-order/${entry.model_id}/`;
+ break;
+ case 'build':
+ url = `/build/${entry.model_id}/`;
+ break;
+ default:
+ break;
+ }
+
// Add an entry to the scheduling table
table_html += `
- ${entry.label} |
+ ${entry.label} |
${entry.title} |
${date_string} |
${quantity_string} |
diff --git a/src/backend/package-lock.json b/src/backend/package-lock.json
index 943ef12d34..e7d3870275 100644
--- a/src/backend/package-lock.json
+++ b/src/backend/package-lock.json
@@ -5,7 +5,7 @@
"packages": {
"": {
"dependencies": {
- "eslint": "^9.10.0",
+ "eslint": "^9.11.0",
"eslint-config-google": "^0.14.0"
}
},
@@ -86,9 +86,9 @@
}
},
"node_modules/@eslint/js": {
- "version": "9.10.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.10.0.tgz",
- "integrity": "sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g==",
+ "version": "9.11.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.11.0.tgz",
+ "integrity": "sha512-LPkkenkDqyzTFauZLLAPhIb48fj6drrfMvRGSL9tS3AcZBSVTllemLSNyCvHNNL2t797S/6DJNSIwRwXgMO/eQ==",
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
@@ -102,9 +102,9 @@
}
},
"node_modules/@eslint/plugin-kit": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.1.0.tgz",
- "integrity": "sha512-autAXT203ixhqei9xt+qkYOvY8l6LAFIdT2UXc/RPNeUVfqRF1BV94GTJyVPFKT8nFM6MyVJhjLj9E8JWvf5zQ==",
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.0.tgz",
+ "integrity": "sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==",
"dependencies": {
"levn": "^0.4.1"
},
@@ -333,16 +333,16 @@
}
},
"node_modules/eslint": {
- "version": "9.10.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.10.0.tgz",
- "integrity": "sha512-Y4D0IgtBZfOcOUAIQTSXBKoNGfY0REGqHJG6+Q81vNippW5YlKjHFj4soMxamKK1NXHUWuBZTLdU3Km+L/pcHw==",
+ "version": "9.11.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.11.0.tgz",
+ "integrity": "sha512-yVS6XODx+tMFMDFcG4+Hlh+qG7RM6cCJXtQhCKLSsr3XkLvWggHjCqjfh0XsPPnt1c56oaT6PMgW9XWQQjdHXA==",
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.11.0",
"@eslint/config-array": "^0.18.0",
"@eslint/eslintrc": "^3.1.0",
- "@eslint/js": "9.10.0",
- "@eslint/plugin-kit": "^0.1.0",
+ "@eslint/js": "9.11.0",
+ "@eslint/plugin-kit": "^0.2.0",
"@humanwhocodes/module-importer": "^1.0.1",
"@humanwhocodes/retry": "^0.3.0",
"@nodelib/fs.walk": "^1.2.8",
diff --git a/src/backend/package.json b/src/backend/package.json
index 57b98f178f..7884e20401 100644
--- a/src/backend/package.json
+++ b/src/backend/package.json
@@ -1,6 +1,6 @@
{
"dependencies": {
- "eslint": "^9.10.0",
+ "eslint": "^9.11.0",
"eslint-config-google": "^0.14.0"
},
"type": "module"
diff --git a/src/frontend/package.json b/src/frontend/package.json
index 1f04b13f69..b44fc8e421 100644
--- a/src/frontend/package.json
+++ b/src/frontend/package.json
@@ -13,7 +13,7 @@
"dependencies": {
"@codemirror/autocomplete": "^6.18.1",
"@codemirror/lang-liquid": "^6.2.1",
- "@codemirror/language": "^6.10.2",
+ "@codemirror/language": "^6.10.3",
"@codemirror/lint": "^6.8.1",
"@codemirror/search": "^6.5.6",
"@codemirror/state": "^6.4.1",
@@ -37,11 +37,11 @@
"@mantine/notifications": "^7.12.2",
"@mantine/spotlight": "^7.12.2",
"@mantine/vanilla-extract": "^7.12.2",
- "@sentry/react": "^8.30.0",
+ "@sentry/react": "^8.31.0",
"@tabler/icons-react": "^3.17.0",
"@tanstack/react-query": "^5.56.2",
- "@uiw/codemirror-theme-vscode": "^4.23.2",
- "@uiw/react-codemirror": "^4.23.2",
+ "@uiw/codemirror-theme-vscode": "^4.23.3",
+ "@uiw/react-codemirror": "^4.23.3",
"@uiw/react-split": "^5.9.3",
"@vanilla-extract/css": "^1.15.5",
"axios": "^1.7.7",
@@ -60,7 +60,7 @@
"react-hook-form": "^7.53.0",
"react-is": "^18.3.1",
"react-router-dom": "^6.26.2",
- "react-select": "^5.8.0",
+ "react-select": "^5.8.1",
"react-simplemde-editor": "^5.2.0",
"react-window": "^1.8.10",
"recharts": "^2.12.7",
@@ -71,13 +71,13 @@
"@babel/core": "^7.25.2",
"@babel/preset-react": "^7.24.7",
"@babel/preset-typescript": "^7.24.7",
- "@codecov/vite-plugin": "^1.1.0",
+ "@codecov/vite-plugin": "^1.2.0",
"@lingui/cli": "^4.11.4",
"@lingui/macro": "^4.11.4",
- "@playwright/test": "^1.47.1",
- "@types/node": "^22.5.5",
+ "@playwright/test": "^1.47.2",
+ "@types/node": "^22.6.0",
"@types/qrcode": "^1.5.5",
- "@types/react": "^18.3.6",
+ "@types/react": "^18.3.8",
"@types/react-dom": "^18.3.0",
"@types/react-grid-layout": "^1.3.5",
"@types/react-router-dom": "^5.3.3",
@@ -85,10 +85,10 @@
"@vanilla-extract/vite-plugin": "^4.0.15",
"@vitejs/plugin-react": "^4.3.1",
"babel-plugin-macros": "^3.1.0",
- "nyc": "^17.0.0",
- "rollup-plugin-license": "^3.5.2",
+ "nyc": "^17.1.0",
+ "rollup-plugin-license": "^3.5.3",
"typescript": "^5.6.2",
- "vite": "^5.4.6",
+ "vite": "^5.4.7",
"vite-plugin-babel-macros": "^1.0.6",
"vite-plugin-istanbul": "^6.0.2"
}
diff --git a/src/frontend/src/enums/ApiEndpoints.tsx b/src/frontend/src/enums/ApiEndpoints.tsx
index 2f744cb451..e15bb9b0bc 100644
--- a/src/frontend/src/enums/ApiEndpoints.tsx
+++ b/src/frontend/src/enums/ApiEndpoints.tsx
@@ -95,6 +95,7 @@ export enum ApiEndpoints {
part_thumbs_list = 'part/thumbs/',
part_pricing_get = 'part/:id/pricing/',
part_serial_numbers = 'part/:id/serial-numbers/',
+ part_scheduling = 'part/:id/scheduling/',
part_pricing_internal = 'part/internal-price/',
part_pricing_sale = 'part/sale-price/',
part_stocktake_list = 'part/stocktake/',
diff --git a/src/frontend/src/pages/part/PartDetail.tsx b/src/frontend/src/pages/part/PartDetail.tsx
index d34764497f..c6758b035d 100644
--- a/src/frontend/src/pages/part/PartDetail.tsx
+++ b/src/frontend/src/pages/part/PartDetail.tsx
@@ -104,6 +104,7 @@ import { SalesOrderTable } from '../../tables/sales/SalesOrderTable';
import { StockItemTable } from '../../tables/stock/StockItemTable';
import { TestStatisticsTable } from '../../tables/stock/TestStatisticsTable';
import PartPricingPanel from './PartPricingPanel';
+import PartSchedulingDetail from './PartSchedulingDetail';
import PartStocktakeDetail from './PartStocktakeDetail';
/**
@@ -705,7 +706,7 @@ export default function PartDetail() {
name: 'scheduling',
label: t`Scheduling`,
icon: ,
- content: ,
+ content: part ? : ,
hidden: !userSettings.isSet('DISPLAY_SCHEDULE_TAB')
},
{
diff --git a/src/frontend/src/pages/part/PartSchedulingDetail.tsx b/src/frontend/src/pages/part/PartSchedulingDetail.tsx
new file mode 100644
index 0000000000..8121f3426f
--- /dev/null
+++ b/src/frontend/src/pages/part/PartSchedulingDetail.tsx
@@ -0,0 +1,312 @@
+import { t } from '@lingui/macro';
+import { ChartTooltipProps, LineChart } from '@mantine/charts';
+import {
+ Anchor,
+ Center,
+ Divider,
+ DrawerOverlay,
+ Loader,
+ Paper,
+ SimpleGrid,
+ Text
+} from '@mantine/core';
+import { ReactNode, useMemo } from 'react';
+import { useNavigate } from 'react-router-dom';
+
+import { formatDate } from '../../defaults/formatters';
+import { ApiEndpoints } from '../../enums/ApiEndpoints';
+import { navigateToLink } from '../../functions/navigation';
+import { getDetailUrl } from '../../functions/urls';
+import { useTable } from '../../hooks/UseTable';
+import { apiUrl } from '../../states/ApiState';
+import { TableColumn } from '../../tables/Column';
+import { DateColumn, DescriptionColumn } from '../../tables/ColumnRenderers';
+import { InvenTreeTable } from '../../tables/InvenTreeTable';
+import { TableHoverCard } from '../../tables/TableHoverCard';
+
+/*
+ * Render a tooltip for the chart, with correct date information
+ */
+function ChartTooltip({ label, payload }: ChartTooltipProps) {
+ if (!payload) {
+ return null;
+ }
+
+ if (label && typeof label == 'number') {
+ label = formatDate(new Date(label).toISOString());
+ }
+
+ const scheduled = payload.find((item) => item.name == 'scheduled');
+ const minimum = payload.find((item) => item.name == 'minimum');
+ const maximum = payload.find((item) => item.name == 'maximum');
+
+ return (
+
+ {label}
+
+
+ {t`Maximum`} : {maximum?.value}
+
+
+ {t`Scheduled`} : {scheduled?.value}
+
+
+ {t`Minimum`} : {minimum?.value}
+
+
+ );
+}
+
+export default function PartSchedulingDetail({ part }: { part: any }) {
+ const table = useTable('part-scheduling');
+ const navigate = useNavigate();
+
+ const tableColumns: TableColumn[] = useMemo(() => {
+ return [
+ {
+ accessor: 'label',
+ switchable: false,
+ title: t`Order`,
+ render: (record: any) => {
+ const url = getDetailUrl(record.model, record.model_id);
+
+ if (url) {
+ return (
+ navigateToLink(url, navigate, event)}
+ >
+ {record.label}
+
+ );
+ } else {
+ return record.label;
+ }
+ }
+ },
+ DescriptionColumn({
+ accessor: 'title',
+ switchable: false
+ }),
+ DateColumn({
+ sortable: false,
+ switchable: false
+ }),
+ {
+ accessor: 'quantity',
+ title: t`Quantity`,
+ switchable: false,
+ render: (record: any) => {
+ let q = record.quantity;
+ let extra: ReactNode[] = [];
+
+ if (record.speculative_quantity != 0) {
+ q = record.speculative_quantity;
+ extra.push(
+ {t`Quantity is speculative`}
+ );
+ }
+
+ if (!record.date) {
+ extra.push(
+ {t`No date available for provided quantity`}
+ );
+ } else if (new Date(record.date) < new Date()) {
+ extra.push(
+ {t`Date is in the past`}
+ );
+ }
+
+ return (
+ {q}}
+ title={t`Scheduled Quantity`}
+ extra={extra}
+ />
+ );
+ }
+ }
+ ];
+ }, []);
+
+ const chartData = useMemo(() => {
+ /* Rebuild chart data whenever the table data changes.
+ * Note: We assume that the data is provided in increasing date order,
+ * with "null" date entries placed first.
+ */
+
+ const today = new Date();
+ today.setHours(0, 0, 0, 0);
+
+ // Date bounds
+ let min_date: Date = new Date();
+ let max_date: Date = new Date();
+
+ // Track stock scheduling throughout time
+ let stock = part.in_stock ?? 0;
+ let stock_min = stock;
+ let stock_max = stock;
+
+ // First, iterate through each entry and find any entries without an associated date, or in the past
+ table.records.forEach((record) => {
+ let q = record.quantity + record.speculative_quantity;
+
+ if (record.date == null || new Date(record.date) < today) {
+ if (q < 0) {
+ stock_min += q;
+ } else {
+ stock_max += q;
+ }
+ }
+ });
+
+ // Construct initial chart entry (for today)
+ let entries: any[] = [
+ {
+ // date: formatDate(today.toISOString()),
+ date: today.valueOf(),
+ delta: 0,
+ scheduled: stock,
+ minimum: stock_min,
+ maximum: stock_max,
+ low_stock: part.minimum_stock
+ }
+ ];
+
+ table.records.forEach((record) => {
+ let q = record.quantity + record.speculative_quantity;
+
+ if (!record.date) {
+ return;
+ }
+
+ const date = new Date(record.date);
+
+ // In the past? Ignore this entry
+ if (date < today) {
+ return;
+ }
+
+ // Update date limits
+
+ if (date < min_date) {
+ min_date = date;
+ }
+
+ if (date > max_date) {
+ max_date = date;
+ }
+
+ // Update stock levels
+ stock += record.quantity;
+
+ stock_min += record.quantity;
+ stock_max += record.quantity;
+
+ // Speculative quantities expand the expected stock range
+ if (record.speculative_quantity < 0) {
+ stock_min += record.speculative_quantity;
+ } else if (record.speculative_quantity > 0) {
+ stock_max += record.speculative_quantity;
+ }
+
+ entries.push({
+ ...record,
+ date: new Date(record.date).valueOf(),
+ scheduled: stock,
+ minimum: stock_min,
+ maximum: stock_max,
+ low_stock: part.minimum_stock
+ });
+ });
+
+ return entries;
+ }, [part, table.records]);
+
+ // Calculate the date limits of the chart
+ const chartLimits: number[] = useMemo(() => {
+ let min_date = new Date();
+ let max_date = new Date();
+
+ if (chartData.length > 0) {
+ min_date = new Date(chartData[0].date);
+ max_date = new Date(chartData[chartData.length - 1].date);
+ }
+
+ // Expand limits by one day on either side
+ min_date.setDate(min_date.getDate() - 1);
+ max_date.setDate(max_date.getDate() + 1);
+
+ return [min_date.valueOf(), max_date.valueOf()];
+ }, [chartData]);
+
+ return (
+ <>
+
+
+ {table.isLoading ? (
+
+
+
+ ) : (
+ (
+
+ )
+ }}
+ yAxisLabel={t`Expected Quantity`}
+ xAxisLabel={t`Date`}
+ xAxisProps={{
+ domain: [chartLimits[0], chartLimits[1]],
+ scale: 'time',
+ type: 'number',
+ tickFormatter: (value: number) => {
+ return formatDate(new Date(value).toISOString());
+ }
+ }}
+ series={[
+ {
+ name: 'scheduled',
+ label: t`Scheduled`,
+ color: 'blue.6'
+ },
+ {
+ name: 'minimum',
+ label: t`Minimum`,
+ color: 'yellow.6'
+ },
+ {
+ name: 'maximum',
+ label: t`Maximum`,
+ color: 'teal.6'
+ },
+ {
+ name: 'low_stock',
+ label: t`Low Stock`,
+ color: 'red.6'
+ }
+ ]}
+ />
+ )}
+
+ >
+ );
+}
diff --git a/src/frontend/src/tables/InvenTreeTable.tsx b/src/frontend/src/tables/InvenTreeTable.tsx
index 72cd10da0b..f5e283c28c 100644
--- a/src/frontend/src/tables/InvenTreeTable.tsx
+++ b/src/frontend/src/tables/InvenTreeTable.tsx
@@ -500,7 +500,7 @@ export function InvenTreeTable>({
});
};
- const { data, isFetching, refetch } = useQuery({
+ const { data, isFetching, isLoading, refetch } = useQuery({
queryKey: [
tableState.page,
props.params,
@@ -515,8 +515,13 @@ export function InvenTreeTable>({
});
useEffect(() => {
- tableState.setIsLoading(isFetching);
- }, [isFetching]);
+ tableState.setIsLoading(
+ isFetching ||
+ isLoading ||
+ tableOptionQuery.isFetching ||
+ tableOptionQuery.isLoading
+ );
+ }, [isFetching, isLoading, tableOptionQuery]);
// Update tableState.records when new data received
useEffect(() => {
diff --git a/src/frontend/yarn.lock b/src/frontend/yarn.lock
index c403e49abf..738724b78a 100644
--- a/src/frontend/yarn.lock
+++ b/src/frontend/yarn.lock
@@ -356,10 +356,10 @@
"@babel/helper-validator-identifier" "^7.24.7"
to-fast-properties "^2.0.0"
-"@codecov/bundler-plugin-core@^1.1.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@codecov/bundler-plugin-core/-/bundler-plugin-core-1.1.0.tgz#46886d6fff7d6462ee2c71c3821362fdcf24da78"
- integrity sha512-moetKC32uLQh09X3HNCsNzr+ZVdCoGE11eEH65wEuVb1P6p28W52EjhamrZcl76X1DkthETRPiw7DJQ9hyA+AA==
+"@codecov/bundler-plugin-core@^1.2.0":
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/@codecov/bundler-plugin-core/-/bundler-plugin-core-1.2.0.tgz#4a896dd3bd9f9f98a60519aadcf8e3daff37ae5d"
+ integrity sha512-ublUP5V0tW6oDnaJ1UBWvEmVAkvMmPNEwWkpF+WwJSCBWNLvWrkSwG84S3Gt5Xbnh17xEyAxXBmNzF+mXVXBgw==
dependencies:
"@actions/core" "^1.10.1"
"@actions/github" "^6.0.0"
@@ -368,12 +368,12 @@
unplugin "^1.10.1"
zod "^3.22.4"
-"@codecov/vite-plugin@^1.1.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@codecov/vite-plugin/-/vite-plugin-1.1.0.tgz#0379f95002de88601d18805456b8e5e161653ee7"
- integrity sha512-X/Fw/uF56+nkjhF3CL6kEmcdCj56fAJYdJh4Divyv/4pjze1MTfrYOv82DmzOmeJho8lxM0e0NvzPaiLdgRPrw==
+"@codecov/vite-plugin@^1.2.0":
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/@codecov/vite-plugin/-/vite-plugin-1.2.0.tgz#341949ed25a8d20805a565ce5e68c7914567b0c8"
+ integrity sha512-hX3VDomMYRNWDgLTRu7mzGn902ei6tiKa3S9qDrwQwVHdsBw22J47towlpxf3g92QWMOKrkWgEpQrU50h9PWzg==
dependencies:
- "@codecov/bundler-plugin-core" "^1.1.0"
+ "@codecov/bundler-plugin-core" "^1.2.0"
unplugin "^1.10.1"
"@codemirror/autocomplete@^6.0.0", "@codemirror/autocomplete@^6.18.1":
@@ -449,10 +449,10 @@
"@lezer/highlight" "^1.0.0"
"@lezer/lr" "^1.3.1"
-"@codemirror/language@^6.0.0", "@codemirror/language@^6.10.2", "@codemirror/language@^6.4.0", "@codemirror/language@^6.6.0":
- version "6.10.2"
- resolved "https://registry.yarnpkg.com/@codemirror/language/-/language-6.10.2.tgz#4056dc219619627ffe995832eeb09cea6060be61"
- integrity sha512-kgbTYTo0Au6dCSc/TFy7fK3fpJmgHDv1sG1KNQKJXVi+xBTEeBPY/M30YXiU6mMXeH+YIDLsbrT4ZwNRdtF+SA==
+"@codemirror/language@^6.0.0", "@codemirror/language@^6.10.3", "@codemirror/language@^6.4.0", "@codemirror/language@^6.6.0":
+ version "6.10.3"
+ resolved "https://registry.yarnpkg.com/@codemirror/language/-/language-6.10.3.tgz#eb25fc5ade19032e7bf1dcaa957804e5f1660585"
+ integrity sha512-kDqEU5sCP55Oabl6E7m5N+vZRoc0iWqgDVhEKifcHzPzjqCegcO4amfrYVL9PmPZpl4G0yjkpTpUO/Ui8CzO8A==
dependencies:
"@codemirror/state" "^6.0.0"
"@codemirror/view" "^6.23.0"
@@ -1416,179 +1416,179 @@
dependencies:
"@octokit/openapi-types" "^22.2.0"
-"@playwright/test@^1.47.1":
- version "1.47.1"
- resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.47.1.tgz#568a46229a5aef54b74977297a7946bb5ac4b67b"
- integrity sha512-dbWpcNQZ5nj16m+A5UNScYx7HX5trIy7g4phrcitn+Nk83S32EBX/CLU4hiF4RGKX/yRc93AAqtfaXB7JWBd4Q==
+"@playwright/test@^1.47.2":
+ version "1.47.2"
+ resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.47.2.tgz#dbe7051336bfc5cc599954214f9111181dbc7475"
+ integrity sha512-jTXRsoSPONAs8Za9QEQdyjFn+0ZQFjCiIztAIF6bi1HqhBzG9Ma7g1WotyiGqFSBRZjIEqMdT8RUlbk1QVhzCQ==
dependencies:
- playwright "1.47.1"
+ playwright "1.47.2"
"@remix-run/router@1.19.2":
version "1.19.2"
resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.19.2.tgz#0c896535473291cb41f152c180bedd5680a3b273"
integrity sha512-baiMx18+IMuD1yyvOGaHM9QrVUPGGG0jC+z+IPHnRJWUAUvaKuWKyE8gjDj2rzv3sz9zOGoRSPgeBVHRhZnBlA==
-"@rollup/rollup-android-arm-eabi@4.21.2":
- version "4.21.2"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.2.tgz#0412834dc423d1ff7be4cb1fc13a86a0cd262c11"
- integrity sha512-fSuPrt0ZO8uXeS+xP3b+yYTCBUd05MoSp2N/MFOgjhhUhMmchXlpTQrTpI8T+YAwAQuK7MafsCOxW7VrPMrJcg==
+"@rollup/rollup-android-arm-eabi@4.22.4":
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz#8b613b9725e8f9479d142970b106b6ae878610d5"
+ integrity sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==
-"@rollup/rollup-android-arm64@4.21.2":
- version "4.21.2"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.2.tgz#baf1a014b13654f3b9e835388df9caf8c35389cb"
- integrity sha512-xGU5ZQmPlsjQS6tzTTGwMsnKUtu0WVbl0hYpTPauvbRAnmIvpInhJtgjj3mcuJpEiuUw4v1s4BimkdfDWlh7gA==
+"@rollup/rollup-android-arm64@4.22.4":
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz#654ca1049189132ff602bfcf8df14c18da1f15fb"
+ integrity sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==
-"@rollup/rollup-darwin-arm64@4.21.2":
- version "4.21.2"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.2.tgz#0a2c364e775acdf1172fe3327662eec7c46e55b1"
- integrity sha512-99AhQ3/ZMxU7jw34Sq8brzXqWH/bMnf7ZVhvLk9QU2cOepbQSVTns6qoErJmSiAvU3InRqC2RRZ5ovh1KN0d0Q==
+"@rollup/rollup-darwin-arm64@4.22.4":
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz#6d241d099d1518ef0c2205d96b3fa52e0fe1954b"
+ integrity sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==
-"@rollup/rollup-darwin-x64@4.21.2":
- version "4.21.2"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.2.tgz#a972db75890dfab8df0da228c28993220a468c42"
- integrity sha512-ZbRaUvw2iN/y37x6dY50D8m2BnDbBjlnMPotDi/qITMJ4sIxNY33HArjikDyakhSv0+ybdUxhWxE6kTI4oX26w==
+"@rollup/rollup-darwin-x64@4.22.4":
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz#42bd19d292a57ee11734c980c4650de26b457791"
+ integrity sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==
-"@rollup/rollup-linux-arm-gnueabihf@4.21.2":
- version "4.21.2"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.2.tgz#1609d0630ef61109dd19a278353e5176d92e30a1"
- integrity sha512-ztRJJMiE8nnU1YFcdbd9BcH6bGWG1z+jP+IPW2oDUAPxPjo9dverIOyXz76m6IPA6udEL12reYeLojzW2cYL7w==
+"@rollup/rollup-linux-arm-gnueabihf@4.22.4":
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz#f23555ee3d8fe941c5c5fd458cd22b65eb1c2232"
+ integrity sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==
-"@rollup/rollup-linux-arm-musleabihf@4.21.2":
- version "4.21.2"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.2.tgz#3c1dca5f160aa2e79e4b20ff6395eab21804f266"
- integrity sha512-flOcGHDZajGKYpLV0JNc0VFH361M7rnV1ee+NTeC/BQQ1/0pllYcFmxpagltANYt8FYf9+kL6RSk80Ziwyhr7w==
+"@rollup/rollup-linux-arm-musleabihf@4.22.4":
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz#f3bbd1ae2420f5539d40ac1fde2b38da67779baa"
+ integrity sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==
-"@rollup/rollup-linux-arm64-gnu@4.21.2":
- version "4.21.2"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.2.tgz#c2fe376e8b04eafb52a286668a8df7c761470ac7"
- integrity sha512-69CF19Kp3TdMopyteO/LJbWufOzqqXzkrv4L2sP8kfMaAQ6iwky7NoXTp7bD6/irKgknDKM0P9E/1l5XxVQAhw==
+"@rollup/rollup-linux-arm64-gnu@4.22.4":
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz#7abe900120113e08a1f90afb84c7c28774054d15"
+ integrity sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==
-"@rollup/rollup-linux-arm64-musl@4.21.2":
- version "4.21.2"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.2.tgz#e62a4235f01e0f66dbba587c087ca6db8008ec80"
- integrity sha512-48pD/fJkTiHAZTnZwR0VzHrao70/4MlzJrq0ZsILjLW/Ab/1XlVUStYyGt7tdyIiVSlGZbnliqmult/QGA2O2w==
+"@rollup/rollup-linux-arm64-musl@4.22.4":
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz#9e655285c8175cd44f57d6a1e8e5dedfbba1d820"
+ integrity sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==
-"@rollup/rollup-linux-powerpc64le-gnu@4.21.2":
- version "4.21.2"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.2.tgz#24b3457e75ee9ae5b1c198bd39eea53222a74e54"
- integrity sha512-cZdyuInj0ofc7mAQpKcPR2a2iu4YM4FQfuUzCVA2u4HI95lCwzjoPtdWjdpDKyHxI0UO82bLDoOaLfpZ/wviyQ==
+"@rollup/rollup-linux-powerpc64le-gnu@4.22.4":
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz#9a79ae6c9e9d8fe83d49e2712ecf4302db5bef5e"
+ integrity sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==
-"@rollup/rollup-linux-riscv64-gnu@4.21.2":
- version "4.21.2"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.2.tgz#38edfba9620fe2ca8116c97e02bd9f2d606bde09"
- integrity sha512-RL56JMT6NwQ0lXIQmMIWr1SW28z4E4pOhRRNqwWZeXpRlykRIlEpSWdsgNWJbYBEWD84eocjSGDu/XxbYeCmwg==
+"@rollup/rollup-linux-riscv64-gnu@4.22.4":
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz#67ac70eca4ace8e2942fabca95164e8874ab8128"
+ integrity sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==
-"@rollup/rollup-linux-s390x-gnu@4.21.2":
- version "4.21.2"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.2.tgz#a3bfb8bc5f1e802f8c76cff4a4be2e9f9ac36a18"
- integrity sha512-PMxkrWS9z38bCr3rWvDFVGD6sFeZJw4iQlhrup7ReGmfn7Oukrr/zweLhYX6v2/8J6Cep9IEA/SmjXjCmSbrMQ==
+"@rollup/rollup-linux-s390x-gnu@4.22.4":
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz#9f883a7440f51a22ed7f99e1d070bd84ea5005fc"
+ integrity sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==
-"@rollup/rollup-linux-x64-gnu@4.21.2":
- version "4.21.2"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.2.tgz#0dadf34be9199fcdda44b5985a086326344f30ad"
- integrity sha512-B90tYAUoLhU22olrafY3JQCFLnT3NglazdwkHyxNDYF/zAxJt5fJUB/yBoWFoIQ7SQj+KLe3iL4BhOMa9fzgpw==
+"@rollup/rollup-linux-x64-gnu@4.22.4":
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz#70116ae6c577fe367f58559e2cffb5641a1dd9d0"
+ integrity sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==
-"@rollup/rollup-linux-x64-musl@4.21.2":
- version "4.21.2"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.2.tgz#7b7deddce240400eb87f2406a445061b4fed99a8"
- integrity sha512-7twFizNXudESmC9oneLGIUmoHiiLppz/Xs5uJQ4ShvE6234K0VB1/aJYU3f/4g7PhssLGKBVCC37uRkkOi8wjg==
+"@rollup/rollup-linux-x64-musl@4.22.4":
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz#f473f88219feb07b0b98b53a7923be716d1d182f"
+ integrity sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==
-"@rollup/rollup-win32-arm64-msvc@4.21.2":
- version "4.21.2"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.2.tgz#a0ca0c5149c2cfb26fab32e6ba3f16996fbdb504"
- integrity sha512-9rRero0E7qTeYf6+rFh3AErTNU1VCQg2mn7CQcI44vNUWM9Ze7MSRS/9RFuSsox+vstRt97+x3sOhEey024FRQ==
+"@rollup/rollup-win32-arm64-msvc@4.22.4":
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz#4349482d17f5d1c58604d1c8900540d676f420e0"
+ integrity sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==
-"@rollup/rollup-win32-ia32-msvc@4.21.2":
- version "4.21.2"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.2.tgz#aae2886beec3024203dbb5569db3a137bc385f8e"
- integrity sha512-5rA4vjlqgrpbFVVHX3qkrCo/fZTj1q0Xxpg+Z7yIo3J2AilW7t2+n6Q8Jrx+4MrYpAnjttTYF8rr7bP46BPzRw==
+"@rollup/rollup-win32-ia32-msvc@4.22.4":
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz#a6fc39a15db618040ec3c2a24c1e26cb5f4d7422"
+ integrity sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==
-"@rollup/rollup-win32-x64-msvc@4.21.2":
- version "4.21.2"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.2.tgz#e4291e3c1bc637083f87936c333cdbcad22af63b"
- integrity sha512-6UUxd0+SKomjdzuAcp+HAmxw1FlGBnl1v2yEPSabtx4lBfdXHDVsW7+lQkgz9cNFJGY3AWR7+V8P5BqkD9L9nA==
+"@rollup/rollup-win32-x64-msvc@4.22.4":
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz#3dd5d53e900df2a40841882c02e56f866c04d202"
+ integrity sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==
-"@sentry-internal/browser-utils@8.30.0":
- version "8.30.0"
- resolved "https://registry.yarnpkg.com/@sentry-internal/browser-utils/-/browser-utils-8.30.0.tgz#eb68c79556ffb864eb5924a53affde52f2b77362"
- integrity sha512-pwX+awNWaxSOAsBLVLqc1+Hw+Fm1Nci9mbKFA6Ed5YzCG049PnBVQwugpmx2dcyyCqJpORhcIqb9jHdCkYmCiA==
+"@sentry-internal/browser-utils@8.31.0":
+ version "8.31.0"
+ resolved "https://registry.yarnpkg.com/@sentry-internal/browser-utils/-/browser-utils-8.31.0.tgz#7c2c2916dfe77f771fbc0a9f73c9447aff9039f1"
+ integrity sha512-Bq7TFMhPr1PixRGYkB/6ar9ws7sj224XzQ+hgpz6OxGEc9fQakvD8t/Nn7dp14k3FI/hcBRA6BBvpOKUUuPgGA==
dependencies:
- "@sentry/core" "8.30.0"
- "@sentry/types" "8.30.0"
- "@sentry/utils" "8.30.0"
+ "@sentry/core" "8.31.0"
+ "@sentry/types" "8.31.0"
+ "@sentry/utils" "8.31.0"
-"@sentry-internal/feedback@8.30.0":
- version "8.30.0"
- resolved "https://registry.yarnpkg.com/@sentry-internal/feedback/-/feedback-8.30.0.tgz#6f78a245298502e4cc5ce77313dde6965abfecfe"
- integrity sha512-ParFRxQY6helxkwUDmro77Wc5uSIC6rZos88jYMrYwFmoTJaNWf4lDzPyECfdSiSYyzSMZk4dorSUN85Ul7DCg==
+"@sentry-internal/feedback@8.31.0":
+ version "8.31.0"
+ resolved "https://registry.yarnpkg.com/@sentry-internal/feedback/-/feedback-8.31.0.tgz#36135365eb1f4226ed4f5c4446263eef2461dc6e"
+ integrity sha512-R3LcC2IaTe8lgi5AU9h0rMgyVPpaTiMSLRhRlVeQPVmAKCz8pSG/um13q37t0BsXpTaImW9yYQ71Aj6h6IrShQ==
dependencies:
- "@sentry/core" "8.30.0"
- "@sentry/types" "8.30.0"
- "@sentry/utils" "8.30.0"
+ "@sentry/core" "8.31.0"
+ "@sentry/types" "8.31.0"
+ "@sentry/utils" "8.31.0"
-"@sentry-internal/replay-canvas@8.30.0":
- version "8.30.0"
- resolved "https://registry.yarnpkg.com/@sentry-internal/replay-canvas/-/replay-canvas-8.30.0.tgz#3630eec14d23b1fd368d8c331ee695aa5bb41425"
- integrity sha512-y/QqcvchhtMlVA6eOZicIfTxtZarazQZJuFW0018ynPxBTiuuWSxMCLqduulXUYsFejfD8/eKHb3BpCIFdDYjg==
+"@sentry-internal/replay-canvas@8.31.0":
+ version "8.31.0"
+ resolved "https://registry.yarnpkg.com/@sentry-internal/replay-canvas/-/replay-canvas-8.31.0.tgz#368d2169757c7254634ca968a6ce8262f18f3b03"
+ integrity sha512-ConyrhWozx4HluRj0+9teN4XTC1ndXjxMdJQvDnbLFsQhCCEdwUfaZVshV1CFe9T08Bfyjruaw33yR7pDXYktw==
dependencies:
- "@sentry-internal/replay" "8.30.0"
- "@sentry/core" "8.30.0"
- "@sentry/types" "8.30.0"
- "@sentry/utils" "8.30.0"
+ "@sentry-internal/replay" "8.31.0"
+ "@sentry/core" "8.31.0"
+ "@sentry/types" "8.31.0"
+ "@sentry/utils" "8.31.0"
-"@sentry-internal/replay@8.30.0":
- version "8.30.0"
- resolved "https://registry.yarnpkg.com/@sentry-internal/replay/-/replay-8.30.0.tgz#6a4a8bd551a16ea5f77f913acbccd88061868c84"
- integrity sha512-/KFre+BrovPCiovgAu5N1ErJtkDVzkJA5hV3Jw011AlxRWxrmPwu6+9sV9/rn3tqYAGyq6IggYqeIOHhLh1Ihg==
+"@sentry-internal/replay@8.31.0":
+ version "8.31.0"
+ resolved "https://registry.yarnpkg.com/@sentry-internal/replay/-/replay-8.31.0.tgz#0ee6b0c9f7b62caf8282576d53e1b6801449e495"
+ integrity sha512-r8hmFDwWxeAxpdzBCRWTKQ/QHl8QanFw8XfM0fvFes/H1d/b43Vwc/IiUnsYoMOdooIP8hJFGDKlfq+Y5uVVGA==
dependencies:
- "@sentry-internal/browser-utils" "8.30.0"
- "@sentry/core" "8.30.0"
- "@sentry/types" "8.30.0"
- "@sentry/utils" "8.30.0"
+ "@sentry-internal/browser-utils" "8.31.0"
+ "@sentry/core" "8.31.0"
+ "@sentry/types" "8.31.0"
+ "@sentry/utils" "8.31.0"
-"@sentry/browser@8.30.0":
- version "8.30.0"
- resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-8.30.0.tgz#3c6d5ef62d7daca2873b47f59b136c33941b56de"
- integrity sha512-M+tKqawH9S3CqlAIcqdZcHbcsNQkEa9MrPqPCYvXco3C4LRpNizJP2XwBiGQY2yK+fOSvbaWpPtlI938/wuRZQ==
+"@sentry/browser@8.31.0":
+ version "8.31.0"
+ resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-8.31.0.tgz#9c1452e05046d50f74229961590286bdb5fb22ac"
+ integrity sha512-LZK0uLPGB4Al+qWc1eaad+H/1SR6CY9a0V2XWpUbNAT3+VkEo0Z/78bW1kb43N0cok87hNPOe+c66SfwdxphVQ==
dependencies:
- "@sentry-internal/browser-utils" "8.30.0"
- "@sentry-internal/feedback" "8.30.0"
- "@sentry-internal/replay" "8.30.0"
- "@sentry-internal/replay-canvas" "8.30.0"
- "@sentry/core" "8.30.0"
- "@sentry/types" "8.30.0"
- "@sentry/utils" "8.30.0"
+ "@sentry-internal/browser-utils" "8.31.0"
+ "@sentry-internal/feedback" "8.31.0"
+ "@sentry-internal/replay" "8.31.0"
+ "@sentry-internal/replay-canvas" "8.31.0"
+ "@sentry/core" "8.31.0"
+ "@sentry/types" "8.31.0"
+ "@sentry/utils" "8.31.0"
-"@sentry/core@8.30.0":
- version "8.30.0"
- resolved "https://registry.yarnpkg.com/@sentry/core/-/core-8.30.0.tgz#f929e42e9a537bfa3eb6024082714e9ab98d822b"
- integrity sha512-CJ/FuWLw0QEKGKXGL/nm9eaOdajEcmPekLuHAuOCxID7N07R9l9laz3vFbAkUZ97GGDv3sYrJZgywfY3Moropg==
+"@sentry/core@8.31.0":
+ version "8.31.0"
+ resolved "https://registry.yarnpkg.com/@sentry/core/-/core-8.31.0.tgz#09435534967c4f7254ea1015ef2b3a3bfed18434"
+ integrity sha512-5zsMBOML18e5a/ZoR5XpcYF59e2kSxb6lTg13u52f/+NA27EPgxKgXim5dz6L/6+0cizgwwmFaZFGJiFc2qoAA==
dependencies:
- "@sentry/types" "8.30.0"
- "@sentry/utils" "8.30.0"
+ "@sentry/types" "8.31.0"
+ "@sentry/utils" "8.31.0"
-"@sentry/react@^8.30.0":
- version "8.30.0"
- resolved "https://registry.yarnpkg.com/@sentry/react/-/react-8.30.0.tgz#fe24964d3f5e963749d8a11b45332cea85bd9ac4"
- integrity sha512-ktQjXs87jdsxW0YrHci3sb6zcSzhMECWnrTVU/KGZF8UoDsk4P4xRCknijd2SSmDIjSkwzUAANR43UkCi4BTQg==
+"@sentry/react@^8.31.0":
+ version "8.31.0"
+ resolved "https://registry.yarnpkg.com/@sentry/react/-/react-8.31.0.tgz#d39d8f6d6ebd7e9dba088f7c25e520ce2dcdb09a"
+ integrity sha512-geMQNbkJMGREC1TpSWn1Yr+hGOERO13gPqh3aQBpTF0GEDXbmVwX2U/+6wqXCVICGbKujDroReRBRLqk3fmWSA==
dependencies:
- "@sentry/browser" "8.30.0"
- "@sentry/core" "8.30.0"
- "@sentry/types" "8.30.0"
- "@sentry/utils" "8.30.0"
+ "@sentry/browser" "8.31.0"
+ "@sentry/core" "8.31.0"
+ "@sentry/types" "8.31.0"
+ "@sentry/utils" "8.31.0"
hoist-non-react-statics "^3.3.2"
-"@sentry/types@8.30.0":
- version "8.30.0"
- resolved "https://registry.yarnpkg.com/@sentry/types/-/types-8.30.0.tgz#5f5011f5b16bafd30a039ca5e8c337e948c703fb"
- integrity sha512-kgWW2BCjBmVlSQRG32GonHEVyeDbys74xf9mLPvynwHTgw3+NUlNAlEdu05xnb2ow4bCTHfbkS5G1zRgyv5k4Q==
+"@sentry/types@8.31.0":
+ version "8.31.0"
+ resolved "https://registry.yarnpkg.com/@sentry/types/-/types-8.31.0.tgz#b1ca002df2c8840c3b491ceb019925ff504306f8"
+ integrity sha512-prRM/n5nlP+xQZSpdEkSR8BwwZtgsLk0NbI8eCjTMu2isVlrlggop8pVaJb7y9HmElVtDA1Q6y4u8TD2htQKFQ==
-"@sentry/utils@8.30.0":
- version "8.30.0"
- resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-8.30.0.tgz#2343dd8593ea83890b3e0d792ed3fa257955a26b"
- integrity sha512-wZxU2HWlzsnu8214Xy7S7cRIuD6h8Z5DnnkojJfX0i0NLooepZQk2824el1Q13AakLb7/S8CHSHXOMnCtoSduw==
+"@sentry/utils@8.31.0":
+ version "8.31.0"
+ resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-8.31.0.tgz#56d44250f685bcc56cbf2f8837ffa88ed7e754a2"
+ integrity sha512-9W2LZ9QIHKc0HSyH/7UmTolc01Q4vX/qMSZk7i1noinlkQtnRUmTP39r1DSITjKCrDHj6zvB/J1RPDUoRcTXxQ==
dependencies:
- "@sentry/types" "8.30.0"
+ "@sentry/types" "8.31.0"
"@sinclair/typebox@^0.27.8":
version "0.27.8"
@@ -1744,10 +1744,10 @@
resolved "https://registry.yarnpkg.com/@types/marked/-/marked-4.3.2.tgz#e2e0ad02ebf5626bd215c5bae2aff6aff0ce9eac"
integrity sha512-a79Yc3TOk6dGdituy8hmTTJXjOkZ7zsFYV10L337ttq/rec8lRMDBpV7fL3uLx6TgbFCa5DU/h8FmIBQPSbU0w==
-"@types/node@*", "@types/node@^22.5.5":
- version "22.5.5"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-22.5.5.tgz#52f939dd0f65fc552a4ad0b392f3c466cc5d7a44"
- integrity sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA==
+"@types/node@*", "@types/node@^22.6.0":
+ version "22.6.0"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-22.6.0.tgz#b604c9a628760221905c1b272fd6aee661f45042"
+ integrity sha512-QyR8d5bmq+eR72TwQDfujwShHMcIrWIYsaQFtXRE58MHPTEKUNxjxvl0yS0qPMds5xbSDWtp7ZpvGFtd7dfMdQ==
dependencies:
undici-types "~6.19.2"
@@ -1813,10 +1813,10 @@
dependencies:
"@types/react" "*"
-"@types/react@*", "@types/react@^18.3.6":
- version "18.3.6"
- resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.6.tgz#1cb5895c5ea0d99d8bc7d659e42f72713cbd3942"
- integrity sha512-CnGaRYNu2iZlkGXGrOYtdg5mLK8neySj0woZ4e2wF/eli2E6Sazmq5X+Nrj6OBrrFVQfJWTUFeqAzoRhWQXYvg==
+"@types/react@*", "@types/react@^18.3.8":
+ version "18.3.8"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.8.tgz#1672ab19993f8aca7c7dc844c07d5d9e467d5a79"
+ integrity sha512-syBUrW3/XpnW4WJ41Pft+I+aPoDVbrBVQGEnbD7NijDGlVC+8gV/XKRY+7vMDlfPpbwYt0l1vd/Sj8bJGMbs9Q==
dependencies:
"@types/prop-types" "*"
csstype "^3.0.2"
@@ -1845,10 +1845,10 @@
dependencies:
"@types/yargs-parser" "*"
-"@uiw/codemirror-extensions-basic-setup@4.23.2":
- version "4.23.2"
- resolved "https://registry.yarnpkg.com/@uiw/codemirror-extensions-basic-setup/-/codemirror-extensions-basic-setup-4.23.2.tgz#90772ca73424d797bfae94aaa9a1b61ce0203c6c"
- integrity sha512-eacivkj7wzskl2HBYs4rfN0CbYlsSQh5ADtOYWTpc8Txm4ONw8RTi4/rxF6Ks2vdaovizewU5QaHximbxoNTrw==
+"@uiw/codemirror-extensions-basic-setup@4.23.3":
+ version "4.23.3"
+ resolved "https://registry.yarnpkg.com/@uiw/codemirror-extensions-basic-setup/-/codemirror-extensions-basic-setup-4.23.3.tgz#f2dec646a6a1a6072b8b73e67372cb9cd178537e"
+ integrity sha512-nEMjgbCyeLx+UQgOGAAoUWYFE34z5TlyaKNszuig/BddYFDb0WKcgmC37bDFxR2dZssf3K/lwGWLpXnGKXePbA==
dependencies:
"@codemirror/autocomplete" "^6.0.0"
"@codemirror/commands" "^6.0.0"
@@ -1858,32 +1858,32 @@
"@codemirror/state" "^6.0.0"
"@codemirror/view" "^6.0.0"
-"@uiw/codemirror-theme-vscode@^4.23.2":
- version "4.23.2"
- resolved "https://registry.yarnpkg.com/@uiw/codemirror-theme-vscode/-/codemirror-theme-vscode-4.23.2.tgz#7599ce4edf718d60fed23f2b034f5a444052b9ee"
- integrity sha512-SpXlCOCtuu8zTiTO6Cs8Oa5/czItZ59t5MfocJmjOFVN3C22VIR0oXqi375fTl+YS9Mw2+TaOSuIzuzkXH1OEQ==
+"@uiw/codemirror-theme-vscode@^4.23.3":
+ version "4.23.3"
+ resolved "https://registry.yarnpkg.com/@uiw/codemirror-theme-vscode/-/codemirror-theme-vscode-4.23.3.tgz#7d7132d6a923cb3493e8e24d4fad79a06c26d7d1"
+ integrity sha512-HrJmrbF0VUfE16Gt6K5czJZVl2RpcadnWDA8Lz2aQO25myNt8K1GgsP8GJ/ss7Z413i+Z2irzi6Wjq5YK9IA7g==
dependencies:
- "@uiw/codemirror-themes" "4.23.2"
+ "@uiw/codemirror-themes" "4.23.3"
-"@uiw/codemirror-themes@4.23.2":
- version "4.23.2"
- resolved "https://registry.yarnpkg.com/@uiw/codemirror-themes/-/codemirror-themes-4.23.2.tgz#67c40eed4675fa803289068f54ef4f97e1cd31d1"
- integrity sha512-g8x+oPqgbzxXSkHhRf7e1AM1mI9/Nl3URReS89pHitRKv8MZNrE+ey+HE8ycfNXRUatrb6zTSRV3M75uoZwNYw==
+"@uiw/codemirror-themes@4.23.3":
+ version "4.23.3"
+ resolved "https://registry.yarnpkg.com/@uiw/codemirror-themes/-/codemirror-themes-4.23.3.tgz#5ee8cc289532c7950a725d2eda74d670b693897e"
+ integrity sha512-oUq2qoj+hMrR34Xhbp7S1P2elPtySWyzij97IwsZAdGZD/yS+c9+2yRSMYqtaWh7D9M4sJmwgU1lZibmwLZOfQ==
dependencies:
"@codemirror/language" "^6.0.0"
"@codemirror/state" "^6.0.0"
"@codemirror/view" "^6.0.0"
-"@uiw/react-codemirror@^4.23.2":
- version "4.23.2"
- resolved "https://registry.yarnpkg.com/@uiw/react-codemirror/-/react-codemirror-4.23.2.tgz#0b9078d0fc086ca7b75a3aa0eb3942c42919c156"
- integrity sha512-MmFL6P5V1Mr81JLkJyWNedfxENKdRhsvyU7Izji9wp337m8dqRAz7rCF5XWarGKx+iQ7q2H5ryl07nLqKLSvtQ==
+"@uiw/react-codemirror@^4.23.3":
+ version "4.23.3"
+ resolved "https://registry.yarnpkg.com/@uiw/react-codemirror/-/react-codemirror-4.23.3.tgz#2febc96478e206d704a8810306b9beab1ee76af1"
+ integrity sha512-TBBLUbeqXmfQSfO+f3rPNOAb+QXbSm7KPB64FHQWLGg2WJNbpOhjLOWMyL+C4ZP3aSCNc2Y5aftEK1vp3wCKTA==
dependencies:
"@babel/runtime" "^7.18.6"
"@codemirror/commands" "^6.1.0"
"@codemirror/state" "^6.1.1"
"@codemirror/theme-one-dark" "^6.0.0"
- "@uiw/codemirror-extensions-basic-setup" "4.23.2"
+ "@uiw/codemirror-extensions-basic-setup" "4.23.3"
codemirror "^6.0.0"
"@uiw/react-split@^5.9.3":
@@ -2782,10 +2782,10 @@ fast-equals@^5.0.1:
resolved "https://registry.yarnpkg.com/fast-equals/-/fast-equals-5.0.1.tgz#a4eefe3c5d1c0d021aeed0bc10ba5e0c12ee405d"
integrity sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ==
-fdir@6.1.1:
- version "6.1.1"
- resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.1.1.tgz#316b58145a05223b75c8b371e80bb3bad8f1441e"
- integrity sha512-QfKBVg453Dyn3mr0Q0O+Tkr1r79lOTAKSi9f/Ot4+qVEwxWhav2Z+SudrG9vQjM2aYRMQQZ2/Q1zdA8ACM1pDg==
+fdir@6.3.0:
+ version "6.3.0"
+ resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.3.0.tgz#fcca5a23ea20e767b15e081ee13b3e6488ee0bb0"
+ integrity sha512-QOnuT+BOtivR77wYvCWHfGt9s4Pz1VIMbD463vegT5MLqNXy8rYFT/lPVEqf/bhYeT6qmqrNHhsX+rWwe3rOCQ==
figures@^3.0.0:
version "3.2.0"
@@ -2851,6 +2851,14 @@ foreground-child@^2.0.0:
cross-spawn "^7.0.0"
signal-exit "^3.0.2"
+foreground-child@^3.3.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.0.tgz#0ac8644c06e431439f8561db8ecf29a7b5519c77"
+ integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==
+ dependencies:
+ cross-spawn "^7.0.0"
+ signal-exit "^4.0.1"
+
form-data@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
@@ -3475,10 +3483,10 @@ normalize-path@^3.0.0, normalize-path@~3.0.0:
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
-nyc@^17.0.0:
- version "17.0.0"
- resolved "https://registry.yarnpkg.com/nyc/-/nyc-17.0.0.tgz#d8943407584242a448a70290b15bb72207fac9fd"
- integrity sha512-ISp44nqNCaPugLLGGfknzQwSwt10SSS5IMoPR7GLoMAyS18Iw5js8U7ga2VF9lYuMZ42gOHr3UddZw4WZltxKg==
+nyc@^17.1.0:
+ version "17.1.0"
+ resolved "https://registry.yarnpkg.com/nyc/-/nyc-17.1.0.tgz#b6349a401a62ffeb912bd38ea9a018839fdb6eb1"
+ integrity sha512-U42vQ4czpKa0QdI1hu950XuNhYqgoM+ZF1HT+VuUHL9hPfDPVvNQyltmMqdE9bUHMVa+8yNbc3QKTj8zQhlVxQ==
dependencies:
"@istanbuljs/load-nyc-config" "^1.0.0"
"@istanbuljs/schema" "^0.1.2"
@@ -3487,7 +3495,7 @@ nyc@^17.0.0:
decamelize "^1.2.0"
find-cache-dir "^3.2.0"
find-up "^4.1.0"
- foreground-child "^2.0.0"
+ foreground-child "^3.3.0"
get-package-type "^0.1.0"
glob "^7.1.6"
istanbul-lib-coverage "^3.0.0"
@@ -3694,17 +3702,17 @@ pkg-up@^3.1.0:
dependencies:
find-up "^3.0.0"
-playwright-core@1.47.1:
- version "1.47.1"
- resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.47.1.tgz#bb45bdfb0d48412c535501aa3805867282857df8"
- integrity sha512-i1iyJdLftqtt51mEk6AhYFaAJCDx0xQ/O5NU8EKaWFgMjItPVma542Nh/Aq8aLCjIJSzjaiEQGW/nyqLkGF1OQ==
+playwright-core@1.47.2:
+ version "1.47.2"
+ resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.47.2.tgz#7858da9377fa32a08be46ba47d7523dbd9460a4e"
+ integrity sha512-3JvMfF+9LJfe16l7AbSmU555PaTl2tPyQsVInqm3id16pdDfvZ8TTZ/pyzmkbDrZTQefyzU7AIHlZqQnxpqHVQ==
-playwright@1.47.1:
- version "1.47.1"
- resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.47.1.tgz#cdc1116f5265b8d2ff7be0d8942d49900634dc6c"
- integrity sha512-SUEKi6947IqYbKxRiqnbUobVZY4bF1uu+ZnZNJX9DfU1tlf2UhWfvVjLf01pQx9URsOr18bFVUKXmanYWhbfkw==
+playwright@1.47.2:
+ version "1.47.2"
+ resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.47.2.tgz#155688aa06491ee21fb3e7555b748b525f86eb20"
+ integrity sha512-nx1cLMmQWqmA3UsnjaaokyoUpdVaaDhJhMoxX2qj3McpjnsqFHs516QAKYhqHAgOP+oCFTEOCOAaD1RgD/RQfA==
dependencies:
- playwright-core "1.47.1"
+ playwright-core "1.47.2"
optionalDependencies:
fsevents "2.3.2"
@@ -3899,10 +3907,10 @@ react-router@6.26.2:
dependencies:
"@remix-run/router" "1.19.2"
-react-select@^5.8.0:
- version "5.8.0"
- resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.8.0.tgz#bd5c467a4df223f079dd720be9498076a3f085b5"
- integrity sha512-TfjLDo58XrhP6VG5M/Mi56Us0Yt8X7xD6cDybC7yoRMUNm7BGO7qk8J0TLQOua/prb8vUOtsfnXZwfm30HGsAA==
+react-select@^5.8.1:
+ version "5.8.1"
+ resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.8.1.tgz#3284a93b7633b5e893306b2a8007ea0f793e62b9"
+ integrity sha512-RT1CJmuc+ejqm5MPgzyZujqDskdvB9a9ZqrdnVLsvAHjJ3Tj0hELnLeVPQlmYdVKCdCpxanepl6z7R5KhXhWzg==
dependencies:
"@babel/runtime" "^7.12.0"
"@emotion/cache" "^11.4.0"
@@ -4076,13 +4084,13 @@ rimraf@^3.0.0:
dependencies:
glob "^7.1.3"
-rollup-plugin-license@^3.5.2:
- version "3.5.2"
- resolved "https://registry.yarnpkg.com/rollup-plugin-license/-/rollup-plugin-license-3.5.2.tgz#958f52cfde78a38ce328c0e66632a4394ebe7d1d"
- integrity sha512-NNeXBcE6RyQdZdSC8Vxe8Cheax2aUa/K0Ok6JDZwr9isjkSDer4aMg0sovas1Ua76ojLZX1BrNQ6ZFspztKkZQ==
+rollup-plugin-license@^3.5.3:
+ version "3.5.3"
+ resolved "https://registry.yarnpkg.com/rollup-plugin-license/-/rollup-plugin-license-3.5.3.tgz#b02ffa4fd4c81464db450d06478e03e5605d9d5f"
+ integrity sha512-r3wImZSo2d6sEk9BRJtlzeI/upjyjnpthy06Fdl0EzqRrlg3ULb9KQR7xHJI0zuayW/8bchEXSF5dO6dha4OyA==
dependencies:
commenting "~1.1.0"
- fdir "6.1.1"
+ fdir "6.3.0"
lodash "~4.17.21"
magic-string "~0.30.0"
moment "~2.30.1"
@@ -4091,28 +4099,28 @@ rollup-plugin-license@^3.5.2:
spdx-satisfies "~5.0.1"
rollup@^4.20.0:
- version "4.21.2"
- resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.21.2.tgz#f41f277a448d6264e923dd1ea179f0a926aaf9b7"
- integrity sha512-e3TapAgYf9xjdLvKQCkQTnbTKd4a6jwlpQSJJFokHGaX2IVjoEqkIIhiQfqsi0cdwlOD+tQGuOd5AJkc5RngBw==
+ version "4.22.4"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.22.4.tgz#4135a6446671cd2a2453e1ad42a45d5973ec3a0f"
+ integrity sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==
dependencies:
"@types/estree" "1.0.5"
optionalDependencies:
- "@rollup/rollup-android-arm-eabi" "4.21.2"
- "@rollup/rollup-android-arm64" "4.21.2"
- "@rollup/rollup-darwin-arm64" "4.21.2"
- "@rollup/rollup-darwin-x64" "4.21.2"
- "@rollup/rollup-linux-arm-gnueabihf" "4.21.2"
- "@rollup/rollup-linux-arm-musleabihf" "4.21.2"
- "@rollup/rollup-linux-arm64-gnu" "4.21.2"
- "@rollup/rollup-linux-arm64-musl" "4.21.2"
- "@rollup/rollup-linux-powerpc64le-gnu" "4.21.2"
- "@rollup/rollup-linux-riscv64-gnu" "4.21.2"
- "@rollup/rollup-linux-s390x-gnu" "4.21.2"
- "@rollup/rollup-linux-x64-gnu" "4.21.2"
- "@rollup/rollup-linux-x64-musl" "4.21.2"
- "@rollup/rollup-win32-arm64-msvc" "4.21.2"
- "@rollup/rollup-win32-ia32-msvc" "4.21.2"
- "@rollup/rollup-win32-x64-msvc" "4.21.2"
+ "@rollup/rollup-android-arm-eabi" "4.22.4"
+ "@rollup/rollup-android-arm64" "4.22.4"
+ "@rollup/rollup-darwin-arm64" "4.22.4"
+ "@rollup/rollup-darwin-x64" "4.22.4"
+ "@rollup/rollup-linux-arm-gnueabihf" "4.22.4"
+ "@rollup/rollup-linux-arm-musleabihf" "4.22.4"
+ "@rollup/rollup-linux-arm64-gnu" "4.22.4"
+ "@rollup/rollup-linux-arm64-musl" "4.22.4"
+ "@rollup/rollup-linux-powerpc64le-gnu" "4.22.4"
+ "@rollup/rollup-linux-riscv64-gnu" "4.22.4"
+ "@rollup/rollup-linux-s390x-gnu" "4.22.4"
+ "@rollup/rollup-linux-x64-gnu" "4.22.4"
+ "@rollup/rollup-linux-x64-musl" "4.22.4"
+ "@rollup/rollup-win32-arm64-msvc" "4.22.4"
+ "@rollup/rollup-win32-ia32-msvc" "4.22.4"
+ "@rollup/rollup-win32-x64-msvc" "4.22.4"
fsevents "~2.3.2"
run-async@^2.4.0:
@@ -4181,6 +4189,11 @@ signal-exit@^3.0.2:
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
+signal-exit@^4.0.1:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
+ integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
+
source-map-js@^1.2.0:
version "1.2.1"
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46"
@@ -4596,10 +4609,10 @@ vite-plugin-istanbul@^6.0.2:
source-map "^0.7.4"
test-exclude "^6.0.0"
-vite@^5.0.0, vite@^5.0.11, vite@^5.4.6:
- version "5.4.6"
- resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.6.tgz#85a93a1228a7fb5a723ca1743e337a2588ed008f"
- integrity sha512-IeL5f8OO5nylsgzd9tq4qD2QqI0k2CQLGrWD0rCN0EQJZpBK5vJAx0I+GDkMOXxQX/OfFHMuLIx6ddAxGX/k+Q==
+vite@^5.0.0, vite@^5.0.11, vite@^5.4.7:
+ version "5.4.7"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.7.tgz#d226f57c08b61379e955f3836253ed3efb2dcf00"
+ integrity sha512-5l2zxqMEPVENgvzTuBpHer2awaetimj2BGkhBPdnwKbPNOlHsODU+oiazEZzLK7KhAnOrO+XGYJYn4ZlUhDtDQ==
dependencies:
esbuild "^0.21.3"
postcss "^8.4.43"