2016-12-01 11:40:28 +02:00
|
|
|
|
/*
|
2018-03-05 17:34:13 +02:00
|
|
|
|
* Copyright © 2016-2018 The Thingsboard Authors
|
2016-12-01 11:40:28 +02:00
|
|
|
|
*
|
|
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
|
|
* you may not use this file except in compliance with the License.
|
|
|
|
|
|
* You may obtain a copy of the License at
|
|
|
|
|
|
*
|
|
|
|
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
|
*
|
|
|
|
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
|
|
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
|
|
* See the License for the specific language governing permissions and
|
|
|
|
|
|
* limitations under the License.
|
|
|
|
|
|
*/
|
|
|
|
|
|
/* eslint-disable import/no-unresolved, import/default */
|
|
|
|
|
|
|
|
|
|
|
|
import contactTemplate from './contact.tpl.html';
|
|
|
|
|
|
|
|
|
|
|
|
/* eslint-enable import/no-unresolved, import/default */
|
|
|
|
|
|
|
|
|
|
|
|
export default angular.module('thingsboard.directives.contact', [])
|
|
|
|
|
|
.directive('tbContact', Contact)
|
|
|
|
|
|
.name;
|
|
|
|
|
|
|
|
|
|
|
|
/*@ngInject*/
|
|
|
|
|
|
function Contact($compile, $templateCache) {
|
|
|
|
|
|
var countries = [
|
|
|
|
|
|
"Afghanistan",
|
|
|
|
|
|
"Åland Islands",
|
|
|
|
|
|
"Albania",
|
|
|
|
|
|
"Algeria",
|
|
|
|
|
|
"American Samoa",
|
|
|
|
|
|
"Andorra",
|
|
|
|
|
|
"Angola",
|
|
|
|
|
|
"Anguilla",
|
|
|
|
|
|
"Antarctica",
|
|
|
|
|
|
"Antigua and Barbuda",
|
|
|
|
|
|
"Argentina",
|
|
|
|
|
|
"Armenia",
|
|
|
|
|
|
"Aruba",
|
|
|
|
|
|
"Australia",
|
|
|
|
|
|
"Austria",
|
|
|
|
|
|
"Azerbaijan",
|
|
|
|
|
|
"Bahamas",
|
|
|
|
|
|
"Bahrain",
|
|
|
|
|
|
"Bangladesh",
|
|
|
|
|
|
"Barbados",
|
|
|
|
|
|
"Belarus",
|
|
|
|
|
|
"Belgium",
|
|
|
|
|
|
"Belize",
|
|
|
|
|
|
"Benin",
|
|
|
|
|
|
"Bermuda",
|
|
|
|
|
|
"Bhutan",
|
|
|
|
|
|
"Bolivia",
|
|
|
|
|
|
"Bonaire, Sint Eustatius and Saba",
|
|
|
|
|
|
"Bosnia and Herzegovina",
|
|
|
|
|
|
"Botswana",
|
|
|
|
|
|
"Bouvet Island",
|
|
|
|
|
|
"Brazil",
|
|
|
|
|
|
"British Indian Ocean Territory",
|
|
|
|
|
|
"Brunei Darussalam",
|
|
|
|
|
|
"Bulgaria",
|
|
|
|
|
|
"Burkina Faso",
|
|
|
|
|
|
"Burundi",
|
|
|
|
|
|
"Cambodia",
|
|
|
|
|
|
"Cameroon",
|
|
|
|
|
|
"Canada",
|
|
|
|
|
|
"Cape Verde",
|
|
|
|
|
|
"Cayman Islands",
|
|
|
|
|
|
"Central African Republic",
|
|
|
|
|
|
"Chad",
|
|
|
|
|
|
"Chile",
|
|
|
|
|
|
"China",
|
|
|
|
|
|
"Christmas Island",
|
|
|
|
|
|
"Cocos (Keeling) Islands",
|
|
|
|
|
|
"Colombia",
|
|
|
|
|
|
"Comoros",
|
|
|
|
|
|
"Congo",
|
|
|
|
|
|
"Congo, The Democratic Republic of the",
|
|
|
|
|
|
"Cook Islands",
|
|
|
|
|
|
"Costa Rica",
|
|
|
|
|
|
"Côte d'Ivoire",
|
|
|
|
|
|
"Croatia",
|
|
|
|
|
|
"Cuba",
|
|
|
|
|
|
"Curaçao",
|
|
|
|
|
|
"Cyprus",
|
|
|
|
|
|
"Czech Republic",
|
|
|
|
|
|
"Denmark",
|
|
|
|
|
|
"Djibouti",
|
|
|
|
|
|
"Dominica",
|
|
|
|
|
|
"Dominican Republic",
|
|
|
|
|
|
"Ecuador",
|
|
|
|
|
|
"Egypt",
|
|
|
|
|
|
"El Salvador",
|
|
|
|
|
|
"Equatorial Guinea",
|
|
|
|
|
|
"Eritrea",
|
|
|
|
|
|
"Estonia",
|
|
|
|
|
|
"Ethiopia",
|
|
|
|
|
|
"Falkland Islands (Malvinas)",
|
|
|
|
|
|
"Faroe Islands",
|
|
|
|
|
|
"Fiji",
|
|
|
|
|
|
"Finland",
|
|
|
|
|
|
"France",
|
|
|
|
|
|
"French Guiana",
|
|
|
|
|
|
"French Polynesia",
|
|
|
|
|
|
"French Southern Territories",
|
|
|
|
|
|
"Gabon",
|
|
|
|
|
|
"Gambia",
|
|
|
|
|
|
"Georgia",
|
|
|
|
|
|
"Germany",
|
|
|
|
|
|
"Ghana",
|
|
|
|
|
|
"Gibraltar",
|
|
|
|
|
|
"Greece",
|
|
|
|
|
|
"Greenland",
|
|
|
|
|
|
"Grenada",
|
|
|
|
|
|
"Guadeloupe",
|
|
|
|
|
|
"Guam",
|
|
|
|
|
|
"Guatemala",
|
|
|
|
|
|
"Guernsey",
|
|
|
|
|
|
"Guinea",
|
|
|
|
|
|
"Guinea-Bissau",
|
|
|
|
|
|
"Guyana",
|
|
|
|
|
|
"Haiti",
|
|
|
|
|
|
"Heard Island and McDonald Islands",
|
|
|
|
|
|
"Holy See (Vatican City State)",
|
|
|
|
|
|
"Honduras",
|
|
|
|
|
|
"Hong Kong",
|
|
|
|
|
|
"Hungary",
|
|
|
|
|
|
"Iceland",
|
|
|
|
|
|
"India",
|
|
|
|
|
|
"Indonesia",
|
|
|
|
|
|
"Iran, Islamic Republic of",
|
|
|
|
|
|
"Iraq",
|
|
|
|
|
|
"Ireland",
|
|
|
|
|
|
"Isle of Man",
|
|
|
|
|
|
"Israel",
|
|
|
|
|
|
"Italy",
|
|
|
|
|
|
"Jamaica",
|
|
|
|
|
|
"Japan",
|
|
|
|
|
|
"Jersey",
|
|
|
|
|
|
"Jordan",
|
|
|
|
|
|
"Kazakhstan",
|
|
|
|
|
|
"Kenya",
|
|
|
|
|
|
"Kiribati",
|
|
|
|
|
|
"Korea, Democratic People's Republic of",
|
|
|
|
|
|
"Korea, Republic of",
|
|
|
|
|
|
"Kuwait",
|
|
|
|
|
|
"Kyrgyzstan",
|
|
|
|
|
|
"Lao People's Democratic Republic",
|
|
|
|
|
|
"Latvia",
|
|
|
|
|
|
"Lebanon",
|
|
|
|
|
|
"Lesotho",
|
|
|
|
|
|
"Liberia",
|
|
|
|
|
|
"Libya",
|
|
|
|
|
|
"Liechtenstein",
|
|
|
|
|
|
"Lithuania",
|
|
|
|
|
|
"Luxembourg",
|
|
|
|
|
|
"Macao",
|
|
|
|
|
|
"Macedonia, Republic Of",
|
|
|
|
|
|
"Madagascar",
|
|
|
|
|
|
"Malawi",
|
|
|
|
|
|
"Malaysia",
|
|
|
|
|
|
"Maldives",
|
|
|
|
|
|
"Mali",
|
|
|
|
|
|
"Malta",
|
|
|
|
|
|
"Marshall Islands",
|
|
|
|
|
|
"Martinique",
|
|
|
|
|
|
"Mauritania",
|
|
|
|
|
|
"Mauritius",
|
|
|
|
|
|
"Mayotte",
|
|
|
|
|
|
"Mexico",
|
|
|
|
|
|
"Micronesia, Federated States of",
|
|
|
|
|
|
"Moldova, Republic of",
|
|
|
|
|
|
"Monaco",
|
|
|
|
|
|
"Mongolia",
|
|
|
|
|
|
"Montenegro",
|
|
|
|
|
|
"Montserrat",
|
|
|
|
|
|
"Morocco",
|
|
|
|
|
|
"Mozambique",
|
|
|
|
|
|
"Myanmar",
|
|
|
|
|
|
"Namibia",
|
|
|
|
|
|
"Nauru",
|
|
|
|
|
|
"Nepal",
|
|
|
|
|
|
"Netherlands",
|
|
|
|
|
|
"New Caledonia",
|
|
|
|
|
|
"New Zealand",
|
|
|
|
|
|
"Nicaragua",
|
|
|
|
|
|
"Niger",
|
|
|
|
|
|
"Nigeria",
|
|
|
|
|
|
"Niue",
|
|
|
|
|
|
"Norfolk Island",
|
|
|
|
|
|
"Northern Mariana Islands",
|
|
|
|
|
|
"Norway",
|
|
|
|
|
|
"Oman",
|
|
|
|
|
|
"Pakistan",
|
|
|
|
|
|
"Palau",
|
|
|
|
|
|
"Palestinian Territory, Occupied",
|
|
|
|
|
|
"Panama",
|
|
|
|
|
|
"Papua New Guinea",
|
|
|
|
|
|
"Paraguay",
|
|
|
|
|
|
"Peru",
|
|
|
|
|
|
"Philippines",
|
|
|
|
|
|
"Pitcairn",
|
|
|
|
|
|
"Poland",
|
|
|
|
|
|
"Portugal",
|
|
|
|
|
|
"Puerto Rico",
|
|
|
|
|
|
"Qatar",
|
|
|
|
|
|
"Reunion",
|
|
|
|
|
|
"Romania",
|
|
|
|
|
|
"Russian Federation",
|
|
|
|
|
|
"Rwanda",
|
|
|
|
|
|
"Saint Barthélemy",
|
|
|
|
|
|
"Saint Helena, Ascension and Tristan da Cunha",
|
|
|
|
|
|
"Saint Kitts and Nevis",
|
|
|
|
|
|
"Saint Lucia",
|
|
|
|
|
|
"Saint Martin (French Part)",
|
|
|
|
|
|
"Saint Pierre and Miquelon",
|
|
|
|
|
|
"Saint Vincent and the Grenadines",
|
|
|
|
|
|
"Samoa",
|
|
|
|
|
|
"San Marino",
|
|
|
|
|
|
"Sao Tome and Principe",
|
|
|
|
|
|
"Saudi Arabia",
|
|
|
|
|
|
"Senegal",
|
|
|
|
|
|
"Serbia",
|
|
|
|
|
|
"Seychelles",
|
|
|
|
|
|
"Sierra Leone",
|
|
|
|
|
|
"Singapore",
|
|
|
|
|
|
"Sint Maarten (Dutch Part)",
|
|
|
|
|
|
"Slovakia",
|
|
|
|
|
|
"Slovenia",
|
|
|
|
|
|
"Solomon Islands",
|
|
|
|
|
|
"Somalia",
|
|
|
|
|
|
"South Africa",
|
|
|
|
|
|
"South Georgia and the South Sandwich Islands",
|
|
|
|
|
|
"South Sudan",
|
|
|
|
|
|
"Spain",
|
|
|
|
|
|
"Sri Lanka",
|
|
|
|
|
|
"Sudan",
|
|
|
|
|
|
"Suriname",
|
|
|
|
|
|
"Svalbard and Jan Mayen",
|
|
|
|
|
|
"Swaziland",
|
|
|
|
|
|
"Sweden",
|
|
|
|
|
|
"Switzerland",
|
|
|
|
|
|
"Syrian Arab Republic",
|
|
|
|
|
|
"Taiwan",
|
|
|
|
|
|
"Tajikistan",
|
|
|
|
|
|
"Tanzania, United Republic of",
|
|
|
|
|
|
"Thailand",
|
|
|
|
|
|
"Timor-Leste",
|
|
|
|
|
|
"Togo",
|
|
|
|
|
|
"Tokelau",
|
|
|
|
|
|
"Tonga",
|
|
|
|
|
|
"Trinidad and Tobago",
|
|
|
|
|
|
"Tunisia",
|
|
|
|
|
|
"Turkey",
|
|
|
|
|
|
"Turkmenistan",
|
|
|
|
|
|
"Turks and Caicos Islands",
|
|
|
|
|
|
"Tuvalu",
|
|
|
|
|
|
"Uganda",
|
|
|
|
|
|
"Ukraine",
|
|
|
|
|
|
"United Arab Emirates",
|
|
|
|
|
|
"United Kingdom",
|
|
|
|
|
|
"United States",
|
|
|
|
|
|
"United States Minor Outlying Islands",
|
|
|
|
|
|
"Uruguay",
|
|
|
|
|
|
"Uzbekistan",
|
|
|
|
|
|
"Vanuatu",
|
|
|
|
|
|
"Venezuela",
|
|
|
|
|
|
"Viet Nam",
|
|
|
|
|
|
"Virgin Islands, British",
|
|
|
|
|
|
"Virgin Islands, U.S.",
|
|
|
|
|
|
"Wallis and Futuna",
|
|
|
|
|
|
"Western Sahara",
|
|
|
|
|
|
"Yemen",
|
|
|
|
|
|
"Zambia",
|
|
|
|
|
|
"Zimbabwe"
|
|
|
|
|
|
];
|
|
|
|
|
|
|
2017-09-29 10:27:59 +03:00
|
|
|
|
var postalCodePatterns = {
|
|
|
|
|
|
"United States": "(\\d{5}([\\-]\\d{4})?)",
|
|
|
|
|
|
"Australia": "[0-9]{4}",
|
|
|
|
|
|
"Austria": "[0-9]{4}",
|
|
|
|
|
|
"Belgium": "[0-9]{4}",
|
|
|
|
|
|
"Brazil": "[0-9]{5}[\\-]?[0-9]{3}",
|
|
|
|
|
|
"Canada": "[A-Za-z][0-9][A-Za-z] [0-9][A-Za-z][0-9]",
|
|
|
|
|
|
"Denmark": "[0-9]{3,4}",
|
|
|
|
|
|
"Faroe Islands": "[0-9]{3,4}",
|
|
|
|
|
|
"Netherlands": "[1-9][0-9]{3}\\s?[a-zA-Z]{2}",
|
|
|
|
|
|
"Germany": "[0-9]{5}",
|
|
|
|
|
|
"Hungary": "[0-9]{4}",
|
|
|
|
|
|
"Italy": "[0-9]{5}",
|
|
|
|
|
|
"Japan": "\\d{3}-\\d{4}",
|
|
|
|
|
|
"Luxembourg": "(L\\s*(-|—|–))\\s*?[\\d]{4}",
|
|
|
|
|
|
"Poland": "[0-9]{2}\\-[0-9]{3}",
|
|
|
|
|
|
"Spain": "((0[1-9]|5[0-2])|[1-4][0-9])[0-9]{3}",
|
|
|
|
|
|
"Sweden": "\\d{3}\\s?\\d{2}",
|
|
|
|
|
|
"United Kingdom": "[A-Za-z]{1,2}[0-9Rr][0-9A-Za-z]? [0-9][ABD-HJLNP-UW-Zabd-hjlnp-uw-z]{2}"
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2016-12-01 11:40:28 +02:00
|
|
|
|
var linker = function (scope, element) {
|
|
|
|
|
|
|
|
|
|
|
|
scope.countries = countries;
|
|
|
|
|
|
|
2017-09-29 10:27:59 +03:00
|
|
|
|
scope.postalCodePatterns = postalCodePatterns;
|
|
|
|
|
|
|
2016-12-01 11:40:28 +02:00
|
|
|
|
var template = $templateCache.get(contactTemplate);
|
|
|
|
|
|
|
|
|
|
|
|
element.html(template);
|
|
|
|
|
|
|
|
|
|
|
|
$compile(element.contents())(scope);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
|
restrict: "E",
|
|
|
|
|
|
link: linker,
|
|
|
|
|
|
scope: {
|
|
|
|
|
|
contact: '=',
|
|
|
|
|
|
isEdit: '=',
|
|
|
|
|
|
theForm: '='
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
}
|