diff --git a/.github/workflows/testcafe_tests.yml b/.github/workflows/testcafe_tests.yml index b57aae70df2c..164703f8f47d 100644 --- a/.github/workflows/testcafe_tests.yml +++ b/.github/workflows/testcafe_tests.yml @@ -216,7 +216,7 @@ jobs: [ "${{ matrix.ARGS.platform }}" != "" ] && PLATFORM="--platform ${{ matrix.ARGS.platform }}" all_args="--browsers=chrome:devextreme-shr2 --componentFolder ${{ matrix.ARGS.componentFolder }} $CONCURRENCY $INDICES $PLATFORM $THEME" echo "$all_args" - pnpx nx test $all_args + pnpm run test $all_args - name: Copy compared screenshot artifacts if: ${{ failure() }} diff --git a/apps/demos/Demos/Chat/AIAndChatbotIntegration/React/App.tsx b/apps/demos/Demos/Chat/AIAndChatbotIntegration/React/App.tsx index 78e60d3e670b..431be0ea9046 100644 --- a/apps/demos/Demos/Chat/AIAndChatbotIntegration/React/App.tsx +++ b/apps/demos/Demos/Chat/AIAndChatbotIntegration/React/App.tsx @@ -1,22 +1,14 @@ -import React, { useState } from 'react'; +import React, { useCallback, useState } from 'react'; import Chat, { ChatTypes } from 'devextreme-react/chat'; -import { AzureOpenAI } from 'openai'; import { MessageEnteredEvent } from 'devextreme/ui/chat'; -import CustomStore from 'devextreme/data/custom_store'; -import DataSource from 'devextreme/data/data_source'; import { loadMessages } from 'devextreme/localization'; -import { +import { user, assistant, - AzureOpenAIConfig, - REGENERATION_TEXT, CHAT_DISABLED_CLASS, - ALERT_TIMEOUT } from './data.ts'; import Message from './Message.tsx'; - -const store = []; -const messages = []; +import { dataSource, useApi } from './useApi.ts'; loadMessages({ en: { @@ -26,148 +18,49 @@ loadMessages({ }, }); -const chatService = new AzureOpenAI(AzureOpenAIConfig); - -async function getAIResponse(messages) { - const params = { - messages, - model: AzureOpenAIConfig.deployment, - max_tokens: 1000, - temperature: 0.7, - }; - - const response = await chatService.chat.completions.create(params); - const data = { choices: response.choices }; - - return data.choices[0].message?.content; -} - -function updateLastMessage(text = REGENERATION_TEXT) { - const items = dataSource.items(); - const lastMessage = items.at(-1); - - dataSource.store().push([{ - type: 'update', - key: lastMessage.id, - data: { text }, - }]); -} - -function renderAssistantMessage(text) { - const message = { - id: Date.now(), - timestamp: new Date(), - author: assistant, - text, - }; - - dataSource.store().push([{ type: 'insert', data: message }]); -} +export default function App() { + const { + alerts, insertMessage, fetchAIResponse, regenerateLastAIResponse, + } = useApi(); -const customStore = new CustomStore({ - key: 'id', - load: () => { - return new Promise((resolve) => { - setTimeout(() => { - resolve([...store]); - }, 0); - }); - }, - insert: (message) => { - return new Promise((resolve) => { - setTimeout(() => { - store.push(message); - resolve(message); - }); - }); - }, -}); + const [typingUsers, setTypingUsers] = useState([]); + const [isProcessing, setIsProcessing] = useState(false); -const dataSource = new DataSource({ - store: customStore, - paginate: false, -}) + const processAIRequest = useCallback(async (message: ChatTypes.Message): Promise => { + setIsProcessing(true); + setTypingUsers([assistant]); -export default function App() { - const [alerts, setAlerts] = useState([]); - const [typingUsers, setTypingUsers] = useState([]); - const [classList, setClassList] = useState(''); + await fetchAIResponse(message); - function alertLimitReached() { - setAlerts([{ - message: 'Request limit reached, try again in a minute.' - }]); - - setTimeout(() => { - setAlerts([]); - }, ALERT_TIMEOUT); - } + setTypingUsers([]); + setIsProcessing(false); + }, [fetchAIResponse]); - function toggleDisabledState(disabled: boolean, event = undefined) { - setClassList(disabled ? CHAT_DISABLED_CLASS : ''); + const onMessageEntered = useCallback(async ({ message, event }: MessageEnteredEvent): Promise => { + insertMessage({ id: Date.now(), ...message }); - if (disabled) { - event?.target.blur(); - } else { - event?.target.focus(); - } - }; + if (!alerts.length) { + (event.target as HTMLElement).blur(); - async function processMessageSending(message, event) { - toggleDisabledState(true, event); + await processAIRequest(message); - messages.push({ role: 'user', content: message.text }); - setTypingUsers([assistant]); - - try { - const aiResponse = await getAIResponse(messages); - - setTimeout(() => { - setTypingUsers([]); - messages.push({ role: 'assistant', content: aiResponse }); - renderAssistantMessage(aiResponse); - }, 200); - } catch { - setTypingUsers([]); - messages.pop(); - alertLimitReached(); - } finally { - toggleDisabledState(false, event); + (event.target as HTMLElement).focus(); } - } - - async function regenerate() { - toggleDisabledState(true); + }, [insertMessage, alerts.length, processAIRequest]); - try { - const aiResponse = await getAIResponse(messages.slice(0, -1)); + const onRegenerateButtonClick = useCallback(async (): Promise => { + setIsProcessing(true); - updateLastMessage(aiResponse); - messages.at(-1).content = aiResponse; - } catch { - updateLastMessage(messages.at(-1).content); - alertLimitReached(); - } finally { - toggleDisabledState(false); - } - } + await regenerateLastAIResponse(); - function onMessageEntered({ message, event }: MessageEnteredEvent) { - dataSource.store().push([{ type: 'insert', data: { id: Date.now(), ...message } }]); - - if (!alerts.length) { - processMessageSending(message, event); - } - } + setIsProcessing(false); + }, [regenerateLastAIResponse]); - function onRegenerateButtonClick() { - updateLastMessage(); - regenerate(); - } + const messageRender = useCallback(({ message }: { message: ChatTypes.Message }) => , [onRegenerateButtonClick]); return ( Message(data, onRegenerateButtonClick)} + messageRender={messageRender} /> ); } diff --git a/apps/demos/Demos/Chat/AIAndChatbotIntegration/React/Message.tsx b/apps/demos/Demos/Chat/AIAndChatbotIntegration/React/Message.tsx index 262cffe611e9..4ecde4813270 100644 --- a/apps/demos/Demos/Chat/AIAndChatbotIntegration/React/Message.tsx +++ b/apps/demos/Demos/Chat/AIAndChatbotIntegration/React/Message.tsx @@ -1,4 +1,4 @@ -import React, { useState } from 'react'; +import React, { useCallback, useState, FC } from 'react'; import Button from 'devextreme-react/button'; import { unified } from 'unified'; import remarkParse from 'remark-parse'; @@ -6,58 +6,62 @@ import remarkRehype from 'remark-rehype'; import rehypeStringify from 'rehype-stringify'; import HTMLReactParser from 'html-react-parser'; +import { Properties as dxButtonProperties } from 'devextreme/ui/button'; import { REGENERATION_TEXT } from './data.ts'; -function convertToHtml(value: string) { - const result = unified() - .use(remarkParse) - .use(remarkRehype) - .use(rehypeStringify) - .processSync(value) - .toString(); +function convertToHtml(value: string): string { + const result = unified() + .use(remarkParse) + .use(remarkRehype) + .use(rehypeStringify) + .processSync(value) + .toString(); - return result; + return result; } -function Message({ message }, onRegenerateButtonClick) { - const [icon, setIcon] = useState('copy'); - - if (message.text === REGENERATION_TEXT) { - return {REGENERATION_TEXT}; - } - - function onCopyButtonClick() { - navigator.clipboard?.writeText(message.text); - setIcon('check'); - - setTimeout(() => { - setIcon('copy'); - }, 2500); - } - - return ( - -
- {HTMLReactParser(convertToHtml(message.text))} -
-
-
-
- ) +interface MessageProps { + text: string; + onRegenerateButtonClick: dxButtonProperties['onClick']; } +const Message: FC = ({ text, onRegenerateButtonClick }) => { + const [icon, setIcon] = useState('copy'); + + const onCopyButtonClick = useCallback(() => { + navigator.clipboard?.writeText(text); + setIcon('check'); + + setTimeout(() => { + setIcon('copy'); + }, 2500); + }, [text]); + + if (text === REGENERATION_TEXT) { + return {REGENERATION_TEXT}; + } + + return ( + +
+ {HTMLReactParser(convertToHtml(text))} +
+
+
+
+ ); +}; + export default Message; diff --git a/apps/demos/Demos/Chat/AIAndChatbotIntegration/React/useApi.ts b/apps/demos/Demos/Chat/AIAndChatbotIntegration/React/useApi.ts new file mode 100644 index 000000000000..8a157373224e --- /dev/null +++ b/apps/demos/Demos/Chat/AIAndChatbotIntegration/React/useApi.ts @@ -0,0 +1,133 @@ +import { useCallback, useState } from 'react'; +import { AzureOpenAI, OpenAI } from 'openai'; +import { ChatTypes } from 'devextreme-react/chat'; +import CustomStore from 'devextreme/data/custom_store'; +import DataSource from 'devextreme/data/data_source'; +import { + ALERT_TIMEOUT, assistant, + AzureOpenAIConfig, REGENERATION_TEXT, +} from './data.ts'; + +type Message = (OpenAI.ChatCompletionUserMessageParam | OpenAI.ChatCompletionAssistantMessageParam) & { + content: string; +}; + +const chatService = new AzureOpenAI(AzureOpenAIConfig); + +const wait = (delay: number): Promise => + new Promise((resolve) => { + setTimeout(resolve, delay); + }); + +export async function getAIResponse(messages: Message[], delay?: number): Promise { + const params = { + messages, + model: AzureOpenAIConfig.deployment, + max_tokens: 1000, + temperature: 0.7, + }; + + const response = await chatService.chat.completions.create(params); + const data = { choices: response.choices }; + + if (delay) { + await wait(delay); + } + + return data.choices[0].message?.content; +} + +const store: ChatTypes.Message[] = []; + +const customStore = new CustomStore({ + key: 'id', + load: (): Promise => new Promise((resolve) => { + setTimeout(() => { + resolve([...store]); + }, 0); + }), + insert: (message: ChatTypes.Message): Promise => new Promise((resolve) => { + setTimeout(() => { + store.push(message); + resolve(message); + }); + }), +}); + +export const dataSource = new DataSource({ + store: customStore, + paginate: false, +}); + +const dataItemToMessage = (item: ChatTypes.Message): Message => ({ + role: item.author.id as Message['role'], + content: item.text, +}); + +const getMessageHistory = (): Message[] => [...dataSource.items()].map(dataItemToMessage); + +export const useApi = () => { + const [alerts, setAlerts] = useState([]); + + const insertMessage = useCallback((data: ChatTypes.Message): void => { + dataSource.store().push([{ type: 'insert', data }]); + }, []); + + const updateLastMessageContent = useCallback((text: string): void => { + const lastMessage = dataSource.items().at(-1); + + dataSource.store().push([{ + type: 'update', + key: lastMessage.id, + data: { text }, + }]); + }, []); + + const alertLimitReached = useCallback((): void => { + setAlerts([{ + message: 'Request limit reached, try again in a minute.', + }]); + + setTimeout(() => { + setAlerts([]); + }, ALERT_TIMEOUT); + }, []); + + const fetchAIResponse = useCallback(async (message: ChatTypes.Message): Promise => { + const messages = [...getMessageHistory(), dataItemToMessage(message)]; + + try { + const aiResponse = await getAIResponse(messages, 200); + + insertMessage({ + id: Date.now(), + timestamp: new Date(), + author: assistant, + text: aiResponse, + }); + } catch { + alertLimitReached(); + } + }, [alertLimitReached, insertMessage]); + + const regenerateLastAIResponse = useCallback(async (): Promise => { + const messageHistory = getMessageHistory(); + updateLastMessageContent(REGENERATION_TEXT); + + try { + const aiResponse = await getAIResponse(messageHistory.slice(0, -1)); + + updateLastMessageContent(aiResponse); + } catch { + updateLastMessageContent(messageHistory.at(-1).content); + alertLimitReached(); + } + }, [alertLimitReached, updateLastMessageContent]); + + return { + alerts, + insertMessage, + fetchAIResponse, + regenerateLastAIResponse, + }; +}; diff --git a/apps/demos/Demos/Chat/AIAndChatbotIntegration/ReactJs/App.js b/apps/demos/Demos/Chat/AIAndChatbotIntegration/ReactJs/App.js index c6754f563b62..658ea8a43d69 100644 --- a/apps/demos/Demos/Chat/AIAndChatbotIntegration/ReactJs/App.js +++ b/apps/demos/Demos/Chat/AIAndChatbotIntegration/ReactJs/App.js @@ -1,21 +1,10 @@ -import React, { useState } from 'react'; +import React, { useCallback, useState } from 'react'; import Chat from 'devextreme-react/chat'; -import { AzureOpenAI } from 'openai'; -import CustomStore from 'devextreme/data/custom_store'; -import DataSource from 'devextreme/data/data_source'; import { loadMessages } from 'devextreme/localization'; -import { - user, - assistant, - AzureOpenAIConfig, - REGENERATION_TEXT, - CHAT_DISABLED_CLASS, - ALERT_TIMEOUT, -} from './data.js'; +import { user, assistant, CHAT_DISABLED_CLASS } from './data.js'; import Message from './Message.js'; +import { dataSource, useApi } from './useApi.js'; -const store = []; -const messages = []; loadMessages({ en: { 'dxChat-emptyListMessage': 'Chat is Empty', @@ -23,123 +12,50 @@ loadMessages({ 'dxChat-textareaPlaceholder': 'Ask AI Assistant...', }, }); -const chatService = new AzureOpenAI(AzureOpenAIConfig); -async function getAIResponse(messages) { - const params = { - messages, - model: AzureOpenAIConfig.deployment, - max_tokens: 1000, - temperature: 0.7, - }; - const response = await chatService.chat.completions.create(params); - const data = { choices: response.choices }; - return data.choices[0].message?.content; -} -function updateLastMessage(text = REGENERATION_TEXT) { - const items = dataSource.items(); - const lastMessage = items.at(-1); - dataSource.store().push([ - { - type: 'update', - key: lastMessage.id, - data: { text }, - }, - ]); -} -function renderAssistantMessage(text) { - const message = { - id: Date.now(), - timestamp: new Date(), - author: assistant, - text, - }; - dataSource.store().push([{ type: 'insert', data: message }]); -} -const customStore = new CustomStore({ - key: 'id', - load: () => new Promise((resolve) => { - setTimeout(() => { - resolve([...store]); - }, 0); - }), - insert: (message) => new Promise((resolve) => { - setTimeout(() => { - store.push(message); - resolve(message); - }); - }), -}); -const dataSource = new DataSource({ - store: customStore, - paginate: false, -}); export default function App() { - const [alerts, setAlerts] = useState([]); + const { + alerts, insertMessage, fetchAIResponse, regenerateLastAIResponse, + } = useApi(); const [typingUsers, setTypingUsers] = useState([]); - const [classList, setClassList] = useState(''); - function alertLimitReached() { - setAlerts([ - { - message: 'Request limit reached, try again in a minute.', - }, - ]); - setTimeout(() => { - setAlerts([]); - }, ALERT_TIMEOUT); - } - function toggleDisabledState(disabled, event = undefined) { - setClassList(disabled ? CHAT_DISABLED_CLASS : ''); - if (disabled) { - event?.target.blur(); - } else { - event?.target.focus(); - } - } - async function processMessageSending(message, event) { - toggleDisabledState(true, event); - messages.push({ role: 'user', content: message.text }); - setTypingUsers([assistant]); - try { - const aiResponse = await getAIResponse(messages); - setTimeout(() => { - setTypingUsers([]); - messages.push({ role: 'assistant', content: aiResponse }); - renderAssistantMessage(aiResponse); - }, 200); - } catch { + const [isProcessing, setIsProcessing] = useState(false); + const processAIRequest = useCallback( + async(message) => { + setIsProcessing(true); + setTypingUsers([assistant]); + await fetchAIResponse(message); setTypingUsers([]); - messages.pop(); - alertLimitReached(); - } finally { - toggleDisabledState(false, event); - } - } - async function regenerate() { - toggleDisabledState(true); - try { - const aiResponse = await getAIResponse(messages.slice(0, -1)); - updateLastMessage(aiResponse); - messages.at(-1).content = aiResponse; - } catch { - updateLastMessage(messages.at(-1).content); - alertLimitReached(); - } finally { - toggleDisabledState(false); - } - } - function onMessageEntered({ message, event }) { - dataSource.store().push([{ type: 'insert', data: { id: Date.now(), ...message } }]); - if (!alerts.length) { - processMessageSending(message, event); - } - } - function onRegenerateButtonClick() { - updateLastMessage(); - regenerate(); - } + setIsProcessing(false); + }, + [fetchAIResponse], + ); + const onMessageEntered = useCallback( + async({ message, event }) => { + insertMessage({ id: Date.now(), ...message }); + if (!alerts.length) { + event.target.blur(); + await processAIRequest(message); + event.target.focus(); + } + }, + [insertMessage, alerts.length, processAIRequest], + ); + const onRegenerateButtonClick = useCallback(async() => { + setIsProcessing(true); + await regenerateLastAIResponse(); + setIsProcessing(false); + }, [regenerateLastAIResponse]); + const messageRender = useCallback( + ({ message }) => ( + + ), + [onRegenerateButtonClick], + ); return ( Message(data, onRegenerateButtonClick)} + messageRender={messageRender} /> ); } diff --git a/apps/demos/Demos/Chat/AIAndChatbotIntegration/ReactJs/Message.js b/apps/demos/Demos/Chat/AIAndChatbotIntegration/ReactJs/Message.js index b81bcc064707..f73cc864c8d5 100644 --- a/apps/demos/Demos/Chat/AIAndChatbotIntegration/ReactJs/Message.js +++ b/apps/demos/Demos/Chat/AIAndChatbotIntegration/ReactJs/Message.js @@ -1,4 +1,4 @@ -import React, { useState } from 'react'; +import React, { useCallback, useState } from 'react'; import Button from 'devextreme-react/button'; import { unified } from 'unified'; import remarkParse from 'remark-parse'; @@ -16,23 +16,21 @@ function convertToHtml(value) { .toString(); return result; } -function Message({ message }, onRegenerateButtonClick) { +const Message = ({ text, onRegenerateButtonClick }) => { const [icon, setIcon] = useState('copy'); - if (message.text === REGENERATION_TEXT) { - return {REGENERATION_TEXT}; - } - function onCopyButtonClick() { - navigator.clipboard?.writeText(message.text); + const onCopyButtonClick = useCallback(() => { + navigator.clipboard?.writeText(text); setIcon('check'); setTimeout(() => { setIcon('copy'); }, 2500); + }, [text]); + if (text === REGENERATION_TEXT) { + return {REGENERATION_TEXT}; } return ( -
- {HTMLReactParser(convertToHtml(message.text))} -
+
{HTMLReactParser(convertToHtml(text))}
+ + ); + }, [copyButtonIcon, onRegenerateButtonClick]); + + return ( +
+ +
+ ); + } +} diff --git a/apps/react-storybook/stories/chat/data.ts b/apps/react-storybook/stories/chat/data.ts index c5e7b209480a..360dd1284693 100644 --- a/apps/react-storybook/stories/chat/data.ts +++ b/apps/react-storybook/stories/chat/data.ts @@ -1,6 +1,7 @@ -import { SchedulerTypes } from 'devextreme-react/scheduler'; import { ChatTypes } from 'devextreme-react/chat'; +export const REGENERATION_TEXT = 'Regeneration...'; + export const firstAuthor: ChatTypes.User = { id: "c94c0e76-fb49-4b9b-8f07-9f93ed93b4f3", name: "John Doe", @@ -22,6 +23,12 @@ export const fourthAuthor: ChatTypes.User = { name: "Crash Bandicoot" }; +export const assistant: ChatTypes.User = { + id: 'assistant', + name: 'Virtual Assistant', + avatarUrl: "https://devexpress.github.io/DevExtreme/images/icons/bot.png", +}; + const todayDate = new Date(); const date = new Date(); @@ -86,3 +93,133 @@ export const initialMessages: ChatTypes.Message[] = [ ]; export const longError = { id: '1234', message: 'Error Message. An unexpected issue occurred while processing your request. Please check your internet connection or contact support for further assistance.' }; + +export const userRequest: ChatTypes.Message = + { + timestamp: todayDate, + author: secondAuthor, + text: "What is AI?" + } +; + +export const regenerationMessage: ChatTypes.Message = { + timestamp: todayDate, + author: assistant, + text: REGENERATION_TEXT, +}; + +export const assistantReplies: ChatTypes.Message[] = [ + { + timestamp: todayDate, + author: assistant, + text: `

Artificial Intelligence (AI) is a branch of computer science that focuses on + creating systems capable of performing tasks that typically require human intelligence. + These tasks include learning, reasoning, problem-solving, understanding natural + language, recognizing patterns, and even making decisions.

+

AI can be divided into several subfields and categories:

+

Types of AI Based on Capability

+
    +
  • Narrow AI (Weak AI): Specialized in performing a single task + or a narrow range of tasks, like language translation, facial recognition, + or recommendation systems. Most AI systems today fall into this category. +
  • +
  • General AI (Strong AI): A hypothetical form of AI that possesses + the ability to understand, learn, and apply knowledge across a broad range + of tasks, much like a human being. +
  • +
  • Superintelligent AI: A theoretical concept where AI surpasses + human intelligence across all domains, potentially transforming or outstripping + human capabilities. +
  • +
+

AI continues to evolve, impacting nearly every aspect of modern life while raising + ethical, societal, and technological challenges.

`.replace(/\s{2,}/gm, ''), + }, + { + timestamp: todayDate, + author: assistant, + text: `

Artificial Intelligence (AI) is a branch of computer science that focuses on + creating systems capable of performing tasks that typically require human intelligence. + These tasks include learning, reasoning, problem-solving, understanding natural + language, recognizing patterns, and even making decisions.

+

AI can be divided into several subfields and categories:

+

Types of AI Based on Functionality

+
    +
  1. Reactive Machines: AI systems that respond to specific inputs + with predefined outputs, without memory or past experiences influencing their + decisions (e.g., IBM's Deep Blue chess-playing computer). +
  2. +
  3. Limited Memory: AI systems that can use past data for a short + time to inform decisions, such as self-driving cars. +
  4. +
  5. Theory of Mind: A more advanced concept where AI would + understand emotions, beliefs, and intentions, allowing it to interact more + naturally with humans. This remains largely in the research phase. +
  6. +
  7. Self-Aware AI: A theoretical AI that has self-awareness and + consciousness. +
  8. +
+

AI continues to evolve, impacting nearly every aspect of modern life while raising + ethical, societal, and technological challenges.

`.replace(/\s{2,}/gm, ''), + }, + { + timestamp: todayDate, + author: assistant, + text: `

Artificial Intelligence (AI) is a branch of computer science that focuses on + creating systems capable of performing tasks that typically require human intelligence. + These tasks include learning, reasoning, problem-solving, understanding natural + language, recognizing patterns, and even making decisions.

+

AI can be divided into several subfields and categories:

+

Key Subfields of AI

+
    +
  • Machine Learning (ML): Enables systems to learn and improve + from data without explicit programming. +
  • +
  • Deep Learning: A subset of ML that uses neural networks with + many layers to analyze complex patterns. +
  • +
  • Natural Language Processing (NLP): Allows AI to understand, + interpret, and respond to human language. +
  • +
  • Computer Vision: Enables AI to process and analyze visual data + from the world. +
  • +
  • Robotics: Focuses on creating AI-driven robots to perform tasks + in the physical world. +
  • +
  • Expert Systems: Mimic human decision-making using rule-based + systems. +
  • +
+

AI continues to evolve, impacting nearly every aspect of modern life while raising + ethical, societal, and technological challenges.

`.replace(/\s{2,}/gm, ''), + }, + { + timestamp: todayDate, + author: assistant, + text: `

Artificial Intelligence (AI) is a branch of computer science that focuses on + creating systems capable of performing tasks that typically require human intelligence. + These tasks include learning, reasoning, problem-solving, understanding natural + language, recognizing patterns, and even making decisions.

+

AI can be divided into several subfields and categories:

+

Applications of AI

+
    +
  1. Healthcare: Diagnosing diseases, drug discovery, and patient + care. +
  2. +
  3. Finance: Fraud detection, stock market analysis, and personalized + financial advice. +
  4. +
  5. Transportation: Autonomous vehicles and traffic management.
  6. +
  7. Entertainment: Personalized content recommendations on platforms + like Netflix or Spotify. +
  8. +
  9. Customer Service: Chatbots and virtual assistants like Siri, + Alexa, or Google Assistant. +
  10. +
+

AI continues to evolve, impacting nearly every aspect of modern life while raising + ethical, societal, and technological challenges.

`.replace(/\s{2,}/gm, ''), + } +]; diff --git a/packages/devextreme-react/src/core/component-base.tsx b/packages/devextreme-react/src/core/component-base.tsx index 743dd160c541..66e5a424cb9b 100644 --- a/packages/devextreme-react/src/core/component-base.tsx +++ b/packages/devextreme-react/src/core/component-base.tsx @@ -26,7 +26,6 @@ import { elementPropNames, getClassName } from './widget-config'; import { TemplateManager } from './template-manager'; import { ComponentProps } from './component'; import { ElementType } from './configuration/react/element'; -import { IConfigNode } from './configuration/config-node'; import { NestedOptionContext, @@ -96,7 +95,25 @@ const ComponentBase = forwardRef( const prevPropsRef = useRef

(); - let widgetConfig: IConfigNode; + const templateContainer = useMemo(() => document.createElement('div'), []); + + const [widgetConfig, context] = useOptionScanning( + { + type: ElementType.Option, + descriptor: { + name: '', + isCollection: false, + templates: templateProps, + initialValuesProps: defaults, + predefinedValuesProps: {}, + expectedChildren, + }, + props, + }, + props.children, + templateContainer, + Symbol('initial update token'), + ); const restoreTree = useCallback(() => { if (childElementsDetached.current && childNodes.current?.length && element.current) { @@ -249,6 +266,7 @@ const ComponentBase = forwardRef( instance.current, subscribableOptions, independentEvents, + widgetConfig, ]); const onTemplatesRendered = useCallback(() => { @@ -279,6 +297,7 @@ const ComponentBase = forwardRef( scheduleTemplatesUpdate, updateCssClasses, props, + widgetConfig, ]); const onComponentMounted = useCallback(() => { @@ -339,29 +358,6 @@ const ComponentBase = forwardRef( shouldRestoreFocus.current, ]); - const templateContainer = useMemo(() => document.createElement('div'), []); - - const options = useOptionScanning( - { - type: ElementType.Option, - descriptor: { - name: '', - isCollection: false, - templates: templateProps, - initialValuesProps: defaults, - predefinedValuesProps: {}, - expectedChildren, - }, - props, - }, - props.children, - templateContainer, - Symbol('initial update token'), - ); - - [widgetConfig] = options; - const [, context] = options; - useLayoutEffect(() => { onComponentMounted(); diff --git a/packages/devextreme-scss/scss/widgets/fluent/button/_colors.scss b/packages/devextreme-scss/scss/widgets/fluent/button/_colors.scss index 6c14cb587ad1..fca2088edfce 100644 --- a/packages/devextreme-scss/scss/widgets/fluent/button/_colors.scss +++ b/packages/devextreme-scss/scss/widgets/fluent/button/_colors.scss @@ -53,7 +53,7 @@ $button-normal-selected-bg: $base-selected-bg !default; $button-normal-bg-inverted: null !default; /** -* $name 10. Text color +* $name 10. Text color (contained) * $type color */ $button-default-color: null !default; @@ -94,6 +94,10 @@ $button-default-active-bg: null !default; */ $button-default-selected-bg: null !default; +/** +* $name 11. Text color (outlined) +* $type color +*/ $button-default-outlined-color: $base-accent !default; $button-default-outlined-border-color: $base-accent !default; $button-default-outlined-hover-bg: null !default; @@ -101,6 +105,10 @@ $button-default-outlined-focused-bg: null !default; $button-default-outlined-active-bg: null !default; $button-default-outlined-selected-bg: null !default; +/** +* $name 11. Text color (text) +* $type color +*/ $button-default-text-color: $base-accent !default; /** @@ -337,13 +345,41 @@ $button-normal-text-focused-bg: $button-normal-hover-bg !default; $button-normal-text-active-bg: $button-normal-active-bg !default; $button-normal-text-selected-bg: $button-normal-selected-bg !default; +/** +* $name 12. Hover state text color (outlined) +* $type color +*/ $button-default-outlined-color-hover: $button-accent-foreground-color !default; + +/** +* $name 13. Active state text color (outlined) +* $type color +*/ $button-default-outlined-color-active: $button-accent-foreground-color !default; + +/** +* $name 21. Selected state text color (outlined) +* $type color +*/ $button-default-outlined-selected-color: $button-accent-foreground-color !default; -$button-default-text-color-hover: $button-default-outlined-color-hover !default; +/** +* $name 12. Hover state text color (text) +* $type color +*/ +$button-default-text-color-hover: $button-accent-foreground-color !default; + +/** +* $name 13. Active state text color (text) +* $type color +*/ $button-default-text-color-active: $button-default-outlined-color-active !default; -$button-default-text-selected-color: $button-default-outlined-selected-color !default; + +/** +* $name 21. Selected state text color (text) +* $type color +*/ +$button-default-text-selected-color: $button-accent-foreground-color !default; $button-default-text-hover-bg: $button-default-outlined-hover-bg !default; $button-default-text-focused-bg: $button-default-outlined-focused-bg !default; diff --git a/packages/devextreme-scss/scss/widgets/fluent/button/_mixins.scss b/packages/devextreme-scss/scss/widgets/fluent/button/_mixins.scss index 92c0edf17a87..2181fff621f4 100644 --- a/packages/devextreme-scss/scss/widgets/fluent/button/_mixins.scss +++ b/packages/devextreme-scss/scss/widgets/fluent/button/_mixins.scss @@ -145,7 +145,16 @@ } } -@mixin dx-button-flat-color-styling($button-color, $button-color-hover, $button-color-active, $hover-bg, $focused-bg, $active-bg, $selected-bg: $active-bg, $selected-color: $button-color) { +@mixin dx-button-flat-color-styling( + $button-color, + $button-color-hover, + $button-color-active, + $hover-bg, + $focused-bg, + $active-bg, + $selected-bg: $active-bg, + $selected-color: $button-color +) { @include dx-button-styling-variant( transparent, $button-color, diff --git a/packages/devextreme-scss/scss/widgets/generic/button/_colors.scss b/packages/devextreme-scss/scss/widgets/generic/button/_colors.scss index a1ccb2f0a1f2..0777a07ecbac 100644 --- a/packages/devextreme-scss/scss/widgets/generic/button/_colors.scss +++ b/packages/devextreme-scss/scss/widgets/generic/button/_colors.scss @@ -53,7 +53,7 @@ $button-normal-text-bg-active: null !default; $button-normal-text-bg-selected: null !default; /** -* $name 10. Text color +* $name 10. Text color (contained) * $type color */ $button-default-color: $base-inverted-text-color !default; @@ -78,6 +78,12 @@ $button-default-contained-bg-active: null !default; * $type color */ $button-default-contained-bg-selected: null !default; + +/** +* $name 11. Text color (outlined) +* $type color +*/ +$button-default-outlined-color: null !default; $button-default-outlined-bg-hover: null !default; $button-default-outlined-bg-focused: null !default; $button-default-outlined-bg-active: null !default; @@ -87,6 +93,12 @@ $button-default-outlined-bg-active: null !default; * $type color */ $button-default-outlined-bg-selected: null !default; + +/** +* $name 11. Text color (text) +* $type color +*/ +$button-default-text-color: null !default; $button-default-text-bg-hover: null !default; $button-default-text-bg-focused: null !default; $button-default-text-bg-active: null !default; @@ -189,7 +201,7 @@ $button-success-text-bg-selected: null !default; @if $color == "carmine" { $button-normal-bg: $base-element-bg !default; - $button-normal-border-color: darken($base-border-color, 17%) !default; // #dee1e3 => #b1b7bd + $button-normal-border-color: darken($base-border-color, 17%) !default; $button-normal-bg-inverted: darken($button-normal-bg, 100%) !default; $button-normal-contained-bg-hover: darken($button-normal-bg, 4%) !default; $button-normal-contained-bg-focused: darken($button-normal-bg, 8%) !default; @@ -204,20 +216,22 @@ $button-success-text-bg-selected: null !default; $button-normal-text-bg-active: color.change($button-normal-bg-inverted, $alpha: 0.24) !default; $button-normal-text-bg-selected: color.change($button-normal-bg-inverted, $alpha: 0.17) !default; $button-default-bg: $base-accent !default; - $button-default-border-color: darken($base-accent, 5%) !default; + $button-default-border-color: darken($button-default-bg, 5%) !default; $button-default-contained-bg-hover: darken($button-default-bg, 9%) !default; $button-default-contained-bg-focused: darken($button-default-bg, 12%) !default; $button-default-contained-bg-active: darken($button-default-bg, 23%) !default; $button-default-contained-bg-selected: darken($button-default-bg, 17%) !default; + $button-default-outlined-color: darken($button-default-bg, 5%) !default; $button-default-outlined-bg-hover: color.change($button-default-border-color, $alpha: 0.1) !default; $button-default-outlined-bg-focused: color.change($button-default-border-color, $alpha: 0.1) !default; $button-default-outlined-bg-active: color.change($button-default-border-color, $alpha: 0.4) !default; $button-default-outlined-bg-selected: color.change($button-default-bg, $alpha: 0.3) !default; + $button-default-text-color: darken($button-default-bg, 5%) !default; $button-default-text-bg-hover: $button-default-outlined-bg-hover !default; $button-default-text-bg-focused: $button-default-outlined-bg-focused !default; $button-default-text-bg-active: $button-default-outlined-bg-active !default; $button-default-text-bg-selected: color.change($button-default-bg, $alpha: 0.3) !default; - $button-danger-border-color: darken($base-danger, 5%) !default; + $button-danger-border-color: darken($button-danger-bg, 5%) !default; $button-danger-contained-bg-hover: darken($button-danger-bg, 9%) !default; $button-danger-contained-bg-focused: darken($button-danger-bg, 12%) !default; $button-danger-contained-bg-active: darken($button-danger-bg, 23%) !default; @@ -230,7 +244,7 @@ $button-success-text-bg-selected: null !default; $button-danger-text-bg-focused: $button-danger-outlined-bg-focused !default; $button-danger-text-bg-active: $button-danger-outlined-bg-active !default; $button-danger-text-bg-selected: color.change($button-danger-bg, $alpha: 0.3) !default; - $button-success-border-color: darken($base-success, 5%) !default; + $button-success-border-color: darken($button-success-bg, 5%) !default; $button-success-contained-bg-hover: darken($button-success-bg, 9%) !default; $button-success-contained-bg-focused: darken($button-success-bg, 12%) !default; $button-success-contained-bg-active: darken($button-success-bg, 23%) !default; @@ -266,15 +280,17 @@ $button-success-text-bg-selected: null !default; $button-default-contained-bg-focused: $base-inverted-bg !default; $button-default-contained-bg-active: $button-default-bg !default; $button-default-contained-bg-selected: $base-inverted-bg !default; + $button-default-outlined-color: $base-default !default; $button-default-outlined-bg-hover: $base-inverted-bg !default; $button-default-outlined-bg-focused: $base-inverted-bg !default; $button-default-outlined-bg-active: $base-bg !default; $button-default-outlined-bg-selected: $base-inverted-bg !default; + $button-default-text-color: $base-default !default; $button-default-text-bg-hover: $base-inverted-bg !default; $button-default-text-bg-focused: $base-inverted-bg !default; $button-default-text-bg-active: $base-bg !default; $button-default-text-bg-selected: $base-inverted-bg !default; - $button-danger-border-color: $base-danger !default; + $button-danger-border-color: $button-danger-bg !default; $button-danger-contained-bg-hover: $base-inverted-bg !default; $button-danger-contained-bg-focused: $base-inverted-bg !default; $button-danger-contained-bg-active: $button-danger-bg !default; @@ -287,7 +303,7 @@ $button-success-text-bg-selected: null !default; $button-danger-text-bg-focused: $base-inverted-bg !default; $button-danger-text-bg-active: $base-bg !default; $button-danger-text-bg-selected: $base-inverted-bg !default; - $button-success-border-color: $base-success !default; + $button-success-border-color: $button-success-bg !default; $button-success-contained-bg-hover: $base-inverted-bg !default; $button-success-contained-bg-focused: $base-inverted-bg !default; $button-success-contained-bg-active: $button-success-bg !default; @@ -319,20 +335,22 @@ $button-success-text-bg-selected: null !default; $button-normal-text-bg-active: color.change($button-normal-bg-inverted, $alpha: 0.24) !default; $button-normal-text-bg-selected: color.change($button-normal-bg-inverted, $alpha: 0.17) !default; $button-default-bg: $base-accent !default; - $button-default-border-color: darken($base-accent, 5%) !default; + $button-default-border-color: darken($button-default-bg, 5%) !default; $button-default-contained-bg-hover: lighten($button-default-bg, 9%) !default; $button-default-contained-bg-focused: lighten($button-default-bg, 12%) !default; $button-default-contained-bg-active: lighten($button-default-bg, 23%) !default; $button-default-contained-bg-selected: lighten($button-default-bg, 17%) !default; + $button-default-outlined-color: darken($button-default-bg, 5%) !default; $button-default-outlined-bg-hover: color.change($button-default-border-color, $alpha: 0.1) !default; $button-default-outlined-bg-focused: color.change($button-default-border-color, $alpha: 0.1) !default; $button-default-outlined-bg-active: color.change($button-default-border-color, $alpha: 0.4) !default; $button-default-outlined-bg-selected: color.change($button-default-bg, $alpha: 0.3) !default; + $button-default-text-color: darken($button-default-bg, 5%) !default; $button-default-text-bg-hover: $button-default-outlined-bg-hover !default; $button-default-text-bg-focused: $button-default-outlined-bg-focused !default; $button-default-text-bg-active: $button-default-outlined-bg-active !default; $button-default-text-bg-selected: color.change($button-default-bg, $alpha: 0.3) !default; - $button-danger-border-color: darken($base-danger, 5%) !default; + $button-danger-border-color: darken($button-danger-bg, 5%) !default; $button-danger-contained-bg-hover: lighten($button-danger-bg, 9%) !default; $button-danger-contained-bg-focused: lighten($button-danger-bg, 12%) !default; $button-danger-contained-bg-active: lighten($button-danger-bg, 23%) !default; @@ -345,7 +363,7 @@ $button-success-text-bg-selected: null !default; $button-danger-text-bg-focused: $button-danger-outlined-bg-focused !default; $button-danger-text-bg-active: $button-danger-outlined-bg-active !default; $button-danger-text-bg-selected: color.change($button-danger-bg, $alpha: 0.3) !default; - $button-success-border-color: darken($base-success, 5%) !default; + $button-success-border-color: darken($button-success-bg, 5%) !default; $button-success-contained-bg-hover: lighten($button-success-bg, 9%) !default; $button-success-contained-bg-focused: lighten($button-success-bg, 12%) !default; $button-success-contained-bg-active: lighten($button-success-bg, 23%) !default; @@ -377,20 +395,22 @@ $button-success-text-bg-selected: null !default; $button-normal-text-bg-active: color.change($button-normal-bg-inverted, $alpha: 0.24) !default; $button-normal-text-bg-selected: color.change($button-normal-bg-inverted, $alpha: 0.17) !default; $button-default-bg: $base-accent !default; - $button-default-border-color: darken($base-accent, 5%) !default; + $button-default-border-color: darken($button-default-bg, 5%) !default; $button-default-contained-bg-hover: lighten($button-default-bg, 9%) !default; $button-default-contained-bg-focused: lighten($button-default-bg, 12%) !default; $button-default-contained-bg-active: lighten($button-default-bg, 23%) !default; $button-default-contained-bg-selected: lighten($button-default-bg, 17%) !default; + $button-default-outlined-color: darken($button-default-bg, 5%) !default; $button-default-outlined-bg-hover: color.change($button-default-border-color, $alpha: 0.1) !default; $button-default-outlined-bg-focused: color.change($button-default-border-color, $alpha: 0.1) !default; $button-default-outlined-bg-active: color.change($button-default-border-color, $alpha: 0.4) !default; $button-default-outlined-bg-selected: color.change($button-default-bg, $alpha: 0.3) !default; + $button-default-text-color: darken($button-default-bg, 5%) !default; $button-default-text-bg-hover: $button-default-outlined-bg-hover !default; $button-default-text-bg-focused: $button-default-outlined-bg-focused !default; $button-default-text-bg-active: $button-default-outlined-bg-active !default; $button-default-text-bg-selected: color.change($button-default-bg, $alpha: 0.3) !default; - $button-danger-border-color: darken($base-danger, 5%) !default; + $button-danger-border-color: darken($button-danger-bg, 5%) !default; $button-danger-contained-bg-hover: lighten($button-danger-bg, 9%) !default; $button-danger-contained-bg-focused: lighten($button-danger-bg, 12%) !default; $button-danger-contained-bg-active: lighten($button-danger-bg, 23%) !default; @@ -403,7 +423,7 @@ $button-success-text-bg-selected: null !default; $button-danger-text-bg-focused: $button-danger-outlined-bg-focused !default; $button-danger-text-bg-active: $button-danger-outlined-bg-active !default; $button-danger-text-bg-selected: color.change($button-danger-bg, $alpha: 0.3) !default; - $button-success-border-color: darken($base-success, 5%) !default; + $button-success-border-color: darken($button-success-bg, 5%) !default; $button-success-contained-bg-hover: lighten($button-success-bg, 9%) !default; $button-success-contained-bg-focused: lighten($button-success-bg, 12%) !default; $button-success-contained-bg-active: lighten($button-success-bg, 23%) !default; @@ -435,20 +455,22 @@ $button-success-text-bg-selected: null !default; $button-normal-text-bg-active: color.change($button-normal-bg-inverted, $alpha: 0.24) !default; $button-normal-text-bg-selected: color.change($button-normal-bg-inverted, $alpha: 0.17) !default; $button-default-bg: $base-accent !default; - $button-default-border-color: darken($base-accent, 5%) !default; + $button-default-border-color: darken($button-default-bg, 5%) !default; $button-default-contained-bg-hover: lighten($button-default-bg, 9%) !default; $button-default-contained-bg-focused: lighten($button-default-bg, 12%) !default; $button-default-contained-bg-active: lighten($button-default-bg, 23%) !default; $button-default-contained-bg-selected: lighten($button-default-bg, 17%) !default; + $button-default-outlined-color: darken($button-default-bg, 5%) !default; $button-default-outlined-bg-hover: color.change($button-default-border-color, $alpha: 0.1) !default; $button-default-outlined-bg-focused: color.change($button-default-border-color, $alpha: 0.1) !default; $button-default-outlined-bg-active: color.change($button-default-border-color, $alpha: 0.4) !default; $button-default-outlined-bg-selected: color.change($button-default-bg, $alpha: 0.3) !default; + $button-default-text-color: darken($button-default-bg, 5%) !default; $button-default-text-bg-hover: $button-default-outlined-bg-hover !default; $button-default-text-bg-focused: $button-default-outlined-bg-focused !default; $button-default-text-bg-active: $button-default-outlined-bg-active !default; $button-default-text-bg-selected: color.change($button-default-bg, $alpha: 0.3) !default; - $button-danger-border-color: darken($base-danger, 5%) !default; + $button-danger-border-color: darken($button-danger-bg, 5%) !default; $button-danger-contained-bg-hover: lighten($button-danger-bg, 9%) !default; $button-danger-contained-bg-focused: lighten($button-danger-bg, 12%) !default; $button-danger-contained-bg-active: lighten($button-danger-bg, 23%) !default; @@ -461,7 +483,7 @@ $button-success-text-bg-selected: null !default; $button-danger-text-bg-focused: $button-danger-outlined-bg-focused !default; $button-danger-text-bg-active: $button-danger-outlined-bg-active !default; $button-danger-text-bg-selected: color.change($button-danger-bg, $alpha: 0.3) !default; - $button-success-border-color: darken($base-success, 5%) !default; + $button-success-border-color: darken($button-success-bg, 5%) !default; $button-success-contained-bg-hover: lighten($button-success-bg, 9%) !default; $button-success-contained-bg-focused: lighten($button-success-bg, 12%) !default; $button-success-contained-bg-active: lighten($button-success-bg, 23%) !default; @@ -493,20 +515,22 @@ $button-success-text-bg-selected: null !default; $button-normal-text-bg-active: color.change($button-normal-bg-inverted, $alpha: 0.24) !default; $button-normal-text-bg-selected: color.change($button-normal-bg-inverted, $alpha: 0.17) !default; $button-default-bg: $base-accent !default; - $button-default-border-color: darken($base-accent, 5%) !default; + $button-default-border-color: darken($button-default-bg, 5%) !default; $button-default-contained-bg-hover: darken($button-default-bg, 9%) !default; $button-default-contained-bg-focused: darken($button-default-bg, 12%) !default; $button-default-contained-bg-active: darken($button-default-bg, 23%) !default; $button-default-contained-bg-selected: darken($button-default-bg, 17%) !default; + $button-default-outlined-color: darken($button-default-bg, 5%) !default; $button-default-outlined-bg-hover: color.change($button-default-border-color, $alpha: 0.1) !default; $button-default-outlined-bg-focused: color.change($button-default-border-color, $alpha: 0.1) !default; $button-default-outlined-bg-active: color.change($button-default-border-color, $alpha: 0.4) !default; $button-default-outlined-bg-selected: color.change($button-default-bg, $alpha: 0.3) !default; + $button-default-text-color: darken($button-default-bg, 5%) !default; $button-default-text-bg-hover: $button-default-outlined-bg-hover !default; $button-default-text-bg-focused: $button-default-outlined-bg-focused !default; $button-default-text-bg-active: $button-default-outlined-bg-active !default; $button-default-text-bg-selected: color.change($button-default-bg, $alpha: 0.3) !default; - $button-danger-border-color: darken($base-danger, 5%) !default; + $button-danger-border-color: darken($button-danger-bg, 5%) !default; $button-danger-contained-bg-hover: darken($button-danger-bg, 9%) !default; $button-danger-contained-bg-focused: darken($button-danger-bg, 12%) !default; $button-danger-contained-bg-active: darken($button-danger-bg, 23%) !default; @@ -519,7 +543,7 @@ $button-success-text-bg-selected: null !default; $button-danger-text-bg-focused: $button-danger-outlined-bg-focused !default; $button-danger-text-bg-active: $button-danger-outlined-bg-active !default; $button-danger-text-bg-selected: color.change($button-danger-bg, $alpha: 0.3) !default; - $button-success-border-color: darken($base-success, 5%) !default; + $button-success-border-color: darken($button-success-bg, 5%) !default; $button-success-contained-bg-hover: darken($button-success-bg, 9%) !default; $button-success-contained-bg-focused: darken($button-success-bg, 12%) !default; $button-success-contained-bg-active: darken($button-success-bg, 23%) !default; @@ -551,20 +575,22 @@ $button-success-text-bg-selected: null !default; $button-normal-text-bg-active: color.change($button-normal-bg-inverted, $alpha: 0.24) !default; $button-normal-text-bg-selected: color.change($button-normal-bg-inverted, $alpha: 0.17) !default; $button-default-bg: $base-accent !default; - $button-default-border-color: darken($base-accent, 5%) !default; + $button-default-border-color: darken($button-default-bg, 5%) !default; $button-default-contained-bg-hover: darken($button-default-bg, 9%) !default; $button-default-contained-bg-focused: darken($button-default-bg, 12%) !default; $button-default-contained-bg-active: darken($button-default-bg, 23%) !default; $button-default-contained-bg-selected: darken($button-default-bg, 17%) !default; + $button-default-outlined-color: darken($button-default-bg, 5%) !default; $button-default-outlined-bg-hover: color.change($button-default-border-color, $alpha: 0.1) !default; $button-default-outlined-bg-focused: color.change($button-default-border-color, $alpha: 0.1) !default; $button-default-outlined-bg-active: color.change($button-default-border-color, $alpha: 0.4) !default; $button-default-outlined-bg-selected: color.change($button-default-bg, $alpha: 0.3) !default; + $button-default-text-color: darken($button-default-bg, 5%) !default; $button-default-text-bg-hover: $button-default-outlined-bg-hover !default; $button-default-text-bg-focused: $button-default-outlined-bg-focused !default; $button-default-text-bg-active: $button-default-outlined-bg-active !default; $button-default-text-bg-selected: color.change($button-default-bg, $alpha: 0.3) !default; - $button-danger-border-color: darken($base-danger, 5%) !default; + $button-danger-border-color: darken($button-danger-bg, 5%) !default; $button-danger-contained-bg-hover: darken($button-danger-bg, 9%) !default; $button-danger-contained-bg-focused: darken($button-danger-bg, 12%) !default; $button-danger-contained-bg-active: darken($button-danger-bg, 23%) !default; @@ -577,7 +603,7 @@ $button-success-text-bg-selected: null !default; $button-danger-text-bg-focused: $button-danger-outlined-bg-focused !default; $button-danger-text-bg-active: $button-danger-outlined-bg-active !default; $button-danger-text-bg-selected: color.change($button-danger-bg, $alpha: 0.3) !default; - $button-success-border-color: darken($base-success, 5%) !default; + $button-success-border-color: darken($button-success-bg, 5%) !default; $button-success-contained-bg-hover: darken($button-success-bg, 9%) !default; $button-success-contained-bg-focused: darken($button-success-bg, 12%) !default; $button-success-contained-bg-active: darken($button-success-bg, 23%) !default; @@ -609,20 +635,22 @@ $button-success-text-bg-selected: null !default; $button-normal-text-bg-active: color.change($button-normal-bg-inverted, $alpha: 0.24) !default; $button-normal-text-bg-selected: color.change($button-normal-bg-inverted, $alpha: 0.17) !default; $button-default-bg: $base-accent !default; - $button-default-border-color: darken($base-accent, 5%) !default; + $button-default-border-color: darken($button-default-bg, 5%) !default; $button-default-contained-bg-hover: darken($button-default-bg, 9%) !default; $button-default-contained-bg-focused: darken($button-default-bg, 12%) !default; $button-default-contained-bg-active: darken($button-default-bg, 23%) !default; $button-default-contained-bg-selected: darken($button-default-bg, 17%) !default; + $button-default-outlined-color: darken($button-default-bg, 5%) !default; $button-default-outlined-bg-hover: color.change($button-default-border-color, $alpha: 0.1) !default; $button-default-outlined-bg-focused: color.change($button-default-border-color, $alpha: 0.1) !default; $button-default-outlined-bg-active: color.change($button-default-border-color, $alpha: 0.4) !default; $button-default-outlined-bg-selected: color.change($button-default-bg, $alpha: 0.3) !default; + $button-default-text-color: darken($button-default-bg, 5%) !default; $button-default-text-bg-hover: $button-default-outlined-bg-hover !default; $button-default-text-bg-focused: $button-default-outlined-bg-focused !default; $button-default-text-bg-active: $button-default-outlined-bg-active !default; $button-default-text-bg-selected: color.change($button-default-bg, $alpha: 0.3) !default; - $button-danger-border-color: darken($base-danger, 5%) !default; + $button-danger-border-color: darken($button-danger-bg, 5%) !default; $button-danger-contained-bg-hover: darken($button-danger-bg, 9%) !default; $button-danger-contained-bg-focused: darken($button-danger-bg, 12%) !default; $button-danger-contained-bg-active: darken($button-danger-bg, 23%) !default; @@ -635,7 +663,7 @@ $button-success-text-bg-selected: null !default; $button-danger-text-bg-focused: $button-danger-outlined-bg-focused !default; $button-danger-text-bg-active: $button-danger-outlined-bg-active !default; $button-danger-text-bg-selected: color.change($button-danger-bg, $alpha: 0.3) !default; - $button-success-border-color: darken($base-success, 5%) !default; + $button-success-border-color: darken($button-success-bg, 5%) !default; $button-success-contained-bg-hover: darken($button-success-bg, 9%) !default; $button-success-contained-bg-focused: darken($button-success-bg, 12%) !default; $button-success-contained-bg-active: darken($button-success-bg, 23%) !default; diff --git a/packages/devextreme-scss/scss/widgets/generic/button/_mixins.scss b/packages/devextreme-scss/scss/widgets/generic/button/_mixins.scss index c0a3c3aae0d7..0dffc1478218 100644 --- a/packages/devextreme-scss/scss/widgets/generic/button/_mixins.scss +++ b/packages/devextreme-scss/scss/widgets/generic/button/_mixins.scss @@ -171,7 +171,7 @@ @include dx-button-styling-variant( transparent, $button-default-border-color, - $button-default-border-color, + $button-default-outlined-color, $button-default-outlined-bg-hover, $button-default-outlined-bg-focused, $button-default-outlined-bg-active, @@ -227,7 +227,7 @@ @include dx-button-styling-variant( transparent, transparent, - $button-default-border-color, + $button-default-text-color, $button-default-text-bg-hover, $button-default-text-bg-focused, $button-default-text-bg-active, diff --git a/packages/devextreme-scss/scss/widgets/material/button/_colors.scss b/packages/devextreme-scss/scss/widgets/material/button/_colors.scss index e62e59502352..de5cd6670894 100644 --- a/packages/devextreme-scss/scss/widgets/material/button/_colors.scss +++ b/packages/devextreme-scss/scss/widgets/material/button/_colors.scss @@ -60,7 +60,7 @@ $button-normal-bg-inverted: null !default; $button-default-color: $base-inverted-text-color !default; /** -* $name 20. Selected state text color +* $name 20. Selected state text color (contained) * $type color */ $button-default-selected-color: $base-inverted-text-color !default; @@ -99,12 +99,35 @@ $button-default-outlined-hover-bg: color.change($button-default-bg, $alpha: 0.08 $button-default-outlined-focused-bg: color.change($button-default-bg, $alpha: 0.08) !default; $button-default-outlined-active-bg: color.change($button-default-bg, $alpha: 0.36) !default; $button-default-outlined-selected-bg: color.change($button-default-bg, $alpha: 0.36) !default; + +/** +* $name 11. Text color (outlined) +* $type color +*/ +$button-default-outlined-color: $button-default-bg !default; +$button-default-outlined-border-color: $button-default-bg !default; + +/** +* $name 21. Selected state text color (outlined) +* $type color +*/ $button-default-outlined-selected-color: $button-default-bg !default; $button-default-text-hover-bg: color.change($button-default-bg, $alpha: 0.08) !default; $button-default-text-focused-bg: color.change($button-default-bg, $alpha: 0.08) !default; $button-default-text-active-bg: color.change($button-default-bg, $alpha: 0.36) !default; $button-default-text-selected-bg: color.change($button-default-bg, $alpha: 0.36) !default; + +/** +* $name 11. Text color (text) +* $type color +*/ +$button-default-text-color: $button-default-bg !default; + +/** +* $name 21. Selected state text color (text) +* $type color +*/ $button-default-text-selected-color: $button-default-bg !default; /** @@ -271,4 +294,3 @@ $button-normal-text-hover-bg: color.change($button-normal-bg-inverted, $alpha: 0 $button-normal-text-focused-bg: color.change($button-normal-bg-inverted, $alpha: 0.08) !default; $button-normal-text-active-bg: color.change($button-normal-bg-inverted, $alpha: 0.3) !default; $button-normal-text-selected-bg: color.change($button-normal-bg-inverted, $alpha: 0.18) !default; - diff --git a/packages/devextreme-scss/scss/widgets/material/button/_index.scss b/packages/devextreme-scss/scss/widgets/material/button/_index.scss index c422110c613a..deb9f042057a 100644 --- a/packages/devextreme-scss/scss/widgets/material/button/_index.scss +++ b/packages/devextreme-scss/scss/widgets/material/button/_index.scss @@ -139,7 +139,7 @@ &.dx-button-default { @include dx-button-flat-color-styling( - $button-default-bg, + $button-default-text-color, $button-default-text-hover-bg, $button-default-text-focused-bg, $button-default-text-active-bg, @@ -184,8 +184,8 @@ &.dx-button-default { @include dx-button-outlined-color-styling( - $button-default-bg, - $button-default-bg, + $button-default-outlined-color, + $button-default-outlined-border-color, $button-default-outlined-hover-bg, $button-default-outlined-focused-bg, $button-default-outlined-active-bg, diff --git a/packages/devextreme-scss/scss/widgets/material/button/_mixins.scss b/packages/devextreme-scss/scss/widgets/material/button/_mixins.scss index cc02e3a408eb..c641e75cd348 100644 --- a/packages/devextreme-scss/scss/widgets/material/button/_mixins.scss +++ b/packages/devextreme-scss/scss/widgets/material/button/_mixins.scss @@ -130,7 +130,14 @@ } } -@mixin dx-button-flat-color-styling($button-color, $hover-bg, $focused-bg, $active-bg, $selected-bg: $active-bg, $selected-color: $button-color) { +@mixin dx-button-flat-color-styling( + $button-color, + $hover-bg, + $focused-bg, + $active-bg, + $selected-bg: $active-bg, + $selected-color: $button-color +) { @include dx-button-styling-variant( transparent, $button-color, @@ -143,7 +150,15 @@ ); } -@mixin dx-button-outlined-color-styling($button-color, $border-color, $hover-bg, $focused-bg, $active-bg, $selected-bg, $selected-color) { +@mixin dx-button-outlined-color-styling( + $button-color, + $border-color, + $hover-bg, + $focused-bg, + $active-bg, + $selected-bg, + $selected-color +) { border-width: 1px; border-style: solid; border-color: $border-color; diff --git a/packages/devextreme/js/__internal/ui/collection/base.ts b/packages/devextreme/js/__internal/ui/collection/base.ts index 9928a0d14007..ee4c3b547cc8 100644 --- a/packages/devextreme/js/__internal/ui/collection/base.ts +++ b/packages/devextreme/js/__internal/ui/collection/base.ts @@ -47,6 +47,7 @@ declare class Base< container: dxElementWrapper; contentClass: string; defaultTemplateName: string; + uniqueKey?: string; }): dxElementWrapper; _renderContent(): void; _postprocessRenderItem(args: unknown): void; diff --git a/packages/devextreme/js/__internal/ui/collection/m_collection_widget.async.ts b/packages/devextreme/js/__internal/ui/collection/m_collection_widget.async.ts index 7660b180bc8d..e4c3dc9f1365 100644 --- a/packages/devextreme/js/__internal/ui/collection/m_collection_widget.async.ts +++ b/packages/devextreme/js/__internal/ui/collection/m_collection_widget.async.ts @@ -1,11 +1,13 @@ +import Guid from '@js/core/guid'; import { noop } from '@js/core/utils/common'; +import type { DeferredObj } from '@js/core/utils/deferred'; import { Deferred, when } from '@js/core/utils/deferred'; import CollectionWidgetEdit from './m_collection_widget.edit'; const AsyncCollectionWidget = CollectionWidgetEdit.inherit({ _initMarkup() { - this._asyncTemplateItems = []; + this._asyncTemplateItemsMap = {}; this.callBase(); }, @@ -17,9 +19,10 @@ const AsyncCollectionWidget = CollectionWidgetEdit.inherit({ _renderItemContent(args) { const renderContentDeferred = Deferred(); const itemDeferred = Deferred(); + const uniqueKey = `dx${new Guid()}`; - this._asyncTemplateItems[args.index] = itemDeferred; - const $itemContent = this.callBase(args); + this._asyncTemplateItemsMap[uniqueKey] = itemDeferred; + const $itemContent = this.callBase({ ...args, uniqueKey }); itemDeferred.done(() => { renderContentDeferred.resolve($itemContent); @@ -30,7 +33,7 @@ const AsyncCollectionWidget = CollectionWidgetEdit.inherit({ _onItemTemplateRendered(itemTemplate, renderArgs) { return () => { - this._asyncTemplateItems[renderArgs.index]?.resolve(); + this._asyncTemplateItemsMap[renderArgs.uniqueKey]?.resolve(); }; }, @@ -38,19 +41,29 @@ const AsyncCollectionWidget = CollectionWidgetEdit.inherit({ _planPostRenderActions(...args: unknown[]) { const d = Deferred(); - when.apply(this, this._asyncTemplateItems).done(() => { + const asyncTemplateItems = Object.values>(this._asyncTemplateItemsMap); + + when.apply(this, asyncTemplateItems).done(() => { this._postProcessRenderItems(...args); - d.resolve(); + + d.resolve().done(() => { + this._asyncTemplateItemsMap = {}; + }); }); + return d.promise(); }, _clean() { this.callBase(); - this._asyncTemplateItems.forEach((item) => { + + const asyncTemplateItems = Object.values>(this._asyncTemplateItemsMap); + + asyncTemplateItems.forEach((item) => { item.reject(); }); - this._asyncTemplateItems = []; + + this._asyncTemplateItemsMap = {}; }, }); diff --git a/packages/devextreme/js/__internal/ui/date_box/m_date_box.strategy.native.ts b/packages/devextreme/js/__internal/ui/date_box/m_date_box.strategy.native.ts index e657d3ec231e..6fba69ad8807 100644 --- a/packages/devextreme/js/__internal/ui/date_box/m_date_box.strategy.native.ts +++ b/packages/devextreme/js/__internal/ui/date_box/m_date_box.strategy.native.ts @@ -67,9 +67,17 @@ const NativeStrategy = DateBoxStrategy.inherit({ }, renderInputMinMax($input) { + const type = this.dateBox.option('type'); + const defaultFormat = 'yyyy-MM-dd'; + const format = { + datetime: 'yyyy-MM-ddTHH:mm:ss', + date: defaultFormat, + time: 'HH:mm:ss', + }[type] ?? defaultFormat; + $input.attr({ - min: dateSerialization.serializeDate(this.dateBox.dateOption('min'), 'yyyy-MM-dd'), - max: dateSerialization.serializeDate(this.dateBox.dateOption('max'), 'yyyy-MM-dd'), + min: dateSerialization.serializeDate(this.dateBox.dateOption('min'), format), + max: dateSerialization.serializeDate(this.dateBox.dateOption('max'), format), }); }, }); diff --git a/packages/devextreme/js/__internal/ui/splitter/utils/layout.ts b/packages/devextreme/js/__internal/ui/splitter/utils/layout.ts index 27122e2004e5..20c9a39cefd1 100644 --- a/packages/devextreme/js/__internal/ui/splitter/utils/layout.ts +++ b/packages/devextreme/js/__internal/ui/splitter/utils/layout.ts @@ -40,6 +40,17 @@ export function findLastIndexOfNonCollapsedItem(items: Item[]): number { return -1; } +export function findLastVisibleExpandedItemIndex(items: Item[]): number { + for (let i = items.length - 1; i >= 0; i -= 1) { + const { collapsed, visible } = items[i]; + + if (collapsed !== true && visible !== false) { + return i; + } + } + return -1; +} + export function findIndexOfNextVisibleItem(items: Item[], index: number): number { for (let i = index + 1; i < items.length; i += 1) { if (items[i].visible !== false) { @@ -209,8 +220,7 @@ export function getNextLayout( } const totalSize = nextLayout.reduce((total, size) => size + total, 0); - - if (!(compareNumbersWithPrecision(totalSize, 100, 3) === 0)) { + if (!(compareNumbersWithPrecision(totalSize, 100, 2) === 0)) { return currentLayout; } diff --git a/packages/devextreme/js/__internal/ui/splitter/utils/layout_default.ts b/packages/devextreme/js/__internal/ui/splitter/utils/layout_default.ts index a7fa013f7288..7c76f9a728c5 100644 --- a/packages/devextreme/js/__internal/ui/splitter/utils/layout_default.ts +++ b/packages/devextreme/js/__internal/ui/splitter/utils/layout_default.ts @@ -1,7 +1,11 @@ import { toFixed } from '@js/common/core/localization/utils'; import { isDefined } from '@js/core/utils/type'; -import { findLastIndexOfVisibleItem, normalizePanelSize } from './layout'; +import { + findLastIndexOfVisibleItem, + findLastVisibleExpandedItemIndex, + normalizePanelSize, +} from './layout'; import { compareNumbersWithPrecision, PRECISION } from './number_comparison'; import type { PaneRestrictions } from './types'; @@ -135,9 +139,9 @@ export function getDefaultLayout(layoutRestrictions: PaneRestrictions[]): number } if (remainingSize > 0) { - const paneIndex = findLastIndexOfVisibleItem(layoutRestrictions); + const paneIndex = findLastVisibleExpandedItemIndex(layoutRestrictions); - if (layoutRestrictions[paneIndex].collapsed === false) { + if (paneIndex !== -1) { nextLayout[paneIndex] += remainingSize; } } diff --git a/packages/devextreme/js/__internal/ui/tree_view/m_tree_view.base.ts b/packages/devextreme/js/__internal/ui/tree_view/m_tree_view.base.ts index bab507e26c34..7bbcc586858a 100644 --- a/packages/devextreme/js/__internal/ui/tree_view/m_tree_view.base.ts +++ b/packages/devextreme/js/__internal/ui/tree_view/m_tree_view.base.ts @@ -1441,7 +1441,7 @@ const TreeViewBase = (HierarchicalCollectionWidget as any).inherit({ if (this._showCheckboxes()) { const parentValue = parentNode.internalFields.selected; - this._getCheckBoxInstance($parentNode).option('value', parentValue); + this._getCheckBoxInstance($parentNode)?.option('value', parentValue); this._toggleSelectedClass($parentNode, parentValue); } diff --git a/packages/devextreme/js/viz/core/export.js b/packages/devextreme/js/viz/core/export.js index 49add1f9fbe9..c61512e0b9db 100644 --- a/packages/devextreme/js/viz/core/export.js +++ b/packages/devextreme/js/viz/core/export.js @@ -308,7 +308,7 @@ export let combineMarkups = function(widgets, options = { }) { const rowInfo = row.reduce((r, item, colIndex) => { const size = item.getSize(); const backgroundColor = item.option('backgroundColor') || getTheme(item.option('theme')).backgroundColor; - const node = item.element() + const node = $(item.element()) .find('svg') .get(0) .cloneNode(true); diff --git a/packages/devextreme/package.json b/packages/devextreme/package.json index e3160c05c7ae..872146c82d29 100644 --- a/packages/devextreme/package.json +++ b/packages/devextreme/package.json @@ -30,7 +30,7 @@ "dependencies": { "@babel/runtime": "^7.12.1", "@devextreme/runtime": "3.0.13", - "devexpress-diagram": "2.2.13", + "devexpress-diagram": "2.2.15", "devexpress-gantt": "4.1.56", "devextreme-quill": "1.7.1", "inferno": "^7.4.9", diff --git a/packages/devextreme/testing/tests/DevExpress.ui.widgets.editors/datebox.tests.js b/packages/devextreme/testing/tests/DevExpress.ui.widgets.editors/datebox.tests.js index 44d85ada1a0d..9d9368b53434 100644 --- a/packages/devextreme/testing/tests/DevExpress.ui.widgets.editors/datebox.tests.js +++ b/packages/devextreme/testing/tests/DevExpress.ui.widgets.editors/datebox.tests.js @@ -248,6 +248,45 @@ QUnit.module('datebox tests', moduleConfig, () => { assert.equal($dropDownButton.length, expectedButtonsNumber, 'correct readOnly value'); }); + QUnit.test('Datebox should set min/max attributes to datetime input in localized datetime format (T1252602)', function(assert) { + const $dateBox = $('#dateBox').dxDateBox({ + type: 'datetime', + pickerType: 'native', + value: new Date(2024, 8, 15, 16, 54, 10), + min: new Date(2024, 8, 10, 16, 54, 14), + max: new Date(2024, 8, 27, 16, 54, 15) + }); + + const $input = $dateBox.find(`.${TEXTEDITOR_INPUT_CLASS}`); + assert.equal($input.attr('min'), '2024-09-10T16:54:14', 'minimum date set correctly'); + assert.equal($input.attr('max'), '2024-09-27T16:54:15', 'maximum date set correctly'); + }); + + QUnit.test('Datebox should set min/max attributes to time input in localized time format (T1252602)', function(assert) { + const $dateBox = $('#dateBox').dxDateBox({ + type: 'time', + pickerType: 'native', + value: new Date(2024, 8, 10, 16, 30), + min: new Date(2024, 8, 10, 12, 0, 14), + max: new Date(2024, 8, 10, 18, 0, 15) + }); + const $input = $dateBox.find(`.${TEXTEDITOR_INPUT_CLASS}`); + assert.equal($input.attr('min'), '12:00:14', 'minimum time set correctly'); + assert.equal($input.attr('max'), '18:00:15', 'maximum time set correctly'); + }); + QUnit.test('Datebox should set min/max attributes to date input in localized date format (T1252602)', function(assert) { + const $dateBox = $('#dateBox').dxDateBox({ + type: 'date', + pickerType: 'native', + value: new Date(2024, 8, 15), + min: new Date(2024, 8, 10), + max: new Date(2024, 8, 20) + }); + const $input = $dateBox.find(`.${TEXTEDITOR_INPUT_CLASS}`); + assert.equal($input.attr('min'), '2024-09-10', 'minimum date set correctly'); + assert.equal($input.attr('max'), '2024-09-20', 'maximum date set correctly'); + }); + QUnit.test('Datebox should set min and max attributes to the native input (T258860) after option changed', function(assert) { const $dateBox = $('#dateBox').dxDateBox({ type: 'date', diff --git a/packages/devextreme/testing/tests/DevExpress.ui.widgets/listParts/commonTests.js b/packages/devextreme/testing/tests/DevExpress.ui.widgets/listParts/commonTests.js index 73d02c4d7201..072dc0b5b7cc 100644 --- a/packages/devextreme/testing/tests/DevExpress.ui.widgets/listParts/commonTests.js +++ b/packages/devextreme/testing/tests/DevExpress.ui.widgets/listParts/commonTests.js @@ -3683,6 +3683,54 @@ QUnit.module('regressions', moduleSetup, () => { assert.equal(count, 1); }); + + QUnit.test('Selection: item selected correctly on async render with tree structure (T1269855)', function(assert) { + this.clock.restore(); + const done = assert.async(); + + const data = [ + { id: 1, name: 'Item 1_1', group: 'group_1' }, + { id: 2, name: 'Item 1_2', group: 'group_1' }, + { id: 3, name: 'Item 1_3', group: 'group_1' }, + { id: 4, name: 'Item 2_1', group: 'group_2' }, + ]; + + const dataSource = new DataSource({ + store: new ArrayStore({ data, key: 'id' }), + group: 'group', + }); + + const instance = new List($('#list'), { + dataSource, + grouped: true, + templatesRenderAsynchronously: true, + integrationOptions: { + templates: { + 'item': { + render: function({ model, container, onRendered }) { + setTimeout(function() { + const $item = $(`

${model.name}
`); + $item.appendTo(container); + + onRendered(); + }, 100); + } + }, + } + }, + selectionMode: 'single', + selectedItemKeys: [data[0].id], + }); + + instance.option('_onItemsRendered', () => { + const listElement = instance.element(); + const $firstGroup = $(listElement).find(`.${LIST_GROUP_CLASS}`).eq(0); + const $firstItemInFirstGroup = $firstGroup.find(`.${LIST_ITEM_CLASS}`).eq(0); + + assert.ok($firstItemInFirstGroup.hasClass(LIST_ITEM_SELECTED_CLASS), 'First item in first group should be selected'); + done(); + }); + }); }); QUnit.module('widget sizing render', {}, () => { diff --git a/packages/devextreme/testing/tests/DevExpress.ui.widgets/splitter.tests.js b/packages/devextreme/testing/tests/DevExpress.ui.widgets/splitter.tests.js index 6a56836c19be..8f1e107d0d22 100644 --- a/packages/devextreme/testing/tests/DevExpress.ui.widgets/splitter.tests.js +++ b/packages/devextreme/testing/tests/DevExpress.ui.widgets/splitter.tests.js @@ -728,6 +728,24 @@ QUnit.module('Pane sizing', moduleConfig, () => { }, { items: [{ }, { collapsed: true }], expectedLayout: ['100', '0'], + }, { + items: [{ maxSize: '75%' }, { collapsed: true }], + expectedLayout: ['100', '0'], + }, { + items: [{ collapsed: true }, { visible: false }, { maxSize: '75%' }], + expectedLayout: ['0', '0', '100'], + }, { + items: [{ maxSize: '75%' }, { visible: false }, { collapsed: true }], + expectedLayout: ['100', '0', '0'], + }, { + items: [{ visible: false }, { collapsed: true }, { maxSize: '75%' }, { visible: false }], + expectedLayout: ['0', '0', '100', '0'], + }, { + items: [{ visible: false }, { maxSize: '75%' }, { visible: false }, { collapsed: true }, { visible: false }], + expectedLayout: ['0', '100', '0', '0', '0'], + }, { + items: [{ collapsed: true }, { maxSize: '75%' }], + expectedLayout: ['0', '100'], }, { items: [{ collapsed: true }, { collapsed: true }, { collapsed: true }], expectedLayout: ['0', '0', '0'], @@ -773,6 +791,8 @@ QUnit.module('Pane sizing', moduleConfig, () => { { position: 'prev', expectedLayout: ['0', '100'], items: [{ maxSize: '75%', collapsible: true }, { collapsible: true }] }, { position: 'prev', expectedLayout: ['0', '100'], items: [{ maxSize: '75%', collapsible: true }, { collapsible: true }] }, { position: 'prev', expectedLayout: ['0', '100'], items: [{ maxSize: '75%', collapsible: true }, { collapsible: true }] }, + { position: 'prev', expectedLayout: ['50', '50'], items: [{ maxSize: '75%', collapsible: false }, { collapsed: true, collapsible: true }] }, + { position: 'next', expectedLayout: ['50', '50'], items: [{ collapsed: true, collapsible: true }, { maxSize: '75%', collapsible: false }] }, { position: 'prev', expectedLayout: ['10.0806', '89.9194'], items: [{ collapsible: true, collapsedSize: 100 }, { collapsible: true, collapsedSize: 100 }] }, { position: 'next', expectedLayout: ['89.9194', '10.0806'], items: [{ collapsible: true, collapsedSize: 100 }, { collapsible: true, collapsedSize: 100 }] }, { position: 'next', expectedLayout: ['100', '0'], items: [{ minSize: '15%', collapsible: true }, { collapsible: true }] }, @@ -1287,6 +1307,25 @@ QUnit.module('Pane sizing', moduleConfig, () => { }, resizeObserverTimeout); }); }); + + QUnit.test('The splitter pane can safely collapse if the total size layout calculation error is less than three decimal places (T1262088)', function(assert) { + this.reinit({ + width: 733.67, + height: 200, + items: [ { collapsible: true }, { collapsible: true }, { collapsible: true }], + }); + + this.assertLayout(['33.3333', '33.3333', '33.3333']); + + this.instance._layout = [33.3338502509, 33.3338502509, 33.3338502509]; + + const $resizeHandle = this.getResizeHandles().first(); + const $collapsePrevButton = this.getCollapsePrevButton($resizeHandle); + + $collapsePrevButton.trigger('dxclick'); + + this.assertLayout(['0', '66.6677', '33.3339']); + }); }); QUnit.module('Resizing', moduleConfig, () => { diff --git a/packages/devextreme/testing/tests/DevExpress.ui.widgets/treeView.async.tests.js b/packages/devextreme/testing/tests/DevExpress.ui.widgets/treeView.async.tests.js new file mode 100644 index 000000000000..9cba4f0d050b --- /dev/null +++ b/packages/devextreme/testing/tests/DevExpress.ui.widgets/treeView.async.tests.js @@ -0,0 +1,122 @@ +import $ from 'jquery'; +import TreeView from 'ui/tree_view'; + +import 'generic_light.css!'; + +const { testStart } = QUnit; + +testStart(function() { + const markup = '
'; + + $('#qunit-fixture').html(markup); +}); + +const asyncTemplateRenderTimeout = 50; + +const CHECKBOX_CLASS = 'dx-checkbox'; +const CHECKBOX_CHECKED_CLASS = 'dx-checkbox-checked'; +const CHECKBOX_INDETERMINATE_CLASS = 'dx-checkbox-indeterminate'; +const TREEVIEW_ROOT_NODE_CLASS = 'dx-treeview-root-node'; + +QUnit.module('Async render', () => { + ['normal', 'selectAll'].forEach((showCheckBoxesMode) => { + QUnit.test(`TreeView checkboxed should be correctly rendered in async mode. checkboxMode: ${showCheckBoxesMode} (T1269855)`, function(assert) { + const done = assert.async(); + + const data = [ + { + id: 1, + text: 'Item 1', + expanded: true, + selected: true, + items: [ + { + id: 12, text: 'Nested Item 2', expanded: true, items: [ + { id: 121, text: 'Third level item 1' }, + { id: 122, text: 'Third level item 2' } + ] + } + ] + }, + { + id: 2, + text: 'Item 2', + expanded: true, + items: [ + { + id: 22, text: 'Nested Item 2', expanded: true, items: [ + { id: 221, text: 'Third level item 1' }, + { id: 222, text: 'Third level item 2', selected: true } + ] + } + ] + }, + { + id: 3, + text: 'Item 3', + expanded: true, + items: [ + { + id: 33, text: 'Nested Item 3', expanded: true, items: [ + { id: 331, text: 'Third level item 1' }, + { id: 332, text: 'Third level item 2' } + ] + } + ] + } + ]; + + const instance = new TreeView($('#treeView'), { + items: data, + showCheckBoxesMode, + templatesRenderAsynchronously: true, + itemTemplate: 'myTemplate', + integrationOptions: { + templates: { + myTemplate: { + render({ model, container, onRendered }) { + setTimeout(() => { + const $item = $(`
${model.text}
`); + $item.appendTo(container); + + onRendered(); + }); + } + } + } + }, + }); + + setTimeout(() => { + const element = instance.itemsContainer(); + const $treeRootNodes = $(element).find(`.${TREEVIEW_ROOT_NODE_CLASS}`); + + const $firstRootNode = $treeRootNodes.eq(0); + const $firstGroupCheckboxes = $firstRootNode.find(`.${CHECKBOX_CLASS}`); + + assert.ok($firstGroupCheckboxes.eq(0).hasClass(CHECKBOX_CHECKED_CLASS), 'First group root checkbox has selected class'); + assert.ok($firstGroupCheckboxes.eq(1).hasClass(CHECKBOX_CHECKED_CLASS), 'First group nested node checkbox has selected class'); + assert.ok($firstGroupCheckboxes.eq(2).hasClass(CHECKBOX_CHECKED_CLASS), 'First group leaf node 1 checkbox has selected class'); + assert.ok($firstGroupCheckboxes.eq(3).hasClass(CHECKBOX_CHECKED_CLASS), 'First group leaf node 2 checkbox has selected class'); + + const $secondRootNode = $treeRootNodes.eq(1); + const $secondGroupCheckboxes = $secondRootNode.find(`.${CHECKBOX_CLASS}`); + + assert.ok($secondGroupCheckboxes.eq(0).hasClass(CHECKBOX_INDETERMINATE_CLASS), 'Second group root checkbox has indeterminate class'); + assert.ok($secondGroupCheckboxes.eq(1).hasClass(CHECKBOX_INDETERMINATE_CLASS), 'Second group nested node checkbox has indeterminate class'); + assert.notOk($secondGroupCheckboxes.eq(2).hasClass(CHECKBOX_CHECKED_CLASS), 'Second group leaf node 1 checkbox has not selected class'); + assert.ok($secondGroupCheckboxes.eq(3).hasClass(CHECKBOX_CHECKED_CLASS), 'Second group leaf node 2 checkbox has selected class'); + + const $thirdRootNode = $treeRootNodes.eq(2); + const $thirdGroupCheckboxes = $thirdRootNode.find(`.${CHECKBOX_CLASS}`); + + assert.notOk($thirdGroupCheckboxes.eq(0).hasClass(CHECKBOX_CHECKED_CLASS), 'Third group root checkbox has not selected class'); + assert.notOk($thirdGroupCheckboxes.eq(1).hasClass(CHECKBOX_CHECKED_CLASS), 'Third group nested node checkbox has not selected class'); + assert.notOk($thirdGroupCheckboxes.eq(2).hasClass(CHECKBOX_CHECKED_CLASS), 'Third group leaf node 1 checkbox has not selected class'); + assert.notOk($thirdGroupCheckboxes.eq(3).hasClass(CHECKBOX_CHECKED_CLASS), 'Third group leaf node 2 checkbox has not selected class'); + + done(); + }, asyncTemplateRenderTimeout); + }); + }); +}); diff --git a/packages/devextreme/testing/tests/DevExpress.viz.core/export.tests.js b/packages/devextreme/testing/tests/DevExpress.viz.core/export.tests.js index 80f69969948f..d57164bf2cbd 100644 --- a/packages/devextreme/testing/tests/DevExpress.viz.core/export.tests.js +++ b/packages/devextreme/testing/tests/DevExpress.viz.core/export.tests.js @@ -737,6 +737,31 @@ QUnit.test('exportFromMarkup. backgroundColor from current theme', function(asse } }); +QUnit.test('exportWidgets method should be able export plain DOM element (T1266360)', function(assert) { + const optionMock = () => { + return { + fileName: 'chart', + format: 'PNG', + }; + }; + + const widgets = [ + createMockWidget({ height: 25, width: 10 }, optionMock), + ]; + + widgets.forEach(widget => { + const originalElement = widget.element(); + widget.element = sinon.stub().returns(originalElement[0]); // Get native DOM + }); + + try { + exportModule.exportWidgets(widgets); + assert.strictEqual(clientExporter.export.getCall(0).args[0].nodeName, 'svg', 'combineMarkups should pass to export DOM node'); + } catch(error) { + assert.ok(false, 'exportWidgets doesnt work when plain DOM is passed as argument'); + } +}); + QUnit.test('exportWidgets method should pass to export markup as DOM node', function(assert) { const optionMock = (param) => { if(param === 'theme') return 'someTheme.light'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c60ec4faa1a2..59117959b435 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,13 +10,13 @@ importers: devDependencies: '@nx/devkit': specifier: 18.3.4 - version: 18.3.4(nx@19.4.2(@swc/core@1.9.2)) + version: 18.3.4(nx@19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15))) '@nx/jest': specifier: 19.4.2 - version: 19.4.2(@babel/traverse@7.25.9)(@swc/core@1.9.2)(@types/node@20.12.8)(node-notifier@9.0.1)(nx@19.4.2(@swc/core@1.9.2))(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5))(typescript@5.4.5) + version: 19.4.2(@babel/traverse@7.25.9)(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(node-notifier@9.0.1)(nx@19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15)))(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5))(typescript@5.4.5) '@nx/js': specifier: 19.4.2 - version: 19.4.2(@babel/traverse@7.25.9)(@swc/core@1.9.2)(@types/node@20.12.8)(nx@19.4.2(@swc/core@1.9.2))(typescript@5.4.5) + version: 19.4.2(@babel/traverse@7.25.9)(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(nx@19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15)))(typescript@5.4.5) '@types/jest': specifier: 29.5.12 version: 29.5.12 @@ -55,7 +55,7 @@ importers: version: 8.0.3 jest: specifier: 29.7.0 - version: 29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)) + version: 29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)) jspdf-autotable: specifier: 3.8.3 version: 3.8.3(jspdf@2.5.2) @@ -64,7 +64,7 @@ importers: version: 14.0.1(enquirer@2.4.1) nx: specifier: 19.4.2 - version: 19.4.2(@swc/core@1.9.2) + version: 19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15)) nx-cloud: specifier: 19.0.0 version: 19.0.0 @@ -85,7 +85,7 @@ importers: version: 3.0.6 ts-node: specifier: 10.9.2 - version: 10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5) + version: 10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5) vue: specifier: 3.4.27 version: 3.4.27(typescript@5.4.5) @@ -143,7 +143,7 @@ importers: devDependencies: '@angular-devkit/build-angular': specifier: 17.3.11 - version: 17.3.11(binmexszxhwi53xqtyuwwlssei) + version: 17.3.11(qwvpz4std2ihowmewzmfizrlqa) '@angular/cli': specifier: 17.3.11 version: 17.3.11(chokidar@3.6.0) @@ -164,7 +164,7 @@ importers: version: 7.0.3 ts-node: specifier: 10.9.2 - version: 10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@5.4.5) + version: 10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@5.4.5) typescript: specifier: 5.4.5 version: 5.4.5 @@ -489,7 +489,7 @@ importers: version: 1.1.4 jest: specifier: 29.7.0 - version: 29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)) + version: 29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)) jest-environment-node: specifier: 29.7.0 version: 29.7.0 @@ -537,7 +537,7 @@ importers: version: 2.6.2 ts-node: specifier: 10.9.2 - version: 10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5) + version: 10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5) apps/react: dependencies: @@ -562,22 +562,22 @@ importers: version: 18.0.11 css-loader: specifier: 6.10.0 - version: 6.10.0(webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4)) + version: 6.10.0(webpack@5.94.0) source-map-loader: specifier: 4.0.2 - version: 4.0.2(webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4)) + version: 4.0.2(webpack@5.94.0) style-loader: specifier: 3.3.4 - version: 3.3.4(webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4)) + version: 3.3.4(webpack@5.94.0) ts-loader: specifier: 9.5.1 - version: 9.5.1(typescript@5.4.5)(webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4)) + version: 9.5.1(typescript@5.4.5)(webpack@5.94.0) tsconfig-paths-webpack-plugin: specifier: 4.1.0 version: 4.1.0 webpack: specifier: 5.94.0 - version: 5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4) + version: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(webpack-cli@5.1.4) webpack-cli: specifier: 5.1.4 version: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.94.0) @@ -593,6 +593,9 @@ importers: devextreme-react: specifier: workspace:~ version: link:../../packages/devextreme-react/npm + html-react-parser: + specifier: ^5.2.2 + version: 5.2.2(@types/react@18.0.38)(react@18.0.0) inferno: specifier: ^7.4.9 version: 7.4.11 @@ -657,19 +660,19 @@ importers: version: 2.0.0-beta.7(vue@3.2.47) css-loader: specifier: 6.10.0 - version: 6.10.0(webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4)) + version: 6.10.0(webpack@5.94.0) minimatch: specifier: 4.2.3 version: 4.2.3 source-map-loader: specifier: 4.0.2 - version: 4.0.2(webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4)) + version: 4.0.2(webpack@5.94.0) style-loader: specifier: 3.3.4 - version: 3.3.4(webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4)) + version: 3.3.4(webpack@5.94.0) ts-loader: specifier: 9.5.1 - version: 9.5.1(typescript@4.9.5)(webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4)) + version: 9.5.1(typescript@4.9.5)(webpack@5.94.0) tsconfig-paths-webpack-plugin: specifier: 4.1.0 version: 4.1.0 @@ -678,16 +681,16 @@ importers: version: 4.9.5 url-loader: specifier: 1.1.2 - version: 1.1.2(webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4)) + version: 1.1.2(webpack@5.94.0) vue-loader: specifier: 17.4.2 - version: 17.4.2(@vue/compiler-sfc@3.3.4)(vue@3.2.47)(webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4)) + version: 17.4.2(@vue/compiler-sfc@3.3.4)(vue@3.2.47)(webpack@5.94.0) vue-router: specifier: 4.2.5 version: 4.2.5(vue@3.2.47) webpack: specifier: 5.94.0 - version: 5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4) + version: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(webpack-cli@5.1.4) webpack-cli: specifier: 5.1.4 version: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.94.0) @@ -744,7 +747,7 @@ importers: version: 5.4.11(@types/node@20.12.8)(less@4.2.0)(lightningcss@1.28.1)(sass-embedded@1.66.0)(sass@1.81.0)(terser@5.36.0) webpack: specifier: 5.94.0 - version: 5.94.0(@swc/core@1.9.2)(webpack-cli@4.10.0) + version: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(webpack-cli@4.10.0) webpack-cli: specifier: 4.10.0 version: 4.10.0(webpack@5.94.0) @@ -812,8 +815,8 @@ importers: specifier: 3.0.13 version: 3.0.13 devexpress-diagram: - specifier: 2.2.13 - version: 2.2.13 + specifier: 2.2.15 + version: 2.2.15 devexpress-gantt: specifier: 4.1.56 version: 4.1.56 @@ -853,25 +856,25 @@ importers: version: 7.23.9(@babel/core@7.23.9) '@devextreme-generator/angular': specifier: 3.0.12 - version: 3.0.12(atnximysgm2qhxoullfrc4ld7m) + version: 3.0.12(mktse5lvs4n2jhnoaohf3tcuti) '@devextreme-generator/build-helpers': specifier: 3.0.12 - version: 3.0.12(jx45iv34cplwvde5i3ekp234ua) + version: 3.0.12(ectyjufymdsezb24bv2esmeafq) '@devextreme-generator/core': specifier: 3.0.12 - version: 3.0.12(atnximysgm2qhxoullfrc4ld7m) + version: 3.0.12(mktse5lvs4n2jhnoaohf3tcuti) '@devextreme-generator/declarations': specifier: 3.0.12 version: 3.0.12 '@devextreme-generator/inferno': specifier: 3.0.12 - version: 3.0.12(atnximysgm2qhxoullfrc4ld7m) + version: 3.0.12(mktse5lvs4n2jhnoaohf3tcuti) '@devextreme-generator/react': specifier: 3.0.12 - version: 3.0.12(atnximysgm2qhxoullfrc4ld7m) + version: 3.0.12(mktse5lvs4n2jhnoaohf3tcuti) '@devextreme-generator/vue': specifier: 3.0.12 - version: 3.0.12(atnximysgm2qhxoullfrc4ld7m) + version: 3.0.12(mktse5lvs4n2jhnoaohf3tcuti) '@jest/globals': specifier: 29.7.0 version: 29.7.0 @@ -958,7 +961,7 @@ importers: version: 17.1.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5))(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@4.9.5))(eslint-plugin-import@2.29.0(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0))(eslint@8.56.0) eslint-config-devextreme: specifier: 1.1.5 - version: 1.1.5(dviz67724z5lsegdjr2jecno6q) + version: 1.1.5(2wu47vven6w2q4wadgy2aiclqi) eslint-plugin-i18n: specifier: 2.3.0 version: 2.3.0 @@ -967,7 +970,7 @@ importers: version: 2.29.0(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0) eslint-plugin-jest: specifier: 27.6.0 - version: 27.6.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)))(typescript@4.9.5) + version: 27.6.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)))(typescript@4.9.5) eslint-plugin-jest-formatting: specifier: 3.1.0 version: 3.1.0(eslint@8.56.0) @@ -1195,7 +1198,7 @@ importers: version: 1.3.0 string-replace-loader: specifier: 3.1.0 - version: 3.1.0(webpack@5.94.0(@swc/core@1.9.2)) + version: 3.1.0(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))) stylelint: specifier: 15.11.0 version: 15.11.0(typescript@4.9.5) @@ -1219,13 +1222,13 @@ importers: version: 0.0.11 terser-webpack-plugin: specifier: 5.3.9 - version: 5.3.9(@swc/core@1.9.2)(webpack@5.94.0(@swc/core@1.9.2)) + version: 5.3.9(@swc/core@1.9.2(@swc/helpers@0.5.15))(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))) through2: specifier: 2.0.5 version: 2.0.5 ts-jest: specifier: 29.1.2 - version: 29.1.2(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)))(typescript@4.9.5) + version: 29.1.2(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)))(typescript@4.9.5) tsc-alias: specifier: 1.8.10 version: 1.8.10 @@ -1246,10 +1249,10 @@ importers: version: 1.1.0 webpack: specifier: 5.94.0 - version: 5.94.0(@swc/core@1.9.2)(esbuild@0.20.1) + version: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1) webpack-stream: specifier: 7.0.0 - version: 7.0.0(webpack@5.94.0(@swc/core@1.9.2)) + version: 7.0.0(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))) yaml: specifier: 2.5.0 version: 2.5.0 @@ -1362,7 +1365,7 @@ importers: version: 2.0.1(karma@6.4.4) karma-webpack: specifier: 5.0.1 - version: 5.0.1(webpack@5.94.0(@swc/core@1.9.2)) + version: 5.0.1(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))) ng-packagr: specifier: 17.3.0 version: 17.3.0(@angular/compiler-cli@17.3.12(@angular/compiler@17.3.12(@angular/core@17.3.12(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.4.5))(tslib@2.6.3)(typescript@5.4.5) @@ -1386,7 +1389,7 @@ importers: version: 5.4.5 webpack: specifier: 5.94.0 - version: 5.94.0(@swc/core@1.9.2)(esbuild@0.20.1) + version: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1) yargs: specifier: 17.7.2 version: 17.7.2 @@ -1402,7 +1405,7 @@ importers: version: 29.5.12 ts-jest: specifier: 29.1.3 - version: 29.1.3(@babel/core@7.24.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.0))(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)))(typescript@5.4.5) + version: 29.1.3(@babel/core@7.24.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.0))(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)))(typescript@5.4.5) packages/devextreme-react: dependencies: @@ -1439,7 +1442,7 @@ importers: version: 17.1.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5))(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0))(eslint@8.56.0) eslint-config-devextreme: specifier: 1.1.5 - version: 1.1.5(6j36mkhhhj37fby37wfpgi52ue) + version: 1.1.5(7y2kapk54x3chxrybrye64ikau) gulp: specifier: 4.0.2 version: 4.0.2 @@ -1463,7 +1466,7 @@ importers: version: 18.0.0(react@18.0.0) ts-jest: specifier: 29.1.3 - version: 29.1.3(@babel/core@7.24.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.0))(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)))(typescript@4.9.5) + version: 29.1.3(@babel/core@7.24.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.0))(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)))(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -1518,7 +1521,7 @@ importers: version: 2.0.5 ts-jest: specifier: 29.1.2 - version: 29.1.2(@babel/core@7.24.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.0))(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)))(typescript@5.4.5) + version: 29.1.2(@babel/core@7.24.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.0))(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)))(typescript@5.4.5) packages/devextreme-themebuilder: dependencies: @@ -1564,7 +1567,7 @@ importers: version: 17.1.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5))(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0))(eslint@8.56.0) eslint-config-devextreme: specifier: 1.1.5 - version: 1.1.5(zsmfaq7l2ubx6arjipvaytbeca) + version: 1.1.5(s7hytideue6mgyvvaok756vzia) express: specifier: 4.21.1 version: 4.21.1 @@ -1585,10 +1588,10 @@ importers: version: 18.0.1 ts-jest: specifier: 29.1.2 - version: 29.1.2(@babel/core@7.24.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.0))(jest@29.7.0(@types/node@20.11.17)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@4.9.5)))(typescript@4.9.5) + version: 29.1.2(@babel/core@7.24.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.0))(jest@29.7.0(@types/node@20.11.17)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@4.9.5)))(typescript@4.9.5) ts-node: specifier: 10.9.2 - version: 10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@4.9.5) + version: 10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -1622,7 +1625,7 @@ importers: version: 17.1.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5))(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0))(eslint@8.56.0) eslint-config-devextreme: specifier: 1.1.5 - version: 1.1.5(6j36mkhhhj37fby37wfpgi52ue) + version: 1.1.5(7y2kapk54x3chxrybrye64ikau) eslint-plugin-spellcheck: specifier: 0.0.20 version: 0.0.20(eslint@8.56.0) @@ -1643,7 +1646,7 @@ importers: version: 29.7.0 ts-jest: specifier: 29.1.3 - version: 29.1.3(@babel/core@7.24.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.0))(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)))(typescript@4.9.5) + version: 29.1.3(@babel/core@7.24.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.0))(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)))(typescript@4.9.5) typescript: specifier: 4.9.5 version: 4.9.5 @@ -8080,8 +8083,8 @@ packages: engines: {node: '>=0.8.0'} hasBin: true - devexpress-diagram@2.2.13: - resolution: {integrity: sha512-OfAcfcFWJYlU/1kMtqrSSQUY3GQWKPHqU27A9e+TzFEhxI8XDyIPOCOnslRxnzYkfhB/RZ7hbGv9U0aHmtVbRg==} + devexpress-diagram@2.2.15: + resolution: {integrity: sha512-Ky/lnC32odQvn9m61USN3lg2GLkJGAeeui5dScdtKXHJXxIm+b8FCflyye+ALyinqgbFug7JCdQdLZm243FHYg==} devexpress-diagram@2.2.5: resolution: {integrity: sha512-gxcBYNChijcfmsOnWOWPmTGxIPn+eGIf3635PUgpTBL/WPpDVZJsXdEV+eXe92OEX0MopcyxiCSJZN5o3zZ4hQ==} @@ -8215,8 +8218,8 @@ packages: domutils@2.8.0: resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} - domutils@3.1.0: - resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + domutils@3.2.1: + resolution: {integrity: sha512-xWXmuRnN9OMP6ptPd2+H0cCbcYBULa5YDTbMm/2lvkWvNA3O4wcW+GvzooqBuNM8yy6pl3VIAeJTUUWUbfI5Fw==} dot-case@3.0.4: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} @@ -8379,6 +8382,10 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + entities@6.0.0: + resolution: {integrity: sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==} + engines: {node: '>=0.12'} + env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -9440,7 +9447,7 @@ packages: resolution: {integrity: sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==} engines: {node: '>= 4.0'} os: [darwin] - deprecated: The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2 + deprecated: Upgrade to fsevents v2 to mitigate potential security issues fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} @@ -10025,6 +10032,9 @@ packages: html-dom-parser@1.2.0: resolution: {integrity: sha512-2HIpFMvvffsXHFUFjso0M9LqM+1Lm22BF+Df2ba+7QHJXjk63pWChEnI6YG27eaWqUdfnh5/Vy+OXrNTtepRsg==} + html-dom-parser@5.0.13: + resolution: {integrity: sha512-B7JonBuAfG32I7fDouUQEogBrz3jK9gAuN1r1AaXpED6dIhtg/JwiSRhjGL7aOJwRz3HU4efowCjQBaoXiREqg==} + html-element-map@1.3.1: resolution: {integrity: sha512-6XMlxrAFX4UEEGxctfFnmrFaaZFNf9i5fNuV5wZ3WWQ4FVaNP1aX1LkX9j2mfEx1NpjeE/rL3nmgEn23GdFmrg==} @@ -10048,6 +10058,15 @@ packages: peerDependencies: react: 0.14 || 15 || 16 || 17 || 18 + html-react-parser@5.2.2: + resolution: {integrity: sha512-yA5012CJGSFWYZsgYzfr6HXJgDap38/AEP4ra8Cw+WHIi2ZRDXRX/QVYdumRf1P8zKyScKd6YOrWYvVEiPfGKg==} + peerDependencies: + '@types/react': 0.14 || 15 || 16 || 17 || 18 || 19 + react: 0.14 || 15 || 16 || 17 || 18 || 19 + peerDependenciesMeta: + '@types/react': + optional: true + html-tags@3.3.1: resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} engines: {node: '>=8'} @@ -10104,6 +10123,9 @@ packages: uncss: optional: true + htmlparser2@10.0.0: + resolution: {integrity: sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==} + htmlparser2@6.1.0: resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} @@ -10362,6 +10384,9 @@ packages: inline-style-parser@0.1.1: resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + inline-style-parser@0.2.4: + resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} + inquirer@9.2.15: resolution: {integrity: sha512-vI2w4zl/mDluHt9YEQ/543VTCwPKWiHzKtm9dM2V0NdFcqEexDAjUHzO1oA60HRNaVifGXXM1tRRNluLVHa0Kg==} engines: {node: '>=18'} @@ -13453,6 +13478,9 @@ packages: react-property@2.0.0: resolution: {integrity: sha512-kzmNjIgU32mO4mmH5+iUyrqlpFQhF8K2k7eZ4fdLSOPFrD1XgEuSBv9LDEgxRXTMBqMd8ppT0x6TIzqE5pdGdw==} + react-property@2.0.2: + resolution: {integrity: sha512-+PbtI3VuDV0l6CleQMsx2gtK0JZbZKbpdu5ynr+lbsuvtmgbNcS3VM0tuY2QjFNOcWxvXeHjDpy42RO+4U2rug==} + react-refresh@0.14.2: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} @@ -14701,9 +14729,15 @@ packages: style-to-js@1.1.1: resolution: {integrity: sha512-RJ18Z9t2B02sYhZtfWKQq5uplVctgvjTfLWT7+Eb1zjUjIrWzX5SdlkwLGQozrqarTmEzJJ/YmdNJCUNI47elg==} + style-to-js@1.1.16: + resolution: {integrity: sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==} + style-to-object@0.3.0: resolution: {integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==} + style-to-object@1.0.8: + resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} + stylelint-config-html@1.1.0: resolution: {integrity: sha512-IZv4IVESjKLumUGi+HWeb7skgO6/g4VMuAYrJdlqQFndgbj6WJAXPhaysvBiXefX79upBdQVumgYcdd17gCpjQ==} engines: {node: ^12 || >=14} @@ -16390,11 +16424,11 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular-devkit/build-angular@17.3.11(binmexszxhwi53xqtyuwwlssei)': + '@angular-devkit/build-angular@17.3.11(qwvpz4std2ihowmewzmfizrlqa)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.1703.11(chokidar@3.6.0) - '@angular-devkit/build-webpack': 0.1703.11(chokidar@3.6.0)(webpack-dev-server@4.15.1(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)))(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)) + '@angular-devkit/build-webpack': 0.1703.11(chokidar@3.6.0)(webpack-dev-server@4.15.1(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)))(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)) '@angular-devkit/core': 17.3.11(chokidar@3.6.0) '@angular/compiler-cli': 17.3.12(@angular/compiler@17.3.12(@angular/core@17.3.12(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.4.5) '@babel/core': 7.24.0 @@ -16407,16 +16441,16 @@ snapshots: '@babel/preset-env': 7.24.0(@babel/core@7.24.0) '@babel/runtime': 7.24.0 '@discoveryjs/json-ext': 0.5.7 - '@ngtools/webpack': 17.3.11(@angular/compiler-cli@17.3.12(@angular/compiler@17.3.12(@angular/core@17.3.12(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.4.5))(typescript@5.4.5)(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)) + '@ngtools/webpack': 17.3.11(@angular/compiler-cli@17.3.12(@angular/compiler@17.3.12(@angular/core@17.3.12(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.4.5))(typescript@5.4.5)(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)) '@vitejs/plugin-basic-ssl': 1.1.0(vite@5.1.8(@types/node@20.11.17)(less@4.2.0)(lightningcss@1.28.1)(sass@1.71.1)(terser@5.29.1)) ansi-colors: 4.1.3 autoprefixer: 10.4.18(postcss@8.4.35) - babel-loader: 9.1.3(@babel/core@7.24.0)(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)) + babel-loader: 9.1.3(@babel/core@7.24.0)(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)) babel-plugin-istanbul: 6.1.1 browserslist: 4.24.2 - copy-webpack-plugin: 11.0.0(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)) + copy-webpack-plugin: 11.0.0(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)) critters: 0.0.22 - css-loader: 6.10.0(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)) + css-loader: 6.10.0(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)) esbuild-wasm: 0.20.1 fast-glob: 3.3.2 http-proxy-middleware: 2.0.7(@types/express@4.17.21) @@ -16425,11 +16459,11 @@ snapshots: jsonc-parser: 3.2.1 karma-source-map-support: 1.4.0 less: 4.2.0 - less-loader: 11.1.0(less@4.2.0)(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)) - license-webpack-plugin: 4.0.2(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)) + less-loader: 11.1.0(less@4.2.0)(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)) + license-webpack-plugin: 4.0.2(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)) loader-utils: 3.2.1 magic-string: 0.30.8 - mini-css-extract-plugin: 2.8.1(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)) + mini-css-extract-plugin: 2.8.1(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)) mrmime: 2.0.0 open: 8.4.2 ora: 5.4.1 @@ -16437,13 +16471,13 @@ snapshots: picomatch: 4.0.1 piscina: 4.4.0 postcss: 8.4.35 - postcss-loader: 8.1.1(postcss@8.4.35)(typescript@5.4.5)(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)) + postcss-loader: 8.1.1(postcss@8.4.35)(typescript@5.4.5)(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)) resolve-url-loader: 5.0.0 rxjs: 7.8.1 sass: 1.71.1 - sass-loader: 14.1.1(sass-embedded@1.66.0)(sass@1.71.1)(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)) + sass-loader: 14.1.1(sass-embedded@1.66.0)(sass@1.71.1)(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)) semver: 7.6.0 - source-map-loader: 5.0.0(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)) + source-map-loader: 5.0.0(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)) source-map-support: 0.5.21 terser: 5.29.1 tree-kill: 1.2.2 @@ -16452,15 +16486,15 @@ snapshots: undici: 6.11.1 vite: 5.1.8(@types/node@20.11.17)(less@4.2.0)(lightningcss@1.28.1)(sass@1.71.1)(terser@5.29.1) watchpack: 2.4.0 - webpack: 5.94.0(@swc/core@1.9.2)(esbuild@0.20.1) - webpack-dev-middleware: 6.1.2(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)) - webpack-dev-server: 4.15.1(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1) + webpack-dev-middleware: 6.1.2(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)) + webpack-dev-server: 4.15.1(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)) webpack-merge: 5.10.0 - webpack-subresource-integrity: 5.1.0(html-webpack-plugin@5.6.3(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)))(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)) + webpack-subresource-integrity: 5.1.0(html-webpack-plugin@5.6.3(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)))(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)) optionalDependencies: '@angular/platform-server': 17.3.12(@angular/animations@17.3.12(@angular/core@17.3.12(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@17.3.12(@angular/core@17.3.12(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/compiler@17.3.12(@angular/core@17.3.12(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/core@17.3.12(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@17.3.12(@angular/animations@17.3.12(@angular/core@17.3.12(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@17.3.12(@angular/core@17.3.12(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@17.3.12(rxjs@7.8.1)(zone.js@0.14.10))) esbuild: 0.20.1 - jest: 29.7.0(@types/node@20.11.17)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@5.4.5)) + jest: 29.7.0(@types/node@20.11.17)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@5.4.5)) jest-environment-jsdom: 29.7.0 karma: 6.4.4 ng-packagr: 17.3.0(@angular/compiler-cli@17.3.12(@angular/compiler@17.3.12(@angular/core@17.3.12(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.4.5))(tslib@2.6.3)(typescript@5.4.5) @@ -16483,12 +16517,12 @@ snapshots: - utf-8-validate - webpack-cli - '@angular-devkit/build-webpack@0.1703.11(chokidar@3.6.0)(webpack-dev-server@4.15.1(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)))(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1))': + '@angular-devkit/build-webpack@0.1703.11(chokidar@3.6.0)(webpack-dev-server@4.15.1(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)))(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1))': dependencies: '@angular-devkit/architect': 0.1703.11(chokidar@3.6.0) rxjs: 7.8.1 - webpack: 5.94.0(@swc/core@1.9.2)(esbuild@0.20.1) - webpack-dev-server: 4.15.1(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1) + webpack-dev-server: 4.15.1(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)) transitivePeerDependencies: - chokidar @@ -18346,9 +18380,9 @@ snapshots: dependencies: tslib: 2.3.1 - '@devextreme-generator/angular@3.0.12(atnximysgm2qhxoullfrc4ld7m)': + '@devextreme-generator/angular@3.0.12(mktse5lvs4n2jhnoaohf3tcuti)': dependencies: - '@devextreme-generator/core': 3.0.12(atnximysgm2qhxoullfrc4ld7m) + '@devextreme-generator/core': 3.0.12(mktse5lvs4n2jhnoaohf3tcuti) transitivePeerDependencies: - '@typescript-eslint/eslint-plugin' - eslint @@ -18363,17 +18397,17 @@ snapshots: - eslint-plugin-spellcheck - supports-color - '@devextreme-generator/build-helpers@3.0.12(jx45iv34cplwvde5i3ekp234ua)': + '@devextreme-generator/build-helpers@3.0.12(ectyjufymdsezb24bv2esmeafq)': dependencies: - '@devextreme-generator/angular': 3.0.12(atnximysgm2qhxoullfrc4ld7m) - '@devextreme-generator/core': 3.0.12(atnximysgm2qhxoullfrc4ld7m) - '@devextreme-generator/inferno': 3.0.12(atnximysgm2qhxoullfrc4ld7m) - '@devextreme-generator/preact': 3.0.12(atnximysgm2qhxoullfrc4ld7m) - '@devextreme-generator/react': 3.0.12(atnximysgm2qhxoullfrc4ld7m) + '@devextreme-generator/angular': 3.0.12(mktse5lvs4n2jhnoaohf3tcuti) + '@devextreme-generator/core': 3.0.12(mktse5lvs4n2jhnoaohf3tcuti) + '@devextreme-generator/inferno': 3.0.12(mktse5lvs4n2jhnoaohf3tcuti) + '@devextreme-generator/preact': 3.0.12(mktse5lvs4n2jhnoaohf3tcuti) + '@devextreme-generator/react': 3.0.12(mktse5lvs4n2jhnoaohf3tcuti) loader-utils: 2.0.4 typescript: 4.3.5 vinyl: 2.2.1 - webpack: 5.94.0(@swc/core@1.9.2)(esbuild@0.20.1) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1) transitivePeerDependencies: - '@swc/core' - '@typescript-eslint/eslint-plugin' @@ -18392,10 +18426,10 @@ snapshots: - uglify-js - webpack-cli - '@devextreme-generator/core@3.0.12(atnximysgm2qhxoullfrc4ld7m)': + '@devextreme-generator/core@3.0.12(mktse5lvs4n2jhnoaohf3tcuti)': dependencies: code-block-writer: 10.1.1 - eslint-config-devextreme: 0.2.0(atnximysgm2qhxoullfrc4ld7m) + eslint-config-devextreme: 0.2.0(mktse5lvs4n2jhnoaohf3tcuti) prettier: 2.8.8 prettier-eslint: 13.0.0 typescript: 4.3.5 @@ -18418,11 +18452,11 @@ snapshots: react: 17.0.2 react-dom: 17.0.2(react@17.0.2) - '@devextreme-generator/inferno@3.0.12(atnximysgm2qhxoullfrc4ld7m)': + '@devextreme-generator/inferno@3.0.12(mktse5lvs4n2jhnoaohf3tcuti)': dependencies: - '@devextreme-generator/core': 3.0.12(atnximysgm2qhxoullfrc4ld7m) - '@devextreme-generator/preact': 3.0.12(atnximysgm2qhxoullfrc4ld7m) - '@devextreme-generator/react': 3.0.12(atnximysgm2qhxoullfrc4ld7m) + '@devextreme-generator/core': 3.0.12(mktse5lvs4n2jhnoaohf3tcuti) + '@devextreme-generator/preact': 3.0.12(mktse5lvs4n2jhnoaohf3tcuti) + '@devextreme-generator/react': 3.0.12(mktse5lvs4n2jhnoaohf3tcuti) transitivePeerDependencies: - '@typescript-eslint/eslint-plugin' - eslint @@ -18437,10 +18471,10 @@ snapshots: - eslint-plugin-spellcheck - supports-color - '@devextreme-generator/preact@3.0.12(atnximysgm2qhxoullfrc4ld7m)': + '@devextreme-generator/preact@3.0.12(mktse5lvs4n2jhnoaohf3tcuti)': dependencies: - '@devextreme-generator/core': 3.0.12(atnximysgm2qhxoullfrc4ld7m) - '@devextreme-generator/react': 3.0.12(atnximysgm2qhxoullfrc4ld7m) + '@devextreme-generator/core': 3.0.12(mktse5lvs4n2jhnoaohf3tcuti) + '@devextreme-generator/react': 3.0.12(mktse5lvs4n2jhnoaohf3tcuti) transitivePeerDependencies: - '@typescript-eslint/eslint-plugin' - eslint @@ -18455,9 +18489,9 @@ snapshots: - eslint-plugin-spellcheck - supports-color - '@devextreme-generator/react@3.0.12(atnximysgm2qhxoullfrc4ld7m)': + '@devextreme-generator/react@3.0.12(mktse5lvs4n2jhnoaohf3tcuti)': dependencies: - '@devextreme-generator/core': 3.0.12(atnximysgm2qhxoullfrc4ld7m) + '@devextreme-generator/core': 3.0.12(mktse5lvs4n2jhnoaohf3tcuti) transitivePeerDependencies: - '@typescript-eslint/eslint-plugin' - eslint @@ -18472,10 +18506,10 @@ snapshots: - eslint-plugin-spellcheck - supports-color - '@devextreme-generator/vue@3.0.12(atnximysgm2qhxoullfrc4ld7m)': + '@devextreme-generator/vue@3.0.12(mktse5lvs4n2jhnoaohf3tcuti)': dependencies: - '@devextreme-generator/angular': 3.0.12(atnximysgm2qhxoullfrc4ld7m) - '@devextreme-generator/core': 3.0.12(atnximysgm2qhxoullfrc4ld7m) + '@devextreme-generator/angular': 3.0.12(mktse5lvs4n2jhnoaohf3tcuti) + '@devextreme-generator/core': 3.0.12(mktse5lvs4n2jhnoaohf3tcuti) prettier: 2.8.8 transitivePeerDependencies: - '@typescript-eslint/eslint-plugin' @@ -19001,7 +19035,7 @@ snapshots: jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@4.9.5))': + '@jest/core@29.7.0(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@4.9.5))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0(node-notifier@9.0.1) @@ -19015,7 +19049,7 @@ snapshots: exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.12.8)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@4.9.5)) + jest-config: 29.7.0(@types/node@20.12.8)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@4.9.5)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -19038,7 +19072,7 @@ snapshots: - supports-color - ts-node - '@jest/core@29.7.0(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@5.4.5))': + '@jest/core@29.7.0(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@5.4.5))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0(node-notifier@9.0.1) @@ -19052,7 +19086,7 @@ snapshots: exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.12.8)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@5.4.5)) + jest-config: 29.7.0(@types/node@20.12.8)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@5.4.5)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -19076,7 +19110,7 @@ snapshots: - ts-node optional: true - '@jest/core@29.7.0(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5))': + '@jest/core@29.7.0(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0(node-notifier@9.0.1) @@ -19090,7 +19124,7 @@ snapshots: exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.12.8)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)) + jest-config: 29.7.0(@types/node@20.12.8)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -19406,11 +19440,11 @@ snapshots: pump: 3.0.2 tar-fs: 2.1.1 - '@ngtools/webpack@17.3.11(@angular/compiler-cli@17.3.12(@angular/compiler@17.3.12(@angular/core@17.3.12(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.4.5))(typescript@5.4.5)(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1))': + '@ngtools/webpack@17.3.11(@angular/compiler-cli@17.3.12(@angular/compiler@17.3.12(@angular/core@17.3.12(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.4.5))(typescript@5.4.5)(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1))': dependencies: '@angular/compiler-cli': 17.3.12(@angular/compiler@17.3.12(@angular/core@17.3.12(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.4.5) typescript: 5.4.5 - webpack: 5.94.0(@swc/core@1.9.2)(esbuild@0.20.1) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1) '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': dependencies: @@ -19492,21 +19526,21 @@ snapshots: - bluebird - supports-color - '@nrwl/devkit@18.3.4(nx@19.4.2(@swc/core@1.9.2))': + '@nrwl/devkit@18.3.4(nx@19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15)))': dependencies: - '@nx/devkit': 18.3.4(nx@19.4.2(@swc/core@1.9.2)) + '@nx/devkit': 18.3.4(nx@19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15))) transitivePeerDependencies: - nx - '@nrwl/devkit@19.4.2(nx@19.4.2(@swc/core@1.9.2))': + '@nrwl/devkit@19.4.2(nx@19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15)))': dependencies: - '@nx/devkit': 19.4.2(nx@19.4.2(@swc/core@1.9.2)) + '@nx/devkit': 19.4.2(nx@19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15))) transitivePeerDependencies: - nx - '@nrwl/jest@19.4.2(@babel/traverse@7.25.9)(@swc/core@1.9.2)(@types/node@20.12.8)(node-notifier@9.0.1)(nx@19.4.2(@swc/core@1.9.2))(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5))(typescript@5.4.5)': + '@nrwl/jest@19.4.2(@babel/traverse@7.25.9)(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(node-notifier@9.0.1)(nx@19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15)))(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5))(typescript@5.4.5)': dependencies: - '@nx/jest': 19.4.2(@babel/traverse@7.25.9)(@swc/core@1.9.2)(@types/node@20.12.8)(node-notifier@9.0.1)(nx@19.4.2(@swc/core@1.9.2))(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5))(typescript@5.4.5) + '@nx/jest': 19.4.2(@babel/traverse@7.25.9)(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(node-notifier@9.0.1)(nx@19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15)))(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5))(typescript@5.4.5) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -19522,9 +19556,9 @@ snapshots: - typescript - verdaccio - '@nrwl/js@19.4.2(@babel/traverse@7.25.9)(@swc/core@1.9.2)(@types/node@20.12.8)(nx@19.4.2(@swc/core@1.9.2))(typescript@5.4.5)': + '@nrwl/js@19.4.2(@babel/traverse@7.25.9)(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(nx@19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15)))(typescript@5.4.5)': dependencies: - '@nx/js': 19.4.2(@babel/traverse@7.25.9)(@swc/core@1.9.2)(@types/node@20.12.8)(nx@19.4.2(@swc/core@1.9.2))(typescript@5.4.5) + '@nx/js': 19.4.2(@babel/traverse@7.25.9)(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(nx@19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15)))(typescript@5.4.5) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -19543,59 +19577,59 @@ snapshots: transitivePeerDependencies: - debug - '@nrwl/tao@19.4.2(@swc/core@1.9.2)': + '@nrwl/tao@19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15))': dependencies: - nx: 19.4.2(@swc/core@1.9.2) + nx: 19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15)) tslib: 2.6.3 transitivePeerDependencies: - '@swc-node/register' - '@swc/core' - debug - '@nrwl/workspace@19.4.2(@swc/core@1.9.2)': + '@nrwl/workspace@19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15))': dependencies: - '@nx/workspace': 19.4.2(@swc/core@1.9.2) + '@nx/workspace': 19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15)) transitivePeerDependencies: - '@swc-node/register' - '@swc/core' - debug - '@nx/devkit@18.3.4(nx@19.4.2(@swc/core@1.9.2))': + '@nx/devkit@18.3.4(nx@19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15)))': dependencies: - '@nrwl/devkit': 18.3.4(nx@19.4.2(@swc/core@1.9.2)) + '@nrwl/devkit': 18.3.4(nx@19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15))) ejs: 3.1.10 enquirer: 2.3.6 ignore: 5.3.1 - nx: 19.4.2(@swc/core@1.9.2) + nx: 19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15)) semver: 7.6.3 tmp: 0.2.3 tslib: 2.6.3 yargs-parser: 21.1.1 - '@nx/devkit@19.4.2(nx@19.4.2(@swc/core@1.9.2))': + '@nx/devkit@19.4.2(nx@19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15)))': dependencies: - '@nrwl/devkit': 19.4.2(nx@19.4.2(@swc/core@1.9.2)) + '@nrwl/devkit': 19.4.2(nx@19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15))) ejs: 3.1.10 enquirer: 2.3.6 ignore: 5.3.1 minimatch: 9.0.3 - nx: 19.4.2(@swc/core@1.9.2) + nx: 19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15)) semver: 7.6.3 tmp: 0.2.3 tslib: 2.6.3 yargs-parser: 21.1.1 - '@nx/jest@19.4.2(@babel/traverse@7.25.9)(@swc/core@1.9.2)(@types/node@20.12.8)(node-notifier@9.0.1)(nx@19.4.2(@swc/core@1.9.2))(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5))(typescript@5.4.5)': + '@nx/jest@19.4.2(@babel/traverse@7.25.9)(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(node-notifier@9.0.1)(nx@19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15)))(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5))(typescript@5.4.5)': dependencies: '@jest/reporters': 29.7.0(node-notifier@9.0.1) '@jest/test-result': 29.7.0 - '@nrwl/jest': 19.4.2(@babel/traverse@7.25.9)(@swc/core@1.9.2)(@types/node@20.12.8)(node-notifier@9.0.1)(nx@19.4.2(@swc/core@1.9.2))(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5))(typescript@5.4.5) - '@nx/devkit': 19.4.2(nx@19.4.2(@swc/core@1.9.2)) - '@nx/js': 19.4.2(@babel/traverse@7.25.9)(@swc/core@1.9.2)(@types/node@20.12.8)(nx@19.4.2(@swc/core@1.9.2))(typescript@5.4.5) + '@nrwl/jest': 19.4.2(@babel/traverse@7.25.9)(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(node-notifier@9.0.1)(nx@19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15)))(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5))(typescript@5.4.5) + '@nx/devkit': 19.4.2(nx@19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15))) + '@nx/js': 19.4.2(@babel/traverse@7.25.9)(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(nx@19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15)))(typescript@5.4.5) '@phenomnomnominal/tsquery': 5.0.1(typescript@5.4.5) chalk: 4.1.2 identity-obj-proxy: 3.0.0 - jest-config: 29.7.0(@types/node@20.12.8)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)) + jest-config: 29.7.0(@types/node@20.12.8)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)) jest-resolve: 29.7.0 jest-util: 29.7.0 minimatch: 9.0.3 @@ -19617,7 +19651,7 @@ snapshots: - typescript - verdaccio - '@nx/js@19.4.2(@babel/traverse@7.25.9)(@swc/core@1.9.2)(@types/node@20.12.8)(nx@19.4.2(@swc/core@1.9.2))(typescript@5.4.5)': + '@nx/js@19.4.2(@babel/traverse@7.25.9)(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(nx@19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15)))(typescript@5.4.5)': dependencies: '@babel/core': 7.23.9 '@babel/plugin-proposal-decorators': 7.25.9(@babel/core@7.23.9) @@ -19626,9 +19660,9 @@ snapshots: '@babel/preset-env': 7.23.9(@babel/core@7.23.9) '@babel/preset-typescript': 7.26.0(@babel/core@7.23.9) '@babel/runtime': 7.26.0 - '@nrwl/js': 19.4.2(@babel/traverse@7.25.9)(@swc/core@1.9.2)(@types/node@20.12.8)(nx@19.4.2(@swc/core@1.9.2))(typescript@5.4.5) - '@nx/devkit': 19.4.2(nx@19.4.2(@swc/core@1.9.2)) - '@nx/workspace': 19.4.2(@swc/core@1.9.2) + '@nrwl/js': 19.4.2(@babel/traverse@7.25.9)(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(nx@19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15)))(typescript@5.4.5) + '@nx/devkit': 19.4.2(nx@19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15))) + '@nx/workspace': 19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15)) babel-plugin-const-enum: 1.2.0(@babel/core@7.23.9) babel-plugin-macros: 2.8.0 babel-plugin-transform-typescript-metadata: 0.3.2(@babel/core@7.23.9)(@babel/traverse@7.25.9) @@ -19645,7 +19679,7 @@ snapshots: ora: 5.3.0 semver: 7.6.3 source-map-support: 0.5.19 - ts-node: 10.9.1(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5) + ts-node: 10.9.1(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5) tsconfig-paths: 4.2.0 tslib: 2.6.3 transitivePeerDependencies: @@ -19689,13 +19723,13 @@ snapshots: '@nx/nx-win32-x64-msvc@19.4.2': optional: true - '@nx/workspace@19.4.2(@swc/core@1.9.2)': + '@nx/workspace@19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15))': dependencies: - '@nrwl/workspace': 19.4.2(@swc/core@1.9.2) - '@nx/devkit': 19.4.2(nx@19.4.2(@swc/core@1.9.2)) + '@nrwl/workspace': 19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15)) + '@nx/devkit': 19.4.2(nx@19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15))) chalk: 4.1.2 enquirer: 2.3.6 - nx: 19.4.2(@swc/core@1.9.2) + nx: 19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15)) tslib: 2.6.3 yargs-parser: 21.1.1 transitivePeerDependencies: @@ -19716,13 +19750,15 @@ snapshots: transitivePeerDependencies: - '@parcel/core' - '@parcel/cache@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.15))': + '@parcel/cache@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.15))(@swc/helpers@0.5.15)': dependencies: '@parcel/core': 2.12.0(@swc/helpers@0.5.15) '@parcel/fs': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.15))(@swc/helpers@0.5.15) '@parcel/logger': 2.12.0 '@parcel/utils': 2.12.0 lmdb: 2.8.5 + transitivePeerDependencies: + - '@swc/helpers' '@parcel/codeframe@2.12.0': dependencies: @@ -19782,7 +19818,7 @@ snapshots: '@parcel/core@2.12.0(@swc/helpers@0.5.15)': dependencies: '@mischnic/json-sourcemap': 0.1.1 - '@parcel/cache': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.15)) + '@parcel/cache': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.15))(@swc/helpers@0.5.15) '@parcel/diagnostic': 2.12.0 '@parcel/events': 2.12.0 '@parcel/fs': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.15))(@swc/helpers@0.5.15) @@ -20197,7 +20233,7 @@ snapshots: '@parcel/types@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.15))(@swc/helpers@0.5.15)': dependencies: - '@parcel/cache': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.15)) + '@parcel/cache': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.15))(@swc/helpers@0.5.15) '@parcel/diagnostic': 2.12.0 '@parcel/fs': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.15))(@swc/helpers@0.5.15) '@parcel/package-manager': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.15))(@swc/helpers@0.5.15) @@ -22700,33 +22736,33 @@ snapshots: '@webcomponents/custom-elements@1.6.0': {} - '@webpack-cli/configtest@1.2.0(webpack-cli@4.10.0(webpack@5.94.0))(webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@4.10.0))': + '@webpack-cli/configtest@1.2.0(webpack-cli@4.10.0)(webpack@5.94.0)': dependencies: - webpack: 5.94.0(@swc/core@1.9.2)(webpack-cli@4.10.0) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(webpack-cli@4.10.0) webpack-cli: 4.10.0(webpack@5.94.0) - '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4(webpack-dev-server@4.15.1)(webpack@5.94.0))(webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4))': + '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.94.0)': dependencies: - webpack: 5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.94.0) - '@webpack-cli/info@1.5.0(webpack-cli@4.10.0(webpack@5.94.0))': + '@webpack-cli/info@1.5.0(webpack-cli@4.10.0)': dependencies: envinfo: 7.14.0 webpack-cli: 4.10.0(webpack@5.94.0) - '@webpack-cli/info@2.0.2(webpack-cli@5.1.4(webpack-dev-server@4.15.1)(webpack@5.94.0))(webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4))': + '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.94.0)': dependencies: - webpack: 5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.94.0) - '@webpack-cli/serve@1.7.0(webpack-cli@4.10.0(webpack@5.94.0))': + '@webpack-cli/serve@1.7.0(webpack-cli@4.10.0)': dependencies: webpack-cli: 4.10.0(webpack@5.94.0) - '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4(webpack-dev-server@4.15.1)(webpack@5.94.0))(webpack-dev-server@4.15.1(webpack-cli@5.1.4)(webpack@5.94.0))(webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4))': + '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@4.15.1)(webpack@5.94.0)': dependencies: - webpack: 5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.94.0) optionalDependencies: webpack-dev-server: 4.15.1(webpack-cli@5.1.4)(webpack@5.94.0) @@ -23418,12 +23454,12 @@ snapshots: - supports-color optional: true - babel-loader@9.1.3(@babel/core@7.24.0)(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)): + babel-loader@9.1.3(@babel/core@7.24.0)(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)): dependencies: '@babel/core': 7.24.0 find-cache-dir: 4.0.0 schema-utils: 4.2.0 - webpack: 5.94.0(@swc/core@1.9.2)(esbuild@0.20.1) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1) babel-loader@9.2.1(@babel/core@7.23.9)(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.18.20)): dependencies: @@ -24659,7 +24695,7 @@ snapshots: each-props: 1.3.2 is-plain-object: 5.0.0 - copy-webpack-plugin@11.0.0(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)): + copy-webpack-plugin@11.0.0(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)): dependencies: fast-glob: 3.3.2 glob-parent: 6.0.2 @@ -24667,7 +24703,7 @@ snapshots: normalize-path: 3.0.0 schema-utils: 4.2.0 serialize-javascript: 6.0.2 - webpack: 5.94.0(@swc/core@1.9.2)(esbuild@0.20.1) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1) core-js-compat@3.39.0: dependencies: @@ -24771,13 +24807,13 @@ snapshots: safe-buffer: 5.2.1 sha.js: 2.4.11 - create-jest@29.7.0(@types/node@20.11.17)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@4.9.5)): + create-jest@29.7.0(@types/node@20.11.17)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@4.9.5)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.11.17)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@4.9.5)) + jest-config: 29.7.0(@types/node@20.11.17)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@4.9.5)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -24786,13 +24822,13 @@ snapshots: - supports-color - ts-node - create-jest@29.7.0(@types/node@20.11.17)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@5.4.5)): + create-jest@29.7.0(@types/node@20.11.17)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@5.4.5)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.11.17)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@5.4.5)) + jest-config: 29.7.0(@types/node@20.11.17)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@5.4.5)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -24802,13 +24838,13 @@ snapshots: - ts-node optional: true - create-jest@29.7.0(@types/node@20.12.8)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)): + create-jest@29.7.0(@types/node@20.12.8)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.12.8)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)) + jest-config: 29.7.0(@types/node@20.12.8)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -24886,7 +24922,7 @@ snapshots: optionalDependencies: webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.18.20) - css-loader@6.10.0(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)): + css-loader@6.10.0(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)): dependencies: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 @@ -24897,9 +24933,9 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.6.3 optionalDependencies: - webpack: 5.94.0(@swc/core@1.9.2)(esbuild@0.20.1) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1) - css-loader@6.10.0(webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4)): + css-loader@6.10.0(webpack@5.94.0): dependencies: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 @@ -24910,7 +24946,7 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.6.3 optionalDependencies: - webpack: 5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(webpack-cli@5.1.4) css-select@4.3.0: dependencies: @@ -24925,7 +24961,7 @@ snapshots: boolbase: 1.0.0 css-what: 6.1.0 domhandler: 5.0.3 - domutils: 3.1.0 + domutils: 3.2.1 nth-check: 2.1.1 css-selector-tokenizer@0.7.3: @@ -25326,7 +25362,7 @@ snapshots: defined: 1.0.1 minimist: 1.2.8 - devexpress-diagram@2.2.13: + devexpress-diagram@2.2.15: dependencies: '@devexpress/utils': 1.4.3 es6-object-assign: 1.1.0 @@ -25497,7 +25533,7 @@ snapshots: domelementtype: 2.3.0 domhandler: 4.3.1 - domutils@3.1.0: + domutils@3.2.1: dependencies: dom-serializer: 2.0.0 domelementtype: 2.3.0 @@ -25670,6 +25706,8 @@ snapshots: entities@4.5.0: {} + entities@6.0.0: {} + env-paths@2.2.1: {} envinfo@7.14.0: {} @@ -26180,60 +26218,60 @@ snapshots: eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0))(eslint@8.56.0) eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0) - eslint-config-devextreme@0.2.0(atnximysgm2qhxoullfrc4ld7m): + eslint-config-devextreme@0.2.0(mktse5lvs4n2jhnoaohf3tcuti): dependencies: '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5) eslint: 8.56.0 eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.0(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0))(eslint@8.56.0) eslint-config-airbnb-typescript: 17.1.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5))(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@4.9.5))(eslint-plugin-import@2.29.0(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0))(eslint@8.56.0) eslint-plugin-import: 2.29.0(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0) - eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)))(typescript@4.9.5) + eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)))(typescript@4.9.5) eslint-plugin-jest-formatting: 3.1.0(eslint@8.56.0) eslint-plugin-jsx-a11y: 6.8.0(eslint@8.56.0) eslint-plugin-qunit: 7.3.4(eslint@8.56.0) eslint-plugin-rulesdir: 0.2.2 eslint-plugin-spellcheck: 0.0.20(eslint@8.56.0) - eslint-config-devextreme@1.1.5(6j36mkhhhj37fby37wfpgi52ue): + eslint-config-devextreme@1.1.5(2wu47vven6w2q4wadgy2aiclqi): dependencies: - '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5) + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5) eslint: 8.56.0 - eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0))(eslint@8.56.0) - eslint-config-airbnb-typescript: 17.1.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5))(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0))(eslint@8.56.0) - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0) - eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)))(typescript@4.9.5) + eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.0(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0))(eslint@8.56.0) + eslint-config-airbnb-typescript: 17.1.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5))(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@4.9.5))(eslint-plugin-import@2.29.0(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0))(eslint@8.56.0) + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0) + eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)))(typescript@4.9.5) eslint-plugin-jest-formatting: 3.1.0(eslint@8.56.0) eslint-plugin-jsx-a11y: 6.8.0(eslint@8.56.0) eslint-plugin-qunit: 7.3.4(eslint@8.56.0) eslint-plugin-rulesdir: 0.2.2 eslint-plugin-spellcheck: 0.0.20(eslint@8.56.0) - stylelint: 16.5.0(typescript@4.9.5) - stylelint-config-standard: 35.0.0(stylelint@16.5.0(typescript@4.9.5)) + stylelint: 15.11.0(typescript@4.9.5) + stylelint-config-standard: 35.0.0(stylelint@15.11.0(typescript@4.9.5)) - eslint-config-devextreme@1.1.5(dviz67724z5lsegdjr2jecno6q): + eslint-config-devextreme@1.1.5(7y2kapk54x3chxrybrye64ikau): dependencies: - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5) + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5) eslint: 8.56.0 - eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.0(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0))(eslint@8.56.0) - eslint-config-airbnb-typescript: 17.1.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5))(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@4.9.5))(eslint-plugin-import@2.29.0(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0))(eslint@8.56.0) - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0) - eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)))(typescript@4.9.5) + eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0))(eslint@8.56.0) + eslint-config-airbnb-typescript: 17.1.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5))(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0))(eslint@8.56.0) + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0) + eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)))(typescript@4.9.5) eslint-plugin-jest-formatting: 3.1.0(eslint@8.56.0) eslint-plugin-jsx-a11y: 6.8.0(eslint@8.56.0) eslint-plugin-qunit: 7.3.4(eslint@8.56.0) eslint-plugin-rulesdir: 0.2.2 eslint-plugin-spellcheck: 0.0.20(eslint@8.56.0) - stylelint: 15.11.0(typescript@4.9.5) - stylelint-config-standard: 35.0.0(stylelint@15.11.0(typescript@4.9.5)) + stylelint: 16.5.0(typescript@4.9.5) + stylelint-config-standard: 35.0.0(stylelint@16.5.0(typescript@4.9.5)) - eslint-config-devextreme@1.1.5(zsmfaq7l2ubx6arjipvaytbeca): + eslint-config-devextreme@1.1.5(s7hytideue6mgyvvaok756vzia): dependencies: '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5) eslint: 8.56.0 eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0))(eslint@8.56.0) eslint-config-airbnb-typescript: 17.1.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5))(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0))(eslint@8.56.0) eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0) - eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(jest@29.7.0(@types/node@20.11.17)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@4.9.5)))(typescript@4.9.5) + eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(jest@29.7.0(@types/node@20.11.17)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@4.9.5)))(typescript@4.9.5) eslint-plugin-jest-formatting: 3.1.0(eslint@8.56.0) eslint-plugin-jsx-a11y: 6.8.0(eslint@8.56.0) eslint-plugin-qunit: 7.3.4(eslint@8.56.0) @@ -26346,35 +26384,35 @@ snapshots: dependencies: eslint: 8.56.0 - eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)))(typescript@4.9.5): + eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)))(typescript@4.9.5): dependencies: '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@4.9.5) eslint: 8.56.0 optionalDependencies: '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5) - jest: 29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)) + jest: 29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(jest@29.7.0(@types/node@20.11.17)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@4.9.5)))(typescript@4.9.5): + eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(jest@29.7.0(@types/node@20.11.17)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@4.9.5)))(typescript@4.9.5): dependencies: '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@4.9.5) eslint: 8.56.0 optionalDependencies: '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5) - jest: 29.7.0(@types/node@20.11.17)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@4.9.5)) + jest: 29.7.0(@types/node@20.11.17)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@4.9.5)) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)))(typescript@4.9.5): + eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)))(typescript@4.9.5): dependencies: '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@4.9.5) eslint: 8.56.0 optionalDependencies: '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5) - jest: 29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)) + jest: 29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)) transitivePeerDependencies: - supports-color - typescript @@ -28175,6 +28213,11 @@ snapshots: domhandler: 4.3.1 htmlparser2: 7.2.0 + html-dom-parser@5.0.13: + dependencies: + domhandler: 5.0.3 + htmlparser2: 10.0.0 + html-element-map@1.3.1: dependencies: array.prototype.filter: 1.0.4 @@ -28206,6 +28249,16 @@ snapshots: react-property: 2.0.0 style-to-js: 1.1.1 + html-react-parser@5.2.2(@types/react@18.0.38)(react@18.0.0): + dependencies: + domhandler: 5.0.3 + html-dom-parser: 5.0.13 + react: 18.0.0 + react-property: 2.0.2 + style-to-js: 1.1.16 + optionalDependencies: + '@types/react': 18.0.38 + html-tags@3.3.1: {} html-void-elements@3.0.0: {} @@ -28220,7 +28273,7 @@ snapshots: optionalDependencies: webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.18.20) - html-webpack-plugin@5.6.3(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)): + html-webpack-plugin@5.6.3(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -28228,7 +28281,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.2.1 optionalDependencies: - webpack: 5.94.0(@swc/core@1.9.2)(esbuild@0.20.1) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1) optional: true html2canvas@1.4.1: @@ -28252,6 +28305,13 @@ snapshots: transitivePeerDependencies: - typescript + htmlparser2@10.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.2.1 + entities: 6.0.0 + htmlparser2@6.1.0: dependencies: domelementtype: 2.3.0 @@ -28270,7 +28330,7 @@ snapshots: dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 - domutils: 3.1.0 + domutils: 3.2.1 entities: 4.5.0 http-cache-semantics@4.1.1: {} @@ -28529,6 +28589,8 @@ snapshots: inline-style-parser@0.1.1: {} + inline-style-parser@0.2.4: {} + inquirer@9.2.15: dependencies: '@ljharb/through': 2.3.13 @@ -29039,16 +29101,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@20.11.17)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@4.9.5)): + jest-cli@29.7.0(@types/node@20.11.17)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@4.9.5)): dependencies: - '@jest/core': 29.7.0(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@4.9.5)) + '@jest/core': 29.7.0(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@4.9.5)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.11.17)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@4.9.5)) + create-jest: 29.7.0(@types/node@20.11.17)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@4.9.5)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@20.11.17)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@4.9.5)) + jest-config: 29.7.0(@types/node@20.11.17)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@4.9.5)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -29060,16 +29122,16 @@ snapshots: - supports-color - ts-node - jest-cli@29.7.0(@types/node@20.11.17)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@5.4.5)): + jest-cli@29.7.0(@types/node@20.11.17)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@5.4.5)): dependencies: - '@jest/core': 29.7.0(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@5.4.5)) + '@jest/core': 29.7.0(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@5.4.5)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.11.17)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@5.4.5)) + create-jest: 29.7.0(@types/node@20.11.17)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@5.4.5)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@20.11.17)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@5.4.5)) + jest-config: 29.7.0(@types/node@20.11.17)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@5.4.5)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -29082,16 +29144,16 @@ snapshots: - ts-node optional: true - jest-cli@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)): + jest-cli@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)): dependencies: - '@jest/core': 29.7.0(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)) + '@jest/core': 29.7.0(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.12.8)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)) + create-jest: 29.7.0(@types/node@20.12.8)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@20.12.8)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)) + jest-config: 29.7.0(@types/node@20.12.8)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -29103,7 +29165,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@20.11.17)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@4.9.5)): + jest-config@29.7.0(@types/node@20.11.17)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@4.9.5)): dependencies: '@babel/core': 7.23.9 '@jest/test-sequencer': 29.7.0 @@ -29129,12 +29191,12 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 20.11.17 - ts-node: 10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@4.9.5) + ts-node: 10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@4.9.5) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@20.11.17)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@5.4.5)): + jest-config@29.7.0(@types/node@20.11.17)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@5.4.5)): dependencies: '@babel/core': 7.23.9 '@jest/test-sequencer': 29.7.0 @@ -29160,13 +29222,13 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 20.11.17 - ts-node: 10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@5.4.5) + ts-node: 10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@5.4.5) transitivePeerDependencies: - babel-plugin-macros - supports-color optional: true - jest-config@29.7.0(@types/node@20.12.8)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@4.9.5)): + jest-config@29.7.0(@types/node@20.12.8)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@4.9.5)): dependencies: '@babel/core': 7.23.9 '@jest/test-sequencer': 29.7.0 @@ -29192,12 +29254,12 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 20.12.8 - ts-node: 10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@4.9.5) + ts-node: 10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@4.9.5) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@20.12.8)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@5.4.5)): + jest-config@29.7.0(@types/node@20.12.8)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@5.4.5)): dependencies: '@babel/core': 7.23.9 '@jest/test-sequencer': 29.7.0 @@ -29223,13 +29285,13 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 20.12.8 - ts-node: 10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@5.4.5) + ts-node: 10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@5.4.5) transitivePeerDependencies: - babel-plugin-macros - supports-color optional: true - jest-config@29.7.0(@types/node@20.12.8)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)): + jest-config@29.7.0(@types/node@20.12.8)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)): dependencies: '@babel/core': 7.23.9 '@jest/test-sequencer': 29.7.0 @@ -29255,7 +29317,7 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 20.12.8 - ts-node: 10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5) + ts-node: 10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -29501,12 +29563,12 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@20.11.17)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@4.9.5)): + jest@29.7.0(@types/node@20.11.17)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@4.9.5)): dependencies: - '@jest/core': 29.7.0(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@4.9.5)) + '@jest/core': 29.7.0(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@4.9.5)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@20.11.17)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@4.9.5)) + jest-cli: 29.7.0(@types/node@20.11.17)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@4.9.5)) optionalDependencies: node-notifier: 9.0.1 transitivePeerDependencies: @@ -29515,12 +29577,12 @@ snapshots: - supports-color - ts-node - jest@29.7.0(@types/node@20.11.17)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@5.4.5)): + jest@29.7.0(@types/node@20.11.17)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@5.4.5)): dependencies: - '@jest/core': 29.7.0(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@5.4.5)) + '@jest/core': 29.7.0(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@5.4.5)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@20.11.17)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@5.4.5)) + jest-cli: 29.7.0(@types/node@20.11.17)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@5.4.5)) optionalDependencies: node-notifier: 9.0.1 transitivePeerDependencies: @@ -29530,12 +29592,12 @@ snapshots: - ts-node optional: true - jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)): + jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)): dependencies: - '@jest/core': 29.7.0(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)) + '@jest/core': 29.7.0(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)) + jest-cli: 29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)) optionalDependencies: node-notifier: 9.0.1 transitivePeerDependencies: @@ -29783,11 +29845,11 @@ snapshots: dependencies: source-map-support: 0.5.21 - karma-webpack@5.0.1(webpack@5.94.0(@swc/core@1.9.2)): + karma-webpack@5.0.1(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))): dependencies: glob: 7.2.3 minimatch: 9.0.5 - webpack: 5.94.0(@swc/core@1.9.2)(esbuild@0.20.1) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1) webpack-merge: 4.2.2 karma@6.4.4: @@ -29899,11 +29961,11 @@ snapshots: lead@4.0.0: {} - less-loader@11.1.0(less@4.2.0)(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)): + less-loader@11.1.0(less@4.2.0)(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)): dependencies: klona: 2.0.6 less: 4.2.0 - webpack: 5.94.0(@swc/core@1.9.2)(esbuild@0.20.1) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1) less@4.2.0: dependencies: @@ -29926,11 +29988,11 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - license-webpack-plugin@4.0.2(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)): + license-webpack-plugin@4.0.2(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)): dependencies: webpack-sources: 3.2.3 optionalDependencies: - webpack: 5.94.0(@swc/core@1.9.2)(esbuild@0.20.1) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1) lie@3.3.0: dependencies: @@ -30689,11 +30751,11 @@ snapshots: min-indent@1.0.1: {} - mini-css-extract-plugin@2.8.1(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)): + mini-css-extract-plugin@2.8.1(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)): dependencies: schema-utils: 4.2.0 tapable: 2.2.1 - webpack: 5.94.0(@swc/core@1.9.2)(esbuild@0.20.1) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1) minimalistic-assert@1.0.1: {} @@ -31231,9 +31293,9 @@ snapshots: transitivePeerDependencies: - debug - nx@19.4.2(@swc/core@1.9.2): + nx@19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15)): dependencies: - '@nrwl/tao': 19.4.2(@swc/core@1.9.2) + '@nrwl/tao': 19.4.2(@swc/core@1.9.2(@swc/helpers@0.5.15)) '@yarnpkg/lockfile': 1.1.0 '@yarnpkg/parsers': 3.0.0-rc.46 '@zkochan/js-yaml': 0.0.7 @@ -31914,14 +31976,14 @@ snapshots: postcss: 8.4.38 postcss-safe-parser: 6.0.0(postcss@8.4.38) - postcss-loader@8.1.1(postcss@8.4.35)(typescript@5.4.5)(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)): + postcss-loader@8.1.1(postcss@8.4.35)(typescript@5.4.5)(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)): dependencies: cosmiconfig: 9.0.0(typescript@5.4.5) jiti: 1.21.6 postcss: 8.4.35 semver: 7.6.3 optionalDependencies: - webpack: 5.94.0(@swc/core@1.9.2)(esbuild@0.20.1) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1) transitivePeerDependencies: - typescript @@ -32383,6 +32445,8 @@ snapshots: react-property@2.0.0: {} + react-property@2.0.2: {} + react-refresh@0.14.2: {} react-refresh@0.9.0: {} @@ -33076,13 +33140,13 @@ snapshots: sass-embedded-win32-ia32: 1.66.0 sass-embedded-win32-x64: 1.66.0 - sass-loader@14.1.1(sass-embedded@1.66.0)(sass@1.71.1)(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)): + sass-loader@14.1.1(sass-embedded@1.66.0)(sass@1.71.1)(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)): dependencies: neo-async: 2.6.2 optionalDependencies: sass: 1.71.1 sass-embedded: 1.66.0 - webpack: 5.94.0(@swc/core@1.9.2)(esbuild@0.20.1) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1) sass-lookup@5.0.1: dependencies: @@ -33431,17 +33495,17 @@ snapshots: source-map-js@1.2.1: {} - source-map-loader@4.0.2(webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4)): + source-map-loader@4.0.2(webpack@5.94.0): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.1 - webpack: 5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(webpack-cli@5.1.4) - source-map-loader@5.0.0(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)): + source-map-loader@5.0.0(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.1 - webpack: 5.94.0(@swc/core@1.9.2)(esbuild@0.20.1) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1) source-map-resolve@0.5.3: dependencies: @@ -33674,11 +33738,11 @@ snapshots: char-regex: 1.0.2 strip-ansi: 6.0.1 - string-replace-loader@3.1.0(webpack@5.94.0(@swc/core@1.9.2)): + string-replace-loader@3.1.0(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.94.0(@swc/core@1.9.2)(esbuild@0.20.1) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1) string-width@1.0.2: dependencies: @@ -33815,9 +33879,9 @@ snapshots: dependencies: webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.18.20) - style-loader@3.3.4(webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4)): + style-loader@3.3.4(webpack@5.94.0): dependencies: - webpack: 5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(webpack-cli@5.1.4) style-search@0.1.0: {} @@ -33825,10 +33889,18 @@ snapshots: dependencies: style-to-object: 0.3.0 + style-to-js@1.1.16: + dependencies: + style-to-object: 1.0.8 + style-to-object@0.3.0: dependencies: inline-style-parser: 0.1.1 + style-to-object@1.0.8: + dependencies: + inline-style-parser: 0.2.4 + stylelint-config-html@1.1.0(postcss-html@1.7.0)(stylelint@16.5.0(typescript@5.4.5)): dependencies: postcss-html: 1.7.0 @@ -34293,37 +34365,26 @@ snapshots: '@swc/core': 1.9.2(@swc/helpers@0.5.15) esbuild: 0.18.20 - terser-webpack-plugin@5.3.10(@swc/core@1.9.2)(esbuild@0.20.1)(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)): + terser-webpack-plugin@5.3.10(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.36.0 - webpack: 5.94.0(@swc/core@1.9.2)(esbuild@0.20.1) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1) optionalDependencies: '@swc/core': 1.9.2(@swc/helpers@0.5.15) esbuild: 0.20.1 - terser-webpack-plugin@5.3.10(@swc/core@1.9.2)(webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@4.10.0)): - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - jest-worker: 27.5.1 - schema-utils: 3.3.0 - serialize-javascript: 6.0.2 - terser: 5.36.0 - webpack: 5.94.0(@swc/core@1.9.2)(webpack-cli@4.10.0) - optionalDependencies: - '@swc/core': 1.9.2(@swc/helpers@0.5.15) - - terser-webpack-plugin@5.3.10(@swc/core@1.9.2)(webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4)): + terser-webpack-plugin@5.3.10(@swc/core@1.9.2(@swc/helpers@0.5.15))(webpack@5.94.0): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.36.0 - webpack: 5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(webpack-cli@5.1.4) optionalDependencies: '@swc/core': 1.9.2(@swc/helpers@0.5.15) @@ -34339,14 +34400,14 @@ snapshots: '@swc/core': 1.9.2(@swc/helpers@0.5.15) esbuild: 0.18.20 - terser-webpack-plugin@5.3.9(@swc/core@1.9.2)(webpack@5.94.0(@swc/core@1.9.2)): + terser-webpack-plugin@5.3.9(@swc/core@1.9.2(@swc/helpers@0.5.15))(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.36.0 - webpack: 5.94.0(@swc/core@1.9.2)(esbuild@0.20.1) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1) optionalDependencies: '@swc/core': 1.9.2(@swc/helpers@0.5.15) @@ -34935,11 +34996,11 @@ snapshots: ts-dedent@2.2.0: {} - ts-jest@29.1.2(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)))(typescript@4.9.5): + ts-jest@29.1.2(@babel/core@7.23.9)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.23.9))(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)))(typescript@4.9.5): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)) + jest: 29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -34952,11 +35013,11 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.23.9) - ts-jest@29.1.2(@babel/core@7.24.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.0))(jest@29.7.0(@types/node@20.11.17)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@4.9.5)))(typescript@4.9.5): + ts-jest@29.1.2(@babel/core@7.24.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.0))(jest@29.7.0(@types/node@20.11.17)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@4.9.5)))(typescript@4.9.5): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.11.17)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@4.9.5)) + jest: 29.7.0(@types/node@20.11.17)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@4.9.5)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -34969,11 +35030,11 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.24.0) - ts-jest@29.1.2(@babel/core@7.24.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.0))(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)))(typescript@5.4.5): + ts-jest@29.1.2(@babel/core@7.24.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.0))(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)))(typescript@5.4.5): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)) + jest: 29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -34986,11 +35047,11 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.24.0) - ts-jest@29.1.3(@babel/core@7.24.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.0))(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)))(typescript@4.9.5): + ts-jest@29.1.3(@babel/core@7.24.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.0))(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)))(typescript@4.9.5): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)) + jest: 29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -35004,11 +35065,11 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.24.0) - ts-jest@29.1.3(@babel/core@7.24.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.0))(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)))(typescript@5.4.5): + ts-jest@29.1.3(@babel/core@7.24.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.0))(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)))(typescript@5.4.5): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5)) + jest: 29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -35022,7 +35083,7 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.24.0) - ts-loader@9.5.1(typescript@4.9.5)(webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4)): + ts-loader@9.5.1(typescript@4.9.5)(webpack@5.94.0): dependencies: chalk: 4.1.2 enhanced-resolve: 5.17.1 @@ -35030,9 +35091,9 @@ snapshots: semver: 7.6.3 source-map: 0.7.4 typescript: 4.9.5 - webpack: 5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(webpack-cli@5.1.4) - ts-loader@9.5.1(typescript@5.4.5)(webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4)): + ts-loader@9.5.1(typescript@5.4.5)(webpack@5.94.0): dependencies: chalk: 4.1.2 enhanced-resolve: 5.17.1 @@ -35040,9 +35101,9 @@ snapshots: semver: 7.6.3 source-map: 0.7.4 typescript: 5.4.5 - webpack: 5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(webpack-cli@5.1.4) - ts-node@10.9.1(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5): + ts-node@10.9.1(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 @@ -35062,7 +35123,7 @@ snapshots: optionalDependencies: '@swc/core': 1.9.2(@swc/helpers@0.5.15) - ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@4.9.5): + ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@4.9.5): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 @@ -35082,7 +35143,7 @@ snapshots: optionalDependencies: '@swc/core': 1.9.2(@swc/helpers@0.5.15) - ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.11.17)(typescript@5.4.5): + ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.11.17)(typescript@5.4.5): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 @@ -35102,7 +35163,7 @@ snapshots: optionalDependencies: '@swc/core': 1.9.2(@swc/helpers@0.5.15) - ts-node@10.9.2(@swc/core@1.9.2)(@types/node@20.12.8)(typescript@5.4.5): + ts-node@10.9.2(@swc/core@1.9.2(@swc/helpers@0.5.15))(@types/node@20.12.8)(typescript@5.4.5): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 @@ -35487,12 +35548,12 @@ snapshots: url-join@4.0.1: {} - url-loader@1.1.2(webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4)): + url-loader@1.1.2(webpack@5.94.0): dependencies: loader-utils: 1.4.2 mime: 2.6.0 schema-utils: 1.0.0 - webpack: 5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(webpack-cli@5.1.4) url-parse@1.5.10: dependencies: @@ -35781,12 +35842,12 @@ snapshots: transitivePeerDependencies: - supports-color - vue-loader@17.4.2(@vue/compiler-sfc@3.3.4)(vue@3.2.47)(webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4)): + vue-loader@17.4.2(@vue/compiler-sfc@3.3.4)(vue@3.2.47)(webpack@5.94.0): dependencies: chalk: 4.1.2 hash-sum: 2.0.0 watchpack: 2.4.2 - webpack: 5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(webpack-cli@5.1.4) optionalDependencies: '@vue/compiler-sfc': 3.3.4 vue: 3.2.47 @@ -35857,9 +35918,9 @@ snapshots: webpack-cli@4.10.0(webpack@5.94.0): dependencies: '@discoveryjs/json-ext': 0.5.7 - '@webpack-cli/configtest': 1.2.0(webpack-cli@4.10.0(webpack@5.94.0))(webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@4.10.0)) - '@webpack-cli/info': 1.5.0(webpack-cli@4.10.0(webpack@5.94.0)) - '@webpack-cli/serve': 1.7.0(webpack-cli@4.10.0(webpack@5.94.0)) + '@webpack-cli/configtest': 1.2.0(webpack-cli@4.10.0)(webpack@5.94.0) + '@webpack-cli/info': 1.5.0(webpack-cli@4.10.0) + '@webpack-cli/serve': 1.7.0(webpack-cli@4.10.0) colorette: 2.0.20 commander: 7.2.0 cross-spawn: 7.0.6 @@ -35867,15 +35928,15 @@ snapshots: import-local: 3.2.0 interpret: 2.2.0 rechoir: 0.7.1 - webpack: 5.94.0(@swc/core@1.9.2)(webpack-cli@4.10.0) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(webpack-cli@4.10.0) webpack-merge: 5.10.0 webpack-cli@5.1.4(webpack-dev-server@4.15.1)(webpack@5.94.0): dependencies: '@discoveryjs/json-ext': 0.5.7 - '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4(webpack-dev-server@4.15.1)(webpack@5.94.0))(webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4)) - '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4(webpack-dev-server@4.15.1)(webpack@5.94.0))(webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4)) - '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4(webpack-dev-server@4.15.1)(webpack@5.94.0))(webpack-dev-server@4.15.1(webpack-cli@5.1.4)(webpack@5.94.0))(webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4)) + '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.94.0) + '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.94.0) + '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack-dev-server@4.15.1)(webpack@5.94.0) colorette: 2.0.20 commander: 10.0.1 cross-spawn: 7.0.6 @@ -35884,7 +35945,7 @@ snapshots: import-local: 3.2.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(webpack-cli@5.1.4) webpack-merge: 5.10.0 optionalDependencies: webpack-dev-server: 4.15.1(webpack-cli@5.1.4)(webpack@5.94.0) @@ -35899,25 +35960,25 @@ snapshots: webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.18.20) optional: true - webpack-dev-middleware@5.3.4(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)): + webpack-dev-middleware@5.3.4(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)): dependencies: colorette: 2.0.20 memfs: 3.5.3 mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 4.2.0 - webpack: 5.94.0(@swc/core@1.9.2)(esbuild@0.20.1) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1) - webpack-dev-middleware@5.3.4(webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4)): + webpack-dev-middleware@5.3.4(webpack@5.94.0): dependencies: colorette: 2.0.20 memfs: 3.5.3 mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 4.2.0 - webpack: 5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(webpack-cli@5.1.4) - webpack-dev-middleware@6.1.2(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)): + webpack-dev-middleware@6.1.2(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)): dependencies: colorette: 2.0.20 memfs: 3.5.3 @@ -35925,7 +35986,7 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.2.0 optionalDependencies: - webpack: 5.94.0(@swc/core@1.9.2)(esbuild@0.20.1) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1) webpack-dev-middleware@6.1.3(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.18.20)): dependencies: @@ -35967,10 +36028,10 @@ snapshots: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 5.3.4(webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4)) + webpack-dev-middleware: 5.3.4(webpack@5.94.0) ws: 8.18.0 optionalDependencies: - webpack: 5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.94.0) transitivePeerDependencies: - bufferutil @@ -36019,7 +36080,7 @@ snapshots: - utf-8-validate optional: true - webpack-dev-server@4.15.1(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)): + webpack-dev-server@4.15.1(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -36049,10 +36110,10 @@ snapshots: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 5.3.4(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)) + webpack-dev-middleware: 5.3.4(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)) ws: 8.18.0 optionalDependencies: - webpack: 5.94.0(@swc/core@1.9.2)(esbuild@0.20.1) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1) transitivePeerDependencies: - bufferutil - debug @@ -36077,7 +36138,7 @@ snapshots: webpack-sources@3.2.3: {} - webpack-stream@7.0.0(webpack@5.94.0(@swc/core@1.9.2)): + webpack-stream@7.0.0(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))): dependencies: fancy-log: 1.3.3 lodash.clone: 4.5.0 @@ -36087,14 +36148,14 @@ snapshots: supports-color: 8.1.1 through: 2.3.8 vinyl: 2.2.1 - webpack: 5.94.0(@swc/core@1.9.2)(esbuild@0.20.1) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1) - webpack-subresource-integrity@5.1.0(html-webpack-plugin@5.6.3(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)))(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)): + webpack-subresource-integrity@5.1.0(html-webpack-plugin@5.6.3(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)))(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)): dependencies: typed-assert: 1.0.9 - webpack: 5.94.0(@swc/core@1.9.2)(esbuild@0.20.1) + webpack: 5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1) optionalDependencies: - html-webpack-plugin: 5.6.3(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)) + html-webpack-plugin: 5.6.3(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)) webpack-virtual-modules@0.5.0: {} @@ -36130,7 +36191,7 @@ snapshots: - esbuild - uglify-js - webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1): + webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1): dependencies: '@types/estree': 1.0.6 '@webassemblyjs/ast': 1.14.1 @@ -36152,7 +36213,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.9.2)(esbuild@0.20.1)(webpack@5.94.0(@swc/core@1.9.2)(esbuild@0.20.1)) + terser-webpack-plugin: 5.3.10(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)(webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(esbuild@0.20.1)) watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -36160,7 +36221,7 @@ snapshots: - esbuild - uglify-js - webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@4.10.0): + webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(webpack-cli@4.10.0): dependencies: '@types/estree': 1.0.6 '@webassemblyjs/ast': 1.14.1 @@ -36182,7 +36243,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.9.2)(webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@4.10.0)) + terser-webpack-plugin: 5.3.10(@swc/core@1.9.2(@swc/helpers@0.5.15))(webpack@5.94.0) watchpack: 2.4.2 webpack-sources: 3.2.3 optionalDependencies: @@ -36192,7 +36253,7 @@ snapshots: - esbuild - uglify-js - webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4): + webpack@5.94.0(@swc/core@1.9.2(@swc/helpers@0.5.15))(webpack-cli@5.1.4): dependencies: '@types/estree': 1.0.6 '@webassemblyjs/ast': 1.14.1 @@ -36214,7 +36275,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.9.2)(webpack@5.94.0(@swc/core@1.9.2)(webpack-cli@5.1.4)) + terser-webpack-plugin: 5.3.10(@swc/core@1.9.2(@swc/helpers@0.5.15))(webpack@5.94.0) watchpack: 2.4.2 webpack-sources: 3.2.3 optionalDependencies: