@gooddata/js-utils
Advanced tools
Comparing version 3.10.7-alpha-khanh.le-kl-SD-978-2020-07-06T10-11-37-283Z to 3.10.7-alpha-khanh.le-kl-SD-978-2020-07-08T04-30-35-860Z
import { EmbeddedGdc } from '@gooddata/typings'; | ||
export declare const EXTERNAL_DATE_FORMAT = "YYYY-MM-DD"; | ||
export declare const EXTERNAL_DATE_FILTER_FORMAT = "YYYY-MM-DD"; | ||
export interface IExternalFiltersObject { | ||
@@ -4,0 +4,0 @@ attributeFilters: ITransformedAttributeFilterItem[]; |
@@ -6,3 +6,3 @@ "use strict"; | ||
var typings_1 = require("@gooddata/typings"); | ||
exports.EXTERNAL_DATE_FORMAT = 'YYYY-MM-DD'; | ||
exports.EXTERNAL_DATE_FILTER_FORMAT = 'YYYY-MM-DD'; | ||
var DATE_FORMAT_REGEX = /^\d{4}-\d{2}-\d{2}$/; | ||
@@ -14,3 +14,5 @@ exports.ALL_TIME_GRANULARITY = 'ALL_TIME_GRANULARITY'; | ||
var _b = getObjectUriIdentifier(dataSet), uri = _b.uri, identifier = _b.identifier; | ||
return (lodash_1.isString(uri) || lodash_1.isString(identifier)) && lodash_1.isString(from) && lodash_1.isString(to) && DATE_FORMAT_REGEX.test(from) && DATE_FORMAT_REGEX.test(to); | ||
return (lodash_1.isString(uri) || lodash_1.isString(identifier)) | ||
&& lodash_1.isString(from) && lodash_1.isString(to) | ||
&& DATE_FORMAT_REGEX.test(from) && DATE_FORMAT_REGEX.test(to); | ||
} | ||
@@ -20,19 +22,6 @@ else { | ||
var _d = getObjectUriIdentifier(dataSet), uri = _d.uri, identifier = _d.identifier; | ||
return (lodash_1.isString(uri) || lodash_1.isString(identifier)) && lodash_1.isNumber(from) && lodash_1.isNumber(to) && from <= to; | ||
return (lodash_1.isString(uri) || lodash_1.isString(identifier)) && lodash_1.isNumber(from) && lodash_1.isNumber(to); | ||
} | ||
} | ||
exports.isValidDateFilterFormat = isValidDateFilterFormat; | ||
function isValidFilterItemFormat(filterItem) { | ||
if (typings_1.EmbeddedGdc.isDateFilter(filterItem)) { | ||
return isValidDateFilterFormat(filterItem); | ||
} | ||
else { | ||
return isValidAttributeFilterFormat(filterItem); | ||
} | ||
} | ||
exports.isValidFilterItemFormat = isValidFilterItemFormat; | ||
function isValidFiltersFormat(filters) { | ||
return !lodash_1.isEmpty(filters) && filters.every(isValidFilterItemFormat); | ||
} | ||
exports.isValidFiltersFormat = isValidFiltersFormat; | ||
function isValidAttributeFilterFormat(filterItem) { | ||
@@ -50,5 +39,19 @@ if (!typings_1.EmbeddedGdc.isAttributeFilter(filterItem)) { | ||
var _c = getObjectUriIdentifier(displayForm), uri = _c.uri, identifier = _c.identifier; | ||
// attributeElements could be empty in case of setting All Value | ||
return lodash_1.isString(uri) || lodash_1.isString(identifier); | ||
} | ||
} | ||
function isValidFilterItemFormat(filterItem) { | ||
if (typings_1.EmbeddedGdc.isDateFilter(filterItem)) { | ||
return isValidDateFilterFormat(filterItem); | ||
} | ||
else { | ||
return isValidAttributeFilterFormat(filterItem); | ||
} | ||
} | ||
exports.isValidFilterItemFormat = isValidFilterItemFormat; | ||
function isValidFiltersFormat(filters) { | ||
return !lodash_1.isEmpty(filters) && filters.every(isValidFilterItemFormat); | ||
} | ||
exports.isValidFiltersFormat = isValidFiltersFormat; | ||
function getObjectUriIdentifier(obj) { | ||
@@ -106,7 +109,8 @@ return { | ||
function transformFilterContext(filters) { | ||
var defaultFiltersObject = { | ||
attributeFilters: [], | ||
dateFilters: [] | ||
}; | ||
if (lodash_1.isEmpty(filters)) { | ||
return { | ||
attributeFilters: [], | ||
dateFilters: [] | ||
}; | ||
return defaultFiltersObject; | ||
} | ||
@@ -123,6 +127,3 @@ return filters.reduce(function (externalFilters, filterItem) { | ||
return externalFilters; | ||
}, { | ||
attributeFilters: [], | ||
dateFilters: [] | ||
}); | ||
}, defaultFiltersObject); | ||
} | ||
@@ -129,0 +130,0 @@ exports.transformFilterContext = transformFilterContext; |
{ | ||
"name": "@gooddata/js-utils", | ||
"version": "3.10.7-alpha-khanh.le-kl-SD-978-2020-07-06T10-11-37-283Z", | ||
"version": "3.10.7-alpha-khanh.le-kl-SD-978-2020-07-08T04-30-35-860Z", | ||
"description": "Various utils shared on GoodData frontend", | ||
@@ -5,0 +5,0 @@ "repository": { |
@@ -5,3 +5,3 @@ // (C) 2020 GoodData Corporation | ||
export const EXTERNAL_DATE_FORMAT = 'YYYY-MM-DD'; | ||
export const EXTERNAL_DATE_FILTER_FORMAT = 'YYYY-MM-DD'; | ||
@@ -36,27 +36,17 @@ export interface IExternalFiltersObject { | ||
const { | ||
absoluteDateFilter: { from, to, dataSet }, | ||
absoluteDateFilter: { from, to, dataSet } | ||
} = filterItem; | ||
const { uri, identifier } = getObjectUriIdentifier(dataSet); | ||
return (isString(uri) || isString(identifier)) && isString(from) && isString(to) && DATE_FORMAT_REGEX.test(from) && DATE_FORMAT_REGEX.test(to); | ||
return (isString(uri) || isString(identifier)) | ||
&& isString(from) && isString(to) | ||
&& DATE_FORMAT_REGEX.test(from) && DATE_FORMAT_REGEX.test(to); | ||
} else { | ||
const { | ||
relativeDateFilter: { from, to, dataSet }, | ||
relativeDateFilter: { from, to, dataSet } | ||
} = filterItem; | ||
const { uri, identifier } = getObjectUriIdentifier(dataSet); | ||
return (isString(uri) || isString(identifier)) && isNumber(from) && isNumber(to) && from <= to; | ||
return (isString(uri) || isString(identifier)) && isNumber(from) && isNumber(to); | ||
} | ||
} | ||
export function isValidFilterItemFormat(filterItem: any): boolean { | ||
if (EmbeddedGdc.isDateFilter(filterItem)) { | ||
return isValidDateFilterFormat(filterItem); | ||
} else { | ||
return isValidAttributeFilterFormat(filterItem); | ||
} | ||
} | ||
export function isValidFiltersFormat(filters: any[]): boolean { | ||
return !isEmpty(filters) && filters.every(isValidFilterItemFormat); | ||
} | ||
function isValidAttributeFilterFormat(filterItem: EmbeddedGdc.AttributeFilterItem): boolean { | ||
@@ -78,2 +68,3 @@ if (!EmbeddedGdc.isAttributeFilter(filterItem)) { | ||
const { uri, identifier } = getObjectUriIdentifier(displayForm); | ||
// attributeElements could be empty in case of setting All Value | ||
return isString(uri) || isString(identifier); | ||
@@ -83,2 +74,14 @@ } | ||
export function isValidFilterItemFormat(filterItem: any): boolean { | ||
if (EmbeddedGdc.isDateFilter(filterItem)) { | ||
return isValidDateFilterFormat(filterItem); | ||
} else { | ||
return isValidAttributeFilterFormat(filterItem); | ||
} | ||
} | ||
export function isValidFiltersFormat(filters: any[]): boolean { | ||
return !isEmpty(filters) && filters.every(isValidFilterItemFormat); | ||
} | ||
function getObjectUriIdentifier(obj: EmbeddedGdc.ObjQualifier): { uri?: string; identifier?: string } { | ||
@@ -147,23 +150,25 @@ return { | ||
export function transformFilterContext(filters: EmbeddedGdc.FilterItem[]): IExternalFiltersObject { | ||
const defaultFiltersObject = { | ||
attributeFilters: [], | ||
dateFilters: [] | ||
}; | ||
if (isEmpty(filters)) { | ||
return { | ||
attributeFilters: [], | ||
dateFilters: [] | ||
}; | ||
return defaultFiltersObject; | ||
} | ||
return filters.reduce((externalFilters: IExternalFiltersObject, filterItem: EmbeddedGdc.FilterItem) => { | ||
if (EmbeddedGdc.isDateFilter(filterItem)) { | ||
const dateFilter = transformDateFilterItem(filterItem); | ||
externalFilters.dateFilters.push(dateFilter); | ||
} else { | ||
const attributeFilter = transformAttributeFilterItem(filterItem); | ||
externalFilters.attributeFilters.push(attributeFilter); | ||
} | ||
return filters.reduce( | ||
( | ||
externalFilters: IExternalFiltersObject, | ||
filterItem: EmbeddedGdc.FilterItem | ||
): IExternalFiltersObject => { | ||
if (EmbeddedGdc.isDateFilter(filterItem)) { | ||
const dateFilter = transformDateFilterItem(filterItem); | ||
externalFilters.dateFilters.push(dateFilter); | ||
} else { | ||
const attributeFilter = transformAttributeFilterItem(filterItem); | ||
externalFilters.attributeFilters.push(attributeFilter); | ||
} | ||
return externalFilters; | ||
}, { | ||
attributeFilters: [], | ||
dateFilters: [] | ||
}); | ||
return externalFilters; | ||
}, defaultFiltersObject); | ||
} | ||
@@ -170,0 +175,0 @@ |
@@ -49,3 +49,3 @@ // (C) 2020 GoodData Corporation | ||
}; | ||
const wrongPositiveAttributeFilter = { | ||
const positiveAttributeFilterWithoutDisplayForm = { | ||
positiveAttributeFilter: { | ||
@@ -56,3 +56,3 @@ in: ['uri1'], | ||
}; | ||
const wrong1PositiveAttributeFilter = { | ||
const positiveAttributeFilterWithoutValue = { | ||
positiveAttributeFilter: { | ||
@@ -108,7 +108,7 @@ in: [], | ||
it('should return false when attribute filter item is missing uri and identifier', () => { | ||
expect(isValidFiltersFormat([wrongPositiveAttributeFilter])).toBe(false); | ||
expect(isValidFiltersFormat([positiveAttributeFilterWithoutDisplayForm])).toBe(false); | ||
}); | ||
it('should return false when positive attribute filter item without filter values', () => { | ||
expect(isValidFiltersFormat([wrong1PositiveAttributeFilter])).toBe(false); | ||
expect(isValidFiltersFormat([positiveAttributeFilterWithoutValue])).toBe(false); | ||
}); | ||
@@ -115,0 +115,0 @@ |
Sorry, the diff of this file is not supported yet
97884
1985