all files / export/ pdf-event-marker.js

100% Statements 67/67
93.1% Branches 54/58
100% Functions 5/5
100% Lines 67/67
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96   138×   1054× 1054× 1054× 1054×   19×   1054× 1054× 1034×   1054× 1054× 1054× 1054× 430× 430× 430×   430× 430×   430× 430× 427×   430× 430×   430× 430× 430×     430×   430× 430× 430× 34× 34× 29× 29× 29× 29× 29× 29× 29×         396× 396× 386× 386× 386× 386× 386× 386× 386×         430× 430×           430×        
define(["require", "exports", "@syncfusion/ej2-pdf-export", "../base/utils", "@syncfusion/ej2-base", "./../export/pdf-base/pdf-borders"], function (require, exports, ej2_pdf_export_1, utils_1, ej2_base_1, pdf_borders_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var EventMarker = (function () {
        function EventMarker(parent) {
            this.parent = parent;
        }
        EventMarker.prototype.drawEventMarker = function (page, startPoint, cumulativeWidth, detail, eventMarker, cumulativeHeight, ganttStyles) {
            var taskGraphics = page.graphics;
            var pageSize = page.getClientSize();
            var font = new ej2_pdf_export_1.PdfStandardFont(ej2_pdf_export_1.PdfFontFamily.Helvetica, 10);
            if (!ej2_base_1.isNullOrUndefined(this.parent.pdfExportModule['helper']['exportProps'].ganttStyle) &&
                this.parent.pdfExportModule['helper']['exportProps'].ganttStyle.font) {
                font = this.parent.pdfExportModule['helper']['exportProps'].ganttStyle.font;
            }
            var strSize;
            if (!ej2_base_1.isNullOrUndefined(eventMarker.label)) {
                strSize = font.measureString(eventMarker.label);
            }
            var triangle = 8;
            var eventLine = ganttStyles.eventMarker.lineStyle;
            eventLine.dashStyle = ganttStyles.eventMarker.lineStyle.dashStyle;
            if (detail.startDate <= eventMarker.date && eventMarker.date <= detail.endDate) {
                var enventFormat = new ej2_pdf_export_1.PdfStringFormat();
                enventFormat.alignment = ej2_pdf_export_1.PdfTextAlignment.Center;
                var textFormat = !ej2_base_1.isNullOrUndefined(ganttStyles.eventMarker.label.format) ?
                    ganttStyles.eventMarker.label.format : enventFormat;
                var eventBrush = new ej2_pdf_export_1.PdfSolidBrush(ganttStyles.eventMarker.label.backgroundColor);
                var fontColor = (ganttStyles.eventMarker.label && ganttStyles.eventMarker.label.fontColor) ?
                    new ej2_pdf_export_1.PdfSolidBrush(ganttStyles.eventMarker.label.fontColor) : null;
                var customizedFont = this.getPdfFont(ganttStyles);
                if (ej2_base_1.isNullOrUndefined(customizedFont)) {
                    customizedFont = font;
                }
                var defaultBorder = ganttStyles.eventMarker.label.borders ? ganttStyles.eventMarker.label.borders : null;
                if (ganttStyles.eventMarker.label.borderColor) {
                    var pdfborders = new pdf_borders_1.PdfBorders();
                    pdfborders.all = new ej2_pdf_export_1.PdfPen(new ej2_pdf_export_1.PdfColor(ganttStyles.eventMarker.label.borderColor));
                    defaultBorder = pdfborders;
                }
                var border = (!ej2_base_1.isNullOrUndefined(defaultBorder) && !ej2_base_1.isNullOrUndefined(defaultBorder.left)) ? defaultBorder.left : null;
                var padding = { left: 0, right: 0, top: 0, bottom: 0 };
                if (!ej2_base_1.isNullOrUndefined(ganttStyles) && !ej2_base_1.isNullOrUndefined(ganttStyles.eventMarker) &&
                    !ej2_base_1.isNullOrUndefined(ganttStyles.eventMarker.label) && !ej2_base_1.isNullOrUndefined(ganttStyles.eventMarker.label.padding)) {
                    padding = ganttStyles.eventMarker.label.padding;
                }
                var customizedFontBrush = !ej2_base_1.isNullOrUndefined(ganttStyles.eventMarker.label.fontBrush) ?
                    new ej2_pdf_export_1.PdfPen(ganttStyles.eventMarker.label.fontBrush) : null;
                var left = this.parent.dataOperation.getTaskLeft(this.parent.dateValidationModule.getDateFromFormat(eventMarker.date, true), false, true);
                var diff = 10;
                if (this.parent.pdfExportModule.gantt.taskbar.isAutoFit()) {
                    taskGraphics.drawLine(eventLine, new ej2_pdf_export_1.PointF(startPoint.x + (left - cumulativeWidth) + diff, cumulativeHeight), new ej2_pdf_export_1.PointF(startPoint.x + (left - cumulativeWidth) + diff, pageSize.height));
                    if (!ej2_base_1.isNullOrUndefined(eventMarker.label) && eventMarker.label.length > 0) {
                        taskGraphics.save();
                        taskGraphics.translateTransform(startPoint.x + (left - cumulativeWidth) + 7 + diff, cumulativeHeight + utils_1.pixelToPoint(50) + strSize.height / 2);
                        taskGraphics.rotateTransform(45);
                        taskGraphics.drawRectangle(border, eventBrush, 0, 0, triangle, triangle);
                        taskGraphics.restore();
                        taskGraphics.drawRectangle(border, eventBrush, startPoint.x + (left - cumulativeWidth) + 7 + diff, cumulativeHeight + utils_1.pixelToPoint(50), strSize.width + 10, strSize.height * 2);
                        taskGraphics.drawString(eventMarker.label, customizedFont, customizedFontBrush, fontColor, (startPoint.x +
                            (left - cumulativeWidth) + 12 + diff) - (padding.left + padding.right), (cumulativeHeight + utils_1.pixelToPoint(50) + utils_1.pixelToPoint(strSize.height / 2)) - (padding.top + padding.bottom), strSize.width, strSize.height, textFormat);
                    }
                }
                else {
                    taskGraphics.drawLine(eventLine, new ej2_pdf_export_1.PointF(startPoint.x + utils_1.pixelToPoint(left - cumulativeWidth) + diff, cumulativeHeight), new ej2_pdf_export_1.PointF(startPoint.x + utils_1.pixelToPoint(left - cumulativeWidth) + diff, pageSize.height));
                    if (!ej2_base_1.isNullOrUndefined(eventMarker.label) && eventMarker.label.length > 0) {
                        taskGraphics.save();
                        taskGraphics.translateTransform(startPoint.x + utils_1.pixelToPoint(left - cumulativeWidth) + 7 + diff, cumulativeHeight + utils_1.pixelToPoint(50) + strSize.height / 2);
                        taskGraphics.rotateTransform(45);
                        taskGraphics.drawRectangle(border, eventBrush, 0, 0, triangle, triangle);
                        taskGraphics.restore();
                        taskGraphics.drawRectangle(border, eventBrush, startPoint.x + utils_1.pixelToPoint(left - cumulativeWidth) + 7 + diff, cumulativeHeight + utils_1.pixelToPoint(50), strSize.width + 10, strSize.height * 2);
                        taskGraphics.drawString(eventMarker.label, customizedFont, customizedFontBrush, fontColor, (startPoint.x + utils_1.pixelToPoint(left - cumulativeWidth) + 12 + diff) - (padding.left + padding.right), (cumulativeHeight + utils_1.pixelToPoint(50) + utils_1.pixelToPoint(strSize.height / 2)) - (padding.top + padding.bottom), strSize.width, strSize.height, textFormat);
                    }
                }
            }
        };
        EventMarker.prototype.getPdfFont = function (ganttStyle) {
            var font;
            if (ganttStyle && ganttStyle.eventMarker && ganttStyle.eventMarker.label &&
                (ganttStyle.eventMarker.label.fontSize || ganttStyle.eventMarker.label.fontStyle ||
                    ganttStyle.eventMarker.label.fontFamily)) {
                var fontSize = ganttStyle.eventMarker.label.fontSize ? ganttStyle.eventMarker.label.fontSize : 9;
                var fontFamily = ganttStyle.eventMarker.label.fontFamily ?
                    ganttStyle.eventMarker.label.fontFamily : this.fontFamily;
                var fontStyle = ganttStyle.eventMarker.label.fontStyle ?
                    ganttStyle.eventMarker.label.fontStyle : ej2_pdf_export_1.PdfFontStyle.Regular;
                font = new ej2_pdf_export_1.PdfStandardFont(fontFamily, fontSize, fontStyle);
            }
            return font;
        };
        return EventMarker;
    }());
    exports.EventMarker = EventMarker;
});