define(["require", "exports", "@syncfusion/ej2-base", "@syncfusion/ej2-base", "@syncfusion/ej2-calendars", "../base/util"], function (require, exports, ej2_base_1, ej2_base_2, ej2_calendars_1, util_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var DatePickerEditCell = (function () {
        function DatePickerEditCell(parent) {
            this.parent = parent;
        }
        DatePickerEditCell.prototype.create = function (args) {
            var complexFieldName = util_1.getComplexFieldID(args.column.field);
            return ej2_base_2.createElement('input', {
                className: 'e-field', attrs: {
                    id: this.parent.element.id + complexFieldName,
                    name: complexFieldName, type: 'text', 'e-mappinguid': args.column.uid
                }
            });
        };
        DatePickerEditCell.prototype.read = function (element) {
            return element.ej2_instances[0].value;
        };
        DatePickerEditCell.prototype.write = function (args) {
            var isInline = this.parent.editSettings.mode !== 'Dialog';
            var isComplex = util_1.isComplexField(args.column.field);
            var isAddRow = args.requestType === 'add' || args.row.classList.contains('e-addedrow');
            var value = util_1.getObject(args.column.field, args.rowData);
            value = value ? new Date(value) : null;
            if (args.column.editType === 'datepickeredit') {
                this.obj = new ej2_calendars_1.DatePicker(ej2_base_1.extend({
                    floatLabelType: isInline ? 'Never' : 'Always',
                    value: value,
                    placeholder: isInline ?
                        '' : args.column.headerText, enableRtl: this.parent.enableRtl,
                    enabled: util_1.isEditable(args.column, args.type, args.element),
                }, args.column.edit.params));
            }
            else Eif (args.column.editType === 'datetimepickeredit') {
                this.obj = new ej2_calendars_1.DateTimePicker(ej2_base_1.extend({
                    floatLabelType: isInline ? 'Never' : 'Always',
                    value: value,
                    placeholder: isInline ?
                        '' : args.column.headerText, enableRtl: this.parent.enableRtl,
                    enabled: util_1.isEditable(args.column, args.type, args.element),
                }, args.column.edit.params));
            }
            this.obj.appendTo(args.element);
        };
        DatePickerEditCell.prototype.destroy = function () {
            Eif (this.obj) {
                this.obj.destroy();
            }
        };
        return DatePickerEditCell;
    }());
    exports.DatePickerEditCell = DatePickerEditCell;
});
  |