324 lines
7.8 KiB
JavaScript
324 lines
7.8 KiB
JavaScript
/*
|
||
* Copyright © 2016-2019 The Thingsboard Authors
|
||
*
|
||
* 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"
|
||
];
|
||
|
||
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": "^(?!.*[DFIOQU])[A-VXY][0-9][A-Z][ -]?[0-9][A-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}"
|
||
};
|
||
|
||
var linker = function (scope, element) {
|
||
|
||
scope.countries = countries;
|
||
|
||
scope.postalCodePatterns = postalCodePatterns;
|
||
|
||
var template = $templateCache.get(contactTemplate);
|
||
|
||
element.html(template);
|
||
|
||
$compile(element.contents())(scope);
|
||
}
|
||
|
||
return {
|
||
restrict: "E",
|
||
link: linker,
|
||
scope: {
|
||
contact: '=',
|
||
isEdit: '=',
|
||
theForm: '='
|
||
}
|
||
};
|
||
}
|