* added function to to modify module functions * fix for locations to be sent * changes for class Location - description property was splited into name and address - added url property - added ability to pass name, address and url as options while creating an instance * docs updated * usage example updated * added url checking * fixed url * updated location property in Message class * fixed url when http prefix is provided * injectToFunction updated to be more flexible * docs clarification * ESLint fix * fix: injectToFunction fixed to work properly * minor fix in injectToFunction * refactor: added usage of url validator * small change to improve performance for findImpl fix * window.compareWwebVersions fixed
61 lines
No EOL
1.4 KiB
JavaScript
61 lines
No EOL
1.4 KiB
JavaScript
'use strict';
|
|
|
|
/**
|
|
* Location send options
|
|
* @typedef {Object} LocationSendOptions
|
|
* @property {string} [name] Location name
|
|
* @property {string} [address] Location address
|
|
* @property {string} [url] URL address to be shown within a location message
|
|
*/
|
|
|
|
/**
|
|
* Location information
|
|
*/
|
|
class Location {
|
|
/**
|
|
* @param {number} latitude
|
|
* @param {number} longitude
|
|
* @param {LocationSendOptions} [options] Location send options
|
|
*/
|
|
constructor(latitude, longitude, options = {}) {
|
|
/**
|
|
* Location latitude
|
|
* @type {number}
|
|
*/
|
|
this.latitude = latitude;
|
|
|
|
/**
|
|
* Location longitude
|
|
* @type {number}
|
|
*/
|
|
this.longitude = longitude;
|
|
|
|
/**
|
|
* Name for the location
|
|
* @type {string|undefined}
|
|
*/
|
|
this.name = options.name;
|
|
|
|
/**
|
|
* Location address
|
|
* @type {string|undefined}
|
|
*/
|
|
this.address = options.address;
|
|
|
|
/**
|
|
* URL address to be shown within a location message
|
|
* @type {string|undefined}
|
|
*/
|
|
this.url = options.url;
|
|
|
|
/**
|
|
* Location full description
|
|
* @type {string|undefined}
|
|
*/
|
|
this.description = this.name && this.address
|
|
? `${this.name}\n${this.address}`
|
|
: this.name || this.address || '';
|
|
}
|
|
}
|
|
|
|
module.exports = Location; |