@syncfusion/ej2-grids
Version:
Feature-rich JavaScript datagrid (datatable) control with built-in support for editing, filtering, grouping, paging, sorting, and exporting to Excel.
70 lines (69 loc) • 3.07 kB
JavaScript
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
import { extend } from '@syncfusion/ej2-base';
import { DatePicker, DateTimePicker, MaskedDateTime } from '@syncfusion/ej2-calendars';
import { isEditable, getObject, getCustomDateFormat, parentsUntil, isCellHaveWidth } from '../base/util';
import { EditCellBase } from './edit-cell-base';
/**
* `DatePickerEditCell` is used to handle datepicker cell type editing.
*
* @hidden
*/
var DatePickerEditCell = /** @class */ (function (_super) {
__extends(DatePickerEditCell, _super);
function DatePickerEditCell(parent) {
var _this = _super.call(this, parent) || this;
_this.isMaskModuleInjected = true;
return _this;
}
DatePickerEditCell.prototype.write = function (args) {
this.edit = this.parent.editModule;
if (args.column.editType === 'datepickeredit') {
this.obj = new DatePicker(extend(dateanddatetimerender(args, this.parent.editSettings.mode, this.parent.enableRtl, this.parent.cssClass, this), args.column.edit.params));
if (this.isMaskModuleInjected) {
DatePicker.Inject(MaskedDateTime);
this.isMaskModuleInjected = false;
}
}
if (args.column.editType === 'datetimepickeredit') {
this.obj = new DateTimePicker(extend(dateanddatetimerender(args, this.parent.editSettings.mode, this.parent.enableRtl, this.parent.cssClass, this), args.column.edit.params));
}
this.obj.appendTo(args.element);
};
return DatePickerEditCell;
}(EditCellBase));
export { DatePickerEditCell };
// eslint-disable-next-line
function dateanddatetimerender(args, mode, rtl, css, datePickerEditCell) {
var isInline = mode !== 'Dialog';
var format = getCustomDateFormat(args.column.format, args.column.type);
var value = getObject(args.column.field, args.rowData);
value = value ? new Date(value) : null;
return {
floatLabelType: isInline ? 'Never' : 'Always',
value: value,
format: format,
placeholder: isInline ?
'' : args.column.headerText, enableRtl: rtl,
enabled: isEditable(args.column, args.requestType, args.element) && isCellHaveWidth(parentsUntil(args.element, 'e-rowcell')),
cssClass: css ? css : null,
close: datePickerClose.bind(datePickerEditCell)
};
}
// eslint-disable-next-line
function datePickerClose(args) {
if (args.event && args.event.action === 'escape') {
this.edit.editCellDialogClose = true;
}
}