devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
68 lines (67 loc) • 2.35 kB
JavaScript
/**
* DevExtreme (esm/__internal/ui/chat/alertlist.js)
* Version: 24.2.7
* Build date: Mon Apr 28 2025
*
* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
import _extends from "@babel/runtime/helpers/esm/extends";
import messageLocalization from "../../../common/core/localization/message";
import $ from "../../../core/renderer";
import Widget from "../../core/widget/widget";
const CHAT_ALERTLIST_CLASS = "dx-chat-alertlist";
const CHAT_ALERTLIST_ERROR_CLASS = "dx-chat-alertlist-error";
const CHAT_ALERTLIST_ERROR_ICON_CLASS = "dx-chat-alertlist-error-icon";
const CHAT_ALERTLIST_ERROR_TEXT_CLASS = "dx-chat-alertlist-error-text";
class AlertList extends Widget {
_getDefaultOptions() {
return _extends({}, super._getDefaultOptions(), {
items: []
})
}
_initMarkup() {
$(this.element()).addClass("dx-chat-alertlist");
super._initMarkup();
const {
items: items
} = this.option();
this._renderItems(items);
this._updateAria()
}
_renderItems(items) {
if (null !== items && void 0 !== items && items.length) {
items.forEach((itemData => {
this._renderItem(itemData)
}))
}
}
_renderItem(itemData) {
const $item = $("<div>");
$item.addClass("dx-chat-alertlist-error");
$("<div>").addClass("dx-chat-alertlist-error-icon").appendTo($item);
$("<div>").addClass("dx-chat-alertlist-error-text").appendTo($item).text(String((null === itemData || void 0 === itemData ? void 0 : itemData.message) ?? ""));
$item.appendTo(this.$element())
}
_updateAria() {
const aria = {
role: "log",
atomic: "false",
label: messageLocalization.format("dxChat-alertListAriaLabel"),
live: "polite",
relevant: "additions"
};
this.setAria(aria)
}
_optionChanged(args) {
const {
name: name
} = args;
if ("items" === name) {
this._invalidate()
} else {
super._optionChanged(args)
}
}
}
export default AlertList;