com.phloxui
Version:
PhloxUI Ng2+ Framework
1,094 lines (1,093 loc) • 101 kB
JavaScript
/**
* @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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