UNPKG

@ecomplus/utils

Version:

JS utility functions to E-Com Plus (not only) related apps

86 lines (83 loc) 3.34 kB
"use strict"; require("core-js/modules/es.symbol.js"); require("core-js/modules/es.symbol.description.js"); require("core-js/modules/es.symbol.iterator.js"); require("core-js/modules/es.array.iterator.js"); require("core-js/modules/es.string.iterator.js"); require("core-js/modules/web.dom-collections.iterator.js"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; require("core-js/modules/es.array.filter.js"); require("core-js/modules/es.object.to-string.js"); var _config2 = _interopRequireDefault(require("./../lib/config")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } /** * @method * @memberof ecomUtils * @name lineAddress * @description Returns full address string from customer object. * @param {Object.<string, *>} address - Address object or customer body object * @param {string} [noNumberString] - String to show when address has no number * @param {string} [lang=$ecomConfig.get('lang')] - Snake case language code, eg.: 'en_us', 'pt_br' * @returns {string} * * @example * const address = { 'zip': '35800-999', 'name': 'Jonh Lock', 'street': 'Rua Europa', 'number': 900, 'borough': 'Santa Lucia', 'city': 'Bom Despacho', 'province_code': 'MG'} * const lang = 'pt_br' * ecomUtils.lineAddress(address, lang) * // => 'Rua Europa, 900, Santa Lucia | Bom Despacho | MG' */ var lineAddress = function lineAddress(address, noNumberString) { var lang = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _config2.default.get('lang'); // parse to full address string if (address) { var addresses = address.addresses; if (Array.isArray(addresses)) { // customer body object received as param address = addresses.filter(function (addr) { return addr.default; })[0] || addresses[0]; } if (_typeof(address) === 'object' && address !== null) { if (address.line_address) { return address.line_address; } // concat address object properties var _address = address, street = _address.street, number = _address.number, complement = _address.complement, borough = _address.borough, city = _address.city; var province = address.province_code || address.province; var _lineAddress; if (street) { _lineAddress = street + ', ' + number || // address without number noNumberString || (lang === 'pt_br' ? 'S/N' : '-'); if (complement) { _lineAddress += ' - ' + complement; } if (borough) { _lineAddress += ', ' + borough; } } else if (borough) { _lineAddress = borough; } // add city and state if (city) { _lineAddress += ' | ' + city; } if (province) { _lineAddress += ' | ' + province; } return _lineAddress; } } // fallback returning empty string return ''; }; var _default = exports.default = lineAddress;