UNPKG

@ministryofjustice/hmpps-digital-prison-reporting-frontend

Version:

The Digital Prison Reporting Frontend contains templates and code to help display data effectively in UI applications.

66 lines (63 loc) 2.65 kB
import localsHelper from './localsHelper.js'; const FEATURE_FLAG_NAMESPACE = 'hmpps-digital-prison-reporting'; const FEATURE_FLAG_KEYS = { SAVE_DEFAULTS: 'saveDefaultsEnabled', STREAMING_DOWNLOAD: 'streamingDownloadEnabled', BAR_CHARTS: 'barChartsEnabled', LINE_CHARTS: 'lineChartsEnabled', DONUT_CHARTS: 'donutChartsEnabled', SCORECARD_CHARTS: 'scorecardChartsEnabled', SCORECARD_GROUP_CHARTS: 'scorecardgroupChartsEnabled', MATRIX_TIMESERIES_CHARTS: 'matrixtimeseriesChartsEnabled', BAR_TIMESERIES_CHARTS: 'bartimeseriesChartsEnabled', LINE_TIMESERIES_CHARTS: 'linetimeseriesChartsEnabled', }; const DASHBOARD_VISUALISATION_FEATURE_FLAGS = [ FEATURE_FLAG_KEYS.BAR_CHARTS, FEATURE_FLAG_KEYS.LINE_CHARTS, FEATURE_FLAG_KEYS.DONUT_CHARTS, FEATURE_FLAG_KEYS.SCORECARD_CHARTS, FEATURE_FLAG_KEYS.SCORECARD_GROUP_CHARTS, FEATURE_FLAG_KEYS.MATRIX_TIMESERIES_CHARTS, FEATURE_FLAG_KEYS.BAR_TIMESERIES_CHARTS, FEATURE_FLAG_KEYS.LINE_TIMESERIES_CHARTS, ]; const FEATURE_FLAGS = [ FEATURE_FLAG_KEYS.SAVE_DEFAULTS, FEATURE_FLAG_KEYS.STREAMING_DOWNLOAD, ...DASHBOARD_VISUALISATION_FEATURE_FLAGS, ]; const DEFAULT_FEATURE_FLAG_ENTITY_ID = 'anonymous'; const FEATURE_FLAG_FALLBACK_STATES = { [FEATURE_FLAG_KEYS.SAVE_DEFAULTS]: true, [FEATURE_FLAG_KEYS.STREAMING_DOWNLOAD]: false, [FEATURE_FLAG_KEYS.BAR_CHARTS]: false, [FEATURE_FLAG_KEYS.LINE_CHARTS]: false, [FEATURE_FLAG_KEYS.DONUT_CHARTS]: false, [FEATURE_FLAG_KEYS.SCORECARD_CHARTS]: false, [FEATURE_FLAG_KEYS.SCORECARD_GROUP_CHARTS]: false, [FEATURE_FLAG_KEYS.MATRIX_TIMESERIES_CHARTS]: false, [FEATURE_FLAG_KEYS.BAR_TIMESERIES_CHARTS]: false, [FEATURE_FLAG_KEYS.LINE_TIMESERIES_CHARTS]: false, }; const toFeatureFlagEntityId = (entityId) => { if (!entityId || entityId.trim().length === 0) { return DEFAULT_FEATURE_FLAG_ENTITY_ID; } return entityId; }; const createFeatureFlagEvaluationSubject = (entityId) => { return { entityId: toFeatureFlagEntityId(entityId), context: {}, }; }; const getFeatureFlagEvaluationSubject = (res) => { const { dprUser } = localsHelper.getValues(res); return createFeatureFlagEvaluationSubject(dprUser.id); }; const getFeatureFlagFallbackState = (flagKey) => { return FEATURE_FLAG_FALLBACK_STATES[flagKey]; }; export { DASHBOARD_VISUALISATION_FEATURE_FLAGS, DEFAULT_FEATURE_FLAG_ENTITY_ID, FEATURE_FLAGS, FEATURE_FLAG_KEYS, FEATURE_FLAG_NAMESPACE, createFeatureFlagEvaluationSubject, getFeatureFlagEvaluationSubject, getFeatureFlagFallbackState }; //# sourceMappingURL=featureFlagsHelper.js.map