UNPKG

@stratio/egeo

Version:
135 lines 14.7 kB
/** * @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'; export class StDynamicTableUtils { /** * @param {?} jsonSchema * @param {?=} uiDefinitions * @return {?} */ static getHeaderFieldsFromJsonSchema(jsonSchema, uiDefinitions) { /** @type {?} */ const fields = []; if (jsonSchema && jsonSchema.properties) { /** @type {?} */ const properties = Object.keys(jsonSchema.properties); if (properties) { properties.forEach((/** * @param {?} _propertyKey * @return {?} */ _propertyKey => { /** @type {?} */ const _property = jsonSchema.properties[_propertyKey]; if (_property && _property.type !== 'object') { /** @type {?} */ const uiDefinition = uiDefinitions && uiDefinitions[_propertyKey]; /** @type {?} */ const visible = !uiDefinition || uiDefinition.visible !== false; if (visible) { /** @type {?} */ const filters = StDynamicTableUtils.getHeaderFiltersFromJsonSchema(_property, uiDefinition); /** @type {?} */ const 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 {?} */ static getHeaderFiltersFromJsonSchema(propertyDefinition, uiDefinition) { /** @type {?} */ let filters; if (propertyDefinition.enum && propertyDefinition.enum.length) { filters = { title: propertyDefinition.title, filterConfig: [] }; propertyDefinition.enum.forEach((/** * @param {?} _value * @return {?} */ _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 {?} */ static formatDate(date, format, locale) { try { return formatDate(date, format, locale); } catch (e) { return date; } } /** * @private * @param {?} key * @param {?} type * @param {?} jsonSchema * @param {?} uiDefinition * @return {?} */ static _getTypes(key, type, jsonSchema, uiDefinition) { if (uiDefinition && uiDefinition.group_field && uiDefinition.group_field.view) { /** @type {?} */ const fields = uiDefinition.group_field.view.split(' - '); return fields.map((/** * @param {?} field * @return {?} */ field => ({ field: field, type: jsonSchema.properties[field] ? String(jsonSchema.properties[field].type) : '' }))); } return [{ field: key, type: type }]; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3QtZHluYW1pYy10YWJsZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzdHJhdGlvL2VnZW8vIiwic291cmNlcyI6WyJsaWIvc3QtZHluYW1pYy10YWJsZS91dGlscy9zdC1keW5hbWljLXRhYmxlLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQVlBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUs3QyxNQUFNLE9BQU8sbUJBQW1COzs7Ozs7SUFFdEIsTUFBTSxDQUFDLDZCQUE2QixDQUFDLFVBQXVCLEVBQUUsYUFBMkM7O2NBQ3ZHLE1BQU0sR0FBMkIsRUFBRTtRQUV6QyxJQUFJLFVBQVUsSUFBSSxVQUFVLENBQUMsVUFBVSxFQUFFOztrQkFDaEMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQztZQUNyRCxJQUFJLFVBQVUsRUFBRTtnQkFDYixVQUFVLENBQUMsT0FBTzs7OztnQkFBQyxZQUFZLENBQUMsRUFBRTs7MEJBQ3pCLFNBQVMsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQztvQkFDckQsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7OzhCQUNyQyxZQUFZLEdBQWtDLGFBQWEsSUFBSSxhQUFhLENBQUMsWUFBWSxDQUFDOzs4QkFDMUYsT0FBTyxHQUFZLENBQUMsWUFBWSxJQUFJLFlBQVksQ0FBQyxPQUFPLEtBQUssS0FBSzt3QkFDeEUsSUFBSSxPQUFPLEVBQUU7O2tDQUNKLE9BQU8sR0FBbUIsbUJBQW1CLENBQUMsOEJBQThCLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQzs7a0NBQ3JHLFVBQVUsR0FBRyxZQUFZLElBQUksYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVE7NEJBRXZFLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0NBQ1QsRUFBRSxFQUFFLFlBQVk7Z0NBQ2hCLEtBQUss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QUMsQ0FBQyxDQUFDLENBQUMsRUFBRTthQUNyRixDQUNILEVBQUMsQ0FBQztTQUNMO1FBQ0QsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogwqkgMjAxNyBTdHJhdGlvIEJpZyBEYXRhIEluYy4sIFN1Y3Vyc2FsIGVuIEVzcGHDsWEuXG4gKlxuICogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTtcbiAqIHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuXG4gKiBTZWUgdGhlIHRlcm1zIG9mIHRoZSBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAuXG4gKi9cblxuaW1wb3J0IHsgSlNPTlNjaGVtYTQgfSBmcm9tICdqc29uLXNjaGVtYSc7XG5pbXBvcnQgeyBmb3JtYXREYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgU3REeW5hbWljVGFibGVIZWFkZXIsIFN0RHluYW1pY1RhYmxlVUlTcGVjaWZpY2F0aW9uLCBTdER5bmFtaWNUYWJsZVVzZXJJbnRlcmZhY2UgfSBmcm9tICcuLi9zdC1keW5hbWljLXRhYmxlLm1vZGVsJztcbmltcG9ydCB7IFN0RmlsdGVySGVhZGVyIH0gZnJvbSAnLi4vLi4vc3QtdGFibGUvc2hhcmVkL3RhYmxlLWhlYWRlci5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY2xhc3MgU3REeW5hbWljVGFibGVVdGlscyB7XG5cbiAgIHB1YmxpYyBzdGF0aWMgZ2V0SGVhZGVyRmllbGRzRnJvbUpzb25TY2hlbWEoanNvblNjaGVtYTogSlNPTlNjaGVtYTQsIHVpRGVmaW5pdGlvbnM/OiBTdER5bmFtaWNUYWJsZVVzZXJJbnRlcmZhY2UpOiBTdER5bmFtaWNUYWJsZUhlYWRlcltdIHtcbiAgICAgIGNvbnN0IGZpZWxkczogU3REeW5hbWljVGFibGVIZWFkZXJbXSA9IFtdO1xuXG4gICAgICBpZiAoanNvblNjaGVtYSAmJiBqc29uU2NoZW1hLnByb3BlcnRpZXMpIHtcbiAgICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSBPYmplY3Qua2V5cyhqc29uU2NoZW1hLnByb3BlcnRpZXMpO1xuICAgICAgICAgaWYgKHByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIHByb3BlcnRpZXMuZm9yRWFjaChfcHJvcGVydHlLZXkgPT4ge1xuICAgICAgICAgICAgICAgY29uc3QgX3Byb3BlcnR5ID0ganNvblNjaGVtYS5wcm9wZXJ0aWVzW19wcm9wZXJ0eUtleV07XG4gICAgICAgICAgICAgICBpZiAoX3Byb3BlcnR5ICYmIF9wcm9wZXJ0eS50eXBlICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgY29uc3QgdWlEZWZpbml0aW9uOiBTdER5bmFtaWNUYWJsZVVJU3BlY2lmaWNhdGlvbiA9IHVpRGVmaW5pdGlvbnMgJiYgdWlEZWZpbml0aW9uc1tfcHJvcGVydHlLZXldO1xuICAgICAgICAgICAgICAgICAgY29uc3QgdmlzaWJsZTogYm9vbGVhbiA9ICF1aURlZmluaXRpb24gfHwgdWlEZWZpbml0aW9uLnZpc2libGUgIT09IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgaWYgKHZpc2libGUpIHtcbiAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlcnM6IFN0RmlsdGVySGVhZGVyID0gU3REeW5hbWljVGFibGVVdGlscy5nZXRIZWFkZXJGaWx0ZXJzRnJvbUpzb25TY2hlbWEoX3Byb3BlcnR5LCB1aURlZmluaXRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNTb3J0YWJsZSA9IHVpRGVmaW5pdGlvbiAmJiB1aURlZmluaXRpb25zW19wcm9wZXJ0eUtleV0uc29ydGFibGU7XG5cbiAgICAgICAgICAgICAgICAgICAgIGZpZWxkcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBfcHJvcGVydHlLZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogX3Byb3BlcnR5LnRpdGxlIHx8IF9wcm9wZXJ0eUtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZrOiB1aURlZmluaXRpb24gJiYgdWlEZWZpbml0aW9uLmZrLFxuICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXA6IHVpRGVmaW5pdGlvbiAmJiB1aURlZmluaXRpb24uZ3JvdXBfZmllbGQgPyB1aURlZmluaXRpb24uZ3JvdXBfZmllbGQudmlldyA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiBmaWx0ZXJzLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyYWJsZTogZmlsdGVycyAmJiAoZmlsdGVycy50ZW1wbGF0ZVJlZiAhPT0gdW5kZWZpbmVkIHx8IChmaWx0ZXJzLmZpbHRlckNvbmZpZyAmJiBmaWx0ZXJzLmZpbHRlckNvbmZpZy5sZW5ndGggPiAwKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBzb3J0YWJsZTogaXNTb3J0YWJsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IF9wcm9wZXJ0eS50eXBlID8gdGhpcy5fZ2V0VHlwZXMoX3Byb3BlcnR5S2V5LCBfcHJvcGVydHkudHlwZS50b1N0cmluZygpLCBqc29uU2NoZW1hLCB1aURlZmluaXRpb24pIDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsaWNrYWJsZTogdWlEZWZpbml0aW9uICYmIHVpRGVmaW5pdGlvbi5jbGlja2FibGVcbiAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmllbGRzO1xuICAgfVxuXG4gICBwdWJsaWMgc3RhdGljIGdldEhlYWRlckZpbHRlcnNGcm9tSnNvblNjaGVtYShwcm9wZXJ0eURlZmluaXRpb246IEpTT05TY2hlbWE0LCB1aURlZmluaXRpb246IFN0RHluYW1pY1RhYmxlVUlTcGVjaWZpY2F0aW9uKTogU3RGaWx0ZXJIZWFkZXIge1xuICAgICAgbGV0IGZpbHRlcnM6IFN0RmlsdGVySGVhZGVyO1xuICAgICAgaWYgKHByb3BlcnR5RGVmaW5pdGlvbi5lbnVtICYmIHByb3BlcnR5RGVmaW5pdGlvbi5lbnVtLmxlbmd0aCkge1xuICAgICAgICAgZmlsdGVycyA9IHtcbiAgICAgICAgICAgIHRpdGxlOiBwcm9wZXJ0eURlZmluaXRpb24udGl0bGUsXG4gICAgICAgICAgICBmaWx0ZXJDb25maWc6IFtdXG4gICAgICAgICB9O1xuICAgICAgICAgcHJvcGVydHlEZWZpbml0aW9uLmVudW0uZm9yRWFjaChfdmFsdWUgPT4ge1xuICAgICAgICAgICAgZmlsdGVycy5maWx0ZXJDb25maWcucHVzaCh7XG4gICAgICAgICAgICAgICBpZDogPGFueT4gX3ZhbHVlLFxuICAgICAgICAgICAgICAgbmFtZTogPGFueT4gX3ZhbHVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmICh1aURlZmluaXRpb24gJiYgdWlEZWZpbml0aW9uLnRlbXBsYXRlUmVmKSB7XG4gICAgICAgICBmaWx0ZXJzID0ge1xuICAgICAgICAgICAgdGl0bGU6IHByb3BlcnR5RGVmaW5pdGlvbi50aXRsZSxcbiAgICAgICAgICAgIHRlbXBsYXRlUmVmOiB1aURlZmluaXRpb24udGVtcGxhdGVSZWZcbiAgICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaWx0ZXJzO1xuICAgfVxuXG4gICBwdWJsaWMgc3RhdGljIGZvcm1hdERhdGUoZGF0ZTogc3RyaW5nLCBmb3JtYXQ6IHN0cmluZywgbG9jYWxlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgdHJ5IHtcbiAgICAgICAgIHJldHVybiBmb3JtYXREYXRlKGRhdGUsIGZvcm1hdCwgbG9jYWxlKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgIHJldHVybiBkYXRlO1xuICAgICAgfVxuICAgfVxuXG4gICBwcml2YXRlIHN0YXRpYyBfZ2V0VHlwZXMoa2V5OiBzdHJpbmcsIHR5cGU6IHN0cmluZywganNvblNjaGVtYTogSlNPTlNjaGVtYTQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlEZWZpbml0aW9uOiBTdER5bmFtaWNUYWJsZVVJU3BlY2lmaWNhdGlvbik6IHsgZmllbGQ6IHN0cmluZzsgdHlwZTogc3RyaW5nIH1bXSB7XG4gICAgICBpZiAodWlEZWZpbml0aW9uICYmIHVpRGVmaW5pdGlvbi5ncm91cF9maWVsZCAmJiB1aURlZmluaXRpb24uZ3JvdXBfZmllbGQudmlldykge1xuICAgICAgICAgY29uc3QgZmllbGRzID0gdWlEZWZpbml0aW9uLmdyb3VwX2ZpZWxkLnZpZXcuc3BsaXQoJyAtICcpO1xuICAgICAgICAgcmV0dXJuIGZpZWxkcy5tYXAoZmllbGQgPT4gKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgZmllbGQ6IGZpZWxkLFxuICAgICAgICAgICAgICAgdHlwZToganNvblNjaGVtYS5wcm9wZXJ0aWVzW2ZpZWxkXSA/IFN0cmluZyhqc29uU2NoZW1hLnByb3BlcnRpZXNbZmllbGRdLnR5cGUpIDogJydcbiAgICAgICAgICAgIH1cbiAgICAgICAgICkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFt7IGZpZWxkOiBrZXksIHR5cGU6IHR5cGUgfV07XG4gICB9XG59XG4iXX0=