UNPKG

turnilo

Version:

Business intelligence, data exploration and visualization web application for Druid, formerly known as Swiv and Pivot

69 lines 2.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const plywood_1 = require("plywood"); const filter_clause_1 = require("../../../../common/models/filter-clause/filter-clause"); const time_1 = require("../../../../common/models/time/time"); const general_1 = require("../../../../common/utils/general/general"); const $MAX_TIME = plywood_1.$(time_1.MAX_TIME_REF_NAME); const $NOW = plywood_1.$(time_1.NOW_REF_NAME); exports.CURRENT_PRESETS = [ { name: "D", duration: "P1D" }, { name: "W", duration: "P1W" }, { name: "M", duration: "P1M" }, { name: "Q", duration: "P3M" }, { name: "Y", duration: "P1Y" } ]; exports.PREVIOUS_PRESETS = [ { name: "D", duration: "P1D" }, { name: "W", duration: "P1W" }, { name: "M", duration: "P1M" }, { name: "Q", duration: "P3M" }, { name: "Y", duration: "P1Y" } ]; exports.DEFAULT_TIME_SHIFT_DURATIONS = [ "P1D", "P1W", "P1M", "P3M" ]; exports.DEFAULT_LATEST_PERIOD_DURATIONS = [ "PT1H", "PT6H", "P1D", "P7D", "P30D" ]; const SINGLE_COMPONENT_DURATION = /^PT?(\d+)([YMWDHS])$/; const MULTI_COMPONENT_DURATION = /^PT?([\dTYMWDHS]+)$/; function normalizeDurationName(duration) { const singleComponent = duration.match(SINGLE_COMPONENT_DURATION); if (general_1.isTruthy(singleComponent)) { const [, count, period] = singleComponent; if (count === "1") return period; return `${count}${period}`; } const multiComponent = duration.match(MULTI_COMPONENT_DURATION); if (general_1.isTruthy(multiComponent)) { const [, periods] = multiComponent; return periods; } return duration; } exports.normalizeDurationName = normalizeDurationName; function constructFilter(period, duration) { switch (period) { case filter_clause_1.TimeFilterPeriod.PREVIOUS: return $NOW.timeFloor(duration).timeRange(duration, -1); case filter_clause_1.TimeFilterPeriod.LATEST: return $MAX_TIME.timeRange(duration, -1); case filter_clause_1.TimeFilterPeriod.CURRENT: return $NOW.timeFloor(duration).timeRange(duration, 1); default: return null; } } exports.constructFilter = constructFilter; function getTimeFilterPresets(period) { switch (period) { case filter_clause_1.TimeFilterPeriod.PREVIOUS: return exports.PREVIOUS_PRESETS; case filter_clause_1.TimeFilterPeriod.CURRENT: return exports.CURRENT_PRESETS; } } exports.getTimeFilterPresets = getTimeFilterPresets; //# sourceMappingURL=presets.js.map