UNPKG

com.phloxui

Version:

PhloxUI Ng2+ Framework

1,094 lines (1,093 loc) 101 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'; const /** @type {?} */ TYPE_NAME = "phx-table-row"; const /** @type {?} */ DEFAULT_DROP_EFFECT_REJECT_CLASS = 'shake shake-constant'; const /** @type {?} */ DEFAULT_DROP_EFFECT_REJECT_DURATION = 300; const /** @type {?} */ DEFAULT_DROP_DATA_TRANSFER_DROP_EFFECT = 'move'; const /** @type {?} */ DEFAULT_DRAG_DATA_TRANSFER_EFFECT_ALLOWED = 'move'; export class DefaultTableRow extends AbstractTableComponent { /** * @param {?} elRef * @param {?} needFocusService */ constructor(elRef, needFocusService) { super(elRef); 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 {?} */ ngOnInit() { super.ngOnInit(); 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; } } /** * @param {?} table * @return {?} */ doInitialize(table) { if (table === null && typeof table === 'undefined') { return; } if (table.getModel() && table.getModel().getRowModel() && table.getModel().getRowModel().getCellModels() && Array.isArray(table.getModel().getRowModel().getCellModels())) { let /** @type {?} */ cellModels = table.getModel().getRowModel().getCellModels(); this.wrapperHandlers = new Array(cellModels.length); this.cellInstances = new Array(cellModels.length); for (let /** @type {?} */ i = 0; i < cellModels.length; i++) { this.wrapperHandlers[i] = (event) => { this.cellInstances[i] = event.instance; // auto saveData for dirty if (typeof this.cellInstances[i].saveData === 'function') { // delay for component init end setTimeout(() => { 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((event) => { if (this.getTable()) { this.getTable().onCellFocused(this.getRowIndex(), i, event); } }); } if (typeof this.cellInstances[i].getLostFocusEvent === 'function') { typeof this.cellInstances[i].getLostFocusEvent().subscribe((event) => { if (this.getTable()) { this.getTable().onCellLostFocused(this.getRowIndex(), i, event); } }); } if (typeof this.cellInstances[i].getChangeEvent === 'function') { typeof this.cellInstances[i].getChangeEvent().subscribe((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); } }; } } 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 {?} */ _getWrapperHandler(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 {?} */ onTableRowCellClicked(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 {?} */ onTableRowCellDblClicked(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 {?} */ onFocus(event, fireEvent) { } /** * @param {?} event * @param {?=} fireEvent * @return {?} */ onLostFocus(event, fireEvent) { } /** * @return {?} */ playDropRejectEffect() { return new Promise((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(() => { $(this.elementRef.nativeElement).find('.phx-table-cell > *').removeClass(this.dropEffectRejectClass); resolve(); }, this.dropEffectRejectDuration); } catch (/** @type {?} */ e) { reject(); } }); } /** * @return {?} */ isSelfDataDirty() { let /** @type {?} */ b = JSON.stringify(this.data) !== JSON.stringify(this.originalData); return b; } /** * @param {?} data * @return {?} */ selfSaveData(data) { if (typeof this.data === 'object') { this.originalData = JSON.parse(JSON.stringify(this.data)); } else { this.originalData = this.data; } } /** * @return {?} */ selfResetData() { 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 {?} */ setController(controller) { if (this.controller !== null && typeof this.controller !== 'undefined') { this.controller.resetCellComponents(); } this.controller = controller; if (this.cellInstances !== null && Array.isArray(this.cellInstances)) { for (let /** @type {?} */ i = 0; i < this.cellInstances.length; i++) { this.controller.setCellComponentInstanceAt(i, this.cellInstances[i]); } } } /** * @return {?} */ getController() { return this.controller; } /** * @return {?} */ getComponentInstance() { return this; } /** * @return {?} */ getCellComponentInstances() { if (this.controller === null || typeof this.controller === 'undefined') { return null; } return this.controller.getCellComponentInstances(); } /** * @param {?} index * @return {?} */ getCellComponentInstanceAt(index) { if (this.controller === null || typeof this.controller === 'undefined') { return null; } return this.controller.getCellComponentInstanceAt(index); } /** * @param {?} index * @param {?} component * @return {?} */ setCellComponentInstanceAt(index, component) { if (this.controller === null || typeof this.controller === 'undefined') { return null; } this.controller.setCellComponentInstanceAt(index, component); } /** * @return {?} */ resetCellComponents() { if (this.controller === null || typeof this.controller === 'undefined') { return null; } this.controller.resetCellComponents(); } /** * @return {?} */ isEditable() { if (this.controller === null || typeof this.controller === 'undefined') { return null; } return this.controller.isEditable(); } /** * @return {?} */ isEditingMode() { if (this.controller === null || typeof this.controller === 'undefined') { return null; } return this.controller.isEditingMode(); } /** * @return {?} */ isEditing() { if (this.controller === null || typeof this.controller === 'undefined') { return null; } return this.controller.isEditing(); } /** * @param {?} editing * @return {?} */ setEditing(editing) { if (this.controller === null || typeof this.controller === 'undefined') { return null; } this.controller.setEditing(editing); } /** * @param {?} oldState * @return {?} */ loadState(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 {?} */ getOldState() { if (this.controller === null || typeof this.controller === 'undefined') { return null; } return this.controller.getOldState(); } /** * @param {?} event * @return {?} */ isDraggable(event) { try { return this.table.getModel().getRowModel().isDraggable(); } catch (/** @type {?} */ e) { return false; } } /** * @param {?} event * @return {?} */ getDragStartDataTransfer(event) { return { // Set drag image as entire row image: this.elementRef.nativeElement, data: this.controller.getData(), effectAllowed: this.dragDataTransferEffectAllowed }; } /** * @param {?} event * @return {?} */ onDrag(event) { // emit event let /** @type {?} */ data = { item: this }; let /** @type {?} */ ev = EventUtils.newCustomEvent(DRAG_EVENT, this, data, event); if (this.rowDragEvent !== null && this.rowDragEvent !== undefined) { this.rowDragEvent.emit(ev); } let /** @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 {?} */ onDragStart(event) { // emit event let /** @type {?} */ data = { item: this }; let /** @type {?} */ ev = EventUtils.newCustomEvent(DRAG_START_EVENT, this, data, event); if (this.rowDragStartEvent !== null && this.rowDragStartEvent !== undefined) { this.rowDragStartEvent.emit(ev); } let /** @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 {?} */ onDragEnd(event) { // emit event let /** @type {?} */ data = { item: this }; let /** @type {?} */ ev = EventUtils.newCustomEvent(DRAG_END_EVENT, this, data, event); if (this.rowDragEndEvent !== null && this.rowDragEndEvent !== undefined) { this.rowDragEndEvent.emit(ev); } let /** @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 {?} */ isAcceptDragData(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 {?} */ getDragOverDataTransfer(event) { return { dropEffect: this.dropDataTransferDropEffect }; } /** * @param {?} event * @return {?} */ onDragEnter(event) { // emit event let /** @type {?} */ data = { item: this }; let /** @type {?} */ ev = EventUtils.newCustomEvent(DRAG_ENTER_EVENT, this, data, event); if (this.rowDragEnterEvent !== null && this.rowDragEnterEvent !== undefined) { this.rowDragEnterEvent.emit(ev); } let /** @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 {?} */ onDragOver(event) { // emit event let /** @type {?} */ data = { item: this }; let /** @type {?} */ ev = EventUtils.newCustomEvent(DRAG_OVER_EVENT, this, data, event); if (this.rowDragOverEvent !== null && this.rowDragOverEvent !== undefined) { this.rowDragOverEvent.emit(ev); } let /** @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 {?} */ onDragLeave(event) { // emit event let /** @type {?} */ data = { item: this }; let /** @type {?} */ ev = EventUtils.newCustomEvent(DRAG_LEAVE_EVENT, this, data, event); if (this.rowDragLeaveEvent !== null && this.rowDragLeaveEvent !== undefined) { this.rowDragLeaveEvent.emit(ev); } let /** @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 {?} */ onDrop(event) { // emit event let /** @type {?} */ data = { item: this }; let /** @type {?} */ ev = EventUtils.newCustomEvent(DROP_EVENT, this, data, event); if (this.rowDropEvent !== null && this.rowDropEvent !== undefined) { this.rowDropEvent.emit(ev); } let /** @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 {?} */ onDropAccepted(event, data) { // emit event let /** @type {?} */ d = { item: this, result: data }; let /** @type {?} */ ev = EventUtils.newCustomEvent(DROP_ACCEPT_EVENT, this, d, event); if (this.rowDropAcceptedEvent !== null && this.rowDropAcceptedEvent !== undefined) { this.rowDropAcceptedEvent.emit(ev); } let /** @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 {?} */ onDropRejected(event) { this.playDropRejectEffect(); // emit event let /** @type {?} */ data = { item: this }; let /** @type {?} */ ev = EventUtils.newCustomEvent(DROP_REJECT_EVENT, this, data, event); if (this.rowDropRejectedEvent !== null && this.rowDropRejectedEvent !== undefined) { this.rowDropRejectedEvent.emit(ev); } let /** @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 {?} */ getRowIndex() { if (this.controller === null || this.controller === undefined) { return -1; } return this.controller.getRowIndex(); } /** * @return {?} */ getTable() { return this.table; } /** * @return {?} */ getData() { return this.data; } /** * @param {?} data * @return {?} */ setData(data) { this.data = data; } /** * @return {?} */ isSelfEditable() { if (this.controller === null || typeof this.controller === 'undefined') { return null; } return this.controller.isSelfEditable(); } /** * @param {?} editable * @return {?} */ setSelfEditable(editable) { this.controller.setSelfEditable(editable); } /** * @param {?} index * @return {?} */ isCellEditable(index) { if (this.controller === null || typeof this.controller === 'undefined') { return null; } return this.controller.isCellEditable(index); } /** * @param {?} index * @return {?} */ isCellEditingMode(index) { if (this.controller === null || typeof this.controller === 'undefined') { return null; } return this.controller.isCellEditingMode(index); } /** * @param {?} index * @return {?} */ isCellEditing(index) { if (this.controller === null || typeof this.controller === 'undefined') { return null; } return this.controller.isCellEditing(index); } /** * @param {?} index * @param {?} editing * @return {?} */ setCellEditing(index, editing) { if (this.controller === null || typeof this.controller === 'undefined') { return null; } this.controller.setCellEditing(index, editing); } /** * @return {?} */ getNeedFocusService() { return this.needFocusService; } /** * @param {?} component * @param {?=} event * @return {?} */ setFocusingComponent(component, event) { this.getNeedFocusService().setFocusingComponent(component, event); } /** * @param {?} classes * @return {?} */ addStyleClasses(classes) { for (let /** @type {?} */ c of classes) { $(this.elementRef.nativeElement).addClass(c); } } /** * @param {?} classes * @return {?} */ removeStyleClasses(classes) { for (let /** @type {?} */ c of classes) { $(this.elementRef.nativeElement).removeClass(c); } } /** * @return {?} */ getRowDragEvent() { return this.rowDragEvent; } /** * @param {?} event * @return {?} */ setRowDragEvent(event) { this.rowDragEvent = event; } /** * @return {?} */ getRowDragStartEvent() { return this.rowDragStartEvent; } /** * @param {?} event * @return {?} */ setRowDragStartEvent(event) { this.rowDragStartEvent = event; } /** * @return {?} */ getRowDragEndEvent() { return this.rowDragEndEvent; } /** * @param {?} event * @return {?} */ setRowDragEndEvent(event) { this.rowDragEndEvent = event; } /** * @return {?} */ getRowDragEnterEvent() { return this.rowDragEnterEvent; } /** * @param {?} event * @return {?} */ setRowDragEnterEvent(event) { this.rowDragEnterEvent = event; } /** * @return {?} */ getRowDragOverEvent() { return this.rowDragOverEvent; } /** * @param {?} event * @return {?} */ setRowDragOverEvent(event) { this.rowDragOverEvent = event; } /** * @return {?} */ getRowDragLeaveEvent() { return this.rowDragLeaveEvent; } /** * @param {?} event * @return {?} */ setRowDragLeaveEvent(event) { this.rowDragLeaveEvent = event; } /** * @return {?} */ getRowDropEvent() { return this.rowDropEvent; } /** * @param {?} event * @return {?} */ setRowDropEvent(event) { this.rowDropEvent = event; } /** * @return {?} */ getRowDropAcceptedEvent() { return this.rowDropAcceptedEvent; } /** * @param {?} event * @return {?} */ setRowDropAcceptedEvent(event) { this.rowDropAcceptedEvent = event; } /** * @return {?} */ getRowDropRejectedEvent() { return this.rowDropRejectedEvent; } /** * @param {?} event * @return {?} */ setRowDropRejectedEvent(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"> <div *ngFor="let cell of getTable().getModel().getRowModel().getCellModels(); let idx = index" [style.width]="getTable().getModel().getColumnModels()[idx].getWidth()" [style.max-width]="getTable().getModel().getColumnModels()[idx].getWidth()" [attr.class]="'phx-table-cell' + (cell.getCSSClass() ? ' ' + cell.getCSSClass() : '')" [phxDroppable]="this" (click)="onTableRowCellClicked($event, idx)" (dblclick)="onTableRowCellDblClicked($event, idx)"> <phx-component-wrapper [type]="cell.getComponentType()" [options]="cell.getComponentOptions()" [handler]="_getWrapperHandler(idx)" [dataParent]="this" [data]="getData()" *ngIf="!isCellEditingMode(idx)"> </phx-component-wrapper> <phx-component-wrapper [type]="cell.getEditorComponentType()" [options]="cell.getEditorComponentOptions()" [handler]="_getWrapperHandler(idx)" [dataParent]="this" [data]="getData()" *ngIf="isCellEditingMode(idx)"> </phx-component-wrapper> </div> </ng-template> ` },] }, ]; /** @nocollapse */ DefaultTableRow.ctorParameters = () => [ { 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); 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdFRhYmxlUm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2NvbS5waGxveHVpLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudC90YWJsZS9EZWZhdWx0VGFibGVSb3cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxVQUFVLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUsxRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUtsRSxPQUFPLEVBQ0wsVUFBVSxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFDNUMsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUNuRCxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEdBQ2pELE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV4RCx1QkFBTSxTQUFTLEdBQVcsZUFBZSxDQUFDO0FBRTFDLHVCQUFNLGdDQUFnQyxHQUFXLHNCQUFzQixDQUFDO0FBQ3hFLHVCQUFNLG1DQUFtQyxHQUFXLEdBQUcsQ0FBQztBQUN4RCx1QkFBTSxzQ0FBc0MsR0FBVyxNQUFNLENBQUM7QUFDOUQsdUJBQU0seUNBQXlDLEdBQVcsTUFBTSxDQUFDO0FBK0JqRSxNQUFNLHNCQUF1QixTQUFRLHNCQUFzQjs7Ozs7Z0JBbUd0QyxLQUFpQixFQUFFLGdCQUFrQztRQUN0RSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFYixJQUFJLENBQUMsZ0JB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