@stratio/egeo
Version:
164 lines • 15.5 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/st-dynamic-table/utils/st-dynamic-table.utils.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/*
* © 2017 Stratio Big Data Inc., Sucursal en España.
*
* This software is licensed under the Apache License, Version 2.0.
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the terms of the License for more details.
*
* SPDX-License-Identifier: Apache-2.0.
*/
import { formatDate } from '@angular/common';
var StDynamicTableUtils = /** @class */ (function () {
function StDynamicTableUtils() {
}
/**
* @param {?} jsonSchema
* @param {?=} uiDefinitions
* @return {?}
*/
StDynamicTableUtils.getHeaderFieldsFromJsonSchema = /**
* @param {?} jsonSchema
* @param {?=} uiDefinitions
* @return {?}
*/
function (jsonSchema, uiDefinitions) {
var _this = this;
/** @type {?} */
var fields = [];
if (jsonSchema && jsonSchema.properties) {
/** @type {?} */
var properties = Object.keys(jsonSchema.properties);
if (properties) {
properties.forEach((/**
* @param {?} _propertyKey
* @return {?}
*/
function (_propertyKey) {
/** @type {?} */
var _property = jsonSchema.properties[_propertyKey];
if (_property && _property.type !== 'object') {
/** @type {?} */
var uiDefinition = uiDefinitions && uiDefinitions[_propertyKey];
/** @type {?} */
var visible = !uiDefinition || uiDefinition.visible !== false;
if (visible) {
/** @type {?} */
var filters = StDynamicTableUtils.getHeaderFiltersFromJsonSchema(_property, uiDefinition);
/** @type {?} */
var isSortable = uiDefinition && uiDefinitions[_propertyKey].sortable;
fields.push({
id: _propertyKey,
label: _property.title || _propertyKey,
fk: uiDefinition && uiDefinition.fk,
group: uiDefinition && uiDefinition.group_field ? uiDefinition.group_field.view : null,
filters: filters,
filterable: filters && (filters.templateRef !== undefined || (filters.filterConfig && filters.filterConfig.length > 0)),
sortable: isSortable,
type: _property.type ? _this._getTypes(_propertyKey, _property.type.toString(), jsonSchema, uiDefinition) : null,
clickable: uiDefinition && uiDefinition.clickable
});
}
}
}));
}
}
return fields;
};
/**
* @param {?} propertyDefinition
* @param {?} uiDefinition
* @return {?}
*/
StDynamicTableUtils.getHeaderFiltersFromJsonSchema = /**
* @param {?} propertyDefinition
* @param {?} uiDefinition
* @return {?}
*/
function (propertyDefinition, uiDefinition) {
/** @type {?} */
var filters;
if (propertyDefinition.enum && propertyDefinition.enum.length) {
filters = {
title: propertyDefinition.title,
filterConfig: []
};
propertyDefinition.enum.forEach((/**
* @param {?} _value
* @return {?}
*/
function (_value) {
filters.filterConfig.push({
id: (/** @type {?} */ (_value)),
name: (/** @type {?} */ (_value))
});
}));
}
else if (uiDefinition && uiDefinition.templateRef) {
filters = {
title: propertyDefinition.title,
templateRef: uiDefinition.templateRef
};
}
return filters;
};
/**
* @param {?} date
* @param {?} format
* @param {?} locale
* @return {?}
*/
StDynamicTableUtils.formatDate = /**
* @param {?} date
* @param {?} format
* @param {?} locale
* @return {?}
*/
function (date, format, locale) {
try {
return formatDate(date, format, locale);
}
catch (e) {
return date;
}
};
/**
* @private
* @param {?} key
* @param {?} type
* @param {?} jsonSchema
* @param {?} uiDefinition
* @return {?}
*/
StDynamicTableUtils._getTypes = /**
* @private
* @param {?} key
* @param {?} type
* @param {?} jsonSchema
* @param {?} uiDefinition
* @return {?}
*/
function (key, type, jsonSchema, uiDefinition) {
if (uiDefinition && uiDefinition.group_field && uiDefinition.group_field.view) {
/** @type {?} */
var fields = uiDefinition.group_field.view.split(' - ');
return fields.map((/**
* @param {?} field
* @return {?}
*/
function (field) { return ({
field: field,
type: jsonSchema.properties[field] ? String(jsonSchema.properties[field].type) : ''
}); }));
}
return [{ field: key, type: type }];
};
return StDynamicTableUtils;
}());
export { StDynamicTableUtils };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3QtZHluYW1pYy10YWJsZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzdHJhdGlvL2VnZW8vIiwic291cmNlcyI6WyJsaWIvc3QtZHluYW1pYy10YWJsZS91dGlscy9zdC1keW5hbWljLXRhYmxlLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQVlBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUs3QztJQUFBO0lBZ0ZBLENBQUM7Ozs7OztJQTlFZ0IsaURBQTZCOzs7OztJQUEzQyxVQUE0QyxVQUF1QixFQUFFLGFBQTJDO1FBQWhILGlCQWdDQzs7WUEvQlEsTUFBTSxHQUEyQixFQUFFO1FBRXpDLElBQUksVUFBVSxJQUFJLFVBQVUsQ0FBQyxVQUFVLEVBQUU7O2dCQUNoQyxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO1lBQ3JELElBQUksVUFBVSxFQUFFO2dCQUNiLFVBQVUsQ0FBQyxPQUFPOzs7O2dCQUFDLFVBQUEsWUFBWTs7d0JBQ3RCLFNBQVMsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQztvQkFDckQsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7OzRCQUNyQyxZQUFZLEdBQWtDLGFBQWEsSUFBSSxhQUFhLENBQUMsWUFBWSxDQUFDOzs0QkFDMUYsT0FBTyxHQUFZLENBQUMsWUFBWSxJQUFJLFlBQVksQ0FBQyxPQUFPLEtBQUssS0FBSzt3QkFDeEUsSUFBSSxPQUFPLEVBQUU7O2dDQUNKLE9BQU8sR0FBbUIsbUJBQW1CLENBQUMsOEJBQThCLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQzs7Z0NBQ3JHLFVBQVUsR0FBRyxZQUFZLElBQUksYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVE7NEJBRXZFLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0NBQ1QsRUFBRSxFQUFFLFlBQVk7Z0NB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LENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7YUFDckYsQ0FDSCxFQUwwQixDQUsxQixFQUFDLENBQUM7U0FDTDtRQUNELE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNKLDBCQUFDO0FBQUQsQ0FBQyxBQWhGRCxJQWdGQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiDCqSAyMDE3IFN0cmF0aW8gQmlnIERhdGEgSW5jLiwgU3VjdXJzYWwgZW4gRXNwYcOxYS5cbiAqXG4gKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAuXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZO1xuICogd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS5cbiAqIFNlZSB0aGUgdGVybXMgb2YgdGhlIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMC5cbiAqL1xuXG5pbXBvcnQgeyBKU09OU2NoZW1hNCB9IGZyb20gJ2pzb24tc2NoZW1hJztcbmltcG9ydCB7IGZvcm1hdERhdGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBTdER5bmFtaWNUYWJsZUhlYWRlciwgU3REeW5hbWljVGFibGVVSVNwZWNpZmljYXRpb24sIFN0RHluYW1pY1RhYmxlVXNlckludGVyZmFjZSB9IGZyb20gJy4uL3N0LWR5bmFtaWMtdGFibGUubW9kZWwnO1xuaW1wb3J0IHsgU3RGaWx0ZXJIZWFkZXIgfSBmcm9tICcuLi8uLi9zdC10YWJsZS9zaGFyZWQvdGFibGUtaGVhZGVyLmludGVyZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBTdER5bmFtaWNUYWJsZVV0aWxzIHtcblxuICAgcHVibGljIHN0YXRpYyBnZXRIZWFkZXJGaWVsZHNGcm9tSnNvblNjaGVtYShqc29uU2NoZW1hOiBKU09OU2NoZW1hNCwgdWlEZWZpbml0aW9ucz86IFN0RHluYW1pY1RhYmxlVXNlckludGVyZmFjZSk6IFN0RHluYW1pY1RhYmxlSGVhZGVyW10ge1xuICAgICAgY29uc3QgZmllbGRzOiBTdER5bmFtaWNUYWJsZUhlYWRlcltdID0gW107XG5cbiAgICAgIGlmIChqc29uU2NoZW1hICYmIGpzb25TY2hlbWEucHJvcGVydGllcykge1xuICAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IE9iamVjdC5rZXlzKGpzb25TY2hlbWEucHJvcGVydGllcyk7XG4gICAgICAgICBpZiAocHJvcGVydGllcykge1xuICAgICAgICAgICAgcHJvcGVydGllcy5mb3JFYWNoKF9wcm9wZXJ0eUtleSA9PiB7XG4gICAgICAgICAgICAgICBjb25zdCBfcHJvcGVydHkgPSBqc29uU2NoZW1hLnByb3BlcnRpZXNbX3Byb3BlcnR5S2V5XTtcbiAgICAgICAgICAgICAgIGlmIChfcHJvcGVydHkgJiYgX3Byb3BlcnR5LnR5cGUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCB1aURlZmluaXRpb246IFN0RHluYW1pY1RhYmxlVUlTcGVjaWZpY2F0aW9uID0gdWlEZWZpbml0aW9ucyAmJiB1aURlZmluaXRpb25zW19wcm9wZXJ0eUtleV07XG4gICAgICAgICAgICAgICAgICBjb25zdCB2aXNpYmxlOiBib29sZWFuID0gIXVpRGVmaW5pdGlvbiB8fCB1aURlZmluaXRpb24udmlzaWJsZSAhPT0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICBpZiAodmlzaWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyczogU3RGaWx0ZXJIZWFkZXIgPSBTdER5bmFtaWNUYWJsZVV0aWxzLmdldEhlYWRlckZpbHRlcnNGcm9tSnNvblNjaGVtYShfcHJvcGVydHksIHVpRGVmaW5pdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICBjb25zdCBpc1NvcnRhYmxlID0gdWlEZWZpbml0aW9uICYmIHVpRGVmaW5pdGlvbnNbX3Byb3BlcnR5S2V5XS5zb3J0YWJsZTtcblxuICAgICAgICAgICAgICAgICAgICAgZmllbGRzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IF9wcm9wZXJ0eUtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfcHJvcGVydHkudGl0bGUgfHwgX3Byb3BlcnR5S2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgZms6IHVpRGVmaW5pdGlvbiAmJiB1aURlZmluaXRpb24uZmssXG4gICAgICAgICAgICAgICAgICAgICAgICBncm91cDogdWlEZWZpbml0aW9uICYmIHVpRGVmaW5pdGlvbi5ncm91cF9maWVsZCA/IHVpRGVmaW5pdGlvbi5ncm91cF9maWVsZC52aWV3IDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IGZpbHRlcnMsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJhYmxlOiBmaWx0ZXJzICYmIChmaWx0ZXJzLnRlbXBsYXRlUmVmICE9PSB1bmRlZmluZWQgfHwgKGZpbHRlcnMuZmlsdGVyQ29uZmlnICYmIGZpbHRlcnMuZmlsdGVyQ29uZmlnLmxlbmd0aCA+IDApKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvcnRhYmxlOiBpc1NvcnRhYmxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogX3Byb3BlcnR5LnR5cGUgPyB0aGlzLl9nZXRUeXBlcyhfcHJvcGVydHlLZXksIF9wcm9wZXJ0eS50eXBlLnRvU3RyaW5nKCksIGpzb25TY2hlbWEsIHVpRGVmaW5pdGlvbikgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2thYmxlOiB1aURlZmluaXRpb24gJiYgdWlEZWZpbml0aW9uLmNsaWNrYWJsZVxuICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmaWVsZHM7XG4gICB9XG5cbiAgIHB1YmxpYyBzdGF0aWMgZ2V0SGVhZGVyRmlsdGVyc0Zyb21Kc29uU2NoZW1hKHByb3BlcnR5RGVmaW5pdGlvbjogSlNPTlNjaGVtYTQsIHVpRGVmaW5pdGlvbjogU3REeW5hbWljVGFibGVVSVNwZWNpZmljYXRpb24pOiBTdEZpbHRlckhlYWRlciB7XG4gICAgICBsZXQgZmlsdGVyczogU3RGaWx0ZXJIZWFkZXI7XG4gICAgICBpZiAocHJvcGVydHlEZWZpbml0aW9uLmVudW0gJiYgcHJvcGVydHlEZWZpbml0aW9uLmVudW0ubGVuZ3RoKSB7XG4gICAgICAgICBmaWx0ZXJzID0ge1xuICAgICAgICAgICAgdGl0bGU6IHByb3BlcnR5RGVmaW5pdGlvbi50aXRsZSxcbiAgICAgICAgICAgIGZpbHRlckNvbmZpZzogW11cbiAgICAgICAgIH07XG4gICAgICAgICBwcm9wZXJ0eURlZmluaXRpb24uZW51bS5mb3JFYWNoKF92YWx1ZSA9PiB7XG4gICAgICAgICAgICBmaWx0ZXJzLmZpbHRlckNvbmZpZy5wdXNoKHtcbiAgICAgICAgICAgICAgIGlkOiA8YW55PiBfdmFsdWUsXG4gICAgICAgICAgICAgICBuYW1lOiA8YW55PiBfdmFsdWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKHVpRGVmaW5pdGlvbiAmJiB1aURlZmluaXRpb24udGVtcGxhdGVSZWYpIHtcbiAgICAgICAgIGZpbHRlcnMgPSB7XG4gICAgICAgICAgICB0aXRsZTogcHJvcGVydHlEZWZpbml0aW9uLnRpdGxlLFxuICAgICAgICAgICAgdGVtcGxhdGVSZWY6IHVpRGVmaW5pdGlvbi50ZW1wbGF0ZVJlZlxuICAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZpbHRlcnM7XG4gICB9XG5cbiAgIHB1YmxpYyBzdGF0aWMgZm9ybWF0RGF0ZShkYXRlOiBzdHJpbmcsIGZvcm1hdDogc3RyaW5nLCBsb2NhbGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICB0cnkge1xuICAgICAgICAgcmV0dXJuIGZvcm1hdERhdGUoZGF0ZSwgZm9ybWF0LCBsb2NhbGUpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgcmV0dXJuIGRhdGU7XG4gICAgICB9XG4gICB9XG5cbiAgIHByaXZhdGUgc3RhdGljIF9nZXRUeXBlcyhrZXk6IHN0cmluZywgdHlwZTogc3RyaW5nLCBqc29uU2NoZW1hOiBKU09OU2NoZW1hNCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aURlZmluaXRpb246IFN0RHluYW1pY1RhYmxlVUlTcGVjaWZpY2F0aW9uKTogeyBmaWVsZDogc3RyaW5nOyB0eXBlOiBzdHJpbmcgfVtdIHtcbiAgICAgIGlmICh1aURlZmluaXRpb24gJiYgdWlEZWZpbml0aW9uLmdyb3VwX2ZpZWxkICYmIHVpRGVmaW5pdGlvbi5ncm91cF9maWVsZC52aWV3KSB7XG4gICAgICAgICBjb25zdCBmaWVsZHMgPSB1aURlZmluaXRpb24uZ3JvdXBfZmllbGQudmlldy5zcGxpdCgnIC0gJyk7XG4gICAgICAgICByZXR1cm4gZmllbGRzLm1hcChmaWVsZCA9PiAoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICBmaWVsZDogZmllbGQsXG4gICAgICAgICAgICAgICB0eXBlOiBqc29uU2NoZW1hLnByb3BlcnRpZXNbZmllbGRdID8gU3RyaW5nKGpzb25TY2hlbWEucHJvcGVydGllc1tmaWVsZF0udHlwZSkgOiAnJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gW3sgZmllbGQ6IGtleSwgdHlwZTogdHlwZSB9XTtcbiAgIH1cbn1cbiJdfQ==