@sis-cc/dotstatsuite-components 22.0.2 → 22.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/rules/src/index.js
CHANGED
|
@@ -27,6 +27,7 @@ export { getObservationsType } from './properties/getObservationsType.js';
|
|
|
27
27
|
export { getAvailableChartTypes } from './properties/getAvailableChartTypes.js';
|
|
28
28
|
export { isSharedLayoutCompatible } from './layout.js';
|
|
29
29
|
export { getObservations } from './preparators/getObservations.js';
|
|
30
|
+
export { getChartOptions } from './chart/getChartOptions.js';
|
|
30
31
|
export { getCellValue } from './table/factories/getCellValue.js';
|
|
31
32
|
|
|
32
33
|
const freqA = FREQ_A;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/rules/src/index.js"],"sourcesContent":["import {\n get, partition, reject, isEmpty, map, compact, size, keyBy, pick, omit, isNil, flatten, reduce,\n filter, find, includes, isArray, findIndex, isEqual\n} from 'lodash';\nimport * as R from 'ramda';\nimport memoizee from 'memoizee';\nimport __sampleSeries from './factories/sample-series';\nimport __sampleFocus from './factories/sample-focus';\nimport __scatterSeries from './factories/scatter-series';\nimport __scatterFocus from './factories/scatter-focus';\nimport __scatterDimension from './factories/scatter-dimension';\nimport __symbolSeries from './factories/symbol-series';\nimport __symbolDimension from './factories/symbol-dimension';\nimport __timelineSeries from './factories/timeline-series';\nimport __timelineFocus from './factories/timeline-focus';\nimport __stackedSeries from './factories/stacked-series';\nimport __stackedDimension from './factories/stacked-dimension';\nimport __choroSeries from './factories/choro-series';\nimport {\n DEFAULT_UPR_IDS, DEFAULT_REJECTED_UPR_VALUES_IDS, DEFAULT_REJECTED_SUBTITLE_IDS,\n FREQ_A, FREQ_Q, FREQ_M\n} from './constants';\nimport { dimensionValueDisplay } from './dimension-utils';\nimport { getObservationsFormaterAttributes } from './observation-formater';\n\nexport const freqA = FREQ_A;\nexport const freqQ = FREQ_Q;\nexport const freqM = FREQ_M;\n\n// --------------------------------------------------------------------------------extractSdmxErrors\nconst _extractSdmxErrors = (data) => R.compose(\n (errors) => map(errors, (error) => ({ label: error.code, description: error.message })),\n (data) => get(data, 'errors', [])\n);\nexport const extractSdmxErrors = memoizee(_extractSdmxErrors);\n\nexport const extractDataName = (data) => R.pathOr(null, ['structure', 'name'], data);\n\n// -----------------------------------------------------------------------------extractSdmxArtefacts\nconst _extractSdmxArtefacts = (data) => {\n const parseStructure = (data) => get(data, 'structure', {});\n const parseItem = (item) => parseComponents(get(item, 'observation', []));\n const parseDimensions = (structure) => parseItem(get(structure, 'dimensions', {}));\n const parseAttributes = (structure) => parseItem(get(structure, 'attributes', {}));\n const parseComponents = (components) => map(components, parseComponent);\n const parseComponent = (component, index) => {\n let parsed = { ...pick(component, 'id', 'name', 'values', 'role', 'isHidden'), index };\n if (isEmpty(parsed))\n return parsed;\n if (isNil(parsed.role))\n parsed.role = parsed.id;\n parsed.values = R.sortBy(R.prop('__index'))(parsed.values);\n return parsed;\n };\n const parseDatasetItem = (item) => parseComponents(get(item, 'dataSet', []));\n const parseDatasetAttributes = (structure) => parseDatasetItem(get(structure, 'attributes', {}));\n\n return {\n attributes: parseAttributes(parseStructure(data)),\n datasetAttributes: parseDatasetAttributes(parseStructure(data)),\n dimensions: parseDimensions(parseStructure(data)),\n id: get(data, 'header.id', null),\n name: extractDataName(data),\n observations: R.pipe(\n R.pathOr({}, ['dataSets', 0, 'observations']),\n R.mapObjIndexed(obs => R.over(R.lensIndex(0), val => R.isNil(val) ? null : Number(val))(obs)),\n R.reject(R.pipe(R.head, R.anyPass([R.isNil, isNaN]))),\n )(data),\n source: get(data, 'header.links[0].href', null),\n };\n};\nexport const extractSdmxArtefacts = memoizee(_extractSdmxArtefacts);\n\nconst _getRelevantsDatasetAttributes = (data) => {\n const { datasetAttributes } = extractSdmxArtefacts(data);\n return filter(datasetAttributes, attr => size(attr.values) === 1);\n};\nexport const getRelevantsDatasetAttributes = memoizee(_getRelevantsDatasetAttributes);\n\n// -------------------------------------------------------------------------------getDimensionValues\nexport const getDimensionValues = (dimension) => get(dimension, 'values', []);\n\n// ----------------------------------------------------------------------------------splitDimensions\nconst _splitDimensions = (data) => {\n const { dimensions } = extractSdmxArtefacts(data);\n const [value, values] = partition(\n reject(dimensions, R.compose(isEmpty, getDimensionValues)),\n R.compose((values) => size(values) === 1, getDimensionValues)\n );\n return { value, values };\n}\nexport const splitDimensions = memoizee(_splitDimensions);\n\n// ------------------------------------------------------------------dimensionsWithValuesIndexedById\nconst _dimensionsWithValuesIndexedById = (data) => R.compose(\n (dimensionsWithValues) => keyBy(dimensionsWithValues, 'id'),\n (split) => split.values,\n splitDimensions\n)(data);\nexport const dimensionsWithValuesIndexedById = memoizee(_dimensionsWithValuesIndexedById);\n\n// -------------------------------------------------------------------------------------parseDisplay\nconst _parseDisplay = (display) =>\n (isNil(display) || !(includes(['both', 'code'], display)))\n ? 'label' : display;\nexport const parseDisplay = memoizee(_parseDisplay);\n\n// -------------------------------------------------------------------------------------sampleSeries\nconst _sampleSeries = (data, type, display, formaterIds) => __sampleSeries(\n type,\n extractSdmxArtefacts(data),\n dimensionsWithValuesIndexedById(data),\n parseDisplay(display),\n getObservationsFormaterAttributes(data, formaterIds)\n);\nexport const sampleSeries = memoizee(_sampleSeries);\n\n// ---------------------------------------------------------------------------------scatterDimension\nconst _scatterDimension = (data, ids) => {\n const { values } = splitDimensions(data);\n return __scatterDimension(values, ids);\n};\nexport const scatterDimension = memoizee(_scatterDimension);\n\n// ----------------------------------------------------------------------------------symbolDimension\nconst _symbolDimension = (data, ids) => {\n const { values } = splitDimensions(data);\n return __symbolDimension(values, ids);\n};\nexport const symbolDimension = memoizee(_symbolDimension);\n\nconst _stackedDimension = (data, singularity) => {\n return __stackedDimension(splitDimensions(data), singularity);\n}\nexport const stackedDimension = memoizee(_stackedDimension);\n\n// ------------------------------------------------------------------------------------scatterSeries\nconst _scatterSeries = (data, ids, display, formaterIds) => __scatterSeries(\n extractSdmxArtefacts(data),\n dimensionsWithValuesIndexedById(data),\n scatterDimension(data, ids),\n parseDisplay(display),\n getObservationsFormaterAttributes(data, formaterIds)\n);\nexport const scatterSeries = memoizee(_scatterSeries);\n\n// -------------------------------------------------------------------------------------symbolSeries\nconst _symbolSeries = (data, type, ids, display, formaterIds) => __symbolSeries(\n extractSdmxArtefacts(data),\n type,\n dimensionsWithValuesIndexedById(data),\n symbolDimension(data, ids),\n parseDisplay(display),\n getObservationsFormaterAttributes(data, formaterIds)\n);\nexport const symbolSeries = memoizee(_symbolSeries);\n\n// -----------------------------------------------------------------------------------timelineSeries\nconst _timelineSeries = (data, display, formaterIds) => __timelineSeries(\n extractSdmxArtefacts(data),\n dimensionsWithValuesIndexedById(data),\n parseDisplay(display),\n getObservationsFormaterAttributes(data, formaterIds)\n);\nexport const timelineSeries = memoizee(_timelineSeries);\n\nconst _stackedSeries = (data, singularity, display, formaterIds, [stackKey, categoryKey]) => __stackedSeries(\n extractSdmxArtefacts(data),\n dimensionsWithValuesIndexedById(data),\n stackedDimension(data, singularity),\n parseDisplay(display),\n getObservationsFormaterAttributes(data, formaterIds),\n [stackKey, categoryKey]\n);\nexport const stackedSeries = memoizee(_stackedSeries);\n\n// --------------------------------------------------------------------------------------choroSeries\nconst _choroSeries = (data, map, display) => __choroSeries(\n extractSdmxArtefacts(data),\n dimensionsWithValuesIndexedById(data),\n map,\n parseDisplay(display)\n);\nexport const choroSeries = memoizee(_choroSeries);\n\n// -------------------------------------------------------------------------------------------series\nconst _series = (data, type, focus, singularity, map, display, formaterIds) => {\n switch(type) {\n case 'RowChart': case 'BarChart':\n return __sampleFocus(sampleSeries(data, type, display, formaterIds), focus);\n case 'ScatterChart':\n return __scatterFocus(scatterSeries(data, singularity, display, formaterIds), focus);\n case 'HorizontalSymbolChart': case 'VerticalSymbolChart':\n return __sampleFocus(symbolSeries(data, type, singularity, display, formaterIds), focus);\n case 'TimelineChart':\n return __timelineFocus(timelineSeries(data, display, formaterIds), focus);\n case 'StackedBarChart':\n return __sampleFocus(stackedSeries(data, singularity, display, formaterIds, ['y', 'x']), focus);\n case 'StackedRowChart':\n return __sampleFocus(stackedSeries(data, singularity, display, formaterIds, ['x', 'y']), focus);\n case 'ChoroplethChart':\n return choroSeries(data, map, display);\n }\n};\nexport const series = memoizee(_series);\n\n// -------------------------------------------------------------------------------------------source\nconst _source = (data, config, meta) => {\n const hasSource = get(meta, 'hasSource', true);\n if (!hasSource)\n return null;\n const source = get(config, 'source', null);\n if (source && !(isEmpty(source)))\n return source;\n const artefacts = extractSdmxArtefacts(data);\n const uri = get(artefacts, 'source');\n if (!uri)\n return get(config, 'defaultSource', null);\n const match = uri.match(/(^http.*)\\/SDMX-JSON\\/data\\/([^\\/]+)\\//);\n if (size(match) !== 3)\n return null;\n const [m, domain, dataset] = match;\n return `${domain}/Index.aspx?DataSetCode=${dataset}`; //tmp\n};\nexport const source = memoizee(_source);\n\n// --------------------------------------------------------------------------------------------focus\nconst _focus = (data, type, dimension, _display) => {\n const display = parseDisplay(_display);\n switch(type) {\n case 'RowChart': case 'BarChart':\n case 'HorizontalSymbolChart': case 'VerticalSymbolChart':\n case 'StackedBarChart': case 'StackedRowChart':\n return R.compose(\n (datapoints) => map(datapoints, (dp) => ({ label: dp.category, value: dp.key })),\n (series) => series[0].datapoints,\n series\n )(data, type, null, dimension, null, display);\n case 'TimelineChart':\n return R.compose(\n (series) => map(series, (serie) => ({ label: serie.category, value: serie.key })),\n series\n )(data, type, null, dimension, null, display)\n case 'ScatterChart':\n const id = get(dimension, 'id');\n if (isNil(id)) return [];\n const dimensions = R.compose(\n (dimensions) => omit(dimensions, id),\n dimensionsWithValuesIndexedById\n )(data);\n return flatten(map(\n dimensions,\n (dimension) => {\n return map(\n get(dimension, 'values'),\n (value) => ({\n label: `${dimensionValueDisplay(display)(dimension)} - ${dimensionValueDisplay(display)(value)}`,\n options: { dimensionId: dimension.id, dimensionValueId: value.id },\n value: `${dimension.id}-${value.id}`\n })\n )\n }\n ));\n }\n};\nexport const focus = memoizee(_focus);\n\nconst _parseFocus = (data, type, dimension, display, { baseline, highlight }) => {\n const options = focus(data, type, dimension, display);\n\n const parseSelection = selection => compact(map(selection, ({ value }) => find(options, option => isEqual(option.value, value))));\n return ({ baseline: parseSelection(baseline), highlight: parseSelection(highlight) });\n};\nexport const parseFocus = memoizee(_parseFocus);\n\nconst _defaultSubtitle = (data, display, REJECTED_SUBTITLE_IDS = DEFAULT_REJECTED_SUBTITLE_IDS) => {\n const { value } = splitDimensions(data);\n const values = reduce(\n R.reject(R.prop('isHidden'))(value),\n (memo, d) => {\n const dvId = get(d, 'values[0].id');\n if (!includes(REJECTED_SUBTITLE_IDS, dvId)) {\n memo.push(`${dimensionValueDisplay(display)(d)}: ${dimensionValueDisplay(display)(get(d, 'values[0]'))}`);\n }\n return memo;\n },\n []\n );\n return values;\n}\nexport const defaultSubtitle = memoizee(_defaultSubtitle);\n\nconst _uprAttributes = (attributes, UPR_IDS = DEFAULT_UPR_IDS) => (\n reduce(\n UPR_IDS,\n (memo, ids, uprKey) => {\n const attr = find(attributes, attribute => includes(ids, get(attribute, 'id')));\n if (attr) {\n memo[uprKey] = attr;\n }\n return memo;\n },\n {}\n )\n);\nexport const uprAttributes = memoizee(_uprAttributes);\n\nconst _uprAttributesWithOneRelevantValue = (uprAttributes, UPR_IDS = DEFAULT_UPR_IDS, REJECTED_UPR_VALUES_IDS = DEFAULT_REJECTED_UPR_VALUES_IDS) => reduce(\n uprAttributes,\n (memo, attr, key) => {\n if (size(get(attr, 'values', [])) === 1 && !(includes(REJECTED_UPR_VALUES_IDS[key], get(attr, 'values[0].id', ''))))\n memo[key] = attr;\n return memo;\n },\n {}\n);\nexport const uprAttributesWithOneRelevantValue = memoizee(_uprAttributesWithOneRelevantValue);\n\nexport const headerUprsLabel = display => uprAttributes => {\n return map(\n uprAttributes,\n attr => dimensionValueDisplay(display)(get(attr, 'values[0]'))\n ).join(', ');\n}\n\nexport const getUprs = (data, display) => R.compose(\n headerUprsLabel(parseDisplay(display)),\n uprAttributesWithOneRelevantValue,\n ({ attributes }) => uprAttributes(attributes),\n extractSdmxArtefacts\n)(data);\n\nconst _header = (data, _title, _subtitle, _display) => {\n const display = parseDisplay(_display);\n const title = (isNil(_title) || isEmpty(_title)) ? get(data, 'structure.name') : _title;\n const subtitle = (isNil(_subtitle) || isEmpty(_subtitle)) ? defaultSubtitle(data, display) : _subtitle;\n return ({\n title,\n subtitle: isArray(subtitle) ? subtitle : [subtitle],\n uprs: R.compose(\n headerUprsLabel(display),\n uprAttributesWithOneRelevantValue,\n ({ attributes }) => uprAttributes(attributes),\n extractSdmxArtefacts\n )(data)\n });\n};\nexport const header = memoizee(_header);\n\nconst _sourceLabel = (data, label) => (\n (isNil(label) || isEmpty(label)) ? extractSdmxArtefacts(data).name : label\n);\nexport const sourceLabel = memoizee(_sourceLabel);\n\nconst _getTopologyAreasCollections = (topology) => map(topology.objects, (entry, key) => key);\nexport const getTopologyAreasCollections = memoizee(_getTopologyAreasCollections);\n\nconst _isNonIdealState = (data, type, map) => {\n const defaultSeries = series(data, type, null, null, map);\n if (type === 'ChoroplethChart')\n {\n return findIndex(get(defaultSeries, 'objects.areas.geometries', []), geometry => get(geometry, 'properties.value', null)) === -1;\n }\n return isEmpty(get(defaultSeries, '[0].datapoints', []));\n}\nexport const isNonIdealState = memoizee(_isNonIdealState);\n\nexport { dimensionValueDisplay } from './dimension-utils';\nexport { DEFAULT_UPR_IDS, DIMENSION_DISPLAY_PARTS, DEFAULT_MAJOR_ATTRIBUTES, V8_SDMX_JSON,\n TYPES as chartTypes } from './constants';\nexport {\n initialState,\n stateFromNewProps,\n onChangeProperties,\n toChartData,\n toChartOptions,\n toProperties,\n getErrors,\n toSingularity\n} from './properties';\nexport { dataTransformer as v8Transformer } from './v8-transformer';\nexport {\n getCellValue,\n} from './table';\nexport {\n getFullName,\n} from './sdmx-data';\nexport { getTimePeriodLabel } from './date';\nexport { getHeaderProps, getFooterProps, } from './properties/getHeaderProps';\nexport { getInformationsStateFromNewProps } from './properties/getInformationsStateFromNewProps';\nexport { getObservationsType } from './properties/getObservationsType';\nexport { getAvailableChartTypes } from './properties/getAvailableChartTypes';\nexport { isSharedLayoutCompatible } from './layout';\n\nexport { getObservations } from './preparators/getObservations';\n\nexport const getFlags = R.identity;\nexport const prepareData = R.identity;"],"names":["__sampleFocus","__scatterFocus","__timelineFocus"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/rules/src/index.js"],"sourcesContent":["import {\n get, partition, reject, isEmpty, map, compact, size, keyBy, pick, omit, isNil, flatten, reduce,\n filter, find, includes, isArray, findIndex, isEqual\n} from 'lodash';\nimport * as R from 'ramda';\nimport memoizee from 'memoizee';\nimport __sampleSeries from './factories/sample-series';\nimport __sampleFocus from './factories/sample-focus';\nimport __scatterSeries from './factories/scatter-series';\nimport __scatterFocus from './factories/scatter-focus';\nimport __scatterDimension from './factories/scatter-dimension';\nimport __symbolSeries from './factories/symbol-series';\nimport __symbolDimension from './factories/symbol-dimension';\nimport __timelineSeries from './factories/timeline-series';\nimport __timelineFocus from './factories/timeline-focus';\nimport __stackedSeries from './factories/stacked-series';\nimport __stackedDimension from './factories/stacked-dimension';\nimport __choroSeries from './factories/choro-series';\nimport {\n DEFAULT_UPR_IDS, DEFAULT_REJECTED_UPR_VALUES_IDS, DEFAULT_REJECTED_SUBTITLE_IDS,\n FREQ_A, FREQ_Q, FREQ_M\n} from './constants';\nimport { dimensionValueDisplay } from './dimension-utils';\nimport { getObservationsFormaterAttributes } from './observation-formater';\n\nexport const freqA = FREQ_A;\nexport const freqQ = FREQ_Q;\nexport const freqM = FREQ_M;\n\n// --------------------------------------------------------------------------------extractSdmxErrors\nconst _extractSdmxErrors = (data) => R.compose(\n (errors) => map(errors, (error) => ({ label: error.code, description: error.message })),\n (data) => get(data, 'errors', [])\n);\nexport const extractSdmxErrors = memoizee(_extractSdmxErrors);\n\nexport const extractDataName = (data) => R.pathOr(null, ['structure', 'name'], data);\n\n// -----------------------------------------------------------------------------extractSdmxArtefacts\nconst _extractSdmxArtefacts = (data) => {\n const parseStructure = (data) => get(data, 'structure', {});\n const parseItem = (item) => parseComponents(get(item, 'observation', []));\n const parseDimensions = (structure) => parseItem(get(structure, 'dimensions', {}));\n const parseAttributes = (structure) => parseItem(get(structure, 'attributes', {}));\n const parseComponents = (components) => map(components, parseComponent);\n const parseComponent = (component, index) => {\n let parsed = { ...pick(component, 'id', 'name', 'values', 'role', 'isHidden'), index };\n if (isEmpty(parsed))\n return parsed;\n if (isNil(parsed.role))\n parsed.role = parsed.id;\n parsed.values = R.sortBy(R.prop('__index'))(parsed.values);\n return parsed;\n };\n const parseDatasetItem = (item) => parseComponents(get(item, 'dataSet', []));\n const parseDatasetAttributes = (structure) => parseDatasetItem(get(structure, 'attributes', {}));\n\n return {\n attributes: parseAttributes(parseStructure(data)),\n datasetAttributes: parseDatasetAttributes(parseStructure(data)),\n dimensions: parseDimensions(parseStructure(data)),\n id: get(data, 'header.id', null),\n name: extractDataName(data),\n observations: R.pipe(\n R.pathOr({}, ['dataSets', 0, 'observations']),\n R.mapObjIndexed(obs => R.over(R.lensIndex(0), val => R.isNil(val) ? null : Number(val))(obs)),\n R.reject(R.pipe(R.head, R.anyPass([R.isNil, isNaN]))),\n )(data),\n source: get(data, 'header.links[0].href', null),\n };\n};\nexport const extractSdmxArtefacts = memoizee(_extractSdmxArtefacts);\n\nconst _getRelevantsDatasetAttributes = (data) => {\n const { datasetAttributes } = extractSdmxArtefacts(data);\n return filter(datasetAttributes, attr => size(attr.values) === 1);\n};\nexport const getRelevantsDatasetAttributes = memoizee(_getRelevantsDatasetAttributes);\n\n// -------------------------------------------------------------------------------getDimensionValues\nexport const getDimensionValues = (dimension) => get(dimension, 'values', []);\n\n// ----------------------------------------------------------------------------------splitDimensions\nconst _splitDimensions = (data) => {\n const { dimensions } = extractSdmxArtefacts(data);\n const [value, values] = partition(\n reject(dimensions, R.compose(isEmpty, getDimensionValues)),\n R.compose((values) => size(values) === 1, getDimensionValues)\n );\n return { value, values };\n}\nexport const splitDimensions = memoizee(_splitDimensions);\n\n// ------------------------------------------------------------------dimensionsWithValuesIndexedById\nconst _dimensionsWithValuesIndexedById = (data) => R.compose(\n (dimensionsWithValues) => keyBy(dimensionsWithValues, 'id'),\n (split) => split.values,\n splitDimensions\n)(data);\nexport const dimensionsWithValuesIndexedById = memoizee(_dimensionsWithValuesIndexedById);\n\n// -------------------------------------------------------------------------------------parseDisplay\nconst _parseDisplay = (display) =>\n (isNil(display) || !(includes(['both', 'code'], display)))\n ? 'label' : display;\nexport const parseDisplay = memoizee(_parseDisplay);\n\n// -------------------------------------------------------------------------------------sampleSeries\nconst _sampleSeries = (data, type, display, formaterIds) => __sampleSeries(\n type,\n extractSdmxArtefacts(data),\n dimensionsWithValuesIndexedById(data),\n parseDisplay(display),\n getObservationsFormaterAttributes(data, formaterIds)\n);\nexport const sampleSeries = memoizee(_sampleSeries);\n\n// ---------------------------------------------------------------------------------scatterDimension\nconst _scatterDimension = (data, ids) => {\n const { values } = splitDimensions(data);\n return __scatterDimension(values, ids);\n};\nexport const scatterDimension = memoizee(_scatterDimension);\n\n// ----------------------------------------------------------------------------------symbolDimension\nconst _symbolDimension = (data, ids) => {\n const { values } = splitDimensions(data);\n return __symbolDimension(values, ids);\n};\nexport const symbolDimension = memoizee(_symbolDimension);\n\nconst _stackedDimension = (data, singularity) => {\n return __stackedDimension(splitDimensions(data), singularity);\n}\nexport const stackedDimension = memoizee(_stackedDimension);\n\n// ------------------------------------------------------------------------------------scatterSeries\nconst _scatterSeries = (data, ids, display, formaterIds) => __scatterSeries(\n extractSdmxArtefacts(data),\n dimensionsWithValuesIndexedById(data),\n scatterDimension(data, ids),\n parseDisplay(display),\n getObservationsFormaterAttributes(data, formaterIds)\n);\nexport const scatterSeries = memoizee(_scatterSeries);\n\n// -------------------------------------------------------------------------------------symbolSeries\nconst _symbolSeries = (data, type, ids, display, formaterIds) => __symbolSeries(\n extractSdmxArtefacts(data),\n type,\n dimensionsWithValuesIndexedById(data),\n symbolDimension(data, ids),\n parseDisplay(display),\n getObservationsFormaterAttributes(data, formaterIds)\n);\nexport const symbolSeries = memoizee(_symbolSeries);\n\n// -----------------------------------------------------------------------------------timelineSeries\nconst _timelineSeries = (data, display, formaterIds) => __timelineSeries(\n extractSdmxArtefacts(data),\n dimensionsWithValuesIndexedById(data),\n parseDisplay(display),\n getObservationsFormaterAttributes(data, formaterIds)\n);\nexport const timelineSeries = memoizee(_timelineSeries);\n\nconst _stackedSeries = (data, singularity, display, formaterIds, [stackKey, categoryKey]) => __stackedSeries(\n extractSdmxArtefacts(data),\n dimensionsWithValuesIndexedById(data),\n stackedDimension(data, singularity),\n parseDisplay(display),\n getObservationsFormaterAttributes(data, formaterIds),\n [stackKey, categoryKey]\n);\nexport const stackedSeries = memoizee(_stackedSeries);\n\n// --------------------------------------------------------------------------------------choroSeries\nconst _choroSeries = (data, map, display) => __choroSeries(\n extractSdmxArtefacts(data),\n dimensionsWithValuesIndexedById(data),\n map,\n parseDisplay(display)\n);\nexport const choroSeries = memoizee(_choroSeries);\n\n// -------------------------------------------------------------------------------------------series\nconst _series = (data, type, focus, singularity, map, display, formaterIds) => {\n switch(type) {\n case 'RowChart': case 'BarChart':\n return __sampleFocus(sampleSeries(data, type, display, formaterIds), focus);\n case 'ScatterChart':\n return __scatterFocus(scatterSeries(data, singularity, display, formaterIds), focus);\n case 'HorizontalSymbolChart': case 'VerticalSymbolChart':\n return __sampleFocus(symbolSeries(data, type, singularity, display, formaterIds), focus);\n case 'TimelineChart':\n return __timelineFocus(timelineSeries(data, display, formaterIds), focus);\n case 'StackedBarChart':\n return __sampleFocus(stackedSeries(data, singularity, display, formaterIds, ['y', 'x']), focus);\n case 'StackedRowChart':\n return __sampleFocus(stackedSeries(data, singularity, display, formaterIds, ['x', 'y']), focus);\n case 'ChoroplethChart':\n return choroSeries(data, map, display);\n }\n};\nexport const series = memoizee(_series);\n\n// -------------------------------------------------------------------------------------------source\nconst _source = (data, config, meta) => {\n const hasSource = get(meta, 'hasSource', true);\n if (!hasSource)\n return null;\n const source = get(config, 'source', null);\n if (source && !(isEmpty(source)))\n return source;\n const artefacts = extractSdmxArtefacts(data);\n const uri = get(artefacts, 'source');\n if (!uri)\n return get(config, 'defaultSource', null);\n const match = uri.match(/(^http.*)\\/SDMX-JSON\\/data\\/([^\\/]+)\\//);\n if (size(match) !== 3)\n return null;\n const [m, domain, dataset] = match;\n return `${domain}/Index.aspx?DataSetCode=${dataset}`; //tmp\n};\nexport const source = memoizee(_source);\n\n// --------------------------------------------------------------------------------------------focus\nconst _focus = (data, type, dimension, _display) => {\n const display = parseDisplay(_display);\n switch(type) {\n case 'RowChart': case 'BarChart':\n case 'HorizontalSymbolChart': case 'VerticalSymbolChart':\n case 'StackedBarChart': case 'StackedRowChart':\n return R.compose(\n (datapoints) => map(datapoints, (dp) => ({ label: dp.category, value: dp.key })),\n (series) => series[0].datapoints,\n series\n )(data, type, null, dimension, null, display);\n case 'TimelineChart':\n return R.compose(\n (series) => map(series, (serie) => ({ label: serie.category, value: serie.key })),\n series\n )(data, type, null, dimension, null, display)\n case 'ScatterChart':\n const id = get(dimension, 'id');\n if (isNil(id)) return [];\n const dimensions = R.compose(\n (dimensions) => omit(dimensions, id),\n dimensionsWithValuesIndexedById\n )(data);\n return flatten(map(\n dimensions,\n (dimension) => {\n return map(\n get(dimension, 'values'),\n (value) => ({\n label: `${dimensionValueDisplay(display)(dimension)} - ${dimensionValueDisplay(display)(value)}`,\n options: { dimensionId: dimension.id, dimensionValueId: value.id },\n value: `${dimension.id}-${value.id}`\n })\n )\n }\n ));\n }\n};\nexport const focus = memoizee(_focus);\n\nconst _parseFocus = (data, type, dimension, display, { baseline, highlight }) => {\n const options = focus(data, type, dimension, display);\n\n const parseSelection = selection => compact(map(selection, ({ value }) => find(options, option => isEqual(option.value, value))));\n return ({ baseline: parseSelection(baseline), highlight: parseSelection(highlight) });\n};\nexport const parseFocus = memoizee(_parseFocus);\n\nconst _defaultSubtitle = (data, display, REJECTED_SUBTITLE_IDS = DEFAULT_REJECTED_SUBTITLE_IDS) => {\n const { value } = splitDimensions(data);\n const values = reduce(\n R.reject(R.prop('isHidden'))(value),\n (memo, d) => {\n const dvId = get(d, 'values[0].id');\n if (!includes(REJECTED_SUBTITLE_IDS, dvId)) {\n memo.push(`${dimensionValueDisplay(display)(d)}: ${dimensionValueDisplay(display)(get(d, 'values[0]'))}`);\n }\n return memo;\n },\n []\n );\n return values;\n}\nexport const defaultSubtitle = memoizee(_defaultSubtitle);\n\nconst _uprAttributes = (attributes, UPR_IDS = DEFAULT_UPR_IDS) => (\n reduce(\n UPR_IDS,\n (memo, ids, uprKey) => {\n const attr = find(attributes, attribute => includes(ids, get(attribute, 'id')));\n if (attr) {\n memo[uprKey] = attr;\n }\n return memo;\n },\n {}\n )\n);\nexport const uprAttributes = memoizee(_uprAttributes);\n\nconst _uprAttributesWithOneRelevantValue = (uprAttributes, UPR_IDS = DEFAULT_UPR_IDS, REJECTED_UPR_VALUES_IDS = DEFAULT_REJECTED_UPR_VALUES_IDS) => reduce(\n uprAttributes,\n (memo, attr, key) => {\n if (size(get(attr, 'values', [])) === 1 && !(includes(REJECTED_UPR_VALUES_IDS[key], get(attr, 'values[0].id', ''))))\n memo[key] = attr;\n return memo;\n },\n {}\n);\nexport const uprAttributesWithOneRelevantValue = memoizee(_uprAttributesWithOneRelevantValue);\n\nexport const headerUprsLabel = display => uprAttributes => {\n return map(\n uprAttributes,\n attr => dimensionValueDisplay(display)(get(attr, 'values[0]'))\n ).join(', ');\n}\n\nexport const getUprs = (data, display) => R.compose(\n headerUprsLabel(parseDisplay(display)),\n uprAttributesWithOneRelevantValue,\n ({ attributes }) => uprAttributes(attributes),\n extractSdmxArtefacts\n)(data);\n\nconst _header = (data, _title, _subtitle, _display) => {\n const display = parseDisplay(_display);\n const title = (isNil(_title) || isEmpty(_title)) ? get(data, 'structure.name') : _title;\n const subtitle = (isNil(_subtitle) || isEmpty(_subtitle)) ? defaultSubtitle(data, display) : _subtitle;\n return ({\n title,\n subtitle: isArray(subtitle) ? subtitle : [subtitle],\n uprs: R.compose(\n headerUprsLabel(display),\n uprAttributesWithOneRelevantValue,\n ({ attributes }) => uprAttributes(attributes),\n extractSdmxArtefacts\n )(data)\n });\n};\nexport const header = memoizee(_header);\n\nconst _sourceLabel = (data, label) => (\n (isNil(label) || isEmpty(label)) ? extractSdmxArtefacts(data).name : label\n);\nexport const sourceLabel = memoizee(_sourceLabel);\n\nconst _getTopologyAreasCollections = (topology) => map(topology.objects, (entry, key) => key);\nexport const getTopologyAreasCollections = memoizee(_getTopologyAreasCollections);\n\nconst _isNonIdealState = (data, type, map) => {\n const defaultSeries = series(data, type, null, null, map);\n if (type === 'ChoroplethChart')\n {\n return findIndex(get(defaultSeries, 'objects.areas.geometries', []), geometry => get(geometry, 'properties.value', null)) === -1;\n }\n return isEmpty(get(defaultSeries, '[0].datapoints', []));\n}\nexport const isNonIdealState = memoizee(_isNonIdealState);\n\nexport { dimensionValueDisplay } from './dimension-utils';\nexport { DEFAULT_UPR_IDS, DIMENSION_DISPLAY_PARTS, DEFAULT_MAJOR_ATTRIBUTES, V8_SDMX_JSON,\n TYPES as chartTypes } from './constants';\nexport {\n initialState,\n stateFromNewProps,\n onChangeProperties,\n toChartData,\n toChartOptions,\n toProperties,\n getErrors,\n toSingularity\n} from './properties';\nexport { dataTransformer as v8Transformer } from './v8-transformer';\nexport {\n getCellValue,\n} from './table';\nexport {\n getFullName,\n} from './sdmx-data';\nexport { getTimePeriodLabel } from './date';\nexport { getHeaderProps, getFooterProps, } from './properties/getHeaderProps';\nexport { getInformationsStateFromNewProps } from './properties/getInformationsStateFromNewProps';\nexport { getObservationsType } from './properties/getObservationsType';\nexport { getAvailableChartTypes } from './properties/getAvailableChartTypes';\nexport { isSharedLayoutCompatible } from './layout';\n\nexport { getObservations } from './preparators/getObservations';\n\nexport const getFlags = R.identity;\nexport const prepareData = R.identity;\n\nexport { getChartOptions } from './chart/getChartOptions';"],"names":["__sampleFocus","__scatterFocus","__timelineFocus"],"mappings":"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"}
|
package/package.json
CHANGED
package/src/rules/src/index.js
CHANGED
|
@@ -395,4 +395,6 @@ export { isSharedLayoutCompatible } from './layout';
|
|
|
395
395
|
export { getObservations } from './preparators/getObservations';
|
|
396
396
|
|
|
397
397
|
export const getFlags = R.identity;
|
|
398
|
-
export const prepareData = R.identity;
|
|
398
|
+
export const prepareData = R.identity;
|
|
399
|
+
|
|
400
|
+
export { getChartOptions } from './chart/getChartOptions';
|