'use strict'; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * Licensed Materials - Property of IBM * IBM Cognos Products: BI Cloud (C) Copyright IBM Corp. 2019 * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. */ define(function () { var booleanProperties = ['weight', 'style']; var suffixToPart = { 'size': 'fontSize', 'family': 'font', 'weight': 'bold', 'style': 'italic' }; var PropertiesHelper = function () { function PropertiesHelper() { _classCallCheck(this, PropertiesHelper); } PropertiesHelper.buildVidaFontPropertiesFromParts = function buildVidaFontPropertiesFromParts(VIPRUtils, fontChanges, currentFontProperty) { var vidaFont = { 'family': [], 'size': null, 'style': null, 'weight': null }; var parsedCurrentVidaFontProperty = currentFontProperty; if (typeof currentFontProperty === 'string') { parsedCurrentVidaFontProperty = VIPRUtils.parseVidaFontProperty(currentFontProperty); } parsedCurrentVidaFontProperty = parsedCurrentVidaFontProperty ? parsedCurrentVidaFontProperty : vidaFont; for (var fontPart in parsedCurrentVidaFontProperty) { if (parsedCurrentVidaFontProperty.hasOwnProperty(fontPart)) { var part = suffixToPart[fontPart]; //the steps to apply the value: 1) If changed states is valid, apply it;2)Then override the missing values from old property value;3) If changed states is null, apply null if (booleanProperties.indexOf(fontPart) !== -1) { if (fontChanges[part]) { vidaFont[fontPart] = part; } else if (typeof fontChanges[part] === 'undefined' && parsedCurrentVidaFontProperty[fontPart]) { vidaFont[fontPart] = parsedCurrentVidaFontProperty[fontPart].toString(); } } else if (Array.isArray(vidaFont[fontPart])) { //in text toolbar, we only supports one family option at one time, so the array length is no more than 1 vidaFont[fontPart].length = 0; if (fontChanges[part]) { vidaFont[fontPart].push(fontChanges[part]); } else if (typeof fontChanges[part] === 'undefined' && parsedCurrentVidaFontProperty[fontPart].length) { vidaFont[fontPart].push(parsedCurrentVidaFontProperty[fontPart][0].toString()); } } else { if (fontChanges[part]) { vidaFont[fontPart] = fontChanges[part]; } else if (typeof fontChanges[part] === 'undefined' && parsedCurrentVidaFontProperty[fontPart]) { vidaFont[fontPart] = parsedCurrentVidaFontProperty[fontPart].toString(); } } } } var vidaFontValues = Object.keys(vidaFont).map(function (fontPart) { return vidaFont[fontPart]; }); var vidaFontProperty = VIPRUtils.createVidaFontProperty(vidaFontValues); //vida does not accept empty string, need to convert the empty string to null value var vidaFontString = vidaFontProperty && vidaFontProperty.toString ? vidaFontProperty.toString() : null; var propertyValueToApply = vidaFontString === '' ? null : vidaFontString; return propertyValueToApply; }; PropertiesHelper.getVidaFontPropertiesPart = function getVidaFontPropertiesPart(VIPRUtils, part, fontPropertyValue) { var vidaFontValue = fontPropertyValue; if (typeof fontPropertyValue === 'string') { vidaFontValue = VIPRUtils.parseVidaFontProperty(fontPropertyValue); } var fontPropValue = vidaFontValue && vidaFontValue[part] ? vidaFontValue[part] : null; var isBooleanProperty = booleanProperties.indexOf(part) !== -1; if (fontPropValue) { if (isBooleanProperty) { return true; } else if (part === 'size' && (typeof fontPropValue === 'undefined' ? 'undefined' : _typeof(fontPropValue)) === 'object') { var fontvalue = fontPropValue['value'].toString() + fontPropValue['unit'].toString(); return fontvalue; } else { return fontPropValue.toString(); } } else { return isBooleanProperty ? false : null; } }; PropertiesHelper.splitEscapedString = function splitEscapedString(input, delimiter, outputs) { var index = input.indexOf(delimiter); if (index !== -1 && index !== input.length && input[index - 1] !== '\\') { var result = input.slice(0, index); input = input.slice(index + 1, input.length); outputs.push(result); PropertiesHelper.splitEscapedString(input, delimiter, outputs); } else { outputs.push(input); } }; return PropertiesHelper; }(); return PropertiesHelper; }); //# sourceMappingURL=PropertiesHelper.js.map