UNPKG

@syncfusion/ej2-treegrid

Version:
204 lines (203 loc) 7.37 kB
import { getObject } from '@syncfusion/ej2-grids'; import { DataManager, ODataAdaptor, UrlAdaptor } from '@syncfusion/ej2-data'; import { WebApiAdaptor, WebMethodAdaptor, CacheAdaptor } from '@syncfusion/ej2-data'; import { isNullOrUndefined } from '@syncfusion/ej2-base'; /** * @param {TreeGrid} parent - Tree Grid instance * @returns {boolean} - Specifies whether remote data binding */ export function isRemoteData(parent) { if (parent.dataSource instanceof DataManager) { var adaptor = parent.dataSource.adaptor; return (adaptor instanceof ODataAdaptor || (adaptor instanceof WebApiAdaptor) || (adaptor instanceof WebMethodAdaptor) || (adaptor instanceof CacheAdaptor) || adaptor instanceof UrlAdaptor); } return false; } /** * @param {TreeGrid | IGrid} parent - Tree Grid or Grid instance * @returns {boolean} - Returns whether custom binding */ export function isCountRequired(parent) { if (parent.dataSource && 'result' in parent.dataSource) { return true; } return false; } /** * @param {TreeGrid} parent - Tree Grid instance * @returns {boolean} - Returns whether checkbox column is enabled */ export function isCheckboxcolumn(parent) { for (var i = 0; i < parent.columns.length; i++) { if (parent.columns[parseInt(i.toString(), 10)].showCheckbox) { return true; } } return false; } /** * @param {TreeGrid} parent - Tree Grid instance * @returns {boolean} - Returns whether filtering and searching done */ export function isFilterChildHierarchy(parent) { if ((!isNullOrUndefined(parent.grid.searchSettings.key) && parent.grid.searchSettings.key !== '' && (parent.searchSettings.hierarchyMode === 'Child' || parent.searchSettings.hierarchyMode === 'None')) || (parent.allowFiltering && parent.grid.filterSettings.columns.length && (parent.filterSettings.hierarchyMode === 'Child' || parent.filterSettings.hierarchyMode === 'None'))) { return true; } return false; } /** * @param {Object} records - Define records for which parent records has to be found * @hidden * @returns {Object} - Returns parent records collection */ export function findParentRecords(records) { var datas = []; var recordsLength = Object.keys(records).length; for (var i = 0, len = recordsLength; i < len; i++) { var hasChild = getObject('hasChildRecords', records[parseInt(i.toString(), 10)]); if (hasChild) { datas.push(records[parseInt(i.toString(), 10)]); } } return datas; } /** * @param {TreeGrid} parent - Tree Grid instance * @returns {boolean} - Returns the expand status of record * @param {ITreeData} record - Define the record for which expand status has be found * @param {ITreeData[]} parents - Parent Data collection * @hidden */ export function getExpandStatus(parent, record, parents) { var parentRecord = isNullOrUndefined(record.parentItem) ? null : getParentData(parent, record.parentItem.uniqueID); var childParent; if (parentRecord != null) { if (parent.initialRender && !isNullOrUndefined(parentRecord[parent.expandStateMapping]) && !parentRecord[parent.expandStateMapping]) { parentRecord.expanded = false; return false; } else if (parentRecord.expanded === false) { return false; } else if (parentRecord.parentItem) { childParent = getParentData(parent, parentRecord.parentItem.uniqueID); if (childParent && parent.initialRender && !isNullOrUndefined(childParent[parent.expandStateMapping]) && !childParent[parent.expandStateMapping]) { childParent.expanded = false; return false; } if (childParent && childParent.expanded === false) { return false; } else if (childParent) { return getExpandStatus(parent, childParent, parents); } return true; } else { return true; } } else { return true; } } /** * @param {ITreeData} records - Define the record for which child records has to be found * @returns {Object[]} - Returns child records collection * @hidden */ export function findChildrenRecords(records) { var datas = []; if (isNullOrUndefined(records) || (!records.hasChildRecords && !isNullOrUndefined(records.childRecords) && !records.childRecords.length)) { return []; } if (!isNullOrUndefined(records.childRecords)) { var childRecords = records.childRecords.filter(function (item) { return !item.isSummaryRow; }); var keys = Object.keys(childRecords); for (var i = 0, len = keys.length; i < len; i++) { datas.push(childRecords[parseInt(i.toString(), 10)]); if (childRecords[parseInt(i.toString(), 10)].hasChildRecords || (!isNullOrUndefined(childRecords[parseInt(i.toString(), 10)].childRecords) && childRecords[parseInt(i.toString(), 10)].childRecords.length)) { datas = datas.concat(findChildrenRecords(childRecords[parseInt(i.toString(), 10)])); } } } return datas; } /** * @param {TreeGrid} parent - Tree Grid instance * @returns {boolean} - Returns whether local data binding */ export function isOffline(parent) { if (isRemoteData(parent)) { var dm = parent.dataSource; return !isNullOrUndefined(dm.ready); } return true; } /** * @param {Object[]} array - Defines the array to be cloned * @returns {Object[]} - Returns cloned array collection */ export function extendArray(array) { var objArr = []; var obj; var keys; for (var i = 0; array && i < array.length; i++) { keys = Object.keys(array[parseInt(i.toString(), 10)]); obj = {}; for (var j = 0; j < keys.length; j++) { obj[keys[parseInt(j.toString(), 10)]] = array[parseInt(i.toString(), 10)][keys[parseInt(j.toString(), 10)]]; } objArr.push(obj); } return objArr; } /** * @param {ITreeData} value - Defined the dirty data to be cleaned * @returns {ITreeData} - Returns cleaned original data */ export function getPlainData(value) { delete value.hasChildRecords; delete value.childRecords; delete value.index; delete value.parentItem; delete value.level; delete value.taskData; delete value.uniqueID; return value; } /** * @param {TreeGrid} parent - TreeGrid instance * @param {string} value - IdMapping field name * @param {boolean} requireFilter - Specified whether treegrid data is filtered * @returns {ITreeData} - Returns IdMapping matched record */ export function getParentData(parent, value, requireFilter) { if (requireFilter) { var idFilter = 'uniqueIDFilterCollection'; return parent["" + idFilter]["" + value]; } else { var id = 'uniqueIDCollection'; return parent["" + id]["" + value]; } } /** * @param {HTMLTableRowElement} el - Row element * @returns {boolean} - Returns whether hidden */ export function isHidden(el) { var style = window.getComputedStyle(el); return ((style.display === 'none') || (style.visibility === 'hidden')); }