react-application-core
Version:
A react-based application core for the business applications.
87 lines • 4.41 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.PlaceUtils = exports.asPlaceEntity = exports.toPlaceDescription = void 0;
var R = require("ramda");
var cond_1 = require("./cond");
var type_1 = require("./type");
var definition_1 = require("../definition");
var filter_1 = require("./filter");
var join_1 = require("./join");
/**
* @stable [01.08.2018]
* @param {google.maps.GeocoderAddressComponent} cmp
* @param {(cmp: google.maps.GeocoderAddressComponent) => TType} extractor
* @returns {TType}
*/
exports.toPlaceDescription = function (cmp, extractor) {
return cmp && extractor(cmp);
};
/**
* @stable [04.08.2018]
* @param {google.maps.GeocoderResult | google.maps.places.PlaceResult} place
* @returns {IPlaceEntity}
*/
exports.asPlaceEntity = function (place) {
if (!Array.isArray(place.address_components)) {
return null;
}
return __assign(__assign({}, cond_1.ConditionUtils.ifNotNilThanValue(place.geometry, function (geometry) { return ({
lat: geometry.location.lat(),
lng: geometry.location.lng(),
}); })), { placeId: place.place_id, country: exports.toPlaceDescription(place.address_components.find(function (addr) { return addr.types.includes('country'); }), function (cmp) { return cmp.long_name; }), region: exports.toPlaceDescription(place.address_components.find(function (addr) { return addr.types.includes('administrative_area_level_1'); }), function (cmp) { return cmp.long_name; }), area: exports.toPlaceDescription(place.address_components.find(function (addr) { return addr.types.includes('administrative_area_level_2'); }), function (cmp) { return cmp.long_name; }), city: exports.toPlaceDescription(place.address_components.find(function (addr) { return addr.types.includes('locality'); }), function (cmp) { return cmp.long_name; }), street: exports.toPlaceDescription(place.address_components.find(function (addr) { return addr.types.includes('route'); }), function (cmp) { return cmp.long_name; }), streetNumber: exports.toPlaceDescription(place.address_components.find(function (addr) { return addr.types.includes('street_number'); }), function (cmp) { return cmp.long_name; }), zipCode: exports.toPlaceDescription(place.address_components.find(function (addr) { return addr.types.includes('postal_code'); }), function (cmp) { return cmp.long_name; }) });
};
/**
* @stable [17.05.2020]
* @param {IPlaceEntity} placeEntity
* @returns {string}
*/
var formatPlaceEntity = function (placeEntity) {
return join_1.JoinUtils.join(filter_1.FilterUtils.notEmptyObjectValuesArrayFilter.apply(filter_1.FilterUtils, [
(placeEntity.streetNumber || '') + " " + (placeEntity.street || ''),
placeEntity.city,
placeEntity.region,
placeEntity.country
].map(function (v) { return (v || '').trim(); })), ', ');
};
/**
* @stable [17.05.2020]
* @param {PlaceEntityValueT} placeEntity
* @param {(placeEntity: IPlaceEntity) => string} placeEntityFormatter
* @returns {string}
*/
var fromPlaceEntityToDisplayValue = function (placeEntity, placeEntityFormatter) {
if (placeEntityFormatter === void 0) { placeEntityFormatter = formatPlaceEntity; }
if (R.isNil(placeEntity)) {
return placeEntity;
}
if (type_1.TypeUtils.isPrimitive(placeEntity)) {
return placeEntity;
}
var placeEntityAsObject = placeEntity;
return placeEntityFormatter(placeEntityAsObject)
|| placeEntityAsObject.formattedName
|| definition_1.FieldConstants.DISPLAY_EMPTY_VALUE;
};
/**
* @stable [17.05.2020]
*/
var PlaceUtils = /** @class */ (function () {
function PlaceUtils() {
}
PlaceUtils.formatPlaceEntity = formatPlaceEntity; /* @stable [17.05.2020] */
PlaceUtils.fromPlaceEntityToDisplayValue = fromPlaceEntityToDisplayValue; /* @stable [17.05.2020] */
return PlaceUtils;
}());
exports.PlaceUtils = PlaceUtils;
//# sourceMappingURL=place.js.map