UNPKG

ui5_easy_use

Version:

CLI tool for SAP ui5 and SAPUI5 projects to initialize apps, generate pages, insert form and table components, manage routing, and automate i18n bindings

197 lines (158 loc) 6.32 kB
sap.ui.define([], function () { "use strict"; return class Formaters { constructor(controller) { this._controllerJS = controller; } convertODataDate(odataDateString) { if (!odataDateString) { return new Date("2000/1/1"); } const timestampMatch = String(odataDateString).match(/\d+/); const timestamp = timestampMatch ? parseInt(timestampMatch[0], 10) : 0; return new Date(timestamp).toDateString(); } replaceOrgWithExt(fields) { return this._replaceFieldSuffix(fields, "Org", "Ext"); } replaceExtWithOrg(fields) { return this._replaceFieldSuffix(fields, "Ext", "Org"); } convertValuesToStrings(obj) { return Object.keys(obj || {}).reduce(function (result, key) { result[key] = String(obj[key]); return result; }, {}); } convertToJson(value) { if (typeof value === "string") { return JSON.parse(value.replace(/"({[^}]*})"/g, function (match) { return match.replace(/"/g, '\\"'); })); } return Object.keys(value || {}).reduce(function (result, key) { result[key] = typeof value[key] === "string" ? JSON.parse(value[key]) : value[key]; return result; }, {}); } filterObjectByKeys(obj, keysArray) { return Object.keys(obj || {}) .filter(function (key) { return Array.isArray(keysArray) && keysArray.includes(key); }) .reduce(function (result, key) { result[key] = obj[key]; return result; }, {}); } transformObject(inputObj) { const transformedObj = {}; for (const [key, value] of Object.entries(inputObj || {})) { transformedObj[key.replace("Ans9", "Ans1")] = JSON.stringify(Object.assign({}, value)); } return transformedObj; } transformAnsObject(inputObj) { const transformedObj = {}; for (const [key, value] of Object.entries(inputObj || {})) { transformedObj[key] = JSON.stringify(value); } return transformedObj; } transStrDataToJson(data) { return (data || []).map(function (item) { return Object.keys(item).reduce(function (acc, key) { acc[key] = key.match(/^Ans(\d+)$/) ? JSON.parse(item[key]) : item[key]; return acc; }, {}); }); } async enrichUsersWithInfo(array, getUserInfoCallback) { for (const item of array || []) { const userInfo = await getUserInfoCallback.bind(this._controllerJS)(item.UserID); Object.assign(item, userInfo); } return array; } getYearsList(startYear) { const currentYear = new Date().getFullYear(); const years = []; for (let year = startYear; year <= currentYear; year++) { years.push(year); } return years; } transformFields(selectedSecondformData) { return Object.entries(selectedSecondformData || {}).reduce(function (acc, [key, value]) { const match = key.match(/(Q\d+)(Org|Ext(\d+))Field(\d+)/); if (!match) { return acc; } const [, qNumber, type, extNum, fieldNum] = match; const ansNumber = qNumber.replace("Q", "Ans"); const typeGroup = type === "Org" ? "Org" : `Ext${extNum}`; acc[ansNumber] = acc[ansNumber] || {}; acc[ansNumber][typeGroup] = acc[ansNumber][typeGroup] || {}; acc[ansNumber][typeGroup][`Q${fieldNum}`] = value; return acc; }, {}); } getQuestionData(obj) { const result = { Q1: 0, Q2: 0, Q3: 0, Q4: 0, Q5: 0, Q6: 0, Q7: 0, Q8: 0, Q9: 0 }; for (let index = 1; index <= 9; index++) { const ansValue = (obj || {})[`Ans${index}`]; if (ansValue !== null && ansValue !== undefined) { result[`Q${index}`] = 1; } } return result; } getAnsKeys(obj) { return Object.keys(obj || {}).filter(function (key) { return /^Ans\d+$/.test(key); }); } groupByYearAndMonth(obj) { const result = {}; Object.keys(obj || {}).forEach(function (key) { const item = obj[key]; const createdAt = new Date(item.createdAt); const year = createdAt.getFullYear(); const month = createdAt.toLocaleString("default", { month: "long" }); result[year] = result[year] || []; const existingMonth = result[year].find(function (monthObj) { return monthObj.Month === month; }); if (existingMonth) { existingMonth.numberSubmitted += 1; return; } result[year].push({ Month: month, numberSubmitted: 1 }); }); return result; } formatValue(q4Value, localData) { const jobNatureEntry = ((localData && localData.JobNature) || []).find(function (entry) { return entry.key === q4Value; }); return jobNatureEntry ? jobNatureEntry.text : q4Value; } _replaceFieldSuffix(fields, fromValue, toValue) { return (fields || []).map(function (field) { return Object.assign({}, field, { fieldName: String(field.fieldName || "").replace(fromValue, toValue) }); }); } }; });