diff --git a/apps/react/package.json b/apps/react/package.json index 19598fdf343c..babea0ae252c 100644 --- a/apps/react/package.json +++ b/apps/react/package.json @@ -22,7 +22,7 @@ "style-loader": "3.3.4", "ts-loader": "9.5.1", "tsconfig-paths-webpack-plugin": "4.1.0", - "webpack": "5.89.0", + "webpack": "5.94.0", "webpack-cli": "5.1.4", "webpack-dev-server": "4.15.1" }, diff --git a/apps/vue/package.json b/apps/vue/package.json index e2cf67bcdfe6..8a3244c3037a 100644 --- a/apps/vue/package.json +++ b/apps/vue/package.json @@ -28,7 +28,7 @@ "url-loader": "1.1.2", "vue-loader": "17.4.2", "vue-router": "4.2.5", - "webpack": "5.89.0", + "webpack": "5.94.0", "webpack-cli": "5.1.4", "webpack-dev-server": "4.15.1" }, diff --git a/e2e/bundlers/package.json b/e2e/bundlers/package.json index 08a30b77cbd2..668189e45a96 100644 --- a/e2e/bundlers/package.json +++ b/e2e/bundlers/package.json @@ -16,7 +16,7 @@ "rimraf": "3.0.2", "rollup": "2.79.1", "vite": "2.9.18", - "webpack": "5.76.0", + "webpack": "5.94.0", "webpack-cli": "4.10.0", "devextreme": "workspace:*" }, diff --git a/packages/devextreme-angular/package.json b/packages/devextreme-angular/package.json index b58d6edb755a..9d2493a888c7 100644 --- a/packages/devextreme-angular/package.json +++ b/packages/devextreme-angular/package.json @@ -62,7 +62,7 @@ "stream-browserify": "3.0.0", "tslib": "2.6.2", "typescript": "4.9.5", - "webpack": "5.89.0", + "webpack": "5.94.0", "yargs": "17.7.2", "zone.js": "0.13.3" }, diff --git a/packages/devextreme-angular/src/ui/autocomplete/index.ts b/packages/devextreme-angular/src/ui/autocomplete/index.ts index bb22a38ccd46..311354cee369 100644 --- a/packages/devextreme-angular/src/ui/autocomplete/index.ts +++ b/packages/devextreme-angular/src/ui/autocomplete/index.ts @@ -27,7 +27,7 @@ import { import { EditorStyle, LabelMode, Mode, Position, SimplifiedSearchMode, TextEditorButton, ValidationMessageMode, ValidationStatus } from 'devextreme/common'; import { Store } from 'devextreme/data'; import DataSource, { Options as DataSourceOptions } from 'devextreme/data/data_source'; -import { ChangeEvent, ClosedEvent, ContentReadyEvent, CopyEvent, CutEvent, DisposingEvent, EnterKeyEvent, FocusInEvent, FocusOutEvent, InitializedEvent, InputEvent, ItemClickEvent, KeyDownEvent, KeyUpEvent, OpenedEvent, OptionChangedEvent, PasteEvent, SelectionChangedEvent, ValueChangedEvent } from 'devextreme/ui/autocomplete'; +import { ChangeEvent, ClosedEvent, ContentReadyEvent, CopyEvent, CutEvent, DisposingEvent, EnterKeyEvent, FocusInEvent, FocusOutEvent, InitializedEvent, InputEvent, ItemClickEvent, KeyDownEvent, KeyUpEvent, OpenedEvent, OptionChangedEvent, PasteEvent, SelectionChangedEvent, SelectionChangingEvent, ValueChangedEvent } from 'devextreme/ui/autocomplete'; import { CollectionWidgetItem } from 'devextreme/ui/collection/ui.collection_widget.base'; import { DropDownPredefinedButton } from 'devextreme/ui/drop_down_editor/ui.drop_down_editor'; import { Properties as dxPopupOptions } from 'devextreme/ui/popup'; @@ -940,6 +940,14 @@ export class DxAutocompleteComponent extends DxComponent implements OnDestroy, C */ @Output() onSelectionChanged: EventEmitter; + /** + + * [descr:dxAutocompleteOptions.onSelectionChanging] + + + */ + @Output() onSelectionChanging: EventEmitter; + /** * [descr:dxAutocompleteOptions.onValueChanged] @@ -1386,6 +1394,7 @@ export class DxAutocompleteComponent extends DxComponent implements OnDestroy, C { subscribe: 'optionChanged', emit: 'onOptionChanged' }, { subscribe: 'paste', emit: 'onPaste' }, { subscribe: 'selectionChanged', emit: 'onSelectionChanged' }, + { subscribe: 'selectionChanging', emit: 'onSelectionChanging' }, { subscribe: 'valueChanged', emit: 'onValueChanged' }, { emit: 'accessKeyChange' }, { emit: 'activeStateEnabledChange' }, diff --git a/packages/devextreme-angular/src/ui/chat/index.ts b/packages/devextreme-angular/src/ui/chat/index.ts index 76c5db468900..3b12df31c558 100644 --- a/packages/devextreme-angular/src/ui/chat/index.ts +++ b/packages/devextreme-angular/src/ui/chat/index.ts @@ -76,7 +76,7 @@ export class DxChatComponent extends DxComponent implements OnDestroy, OnChanges /** - * [descr:WidgetOptions.activeStateEnabled] + * [descr:dxChatOptions.activeStateEnabled] */ @Input() @@ -115,7 +115,7 @@ export class DxChatComponent extends DxComponent implements OnDestroy, OnChanges /** - * [descr:WidgetOptions.focusStateEnabled] + * [descr:dxChatOptions.focusStateEnabled] */ @Input() @@ -154,7 +154,7 @@ export class DxChatComponent extends DxComponent implements OnDestroy, OnChanges /** - * [descr:WidgetOptions.hoverStateEnabled] + * [descr:dxChatOptions.hoverStateEnabled] */ @Input() @@ -192,19 +192,6 @@ export class DxChatComponent extends DxComponent implements OnDestroy, OnChanges } - /** - * [descr:dxChatOptions.title] - - */ - @Input() - get title(): string { - return this._getOption('title'); - } - set title(value: string) { - this._setOption('title', value); - } - - /** * [descr:dxChatOptions.user] @@ -345,13 +332,6 @@ export class DxChatComponent extends DxComponent implements OnDestroy, OnChanges */ @Output() rtlEnabledChange: EventEmitter; - /** - - * This member supports the internal infrastructure and is not intended to be used directly from your code. - - */ - @Output() titleChange: EventEmitter; - /** * This member supports the internal infrastructure and is not intended to be used directly from your code. @@ -411,7 +391,6 @@ export class DxChatComponent extends DxComponent implements OnDestroy, OnChanges { emit: 'hoverStateEnabledChange' }, { emit: 'itemsChange' }, { emit: 'rtlEnabledChange' }, - { emit: 'titleChange' }, { emit: 'userChange' }, { emit: 'visibleChange' }, { emit: 'widthChange' } diff --git a/packages/devextreme-angular/src/ui/list/index.ts b/packages/devextreme-angular/src/ui/list/index.ts index cb53039211c1..c73b775077ce 100644 --- a/packages/devextreme-angular/src/ui/list/index.ts +++ b/packages/devextreme-angular/src/ui/list/index.ts @@ -26,7 +26,7 @@ export { ExplicitTypes } from 'devextreme/ui/list'; import { PageLoadMode, ScrollbarMode, SearchMode, SelectAllMode, SingleMultipleAllOrNone } from 'devextreme/common'; import { Store } from 'devextreme/data'; import DataSource, { Options as DataSourceOptions } from 'devextreme/data/data_source'; -import { ContentReadyEvent, DisposingEvent, dxListItem, GroupRenderedEvent, InitializedEvent, ItemClickEvent, ItemContextMenuEvent, ItemDeletedEvent, ItemDeleteMode, ItemDeletingEvent, ItemHoldEvent, ItemRenderedEvent, ItemReorderedEvent, ItemSwipeEvent, ListMenuMode, OptionChangedEvent, PageLoadingEvent, PullRefreshEvent, ScrollEvent, SelectAllValueChangedEvent, SelectionChangedEvent } from 'devextreme/ui/list'; +import { ContentReadyEvent, DisposingEvent, dxListItem, GroupRenderedEvent, InitializedEvent, ItemClickEvent, ItemContextMenuEvent, ItemDeletedEvent, ItemDeleteMode, ItemDeletingEvent, ItemHoldEvent, ItemRenderedEvent, ItemReorderedEvent, ItemSwipeEvent, ListMenuMode, OptionChangedEvent, PageLoadingEvent, PullRefreshEvent, ScrollEvent, SelectAllValueChangedEvent, SelectionChangedEvent, SelectionChangingEvent } from 'devextreme/ui/list'; import { Properties as dxSortableOptions } from 'devextreme/ui/sortable'; import { Properties as dxTextBoxOptions } from 'devextreme/ui/text_box'; @@ -931,6 +931,14 @@ export class DxListComponent extends DxComponent implem */ @Output() onSelectionChanged: EventEmitter; + /** + + * [descr:dxListOptions.onSelectionChanging] + + + */ + @Output() onSelectionChanging: EventEmitter; + /** * This member supports the internal infrastructure and is not intended to be used directly from your code. @@ -1366,6 +1374,7 @@ export class DxListComponent extends DxComponent implem { subscribe: 'scroll', emit: 'onScroll' }, { subscribe: 'selectAllValueChanged', emit: 'onSelectAllValueChanged' }, { subscribe: 'selectionChanged', emit: 'onSelectionChanged' }, + { subscribe: 'selectionChanging', emit: 'onSelectionChanging' }, { emit: 'accessKeyChange' }, { emit: 'activeStateEnabledChange' }, { emit: 'allowItemDeletingChange' }, diff --git a/packages/devextreme-angular/src/ui/lookup/index.ts b/packages/devextreme-angular/src/ui/lookup/index.ts index 9d205908d5df..3966b99f5250 100644 --- a/packages/devextreme-angular/src/ui/lookup/index.ts +++ b/packages/devextreme-angular/src/ui/lookup/index.ts @@ -28,7 +28,7 @@ import { ApplyValueMode, EditorStyle, LabelMode, Mode, PageLoadMode, Position, S import { Store } from 'devextreme/data'; import DataSource, { Options as DataSourceOptions } from 'devextreme/data/data_source'; import { CollectionWidgetItem } from 'devextreme/ui/collection/ui.collection_widget.base'; -import { ClosedEvent, ContentReadyEvent, DisposingEvent, InitializedEvent, ItemClickEvent, OpenedEvent, OptionChangedEvent, PageLoadingEvent, PullRefreshEvent, ScrollEvent, SelectionChangedEvent, ValueChangedEvent } from 'devextreme/ui/lookup'; +import { ClosedEvent, ContentReadyEvent, DisposingEvent, InitializedEvent, ItemClickEvent, OpenedEvent, OptionChangedEvent, PageLoadingEvent, PullRefreshEvent, ScrollEvent, SelectionChangedEvent, SelectionChangingEvent, ValueChangedEvent } from 'devextreme/ui/lookup'; import { Properties as dxPopoverOptions } from 'devextreme/ui/popover'; import DxLookup from 'devextreme/ui/lookup'; @@ -1094,6 +1094,14 @@ export class DxLookupComponent extends DxComponent implements OnDestroy, Control */ @Output() onSelectionChanged: EventEmitter; + /** + + * [descr:dxLookupOptions.onSelectionChanging] + + + */ + @Output() onSelectionChanging: EventEmitter; + /** * [descr:dxLookupOptions.onValueChanged] @@ -1637,6 +1645,7 @@ export class DxLookupComponent extends DxComponent implements OnDestroy, Control { subscribe: 'pullRefresh', emit: 'onPullRefresh' }, { subscribe: 'scroll', emit: 'onScroll' }, { subscribe: 'selectionChanged', emit: 'onSelectionChanged' }, + { subscribe: 'selectionChanging', emit: 'onSelectionChanging' }, { subscribe: 'valueChanged', emit: 'onValueChanged' }, { emit: 'accessKeyChange' }, { emit: 'activeStateEnabledChange' }, diff --git a/packages/devextreme-angular/src/ui/nested/base/tab-panel-options.ts b/packages/devextreme-angular/src/ui/nested/base/tab-panel-options.ts index 40950dcb0809..b941b65a2472 100644 --- a/packages/devextreme-angular/src/ui/nested/base/tab-panel-options.ts +++ b/packages/devextreme-angular/src/ui/nested/base/tab-panel-options.ts @@ -8,7 +8,7 @@ import { import { Position, TabsIconPosition, TabsStyle } from 'devextreme/common'; import { Store } from 'devextreme/data'; import DataSource, { Options as DataSourceOptions } from 'devextreme/data/data_source'; -import { ContentReadyEvent, DisposingEvent, dxTabPanelItem, InitializedEvent, ItemClickEvent, ItemContextMenuEvent, ItemHoldEvent, ItemRenderedEvent, OptionChangedEvent, SelectionChangedEvent, TitleClickEvent, TitleHoldEvent, TitleRenderedEvent } from 'devextreme/ui/tab_panel'; +import { ContentReadyEvent, DisposingEvent, dxTabPanelItem, InitializedEvent, ItemClickEvent, ItemContextMenuEvent, ItemHoldEvent, ItemRenderedEvent, OptionChangedEvent, SelectionChangedEvent, SelectionChangingEvent, TitleClickEvent, TitleHoldEvent, TitleRenderedEvent } from 'devextreme/ui/tab_panel'; @Component({ template: '' @@ -203,6 +203,13 @@ export abstract class DxoTabPanelOptions extends NestedOption { this._setOption('onSelectionChanged', value); } + get onSelectionChanging(): ((e: SelectionChangingEvent) => void) { + return this._getOption('onSelectionChanging'); + } + set onSelectionChanging(value: ((e: SelectionChangingEvent) => void)) { + this._setOption('onSelectionChanging', value); + } + get onTitleClick(): ((e: TitleClickEvent) => void) { return this._getOption('onTitleClick'); } diff --git a/packages/devextreme-angular/src/ui/nested/tab-panel-options.ts b/packages/devextreme-angular/src/ui/nested/tab-panel-options.ts index ad901b19326e..6a8120be1511 100644 --- a/packages/devextreme-angular/src/ui/nested/tab-panel-options.ts +++ b/packages/devextreme-angular/src/ui/nested/tab-panel-options.ts @@ -60,6 +60,7 @@ import { DxiItemComponent } from './item-dxi'; 'onItemRendered', 'onOptionChanged', 'onSelectionChanged', + 'onSelectionChanging', 'onTitleClick', 'onTitleHold', 'onTitleRendered', diff --git a/packages/devextreme-angular/src/ui/select-box/index.ts b/packages/devextreme-angular/src/ui/select-box/index.ts index 4ea8370fbf29..845949ccea9c 100644 --- a/packages/devextreme-angular/src/ui/select-box/index.ts +++ b/packages/devextreme-angular/src/ui/select-box/index.ts @@ -30,7 +30,7 @@ import DataSource, { Options as DataSourceOptions } from 'devextreme/data/data_s import { CollectionWidgetItem } from 'devextreme/ui/collection/ui.collection_widget.base'; import { DropDownPredefinedButton } from 'devextreme/ui/drop_down_editor/ui.drop_down_editor'; import { Properties as dxPopupOptions } from 'devextreme/ui/popup'; -import { ChangeEvent, ClosedEvent, ContentReadyEvent, CopyEvent, CustomItemCreatingEvent, CutEvent, DisposingEvent, EnterKeyEvent, FocusInEvent, FocusOutEvent, InitializedEvent, InputEvent, ItemClickEvent, KeyDownEvent, KeyUpEvent, OpenedEvent, OptionChangedEvent, PasteEvent, SelectionChangedEvent, ValueChangedEvent } from 'devextreme/ui/select_box'; +import { ChangeEvent, ClosedEvent, ContentReadyEvent, CopyEvent, CustomItemCreatingEvent, CutEvent, DisposingEvent, EnterKeyEvent, FocusInEvent, FocusOutEvent, InitializedEvent, InputEvent, ItemClickEvent, KeyDownEvent, KeyUpEvent, OpenedEvent, OptionChangedEvent, PasteEvent, SelectionChangedEvent, SelectionChangingEvent, ValueChangedEvent } from 'devextreme/ui/select_box'; import DxSelectBox from 'devextreme/ui/select_box'; @@ -1041,6 +1041,14 @@ export class DxSelectBoxComponent extends DxComponent implements OnDestroy, Cont */ @Output() onSelectionChanged: EventEmitter; + /** + + * [descr:dxSelectBoxOptions.onSelectionChanging] + + + */ + @Output() onSelectionChanging: EventEmitter; + /** * [descr:dxSelectBoxOptions.onValueChanged] @@ -1537,6 +1545,7 @@ export class DxSelectBoxComponent extends DxComponent implements OnDestroy, Cont { subscribe: 'optionChanged', emit: 'onOptionChanged' }, { subscribe: 'paste', emit: 'onPaste' }, { subscribe: 'selectionChanged', emit: 'onSelectionChanged' }, + { subscribe: 'selectionChanging', emit: 'onSelectionChanging' }, { subscribe: 'valueChanged', emit: 'onValueChanged' }, { emit: 'acceptCustomValueChange' }, { emit: 'accessKeyChange' }, diff --git a/packages/devextreme-angular/src/ui/tab-panel/index.ts b/packages/devextreme-angular/src/ui/tab-panel/index.ts index c1908d072cc2..d76e3bc850a4 100644 --- a/packages/devextreme-angular/src/ui/tab-panel/index.ts +++ b/packages/devextreme-angular/src/ui/tab-panel/index.ts @@ -26,7 +26,7 @@ export { ExplicitTypes } from 'devextreme/ui/tab_panel'; import { Position, TabsIconPosition, TabsStyle } from 'devextreme/common'; import { Store } from 'devextreme/data'; import DataSource, { Options as DataSourceOptions } from 'devextreme/data/data_source'; -import { ContentReadyEvent, DisposingEvent, dxTabPanelItem, InitializedEvent, ItemClickEvent, ItemContextMenuEvent, ItemHoldEvent, ItemRenderedEvent, OptionChangedEvent, SelectionChangedEvent, TitleClickEvent, TitleHoldEvent, TitleRenderedEvent } from 'devextreme/ui/tab_panel'; +import { ContentReadyEvent, DisposingEvent, dxTabPanelItem, InitializedEvent, ItemClickEvent, ItemContextMenuEvent, ItemHoldEvent, ItemRenderedEvent, OptionChangedEvent, SelectionChangedEvent, SelectionChangingEvent, TitleClickEvent, TitleHoldEvent, TitleRenderedEvent } from 'devextreme/ui/tab_panel'; import DxTabPanel from 'devextreme/ui/tab_panel'; @@ -538,6 +538,14 @@ export class DxTabPanelComponent extends DxComponent im */ @Output() onSelectionChanged: EventEmitter; + /** + + * [descr:dxTabPanelOptions.onSelectionChanging] + + + */ + @Output() onSelectionChanging: EventEmitter; + /** * [descr:dxTabPanelOptions.onTitleClick] @@ -812,6 +820,7 @@ export class DxTabPanelComponent extends DxComponent im { subscribe: 'itemRendered', emit: 'onItemRendered' }, { subscribe: 'optionChanged', emit: 'onOptionChanged' }, { subscribe: 'selectionChanged', emit: 'onSelectionChanged' }, + { subscribe: 'selectionChanging', emit: 'onSelectionChanging' }, { subscribe: 'titleClick', emit: 'onTitleClick' }, { subscribe: 'titleHold', emit: 'onTitleHold' }, { subscribe: 'titleRendered', emit: 'onTitleRendered' }, diff --git a/packages/devextreme-angular/src/ui/tabs/index.ts b/packages/devextreme-angular/src/ui/tabs/index.ts index 98ebde4ef0d6..aaac3c19b380 100644 --- a/packages/devextreme-angular/src/ui/tabs/index.ts +++ b/packages/devextreme-angular/src/ui/tabs/index.ts @@ -26,7 +26,7 @@ export { ExplicitTypes } from 'devextreme/ui/tabs'; import { Orientation, SingleOrMultiple, TabsIconPosition, TabsStyle } from 'devextreme/common'; import { Store } from 'devextreme/data'; import DataSource, { Options as DataSourceOptions } from 'devextreme/data/data_source'; -import { ContentReadyEvent, DisposingEvent, dxTabsItem, InitializedEvent, ItemClickEvent, ItemContextMenuEvent, ItemHoldEvent, ItemRenderedEvent, OptionChangedEvent, SelectionChangedEvent } from 'devextreme/ui/tabs'; +import { ContentReadyEvent, DisposingEvent, dxTabsItem, InitializedEvent, ItemClickEvent, ItemContextMenuEvent, ItemHoldEvent, ItemRenderedEvent, OptionChangedEvent, SelectionChangedEvent, SelectionChangingEvent } from 'devextreme/ui/tabs'; import DxTabs from 'devextreme/ui/tabs'; @@ -512,6 +512,14 @@ export class DxTabsComponent extends DxComponent implem */ @Output() onSelectionChanged: EventEmitter; + /** + + * [descr:dxTabsOptions.onSelectionChanging] + + + */ + @Output() onSelectionChanging: EventEmitter; + /** * This member supports the internal infrastructure and is not intended to be used directly from your code. @@ -748,6 +756,7 @@ export class DxTabsComponent extends DxComponent implem { subscribe: 'itemRendered', emit: 'onItemRendered' }, { subscribe: 'optionChanged', emit: 'onOptionChanged' }, { subscribe: 'selectionChanged', emit: 'onSelectionChanged' }, + { subscribe: 'selectionChanging', emit: 'onSelectionChanging' }, { emit: 'accessKeyChange' }, { emit: 'dataSourceChange' }, { emit: 'disabledChange' }, diff --git a/packages/devextreme-angular/src/ui/tag-box/index.ts b/packages/devextreme-angular/src/ui/tag-box/index.ts index d129db1e9ef8..3d417ac3fff3 100644 --- a/packages/devextreme-angular/src/ui/tag-box/index.ts +++ b/packages/devextreme-angular/src/ui/tag-box/index.ts @@ -30,7 +30,7 @@ import DataSource, { Options as DataSourceOptions } from 'devextreme/data/data_s import { CollectionWidgetItem } from 'devextreme/ui/collection/ui.collection_widget.base'; import { DropDownPredefinedButton } from 'devextreme/ui/drop_down_editor/ui.drop_down_editor'; import { Properties as dxPopupOptions } from 'devextreme/ui/popup'; -import { ChangeEvent, ClosedEvent, ContentReadyEvent, CustomItemCreatingEvent, DisposingEvent, EnterKeyEvent, FocusInEvent, FocusOutEvent, InitializedEvent, InputEvent, ItemClickEvent, KeyDownEvent, KeyUpEvent, MultiTagPreparingEvent, OpenedEvent, OptionChangedEvent, SelectAllValueChangedEvent, SelectionChangedEvent, ValueChangedEvent } from 'devextreme/ui/tag_box'; +import { ChangeEvent, ClosedEvent, ContentReadyEvent, CustomItemCreatingEvent, DisposingEvent, EnterKeyEvent, FocusInEvent, FocusOutEvent, InitializedEvent, InputEvent, ItemClickEvent, KeyDownEvent, KeyUpEvent, MultiTagPreparingEvent, OpenedEvent, OptionChangedEvent, SelectAllValueChangedEvent, SelectionChangedEvent, SelectionChangingEvent, ValueChangedEvent } from 'devextreme/ui/tag_box'; import DxTagBox from 'devextreme/ui/tag_box'; @@ -1124,6 +1124,14 @@ export class DxTagBoxComponent extends DxComponent implements OnDestroy, Control */ @Output() onSelectionChanged: EventEmitter; + /** + + * [descr:dxTagBoxOptions.onSelectionChanging] + + + */ + @Output() onSelectionChanging: EventEmitter; + /** * [descr:dxTagBoxOptions.onValueChanged] @@ -1668,6 +1676,7 @@ export class DxTagBoxComponent extends DxComponent implements OnDestroy, Control { subscribe: 'optionChanged', emit: 'onOptionChanged' }, { subscribe: 'selectAllValueChanged', emit: 'onSelectAllValueChanged' }, { subscribe: 'selectionChanged', emit: 'onSelectionChanged' }, + { subscribe: 'selectionChanging', emit: 'onSelectionChanging' }, { subscribe: 'valueChanged', emit: 'onValueChanged' }, { emit: 'acceptCustomValueChange' }, { emit: 'accessKeyChange' }, diff --git a/packages/devextreme-react/src/autocomplete.ts b/packages/devextreme-react/src/autocomplete.ts index 4d7323a6db0c..d72f79a32628 100644 --- a/packages/devextreme-react/src/autocomplete.ts +++ b/packages/devextreme-react/src/autocomplete.ts @@ -8,7 +8,7 @@ import dxAutocomplete, { import { Component as BaseComponent, IHtmlOptions, ComponentRef, IElementDescriptor } from "./core/component"; import NestedOption from "./core/nested-option"; -import type { ChangeEvent, ClosedEvent, ContentReadyEvent, CopyEvent, CutEvent, DisposingEvent, EnterKeyEvent, FocusInEvent, FocusOutEvent, InitializedEvent, InputEvent, ItemClickEvent, KeyDownEvent, KeyUpEvent, OpenedEvent, PasteEvent, ValueChangedEvent } from "devextreme/ui/autocomplete"; +import type { ChangeEvent, ClosedEvent, ContentReadyEvent, CopyEvent, CutEvent, DisposingEvent, EnterKeyEvent, FocusInEvent, FocusOutEvent, InitializedEvent, InputEvent, ItemClickEvent, KeyDownEvent, KeyUpEvent, OpenedEvent, PasteEvent, SelectionChangingEvent, ValueChangedEvent } from "devextreme/ui/autocomplete"; import type { ContentReadyEvent as ButtonContentReadyEvent, DisposingEvent as ButtonDisposingEvent, InitializedEvent as ButtonInitializedEvent, dxButtonOptions, ClickEvent, OptionChangedEvent } from "devextreme/ui/button"; import type { AnimationConfig, AnimationState } from "devextreme/animation/fx"; import type { event, EventInfo } from "devextreme/events/index"; @@ -43,6 +43,7 @@ type IAutocompleteOptionsNarrowedEvents = { onKeyUp?: ((e: KeyUpEvent) => void); onOpened?: ((e: OpenedEvent) => void); onPaste?: ((e: PasteEvent) => void); + onSelectionChanging?: ((e: SelectionChangingEvent) => void); onValueChanged?: ((e: ValueChangedEvent) => void); } @@ -77,7 +78,7 @@ const Autocomplete = memo( ), [baseRef.current]); const subscribableOptions = useMemo(() => (["opened","value"]), []); - const independentEvents = useMemo(() => (["onChange","onClosed","onContentReady","onCopy","onCut","onDisposing","onEnterKey","onFocusIn","onFocusOut","onInitialized","onInput","onItemClick","onKeyDown","onKeyUp","onOpened","onPaste","onValueChanged"]), []); + const independentEvents = useMemo(() => (["onChange","onClosed","onContentReady","onCopy","onCut","onDisposing","onEnterKey","onFocusIn","onFocusOut","onInitialized","onInput","onItemClick","onKeyDown","onKeyUp","onOpened","onPaste","onSelectionChanging","onValueChanged"]), []); const defaults = useMemo(() => ({ defaultOpened: "opened", diff --git a/packages/devextreme-react/src/form.ts b/packages/devextreme-react/src/form.ts index 7d3c196f840c..e8dea8d25657 100644 --- a/packages/devextreme-react/src/form.ts +++ b/packages/devextreme-react/src/form.ts @@ -10,7 +10,7 @@ import NestedOption from "./core/nested-option"; import type { ContentReadyEvent, DisposingEvent, EditorEnterKeyEvent, InitializedEvent, dxFormButtonItem, dxFormEmptyItem, dxFormGroupItem, dxFormSimpleItem, dxFormTabbedItem } from "devextreme/ui/form"; import type { ContentReadyEvent as ButtonContentReadyEvent, DisposingEvent as ButtonDisposingEvent, InitializedEvent as ButtonInitializedEvent, dxButtonOptions, ClickEvent, OptionChangedEvent } from "devextreme/ui/button"; -import type { ContentReadyEvent as TabPanelContentReadyEvent, DisposingEvent as TabPanelDisposingEvent, InitializedEvent as TabPanelInitializedEvent, OptionChangedEvent as TabPanelOptionChangedEvent, dxTabPanelOptions, dxTabPanelItem, ItemClickEvent, ItemContextMenuEvent, ItemHoldEvent, ItemRenderedEvent, SelectionChangedEvent, TitleClickEvent, TitleHoldEvent, TitleRenderedEvent } from "devextreme/ui/tab_panel"; +import type { ContentReadyEvent as TabPanelContentReadyEvent, DisposingEvent as TabPanelDisposingEvent, InitializedEvent as TabPanelInitializedEvent, OptionChangedEvent as TabPanelOptionChangedEvent, dxTabPanelOptions, dxTabPanelItem, ItemClickEvent, ItemContextMenuEvent, ItemHoldEvent, ItemRenderedEvent, SelectionChangedEvent, SelectionChangingEvent, TitleClickEvent, TitleHoldEvent, TitleRenderedEvent } from "devextreme/ui/tab_panel"; import type { template } from "devextreme/core/templates/template"; import type { CollectionWidgetItem } from "devextreme/ui/collection/ui.collection_widget.base"; import type { DataSourceOptions } from "devextreme/data/data_source"; @@ -764,6 +764,7 @@ type ITabPanelOptionsProps = React.PropsWithChildren<{ onItemRendered?: ((e: ItemRenderedEvent) => void); onOptionChanged?: ((e: TabPanelOptionChangedEvent) => void); onSelectionChanged?: ((e: SelectionChangedEvent) => void); + onSelectionChanging?: ((e: SelectionChangingEvent) => void); onTitleClick?: ((e: TitleClickEvent) => void); onTitleHold?: ((e: TitleHoldEvent) => void); onTitleRendered?: ((e: TitleRenderedEvent) => void); diff --git a/packages/devextreme-react/src/list.ts b/packages/devextreme-react/src/list.ts index 95bc016f74cf..13efbd6cd6f4 100644 --- a/packages/devextreme-react/src/list.ts +++ b/packages/devextreme-react/src/list.ts @@ -9,7 +9,7 @@ import dxList, { import { Component as BaseComponent, IHtmlOptions, ComponentRef, IElementDescriptor } from "./core/component"; import NestedOption from "./core/nested-option"; -import type { dxListItem, ContentReadyEvent, DisposingEvent, GroupRenderedEvent, InitializedEvent, ItemClickEvent, ItemContextMenuEvent, ItemDeletedEvent, ItemDeletingEvent, ItemHoldEvent, ItemRenderedEvent, ItemReorderedEvent, ItemSwipeEvent, PageLoadingEvent, PullRefreshEvent, ScrollEvent, SelectAllValueChangedEvent } from "devextreme/ui/list"; +import type { dxListItem, ContentReadyEvent, DisposingEvent, GroupRenderedEvent, InitializedEvent, ItemClickEvent, ItemContextMenuEvent, ItemDeletedEvent, ItemDeletingEvent, ItemHoldEvent, ItemRenderedEvent, ItemReorderedEvent, ItemSwipeEvent, PageLoadingEvent, PullRefreshEvent, ScrollEvent, SelectAllValueChangedEvent, SelectionChangingEvent } from "devextreme/ui/list"; import type { ContentReadyEvent as ButtonContentReadyEvent, DisposingEvent as ButtonDisposingEvent, InitializedEvent as ButtonInitializedEvent, dxButtonOptions, OptionChangedEvent as ButtonOptionChangedEvent, ClickEvent } from "devextreme/ui/button"; import type { ContentReadyEvent as TextBoxContentReadyEvent, DisposingEvent as TextBoxDisposingEvent, InitializedEvent as TextBoxInitializedEvent, OptionChangedEvent as TextBoxOptionChangedEvent, ChangeEvent, CopyEvent, CutEvent, EnterKeyEvent, FocusInEvent, FocusOutEvent, InputEvent, KeyDownEvent, KeyUpEvent, PasteEvent, ValueChangedEvent } from "devextreme/ui/text_box"; import type { DisposingEvent as SortableDisposingEvent, InitializedEvent as SortableInitializedEvent, AddEvent, DragChangeEvent, DragEndEvent, DragMoveEvent, DragStartEvent, OptionChangedEvent, RemoveEvent, ReorderEvent } from "devextreme/ui/sortable"; @@ -38,6 +38,7 @@ type IListOptionsNarrowedEvents = { onPullRefresh?: ((e: PullRefreshEvent) => void); onScroll?: ((e: ScrollEvent) => void); onSelectAllValueChanged?: ((e: SelectAllValueChangedEvent) => void); + onSelectionChanging?: ((e: SelectionChangingEvent) => void); } type IListOptions = React.PropsWithChildren, IListOptionsNarrowedEvents> & IHtmlOptions & { @@ -72,7 +73,7 @@ const List = memo( ), [baseRef.current]); const subscribableOptions = useMemo(() => (["items","selectedItemKeys","selectedItems"]), []); - const independentEvents = useMemo(() => (["onContentReady","onDisposing","onGroupRendered","onInitialized","onItemClick","onItemContextMenu","onItemDeleted","onItemDeleting","onItemHold","onItemRendered","onItemReordered","onItemSwipe","onPageLoading","onPullRefresh","onScroll","onSelectAllValueChanged"]), []); + const independentEvents = useMemo(() => (["onContentReady","onDisposing","onGroupRendered","onInitialized","onItemClick","onItemContextMenu","onItemDeleted","onItemDeleting","onItemHold","onItemRendered","onItemReordered","onItemSwipe","onPageLoading","onPullRefresh","onScroll","onSelectAllValueChanged","onSelectionChanging"]), []); const defaults = useMemo(() => ({ defaultItems: "items", diff --git a/packages/devextreme-react/src/lookup.ts b/packages/devextreme-react/src/lookup.ts index 818ae3e69604..6cc9d9143844 100644 --- a/packages/devextreme-react/src/lookup.ts +++ b/packages/devextreme-react/src/lookup.ts @@ -8,7 +8,7 @@ import dxLookup, { import { Component as BaseComponent, IHtmlOptions, ComponentRef, IElementDescriptor } from "./core/component"; import NestedOption from "./core/nested-option"; -import type { ClosedEvent, ContentReadyEvent, DisposingEvent, InitializedEvent, ItemClickEvent, OpenedEvent, PageLoadingEvent, PullRefreshEvent, ScrollEvent, ValueChangedEvent } from "devextreme/ui/lookup"; +import type { ClosedEvent, ContentReadyEvent, DisposingEvent, InitializedEvent, ItemClickEvent, OpenedEvent, PageLoadingEvent, PullRefreshEvent, ScrollEvent, SelectionChangingEvent, ValueChangedEvent } from "devextreme/ui/lookup"; import type { ContentReadyEvent as PopoverContentReadyEvent, DisposingEvent as PopoverDisposingEvent, InitializedEvent as PopoverInitializedEvent, HiddenEvent, HidingEvent, OptionChangedEvent, ShowingEvent, ShownEvent, TitleRenderedEvent } from "devextreme/ui/popover"; import type { AnimationConfig, AnimationState } from "devextreme/animation/fx"; import type { event } from "devextreme/events/index"; @@ -31,6 +31,7 @@ type ILookupOptionsNarrowedEvents = { onPageLoading?: ((e: PageLoadingEvent) => void); onPullRefresh?: ((e: PullRefreshEvent) => void); onScroll?: ((e: ScrollEvent) => void); + onSelectionChanging?: ((e: SelectionChangingEvent) => void); onValueChanged?: ((e: ValueChangedEvent) => void); } @@ -65,7 +66,7 @@ const Lookup = memo( ), [baseRef.current]); const subscribableOptions = useMemo(() => (["opened","value"]), []); - const independentEvents = useMemo(() => (["onClosed","onContentReady","onDisposing","onInitialized","onItemClick","onOpened","onPageLoading","onPullRefresh","onScroll","onValueChanged"]), []); + const independentEvents = useMemo(() => (["onClosed","onContentReady","onDisposing","onInitialized","onItemClick","onOpened","onPageLoading","onPullRefresh","onScroll","onSelectionChanging","onValueChanged"]), []); const defaults = useMemo(() => ({ defaultOpened: "opened", diff --git a/packages/devextreme-react/src/select-box.ts b/packages/devextreme-react/src/select-box.ts index 424cc5ebf226..296422dbe18c 100644 --- a/packages/devextreme-react/src/select-box.ts +++ b/packages/devextreme-react/src/select-box.ts @@ -8,7 +8,7 @@ import dxSelectBox, { import { Component as BaseComponent, IHtmlOptions, ComponentRef, IElementDescriptor } from "./core/component"; import NestedOption from "./core/nested-option"; -import type { ChangeEvent, ClosedEvent, ContentReadyEvent, CopyEvent, CustomItemCreatingEvent, CutEvent, DisposingEvent, EnterKeyEvent, FocusInEvent, FocusOutEvent, InitializedEvent, InputEvent, ItemClickEvent, KeyDownEvent, KeyUpEvent, OpenedEvent, PasteEvent, ValueChangedEvent } from "devextreme/ui/select_box"; +import type { ChangeEvent, ClosedEvent, ContentReadyEvent, CopyEvent, CustomItemCreatingEvent, CutEvent, DisposingEvent, EnterKeyEvent, FocusInEvent, FocusOutEvent, InitializedEvent, InputEvent, ItemClickEvent, KeyDownEvent, KeyUpEvent, OpenedEvent, PasteEvent, SelectionChangingEvent, ValueChangedEvent } from "devextreme/ui/select_box"; import type { ContentReadyEvent as ButtonContentReadyEvent, DisposingEvent as ButtonDisposingEvent, InitializedEvent as ButtonInitializedEvent, dxButtonOptions, ClickEvent, OptionChangedEvent } from "devextreme/ui/button"; import type { AnimationConfig, AnimationState } from "devextreme/animation/fx"; import type { event, EventInfo } from "devextreme/events/index"; @@ -44,6 +44,7 @@ type ISelectBoxOptionsNarrowedEvents = { onKeyUp?: ((e: KeyUpEvent) => void); onOpened?: ((e: OpenedEvent) => void); onPaste?: ((e: PasteEvent) => void); + onSelectionChanging?: ((e: SelectionChangingEvent) => void); onValueChanged?: ((e: ValueChangedEvent) => void); } @@ -80,7 +81,7 @@ const SelectBox = memo( ), [baseRef.current]); const subscribableOptions = useMemo(() => (["opened","value"]), []); - const independentEvents = useMemo(() => (["onChange","onClosed","onContentReady","onCopy","onCustomItemCreating","onCut","onDisposing","onEnterKey","onFocusIn","onFocusOut","onInitialized","onInput","onItemClick","onKeyDown","onKeyUp","onOpened","onPaste","onValueChanged"]), []); + const independentEvents = useMemo(() => (["onChange","onClosed","onContentReady","onCopy","onCustomItemCreating","onCut","onDisposing","onEnterKey","onFocusIn","onFocusOut","onInitialized","onInput","onItemClick","onKeyDown","onKeyUp","onOpened","onPaste","onSelectionChanging","onValueChanged"]), []); const defaults = useMemo(() => ({ defaultOpened: "opened", diff --git a/packages/devextreme-react/src/tab-panel.ts b/packages/devextreme-react/src/tab-panel.ts index d68494f4067c..c78fddb79a6a 100644 --- a/packages/devextreme-react/src/tab-panel.ts +++ b/packages/devextreme-react/src/tab-panel.ts @@ -9,7 +9,7 @@ import dxTabPanel, { import { Component as BaseComponent, IHtmlOptions, ComponentRef, IElementDescriptor } from "./core/component"; import NestedOption from "./core/nested-option"; -import type { dxTabPanelItem, ContentReadyEvent, DisposingEvent, InitializedEvent, ItemClickEvent, ItemContextMenuEvent, ItemHoldEvent, ItemRenderedEvent, TitleClickEvent, TitleHoldEvent, TitleRenderedEvent } from "devextreme/ui/tab_panel"; +import type { dxTabPanelItem, ContentReadyEvent, DisposingEvent, InitializedEvent, ItemClickEvent, ItemContextMenuEvent, ItemHoldEvent, ItemRenderedEvent, SelectionChangingEvent, TitleClickEvent, TitleHoldEvent, TitleRenderedEvent } from "devextreme/ui/tab_panel"; import type { template } from "devextreme/core/templates/template"; import type { CollectionWidgetItem } from "devextreme/ui/collection/ui.collection_widget.base"; @@ -25,6 +25,7 @@ type ITabPanelOptionsNarrowedEvents = { onItemContextMenu?: ((e: ItemContextMenuEvent) => void); onItemHold?: ((e: ItemHoldEvent) => void); onItemRendered?: ((e: ItemRenderedEvent) => void); + onSelectionChanging?: ((e: SelectionChangingEvent) => void); onTitleClick?: ((e: TitleClickEvent) => void); onTitleHold?: ((e: TitleHoldEvent) => void); onTitleRendered?: ((e: TitleRenderedEvent) => void); @@ -62,7 +63,7 @@ const TabPanel = memo( ), [baseRef.current]); const subscribableOptions = useMemo(() => (["items","selectedIndex","selectedItem"]), []); - const independentEvents = useMemo(() => (["onContentReady","onDisposing","onInitialized","onItemClick","onItemContextMenu","onItemHold","onItemRendered","onTitleClick","onTitleHold","onTitleRendered"]), []); + const independentEvents = useMemo(() => (["onContentReady","onDisposing","onInitialized","onItemClick","onItemContextMenu","onItemHold","onItemRendered","onSelectionChanging","onTitleClick","onTitleHold","onTitleRendered"]), []); const defaults = useMemo(() => ({ defaultItems: "items", diff --git a/packages/devextreme-react/src/tabs.ts b/packages/devextreme-react/src/tabs.ts index 08eff1ccde5c..2266296b530e 100644 --- a/packages/devextreme-react/src/tabs.ts +++ b/packages/devextreme-react/src/tabs.ts @@ -9,7 +9,7 @@ import dxTabs, { import { Component as BaseComponent, IHtmlOptions, ComponentRef, IElementDescriptor } from "./core/component"; import NestedOption from "./core/nested-option"; -import type { dxTabsItem, ContentReadyEvent, DisposingEvent, InitializedEvent, ItemClickEvent, ItemContextMenuEvent, ItemHoldEvent, ItemRenderedEvent } from "devextreme/ui/tabs"; +import type { dxTabsItem, ContentReadyEvent, DisposingEvent, InitializedEvent, ItemClickEvent, ItemContextMenuEvent, ItemHoldEvent, ItemRenderedEvent, SelectionChangingEvent } from "devextreme/ui/tabs"; import type { CollectionWidgetItem } from "devextreme/ui/collection/ui.collection_widget.base"; import type { template } from "devextreme/core/templates/template"; @@ -25,6 +25,7 @@ type ITabsOptionsNarrowedEvents = { onItemContextMenu?: ((e: ItemContextMenuEvent) => void); onItemHold?: ((e: ItemHoldEvent) => void); onItemRendered?: ((e: ItemRenderedEvent) => void); + onSelectionChanging?: ((e: SelectionChangingEvent) => void); } type ITabsOptions = React.PropsWithChildren, ITabsOptionsNarrowedEvents> & IHtmlOptions & { @@ -61,7 +62,7 @@ const Tabs = memo( ), [baseRef.current]); const subscribableOptions = useMemo(() => (["items","selectedIndex","selectedItem","selectedItemKeys","selectedItems"]), []); - const independentEvents = useMemo(() => (["onContentReady","onDisposing","onInitialized","onItemClick","onItemContextMenu","onItemHold","onItemRendered"]), []); + const independentEvents = useMemo(() => (["onContentReady","onDisposing","onInitialized","onItemClick","onItemContextMenu","onItemHold","onItemRendered","onSelectionChanging"]), []); const defaults = useMemo(() => ({ defaultItems: "items", diff --git a/packages/devextreme-react/src/tag-box.ts b/packages/devextreme-react/src/tag-box.ts index f55e2a8e3b18..4da9d85fbdd6 100644 --- a/packages/devextreme-react/src/tag-box.ts +++ b/packages/devextreme-react/src/tag-box.ts @@ -8,7 +8,7 @@ import dxTagBox, { import { Component as BaseComponent, IHtmlOptions, ComponentRef, IElementDescriptor } from "./core/component"; import NestedOption from "./core/nested-option"; -import type { ChangeEvent, ClosedEvent, ContentReadyEvent, CustomItemCreatingEvent, DisposingEvent, EnterKeyEvent, FocusInEvent, FocusOutEvent, InitializedEvent, InputEvent, ItemClickEvent, KeyDownEvent, KeyUpEvent, MultiTagPreparingEvent, OpenedEvent, SelectAllValueChangedEvent, ValueChangedEvent } from "devextreme/ui/tag_box"; +import type { ChangeEvent, ClosedEvent, ContentReadyEvent, CustomItemCreatingEvent, DisposingEvent, EnterKeyEvent, FocusInEvent, FocusOutEvent, InitializedEvent, InputEvent, ItemClickEvent, KeyDownEvent, KeyUpEvent, MultiTagPreparingEvent, OpenedEvent, SelectAllValueChangedEvent, SelectionChangingEvent, ValueChangedEvent } from "devextreme/ui/tag_box"; import type { ContentReadyEvent as ButtonContentReadyEvent, DisposingEvent as ButtonDisposingEvent, InitializedEvent as ButtonInitializedEvent, dxButtonOptions, ClickEvent, OptionChangedEvent } from "devextreme/ui/button"; import type { AnimationConfig, AnimationState } from "devextreme/animation/fx"; import type { event, EventInfo } from "devextreme/events/index"; @@ -43,6 +43,7 @@ type ITagBoxOptionsNarrowedEvents = { onMultiTagPreparing?: ((e: MultiTagPreparingEvent) => void); onOpened?: ((e: OpenedEvent) => void); onSelectAllValueChanged?: ((e: SelectAllValueChangedEvent) => void); + onSelectionChanging?: ((e: SelectionChangingEvent) => void); onValueChanged?: ((e: ValueChangedEvent) => void); } @@ -81,7 +82,7 @@ const TagBox = memo( ), [baseRef.current]); const subscribableOptions = useMemo(() => (["opened","value"]), []); - const independentEvents = useMemo(() => (["onChange","onClosed","onContentReady","onCustomItemCreating","onDisposing","onEnterKey","onFocusIn","onFocusOut","onInitialized","onInput","onItemClick","onKeyDown","onKeyUp","onMultiTagPreparing","onOpened","onSelectAllValueChanged","onValueChanged"]), []); + const independentEvents = useMemo(() => (["onChange","onClosed","onContentReady","onCustomItemCreating","onDisposing","onEnterKey","onFocusIn","onFocusOut","onInitialized","onInput","onItemClick","onKeyDown","onKeyUp","onMultiTagPreparing","onOpened","onSelectAllValueChanged","onSelectionChanging","onValueChanged"]), []); const defaults = useMemo(() => ({ defaultOpened: "opened", diff --git a/packages/devextreme-scss/scss/widgets/base/chat/_index.scss b/packages/devextreme-scss/scss/widgets/base/chat/_index.scss index 9b254cb2e07a..50631cc2b22b 100644 --- a/packages/devextreme-scss/scss/widgets/base/chat/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/chat/_index.scss @@ -14,8 +14,8 @@ $chat-bubble-border-radius: 12px; $chat-text-area-height: 40px; .dx-chat { - display: grid; - grid-template-rows: 24px 1fr minmax(40px, auto); + display: flex; + flex-direction: column; width: $chat-width; height: $chat-height; padding: $chat-padding; @@ -32,6 +32,7 @@ $chat-text-area-height: 40px; .dx-chat-message-list { box-sizing: border-box; + flex-grow: 1; overflow: hidden; } diff --git a/packages/devextreme-vue/src/autocomplete.ts b/packages/devextreme-vue/src/autocomplete.ts index a49c22d07702..d6e17d190c79 100644 --- a/packages/devextreme-vue/src/autocomplete.ts +++ b/packages/devextreme-vue/src/autocomplete.ts @@ -48,6 +48,7 @@ type AccessibleOptions = Pick { - _chatHeader!: ChatHeader; +type Title = string; + +class Chat extends Widget { + _chatHeader?: ChatHeader; _messageBox!: MessageBox; @@ -25,9 +27,12 @@ class Chat extends Widget { _messageSendAction?: (e: Partial) => void; - _getDefaultOptions(): Properties { + _getDefaultOptions(): Properties & { title: Title } { return { ...super._getDefaultOptions(), + activeStateEnabled: true, + focusStateEnabled: true, + hoverStateEnabled: true, title: '', items: [], user: { id: new Guid().toString() }, @@ -46,15 +51,20 @@ class Chat extends Widget { super._initMarkup(); - this._renderHeader(); + const { title } = this.option(); + + if (title) { + this._renderHeader(title); + } + this._renderMessageList(); this._renderMessageBox(); } - _renderHeader(): void { - const { title = '' } = this.option(); + _renderHeader(title: string): void { + const $header = $('
'); - const $header = $('
').appendTo(this.element()); + this.element().prepend($header.get(0)); this._chatHeader = this._createComponent($header, ChatHeader, { title, @@ -130,9 +140,19 @@ class Chat extends Widget { case 'hoverStateEnabled': this._messageBox.option({ [name]: value }); break; - case 'title': - this._chatHeader.option('title', (value as Properties['title']) ?? ''); + case 'title': { + if (value) { + if (this._chatHeader) { + this._chatHeader.option('title', (value as Title)); + } else { + this._renderHeader((value as Title)); + } + } else if (this._chatHeader) { + this._chatHeader.dispose(); + this._chatHeader.$element().remove(); + } break; + } case 'user': this._messageList.option('currentUserId', (value as Properties['user'])?.id); break; diff --git a/packages/devextreme/js/__internal/ui/chat/chat_message_list.ts b/packages/devextreme/js/__internal/ui/chat/chat_message_list.ts index de538aab406f..dfa9ada27a7f 100644 --- a/packages/devextreme/js/__internal/ui/chat/chat_message_list.ts +++ b/packages/devextreme/js/__internal/ui/chat/chat_message_list.ts @@ -22,7 +22,7 @@ class MessageList extends Widget { private _$content!: dxElementWrapper; - private _scrollable!: Scrollable; + private _scrollable?: Scrollable; _getDefaultOptions(): MessageListOptions { return { @@ -60,7 +60,8 @@ class MessageList extends Widget { } _createMessageGroupComponent(items: Message[], userId: string | number | undefined): void { - const $messageGroup = $('
').appendTo(this._$content); + const $messageGroupContainer = this._scrollable ? this._scrollable.content() : this._$content; + const $messageGroup = $('
').appendTo($messageGroupContainer); const messageGroup = this._createComponent($messageGroup, MessageGroup, { items, @@ -141,11 +142,12 @@ class MessageList extends Widget { const lastMessageGroup = this._messageGroups[this._messageGroups.length - 1]; const element = lastMessageGroup.$element()[0]; - this._scrollable.scrollToElement(element); + this._scrollable?.scrollToElement(element); } _clean(): void { this._messageGroups = []; + this._scrollable = undefined; super._clean(); } diff --git a/packages/devextreme/js/__internal/ui/collection/m_collection_widget.edit.ts b/packages/devextreme/js/__internal/ui/collection/m_collection_widget.edit.ts index f92be9eff98e..20a164a29af9 100644 --- a/packages/devextreme/js/__internal/ui/collection/m_collection_widget.edit.ts +++ b/packages/devextreme/js/__internal/ui/collection/m_collection_widget.edit.ts @@ -557,8 +557,8 @@ const CollectionWidget = BaseCollectionWidget.inherit({ case 'selectionRequired': this._normalizeSelectedItems(); break; - case 'onSelectionChanged': case 'onSelectionChanging': + case 'onSelectionChanged': this._initActions(); break; case 'selectByClick': diff --git a/packages/devextreme/js/events/index.d.ts b/packages/devextreme/js/events/index.d.ts index 1e16e4d1e6da..999a80e69b94 100644 --- a/packages/devextreme/js/events/index.d.ts +++ b/packages/devextreme/js/events/index.d.ts @@ -109,6 +109,18 @@ export interface Cancelable { cancel?: boolean; } +/** + * @docid + * @public + */ +export type AsyncCancelable = { + /** + * @docid + * @type boolean|Promise + */ + cancel: boolean | PromiseLike; +}; + /** @deprecated EventObject */ export type dxEvent = EventObject; diff --git a/packages/devextreme/js/ui/accordion.d.ts b/packages/devextreme/js/ui/accordion.d.ts index fe39beb0546c..f6b15e59a806 100644 --- a/packages/devextreme/js/ui/accordion.d.ts +++ b/packages/devextreme/js/ui/accordion.d.ts @@ -312,7 +312,7 @@ export type Options< // eslint-disable-next-line import/first import { CheckedEvents } from '../core'; -type FilterOutHidden = Omit; +type FilterOutHidden = Omit; type EventsIntegrityCheckingHelper = CheckedEvents, Required, 'onItemTitleClick'>; diff --git a/packages/devextreme/js/ui/accordion.js b/packages/devextreme/js/ui/accordion.js index 1bba2e6c0ca0..af89eb476f99 100644 --- a/packages/devextreme/js/ui/accordion.js +++ b/packages/devextreme/js/ui/accordion.js @@ -4,6 +4,12 @@ export default Accordion; // STYLE accordion +/** + * @name dxAccordionOptions.onSelectionChanging + * @hidden + * @action + */ + /** * @name dxAccordionItem * @inherits CollectionWidgetItem diff --git a/packages/devextreme/js/ui/action_sheet.d.ts b/packages/devextreme/js/ui/action_sheet.d.ts index 25e2c519181f..f8415c1c7aca 100644 --- a/packages/devextreme/js/ui/action_sheet.d.ts +++ b/packages/devextreme/js/ui/action_sheet.d.ts @@ -286,7 +286,7 @@ export type Options< // eslint-disable-next-line import/first import { CheckedEvents } from '../core'; -type FilterOutHidden = Omit; +type FilterOutHidden = Omit; type EventsIntegrityCheckingHelper = CheckedEvents, Required, 'onCancelClick'>; diff --git a/packages/devextreme/js/ui/action_sheet.js b/packages/devextreme/js/ui/action_sheet.js index 21316c36ad93..41ec7f6766b5 100644 --- a/packages/devextreme/js/ui/action_sheet.js +++ b/packages/devextreme/js/ui/action_sheet.js @@ -25,6 +25,12 @@ export default ActionSheet; * @hidden */ +/** + * @name dxActionSheetOptions.onSelectionChanging + * @action + * @hidden + */ + /** * @name dxActionSheetOptions.onSelectionChanged * @action diff --git a/packages/devextreme/js/ui/autocomplete.d.ts b/packages/devextreme/js/ui/autocomplete.d.ts index b83d05497b9b..584cd59db5af 100644 --- a/packages/devextreme/js/ui/autocomplete.d.ts +++ b/packages/devextreme/js/ui/autocomplete.d.ts @@ -4,10 +4,12 @@ import { InitializedEventInfo, ChangedOptionInfo, ItemInfo, + AsyncCancelable, } from '../events/index'; import dxDropDownList, { dxDropDownListOptions, + SelectionChangingInfo, SelectionChangedInfo, } from './drop_down_editor/ui.drop_down_list'; @@ -162,6 +164,14 @@ export type OptionChangedEvent = EventInfo & ChangedOptionInfo; */ export type PasteEvent = NativeEventInfo; +/** + * @docid _ui_autocomplete_SelectionChangingEvent + * @public + * @type object + * @inherits AsyncCancelable,EventInfo,_ui_drop_down_editor_ui_drop_down_list_SelectionChangingInfo + */ +export type SelectionChangingEvent = AsyncCancelable & EventInfo & SelectionChangingInfo; + /** * @docid _ui_autocomplete_SelectionChangedEvent * @public @@ -335,6 +345,11 @@ onOptionChanged?: ((e: OptionChangedEvent) => void); * @type_function_param1 e:{ui/autocomplete:PasteEvent} */ onPaste?: ((e: PasteEvent) => void); +/** + * @docid dxAutocompleteOptions.onSelectionChanging + * @type_function_param1 e:{ui/autocomplete:SelectionChangingEvent} + */ +onSelectionChanging?: ((e: SelectionChangingEvent) => void); /** * @docid dxAutocompleteOptions.onSelectionChanged * @type_function_param1 e:{ui/autocomplete:SelectionChangedEvent} diff --git a/packages/devextreme/js/ui/autocomplete_types.d.ts b/packages/devextreme/js/ui/autocomplete_types.d.ts index 989d0fc3572d..0c8b703275bc 100644 --- a/packages/devextreme/js/ui/autocomplete_types.d.ts +++ b/packages/devextreme/js/ui/autocomplete_types.d.ts @@ -17,6 +17,7 @@ export { OpenedEvent, OptionChangedEvent, PasteEvent, + SelectionChangingEvent, SelectionChangedEvent, ValueChangedEvent, DropDownButtonTemplateData, diff --git a/packages/devextreme/js/ui/box.d.ts b/packages/devextreme/js/ui/box.d.ts index ec4ba2fd3ca0..4392472ffd22 100644 --- a/packages/devextreme/js/ui/box.d.ts +++ b/packages/devextreme/js/ui/box.d.ts @@ -218,7 +218,7 @@ export type Options< // eslint-disable-next-line import/first import { CheckedEvents } from '../core'; -type FilterOutHidden = Omit; +type FilterOutHidden = Omit; type EventsIntegrityCheckingHelper = CheckedEvents, Required>; diff --git a/packages/devextreme/js/ui/box.js b/packages/devextreme/js/ui/box.js index 910b9b0e5183..aa36bcb8316c 100644 --- a/packages/devextreme/js/ui/box.js +++ b/packages/devextreme/js/ui/box.js @@ -22,6 +22,11 @@ export default Box; * @name dxBoxOptions.noDataText * @hidden */ +/** + * @name dxBoxOptions.onSelectionChanging + * @action + * @hidden + */ /** * @name dxBoxOptions.onSelectionChanged * @action diff --git a/packages/devextreme/js/ui/chat.d.ts b/packages/devextreme/js/ui/chat.d.ts index 5ec786dbd800..46ba1998c99c 100644 --- a/packages/devextreme/js/ui/chat.d.ts +++ b/packages/devextreme/js/ui/chat.d.ts @@ -110,16 +110,28 @@ export type Message = { export interface dxChatOptions extends WidgetOptions { /** * @docid - * @default { id: new Guid().toString() } + * @default true * @public */ - user?: User; + activeStateEnabled?: boolean; /** * @docid - * @default '' + * @default true + * @public + */ + focusStateEnabled?: boolean; + /** + * @docid + * @default true * @public */ - title?: string; + hoverStateEnabled?: boolean; + /** + * @docid + * @default { id: new Guid().toString() } + * @public + */ + user?: User; /** * @docid * @fires dxChatOptions.onOptionChanged diff --git a/packages/devextreme/js/ui/collection/ui.collection_widget.base.d.ts b/packages/devextreme/js/ui/collection/ui.collection_widget.base.d.ts index 0737f216bafc..8cd4103c9771 100644 --- a/packages/devextreme/js/ui/collection/ui.collection_widget.base.d.ts +++ b/packages/devextreme/js/ui/collection/ui.collection_widget.base.d.ts @@ -13,6 +13,7 @@ import { EventInfo, NativeEventInfo, ItemInfo, + AsyncCancelable, } from '../../events/index'; import Widget, { @@ -21,6 +22,25 @@ import Widget, { export type ItemLike = string | CollectionWidgetItem | any; +/** + * @docid + * @hidden + */ +export interface SelectionChangingInfo { + /** @docid */ + readonly addedItems: Array; + /** @docid */ + readonly removedItems: Array; +} + +/** + * @docid + * @public + * @type object + * @inherits AsyncCancelable,EventInfo,SelectionChangingInfo + */ +export type SelectionChangingEvent = AsyncCancelable & EventInfo & SelectionChangingInfo; + /** * @docid * @hidden @@ -126,6 +146,14 @@ export interface CollectionWidgetOptions< * @public */ onItemRendered?: ((e: EventInfo & ItemInfo) => void); + /** + * @docid + * @default null + * @type_function_param1 e:{ui/collection/ui.collection_widget.base:SelectionChangingEvent} + * @action + * @public + */ + onSelectionChanging?: ((e: SelectionChangingEvent) => void); /** * @docid * @default null diff --git a/packages/devextreme/js/ui/context_menu.d.ts b/packages/devextreme/js/ui/context_menu.d.ts index 5bd6299bcfa9..bd2e15ecedf6 100644 --- a/packages/devextreme/js/ui/context_menu.d.ts +++ b/packages/devextreme/js/ui/context_menu.d.ts @@ -345,7 +345,7 @@ export type Options = Properties; // eslint-disable-next-line import/first import { CheckedEvents } from '../core'; -type FilterOutHidden = Omit; +type FilterOutHidden = Omit; type EventsIntegrityCheckingHelper = CheckedEvents, Required, 'onHidden' | 'onHiding' | 'onPositioning' | 'onShowing' | 'onShown'>; diff --git a/packages/devextreme/js/ui/context_menu.js b/packages/devextreme/js/ui/context_menu.js index 3037c00265ea..ef286e8c3407 100644 --- a/packages/devextreme/js/ui/context_menu.js +++ b/packages/devextreme/js/ui/context_menu.js @@ -20,6 +20,11 @@ export default ContextMenu; * @hidden */ +/** + * @name dxContextMenuOptions.onSelectionChanging + * @hidden + */ + /** * @name dxContextMenuOptions.selectedItems * @hidden diff --git a/packages/devextreme/js/ui/drop_down_editor/ui.drop_down_list.d.ts b/packages/devextreme/js/ui/drop_down_editor/ui.drop_down_list.d.ts index 5f7e8cf0e7ab..ca0ef7657551 100644 --- a/packages/devextreme/js/ui/drop_down_editor/ui.drop_down_list.d.ts +++ b/packages/devextreme/js/ui/drop_down_editor/ui.drop_down_list.d.ts @@ -13,6 +13,7 @@ import { EventInfo, NativeEventInfo, ItemInfo, + AsyncCancelable, } from '../../events/index'; import { @@ -31,6 +32,26 @@ import { SimplifiedSearchMode, } from '../../common'; +/** + * @docid _ui_drop_down_editor_ui_drop_down_list_SelectionChangingInfo + * @hidden + */ +export interface SelectionChangingInfo { + /** + * @docid _ui_drop_down_editor_ui_drop_down_list_SelectionChangingInfo.selectedItem + * @type object + */ + readonly selectedItem: T; +} + +/** + * @docid _ui_drop_down_editor_ui_drop_down_list_SelectionChangingEvent + * @public + * @type object + * @inherits AsyncCancelable,EventInfo,SelectionChangingInfo + */ +export type SelectionChangingEvent = AsyncCancelable & EventInfo & SelectionChangingInfo; + /** * @docid _ui_drop_down_editor_ui_drop_down_list_SelectionChangedInfo * @hidden @@ -96,6 +117,14 @@ export interface dxDropDownListOptions extends DataExpressionMixinOp * @public */ onItemClick?: ((e: NativeEventInfo & ItemInfo) => void); + /** + * @docid + * @default null + * @type_function_param1 e:{ui/drop_down_editor/ui.drop_down_list:SelectionChangingEvent} + * @action + * @public + */ + onSelectionChanging?: ((e: SelectionChangingEvent) => void); /** * @docid * @default null diff --git a/packages/devextreme/js/ui/gallery.d.ts b/packages/devextreme/js/ui/gallery.d.ts index 931afb72737f..4eeedc5614a6 100644 --- a/packages/devextreme/js/ui/gallery.d.ts +++ b/packages/devextreme/js/ui/gallery.d.ts @@ -289,7 +289,7 @@ export type Options< // eslint-disable-next-line import/first import { CheckedEvents } from '../core'; -type FilterOutHidden = Omit; +type FilterOutHidden = Omit; type EventsIntegrityCheckingHelper = CheckedEvents, Required>; diff --git a/packages/devextreme/js/ui/gallery.js b/packages/devextreme/js/ui/gallery.js index 65a6a3d69c4d..096655d4424a 100644 --- a/packages/devextreme/js/ui/gallery.js +++ b/packages/devextreme/js/ui/gallery.js @@ -26,6 +26,12 @@ export default Gallery; * @hidden */ +/** + * @name dxGalleryOptions.onSelectionChanging + * @action + * @hidden + */ + /** * @name dxGalleryItem.visible * @hidden diff --git a/packages/devextreme/js/ui/list.d.ts b/packages/devextreme/js/ui/list.d.ts index aebc4f000699..a04cf1d2ac07 100644 --- a/packages/devextreme/js/ui/list.d.ts +++ b/packages/devextreme/js/ui/list.d.ts @@ -18,11 +18,13 @@ import { InitializedEventInfo, ChangedOptionInfo, ItemInfo, + AsyncCancelable, } from '../events/index'; import CollectionWidget, { CollectionWidgetItem, CollectionWidgetOptions, + SelectionChangingInfo, SelectionChangedInfo, } from './collection/ui.collection_widget.base'; @@ -253,6 +255,14 @@ export type SelectAllValueChangedEvent readonly value: boolean; }; +/** + * @docid _ui_list_SelectionChangingEvent + * @public + * @type object + * @inherits AsyncCancelable,EventInfo,SelectionChangingInfo + */ +export type SelectionChangingEvent = AsyncCancelable & EventInfo> & SelectionChangingInfo; + /** * @docid _ui_list_SelectionChangedEvent * @public @@ -833,6 +843,7 @@ export type ExplicitTypes< PullRefreshEvent: PullRefreshEvent; ScrollEvent: ScrollEvent; SelectAllValueChangedEvent: SelectAllValueChangedEvent; + SelectionChangingEvent: SelectionChangingEvent; SelectionChangedEvent: SelectionChangedEvent; }; @@ -885,6 +896,11 @@ onItemRendered?: ((e: ItemRenderedEvent) => void); * @type_function_param1 e:{ui/list:OptionChangedEvent} */ onOptionChanged?: ((e: OptionChangedEvent) => void); +/** + * @docid dxListOptions.onSelectionChanging + * @type_function_param1 e:{ui/list:SelectionChangingEvent} + */ +onSelectionChanging?: ((e: SelectionChangingEvent) => void); /** * @docid dxListOptions.onSelectionChanged * @type_function_param1 e:{ui/list:SelectionChangedEvent} diff --git a/packages/devextreme/js/ui/list_types.d.ts b/packages/devextreme/js/ui/list_types.d.ts index 532fa4c3af7d..a64867e470a1 100644 --- a/packages/devextreme/js/ui/list_types.d.ts +++ b/packages/devextreme/js/ui/list_types.d.ts @@ -21,6 +21,7 @@ export { PullRefreshEvent, ScrollEvent, SelectAllValueChangedEvent, + SelectionChangingEvent, SelectionChangedEvent, dxListOptions, Item, diff --git a/packages/devextreme/js/ui/lookup.d.ts b/packages/devextreme/js/ui/lookup.d.ts index 0b871411fb1e..b86ea9ef44b8 100644 --- a/packages/devextreme/js/ui/lookup.d.ts +++ b/packages/devextreme/js/ui/lookup.d.ts @@ -13,6 +13,7 @@ import { InitializedEventInfo, ChangedOptionInfo, ItemInfo, + AsyncCancelable, } from '../events/index'; import { @@ -21,6 +22,7 @@ import { import dxDropDownList, { dxDropDownListOptions, + SelectionChangingInfo, SelectionChangedInfo, } from './drop_down_editor/ui.drop_down_list'; @@ -126,11 +128,19 @@ export type PullRefreshEvent = EventInfo; */ export type ScrollEvent = NativeEventInfo & ScrollInfo; +/** + * @docid _ui_lookup_SelectionChangingEvent + * @public + * @type object + * @inherits AsyncCancelable,EventInfo,_ui_drop_down_editor_ui_drop_down_list_SelectionChangingInfo + */ +export type SelectionChangingEvent = AsyncCancelable & EventInfo & SelectionChangingInfo; + /** * @docid _ui_lookup_SelectionChangedEvent * @public * @type object - * @inherits EventInfo,SelectionChangedInfo + * @inherits EventInfo,_ui_drop_down_editor_ui_drop_down_list_SelectionChangedInfo */ export type SelectionChangedEvent = EventInfo & SelectionChangedInfo; @@ -431,6 +441,11 @@ onOpened?: ((e: OpenedEvent) => void); * @type_function_param1 e:{ui/lookup:OptionChangedEvent} */ onOptionChanged?: ((e: OptionChangedEvent) => void); +/** + * @docid dxLookupOptions.onSelectionChanging + * @type_function_param1 e:{ui/lookup:SelectionChangingEvent} + */ +onSelectionChanging?: ((e: SelectionChangingEvent) => void); /** * @docid dxLookupOptions.onSelectionChanged * @type_function_param1 e:{ui/lookup:SelectionChangedEvent} diff --git a/packages/devextreme/js/ui/lookup_types.d.ts b/packages/devextreme/js/ui/lookup_types.d.ts index d80346cc96a7..062fe0448b09 100644 --- a/packages/devextreme/js/ui/lookup_types.d.ts +++ b/packages/devextreme/js/ui/lookup_types.d.ts @@ -11,6 +11,7 @@ export { PageLoadingEvent, PullRefreshEvent, ScrollEvent, + SelectionChangingEvent, SelectionChangedEvent, TitleRenderedEvent, ValueChangedEvent, diff --git a/packages/devextreme/js/ui/menu.d.ts b/packages/devextreme/js/ui/menu.d.ts index d486151fa4dc..259bfd71bee0 100644 --- a/packages/devextreme/js/ui/menu.d.ts +++ b/packages/devextreme/js/ui/menu.d.ts @@ -406,7 +406,7 @@ export type Options = Properties; // eslint-disable-next-line import/first import { CheckedEvents } from '../core'; -type FilterOutHidden = Omit; +type FilterOutHidden = Omit; type EventsIntegrityCheckingHelper = CheckedEvents, Required, 'onSubmenuHidden' | 'onSubmenuHiding' | 'onSubmenuShowing' | 'onSubmenuShown'>; diff --git a/packages/devextreme/js/ui/menu.js b/packages/devextreme/js/ui/menu.js index 2299e146a540..b2ca569a683a 100644 --- a/packages/devextreme/js/ui/menu.js +++ b/packages/devextreme/js/ui/menu.js @@ -16,7 +16,7 @@ export default Menu; */ /** - * @name dxMenuOptions.onSelectionChange + * @name dxMenuOptions.onSelectionChanging * @hidden * @action */ diff --git a/packages/devextreme/js/ui/multi_view.d.ts b/packages/devextreme/js/ui/multi_view.d.ts index 72020424b621..b60e5404396a 100644 --- a/packages/devextreme/js/ui/multi_view.d.ts +++ b/packages/devextreme/js/ui/multi_view.d.ts @@ -217,7 +217,7 @@ export type Options< // eslint-disable-next-line import/first import { CheckedEvents } from '../core'; -type FilterOutHidden = Omit; +type FilterOutHidden = Omit; type EventsIntegrityCheckingHelper = CheckedEvents, Required>; diff --git a/packages/devextreme/js/ui/multi_view.js b/packages/devextreme/js/ui/multi_view.js index f19ef0fdebc4..9168327948b0 100644 --- a/packages/devextreme/js/ui/multi_view.js +++ b/packages/devextreme/js/ui/multi_view.js @@ -19,6 +19,12 @@ export default MultiView; * @hidden */ +/** + * @name dxMultiViewOptions.onSelectionChanging + * @action + * @hidden + */ + /** * @name dxMultiViewItem.visible * @hidden diff --git a/packages/devextreme/js/ui/responsive_box.d.ts b/packages/devextreme/js/ui/responsive_box.d.ts index 97242b6cf4e2..ab8ad419ab06 100644 --- a/packages/devextreme/js/ui/responsive_box.d.ts +++ b/packages/devextreme/js/ui/responsive_box.d.ts @@ -273,7 +273,7 @@ export type Options< // eslint-disable-next-line import/first import { CheckedEvents } from '../core'; -type FilterOutHidden = Omit; +type FilterOutHidden = Omit; type EventsIntegrityCheckingHelper = CheckedEvents, Required>; diff --git a/packages/devextreme/js/ui/responsive_box.js b/packages/devextreme/js/ui/responsive_box.js index d34565f6f3ab..47a6738f9f1a 100644 --- a/packages/devextreme/js/ui/responsive_box.js +++ b/packages/devextreme/js/ui/responsive_box.js @@ -29,6 +29,12 @@ export default ResponsiveBox; * @hidden */ +/** + * @name dxResponsiveBoxOptions.onSelectionChanging + * @action + * @hidden + */ + /** * @name dxResponsiveBoxOptions.onSelectionChanged * @action diff --git a/packages/devextreme/js/ui/select_box.d.ts b/packages/devextreme/js/ui/select_box.d.ts index 3c2745db0b62..95277a28fe8a 100644 --- a/packages/devextreme/js/ui/select_box.d.ts +++ b/packages/devextreme/js/ui/select_box.d.ts @@ -13,6 +13,7 @@ import { InitializedEventInfo, ChangedOptionInfo, ItemInfo, + AsyncCancelable, } from '../events/index'; import { @@ -21,6 +22,7 @@ import { import dxDropDownList, { dxDropDownListOptions, + SelectionChangingInfo, SelectionChangedInfo, } from './drop_down_editor/ui.drop_down_list'; @@ -193,6 +195,14 @@ export type OptionChangedEvent = EventInfo & ChangedOptionInfo; */ export type PasteEvent = NativeEventInfo; +/** + * @docid _ui_select_box_SelectionChangingEvent + * @public + * @type object + * @inherits AsyncCancelable,EventInfo,_ui_drop_down_editor_ui_drop_down_list_SelectionChangingInfo + */ +export type SelectionChangingEvent = AsyncCancelable & EventInfo & SelectionChangingInfo; + /** * @docid _ui_select_box_SelectionChangedEvent * @public @@ -398,6 +408,11 @@ onOptionChanged?: ((e: OptionChangedEvent) => void); * @type_function_param1 e:{ui/select_box:PasteEvent} */ onPaste?: ((e: PasteEvent) => void); +/** + * @docid dxSelectBoxOptions.onSelectionChanging + * @type_function_param1 e:{ui/select_box:SelectionChangingEvent} + */ +onSelectionChanging?: ((e: SelectionChangingEvent) => void); /** * @docid dxSelectBoxOptions.onSelectionChanged * @type_function_param1 e:{ui/select_box:SelectionChangedEvent} diff --git a/packages/devextreme/js/ui/select_box_types.d.ts b/packages/devextreme/js/ui/select_box_types.d.ts index d4fcbfc9437e..8c926d1d06af 100644 --- a/packages/devextreme/js/ui/select_box_types.d.ts +++ b/packages/devextreme/js/ui/select_box_types.d.ts @@ -18,6 +18,7 @@ export { OpenedEvent, OptionChangedEvent, PasteEvent, + SelectionChangingEvent, SelectionChangedEvent, ValueChangedEvent, DropDownButtonTemplateData, diff --git a/packages/devextreme/js/ui/splitter.d.ts b/packages/devextreme/js/ui/splitter.d.ts index 19c6fa4c2322..254726b90974 100644 --- a/packages/devextreme/js/ui/splitter.d.ts +++ b/packages/devextreme/js/ui/splitter.d.ts @@ -316,7 +316,7 @@ export type Properties< // eslint-disable-next-line import/first import { CheckedEvents } from '../core'; -type FilterOutHidden = Omit; +type FilterOutHidden = Omit; type EventsIntegrityCheckingHelper = CheckedEvents, Required, 'onResize' | 'onResizeEnd' | 'onResizeStart' | 'onItemExpanded' | 'onItemCollapsed'>; diff --git a/packages/devextreme/js/ui/splitter.js b/packages/devextreme/js/ui/splitter.js index 4825a3d338c2..5a8f3b7d17e9 100644 --- a/packages/devextreme/js/ui/splitter.js +++ b/packages/devextreme/js/ui/splitter.js @@ -24,6 +24,12 @@ export default Splitter; * @hidden */ +/** + * @name dxSplitterOptions.onSelectionChanging + * @action + * @hidden + */ + /** * @name dxSplitterOptions.onSelectionChanged * @action diff --git a/packages/devextreme/js/ui/tab_panel.d.ts b/packages/devextreme/js/ui/tab_panel.d.ts index e7f1e85f9c5d..d01a1e036b35 100644 --- a/packages/devextreme/js/ui/tab_panel.d.ts +++ b/packages/devextreme/js/ui/tab_panel.d.ts @@ -14,6 +14,7 @@ import { InitializedEventInfo, ChangedOptionInfo, ItemInfo, + AsyncCancelable, } from '../events/index'; import { @@ -23,6 +24,7 @@ import { } from '../common'; import CollectionWidget, { + SelectionChangingInfo, SelectionChangedInfo, } from './collection/ui.collection_widget.base'; @@ -117,6 +119,14 @@ export type ItemRenderedEvent = EventI */ export type OptionChangedEvent = EventInfo> & ChangedOptionInfo; +/** + * @docid _ui_tab_panel_SelectionChangingEvent + * @public + * @type object + * @inherits AsyncCancelable,EventInfo,SelectionChangingInfo + */ +export type SelectionChangingEvent = AsyncCancelable & EventInfo> & SelectionChangingInfo; + /** * @docid _ui_tab_panel_SelectionChangedEvent * @public @@ -330,6 +340,7 @@ export type ExplicitTypes< ItemHoldEvent: ItemHoldEvent; ItemRenderedEvent: ItemRenderedEvent; OptionChangedEvent: OptionChangedEvent; + SelectionChangingEvent: SelectionChangingEvent; SelectionChangedEvent: SelectionChangedEvent; TitleClickEvent: TitleClickEvent; TitleHoldEvent: TitleHoldEvent; @@ -400,6 +411,11 @@ onItemRendered?: ((e: ItemRenderedEvent) => void); * @type_function_param1 e:{ui/tab_panel:OptionChangedEvent} */ onOptionChanged?: ((e: OptionChangedEvent) => void); +/** + * @docid dxTabPanelOptions.onSelectionChanging + * @type_function_param1 e:{ui/tab_panel:SelectionChangingEvent} + */ +onSelectionChanging?: ((e: SelectionChangingEvent) => void); /** * @docid dxTabPanelOptions.onSelectionChanged * @type_function_param1 e:{ui/tab_panel:SelectionChangedEvent} diff --git a/packages/devextreme/js/ui/tab_panel_types.d.ts b/packages/devextreme/js/ui/tab_panel_types.d.ts index 4aee9203d20a..966bc0c4f3be 100644 --- a/packages/devextreme/js/ui/tab_panel_types.d.ts +++ b/packages/devextreme/js/ui/tab_panel_types.d.ts @@ -10,6 +10,7 @@ export { ItemHoldEvent, ItemRenderedEvent, OptionChangedEvent, + SelectionChangingEvent, SelectionChangedEvent, TitleClickEvent, TitleHoldEvent, diff --git a/packages/devextreme/js/ui/tabs.d.ts b/packages/devextreme/js/ui/tabs.d.ts index 0aaa5bf04e34..da1b4f0a48e5 100644 --- a/packages/devextreme/js/ui/tabs.d.ts +++ b/packages/devextreme/js/ui/tabs.d.ts @@ -6,12 +6,14 @@ import { InitializedEventInfo, ChangedOptionInfo, ItemInfo, + AsyncCancelable, } from '../events/index'; import CollectionWidget, { CollectionWidgetItem, CollectionWidgetOptions, SelectionChangedInfo, + SelectionChangingInfo, } from './collection/ui.collection_widget.base'; import { @@ -94,6 +96,14 @@ export type ItemRenderedEvent = EventI */ export type OptionChangedEvent = EventInfo> & ChangedOptionInfo; +/** + * @docid _ui_tabs_SelectionChangingEvent + * @public + * @type object + * @inherits AsyncCancelable,EventInfo,SelectionChangingInfo + */ +export type SelectionChangingEvent = AsyncCancelable & EventInfo> & SelectionChangingInfo; + /** * @docid _ui_tabs_SelectionChangedEvent * @public @@ -254,6 +264,7 @@ export type ExplicitTypes< ItemRenderedEvent: ItemRenderedEvent; OptionChangedEvent: OptionChangedEvent; SelectionChangedEvent: SelectionChangedEvent; + SelectionChangingEvent: SelectionChangingEvent; }; /** @public */ @@ -320,6 +331,11 @@ onItemRendered?: ((e: ItemRenderedEvent) => void); * @type_function_param1 e:{ui/tabs:OptionChangedEvent} */ onOptionChanged?: ((e: OptionChangedEvent) => void); +/** + * @docid dxTabsOptions.onSelectionChanging + * @type_function_param1 e:{ui/tabs:SelectionChangingEvent} + */ +onSelectionChanging?: ((e: SelectionChangingEvent) => void); /** * @docid dxTabsOptions.onSelectionChanged * @type_function_param1 e:{ui/tabs:SelectionChangedEvent} diff --git a/packages/devextreme/js/ui/tabs_types.d.ts b/packages/devextreme/js/ui/tabs_types.d.ts index 5e5540da6550..6023597e2779 100644 --- a/packages/devextreme/js/ui/tabs_types.d.ts +++ b/packages/devextreme/js/ui/tabs_types.d.ts @@ -11,6 +11,7 @@ export { ItemHoldEvent, ItemRenderedEvent, OptionChangedEvent, + SelectionChangingEvent, SelectionChangedEvent, dxTabsOptions, Item, diff --git a/packages/devextreme/js/ui/tag_box.d.ts b/packages/devextreme/js/ui/tag_box.d.ts index cab414278ff5..9e6a06e99fc4 100644 --- a/packages/devextreme/js/ui/tag_box.d.ts +++ b/packages/devextreme/js/ui/tag_box.d.ts @@ -9,6 +9,7 @@ import { import { Cancelable, + AsyncCancelable, EventInfo, NativeEventInfo, InitializedEventInfo, @@ -17,6 +18,7 @@ import { } from '../events/index'; import { + SelectionChangingInfo, SelectionChangedInfo, } from './collection/ui.collection_widget.base'; @@ -190,6 +192,14 @@ export type SelectAllValueChangedEvent = EventInfo & { readonly value: boolean; }; +/** + * @docid _ui_tag_box_SelectionChangingEvent + * @public + * @type object + * @inherits AsyncCancelable,EventInfo,SelectionChangingInfo + */ +export type SelectionChangingEvent = AsyncCancelable & EventInfo & SelectionChangingInfo; + /** * @docid _ui_tag_box_SelectionChangedEvent * @public @@ -214,7 +224,7 @@ export type DropDownButtonTemplateData = DropDownButtonTemplateDataModel; * @namespace DevExpress.ui * @docid */ -export interface dxTagBoxOptions extends Pick, Exclude, 'onSelectionChanged'>> { +export interface dxTagBoxOptions extends Pick, Exclude, 'onSelectionChanged' | 'onSelectionChanging'>> { /** * @docid * @default "instantly" @@ -255,6 +265,14 @@ export interface dxTagBoxOptions extends Pick, Excl * @public */ onSelectAllValueChanged?: ((e: SelectAllValueChangedEvent) => void); + /** + * @docid + * @default null + * @type_function_param1 e:{ui/tag_box:SelectionChangingEvent} + * @action + * @public + */ + onSelectionChanging?: ((e: SelectionChangingEvent) => void); /** * @docid * @default null @@ -335,7 +353,7 @@ import { CheckedEvents } from '../core'; type FilterOutHidden = Omit; -type EventsIntegrityCheckingHelper = CheckedEvents, Required, 'onMultiTagPreparing' | 'onSelectAllValueChanged' | 'onSelectionChanged'>; +type EventsIntegrityCheckingHelper = CheckedEvents, Required, 'onMultiTagPreparing' | 'onSelectAllValueChanged' | 'onSelectionChanged' | 'onSelectionChanging'>; /** * @hidden diff --git a/packages/devextreme/js/ui/tag_box_types.d.ts b/packages/devextreme/js/ui/tag_box_types.d.ts index 8b26bb168b5b..2349f5edfc8c 100644 --- a/packages/devextreme/js/ui/tag_box_types.d.ts +++ b/packages/devextreme/js/ui/tag_box_types.d.ts @@ -17,6 +17,7 @@ export { OpenedEvent, OptionChangedEvent, SelectAllValueChangedEvent, + SelectionChangingEvent, SelectionChangedEvent, ValueChangedEvent, DropDownButtonTemplateData, diff --git a/packages/devextreme/js/ui/tile_view.d.ts b/packages/devextreme/js/ui/tile_view.d.ts index ce51a71c737e..14e6acc8d1c2 100644 --- a/packages/devextreme/js/ui/tile_view.d.ts +++ b/packages/devextreme/js/ui/tile_view.d.ts @@ -245,7 +245,7 @@ export type Options< // eslint-disable-next-line import/first import { CheckedEvents } from '../core'; -type FilterOutHidden = Omit; +type FilterOutHidden = Omit; type EventsIntegrityCheckingHelper = CheckedEvents, Required>; diff --git a/packages/devextreme/js/ui/tile_view.js b/packages/devextreme/js/ui/tile_view.js index 9eb397302b05..79d432468a5d 100644 --- a/packages/devextreme/js/ui/tile_view.js +++ b/packages/devextreme/js/ui/tile_view.js @@ -29,6 +29,12 @@ export default TagBox; * @hidden */ +/** + * @name dxTileViewOptions.onSelectionChanging + * @action + * @hidden + */ + /** * @name dxTileViewOptions.onSelectionChanged * @action diff --git a/packages/devextreme/js/ui/toolbar.d.ts b/packages/devextreme/js/ui/toolbar.d.ts index a83f06e81958..bd461cb7a2ee 100644 --- a/packages/devextreme/js/ui/toolbar.d.ts +++ b/packages/devextreme/js/ui/toolbar.d.ts @@ -237,7 +237,7 @@ export type Options< // eslint-disable-next-line import/first import { CheckedEvents } from '../core'; -type FilterOutHidden = Omit; +type FilterOutHidden = Omit; type EventsIntegrityCheckingHelper = CheckedEvents, Required>; diff --git a/packages/devextreme/js/ui/toolbar.js b/packages/devextreme/js/ui/toolbar.js index af20910a8cb8..e96cebec5f62 100644 --- a/packages/devextreme/js/ui/toolbar.js +++ b/packages/devextreme/js/ui/toolbar.js @@ -62,6 +62,12 @@ export default Toolbar; * @hidden */ +/** + * @name dxToolbarOptions.onSelectionChanging + * @action + * @hidden + */ + /** * @name dxToolbarOptions.onSelectionChanged * @action diff --git a/packages/devextreme/js/ui/tree_view.d.ts b/packages/devextreme/js/ui/tree_view.d.ts index 2b3d3b43cd11..dc21bb03bd48 100644 --- a/packages/devextreme/js/ui/tree_view.d.ts +++ b/packages/devextreme/js/ui/tree_view.d.ts @@ -716,7 +716,7 @@ export type Options = Properties; // eslint-disable-next-line import/first import { CheckedEvents } from '../core'; -type FilterOutHidden = Omit; +type FilterOutHidden = Omit; type EventsIntegrityCheckingHelper = CheckedEvents, Required, 'onItemClick' | 'onItemCollapsed' | 'onItemContextMenu' | 'onItemExpanded' | 'onItemHold' | 'onItemRendered' | 'onItemSelectionChanged' | 'onSelectAllValueChanged' | 'onSelectionChanged'>; diff --git a/packages/devextreme/js/ui/tree_view.js b/packages/devextreme/js/ui/tree_view.js index 4f29996e83d8..0f8ad4635f96 100644 --- a/packages/devextreme/js/ui/tree_view.js +++ b/packages/devextreme/js/ui/tree_view.js @@ -24,3 +24,9 @@ export default TreeView; * @name dxTreeViewOptions.selectedIndex * @hidden */ +/** + * @name dxTreeViewOptions.onSelectionChanging + * @hidden + * @action + */ + diff --git a/packages/devextreme/js/ui/validation_summary.d.ts b/packages/devextreme/js/ui/validation_summary.d.ts index d1a8165c8265..6b51ce56c76a 100644 --- a/packages/devextreme/js/ui/validation_summary.d.ts +++ b/packages/devextreme/js/ui/validation_summary.d.ts @@ -115,7 +115,7 @@ export type Options< // eslint-disable-next-line import/first import { CheckedEvents } from '../core'; -type FilterOutHidden = Omit; +type FilterOutHidden = Omit; type EventsIntegrityCheckingHelper = CheckedEvents, Required>; diff --git a/packages/devextreme/js/ui/validation_summary.js b/packages/devextreme/js/ui/validation_summary.js index cc57924f14f6..38f6002881ad 100644 --- a/packages/devextreme/js/ui/validation_summary.js +++ b/packages/devextreme/js/ui/validation_summary.js @@ -100,6 +100,12 @@ export default ValidationSummary; * @action */ +/** + * @name dxValidationSummaryOptions.onSelectionChanging + * @hidden + * @action + */ + /** * @name dxValidationSummaryOptions.onSelectionChanged * @hidden diff --git a/packages/devextreme/package.json b/packages/devextreme/package.json index 17d2d9768ac0..43edf2a3a885 100644 --- a/packages/devextreme/package.json +++ b/packages/devextreme/package.json @@ -180,7 +180,7 @@ "uuid": "9.0.1", "vinyl": "2.2.1", "vinyl-named": "1.1.0", - "webpack": "5.76.0", + "webpack": "5.94.0", "webpack-stream": "7.0.0", "yaml": "2.5.0", "yargs": "17.7.2" diff --git a/packages/devextreme/testing/tests/DevExpress.ui.widgets/chatParts/chat.markup.tests.js b/packages/devextreme/testing/tests/DevExpress.ui.widgets/chatParts/chat.markup.tests.js index a77d38962889..3d3e2cd888b0 100644 --- a/packages/devextreme/testing/tests/DevExpress.ui.widgets/chatParts/chat.markup.tests.js +++ b/packages/devextreme/testing/tests/DevExpress.ui.widgets/chatParts/chat.markup.tests.js @@ -29,12 +29,46 @@ const moduleConfig = { QUnit.module('Chat', moduleConfig, () => { QUnit.module('Render', () => { - QUnit.test('Header should be rendered', function(assert) { + QUnit.test('Header should be rendered if title is not empty', function(assert) { + this.reinit({ title: 'custom' }); + + const $header = this.$element.find(`.${CHAT_HEADER_CLASS}`); + + assert.strictEqual($header.length, 1); + }); + + QUnit.test('Header should not be rendered if title is empty', function(assert) { + const $header = this.$element.find(`.${CHAT_HEADER_CLASS}`); + + assert.strictEqual($header.length, 0); + }); + + QUnit.test('Header should be rendered if title is not empty on init and in runtime', function(assert) { + this.reinit({ title: 'custom' }); + this.instance.option({ title: 'new custom' }); + const $header = this.$element.find(`.${CHAT_HEADER_CLASS}`); assert.strictEqual($header.length, 1); }); + QUnit.test('Header should be rendered if title is empty on init and not empty in runtime', function(assert) { + this.instance.option({ title: 'new custom' }); + + const $header = this.$element.find(`.${CHAT_HEADER_CLASS}`); + + assert.strictEqual($header.length, 1); + }); + + QUnit.test('Header should be removed if title is empty in runtime', function(assert) { + this.reinit({ title: 'custom' }); + this.instance.option({ title: '' }); + + const $header = this.$element.find(`.${CHAT_HEADER_CLASS}`); + + assert.strictEqual($header.length, 0); + }); + QUnit.test('Message list should be rendered', function(assert) { const $messageList = this.$element.find(`.${CHAT_MESSAGE_LIST_CLASS}`); diff --git a/packages/devextreme/testing/tests/DevExpress.ui.widgets/chatParts/chat.tests.js b/packages/devextreme/testing/tests/DevExpress.ui.widgets/chatParts/chat.tests.js index a33258e6e858..4ecb30a44b56 100644 --- a/packages/devextreme/testing/tests/DevExpress.ui.widgets/chatParts/chat.tests.js +++ b/packages/devextreme/testing/tests/DevExpress.ui.widgets/chatParts/chat.tests.js @@ -4,7 +4,9 @@ import Chat from 'ui/chat'; import MessageList from '__internal/ui/chat/chat_message_list'; import MessageBox from '__internal/ui/chat/chat_message_box'; import keyboardMock from '../../../helpers/keyboardMock.js'; + import { isRenderer } from 'core/utils/type'; + import config from 'core/config'; const CHAT_HEADER_TEXT_CLASS = 'dx-chat-header-text'; @@ -297,7 +299,7 @@ QUnit.module('Chat', moduleConfig, () => { assert.strictEqual(lastItem, newMessage); }); - QUnit.test('Message Group should be created if items are empty', function(assert) { + QUnit.test('Message Group should be created if items was empty', function(assert) { this.instance.option({ items: [] }); const author = { diff --git a/packages/devextreme/testing/tests/DevExpress.ui.widgets/chatParts/messageList.tests.js b/packages/devextreme/testing/tests/DevExpress.ui.widgets/chatParts/messageList.tests.js index 03ea8f126da7..b2a8dcd963d3 100644 --- a/packages/devextreme/testing/tests/DevExpress.ui.widgets/chatParts/messageList.tests.js +++ b/packages/devextreme/testing/tests/DevExpress.ui.widgets/chatParts/messageList.tests.js @@ -3,8 +3,11 @@ import $ from 'jquery'; import MessageList from '__internal/ui/chat/chat_message_list'; import Scrollable from 'ui/scroll_view/ui.scrollable'; import { - generateMessages, userFirst, userSecond, - NOW, MOCK_COMPANION_USER_ID, MOCK_CURRENT_USER_ID + generateMessages, + userFirst, + NOW, + MOCK_COMPANION_USER_ID, + MOCK_CURRENT_USER_ID, } from './chat.tests.js'; import MessageGroup from '__internal/ui/chat/chat_message_group'; @@ -22,7 +25,9 @@ const moduleConfig = { this.instance = new MessageList($('#messageList'), options); this.$element = $(this.instance.$element()); - this.scrollable = Scrollable.getInstance(this.$element.find(`.${SCROLLABLE_CLASS}`)); + this.getScrollable = () => Scrollable.getInstance(this.$element.find(`.${SCROLLABLE_CLASS}`)); + + this.scrollable = this.getScrollable(); }; this.reinit = (options) => { @@ -60,6 +65,61 @@ QUnit.module('MessageList', moduleConfig, () => { QUnit.test('scrollable should be rendered inside root element', function(assert) { assert.ok(Scrollable.getInstance(this.$element.children().first()) instanceof Scrollable); }); + + QUnit.test('Message Group should be rendered in the scrollable content', function(assert) { + const newMessage = { + author: { id: MOCK_CURRENT_USER_ID }, + timestamp: NOW, + text: 'NEW MESSAGE', + }; + + this.reinit({ items: [newMessage] }); + + const $messageGroups = $(this.scrollable.content()).find(`.${CHAT_MESSAGE_GROUP_CLASS}`); + + assert.strictEqual($messageGroups.length, 1); + }); + + QUnit.test('Message Group should be rendered in the scrollable content after adding 1 new message', function(assert) { + const newMessage = { + author: { id: MOCK_CURRENT_USER_ID }, + timestamp: NOW, + text: 'NEW MESSAGE', + }; + + this.instance.option({ items: [newMessage] }); + + const $messageGroups = $(this.scrollable.content()).find(`.${CHAT_MESSAGE_GROUP_CLASS}`); + + assert.strictEqual($messageGroups.length, 1); + }); + + QUnit.test('Message Group should be rendered in the scrollable content after adding 1 new message to items', function(assert) { + const items = generateMessages(52); + + this.reinit({ items }); + + const newMessage = { + author: { id: 'another user' }, + timestamp: NOW, + text: 'NEW MESSAGE', + }; + + this.instance.option({ items: [...items, newMessage] }); + + const $messageGroups = $(this.scrollable.content()).find(`.${CHAT_MESSAGE_GROUP_CLASS}`); + + assert.strictEqual($messageGroups.length, 27); + }); + + QUnit.test('Message Group should be rendered in the scrollable content after updating items at runtime', function(assert) { + this.instance.option({ items: generateMessages(52) }); + + const scrollableContent = this.getScrollable().content(); + const $messageGroups = $(scrollableContent).find(`.${CHAT_MESSAGE_GROUP_CLASS}`); + + assert.strictEqual($messageGroups.length, 26); + }); }); QUnit.module('MessageGroup integration', () => { diff --git a/packages/devextreme/testing/tests/DevExpress.ui/defaultOptions.tests.js b/packages/devextreme/testing/tests/DevExpress.ui/defaultOptions.tests.js index c77881bb8a22..f7ec1185cd1c 100644 --- a/packages/devextreme/testing/tests/DevExpress.ui/defaultOptions.tests.js +++ b/packages/devextreme/testing/tests/DevExpress.ui/defaultOptions.tests.js @@ -1342,8 +1342,11 @@ testComponentDefaults(ColorBox, testComponentDefaults(Chat, {}, { + activeStateEnabled: true, + focusStateEnabled: true, + hoverStateEnabled: true, title: '', - onMessageSend: null, + onMessageSend: undefined, } ); diff --git a/packages/devextreme/ts/dx.all.d.ts b/packages/devextreme/ts/dx.all.d.ts index 80039db74b04..664826f85f68 100644 --- a/packages/devextreme/ts/dx.all.d.ts +++ b/packages/devextreme/ts/dx.all.d.ts @@ -6700,6 +6700,15 @@ declare module DevExpress.data.utils.odata { export var keyConverters: any; } declare module DevExpress.events { + /** + * [descr:AsyncCancelable] + */ + export type AsyncCancelable = { + /** + * [descr:AsyncCancelable.cancel] + */ + cancel: boolean | PromiseLike; + }; /** * [descr:Cancelable] */ @@ -7960,6 +7969,27 @@ declare module DevExpress.ui { */ readonly removedItems: Array; } + /** + * [descr:SelectionChangingEvent] + */ + export type SelectionChangingEvent = + DevExpress.events.AsyncCancelable & + DevExpress.events.EventInfo & + SelectionChangingInfo; + /** + * [descr:SelectionChangingInfo] + * @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution. + */ + export interface SelectionChangingInfo { + /** + * [descr:SelectionChangingInfo.addedItems] + */ + readonly addedItems: Array; + /** + * [descr:SelectionChangingInfo.removedItems] + */ + readonly removedItems: Array; + } } /** * [descr:CollectionWidgetItem] @@ -8071,6 +8101,12 @@ declare module DevExpress.ui { e: DevExpress.events.EventInfo & DevExpress.events.ItemInfo ) => void; + /** + * [descr:CollectionWidgetOptions.onSelectionChanging] + */ + onSelectionChanging?: ( + e: DevExpress.ui.CollectionWidget.SelectionChangingEvent + ) => void; /** * [descr:CollectionWidgetOptions.onSelectionChanged] */ @@ -8847,6 +8883,12 @@ declare module DevExpress.ui { export type SelectionChangedEvent = DevExpress.events.EventInfo & DevExpress.ui.dxDropDownList.SelectionChangedInfo; + /** + * [descr:_ui_autocomplete_SelectionChangingEvent] + */ + export type SelectionChangingEvent = DevExpress.events.AsyncCancelable & + DevExpress.events.EventInfo & + DevExpress.ui.dxDropDownList.SelectionChangingInfo; /** * [descr:_ui_autocomplete_ValueChangedEvent] */ @@ -9462,13 +9504,21 @@ declare module DevExpress.ui { */ export interface dxChatOptions extends WidgetOptions { /** - * [descr:dxChatOptions.user] + * [descr:dxChatOptions.activeStateEnabled] */ - user?: DevExpress.ui.dxChat.User; + activeStateEnabled?: boolean; /** - * [descr:dxChatOptions.title] + * [descr:dxChatOptions.focusStateEnabled] */ - title?: string; + focusStateEnabled?: boolean; + /** + * [descr:dxChatOptions.hoverStateEnabled] + */ + hoverStateEnabled?: boolean; + /** + * [descr:dxChatOptions.user] + */ + user?: DevExpress.ui.dxChat.User; /** * [descr:dxChatOptions.items] */ @@ -14835,6 +14885,23 @@ declare module DevExpress.ui { */ readonly selectedItem: T; } + /** + * [descr:_ui_drop_down_editor_ui_drop_down_list_SelectionChangingEvent] + */ + export type SelectionChangingEvent = + DevExpress.events.AsyncCancelable & + DevExpress.events.EventInfo & + SelectionChangingInfo; + /** + * [descr:_ui_drop_down_editor_ui_drop_down_list_SelectionChangingInfo] + * @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution. + */ + export interface SelectionChangingInfo { + /** + * [descr:_ui_drop_down_editor_ui_drop_down_list_SelectionChangingInfo.selectedItem] + */ + readonly selectedItem: T; + } } /** * [descr:dxDropDownListOptions] @@ -14879,6 +14946,12 @@ declare module DevExpress.ui { > & DevExpress.events.ItemInfo ) => void; + /** + * [descr:dxDropDownListOptions.onSelectionChanging] + */ + onSelectionChanging?: ( + e: DevExpress.ui.dxDropDownList.SelectionChangingEvent + ) => void; /** * [descr:dxDropDownListOptions.onSelectionChanged] */ @@ -19613,6 +19686,7 @@ declare module DevExpress.ui { PullRefreshEvent: PullRefreshEvent; ScrollEvent: ScrollEvent; SelectAllValueChangedEvent: SelectAllValueChangedEvent; + SelectionChangingEvent: SelectionChangingEvent; SelectionChangedEvent: SelectionChangedEvent; }; /** @@ -19846,6 +19920,15 @@ declare module DevExpress.ui { TKey = any > = DevExpress.events.EventInfo> & DevExpress.ui.CollectionWidget.SelectionChangedInfo; + /** + * [descr:_ui_list_SelectionChangingEvent] + */ + export type SelectionChangingEvent< + TItem extends ItemLike = any, + TKey = any + > = DevExpress.events.AsyncCancelable & + DevExpress.events.EventInfo> & + DevExpress.ui.CollectionWidget.SelectionChangingInfo; } /** * @deprecated Use Item instead @@ -20316,6 +20399,12 @@ declare module DevExpress.ui { */ export type SelectionChangedEvent = DevExpress.events.EventInfo & DevExpress.ui.dxDropDownList.SelectionChangedInfo; + /** + * [descr:_ui_lookup_SelectionChangingEvent] + */ + export type SelectionChangingEvent = DevExpress.events.AsyncCancelable & + DevExpress.events.EventInfo & + DevExpress.ui.dxDropDownList.SelectionChangingInfo; export type TitleRenderedEvent = DevExpress.events.EventInfo & DevExpress.ui.dxPopup.TitleRenderedInfo; /** @@ -24888,6 +24977,12 @@ declare module DevExpress.ui { export type SelectionChangedEvent = DevExpress.events.EventInfo & DevExpress.ui.dxDropDownList.SelectionChangedInfo; + /** + * [descr:_ui_select_box_SelectionChangingEvent] + */ + export type SelectionChangingEvent = DevExpress.events.AsyncCancelable & + DevExpress.events.EventInfo & + DevExpress.ui.dxDropDownList.SelectionChangingInfo; /** * [descr:_ui_select_box_ValueChangedEvent] */ @@ -25918,6 +26013,7 @@ declare module DevExpress.ui { ItemHoldEvent: ItemHoldEvent; ItemRenderedEvent: ItemRenderedEvent; OptionChangedEvent: OptionChangedEvent; + SelectionChangingEvent: SelectionChangingEvent; SelectionChangedEvent: SelectionChangedEvent; TitleClickEvent: TitleClickEvent; TitleHoldEvent: TitleHoldEvent; @@ -25995,6 +26091,15 @@ declare module DevExpress.ui { TKey = any > = DevExpress.events.EventInfo> & DevExpress.ui.CollectionWidget.SelectionChangedInfo; + /** + * [descr:_ui_tab_panel_SelectionChangingEvent] + */ + export type SelectionChangingEvent< + TItem extends ItemLike = any, + TKey = any + > = DevExpress.events.AsyncCancelable & + DevExpress.events.EventInfo> & + DevExpress.ui.CollectionWidget.SelectionChangingInfo; /** * [descr:TabPanelItemInfo] * @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution. @@ -26187,6 +26292,7 @@ declare module DevExpress.ui { ItemRenderedEvent: ItemRenderedEvent; OptionChangedEvent: OptionChangedEvent; SelectionChangedEvent: SelectionChangedEvent; + SelectionChangingEvent: SelectionChangingEvent; }; /** * [descr:_ui_tabs_InitializedEvent] @@ -26260,6 +26366,15 @@ declare module DevExpress.ui { TKey = any > = DevExpress.events.EventInfo> & DevExpress.ui.CollectionWidget.SelectionChangedInfo; + /** + * [descr:_ui_tabs_SelectionChangingEvent] + */ + export type SelectionChangingEvent< + TItem extends ItemLike = any, + TKey = any + > = DevExpress.events.AsyncCancelable & + DevExpress.events.EventInfo> & + DevExpress.ui.CollectionWidget.SelectionChangingInfo; } /** * [descr:dxTabsOptions] @@ -26475,6 +26590,14 @@ declare module DevExpress.ui { DevExpress.ui.CollectionWidget.SelectionChangedInfo< string | number | any >; + /** + * [descr:_ui_tag_box_SelectionChangingEvent] + */ + export type SelectionChangingEvent = DevExpress.events.AsyncCancelable & + DevExpress.events.EventInfo & + DevExpress.ui.CollectionWidget.SelectionChangingInfo< + string | number | any + >; /** * [descr:_ui_tag_box_ValueChangedEvent] */ @@ -26492,7 +26615,10 @@ declare module DevExpress.ui { export interface dxTagBoxOptions extends Pick< dxSelectBoxOptions, - Exclude, 'onSelectionChanged'> + Exclude< + keyof dxSelectBoxOptions, + 'onSelectionChanged' | 'onSelectionChanging' + > > { /** * [descr:dxTagBoxOptions.applyValueMode] @@ -26522,6 +26648,12 @@ declare module DevExpress.ui { onSelectAllValueChanged?: ( e: DevExpress.ui.dxTagBox.SelectAllValueChangedEvent ) => void; + /** + * [descr:dxTagBoxOptions.onSelectionChanging] + */ + onSelectionChanging?: ( + e: DevExpress.ui.dxTagBox.SelectionChangingEvent + ) => void; /** * [descr:dxTagBoxOptions.onSelectionChanged] */ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 216ed1ea503d..44054509a58c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -541,28 +541,28 @@ importers: version: 18.0.11 css-loader: specifier: 6.10.0 - version: 6.10.0(webpack@5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4)) + version: 6.10.0(webpack@5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4)) source-map-loader: specifier: 4.0.2 - version: 4.0.2(webpack@5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4)) + version: 4.0.2(webpack@5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4)) style-loader: specifier: 3.3.4 - version: 3.3.4(webpack@5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4)) + version: 3.3.4(webpack@5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4)) ts-loader: specifier: 9.5.1 - version: 9.5.1(typescript@5.4.5)(webpack@5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4)) + version: 9.5.1(typescript@5.4.5)(webpack@5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4)) tsconfig-paths-webpack-plugin: specifier: 4.1.0 version: 4.1.0 webpack: - specifier: 5.89.0 - version: 5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4) + specifier: 5.94.0 + version: 5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4) webpack-cli: specifier: 5.1.4 - version: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.89.0) + version: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.94.0) webpack-dev-server: specifier: 4.15.1 - version: 4.15.1(webpack-cli@5.1.4)(webpack@5.89.0) + version: 4.15.1(webpack-cli@5.1.4)(webpack@5.94.0) apps/react-storybook: dependencies: @@ -590,7 +590,7 @@ importers: version: 7.6.19(encoding@0.1.13)(react-dom@18.0.0(react@18.0.0))(react@18.0.0)(typescript@4.9.5) '@storybook/react-webpack5': specifier: 7.6.19 - version: 7.6.19(@babel/core@7.23.9)(@swc/core@1.4.17(@swc/helpers@0.5.11))(@swc/helpers@0.5.11)(encoding@0.1.13)(esbuild@0.18.20)(react-dom@18.0.0(react@18.0.0))(react@18.0.0)(type-fest@2.19.0)(typescript@4.9.5)(webpack-dev-server@4.15.1(webpack@5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)))(webpack-hot-middleware@2.26.1) + version: 7.6.19(@babel/core@7.23.9)(@swc/core@1.4.17(@swc/helpers@0.5.11))(@swc/helpers@0.5.11)(encoding@0.1.13)(esbuild@0.18.20)(react-dom@18.0.0(react@18.0.0))(react@18.0.0)(type-fest@2.19.0)(typescript@4.9.5)(webpack-dev-server@4.15.1(webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)))(webpack-hot-middleware@2.26.1) '@storybook/test': specifier: 7.6.19 version: 7.6.19(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.12.8)(node-notifier@9.0.1)(ts-node@10.9.2(@swc/core@1.4.17)(@types/node@20.12.8)(typescript@5.4.5))) @@ -633,19 +633,19 @@ importers: version: 2.0.0-beta.7(vue@3.2.47) css-loader: specifier: 6.10.0 - version: 6.10.0(webpack@5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4)) + version: 6.10.0(webpack@5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4)) minimatch: specifier: 4.2.3 version: 4.2.3 source-map-loader: specifier: 4.0.2 - version: 4.0.2(webpack@5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4)) + version: 4.0.2(webpack@5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4)) style-loader: specifier: 3.3.4 - version: 3.3.4(webpack@5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4)) + version: 3.3.4(webpack@5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4)) ts-loader: specifier: 9.5.1 - version: 9.5.1(typescript@4.9.5)(webpack@5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4)) + version: 9.5.1(typescript@4.9.5)(webpack@5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4)) tsconfig-paths-webpack-plugin: specifier: 4.1.0 version: 4.1.0 @@ -654,22 +654,22 @@ importers: version: 4.9.5 url-loader: specifier: 1.1.2 - version: 1.1.2(webpack@5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4)) + version: 1.1.2(webpack@5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4)) vue-loader: specifier: 17.4.2 - version: 17.4.2(@vue/compiler-sfc@3.3.4)(vue@3.2.47)(webpack@5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4)) + version: 17.4.2(@vue/compiler-sfc@3.3.4)(vue@3.2.47)(webpack@5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4)) vue-router: specifier: 4.2.5 version: 4.2.5(vue@3.2.47) webpack: - specifier: 5.89.0 - version: 5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4) + specifier: 5.94.0 + version: 5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4) webpack-cli: specifier: 5.1.4 - version: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.89.0) + version: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.94.0) webpack-dev-server: specifier: 4.15.1 - version: 4.15.1(webpack-cli@5.1.4)(webpack@5.89.0) + version: 4.15.1(webpack-cli@5.1.4)(webpack@5.94.0) e2e/bundlers: devDependencies: @@ -719,11 +719,11 @@ importers: specifier: 2.9.18 version: 2.9.18(less@4.2.0)(sass@1.76.0) webpack: - specifier: 5.76.0 - version: 5.76.0(@swc/core@1.4.17)(webpack-cli@4.10.0) + specifier: 5.94.0 + version: 5.94.0(@swc/core@1.4.17)(webpack-cli@4.10.0) webpack-cli: specifier: 4.10.0 - version: 4.10.0(webpack@5.76.0) + version: 4.10.0(webpack@5.94.0) e2e/compilation-cases: devDependencies: @@ -1180,7 +1180,7 @@ importers: version: 1.3.0 string-replace-loader: specifier: 3.1.0 - version: 3.1.0(webpack@5.76.0(@swc/core@1.4.17)) + version: 3.1.0(webpack@5.94.0(@swc/core@1.4.17)) stylelint: specifier: 15.11.0 version: 15.11.0(typescript@4.9.5) @@ -1204,7 +1204,7 @@ importers: version: 0.0.11 terser-webpack-plugin: specifier: 5.3.9 - version: 5.3.9(@swc/core@1.4.17)(webpack@5.76.0(@swc/core@1.4.17)) + version: 5.3.9(@swc/core@1.4.17)(webpack@5.94.0(@swc/core@1.4.17)) through2: specifier: 2.0.5 version: 2.0.5 @@ -1230,11 +1230,11 @@ importers: specifier: 1.1.0 version: 1.1.0 webpack: - specifier: 5.76.0 - version: 5.76.0(@swc/core@1.4.17) + specifier: 5.94.0 + version: 5.94.0(@swc/core@1.4.17) webpack-stream: specifier: 7.0.0 - version: 7.0.0(webpack@5.76.0(@swc/core@1.4.17)) + version: 7.0.0(webpack@5.94.0(@swc/core@1.4.17)) yaml: specifier: 2.5.0 version: 2.5.0 @@ -1347,7 +1347,7 @@ importers: version: 2.0.1(karma@6.4.3) karma-webpack: specifier: 5.0.1 - version: 5.0.1(webpack@5.89.0(@swc/core@1.4.17)) + version: 5.0.1(webpack@5.94.0(@swc/core@1.4.17)) ng-packagr: specifier: 16.2.0 version: 16.2.0(@angular/compiler-cli@16.2.12(@angular/compiler@16.2.12(@angular/core@16.2.12(rxjs@7.8.1)(zone.js@0.13.3)))(typescript@4.9.5))(tslib@2.6.2)(typescript@4.9.5) @@ -1370,8 +1370,8 @@ importers: specifier: 4.9.5 version: 4.9.5 webpack: - specifier: 5.89.0 - version: 5.89.0(@swc/core@1.4.17) + specifier: 5.94.0 + version: 5.94.0(@swc/core@1.4.17) yargs: specifier: 17.7.2 version: 17.7.2 @@ -5619,93 +5619,48 @@ packages: peerDependencies: vue: ^3.0.1 - '@webassemblyjs/ast@1.11.1': - resolution: {integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==} - '@webassemblyjs/ast@1.12.1': resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} - '@webassemblyjs/floating-point-hex-parser@1.11.1': - resolution: {integrity: sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==} - '@webassemblyjs/floating-point-hex-parser@1.11.6': resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} - '@webassemblyjs/helper-api-error@1.11.1': - resolution: {integrity: sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==} - '@webassemblyjs/helper-api-error@1.11.6': resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} - '@webassemblyjs/helper-buffer@1.11.1': - resolution: {integrity: sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==} - '@webassemblyjs/helper-buffer@1.12.1': resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} - '@webassemblyjs/helper-numbers@1.11.1': - resolution: {integrity: sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==} - '@webassemblyjs/helper-numbers@1.11.6': resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} - '@webassemblyjs/helper-wasm-bytecode@1.11.1': - resolution: {integrity: sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==} - '@webassemblyjs/helper-wasm-bytecode@1.11.6': resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} - '@webassemblyjs/helper-wasm-section@1.11.1': - resolution: {integrity: sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==} - '@webassemblyjs/helper-wasm-section@1.12.1': resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} - '@webassemblyjs/ieee754@1.11.1': - resolution: {integrity: sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==} - '@webassemblyjs/ieee754@1.11.6': resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} - '@webassemblyjs/leb128@1.11.1': - resolution: {integrity: sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==} - '@webassemblyjs/leb128@1.11.6': resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} - '@webassemblyjs/utf8@1.11.1': - resolution: {integrity: sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==} - '@webassemblyjs/utf8@1.11.6': resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} - '@webassemblyjs/wasm-edit@1.11.1': - resolution: {integrity: sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==} - '@webassemblyjs/wasm-edit@1.12.1': resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} - '@webassemblyjs/wasm-gen@1.11.1': - resolution: {integrity: sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==} - '@webassemblyjs/wasm-gen@1.12.1': resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} - '@webassemblyjs/wasm-opt@1.11.1': - resolution: {integrity: sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==} - '@webassemblyjs/wasm-opt@1.12.1': resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} - '@webassemblyjs/wasm-parser@1.11.1': - resolution: {integrity: sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==} - '@webassemblyjs/wasm-parser@1.12.1': resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} - '@webassemblyjs/wast-printer@1.11.1': - resolution: {integrity: sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==} - '@webassemblyjs/wast-printer@1.12.1': resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} @@ -5834,6 +5789,11 @@ packages: peerDependencies: acorn: ^8 + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -8141,6 +8101,10 @@ packages: resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} engines: {node: '>=10.13.0'} + enhanced-resolve@5.17.1: + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} + engines: {node: '>=10.13.0'} + enquirer@2.3.6: resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} engines: {node: '>=8.6'} @@ -8227,9 +8191,6 @@ packages: resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} engines: {node: '>= 0.4'} - es-module-lexer@0.9.3: - resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} - es-module-lexer@1.5.2: resolution: {integrity: sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA==} @@ -14806,6 +14767,22 @@ packages: ternary-stream@3.0.0: resolution: {integrity: sha512-oIzdi+UL/JdktkT+7KU5tSIQjj8pbShj3OASuvDEhm0NT5lppsm7aXWAmAq4/QMaBIyfuEcNLbAQA+HpaISobQ==} + terser-webpack-plugin@5.3.10: + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + terser-webpack-plugin@5.3.9: resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==} engines: {node: '>= 10.13.0'} @@ -15951,16 +15928,6 @@ packages: webpack-virtual-modules@0.6.1: resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==} - webpack@5.76.0: - resolution: {integrity: sha512-l5sOdYBDunyf72HW8dF23rFtWq/7Zgvt/9ftMof71E/yUb1YLOBmTgA2K4vQthB3kotMrSj609txVE0dnr2fjA==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - webpack@5.88.2: resolution: {integrity: sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==} engines: {node: '>=10.13.0'} @@ -15971,8 +15938,8 @@ packages: webpack-cli: optional: true - webpack@5.89.0: - resolution: {integrity: sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==} + webpack@5.94.0: + resolution: {integrity: sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -19068,7 +19035,7 @@ snapshots: loader-utils: 2.0.4 typescript: 4.3.5 vinyl: 2.2.1 - webpack: 5.89.0(@swc/core@1.4.17) + webpack: 5.94.0(@swc/core@1.4.17) transitivePeerDependencies: - '@swc/core' - '@typescript-eslint/eslint-plugin' @@ -20914,7 +20881,7 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@pmmmwh/react-refresh-webpack-plugin@0.5.13(react-refresh@0.14.2)(type-fest@2.19.0)(webpack-dev-server@4.15.1(webpack@5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)))(webpack-hot-middleware@2.26.1)(webpack@5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20))': + '@pmmmwh/react-refresh-webpack-plugin@0.5.13(react-refresh@0.14.2)(type-fest@2.19.0)(webpack-dev-server@4.15.1(webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)))(webpack-hot-middleware@2.26.1)(webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20))': dependencies: ansi-html-community: 0.0.8 core-js-pure: 3.37.0 @@ -20924,10 +20891,10 @@ snapshots: react-refresh: 0.14.2 schema-utils: 3.3.0 source-map: 0.7.4 - webpack: 5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20) + webpack: 5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20) optionalDependencies: type-fest: 2.19.0 - webpack-dev-server: 4.15.1(webpack@5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)) + webpack-dev-server: 4.15.1(webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)) webpack-hot-middleware: 2.26.1 '@popperjs/core@2.11.8': {} @@ -21662,30 +21629,30 @@ snapshots: '@swc/core': 1.4.17(@swc/helpers@0.5.11) '@types/node': 18.19.31 '@types/semver': 7.5.8 - babel-loader: 9.1.3(@babel/core@7.23.9)(webpack@5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)) + babel-loader: 9.1.3(@babel/core@7.23.9)(webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)) browser-assert: 1.2.1 case-sensitive-paths-webpack-plugin: 2.4.0 cjs-module-lexer: 1.3.1 constants-browserify: 1.0.0 - css-loader: 6.10.0(webpack@5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)) + css-loader: 6.10.0(webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)) es-module-lexer: 1.5.2 express: 4.19.2 - fork-ts-checker-webpack-plugin: 8.0.0(typescript@4.9.5)(webpack@5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)) + fork-ts-checker-webpack-plugin: 8.0.0(typescript@4.9.5)(webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)) fs-extra: 11.2.0 - html-webpack-plugin: 5.6.0(webpack@5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)) + html-webpack-plugin: 5.6.0(webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)) magic-string: 0.30.10 path-browserify: 1.0.1 process: 0.11.10 semver: 7.6.2 - style-loader: 3.3.4(webpack@5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)) - swc-loader: 0.2.6(@swc/core@1.4.17(@swc/helpers@0.5.11))(webpack@5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)) - terser-webpack-plugin: 5.3.9(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)(webpack@5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)) + style-loader: 3.3.4(webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)) + swc-loader: 0.2.6(@swc/core@1.4.17(@swc/helpers@0.5.11))(webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)) + terser-webpack-plugin: 5.3.9(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)(webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)) ts-dedent: 2.2.0 url: 0.11.3 util: 0.12.5 util-deprecate: 1.0.2 - webpack: 5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20) - webpack-dev-middleware: 6.1.3(webpack@5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)) + webpack: 5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20) + webpack-dev-middleware: 6.1.3(webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)) webpack-hot-middleware: 2.26.1 webpack-virtual-modules: 0.5.0 optionalDependencies: @@ -21975,16 +21942,16 @@ snapshots: '@storybook/postinstall@7.6.19': {} - '@storybook/preset-react-webpack@7.6.19(@babel/core@7.23.9)(@swc/core@1.4.17(@swc/helpers@0.5.11))(encoding@0.1.13)(esbuild@0.18.20)(react-dom@18.0.0(react@18.0.0))(react@18.0.0)(type-fest@2.19.0)(typescript@4.9.5)(webpack-dev-server@4.15.1(webpack@5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)))(webpack-hot-middleware@2.26.1)': + '@storybook/preset-react-webpack@7.6.19(@babel/core@7.23.9)(@swc/core@1.4.17(@swc/helpers@0.5.11))(encoding@0.1.13)(esbuild@0.18.20)(react-dom@18.0.0(react@18.0.0))(react@18.0.0)(type-fest@2.19.0)(typescript@4.9.5)(webpack-dev-server@4.15.1(webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)))(webpack-hot-middleware@2.26.1)': dependencies: '@babel/preset-flow': 7.24.1(@babel/core@7.23.9) '@babel/preset-react': 7.24.1(@babel/core@7.23.9) - '@pmmmwh/react-refresh-webpack-plugin': 0.5.13(react-refresh@0.14.2)(type-fest@2.19.0)(webpack-dev-server@4.15.1(webpack@5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)))(webpack-hot-middleware@2.26.1)(webpack@5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)) + '@pmmmwh/react-refresh-webpack-plugin': 0.5.13(react-refresh@0.14.2)(type-fest@2.19.0)(webpack-dev-server@4.15.1(webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)))(webpack-hot-middleware@2.26.1)(webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)) '@storybook/core-webpack': 7.6.19(encoding@0.1.13) '@storybook/docs-tools': 7.6.19(encoding@0.1.13) '@storybook/node-logger': 7.6.19 '@storybook/react': 7.6.19(encoding@0.1.13)(react-dom@18.0.0(react@18.0.0))(react@18.0.0)(typescript@4.9.5) - '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@4.9.5)(webpack@5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)) + '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@4.9.5)(webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)) '@types/node': 18.19.31 '@types/semver': 7.5.8 babel-plugin-add-react-displayname: 0.0.5 @@ -21995,7 +21962,7 @@ snapshots: react-dom: 18.0.0(react@18.0.0) react-refresh: 0.14.2 semver: 7.6.2 - webpack: 5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20) + webpack: 5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20) optionalDependencies: '@babel/core': 7.23.9 typescript: 4.9.5 @@ -22032,7 +21999,7 @@ snapshots: '@storybook/preview@7.6.19': {} - '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@4.9.5)(webpack@5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20))': + '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@4.9.5)(webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20))': dependencies: debug: 4.3.4 endent: 2.1.0 @@ -22042,7 +22009,7 @@ snapshots: react-docgen-typescript: 2.2.2(typescript@4.9.5) tslib: 2.6.2 typescript: 4.9.5 - webpack: 5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20) + webpack: 5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20) transitivePeerDependencies: - supports-color @@ -22051,10 +22018,10 @@ snapshots: react: 18.0.0 react-dom: 18.0.0(react@18.0.0) - '@storybook/react-webpack5@7.6.19(@babel/core@7.23.9)(@swc/core@1.4.17(@swc/helpers@0.5.11))(@swc/helpers@0.5.11)(encoding@0.1.13)(esbuild@0.18.20)(react-dom@18.0.0(react@18.0.0))(react@18.0.0)(type-fest@2.19.0)(typescript@4.9.5)(webpack-dev-server@4.15.1(webpack@5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)))(webpack-hot-middleware@2.26.1)': + '@storybook/react-webpack5@7.6.19(@babel/core@7.23.9)(@swc/core@1.4.17(@swc/helpers@0.5.11))(@swc/helpers@0.5.11)(encoding@0.1.13)(esbuild@0.18.20)(react-dom@18.0.0(react@18.0.0))(react@18.0.0)(type-fest@2.19.0)(typescript@4.9.5)(webpack-dev-server@4.15.1(webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)))(webpack-hot-middleware@2.26.1)': dependencies: '@storybook/builder-webpack5': 7.6.19(@swc/helpers@0.5.11)(encoding@0.1.13)(esbuild@0.18.20)(typescript@4.9.5) - '@storybook/preset-react-webpack': 7.6.19(@babel/core@7.23.9)(@swc/core@1.4.17(@swc/helpers@0.5.11))(encoding@0.1.13)(esbuild@0.18.20)(react-dom@18.0.0(react@18.0.0))(react@18.0.0)(type-fest@2.19.0)(typescript@4.9.5)(webpack-dev-server@4.15.1(webpack@5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)))(webpack-hot-middleware@2.26.1) + '@storybook/preset-react-webpack': 7.6.19(@babel/core@7.23.9)(@swc/core@1.4.17(@swc/helpers@0.5.11))(encoding@0.1.13)(esbuild@0.18.20)(react-dom@18.0.0(react@18.0.0))(react@18.0.0)(type-fest@2.19.0)(typescript@4.9.5)(webpack-dev-server@4.15.1(webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)))(webpack-hot-middleware@2.26.1) '@storybook/react': 7.6.19(encoding@0.1.13)(react-dom@18.0.0(react@18.0.0))(react@18.0.0)(typescript@4.9.5) '@types/node': 18.19.31 react: 18.0.0 @@ -23146,51 +23113,25 @@ snapshots: dependencies: vue: 3.2.47 - '@webassemblyjs/ast@1.11.1': - dependencies: - '@webassemblyjs/helper-numbers': 1.11.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.1 - '@webassemblyjs/ast@1.12.1': dependencies: '@webassemblyjs/helper-numbers': 1.11.6 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/floating-point-hex-parser@1.11.1': {} - '@webassemblyjs/floating-point-hex-parser@1.11.6': {} - '@webassemblyjs/helper-api-error@1.11.1': {} - '@webassemblyjs/helper-api-error@1.11.6': {} - '@webassemblyjs/helper-buffer@1.11.1': {} - '@webassemblyjs/helper-buffer@1.12.1': {} - '@webassemblyjs/helper-numbers@1.11.1': - dependencies: - '@webassemblyjs/floating-point-hex-parser': 1.11.1 - '@webassemblyjs/helper-api-error': 1.11.1 - '@xtuc/long': 4.2.2 - '@webassemblyjs/helper-numbers@1.11.6': dependencies: '@webassemblyjs/floating-point-hex-parser': 1.11.6 '@webassemblyjs/helper-api-error': 1.11.6 '@xtuc/long': 4.2.2 - '@webassemblyjs/helper-wasm-bytecode@1.11.1': {} - '@webassemblyjs/helper-wasm-bytecode@1.11.6': {} - '@webassemblyjs/helper-wasm-section@1.11.1': - dependencies: - '@webassemblyjs/ast': 1.11.1 - '@webassemblyjs/helper-buffer': 1.11.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.1 - '@webassemblyjs/wasm-gen': 1.11.1 - '@webassemblyjs/helper-wasm-section@1.12.1': dependencies: '@webassemblyjs/ast': 1.12.1 @@ -23198,37 +23139,16 @@ snapshots: '@webassemblyjs/helper-wasm-bytecode': 1.11.6 '@webassemblyjs/wasm-gen': 1.12.1 - '@webassemblyjs/ieee754@1.11.1': - dependencies: - '@xtuc/ieee754': 1.2.0 - '@webassemblyjs/ieee754@1.11.6': dependencies: '@xtuc/ieee754': 1.2.0 - '@webassemblyjs/leb128@1.11.1': - dependencies: - '@xtuc/long': 4.2.2 - '@webassemblyjs/leb128@1.11.6': dependencies: '@xtuc/long': 4.2.2 - '@webassemblyjs/utf8@1.11.1': {} - '@webassemblyjs/utf8@1.11.6': {} - '@webassemblyjs/wasm-edit@1.11.1': - dependencies: - '@webassemblyjs/ast': 1.11.1 - '@webassemblyjs/helper-buffer': 1.11.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.1 - '@webassemblyjs/helper-wasm-section': 1.11.1 - '@webassemblyjs/wasm-gen': 1.11.1 - '@webassemblyjs/wasm-opt': 1.11.1 - '@webassemblyjs/wasm-parser': 1.11.1 - '@webassemblyjs/wast-printer': 1.11.1 - '@webassemblyjs/wasm-edit@1.12.1': dependencies: '@webassemblyjs/ast': 1.12.1 @@ -23240,14 +23160,6 @@ snapshots: '@webassemblyjs/wasm-parser': 1.12.1 '@webassemblyjs/wast-printer': 1.12.1 - '@webassemblyjs/wasm-gen@1.11.1': - dependencies: - '@webassemblyjs/ast': 1.11.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.1 - '@webassemblyjs/ieee754': 1.11.1 - '@webassemblyjs/leb128': 1.11.1 - '@webassemblyjs/utf8': 1.11.1 - '@webassemblyjs/wasm-gen@1.12.1': dependencies: '@webassemblyjs/ast': 1.12.1 @@ -23256,13 +23168,6 @@ snapshots: '@webassemblyjs/leb128': 1.11.6 '@webassemblyjs/utf8': 1.11.6 - '@webassemblyjs/wasm-opt@1.11.1': - dependencies: - '@webassemblyjs/ast': 1.11.1 - '@webassemblyjs/helper-buffer': 1.11.1 - '@webassemblyjs/wasm-gen': 1.11.1 - '@webassemblyjs/wasm-parser': 1.11.1 - '@webassemblyjs/wasm-opt@1.12.1': dependencies: '@webassemblyjs/ast': 1.12.1 @@ -23270,15 +23175,6 @@ snapshots: '@webassemblyjs/wasm-gen': 1.12.1 '@webassemblyjs/wasm-parser': 1.12.1 - '@webassemblyjs/wasm-parser@1.11.1': - dependencies: - '@webassemblyjs/ast': 1.11.1 - '@webassemblyjs/helper-api-error': 1.11.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.1 - '@webassemblyjs/ieee754': 1.11.1 - '@webassemblyjs/leb128': 1.11.1 - '@webassemblyjs/utf8': 1.11.1 - '@webassemblyjs/wasm-parser@1.12.1': dependencies: '@webassemblyjs/ast': 1.12.1 @@ -23288,11 +23184,6 @@ snapshots: '@webassemblyjs/leb128': 1.11.6 '@webassemblyjs/utf8': 1.11.6 - '@webassemblyjs/wast-printer@1.11.1': - dependencies: - '@webassemblyjs/ast': 1.11.1 - '@xtuc/long': 4.2.2 - '@webassemblyjs/wast-printer@1.12.1': dependencies: '@webassemblyjs/ast': 1.12.1 @@ -23300,36 +23191,36 @@ snapshots: '@webcomponents/custom-elements@1.6.0': {} - '@webpack-cli/configtest@1.2.0(webpack-cli@4.10.0(webpack@5.76.0))(webpack@5.76.0(@swc/core@1.4.17)(webpack-cli@4.10.0))': + '@webpack-cli/configtest@1.2.0(webpack-cli@4.10.0(webpack@5.94.0))(webpack@5.94.0(@swc/core@1.4.17)(webpack-cli@4.10.0))': dependencies: - webpack: 5.76.0(@swc/core@1.4.17)(webpack-cli@4.10.0) - webpack-cli: 4.10.0(webpack@5.76.0) + webpack: 5.94.0(@swc/core@1.4.17)(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.89.0))(webpack@5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4))': + '@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.4.17)(webpack-cli@5.1.4))': dependencies: - webpack: 5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.89.0) + webpack: 5.94.0(@swc/core@1.4.17)(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.76.0))': + '@webpack-cli/info@1.5.0(webpack-cli@4.10.0(webpack@5.94.0))': dependencies: envinfo: 7.13.0 - webpack-cli: 4.10.0(webpack@5.76.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.89.0))(webpack@5.89.0(@swc/core@1.4.17)(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.4.17)(webpack-cli@5.1.4))': dependencies: - webpack: 5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.89.0) + webpack: 5.94.0(@swc/core@1.4.17)(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.76.0))': + '@webpack-cli/serve@1.7.0(webpack-cli@4.10.0(webpack@5.94.0))': dependencies: - webpack-cli: 4.10.0(webpack@5.76.0) + 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.89.0))(webpack-dev-server@4.15.1(webpack-cli@5.1.4)(webpack@5.89.0))(webpack@5.89.0(@swc/core@1.4.17)(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.4.17)(webpack-cli@5.1.4))': dependencies: - webpack: 5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.89.0) + webpack: 5.94.0(@swc/core@1.4.17)(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.89.0) + webpack-dev-server: 4.15.1(webpack-cli@5.1.4)(webpack@5.94.0) '@wessberg/ts-evaluator@0.0.27(typescript@4.9.5)': dependencies: @@ -23414,6 +23305,10 @@ snapshots: dependencies: acorn: 8.11.3 + acorn-import-attributes@1.9.5(acorn@8.11.3): + dependencies: + acorn: 8.11.3 + acorn-jsx@5.3.2(acorn@7.4.1): dependencies: acorn: 7.4.1 @@ -24057,12 +23952,12 @@ snapshots: schema-utils: 4.2.0 webpack: 5.88.2(@swc/core@1.4.17)(esbuild@0.18.17) - babel-loader@9.1.3(@babel/core@7.23.9)(webpack@5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)): + babel-loader@9.1.3(@babel/core@7.23.9)(webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)): dependencies: '@babel/core': 7.23.9 find-cache-dir: 4.0.0 schema-utils: 4.2.0 - webpack: 5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20) + webpack: 5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20) babel-messages@6.23.0: dependencies: @@ -25583,7 +25478,7 @@ snapshots: utrie: 1.0.2 optional: true - css-loader@6.10.0(webpack@5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)): + css-loader@6.10.0(webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)): dependencies: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 @@ -25594,9 +25489,9 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.6.0 optionalDependencies: - webpack: 5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20) + webpack: 5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20) - css-loader@6.10.0(webpack@5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4)): + css-loader@6.10.0(webpack@5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4)): dependencies: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 @@ -25607,7 +25502,7 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.6.0 optionalDependencies: - webpack: 5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4) + webpack: 5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4) css-loader@6.8.1(webpack@5.88.2(@swc/core@1.4.17)(esbuild@0.18.17)): dependencies: @@ -26370,6 +26265,11 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.2.1 + enhanced-resolve@5.17.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + enquirer@2.3.6: dependencies: ansi-colors: 4.1.3 @@ -26548,8 +26448,6 @@ snapshots: iterator.prototype: 1.1.2 safe-array-concat: 1.1.2 - es-module-lexer@0.9.3: {} - es-module-lexer@1.5.2: {} es-object-atoms@1.0.0: @@ -27873,7 +27771,7 @@ snapshots: fork-stream@0.0.4: {} - fork-ts-checker-webpack-plugin@8.0.0(typescript@4.9.5)(webpack@5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)): + fork-ts-checker-webpack-plugin@8.0.0(typescript@4.9.5)(webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)): dependencies: '@babel/code-frame': 7.24.2 chalk: 4.1.2 @@ -27888,7 +27786,7 @@ snapshots: semver: 7.6.2 tapable: 2.2.1 typescript: 4.9.5 - webpack: 5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20) + webpack: 5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20) form-data@2.3.3: dependencies: @@ -28855,7 +28753,7 @@ snapshots: webpack: 5.88.2(@swc/core@1.4.17)(esbuild@0.18.17) optional: true - html-webpack-plugin@5.6.0(webpack@5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)): + html-webpack-plugin@5.6.0(webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -28863,7 +28761,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.2.1 optionalDependencies: - webpack: 5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20) + webpack: 5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20) html2canvas@1.4.1: dependencies: @@ -30695,11 +30593,11 @@ snapshots: dependencies: source-map-support: 0.5.21 - karma-webpack@5.0.1(webpack@5.89.0(@swc/core@1.4.17)): + karma-webpack@5.0.1(webpack@5.94.0(@swc/core@1.4.17)): dependencies: glob: 7.2.3 minimatch: 9.0.4 - webpack: 5.89.0(@swc/core@1.4.17) + webpack: 5.94.0(@swc/core@1.4.17) webpack-merge: 4.2.2 karma@6.4.3: @@ -34240,11 +34138,11 @@ snapshots: source-map-js: 1.2.0 webpack: 5.88.2(@swc/core@1.4.17)(esbuild@0.18.17) - source-map-loader@4.0.2(webpack@5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4)): + source-map-loader@4.0.2(webpack@5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4)): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.0 - webpack: 5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4) + webpack: 5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4) source-map-resolve@0.5.3: dependencies: @@ -34480,11 +34378,11 @@ snapshots: char-regex: 1.0.2 strip-ansi: 6.0.1 - string-replace-loader@3.1.0(webpack@5.76.0(@swc/core@1.4.17)): + string-replace-loader@3.1.0(webpack@5.94.0(@swc/core@1.4.17)): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.76.0(@swc/core@1.4.17) + webpack: 5.94.0(@swc/core@1.4.17) string-width@1.0.2: dependencies: @@ -34614,13 +34512,13 @@ snapshots: minimist: 1.2.8 through: 2.3.8 - style-loader@3.3.4(webpack@5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)): + style-loader@3.3.4(webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)): dependencies: - webpack: 5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20) + webpack: 5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20) - style-loader@3.3.4(webpack@5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4)): + style-loader@3.3.4(webpack@5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4)): dependencies: - webpack: 5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4) + webpack: 5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4) style-search@0.1.0: {} @@ -34908,11 +34806,11 @@ snapshots: picocolors: 1.0.0 stable: 0.1.8 - swc-loader@0.2.6(@swc/core@1.4.17(@swc/helpers@0.5.11))(webpack@5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)): + swc-loader@0.2.6(@swc/core@1.4.17(@swc/helpers@0.5.11))(webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)): dependencies: '@swc/core': 1.4.17(@swc/helpers@0.5.11) '@swc/counter': 0.1.3 - webpack: 5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20) + webpack: 5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20) symbol-observable@4.0.0: {} @@ -35046,71 +34944,83 @@ snapshots: merge-stream: 2.0.0 through2: 3.0.2 - terser-webpack-plugin@5.3.9(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)(webpack@5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)): + terser-webpack-plugin@5.3.10(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)(webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.31.0 - webpack: 5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20) + webpack: 5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20) optionalDependencies: '@swc/core': 1.4.17(@swc/helpers@0.5.11) esbuild: 0.18.20 - terser-webpack-plugin@5.3.9(@swc/core@1.4.17)(esbuild@0.18.17)(webpack@5.88.2(@swc/core@1.4.17)(esbuild@0.18.17)): + terser-webpack-plugin@5.3.10(@swc/core@1.4.17)(webpack@5.94.0(@swc/core@1.4.17)(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.31.0 - webpack: 5.88.2(@swc/core@1.4.17)(esbuild@0.18.17) + webpack: 5.94.0(@swc/core@1.4.17)(webpack-cli@4.10.0) + optionalDependencies: + '@swc/core': 1.4.17(@swc/helpers@0.5.11) + + terser-webpack-plugin@5.3.10(@swc/core@1.4.17)(webpack@5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4)): + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.2 + terser: 5.31.0 + webpack: 5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4) optionalDependencies: '@swc/core': 1.4.17(@swc/helpers@0.5.11) - esbuild: 0.18.17 - terser-webpack-plugin@5.3.9(@swc/core@1.4.17)(webpack@5.76.0(@swc/core@1.4.17)(webpack-cli@4.10.0)): + terser-webpack-plugin@5.3.10(@swc/core@1.4.17)(webpack@5.94.0(@swc/core@1.4.17)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.31.0 - webpack: 5.76.0(@swc/core@1.4.17)(webpack-cli@4.10.0) + webpack: 5.94.0(@swc/core@1.4.17) optionalDependencies: '@swc/core': 1.4.17(@swc/helpers@0.5.11) - terser-webpack-plugin@5.3.9(@swc/core@1.4.17)(webpack@5.76.0(@swc/core@1.4.17)): + terser-webpack-plugin@5.3.9(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)(webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.31.0 - webpack: 5.76.0(@swc/core@1.4.17) + webpack: 5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20) optionalDependencies: '@swc/core': 1.4.17(@swc/helpers@0.5.11) + esbuild: 0.18.20 - terser-webpack-plugin@5.3.9(@swc/core@1.4.17)(webpack@5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4)): + terser-webpack-plugin@5.3.9(@swc/core@1.4.17)(esbuild@0.18.17)(webpack@5.88.2(@swc/core@1.4.17)(esbuild@0.18.17)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.31.0 - webpack: 5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4) + webpack: 5.88.2(@swc/core@1.4.17)(esbuild@0.18.17) optionalDependencies: '@swc/core': 1.4.17(@swc/helpers@0.5.11) + esbuild: 0.18.17 - terser-webpack-plugin@5.3.9(@swc/core@1.4.17)(webpack@5.89.0(@swc/core@1.4.17)): + terser-webpack-plugin@5.3.9(@swc/core@1.4.17)(webpack@5.94.0(@swc/core@1.4.17)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.31.0 - webpack: 5.89.0(@swc/core@1.4.17) + webpack: 5.94.0(@swc/core@1.4.17) optionalDependencies: '@swc/core': 1.4.17(@swc/helpers@0.5.11) @@ -35961,7 +35871,7 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.24.5) - ts-loader@9.5.1(typescript@4.9.5)(webpack@5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4)): + ts-loader@9.5.1(typescript@4.9.5)(webpack@5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4)): dependencies: chalk: 4.1.2 enhanced-resolve: 5.16.0 @@ -35969,9 +35879,9 @@ snapshots: semver: 7.6.0 source-map: 0.7.4 typescript: 4.9.5 - webpack: 5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4) + webpack: 5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4) - ts-loader@9.5.1(typescript@5.4.5)(webpack@5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4)): + ts-loader@9.5.1(typescript@5.4.5)(webpack@5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4)): dependencies: chalk: 4.1.2 enhanced-resolve: 5.16.0 @@ -35979,7 +35889,7 @@ snapshots: semver: 7.6.0 source-map: 0.7.4 typescript: 5.4.5 - webpack: 5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4) + webpack: 5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4) ts-node@10.9.1(@swc/core@1.4.17)(@types/node@20.12.8)(typescript@5.4.5): dependencies: @@ -36420,12 +36330,12 @@ snapshots: url-join@4.0.1: {} - url-loader@1.1.2(webpack@5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4)): + url-loader@1.1.2(webpack@5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4)): dependencies: loader-utils: 1.4.2 mime: 2.5.2 schema-utils: 1.0.0 - webpack: 5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4) + webpack: 5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4) url-parse@1.5.10: dependencies: @@ -36716,12 +36626,12 @@ snapshots: transitivePeerDependencies: - supports-color - vue-loader@17.4.2(@vue/compiler-sfc@3.3.4)(vue@3.2.47)(webpack@5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4)): + vue-loader@17.4.2(@vue/compiler-sfc@3.3.4)(vue@3.2.47)(webpack@5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4)): dependencies: chalk: 4.1.2 hash-sum: 2.0.0 watchpack: 2.4.1 - webpack: 5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4) + webpack: 5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4) optionalDependencies: '@vue/compiler-sfc': 3.3.4 vue: 3.2.47 @@ -36802,12 +36712,12 @@ snapshots: webidl-conversions@7.0.0: {} - webpack-cli@4.10.0(webpack@5.76.0): + 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.76.0))(webpack@5.76.0(@swc/core@1.4.17)(webpack-cli@4.10.0)) - '@webpack-cli/info': 1.5.0(webpack-cli@4.10.0(webpack@5.76.0)) - '@webpack-cli/serve': 1.7.0(webpack-cli@4.10.0(webpack@5.76.0)) + '@webpack-cli/configtest': 1.2.0(webpack-cli@4.10.0(webpack@5.94.0))(webpack@5.94.0(@swc/core@1.4.17)(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)) colorette: 2.0.20 commander: 7.2.0 cross-spawn: 7.0.3 @@ -36815,15 +36725,15 @@ snapshots: import-local: 3.1.0 interpret: 2.2.0 rechoir: 0.7.1 - webpack: 5.76.0(@swc/core@1.4.17)(webpack-cli@4.10.0) + webpack: 5.94.0(@swc/core@1.4.17)(webpack-cli@4.10.0) webpack-merge: 5.10.0 - webpack-cli@5.1.4(webpack-dev-server@4.15.1)(webpack@5.89.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.89.0))(webpack@5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4)) - '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4(webpack-dev-server@4.15.1)(webpack@5.89.0))(webpack@5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4)) - '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4(webpack-dev-server@4.15.1)(webpack@5.89.0))(webpack-dev-server@4.15.1(webpack-cli@5.1.4)(webpack@5.89.0))(webpack@5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4)) + '@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.4.17)(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.4.17)(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.4.17)(webpack-cli@5.1.4)) colorette: 2.0.20 commander: 10.0.1 cross-spawn: 7.0.3 @@ -36832,10 +36742,10 @@ snapshots: import-local: 3.1.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4) + webpack: 5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4) webpack-merge: 5.10.0 optionalDependencies: - webpack-dev-server: 4.15.1(webpack-cli@5.1.4)(webpack@5.89.0) + webpack-dev-server: 4.15.1(webpack-cli@5.1.4)(webpack@5.94.0) webpack-dev-middleware@5.3.4(webpack@5.88.2(@swc/core@1.4.17)(esbuild@0.18.17)): dependencies: @@ -36846,24 +36756,24 @@ snapshots: schema-utils: 4.2.0 webpack: 5.88.2(@swc/core@1.4.17)(esbuild@0.18.17) - webpack-dev-middleware@5.3.4(webpack@5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)): + webpack-dev-middleware@5.3.4(webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)): 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.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20) + webpack: 5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20) optional: true - webpack-dev-middleware@5.3.4(webpack@5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4)): + webpack-dev-middleware@5.3.4(webpack@5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4)): 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.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4) + webpack: 5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4) webpack-dev-middleware@6.1.2(webpack@5.88.2(@swc/core@1.4.17)(esbuild@0.18.17)): dependencies: @@ -36875,7 +36785,7 @@ snapshots: optionalDependencies: webpack: 5.88.2(@swc/core@1.4.17)(esbuild@0.18.17) - webpack-dev-middleware@6.1.3(webpack@5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)): + webpack-dev-middleware@6.1.3(webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)): dependencies: colorette: 2.0.20 memfs: 3.5.3 @@ -36883,9 +36793,9 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.2.0 optionalDependencies: - webpack: 5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20) + webpack: 5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20) - webpack-dev-server@4.15.1(webpack-cli@5.1.4)(webpack@5.89.0): + webpack-dev-server@4.15.1(webpack-cli@5.1.4)(webpack@5.94.0): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -36915,11 +36825,11 @@ snapshots: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 5.3.4(webpack@5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4)) + webpack-dev-middleware: 5.3.4(webpack@5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4)) ws: 8.17.0 optionalDependencies: - webpack: 5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.89.0) + webpack: 5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.94.0) transitivePeerDependencies: - bufferutil - debug @@ -36966,7 +36876,7 @@ snapshots: - supports-color - utf-8-validate - webpack-dev-server@4.15.1(webpack@5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)): + webpack-dev-server@4.15.1(webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -36996,10 +36906,10 @@ snapshots: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 5.3.4(webpack@5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)) + webpack-dev-middleware: 5.3.4(webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)) ws: 8.17.0 optionalDependencies: - webpack: 5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20) + webpack: 5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20) transitivePeerDependencies: - bufferutil - debug @@ -37030,7 +36940,7 @@ snapshots: webpack-sources@3.2.3: {} - webpack-stream@7.0.0(webpack@5.76.0(@swc/core@1.4.17)): + webpack-stream@7.0.0(webpack@5.94.0(@swc/core@1.4.17)): dependencies: fancy-log: 1.3.3 lodash.clone: 4.5.0 @@ -37040,7 +36950,7 @@ snapshots: supports-color: 8.1.1 through: 2.3.8 vinyl: 2.2.1 - webpack: 5.76.0(@swc/core@1.4.17) + webpack: 5.94.0(@swc/core@1.4.17) webpack-subresource-integrity@5.1.0(html-webpack-plugin@5.6.0(webpack@5.88.2(@swc/core@1.4.17)(esbuild@0.18.17)))(webpack@5.88.2(@swc/core@1.4.17)(esbuild@0.18.17)): dependencies: @@ -37053,50 +36963,19 @@ snapshots: webpack-virtual-modules@0.6.1: {} - webpack@5.76.0(@swc/core@1.4.17): - dependencies: - '@types/eslint-scope': 3.7.7 - '@types/estree': 0.0.51 - '@webassemblyjs/ast': 1.11.1 - '@webassemblyjs/wasm-edit': 1.11.1 - '@webassemblyjs/wasm-parser': 1.11.1 - acorn: 8.11.3 - acorn-import-assertions: 1.9.0(acorn@8.11.3) - browserslist: 4.23.0 - chrome-trace-event: 1.0.3 - enhanced-resolve: 5.16.0 - es-module-lexer: 0.9.3 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.0 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 3.3.0 - tapable: 2.2.1 - terser-webpack-plugin: 5.3.9(@swc/core@1.4.17)(webpack@5.76.0(@swc/core@1.4.17)) - watchpack: 2.4.1 - webpack-sources: 3.2.3 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - - webpack@5.76.0(@swc/core@1.4.17)(webpack-cli@4.10.0): + webpack@5.88.2(@swc/core@1.4.17)(esbuild@0.18.17): dependencies: '@types/eslint-scope': 3.7.7 - '@types/estree': 0.0.51 - '@webassemblyjs/ast': 1.11.1 - '@webassemblyjs/wasm-edit': 1.11.1 - '@webassemblyjs/wasm-parser': 1.11.1 + '@types/estree': 1.0.5 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/wasm-edit': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 acorn: 8.11.3 acorn-import-assertions: 1.9.0(acorn@8.11.3) browserslist: 4.23.0 chrome-trace-event: 1.0.3 enhanced-resolve: 5.16.0 - es-module-lexer: 0.9.3 + es-module-lexer: 1.5.2 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 @@ -37107,28 +36986,25 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.9(@swc/core@1.4.17)(webpack@5.76.0(@swc/core@1.4.17)(webpack-cli@4.10.0)) + terser-webpack-plugin: 5.3.9(@swc/core@1.4.17)(esbuild@0.18.17)(webpack@5.88.2(@swc/core@1.4.17)(esbuild@0.18.17)) watchpack: 2.4.1 webpack-sources: 3.2.3 - optionalDependencies: - webpack-cli: 4.10.0(webpack@5.76.0) transitivePeerDependencies: - '@swc/core' - esbuild - uglify-js - webpack@5.88.2(@swc/core@1.4.17)(esbuild@0.18.17): + webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20): dependencies: - '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.5 '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/wasm-edit': 1.12.1 '@webassemblyjs/wasm-parser': 1.12.1 acorn: 8.11.3 - acorn-import-assertions: 1.9.0(acorn@8.11.3) + acorn-import-attributes: 1.9.5(acorn@8.11.3) browserslist: 4.23.0 chrome-trace-event: 1.0.3 - enhanced-resolve: 5.16.0 + enhanced-resolve: 5.17.1 es-module-lexer: 1.5.2 eslint-scope: 5.1.1 events: 3.3.0 @@ -37140,7 +37016,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.9(@swc/core@1.4.17)(esbuild@0.18.17)(webpack@5.88.2(@swc/core@1.4.17)(esbuild@0.18.17)) + terser-webpack-plugin: 5.3.10(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)(webpack@5.94.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)) watchpack: 2.4.1 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -37148,18 +37024,17 @@ snapshots: - esbuild - uglify-js - webpack@5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20): + webpack@5.94.0(@swc/core@1.4.17): dependencies: - '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.5 '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/wasm-edit': 1.12.1 '@webassemblyjs/wasm-parser': 1.12.1 acorn: 8.11.3 - acorn-import-assertions: 1.9.0(acorn@8.11.3) + acorn-import-attributes: 1.9.5(acorn@8.11.3) browserslist: 4.23.0 chrome-trace-event: 1.0.3 - enhanced-resolve: 5.16.0 + enhanced-resolve: 5.17.1 es-module-lexer: 1.5.2 eslint-scope: 5.1.1 events: 3.3.0 @@ -37171,7 +37046,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.9(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)(webpack@5.89.0(@swc/core@1.4.17(@swc/helpers@0.5.11))(esbuild@0.18.20)) + terser-webpack-plugin: 5.3.10(@swc/core@1.4.17)(webpack@5.94.0(@swc/core@1.4.17)) watchpack: 2.4.1 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -37179,18 +37054,17 @@ snapshots: - esbuild - uglify-js - webpack@5.89.0(@swc/core@1.4.17): + webpack@5.94.0(@swc/core@1.4.17)(webpack-cli@4.10.0): dependencies: - '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.5 '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/wasm-edit': 1.12.1 '@webassemblyjs/wasm-parser': 1.12.1 acorn: 8.11.3 - acorn-import-assertions: 1.9.0(acorn@8.11.3) + acorn-import-attributes: 1.9.5(acorn@8.11.3) browserslist: 4.23.0 chrome-trace-event: 1.0.3 - enhanced-resolve: 5.16.0 + enhanced-resolve: 5.17.1 es-module-lexer: 1.5.2 eslint-scope: 5.1.1 events: 3.3.0 @@ -37202,26 +37076,27 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.9(@swc/core@1.4.17)(webpack@5.89.0(@swc/core@1.4.17)) + terser-webpack-plugin: 5.3.10(@swc/core@1.4.17)(webpack@5.94.0(@swc/core@1.4.17)(webpack-cli@4.10.0)) watchpack: 2.4.1 webpack-sources: 3.2.3 + optionalDependencies: + webpack-cli: 4.10.0(webpack@5.94.0) transitivePeerDependencies: - '@swc/core' - esbuild - uglify-js - webpack@5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4): + webpack@5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4): dependencies: - '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.5 '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/wasm-edit': 1.12.1 '@webassemblyjs/wasm-parser': 1.12.1 acorn: 8.11.3 - acorn-import-assertions: 1.9.0(acorn@8.11.3) + acorn-import-attributes: 1.9.5(acorn@8.11.3) browserslist: 4.23.0 chrome-trace-event: 1.0.3 - enhanced-resolve: 5.16.0 + enhanced-resolve: 5.17.1 es-module-lexer: 1.5.2 eslint-scope: 5.1.1 events: 3.3.0 @@ -37233,11 +37108,11 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.9(@swc/core@1.4.17)(webpack@5.89.0(@swc/core@1.4.17)(webpack-cli@5.1.4)) + terser-webpack-plugin: 5.3.10(@swc/core@1.4.17)(webpack@5.94.0(@swc/core@1.4.17)(webpack-cli@5.1.4)) watchpack: 2.4.1 webpack-sources: 3.2.3 optionalDependencies: - webpack-cli: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.89.0) + webpack-cli: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.94.0) transitivePeerDependencies: - '@swc/core' - esbuild