"use strict"; /** * Licensed Materials - Property of IBM * IBM Cognos Products: Cognos Analytics * Copyright IBM Corp. 2015, 2017 * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. */ define(['underscore', 'moment-timezone'], function (_, moment) { return { buildSimpleParmValueItems: function buildSimpleParmValueItems(parameterName, items) { var parameter_values = { name: parameterName, values: [] }; _.each(items, function (item) { parameter_values.values.push({ type: 'simpleParmValueItem', use: _.isString(item) ? item : item.value, display: _.isString(item) ? item : item.label, inclusive: true }); }.bind(this)); return parameter_values; }, buildBoundRangeParmValueItem: function buildBoundRangeParmValueItem(parameterName, range) { return { name: parameterName, values: [{ type: 'boundRangeParmValueItem', inclusive: true, start: { inclusive: true, use: _.isString(range.from) ? range.from : range.from.value, display: _.isString(range.from) ? range.from : range.from.label }, end: { inclusive: true, use: _.isString(range.to) ? range.to : range.to.value, display: _.isString(range.to) ? range.to : range.to.label } }] }; }, parseDateTimeString: function parseDateTimeString(value, showSeconds) { var parsedDateTime = moment(value); return { date: parsedDateTime.format('YYYY-MM-DD'), time: showSeconds ? parsedDateTime.format('HH:mm:ss A') : parsedDateTime.format('HH:mm A') }; }, parseTimeString: function parseTimeString(value, showSeconds) { var parsedTime = moment(moment().format('YYYY-MM-DD') + ' ' + value); return { date: null, time: showSeconds ? parsedTime.format('HH:mm:ss A') : parsedTime.format('HH:mm A') }; }, createDefaultDateTime: function createDefaultDateTime(defaultDate, showSeconds) { var defaultTime = moment().set('hour', 0).set('minute', 0).set('second', 0).set('millisecond', 0); return this._createDateTimeJSON(defaultDate, defaultTime, showSeconds); }, createDefaultEndTime: function createDefaultEndTime(defaultDate, showSeconds) { var defaultTime = moment().set('hour', 23).set('minute', 59).set('second', 0).set('millisecond', 0); return this._createDateTimeJSON(defaultDate, defaultTime, showSeconds); }, _createDateTimeJSON: function _createDateTimeJSON(defaultDate, defaultTime, showSeconds) { return { date: defaultDate ? defaultDate : moment().format('YYYY-MM-DD'), time: showSeconds ? defaultTime.format('HH:mm:ss') : defaultTime.format('HH:mm') }; }, createUseDisplayTimeValue: function createUseDisplayTimeValue(time) { return { use: time ? moment(time, 'HH:mm:ss').format('HH:mm:ss.SSS') : '', display: time ? moment(time, 'HH:mm:ss').format('h:mm A') : '' }; }, buildUseDisplayValue: function buildUseDisplayValue(payload) { var timeValue = this.createUseDisplayTimeValue(payload.time); var hasDateAndTime = payload.date && payload.time; return { label: (payload.date ? payload.date : '') + (hasDateAndTime ? ' ' : '') + (payload.time ? timeValue.display : ''), value: (payload.date ? payload.date : '') + (hasDateAndTime ? ' ' : '') + (payload.time ? timeValue.use : '') }; }, getMultilingualDisplay: function getMultilingualDisplay(contentLocale, parameter) { var displayValue; if (contentLocale && parameter.multilingualDisplay) { displayValue = parameter.multilingualDisplay[contentLocale]; if (!displayValue) { var sepIndex = contentLocale.indexOf('-'); if (sepIndex !== -1) { var language = contentLocale.substr(0, sepIndex); displayValue = parameter.multilingualDisplay[language]; } } } return displayValue ? displayValue : parameter.name; } }; });