com.phloxui
Version:
PhloxUI Ng2+ Framework
1,335 lines (1,334 loc) • 126 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Component, ElementRef, Input, ViewChild } from '@angular/core';
import { AbstractDataEditorView } from './AbstractDataEditorView';
import { FormViewModel } from '../model/FormViewModel';
import { TabPane } from '../../component/TabPane.component';
import { TabModel } from '../model/TabModel';
import { DialogService } from '../../service/DialogService.service';
import { ArrayUtils } from '../../share/utils/ArrayUtils';
import { ParrotsEditorSettingFactory } from '../../service/ParrotsEditorSettingFactory.service';
import { Option } from '../../decorator/Option.decorator';
import { I18N } from '../../decorator/I18N.decorator';
import { DataUtils } from '../../share/utils/DataUtils';
var /** @type {?} */ TYPE_NAME = "phx-form-view";
var FormView = /** @class */ (function (_super) {
tslib_1.__extends(FormView, _super);
function FormView(dialogService, editorSettingFactory, elementRef) {
var _this = _super.call(this, editorSettingFactory, elementRef) || this;
_this.tabsData = [];
_this.originalTabsData = [];
_this.dialogService = dialogService;
_this.showMoreMenu = true;
return _this;
}
/**
* @return {?}
*/
FormView.prototype.ngOnInit = /**
* @return {?}
*/
function () {
var _this = this;
_super.prototype.ngOnInit.call(this);
if (this.editor !== null && (typeof this.editor !== 'undefined')) {
this.editor.addViewComponent(this);
var /** @type {?} */ objIdField = this.editor.getObjectIdField();
if (this.showEvent !== null && (typeof this.showEvent !== 'undefined')) {
this.showEvent.subscribe(function (event) {
_this.reloadAllTab();
});
}
var /** @type {?} */ createdEvent = this.editor.getDataCreateEvent();
if (createdEvent !== null && (typeof createdEvent !== 'undefined')) {
createdEvent.subscribe(function (event) {
var /** @type {?} */ original = null;
var /** @type {?} */ data = null;
if (event.detail !== null && typeof event.detail !== 'undefined') {
if (event.detail.data !== null && typeof event.detail.data !== 'undefined') {
if (event.detail.data.data !== null && typeof event.detail.data.data !== 'undefined') {
data = event.detail.data.data;
}
if (event.detail.data.original !== null && typeof event.detail.data.original !== 'undefined') {
original = event.detail.data.original;
}
}
}
// got id ? update in tab with dataID
if (data !== null) {
// get all tabIndex
var /** @type {?} */ indexMap = {};
if (original !== null) {
for (var /** @type {?} */ i = 0; i < original.length; i++) {
var /** @type {?} */ oriItem = original[i];
var /** @type {?} */ item = null;
if (i < data.length) {
item = data[i];
}
if (item === null || typeof item === 'undefined') {
continue;
}
var /** @type {?} */ indexArray = _this.getTabDataIndexesMatched(oriItem, false);
try {
for (var indexArray_1 = tslib_1.__values(indexArray), indexArray_1_1 = indexArray_1.next(); !indexArray_1_1.done; indexArray_1_1 = indexArray_1.next()) {
var index = indexArray_1_1.value;
if (index <= -1) {
continue;
}
var /** @type {?} */ keyString = index + "";
if (indexMap[keyString] !== null && typeof indexMap[keyString] !== 'undefined') {
indexMap[keyString].push(item);
}
else {
indexMap[keyString] = [item];
}
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (indexArray_1_1 && !indexArray_1_1.done && (_a = indexArray_1.return)) _a.call(indexArray_1);
}
finally { if (e_1) throw e_1.error; }
}
}
}
for (var /** @type {?} */ key in indexMap) {
var /** @type {?} */ curTab = parseInt(key);
var /** @type {?} */ objArray = indexMap[key];
if (curTab > -1) {
// update model title
var /** @type {?} */ tModels = _this.tabPane.getTabModels();
var /** @type {?} */ firstData = null;
if (objArray.length > 0) {
firstData = objArray[0];
}
if (curTab < tModels.length) {
tModels[curTab].label = _this.generateTabLabel(objArray);
}
// update data in tab
// update data in tab
_this.tabPane.setTabData(curTab, objArray);
_this.tabPane.saveTabData(curTab);
var /** @type {?} */ tabDataObjs = null;
if (curTab < _this.tabsData.length) {
_this.tabsData[curTab].objects = [];
tabDataObjs = _this.tabsData[curTab].objects;
}
var /** @type {?} */ originalObjs = null;
if (curTab < _this.originalTabsData.length) {
_this.originalTabsData[curTab] = [];
originalObjs = _this.originalTabsData[curTab];
}
try {
for (var objArray_1 = tslib_1.__values(objArray), objArray_1_1 = objArray_1.next(); !objArray_1_1.done; objArray_1_1 = objArray_1.next()) {
var d = objArray_1_1.value;
// add to tabBody
if (tabDataObjs !== null) {
var /** @type {?} */ cloneData = JSON.parse(JSON.stringify(d));
tabDataObjs.push(cloneData);
}
// add to original
if (originalObjs !== null) {
originalObjs.push(d);
}
}
}
catch (e_2_1) { e_2 = { error: e_2_1 }; }
finally {
try {
if (objArray_1_1 && !objArray_1_1.done && (_b = objArray_1.return)) _b.call(objArray_1);
}
finally { if (e_2) throw e_2.error; }
}
// refresh
// refresh
_this.reloadTabIndex(curTab);
}
}
}
var e_1, _a, e_2, _b;
});
}
var /** @type {?} */ updateEvent = this.editor.getDataUpdateEvent();
if (updateEvent !== null && (typeof updateEvent !== 'undefined')) {
updateEvent.subscribe(function (event) {
var /** @type {?} */ data = null;
if (event.detail !== null && typeof event.detail !== 'undefined') {
if (event.detail.data !== null && typeof event.detail.data !== 'undefined') {
data = event.detail.data.data;
}
}
if (data !== null) {
var /** @type {?} */ updateTabIndexes = _this.getTabDataIndexesMatched(data, false);
try {
for (var updateTabIndexes_1 = tslib_1.__values(updateTabIndexes), updateTabIndexes_1_1 = updateTabIndexes_1.next(); !updateTabIndexes_1_1.done; updateTabIndexes_1_1 = updateTabIndexes_1.next()) {
var updateTabIndex = updateTabIndexes_1_1.value;
if (updateTabIndex > -1) {
// reload data & render by tab
// reload data & render by tab
_this.reloadTabIndex(updateTabIndex);
}
}
}
catch (e_3_1) { e_3 = { error: e_3_1 }; }
finally {
try {
if (updateTabIndexes_1_1 && !updateTabIndexes_1_1.done && (_a = updateTabIndexes_1.return)) _a.call(updateTabIndexes_1);
}
finally { if (e_3) throw e_3.error; }
}
}
var e_3, _a;
});
}
// delete by id if exist close tab and more
var /** @type {?} */ deleteEvent = this.editor.getDataDeleteEvent();
if (deleteEvent !== null && (typeof deleteEvent !== 'undefined')) {
deleteEvent.subscribe(function (event) {
var /** @type {?} */ data = null;
if (event.detail !== null && typeof event.detail !== 'undefined') {
if (event.detail.data !== null && typeof event.detail.data !== 'undefined') {
data = event.detail.data.data;
}
}
if (data !== null) {
try {
for (var data_1 = tslib_1.__values(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {
var d = data_1_1.value;
var /** @type {?} */ dIndex = _this.getIndexFromOriginalData(d);
if (dIndex > -1) {
// close tab
// close tab
_this.closeTabAtIndex(dIndex);
// remove from original
// remove from original
_this.removeFromOriginalData(d);
if (dIndex < _this.originalTabsData.length && _this.originalTabsData[dIndex].length <= 0) {
// remove
// remove
_this.originalTabsData.splice(dIndex, 1);
}
}
}
}
catch (e_4_1) { e_4 = { error: e_4_1 }; }
finally {
try {
if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);
}
finally { if (e_4) throw e_4.error; }
}
}
var e_4, _a;
});
}
// revert
var /** @type {?} */ revertEvent = this.editor.getDataRevertEvent();
if (revertEvent !== null && (typeof revertEvent !== 'undefined')) {
revertEvent.subscribe(function (event) {
var /** @type {?} */ data = null;
if (event.detail !== null && typeof event.detail !== 'undefined') {
if (event.detail.data !== null && typeof event.detail.data !== 'undefined') {
data = event.detail.data.data;
}
}
if (data !== null) {
var /** @type {?} */ updateTabIndexes = _this.getTabDataIndexesMatched(data, false);
try {
for (var updateTabIndexes_2 = tslib_1.__values(updateTabIndexes), updateTabIndexes_2_1 = updateTabIndexes_2.next(); !updateTabIndexes_2_1.done; updateTabIndexes_2_1 = updateTabIndexes_2.next()) {
var updateTabIndex = updateTabIndexes_2_1.value;
if (updateTabIndex > -1) {
// reload data & render by tab
// reload data & render by tab
_this.reloadTabIndex(updateTabIndex);
}
}
}
catch (e_5_1) { e_5 = { error: e_5_1 }; }
finally {
try {
if (updateTabIndexes_2_1 && !updateTabIndexes_2_1.done && (_a = updateTabIndexes_2.return)) _a.call(updateTabIndexes_2);
}
finally { if (e_5) throw e_5.error; }
}
}
var e_5, _a;
});
}
var /** @type {?} */ dataReloadEvent = this.editor.getDataReloadEvent();
if (dataReloadEvent !== null && (typeof dataReloadEvent !== 'undefined')) {
dataReloadEvent.subscribe(function (event) {
//! do reload sthing
});
}
}
if (this.model !== null && this.model instanceof FormViewModel) {
this.tabComponentType = this.model.tabComponentType;
this.tabComponentModel = this.model.tabComponentModel;
}
};
/**
* @return {?}
*/
FormView.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
if (this.editor !== null && (typeof this.editor !== 'undefined')) {
this.editor.removeViewComponent(this);
}
};
/**
* @param {?} objects
* @return {?}
*/
FormView.prototype.generateTabLabel = /**
* @param {?} objects
* @return {?}
*/
function (objects) {
if (this.tabLabelGenerator !== null && typeof this.tabLabelGenerator === 'function') {
try {
var /** @type {?} */ value = this.tabLabelGenerator(this, objects);
return value;
}
catch (/** @type {?} */ error) {
}
}
if (objects !== null && typeof objects !== 'undefined') {
if (objects.length == 1) {
var /** @type {?} */ objIdField = (this.editor === null ? "" : this.editor.getObjectIdField());
return DataUtils.getDataValue(objIdField, objects[0]);
}
else {
return "MULTIPLE DATA";
}
}
return "New tab";
};
/**
* @param {?} data
* @return {?}
*/
FormView.prototype.removeFromOriginalData = /**
* @param {?} data
* @return {?}
*/
function (data) {
if (data !== null && typeof data !== 'undefined') {
var /** @type {?} */ tempDatas = [];
try {
for (var _a = tslib_1.__values(this.originalTabsData), _b = _a.next(); !_b.done; _b = _a.next()) {
var dataContainer = _b.value;
var /** @type {?} */ tempContainer = [];
try {
for (var dataContainer_1 = tslib_1.__values(dataContainer), dataContainer_1_1 = dataContainer_1.next(); !dataContainer_1_1.done; dataContainer_1_1 = dataContainer_1.next()) {
var d = dataContainer_1_1.value;
if (!this.editor.getDataComparator().equals(d, data)) {
tempContainer.push(d);
}
}
}
catch (e_6_1) { e_6 = { error: e_6_1 }; }
finally {
try {
if (dataContainer_1_1 && !dataContainer_1_1.done && (_c = dataContainer_1.return)) _c.call(dataContainer_1);
}
finally { if (e_6) throw e_6.error; }
}
tempDatas.push(tempContainer);
}
}
catch (e_7_1) { e_7 = { error: e_7_1 }; }
finally {
try {
if (_b && !_b.done && (_d = _a.return)) _d.call(_a);
}
finally { if (e_7) throw e_7.error; }
}
this.originalTabsData = tempDatas;
}
var e_7, _d, e_6, _c;
};
/**
* @param {?} data
* @return {?}
*/
FormView.prototype.getIndexFromOriginalData = /**
* @param {?} data
* @return {?}
*/
function (data) {
if (data === null || typeof data === 'undefined') {
return -1;
}
var /** @type {?} */ index = 0;
try {
for (var _a = tslib_1.__values(this.originalTabsData), _b = _a.next(); !_b.done; _b = _a.next()) {
var dataContainer = _b.value;
if (dataContainer !== null && typeof dataContainer !== 'undefined') {
try {
for (var dataContainer_2 = tslib_1.__values(dataContainer), dataContainer_2_1 = dataContainer_2.next(); !dataContainer_2_1.done; dataContainer_2_1 = dataContainer_2.next()) {
var d = dataContainer_2_1.value;
if (Array.isArray(data)) {
try {
for (var data_2 = tslib_1.__values(data), data_2_1 = data_2.next(); !data_2_1.done; data_2_1 = data_2.next()) {
var inner = data_2_1.value;
if (this.editor.getDataComparator().equals(d, inner)) {
return index;
}
}
}
catch (e_8_1) { e_8 = { error: e_8_1 }; }
finally {
try {
if (data_2_1 && !data_2_1.done && (_c = data_2.return)) _c.call(data_2);
}
finally { if (e_8) throw e_8.error; }
}
}
else {
if (this.editor.getDataComparator().equals(d, data)) {
return index;
}
}
}
}
catch (e_9_1) { e_9 = { error: e_9_1 }; }
finally {
try {
if (dataContainer_2_1 && !dataContainer_2_1.done && (_d = dataContainer_2.return)) _d.call(dataContainer_2);
}
finally { if (e_9) throw e_9.error; }
}
}
index += 1;
}
}
catch (e_10_1) { e_10 = { error: e_10_1 }; }
finally {
try {
if (_b && !_b.done && (_e = _a.return)) _e.call(_a);
}
finally { if (e_10) throw e_10.error; }
}
return -1;
var e_10, _e, e_9, _d, e_8, _c;
};
/**
* @param {?} index
* @return {?}
*/
FormView.prototype.isTabDirty = /**
* @param {?} index
* @return {?}
*/
function (index) {
if (index === null || typeof index === 'undefined' || index < 0) {
return false;
}
return this.tabPane.isTabDirty(index);
};
/**
* @return {?}
*/
FormView.prototype.getAllDirtyData = /**
* @return {?}
*/
function () {
var /** @type {?} */ result = [];
for (var /** @type {?} */ i = 0; i < this.tabsData.length; i++) {
if (this.isTabDirty(i)) {
var /** @type {?} */ tabDataArray = this.getTabData(i);
try {
for (var tabDataArray_1 = tslib_1.__values(tabDataArray), tabDataArray_1_1 = tabDataArray_1.next(); !tabDataArray_1_1.done; tabDataArray_1_1 = tabDataArray_1.next()) {
var d = tabDataArray_1_1.value;
result.push(d);
}
}
catch (e_11_1) { e_11 = { error: e_11_1 }; }
finally {
try {
if (tabDataArray_1_1 && !tabDataArray_1_1.done && (_a = tabDataArray_1.return)) _a.call(tabDataArray_1);
}
finally { if (e_11) throw e_11.error; }
}
}
}
return result;
var e_11, _a;
};
/**
* @param {?} dataObject
* @return {?}
*/
FormView.prototype.getWrapDataObject = /**
* @param {?} dataObject
* @return {?}
*/
function (dataObject) {
var /** @type {?} */ data = {
editor: this.editor,
objects: dataObject
};
return data;
};
/**
* @param {?} sourceArray
* @param {?} value
* @return {?}
*/
FormView.prototype.isMatchValue = /**
* @param {?} sourceArray
* @param {?} value
* @return {?}
*/
function (sourceArray, value) {
if (sourceArray === null || typeof sourceArray === 'undefined') {
return false;
}
try {
for (var sourceArray_1 = tslib_1.__values(sourceArray), sourceArray_1_1 = sourceArray_1.next(); !sourceArray_1_1.done; sourceArray_1_1 = sourceArray_1.next()) {
var a = sourceArray_1_1.value;
try {
return this.editor.getDataComparator().equals(a, value);
}
catch (/** @type {?} */ err) {
}
}
}
catch (e_12_1) { e_12 = { error: e_12_1 }; }
finally {
try {
if (sourceArray_1_1 && !sourceArray_1_1.done && (_a = sourceArray_1.return)) _a.call(sourceArray_1);
}
finally { if (e_12) throw e_12.error; }
}
return false;
var e_12, _a;
};
/**
* @param {?} sourceArray
* @param {?} toMatchArray
* @return {?}
*/
FormView.prototype.isMatchLessOneValue = /**
* @param {?} sourceArray
* @param {?} toMatchArray
* @return {?}
*/
function (sourceArray, toMatchArray) {
if (sourceArray === null || typeof sourceArray === 'undefined') {
return false;
}
if (toMatchArray === null || typeof toMatchArray === 'undefined') {
return false;
}
try {
for (var toMatchArray_1 = tslib_1.__values(toMatchArray), toMatchArray_1_1 = toMatchArray_1.next(); !toMatchArray_1_1.done; toMatchArray_1_1 = toMatchArray_1.next()) {
var a = toMatchArray_1_1.value;
if (this.isMatchValue(sourceArray, a)) {
return true;
}
}
}
catch (e_13_1) { e_13 = { error: e_13_1 }; }
finally {
try {
if (toMatchArray_1_1 && !toMatchArray_1_1.done && (_a = toMatchArray_1.return)) _a.call(toMatchArray_1);
}
finally { if (e_13) throw e_13.error; }
}
return false;
var e_13, _a;
};
/**
* @param {?} sourceArray
* @param {?} toMatchArray
* @return {?}
*/
FormView.prototype.isMatchAllValue = /**
* @param {?} sourceArray
* @param {?} toMatchArray
* @return {?}
*/
function (sourceArray, toMatchArray) {
if (sourceArray === null || typeof sourceArray === 'undefined') {
return false;
}
if (toMatchArray === null || typeof toMatchArray === 'undefined') {
return false;
}
if (sourceArray.length !== toMatchArray.length) {
return false;
}
try {
for (var toMatchArray_2 = tslib_1.__values(toMatchArray), toMatchArray_2_1 = toMatchArray_2.next(); !toMatchArray_2_1.done; toMatchArray_2_1 = toMatchArray_2.next()) {
var a = toMatchArray_2_1.value;
if (!this.isMatchValue(sourceArray, a)) {
return false;
}
}
}
catch (e_14_1) { e_14 = { error: e_14_1 }; }
finally {
try {
if (toMatchArray_2_1 && !toMatchArray_2_1.done && (_a = toMatchArray_2.return)) _a.call(toMatchArray_2);
}
finally { if (e_14) throw e_14.error; }
}
return true;
var e_14, _a;
};
/**
* @param {?} index
* @return {?}
*/
FormView.prototype.removeTabDataAtIndex = /**
* @param {?} index
* @return {?}
*/
function (index) {
if (index < this.tabsData.length) {
this.tabsData.splice(index, 1);
}
if (index < this.originalTabsData.length) {
this.originalTabsData.splice(index, 1);
}
};
/**
* @param {?} data
* @return {?}
*/
FormView.prototype.getTabDataIndexes = /**
* @param {?} data
* @return {?}
*/
function (data) {
return this.getTabDataIndexesMatched(data, true);
};
/**
* @param {?} objects
* @return {?}
*/
FormView.prototype.getDefaultDataArray = /**
* @param {?} objects
* @return {?}
*/
function (objects) {
var /** @type {?} */ result = [];
if (objects !== null && typeof objects !== 'undefined') {
var /** @type {?} */ langField = null;
var /** @type {?} */ langFieldName = null;
if (this.editor !== null && typeof this.editor !== 'undefined') {
langFieldName = this.editor.getLanguageField();
}
try {
for (var objects_1 = tslib_1.__values(objects), objects_1_1 = objects_1.next(); !objects_1_1.done; objects_1_1 = objects_1.next()) {
var obj = objects_1_1.value;
if (obj[langFieldName] === null || typeof obj[langFieldName] === 'undefined') {
result.push(obj);
}
}
}
catch (e_15_1) { e_15 = { error: e_15_1 }; }
finally {
try {
if (objects_1_1 && !objects_1_1.done && (_a = objects_1.return)) _a.call(objects_1);
}
finally { if (e_15) throw e_15.error; }
}
}
return result;
var e_15, _a;
};
/**
* @param {?} data
* @param {?} isMatchAll
* @return {?}
*/
FormView.prototype.getTabDataIndexesMatched = /**
* @param {?} data
* @param {?} isMatchAll
* @return {?}
*/
function (data, isMatchAll) {
var /** @type {?} */ result = [];
if (data !== null && typeof data !== 'undefined') {
var /** @type {?} */ index = 0;
try {
for (var _a = tslib_1.__values(this.tabsData), _b = _a.next(); !_b.done; _b = _a.next()) {
var wrapperData = _b.value;
var /** @type {?} */ defObjArray = this.getDefaultDataArray(wrapperData.objects);
if (Array.isArray(data)) {
if (isMatchAll) {
if (this.isMatchAllValue(defObjArray, data)) {
result.push(index);
}
}
else {
if (this.isMatchLessOneValue(defObjArray, data)) {
result.push(index);
}
}
}
else {
if (isMatchAll) {
if (this.isMatchAllValue(defObjArray, [data])) {
result.push(index);
}
}
else {
if (this.isMatchLessOneValue(defObjArray, [data])) {
result.push(index);
}
}
}
index += 1;
}
}
catch (e_16_1) { e_16 = { error: e_16_1 }; }
finally {
try {
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
}
finally { if (e_16) throw e_16.error; }
}
}
return result;
var e_16, _c;
};
/**
* @return {?}
*/
FormView.prototype.reloadAllData = /**
* @return {?}
*/
function () {
// reload from editor
var /** @type {?} */ tabSize = this.tabsData.length;
for (var /** @type {?} */ i = 0; i < tabSize; i++) {
this.reloadDataAtIndex(i);
}
};
/**
* @param {?} index
* @return {?}
*/
FormView.prototype.reloadDataAtIndex = /**
* @param {?} index
* @return {?}
*/
function (index) {
var /** @type {?} */ dataArray = this.getTabData(index);
var /** @type {?} */ oriDataArray = this.getOriginalTabData(index);
var /** @type {?} */ editorData = [];
if (this.editor != null && this.editor.getData() != null && typeof this.editor.getData() !== 'undefined') {
editorData = this.editor.getData();
}
if (editorData.length <= 0) {
return;
}
var /** @type {?} */ comparator = this.editor.getDataComparator();
var /** @type {?} */ tempData = [];
var /** @type {?} */ cloneTempData = [];
try {
for (var oriDataArray_1 = tslib_1.__values(oriDataArray), oriDataArray_1_1 = oriDataArray_1.next(); !oriDataArray_1_1.done; oriDataArray_1_1 = oriDataArray_1.next()) {
var d = oriDataArray_1_1.value;
var /** @type {?} */ isAdding = false;
try {
for (var editorData_1 = tslib_1.__values(editorData), editorData_1_1 = editorData_1.next(); !editorData_1_1.done; editorData_1_1 = editorData_1.next()) {
var editorDT = editorData_1_1.value;
if (comparator !== null) {
if (comparator.equals(d, editorDT)) {
tempData.push(editorDT);
var /** @type {?} */ cloneData = JSON.parse(JSON.stringify(editorDT));
cloneTempData.push(cloneData);
isAdding = true;
break;
}
}
}
}
catch (e_17_1) { e_17 = { error: e_17_1 }; }
finally {
try {
if (editorData_1_1 && !editorData_1_1.done && (_a = editorData_1.return)) _a.call(editorData_1);
}
finally { if (e_17) throw e_17.error; }
}
if (!isAdding) {
tempData.push(d);
var /** @type {?} */ cloneData = JSON.parse(JSON.stringify(d));
cloneTempData.push(cloneData);
}
}
}
catch (e_18_1) { e_18 = { error: e_18_1 }; }
finally {
try {
if (oriDataArray_1_1 && !oriDataArray_1_1.done && (_b = oriDataArray_1.return)) _b.call(oriDataArray_1);
}
finally { if (e_18) throw e_18.error; }
}
if (index < this.originalTabsData.length) {
this.originalTabsData[index] = tempData;
}
if (index < this.tabsData.length) {
this.tabsData[index].objects = cloneTempData;
}
var e_18, _b, e_17, _a;
};
/**
* @param {?} index
* @return {?}
*/
FormView.prototype.reloadTabIndex = /**
* @param {?} index
* @return {?}
*/
function (index) {
if (index === null || typeof index === 'undefined' || index <= -1) {
return;
}
this.reloadDataAtIndex(index);
if (index < this.tabsData.length) {
var /** @type {?} */ tabData = this.tabsData[index];
// update data in tab
this.tabPane.setTabData(index, tabData);
}
};
/**
* @return {?}
*/
FormView.prototype.reloadAllTab = /**
* @return {?}
*/
function () {
this.reloadAllData();
for (var /** @type {?} */ i = 0; i < this.tabsData.length; i++) {
this.tabPane.setTabData(i, this.tabsData[i]);
}
};
/**
* @param {?} index
* @return {?}
*/
FormView.prototype.getOriginalTabData = /**
* @param {?} index
* @return {?}
*/
function (index) {
if (index == null) {
return [];
}
if (index < this.originalTabsData.length) {
return this.originalTabsData[index];
}
return [];
};
/**
* @return {?}
*/
FormView.prototype.onViewSettingLoaded = /**
* @return {?}
*/
function () {
this.reloadAllTab();
};
/**
* @param {?} $event
* @return {?}
*/
FormView.prototype.onNewTabBtnClick = /**
* @param {?} $event
* @return {?}
*/
function ($event) {
// do sth
};
/**
* @param {?} $event
* @return {?}
*/
FormView.prototype.onTabChange = /**
* @param {?} $event
* @return {?}
*/
function ($event) {
// tab change
};
/**
* @return {?}
*/
FormView.prototype.isShowMoreMenu = /**
* @return {?}
*/
function () {
return this.showMoreMenu;
};
/**
* @param {?} $event
* @return {?}
*/
FormView.prototype.onTabMoved = /**
* @param {?} $event
* @return {?}
*/
function ($event) {
var /** @type {?} */ evData = null;
if ($event.detail !== null && typeof $event.detail !== 'undefined') {
evData = $event.detail.data;
}
if (evData !== null && typeof evData !== 'undefined') {
var /** @type {?} */ fromIndex = evData.fromIndex;
var /** @type {?} */ toIndex = evData.toIndex;
ArrayUtils.move(this.tabsData, fromIndex, toIndex);
ArrayUtils.move(this.originalTabsData, fromIndex, toIndex);
}
};
/**
* @param {?} $event
* @return {?}
*/
FormView.prototype.onTabAdded = /**
* @param {?} $event
* @return {?}
*/
function ($event) {
var /** @type {?} */ evData = null;
if ($event.detail !== null && typeof $event.detail !== 'undefined') {
evData = $event.detail.data;
}
if (evData !== null && typeof evData !== 'undefined') {
var /** @type {?} */ tBody = evData.tabBody;
var /** @type {?} */ tHeader = evData.tabHeader;
if (tBody !== null && typeof tBody !== 'undefined') {
var /** @type {?} */ hasData = false;
if (typeof tBody.getData === 'function') {
hasData = (tBody.getData() !== null && typeof tBody.getData() !== 'undefined') ? true : false;
}
// if no data set new data
if (!hasData && typeof tBody.setData === 'function') {
// init {}
// let newObj: any = {};
var /** @type {?} */ newObj = this.editor.newDataObject();
var /** @type {?} */ tBodyData = this.getWrapDataObject([newObj]); // new value
this.tabsData.push(tBodyData);
this.originalTabsData.push([newObj]); // add new value
tBody.setData(tBodyData);
if (tHeader !== null && typeof tHeader !== 'undefined') {
if (typeof tHeader.setData === 'function') {
tHeader.setData(tBodyData);
}
}
}
}
}
};
/**
* @param {?} data
* @return {?}
*/
FormView.prototype.createTab = /**
* @param {?} data
* @return {?}
*/
function (data) {
var /** @type {?} */ newObj = this.editor.newDataObject();
var /** @type {?} */ tBodyData = this.getWrapDataObject([newObj]);
if (data !== null && typeof data !== 'undefined') {
if (Array.isArray(data)) {
var /** @type {?} */ cloneArray = [];
try {
for (var data_3 = tslib_1.__values(data), data_3_1 = data_3.next(); !data_3_1.done; data_3_1 = data_3.next()) {
var item = data_3_1.value;
var /** @type {?} */ cloneData = JSON.parse(JSON.stringify(item));
cloneArray.push(cloneData);
}
}
catch (e_19_1) { e_19 = { error: e_19_1 }; }
finally {
try {
if (data_3_1 && !data_3_1.done && (_a = data_3.return)) _a.call(data_3);
}
finally { if (e_19) throw e_19.error; }
}
tBodyData = this.getWrapDataObject(cloneArray);
this.originalTabsData.push(data);
}
else {
var /** @type {?} */ cloneData = JSON.parse(JSON.stringify(data));
tBodyData = this.getWrapDataObject([cloneData]);
this.originalTabsData.push([data]);
}
}
else {
this.originalTabsData.push([newObj]);
}
var /** @type {?} */ tabName = this.generateTabLabel(tBodyData.objects);
var /** @type {?} */ labelField = null;
this.tabsData.push(tBodyData);
var /** @type {?} */ tModel = new TabModel(tabName, null, this.tabComponentType, this.tabComponentModel, tBodyData, labelField, null, null);
this.tabPane.addTab(tModel);
var e_19, _a;
};
/**
* @param {?} data
* @return {?}
*/
FormView.prototype.closeTab = /**
* @param {?} data
* @return {?}
*/
function (data) {
// find index from data
var /** @type {?} */ index = this.getTabDataIndex(data);
this.closeTabAtIndex(index);
};
/**
* @param {?} index
* @return {?}
*/
FormView.prototype.closeTabAtIndex = /**
* @param {?} index
* @return {?}
*/
function (index) {
var _this = this;
// remove dirty
var /** @type {?} */ tModels = this.tabPane.getTabModels();
if (index > -1 && index < tModels.length) {
// is dirty
var /** @type {?} */ isDirty = this.isTabDirty(index);
if (isDirty) {
// dialog
this.dialogService.showConfirmDialog('Confirm close Tab', 'Data unsaved confirm close ?', true).then(function (result) {
var /** @type {?} */ tempIndex = index;
if (result == 1) {
// ok close
var /** @type {?} */ tempModel = tModels[tempIndex];
_this.tabPane.closeTabAtIndex(tempIndex);
_this.removeTabDataAtIndex(tempIndex);
}
else if (result == -1) {
// cancel not to change view
return;
}
else {
// no option set tap to index
// no option set tap to index
_this.tabPane.showTabAtIndex(tempIndex);
}
});
return;
}
}
// close tab
this.tabPane.closeTabAtIndex(index);
this.removeTabDataAtIndex(index);
};
/**
* @return {?}
*/
FormView.prototype.getTabsCount = /**
* @return {?}
*/
function () {
return this.tabPane.getTabsCount();
};
/**
* @param {?} model
* @return {?}
*/
FormView.prototype.getTabModelIndex = /**
* @param {?} model
* @return {?}
*/
function (model) {
return this.tabPane.getTabModelIndex(model);
};
/**
* @param {?} index
* @return {?}
*/
FormView.prototype.getTabModelByIndex = /**
* @param {?} index
* @return {?}
*/
function (index) {
if (index === null || typeof index === 'undefined' || index <= -1) {
return null;
}
var /** @type {?} */ tModels = this.tabPane.getTabModels();
if (tModels !== null && typeof tModels !== 'undefined') {
if (index < tModels.length) {
return tModels[index];
}
}
return null;
};
/**
* @param {?} data
* @return {?}
*/
FormView.prototype.getTabDataIndex = /**
* @param {?} data
* @return {?}
*/
function (data) {
var /** @type {?} */ indexArray = this.getTabDataIndexes(data);
if (indexArray.length > 0) {
return indexArray[0];
}
return -1;
};
/**
* @param {?} index
* @return {?}
*/
FormView.prototype.getTabData = /**
* @param {?} index
* @return {?}
*/
function (index) {
if (index == null || index <= -1) {
return [];
}
if (index < this.tabsData.length) {
return this.tabsData[index].objects;
}
return [];
};
/**
* @param {?} index
* @return {?}
*/
FormView.prototype.showTabAtIndex = /**
* @param {?} index
* @return {?}
*/
function (index) {
if (index == null || index <= -1) {
return null;
}
this.tabPane.showTabAtIndex(index);
};
/**
* @param {?} data
* @return {?}
*/
FormView.prototype.showTabByData = /**
* @param {?} data
* @return {?}
*/
function (data) {
var /** @type {?} */ indexes = this.getTabDataIndexes(data);
var /** @type {?} */ inTab = -1;
if (indexes.length > 0) {
if (indexes.length > 1) {
try {
// close other and open new one
for (var indexes_1 = tslib_1.__values(indexes), indexes_1_1 = indexes_1.next(); !indexes_1_1.done; indexes_1_1 = indexes_1.next()) {
var idx = indexes_1_1.value;
this.closeTabAtIndex(idx);
}
}
catch (e_20_1) { e_20 = { error: e_20_1 }; }
finally {
try {
if (indexes_1_1 && !indexes_1_1.done && (_a = indexes_1.return)) _a.call(indexes_1);
}
finally { if (e_20) throw e_20.error; }
}
}
else {
inTab = indexes[0];
}
}
else {
inTab = this.getTabDataIndex(data);
}
// close other and open new one
if (inTab === -1 && Array.isArray(data) && data.length > 1) {
try {
for (var data_4 = tslib_1.__values(data), data_4_1 = data_4.next(); !data_4_1.done; data_4_1 = data_4.next()) {
var d = data_4_1.value;
var /** @type {?} */ idx = this.getTabDataIndex(d);
this.closeTabAtIndex(idx);
}
}
catch (e_21_1) { e_21 = { error: e_21_1 }; }
finally {
try {
if (data_4_1 && !data_4_1.done && (_b = data_4.return)) _b.call(data_4);
}
finally { if (e_21) throw e_21.error; }
}
}
if (inTab > -1) {
this.showTabAtIndex(inTab);
}
else {
this.createTab(data);
var /** @type {?} */ allTabsCount = this.getTabsCount();
if (allTabsCount > 0) {
this.showTabAtIndex(allTabsCount - 1);
}
}
var e_20, _a, e_21, _b;
};
/**
* @return {?}
*/
FormView.prototype.getCurrentTabIndex = /**
* @return {?}
*/
function () {
return this.tabPane.getCurrentTabIndex();
};
/**
* @return {?}
*/
FormView.prototype.getEditorDirtyData = /**
* @return {?}
*/
function () {
var _this = this;
return new Promise(function (resolve, reject) {
var /** @type {?} */ dirtyArray = _this.getAllDirtyData();
resolve(dirtyArray);
});
};
/**
* @return {?}
*/
FormView.prototype.getSelectedData = /**
* @return {?}
*/
function () {
var _this = this;
return new Promise(function (resolve, reject) {
var /** @type {?} */ selectedArray = [];
var /** @type {?} */ curTab = _this.getCurrentTabIndex();
var /** @type {?} */ tabDataArary = _this.getTabData(curTab);
if (tabDataArary !== null) {
selectedArray = tabDataArary;
}
resolve(selectedArray);
});
};
/**
* @return {?}
*/
FormView.prototype.selfSaveData = /**
* @return {?}
*/
function () {
};
/**
* @return {?}
*/
FormView.prototype.selfResetData = /**
* @return {?}
*/
function () {
};
/**
* @return {?}
*/
FormView.prototype.doPreload = /**
* @return {?}
*/
function () { return new Promise(function (resolve, reject) { resolve(null); }); };
/**
* @return {?}
*/
FormView.prototype.doLoaded = /**
* @return {?}
*/
function () {
};
/**
* @return {?}
*/
FormView.prototype.isSelfDataDirty = /**
* @return {?}
*/
function () {
return false;
};
/**
* @return {?}
*/
FormView.prototype.getTabLabelGenerator = /**
* @return {?}
*/
function () {
return this.tabLabelGenerator;
};
/**
* @param {?} generator
* @return {?}
*/
FormView.prototype.setTabLabelGenerator = /**
* @param {?} generator
* @return {?}
*/
function (generator) {
this.tabLabelGenerator = generator;
};
/**
* @return {?}
*/
FormView.prototype.getTabComponentType = /**
* @return {?}
*/
function () {
return this.tabComponentType;
};
/**
* @return {?}
*/
FormView.prototype.getTabComponentModel = /**
* @return {?}
*/
function () {
return this.tabComponentModel;
};
/**
* @return {?}
*/
FormView.prototype.getCurrentHistoryState = /**
* @return {?}
*/
function () {
return this.tabsData;
};
/**
* @param {?} history
* @param {?} state
* @return {?}
*/
FormView.prototype.loadHistoryState = /**
* @param {?} history
* @param {?} state
* @return {?}
*/
function (history, state) {
if (history === null || typeof history === 'undefined') {
return Promise.reject(new Error('The "history" cannot be "null" or "undefined".'));
}
return new Promise(function (resolve, reject) {
try {
resolve();
}
catch (/** @type {?} */ e) {
reject(e);
}
});
};