devextreme
Version:
JavaScript/TypeScript Component Suite for Responsive Web Development
74 lines (72 loc) • 3.71 kB
JavaScript
/**
* DevExtreme (cjs/__internal/scheduler/appointments_new/appointment/agenda_appointment.js)
* Version: 26.1.4
* Build date: Fri Jul 24 2026
*
* Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.AgendaAppointmentView = void 0;
var _renderer = _interopRequireDefault(require("../../../../core/renderer"));
var _const = require("../const");
var _base_appointment = require("./base_appointment");
function _interopRequireDefault(e) {
return e && e.__esModule ? e : {
default: e
}
}
class AgendaAppointmentView extends _base_appointment.BaseAppointmentView {
applyElementClasses() {
super.applyElementClasses();
this.$element().toggleClass(_const.AGENDA_APPOINTMENT_CLASSES.LAST_IN_DATE, this.option().modifiers.isLastInGroup)
}
resize() {
this.$element().css({
height: this.option().geometry.height,
width: this.option().geometry.width
})
}
defaultAppointmentContent($container) {
this.renderMarker($container);
this.renderInfo($container);
return $container
}
renderMarker($container) {
const $leftContainer = (0, _renderer.default)("<div>").addClass(_const.AGENDA_APPOINTMENT_CLASSES.LEFT_LAYOUT).appendTo($container);
const $marker = (0, _renderer.default)("<div>").addClass(_const.AGENDA_APPOINTMENT_CLASSES.MARKER).appendTo($leftContainer);
void this.option().getResourceColor().then(color => {
if (color) {
this.$element().addClass(_const.APPOINTMENT_TYPE_CLASSES.HAS_RESOURCE);
$marker.css("backgroundColor", color)
}
});
if (this.isRecurring()) {
(0, _renderer.default)("<span>").addClass(`${_const.APPOINTMENT_CLASSES.RECURRENCE_ICON} dx-icon-repeat`).attr("aria-label", _const.RECURRING_LABEL).appendTo($marker)
}
}
renderInfo($container) {
const $rightContainer = (0, _renderer.default)("<div>").addClass(_const.AGENDA_APPOINTMENT_CLASSES.RIGHT_LAYOUT).appendTo($container);
(0, _renderer.default)("<div>").addClass(_const.APPOINTMENT_CLASSES.TITLE).text(this.getTitleText()).appendTo($rightContainer);
const $contentDetails = (0, _renderer.default)("<div>").addClass(_const.APPOINTMENT_CLASSES.DETAILS).appendTo($rightContainer);
(0, _renderer.default)("<div>").addClass(_const.APPOINTMENT_CLASSES.DATE).text(this.getDateText()).appendTo($contentDetails);
if (this.isAllDay()) {
(0, _renderer.default)("<div>").text(_const.ALL_DAY_TEXT).addClass(_const.APPOINTMENT_CLASSES.ALL_DAY_TEXT).prependTo($contentDetails)
}
this.renderResourceList($contentDetails)
}
renderResourceList($contentDetails) {
void this.option().getResourcesValues(this.appointmentData).then(resources => {
const container = (0, _renderer.default)("<div>").addClass(_const.AGENDA_APPOINTMENT_CLASSES.RESOURCE_LIST).appendTo($contentDetails);
resources.forEach(resource => {
const itemContainer = (0, _renderer.default)("<div>").addClass(_const.AGENDA_APPOINTMENT_CLASSES.RESOURCE_ITEM).appendTo(container);
(0, _renderer.default)("<div>").text(`${resource.label}:`).appendTo(itemContainer);
(0, _renderer.default)("<div>").addClass(_const.AGENDA_APPOINTMENT_CLASSES.RESOURCE_ITEM_VALUE).text(resource.values.join(", ")).appendTo(itemContainer)
})
})
}
}
exports.AgendaAppointmentView = AgendaAppointmentView;