UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

118 lines (117 loc) 4.28 kB
/** * DevExtreme (esm/renovation/ui/scheduler/appointment_tooltip/item_layout.js) * Version: 21.1.4 * Build date: Mon Jun 21 2021 * * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose"; import _extends from "@babel/runtime/helpers/esm/extends"; var _excluded = ["className", "getTextAndFormatDate", "index", "item", "itemContentTemplate", "onDelete", "onHide", "showDeleteButton", "singleAppointment"]; import { createVNode, createComponentVNode, normalizeProps } from "inferno"; import { BaseInfernoComponent } from "@devextreme/vdom"; import noop from "../../../utils/noop"; import { Marker } from "./marker"; import { Button } from "../../button"; import { TooltipItemContent } from "./item_content"; import getCurrentAppointment from "./utils/get_current_appointment"; import { defaultGetTextAndFormatDate } from "./utils/default_functions"; export var viewFunction = viewModel => { var ItemContentTemplate = viewModel.props.itemContentTemplate; return viewModel.props.itemContentTemplate ? ItemContentTemplate({ model: { appointmentData: viewModel.props.item.data, targetedAppointmentData: viewModel.currentAppointment }, index: viewModel.props.index }) : normalizeProps(createVNode(1, "div", "dx-tooltip-appointment-item ".concat(viewModel.props.className), [createComponentVNode(2, Marker), createComponentVNode(2, TooltipItemContent, { text: viewModel.formattedContent.text, formattedDate: viewModel.formattedContent.formatDate }), viewModel.props.showDeleteButton && createVNode(1, "div", "dx-tooltip-appointment-item-delete-button-container", createComponentVNode(2, Button, { className: "dx-tooltip-appointment-item-delete-button", icon: "trash", stylingMode: "text", onClick: viewModel.onDeleteButtonClick }), 2)], 0, _extends({}, viewModel.restAttributes))) }; export var TooltipItemLayoutProps = { className: "", item: { data: {} }, index: 0, showDeleteButton: true, onDelete: noop, onHide: noop, getTextAndFormatDate: defaultGetTextAndFormatDate, singleAppointment: {} }; var getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp); export class TooltipItemLayout extends BaseInfernoComponent { constructor(props) { super(props); this.state = {} } get currentAppointment() { var { item: item } = this.props; return getCurrentAppointment(item) } get onDeleteButtonClick() { var { item: item, onDelete: onDelete, onHide: onHide, singleAppointment: singleAppointment } = this.props; return e => { onHide(); e.event.stopPropagation(); onDelete(item.data, singleAppointment) } } get formattedContent() { var { getTextAndFormatDate: getTextAndFormatDate, item: item } = this.props; var { data: data } = item; return getTextAndFormatDate(data, this.currentAppointment) } get restAttributes() { var _this$props = this.props, restProps = _objectWithoutPropertiesLoose(_this$props, _excluded); return restProps } render() { var props = this.props; return viewFunction({ props: _extends({}, props, { itemContentTemplate: getTemplate(props.itemContentTemplate) }), currentAppointment: this.currentAppointment, onDeleteButtonClick: this.onDeleteButtonClick, formattedContent: this.formattedContent, restAttributes: this.restAttributes }) } } TooltipItemLayout.defaultProps = _extends({}, TooltipItemLayoutProps);