UNPKG

com.phloxui

Version:

PhloxUI Ng2+ Framework

1,335 lines (1,334 loc) 126 kB
/** * @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); } }); };