UNPKG

dtable-utils

Version:

dtable common utils

115 lines (105 loc) 3.78 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var cellType = require('../constants/cell-type.js'); var column = require('../constants/column.js'); require('../constants/filter/filter-column-options.js'); require('../constants/filter/filter-modifier.js'); require('../constants/filter/filter-predicate.js'); require('../constants/filter/filter-is-within.js'); var formula = require('../constants/formula.js'); require('../constants/sort.js'); require('../constants/group.js'); /** * Get column type. * @param {object} column { type, ... } * @returns column type */ var getColumnType = function getColumnType(column) { var type = column.type, data = column.data; if (formula.FORMULA_COLUMN_TYPES_MAP[type]) { var _ref = data || {}, result_type = _ref.result_type, array_type = _ref.array_type; if (result_type === formula.FORMULA_RESULT_TYPE.ARRAY) { return array_type; } return result_type; } if (type === cellType.CellType.LINK) { var _ref2 = data || {}, _array_type = _ref2.array_type; return _array_type; } return type; }; /** * Get columns by type. * @param {array} columns * @param {string} columnType * @returns the target type columns, array */ var getColumnsByType = function getColumnsByType(columns, columnType) { if (!Array.isArray(columns) || !columnType) { return []; } return columns.filter(function (column) { return column.type === columnType; }); }; /** * Get column display_type * @param {object} column e.g. { type, data } * @returns {string} display_type e.g. 'phone' */ var getColumnDisplayType = function getColumnDisplayType(column) { if (!column) return ''; var _ref3 = column.data || {}, display_type = _ref3.display_type; return display_type || ''; }; /** * Get column display_type from array_data * @param {object} column e.g. { type, data } * @returns {string} display_type e.g. 'phone' */ var getFormulaColumnArrayDisplayType = function getFormulaColumnArrayDisplayType(column) { if (!column) return ''; var _ref4 = column.data || {}, result_type = _ref4.result_type, array_data = _ref4.array_data; if (!formula.FORMULA_COLUMN_TYPES_MAP[column.type] || result_type !== formula.FORMULA_RESULT_TYPE.ARRAY || !array_data) { return ''; } return array_data.display_type || ''; }; /** * Check whether is phone column: * - column type is text and data.display_type is phone * @param {object} column e.g. { type, data } * @returns true/false, bool */ var checkIsPhoneNumberColumn = function checkIsPhoneNumberColumn(column$1) { return column$1.type === cellType.CellType.TEXT && getColumnDisplayType(column$1) === column.TEXT_DISPLAY_TYPE_MAP.PHONE; }; /** * Check whether is phone column: * - column type is text and data.display_type is phone * - column type is link/link_formula and array_type is text and array_data.display_type is phone * @param {object} column e.g. { type, data } * @returns true/false, bool */ var checkIsDisplayAsPhoneNumberColumn = function checkIsDisplayAsPhoneNumberColumn(column$1) { if (getColumnType(column$1) !== cellType.CellType.TEXT) return false; var displayType = getColumnDisplayType(column$1); if (formula.FORMULA_COLUMN_TYPES_MAP[column$1.type]) { displayType = getFormulaColumnArrayDisplayType(column$1); } return displayType === column.TEXT_DISPLAY_TYPE_MAP.PHONE; }; exports.checkIsDisplayAsPhoneNumberColumn = checkIsDisplayAsPhoneNumberColumn; exports.checkIsPhoneNumberColumn = checkIsPhoneNumberColumn; exports.getColumnDisplayType = getColumnDisplayType; exports.getColumnType = getColumnType; exports.getColumnsByType = getColumnsByType; exports.getFormulaColumnArrayDisplayType = getFormulaColumnArrayDisplayType;