UNPKG

@syncfusion/ej2-grids

Version:

Feature-rich JavaScript datagrid (datatable) control with built-in support for editing, filtering, grouping, paging, sorting, and exporting to Excel.

55 lines (54 loc) 2.49 kB
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 { ComboBox } from '@syncfusion/ej2-dropdowns'; import { Query, DataManager, DataUtil } from '@syncfusion/ej2-data'; import { isEditable, getObject } from '../base/util'; import { EditCellBase } from './edit-cell-base'; /** * `ComboBoxEditCell` is used to handle ComboBoxEdit cell type editing. * * @hidden */ var ComboboxEditCell = /** @class */ (function (_super) { __extends(ComboboxEditCell, _super); function ComboboxEditCell() { return _super !== null && _super.apply(this, arguments) || this; } ComboboxEditCell.prototype.write = function (args) { this.column = args.column; var isInlineMode = this.parent.editSettings.mode !== 'Dialog'; this.obj = new ComboBox(extend({ dataSource: this.parent.dataSource instanceof DataManager ? this.parent.dataSource : new DataManager(this.parent.dataSource), query: new Query().select(args.column.field), fields: { value: args.column.field }, value: getObject(args.column.field, args.rowData), enableRtl: this.parent.enableRtl, actionComplete: this.finalValue.bind(this), placeholder: isInlineMode ? '' : args.column.headerText, floatLabelType: isInlineMode ? 'Never' : 'Always', enabled: isEditable(args.column, args.requestType, args.element), cssClass: this.parent.cssClass ? this.parent.cssClass : null }, args.column.edit.params)); this.obj.appendTo(args.element); }; ComboboxEditCell.prototype.finalValue = function (val) { val.result = DataUtil.distinct(val.result, this.obj.fields.value, true); if (this.column.dataSource) { this.column.dataSource.dataSource.json = val.result; } }; return ComboboxEditCell; }(EditCellBase)); export { ComboboxEditCell };