UNPKG

com.phloxui

Version:

PhloxUI Ng2+ Framework

1,363 lines (1,362 loc) 110 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import * as tslib_1 from "tslib"; import { Component, ElementRef, Input, EventEmitter, Output } from '@angular/core'; import { I18N, Option } from '../../decorator/decorators'; import { AbstractTableComponent } from './AbstractTableComponent'; import { DRAG_EVENT, DRAG_START_EVENT, DRAG_END_EVENT, DRAG_ENTER_EVENT, DRAG_OVER_EVENT, DRAG_LEAVE_EVENT, DROP_EVENT, DROP_ACCEPT_EVENT, DROP_REJECT_EVENT, } from '../../share/CustomEventType'; import { NeedFocusService } from '../../service/NeedFocusService.service'; import { EventUtils } from '../../share/utils/EventUtils'; import { DataUtils } from '../../share/utils/DataUtils'; var /** @type {?} */ TYPE_NAME = "phx-table-row"; var /** @type {?} */ DEFAULT_DROP_EFFECT_REJECT_CLASS = 'shake shake-constant'; var /** @type {?} */ DEFAULT_DROP_EFFECT_REJECT_DURATION = 300; var /** @type {?} */ DEFAULT_DROP_DATA_TRANSFER_DROP_EFFECT = 'move'; var /** @type {?} */ DEFAULT_DRAG_DATA_TRANSFER_EFFECT_ALLOWED = 'move'; var DefaultTableRow = /** @class */ (function (_super) { tslib_1.__extends(DefaultTableRow, _super); function DefaultTableRow(elRef, needFocusService) { var _this = _super.call(this, elRef) || this; _this.needFocusService = needFocusService; _this.rowDragEvent = new EventEmitter(); _this.rowDragStartEvent = new EventEmitter(); _this.rowDragEndEvent = new EventEmitter(); _this.rowDragEnterEvent = new EventEmitter(); _this.rowDragOverEvent = new EventEmitter(); _this.rowDragLeaveEvent = new EventEmitter(); _this.rowDropEvent = new EventEmitter(); _this.rowDropAcceptedEvent = new EventEmitter(); _this.rowDropRejectedEvent = new EventEmitter(); _this.wrapperHandlers = []; _this.cellInstances = []; return _this; } /** * @return {?} */ DefaultTableRow.prototype.ngOnInit = /** * @return {?} */ function () { _super.prototype.ngOnInit.call(this); if (this.dropEffectRejectClass === null || typeof this.dropEffectRejectClass === 'undefined') { this.dropEffectRejectClass = DEFAULT_DROP_EFFECT_REJECT_CLASS; } if (this.dropEffectRejectDuration === null || typeof this.dropEffectRejectDuration === 'undefined') { this.dropEffectRejectDuration = DEFAULT_DROP_EFFECT_REJECT_DURATION; } if (this.dropDataTransferDropEffect === null || typeof this.dropDataTransferDropEffect === 'undefined') { this.dropDataTransferDropEffect = DEFAULT_DROP_DATA_TRANSFER_DROP_EFFECT; } if (this.dragDataTransferEffectAllowed === null || typeof this.dragDataTransferEffectAllowed === 'undefined') { this.dragDataTransferEffectAllowed = DEFAULT_DRAG_DATA_TRANSFER_EFFECT_ALLOWED; } }; // Implement /** * @param {?} table * @return {?} */ DefaultTableRow.prototype.doInitialize = /** * @param {?} table * @return {?} */ function (table) { var _this = this; if (table === null && typeof table === 'undefined') { return; } if (table.getModel() && table.getModel().getRowModel() && table.getModel().getRowModel().getCellModels() && Array.isArray(table.getModel().getRowModel().getCellModels())) { var /** @type {?} */ cellModels = table.getModel().getRowModel().getCellModels(); this.wrapperHandlers = new Array(cellModels.length); this.cellInstances = new Array(cellModels.length); var _loop_1 = function (i) { this_1.wrapperHandlers[i] = function (event) { _this.cellInstances[i] = event.instance; // auto saveData for dirty if (typeof _this.cellInstances[i].saveData === 'function') { // delay for component init end setTimeout(function () { _this.cellInstances[i].saveData(_this.originalData); }, 5); } // subscribe focus, lostFocus & change of instance if (typeof _this.cellInstances[i].getFocusEvent === 'function') { typeof _this.cellInstances[i].getFocusEvent().subscribe(function (event) { if (_this.getTable()) { _this.getTable().onCellFocused(_this.getRowIndex(), i, event); } }); } if (typeof _this.cellInstances[i].getLostFocusEvent === 'function') { typeof _this.cellInstances[i].getLostFocusEvent().subscribe(function (event) { if (_this.getTable()) { _this.getTable().onCellLostFocused(_this.getRowIndex(), i, event); } }); } if (typeof _this.cellInstances[i].getChangeEvent === 'function') { typeof _this.cellInstances[i].getChangeEvent().subscribe(function (event) { if (_this.getTable()) { _this.getTable().onCellChanged(_this.getRowIndex(), i, event); } }); } if (_this.controller !== null && typeof _this.controller !== 'undefined') { _this.controller.setCellComponentInstanceAt(i, event.instance); } }; }; var this_1 = this; for (var /** @type {?} */ i = 0; i < cellModels.length; i++) { _loop_1(i); } } else { this.wrapperHandlers = []; this.cellInstances = []; } // Auto set element's style if specified if (this.elementRef !== null && typeof this.elementRef !== 'undefined') { if (table.getModel() && table.getModel().getRowModel()) { if (typeof table.getModel().getRowModel().getHeight() === 'string') { $(this.elementRef.nativeElement).css('height', table.getModel().getRowModel().getHeight()); } } } }; /** * @param {?} index * @return {?} */ DefaultTableRow.prototype._getWrapperHandler = /** * @param {?} index * @return {?} */ function (index) { if (this.wrapperHandlers === null || typeof this.wrapperHandlers === 'undefined' || !Array.isArray(this.wrapperHandlers)) { return null; } if (index < 0 || index >= this.wrapperHandlers.length) { return null; } return this.wrapperHandlers[index]; }; /** * @param {?} event * @param {?} columnIndex * @param {?=} fireEvent * @return {?} */ DefaultTableRow.prototype.onTableRowCellClicked = /** * @param {?} event * @param {?} columnIndex * @param {?=} fireEvent * @return {?} */ function (event, columnIndex, fireEvent) { if (fireEvent === null || fireEvent === undefined) { fireEvent = true; } if (this.getTable()) { this.getTable().onCellClicked(this.getRowIndex(), columnIndex, event, fireEvent); } }; /** * @param {?} event * @param {?} columnIndex * @param {?=} fireEvent * @return {?} */ DefaultTableRow.prototype.onTableRowCellDblClicked = /** * @param {?} event * @param {?} columnIndex * @param {?=} fireEvent * @return {?} */ function (event, columnIndex, fireEvent) { if (fireEvent === null || fireEvent === undefined) { fireEvent = true; } if (this.getTable()) { this.getTable().onCellDblClicked(this.getRowIndex(), columnIndex, event, fireEvent); } }; /** * @param {?} event * @param {?=} fireEvent * @return {?} */ DefaultTableRow.prototype.onFocus = /** * @param {?} event * @param {?=} fireEvent * @return {?} */ function (event, fireEvent) { }; /** * @param {?} event * @param {?=} fireEvent * @return {?} */ DefaultTableRow.prototype.onLostFocus = /** * @param {?} event * @param {?=} fireEvent * @return {?} */ function (event, fireEvent) { }; /** * @return {?} */ DefaultTableRow.prototype.playDropRejectEffect = /** * @return {?} */ function () { var _this = this; return new Promise(function (resolve, reject) { try { $(_this.elementRef.nativeElement).find('.phx-table-cell > *').addClass(_this.dropEffectRejectClass); if (_this.dropEffectRejectTimer !== null && typeof _this.dropEffectRejectTimer !== 'undefined') { clearTimeout(_this.dropEffectRejectTimer); _this.dropEffectRejectTimer = null; } _this.dropEffectRejectTimer = setTimeout(function () { $(_this.elementRef.nativeElement).find('.phx-table-cell > *').removeClass(_this.dropEffectRejectClass); resolve(); }, _this.dropEffectRejectDuration); } catch (/** @type {?} */ e) { reject(); } }); }; /** * @return {?} */ DefaultTableRow.prototype.isSelfDataDirty = /** * @return {?} */ function () { var /** @type {?} */ b = JSON.stringify(this.data) !== JSON.stringify(this.originalData); return b; }; /** * @param {?} data * @return {?} */ DefaultTableRow.prototype.selfSaveData = /** * @param {?} data * @return {?} */ function (data) { if (typeof this.data === 'object') { this.originalData = JSON.parse(JSON.stringify(this.data)); } else { this.originalData = this.data; } }; /** * @return {?} */ DefaultTableRow.prototype.selfResetData = /** * @return {?} */ function () { if (this.originalData === null || typeof this.originalData === 'undefined') { this.data = this.originalData; } else if (this.data === null || typeof this.data === 'undefined') { this.data = JSON.parse(JSON.stringify(this.originalData)); } else if (Array.isArray(this.originalData)) { if (Array.isArray(this.data)) { // Re-copy members from original data (do not change this.data object reference) this.data.splice(0, this.data.length); this.data.concat(this.originalData); } else { // Copy array member values this.data = [].concat(this.originalData); } } else if (typeof this.originalData === 'object') { if (typeof this.data === 'object') { // Copy data values from originalData (overwrite=true and resetOldValues=true) // (do not change this.data object reference) DataUtils.copyDataValues(this.originalData, this.data, true, true); } else { // Clone object from original data this.data = JSON.parse(JSON.stringify(this.originalData)); } } else { this.data = this.originalData; } }; /** * @param {?} controller * @return {?} */ DefaultTableRow.prototype.setController = /** * @param {?} controller * @return {?} */ function (controller) { if (this.controller !== null && typeof this.controller !== 'undefined') { this.controller.resetCellComponents(); } this.controller = controller; if (this.cellInstances !== null && Array.isArray(this.cellInstances)) { for (var /** @type {?} */ i = 0; i < this.cellInstances.length; i++) { this.controller.setCellComponentInstanceAt(i, this.cellInstances[i]); } } }; /** * @return {?} */ DefaultTableRow.prototype.getController = /** * @return {?} */ function () { return this.controller; }; /** * @return {?} */ DefaultTableRow.prototype.getComponentInstance = /** * @return {?} */ function () { return this; }; /** * @return {?} */ DefaultTableRow.prototype.getCellComponentInstances = /** * @return {?} */ function () { if (this.controller === null || typeof this.controller === 'undefined') { return null; } return this.controller.getCellComponentInstances(); }; /** * @param {?} index * @return {?} */ DefaultTableRow.prototype.getCellComponentInstanceAt = /** * @param {?} index * @return {?} */ function (index) { if (this.controller === null || typeof this.controller === 'undefined') { return null; } return this.controller.getCellComponentInstanceAt(index); }; /** * @param {?} index * @param {?} component * @return {?} */ DefaultTableRow.prototype.setCellComponentInstanceAt = /** * @param {?} index * @param {?} component * @return {?} */ function (index, component) { if (this.controller === null || typeof this.controller === 'undefined') { return null; } this.controller.setCellComponentInstanceAt(index, component); }; /** * @return {?} */ DefaultTableRow.prototype.resetCellComponents = /** * @return {?} */ function () { if (this.controller === null || typeof this.controller === 'undefined') { return null; } this.controller.resetCellComponents(); }; /** * @return {?} */ DefaultTableRow.prototype.isEditable = /** * @return {?} */ function () { if (this.controller === null || typeof this.controller === 'undefined') { return null; } return this.controller.isEditable(); }; /** * @return {?} */ DefaultTableRow.prototype.isEditingMode = /** * @return {?} */ function () { if (this.controller === null || typeof this.controller === 'undefined') { return null; } return this.controller.isEditingMode(); }; /** * @return {?} */ DefaultTableRow.prototype.isEditing = /** * @return {?} */ function () { if (this.controller === null || typeof this.controller === 'undefined') { return null; } return this.controller.isEditing(); }; /** * @param {?} editing * @return {?} */ DefaultTableRow.prototype.setEditing = /** * @param {?} editing * @return {?} */ function (editing) { if (this.controller === null || typeof this.controller === 'undefined') { return null; } this.controller.setEditing(editing); }; /** * @param {?} oldState * @return {?} */ DefaultTableRow.prototype.loadState = /** * @param {?} oldState * @return {?} */ function (oldState) { if (this.controller === null || typeof this.controller === 'undefined') { return; } if (oldState === null || typeof oldState === 'undefined') { return; } if (oldState instanceof DefaultTableRow) { this.controller.loadState((/** @type {?} */ (oldState)).getController()); } else { this.controller.loadState(oldState); } }; /** * @return {?} */ DefaultTableRow.prototype.getOldState = /** * @return {?} */ function () { if (this.controller === null || typeof this.controller === 'undefined') { return null; } return this.controller.getOldState(); }; /** * @param {?} event * @return {?} */ DefaultTableRow.prototype.isDraggable = /** * @param {?} event * @return {?} */ function (event) { try { return this.table.getModel().getRowModel().isDraggable(); } catch (/** @type {?} */ e) { return false; } }; /** * @param {?} event * @return {?} */ DefaultTableRow.prototype.getDragStartDataTransfer = /** * @param {?} event * @return {?} */ function (event) { return { // Set drag image as entire row image: this.elementRef.nativeElement, data: this.controller.getData(), effectAllowed: this.dragDataTransferEffectAllowed }; }; /** * @param {?} event * @return {?} */ DefaultTableRow.prototype.onDrag = /** * @param {?} event * @return {?} */ function (event) { // emit event var /** @type {?} */ data = { item: this }; var /** @type {?} */ ev = EventUtils.newCustomEvent(DRAG_EVENT, this, data, event); if (this.rowDragEvent !== null && this.rowDragEvent !== undefined) { this.rowDragEvent.emit(ev); } var /** @type {?} */ parent = /** @type {?} */ (this.getDataParent()); if (parent !== null && typeof parent.onDrag === 'function') { // TableBody will emit "ev" out without wrapping into CustomEvent. // So, we'll pass "ev" (CustomEvent) to parent directly. parent.onDrag(ev); } }; /** * @param {?} event * @return {?} */ DefaultTableRow.prototype.onDragStart = /** * @param {?} event * @return {?} */ function (event) { // emit event var /** @type {?} */ data = { item: this }; var /** @type {?} */ ev = EventUtils.newCustomEvent(DRAG_START_EVENT, this, data, event); if (this.rowDragStartEvent !== null && this.rowDragStartEvent !== undefined) { this.rowDragStartEvent.emit(ev); } var /** @type {?} */ parent = /** @type {?} */ (this.getDataParent()); if (parent !== null && typeof parent.onDragStart === 'function') { // TableBody will emit "ev" out without wrapping into CustomEvent. // So, we'll pass "ev" (CustomEvent) to parent directly. parent.onDragStart(ev); } }; /** * @param {?} event * @return {?} */ DefaultTableRow.prototype.onDragEnd = /** * @param {?} event * @return {?} */ function (event) { // emit event var /** @type {?} */ data = { item: this }; var /** @type {?} */ ev = EventUtils.newCustomEvent(DRAG_END_EVENT, this, data, event); if (this.rowDragEndEvent !== null && this.rowDragEndEvent !== undefined) { this.rowDragEndEvent.emit(ev); } var /** @type {?} */ parent = /** @type {?} */ (this.getDataParent()); if (parent !== null && typeof parent.onDragEnd === 'function') { // TableBody will emit "ev" out without wrapping into CustomEvent. // So, we'll pass "ev" (CustomEvent) to parent directly. parent.onDragEnd(ev); } }; /** * @param {?} event * @param {?} format * @param {?} data * @return {?} */ DefaultTableRow.prototype.isAcceptDragData = /** * @param {?} event * @param {?} format * @param {?} data * @return {?} */ function (event, format, data) { // Default is to return "true" meaning that we'll accept drag data according to // its data "format" only. return true; }; /** * @param {?} event * @return {?} */ DefaultTableRow.prototype.getDragOverDataTransfer = /** * @param {?} event * @return {?} */ function (event) { return { dropEffect: this.dropDataTransferDropEffect }; }; /** * @param {?} event * @return {?} */ DefaultTableRow.prototype.onDragEnter = /** * @param {?} event * @return {?} */ function (event) { // emit event var /** @type {?} */ data = { item: this }; var /** @type {?} */ ev = EventUtils.newCustomEvent(DRAG_ENTER_EVENT, this, data, event); if (this.rowDragEnterEvent !== null && this.rowDragEnterEvent !== undefined) { this.rowDragEnterEvent.emit(ev); } var /** @type {?} */ parent = /** @type {?} */ (this.getDataParent()); if (parent !== null && typeof parent.onDragEnter === 'function') { // TableBody will emit "ev" out without wrapping into CustomEvent. // So, we'll pass "ev" (CustomEvent) to parent directly. parent.onDragEnter(ev); } }; /** * @param {?} event * @return {?} */ DefaultTableRow.prototype.onDragOver = /** * @param {?} event * @return {?} */ function (event) { // emit event var /** @type {?} */ data = { item: this }; var /** @type {?} */ ev = EventUtils.newCustomEvent(DRAG_OVER_EVENT, this, data, event); if (this.rowDragOverEvent !== null && this.rowDragOverEvent !== undefined) { this.rowDragOverEvent.emit(ev); } var /** @type {?} */ parent = /** @type {?} */ (this.getDataParent()); if (parent !== null && typeof parent.onDragOver === 'function') { // TableBody will emit "ev" out without wrapping into CustomEvent. // So, we'll pass "ev" (CustomEvent) to parent directly. parent.onDragOver(ev); } }; /** * @param {?} event * @return {?} */ DefaultTableRow.prototype.onDragLeave = /** * @param {?} event * @return {?} */ function (event) { // emit event var /** @type {?} */ data = { item: this }; var /** @type {?} */ ev = EventUtils.newCustomEvent(DRAG_LEAVE_EVENT, this, data, event); if (this.rowDragLeaveEvent !== null && this.rowDragLeaveEvent !== undefined) { this.rowDragLeaveEvent.emit(ev); } var /** @type {?} */ parent = /** @type {?} */ (this.getDataParent()); if (parent !== null && typeof parent.onDragLeave === 'function') { // TableBody will emit "ev" out without wrapping into CustomEvent. // So, we'll pass "ev" (CustomEvent) to parent directly. parent.onDragLeave(ev); } }; /** * @param {?} event * @return {?} */ DefaultTableRow.prototype.onDrop = /** * @param {?} event * @return {?} */ function (event) { // emit event var /** @type {?} */ data = { item: this }; var /** @type {?} */ ev = EventUtils.newCustomEvent(DROP_EVENT, this, data, event); if (this.rowDropEvent !== null && this.rowDropEvent !== undefined) { this.rowDropEvent.emit(ev); } var /** @type {?} */ parent = /** @type {?} */ (this.getDataParent()); if (parent !== null && typeof parent.onDrop === 'function') { // TableBody will emit "ev" out without wrapping into CustomEvent. // So, we'll pass "ev" (CustomEvent) to parent directly. parent.onDrop(ev); } }; /** * @param {?} event * @param {?} data * @return {?} */ DefaultTableRow.prototype.onDropAccepted = /** * @param {?} event * @param {?} data * @return {?} */ function (event, data) { // emit event var /** @type {?} */ d = { item: this, result: data }; var /** @type {?} */ ev = EventUtils.newCustomEvent(DROP_ACCEPT_EVENT, this, d, event); if (this.rowDropAcceptedEvent !== null && this.rowDropAcceptedEvent !== undefined) { this.rowDropAcceptedEvent.emit(ev); } var /** @type {?} */ parent = /** @type {?} */ (this.getDataParent()); if (parent !== null && typeof parent.onDropAccepted === 'function') { // TableBody will emit "ev" out without wrapping into CustomEvent. // So, we'll pass "ev" (CustomEvent) to parent directly. parent.onDropAccepted(ev); } }; /** * @param {?} event * @return {?} */ DefaultTableRow.prototype.onDropRejected = /** * @param {?} event * @return {?} */ function (event) { this.playDropRejectEffect(); // emit event var /** @type {?} */ data = { item: this }; var /** @type {?} */ ev = EventUtils.newCustomEvent(DROP_REJECT_EVENT, this, data, event); if (this.rowDropRejectedEvent !== null && this.rowDropRejectedEvent !== undefined) { this.rowDropRejectedEvent.emit(ev); } var /** @type {?} */ parent = /** @type {?} */ (this.getDataParent()); if (parent !== null && typeof parent.onDropRejected === 'function') { // TableBody will emit "ev" out without wrapping into CustomEvent. // So, we'll pass "ev" (CustomEvent) to parent directly. parent.onDropRejected(ev); } }; /** * @return {?} */ DefaultTableRow.prototype.getRowIndex = /** * @return {?} */ function () { if (this.controller === null || this.controller === undefined) { return -1; } return this.controller.getRowIndex(); }; /** * @return {?} */ DefaultTableRow.prototype.getTable = /** * @return {?} */ function () { return this.table; }; /** * @return {?} */ DefaultTableRow.prototype.getData = /** * @return {?} */ function () { return this.data; }; /** * @param {?} data * @return {?} */ DefaultTableRow.prototype.setData = /** * @param {?} data * @return {?} */ function (data) { this.data = data; }; /** * @return {?} */ DefaultTableRow.prototype.isSelfEditable = /** * @return {?} */ function () { if (this.controller === null || typeof this.controller === 'undefined') { return null; } return this.controller.isSelfEditable(); }; /** * @param {?} editable * @return {?} */ DefaultTableRow.prototype.setSelfEditable = /** * @param {?} editable * @return {?} */ function (editable) { this.controller.setSelfEditable(editable); }; /** * @param {?} index * @return {?} */ DefaultTableRow.prototype.isCellEditable = /** * @param {?} index * @return {?} */ function (index) { if (this.controller === null || typeof this.controller === 'undefined') { return null; } return this.controller.isCellEditable(index); }; /** * @param {?} index * @return {?} */ DefaultTableRow.prototype.isCellEditingMode = /** * @param {?} index * @return {?} */ function (index) { if (this.controller === null || typeof this.controller === 'undefined') { return null; } return this.controller.isCellEditingMode(index); }; /** * @param {?} index * @return {?} */ DefaultTableRow.prototype.isCellEditing = /** * @param {?} index * @return {?} */ function (index) { if (this.controller === null || typeof this.controller === 'undefined') { return null; } return this.controller.isCellEditing(index); }; /** * @param {?} index * @param {?} editing * @return {?} */ DefaultTableRow.prototype.setCellEditing = /** * @param {?} index * @param {?} editing * @return {?} */ function (index, editing) { if (this.controller === null || typeof this.controller === 'undefined') { return null; } this.controller.setCellEditing(index, editing); }; /** * @return {?} */ DefaultTableRow.prototype.getNeedFocusService = /** * @return {?} */ function () { return this.needFocusService; }; /** * @param {?} component * @param {?=} event * @return {?} */ DefaultTableRow.prototype.setFocusingComponent = /** * @param {?} component * @param {?=} event * @return {?} */ function (component, event) { this.getNeedFocusService().setFocusingComponent(component, event); }; /** * @param {?} classes * @return {?} */ DefaultTableRow.prototype.addStyleClasses = /** * @param {?} classes * @return {?} */ function (classes) { try { for (var classes_1 = tslib_1.__values(classes), classes_1_1 = classes_1.next(); !classes_1_1.done; classes_1_1 = classes_1.next()) { var c = classes_1_1.value; $(this.elementRef.nativeElement).addClass(c); } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (classes_1_1 && !classes_1_1.done && (_a = classes_1.return)) _a.call(classes_1); } finally { if (e_1) throw e_1.error; } } var e_1, _a; }; /** * @param {?} classes * @return {?} */ DefaultTableRow.prototype.removeStyleClasses = /** * @param {?} classes * @return {?} */ function (classes) { try { for (var classes_2 = tslib_1.__values(classes), classes_2_1 = classes_2.next(); !classes_2_1.done; classes_2_1 = classes_2.next()) { var c = classes_2_1.value; $(this.elementRef.nativeElement).removeClass(c); } } catch (e_2_1) { e_2 = { error: e_2_1 }; } finally { try { if (classes_2_1 && !classes_2_1.done && (_a = classes_2.return)) _a.call(classes_2); } finally { if (e_2) throw e_2.error; } } var e_2, _a; }; /** * @return {?} */ DefaultTableRow.prototype.getRowDragEvent = /** * @return {?} */ function () { return this.rowDragEvent; }; /** * @param {?} event * @return {?} */ DefaultTableRow.prototype.setRowDragEvent = /** * @param {?} event * @return {?} */ function (event) { this.rowDragEvent = event; }; /** * @return {?} */ DefaultTableRow.prototype.getRowDragStartEvent = /** * @return {?} */ function () { return this.rowDragStartEvent; }; /** * @param {?} event * @return {?} */ DefaultTableRow.prototype.setRowDragStartEvent = /** * @param {?} event * @return {?} */ function (event) { this.rowDragStartEvent = event; }; /** * @return {?} */ DefaultTableRow.prototype.getRowDragEndEvent = /** * @return {?} */ function () { return this.rowDragEndEvent; }; /** * @param {?} event * @return {?} */ DefaultTableRow.prototype.setRowDragEndEvent = /** * @param {?} event * @return {?} */ function (event) { this.rowDragEndEvent = event; }; /** * @return {?} */ DefaultTableRow.prototype.getRowDragEnterEvent = /** * @return {?} */ function () { return this.rowDragEnterEvent; }; /** * @param {?} event * @return {?} */ DefaultTableRow.prototype.setRowDragEnterEvent = /** * @param {?} event * @return {?} */ function (event) { this.rowDragEnterEvent = event; }; /** * @return {?} */ DefaultTableRow.prototype.getRowDragOverEvent = /** * @return {?} */ function () { return this.rowDragOverEvent; }; /** * @param {?} event * @return {?} */ DefaultTableRow.prototype.setRowDragOverEvent = /** * @param {?} event * @return {?} */ function (event) { this.rowDragOverEvent = event; }; /** * @return {?} */ DefaultTableRow.prototype.getRowDragLeaveEvent = /** * @return {?} */ function () { return this.rowDragLeaveEvent; }; /** * @param {?} event * @return {?} */ DefaultTableRow.prototype.setRowDragLeaveEvent = /** * @param {?} event * @return {?} */ function (event) { this.rowDragLeaveEvent = event; }; /** * @return {?} */ DefaultTableRow.prototype.getRowDropEvent = /** * @return {?} */ function () { return this.rowDropEvent; }; /** * @param {?} event * @return {?} */ DefaultTableRow.prototype.setRowDropEvent = /** * @param {?} event * @return {?} */ function (event) { this.rowDropEvent = event; }; /** * @return {?} */ DefaultTableRow.prototype.getRowDropAcceptedEvent = /** * @return {?} */ function () { return this.rowDropAcceptedEvent; }; /** * @param {?} event * @return {?} */ DefaultTableRow.prototype.setRowDropAcceptedEvent = /** * @param {?} event * @return {?} */ function (event) { this.rowDropAcceptedEvent = event; }; /** * @return {?} */ DefaultTableRow.prototype.getRowDropRejectedEvent = /** * @return {?} */ function () { return this.rowDropRejectedEvent; }; /** * @param {?} event * @return {?} */ DefaultTableRow.prototype.setRowDropRejectedEvent = /** * @param {?} event * @return {?} */ function (event) { this.rowDropRejectedEvent = event; }; DefaultTableRow.TYPE_NAME = TYPE_NAME; DefaultTableRow.DEFAULT_DROP_EFFECT_REJECT_CLASS = DEFAULT_DROP_EFFECT_REJECT_CLASS; DefaultTableRow.DEFAULT_DROP_EFFECT_REJECT_DURATION = DEFAULT_DROP_EFFECT_REJECT_DURATION; DefaultTableRow.DEFAULT_DRAG_DATA_TRANSFER_EFFECT_ALLOWED = DEFAULT_DRAG_DATA_TRANSFER_EFFECT_ALLOWED; DefaultTableRow.decorators = [ { type: Component, args: [{ moduleId: module.id, selector: TYPE_NAME, template: "<ng-template [ngIf]=\"getTable() !== undefined\">\n <div *ngFor=\"let cell of getTable().getModel().getRowModel().getCellModels(); let idx = index\"\n [style.width]=\"getTable().getModel().getColumnModels()[idx].getWidth()\"\n [style.max-width]=\"getTable().getModel().getColumnModels()[idx].getWidth()\"\n [attr.class]=\"'phx-table-cell' + (cell.getCSSClass() ? ' ' + cell.getCSSClass() : '')\"\n [phxDroppable]=\"this\" (click)=\"onTableRowCellClicked($event, idx)\" (dblclick)=\"onTableRowCellDblClicked($event, idx)\">\n <phx-component-wrapper [type]=\"cell.getComponentType()\"\n [options]=\"cell.getComponentOptions()\"\n [handler]=\"_getWrapperHandler(idx)\"\n [dataParent]=\"this\"\n [data]=\"getData()\"\n *ngIf=\"!isCellEditingMode(idx)\">\n </phx-component-wrapper>\n <phx-component-wrapper [type]=\"cell.getEditorComponentType()\"\n [options]=\"cell.getEditorComponentOptions()\"\n [handler]=\"_getWrapperHandler(idx)\"\n [dataParent]=\"this\"\n [data]=\"getData()\"\n *ngIf=\"isCellEditingMode(idx)\">\n </phx-component-wrapper>\n </div>\n</ng-template>\n" },] }, ]; /** @nocollapse */ DefaultTableRow.ctorParameters = function () { return [ { type: ElementRef, }, { type: NeedFocusService, }, ]; }; DefaultTableRow.propDecorators = { "dataParent": [{ type: Input },], "ignoreParentData": [{ type: Input },], "data": [{ type: Input },], "ignoreParentDisabled": [{ type: Input },], "delegateHistory": [{ type: Input },], "onDisabled": [{ type: Input },], "onEnabled": [{ type: Input },], "loadingEnabled": [{ type: Input },], "i18nKey": [{ type: Input },], "bypass": [{ type: Input, args: ['i18nBypass',] },], "options": [{ type: Input },], "disabled": [{ type: Input },], "help": [{ type: Input },], "dropEffectRejectClass": [{ type: Input },], "dropEffectRejectDuration": [{ type: Input },], "dropDataTransferDropEffect": [{ type: Input },], "dragDataTransferEffectAllowed": [{ type: Input },], "rowDragEvent": [{ type: Output, args: ['phxRowDrag',] },], "rowDragStartEvent": [{ type: Output, args: ['phxRowDragStart',] },], "rowDragEndEvent": [{ type: Output, args: ['phxRowDragEnd',] },], "rowDragEnterEvent": [{ type: Output, args: ['phxRowDragEnter',] },], "rowDragOverEvent": [{ type: Output, args: ['phxRowDragOver',] },], "rowDragLeaveEvent": [{ type: Output, args: ['phxRowDragLeave',] },], "rowDropEvent": [{ type: Output, args: ['phxRowDrop',] },], "rowDropAcceptedEvent": [{ type: Output, args: ['phxRowDropAccepted',] },], "rowDropRejectedEvent": [{ type: Output, args: ['phxRowDropRejected',] },], }; tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Object) ], DefaultTableRow.prototype, "dataParent", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], DefaultTableRow.prototype, "ignoreParentData", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Object) ], DefaultTableRow.prototype, "data", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], DefaultTableRow.prototype, "ignoreParentDisabled", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], DefaultTableRow.prototype, "delegateHistory", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Function) ], DefaultTableRow.prototype, "onDisabled", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Function) ], DefaultTableRow.prototype, "onEnabled", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], DefaultTableRow.prototype, "loadingEnabled", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", String) ], DefaultTableRow.prototype, "i18nKey", void 0); tslib_1.__decorate([ Option('i18nBypass'), tslib_1.__metadata("design:type", Boolean) ], DefaultTableRow.prototype, "bypass", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], DefaultTableRow.prototype, "disabled", void 0); tslib_1.__decorate([ I18N(), Option(), tslib_1.__metadata("design:type", Object) ], DefaultTableRow.prototype, "help", void 0); tslib_1.__decorate([ Option('drop.effect.reject.class'), tslib_1.__metadata("design:type", String) ], DefaultTableRow.prototype, "dropEffectRejectClass", void 0); tslib_1.__decorate([ Option('drop.effect.reject.duration'), tslib_1.__metadata("design:type", Number) ], DefaultTableRow.prototype, "dropEffectRejectDuration", void 0); tslib_1.__decorate([ Option('drop.dataTransfer.dropEffect'), tslib_1.__metadata("design:type", String) ], DefaultTableRow.prototype, "dropDataTransferDropEffect", void 0); tslib_1.__decorate([ Option('drag.dataTransfer.effectAllowed'), tslib_1.__metadata("design:type", String) ], DefaultTableRow.prototype, "dragDataTransferEffectAllowed", void 0); tslib_1.__decorate([ Option('rowDrag'), tslib_1.__metadata("design:type", EventEmitter) ], DefaultTableRow.prototype, "rowDragEvent", void 0); tslib_1.__decorate([ Option('rowDragStart'), tslib_1.__metadata("design:type", EventEmitter) ], DefaultTableRow.prototype, "rowDragStartEvent", void 0); tslib_1.__decorate([ Option('rowDragEnd'), tslib_1.__metadata("design:type", EventEmitter) ], DefaultTableRow.prototype, "rowDragEndEvent", void 0); tslib_1.__decorate([ Option('rowDragEnter'), tslib_1.__metadata("design:type", EventEmitter) ], DefaultTableRow.prototype, "rowDragEnterEvent", void 0); tslib_1.__decorate([ Option('rowDragOver'), tslib_1.__metadata("design:type", EventEmitter) ], DefaultTableRow.prototype, "rowDragOverEvent", void 0); tslib_1.__decorate([ Option('rowDragLeave'), tslib_1.__metadata("design:type", EventEmitter) ], DefaultTableRow.prototype, "rowDragLeaveEvent", void 0); tslib_1.__decorate([ Option('rowDrop'), tslib_1.__metadata("design:type", EventEmitter) ], DefaultTableRow.prototype, "rowDropEvent", void 0); tslib_1.__decorate([ Option('rowDropAccepted'), tslib_1.__metadata("design:type", EventEmitter) ], DefaultTableRow.prototype, "rowDropAcceptedEvent", void 0); tslib_1.__decorate([ Option('rowDropRejected'), tslib_1.__metadata("design:type", EventEmitter) ], DefaultTableRow.prototype, "rowDropRejectedEvent", void 0); return DefaultTableRow; }(AbstractTableComponent)); export { DefaultTableRow }; function DefaultTableRow_tsickle_Closure_declarations() { /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */ DefaultTableRow.decorators; /** * @nocollapse * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>} */ DefaultTableRow.ctorParameters; /** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */ DefaultTableRow.propDecorators; /** @type {?} */ DefaultTableRow.TYPE_NAME; /** @type {?} */ DefaultTableRow.DEFAULT_DROP_EFFECT_REJECT_CLASS; /** @type {?} */ DefaultTableRow.DEFAULT_DROP_EFFECT_REJECT_DURATION; /** @type {?} */ DefaultTableRow.DEFAULT_DRAG_DATA_TRANSFER_EFFECT_ALLOWED; /** @type {?} */ DefaultTableRow.prototype.dataParent; /** @type {?} */ DefaultTableRow.prototype.ignoreParentData; /** @type {?} */ DefaultTableRow.prototype.data; /** @type {?} */ DefaultTableRow.prototype.ignoreParentDisabled; /** @type {?} */ DefaultTableRow.prototype.delegateHistory; /** @type {?} */ DefaultTableRow.prototype.onDisabled; /** @type {?} */ DefaultTableRow.prototype.onEnabled; /** @type {?} */ DefaultTableRow.prototype.loadingEnabled; /** @type {?} */ DefaultTableRow.prototype.i18nKey; /** @type {?} */ DefaultTableRow.prototype.bypass; /** @type {?} */ DefaultTableRow.prototype.options; /** @type {?} */ DefaultTableRow.prototype.disabled; /** @type {?} */ DefaultTableRow.prototype.help; /** @type {?} */ DefaultTableRow.prototype.dropEffectRejectClass; /** @type {?} */ DefaultTableRow.prototype.dropEffectRejectDuration; /** @type {?} */ DefaultTableRow.prototype.dropDataTransferDropEffect; /** @type {?} */ DefaultTableRow.prototype.dragDataTransferEffectAllowed; /** @type {?} */ DefaultTableRow.prototype.rowDragEvent; /** @type {?} */ DefaultTableRow.prototype.rowDragStartEvent; /** @type {?} */ DefaultTableRow.prototype.rowDragEndEvent; /** @type {?} */ DefaultTableRow.prototype.rowDragEnterEvent; /** @type {?} */ DefaultTableRow.prototype.rowDragOverEvent; /** @type {?} */ DefaultTableRow.prototype.rowDragLeaveEvent; /** @type {?} */ DefaultTableRow.prototype.rowDropEvent; /** @type {?} */ DefaultTableRow.prototype.rowDropAcceptedEvent; /** @type {?} */ DefaultTableRow.prototype.rowDropRejectedEvent; /** @type {?} */ DefaultTableRow.prototype.controller; /** @type {?} */ DefaultTableRow.prototype.wrapperHandlers; /** @type {?} */ DefaultTableRow.prototype.cellInstances; /** @type {?} */ DefaultTableRow.prototype.originalData; /** @type {?} */ DefaultTableRow.prototype.dropEffectRejectTimer; /** @type {?} */ DefaultTableRow.prototype.needFocusService; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdFRhYmxlUm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2NvbS5waGxveHVpLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudC90YWJsZS9EZWZhdWx0VGFibGVSb3cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxVQUFVLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUsxRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUtsRSxPQUFPLEVBQ0wsVUFBVSxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFDNUMsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUNuRCxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEdBQ2pELE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV4RCxxQkFBTSxTQUFTLEdBQVcsZUFBZSxDQUFDO0FBRTFDLHFCQUFNLGdDQUFnQyxHQUFXLHNCQUFzQixDQUFDO0FBQ3hFLHFCQUFNLG1DQUFtQyxHQUFXLEdBQUcsQ0FBQztBQUN4RCxxQkFBTSxzQ0FBc0MsR0FBVyxNQUFNLENBQUM7QUFDOUQscUJBQU0seUNBQXlDLEdBQVcsTUFBTSxDQUFDOztJQStCNUIsMkNBQXNCOzZCQW1HdEMsS0FBaUIsRUFBRSxnQkFBa0M7b0JBQ3RFLGtCQUFNLEtBQUssQ0FBQztRQUVaLEtBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUV6QyxL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