├── .gitignore ├── Gruntfile.js ├── LICENSE ├── README.md ├── angular-timezone-selector.js ├── bower.json ├── build └── angular-timezone-selector.js ├── circle.yml ├── data ├── cca2_to_country_name.csv └── zone.csv ├── dist ├── angular-timezone-selector.css ├── angular-timezone-selector.js ├── angular-timezone-selector.min.css ├── angular-timezone-selector.min.js ├── chosen-sprite.png └── chosen-sprite@2x.png ├── images ├── custom_placeholder.png └── primary_local_selection.png ├── package.json └── styling ├── angular-timezone-selector.css ├── angular-timezone-selector.min.css ├── bootstrap-chosen-variables.less ├── bootstrap-chosen.less ├── chosen-sprite.png └── chosen-sprite@2x.png /.gitignore: -------------------------------------------------------------------------------- 1 | bower_components/ 2 | node_modules/ 3 | .idea 4 | *.iml 5 | -------------------------------------------------------------------------------- /Gruntfile.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | var loader = require('csv-load-sync') 4 | 5 | module.exports = function (grunt) { 6 | grunt.initConfig({ 7 | pkg: grunt.file.readJSON('./package.json'), 8 | 'string-replace': { 9 | inline: { 10 | files: { 11 | 'build/': '<%= pkg.name %>.js' 12 | } 13 | }, 14 | options: { 15 | replacements: [ 16 | { 17 | pattern: 'var zones = []', 18 | replacement: 'var zones = ' + JSON.stringify(loader('./data/zone.csv')) 19 | }, 20 | { 21 | pattern: 'var codes = []', 22 | replacement: 'var codes = ' + JSON.stringify(loader('./data/cca2_to_country_name.csv')) 23 | } 24 | ] 25 | } 26 | }, 27 | uglify: { 28 | dist: { 29 | files: { 30 | 'dist/<%= pkg.name %>.min.js': 'build/<%= pkg.name %>.js' 31 | } 32 | } 33 | }, 34 | less: { 35 | compileless: { 36 | options: { 37 | paths: ['./bower_components/bootstrap/less', './styling'] 38 | }, 39 | files: { 40 | './styling/angular-timezone-selector.css': './styling/bootstrap-chosen.less' 41 | } 42 | } 43 | }, 44 | autoprefixer: { 45 | options: { 46 | browsers: ['last 3 versions', 'ie 8', 'ie 9', 'ie 10', 'ie 11'] 47 | }, 48 | prefix: { 49 | files: { 50 | './styling/angular-timezone-selector.css': './styling/angular-timezone-selector.css' 51 | } 52 | } 53 | }, 54 | cssmin: { 55 | all: { 56 | expand: true, 57 | cwd: './styling/', 58 | src: ['*.css', '!*.min.css'], 59 | dest: './styling/', 60 | ext: '.min.css' 61 | } 62 | }, 63 | 64 | copy: { 65 | dist: { 66 | src: 'build/<%= pkg.name %>.js', 67 | dest: 'dist/<%= pkg.name %>.js' 68 | }, 69 | stylingCss: { 70 | expand: true, 71 | flatten: true, 72 | src: 'styling/*.css', 73 | dest: 'dist/' 74 | }, 75 | stylingSprites: { 76 | expand: true, 77 | flatten: true, 78 | src: 'styling/*.png', 79 | dest: 'dist/' 80 | } 81 | } 82 | }) 83 | 84 | grunt.loadNpmTasks('grunt-contrib-uglify') 85 | grunt.loadNpmTasks('grunt-contrib-copy') 86 | grunt.loadNpmTasks('grunt-string-replace') 87 | grunt.loadNpmTasks('grunt-contrib-cssmin') 88 | grunt.loadNpmTasks('grunt-contrib-less') 89 | grunt.loadNpmTasks('grunt-autoprefixer') 90 | grunt.registerTask('default', ['string-replace', 'uglify', 'less', 'autoprefixer', 'cssmin', 'copy']) 91 | } 92 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Fu Cheng 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # (Ready Only) 2 | 3 | This repository is in a read only state - but creating a fork is always an option. 4 | 5 | # Timezone selector for Angular JS 6 | 7 | A simple AngularJS directive to create timezone select. It uses [chosen](http://harvesthq.github.io/chosen/) to create auto-complete timezone select. Timezone information comes from [moment](http://momentjs.com/timezone/). Countries timezone data comes from [TimezoneDB](http://timezonedb.com/download). 8 | 9 | The user is able to choose their timezone by either typing the name of their country, or the name of the timezone directly. 10 | 11 | The angular model that is bound to this directive will be set to the timezone name as used by [moment-timezone](http://momentjs.com/timezone/docs/) i.e `Pacific/Auckland`. 12 | 13 | ### [View Demo](http://mishguruorg.github.io/angular-timezone-selector/) 14 | ### [Plunker Example](https://plnkr.co/edit/99qoqLYUlFVsaIHUbbT8?p=preview) 15 | 16 | ## Contributing 17 | If you have a feature or fix please submit a pull request! This repo follows JavaScript standard style, please make sure all pull requests comply to this before submitting them. 18 | 19 | [![js-standard-style](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard) 20 | 21 | ![](https://circleci.com/gh/mishguruorg/angular-timezone-selector.svg?style=shield&circle-token=88c9151402abac0c3494528c4c91962538b8d5e2) 22 | 23 | ## Usage 24 | 25 | Install using bower 26 | 27 | ``` 28 | bower install angular-timezone-selector 29 | ``` 30 | 31 | Make your Angular module depend on module `angular-timezone-selector`. 32 | 33 | ```javascript 34 | angular.module('timezoneSelectExample', ['angular-timezone-selector']); 35 | ``` 36 | 37 | Then use directive `timezone-selector`. 38 | 39 | ```html 40 | 41 | ``` 42 | 43 | ## Options 44 | 45 | Options can be included as attributes in the html element. 46 | 47 | - **sort-by** ["offset"] - This lets the list be sorted by UTC offset instead of alphabetical order. 48 | - **display-utc** ["true"] - This show UTC offsets in the timezone names 49 | - **show-local** ["true"] - This detects local timezone's and includes at the top. If jsTimezoneDetect is installed if will include the detected timezone otherwise it fallback on moment js and list all timezones with the same browsers UTC offset. 50 | - **set-local** ["true"] - This sets ngModel to detected timezone if it's not set yet. jsTimezoneDetect must be installed for this option to work. 51 | - **primary-choices** ["space seperated timezone names"] - This lets you put important timezone's at the top of the list or include extra aliases. Use names from momentjs-timezone, which you can list with the command: `moment.tz.names;`. 52 | - **width** - Sets the width of the element 53 | 54 | An example of using the options is below: 55 | 56 | ```html 57 | 66 | ``` 67 | 68 | ## Screenshot 69 | The screenshot below show angular-selector in action with all options enabled: 70 | 71 | 72 | 73 | ## Custom placeholder: 74 | An example of using a custom placeholder message: 75 | 76 | ```html 77 |
78 | 87 | 88 |
89 | ``` 90 | 91 | or with translate: 92 | 93 | ```html 94 |
95 | 104 | 105 |
106 | ``` 107 | 108 | 109 | 110 | ## Author 111 | [Ashok Fernandez](https://github.com/ashokfernandez) 112 | 113 | #### With Thanks To 114 | [M Clark](https://github.com/wassname) for adding options for primary & local timezones, and the ability to show and sort by offset. 115 | 116 | [a-k-g](https://github.com/a-k-g) for fixing syntax error in data file and reminding me to update the bower tags! 117 | 118 | [Tom Grooffer](https://github.com/tomgrooffer) for fixing a crash with JSTZ 119 | 120 | [karlhaas](https://github.com/karlhaas) for fixing a crash when two instances were present on the same page and adding injectable strings and translations 121 | 122 | [G-Lex](https://github.com/G-Lex) for adding the ability to set the width when creating the directive 123 | 124 | [Gu1](https://github.com/Gu1) for making sure that moment was properly injected 125 | 126 | [tiagotex](https://github.com/tiagotex) for adding the ability to set the local timezone as default, and fixing a bug where primary timezones with spaces wouldn't work 127 | 128 | [Rémy Dufour](https://github.com/Kilimangaro) for adding Montreal as a timezone 129 | 130 | [Akiko Takano](https://github.com/akiko-pusu) for adding more translation support 131 | 132 | #### Attributions 133 | Inspired by [angular-timezone-select](https://github.com/alexcheng1982/angular-timezone-select) from [alexcheng1982](https://github.com/alexcheng1982). 134 | 135 | Styled using the examples from [bootstrap-chosen](https://github.com/alxlit/bootstrap-chosen) by [alxlit](https://github.com/alxlit) 136 | -------------------------------------------------------------------------------- /angular-timezone-selector.js: -------------------------------------------------------------------------------- 1 | /*global angular, _, moment, $, jstz*/ 2 | 3 | /** 4 | * angular-timezone-selector 5 | * 6 | * A simple directive that allows a user to pick their timezone 7 | * 8 | * Author: Ashok Fernandez 9 | * Date: 12/06/2015 10 | * License: MIT 11 | */ 12 | 13 | angular.module('angular-timezone-selector', []) 14 | .constant('_', _) 15 | .constant('moment', moment) 16 | .factory('timezoneFactory', ['_', 'moment', function (_, moment) { 17 | return { 18 | get: function () { 19 | var timezoneMap = {} 20 | _.forEach(moment.tz.names(), function (zoneName) { 21 | var tz = moment.tz(zoneName) 22 | timezoneMap[zoneName] = { 23 | id: zoneName, 24 | name: zoneName.replace(/_/g, ' '), 25 | offset: 'UTC' + tz.format('Z'), 26 | nOffset: tz.utcOffset() 27 | } 28 | }) 29 | return timezoneMap 30 | } 31 | } 32 | }]) 33 | 34 | // Timezone name to country codemap 35 | .factory('zoneToCC', ['_', function (_) { 36 | // Note: zones is populated with the data from 'data/zone.csv' when this file is built 37 | var zones = [] 38 | var zoneMap = {} 39 | _.forEach(zones, function (zone) { 40 | zoneMap[zone.name] = zone.cca2 41 | }) 42 | return zoneMap 43 | }]) 44 | 45 | // Country code to country name map 46 | .factory('CCToCountryName', ['_', function (_) { 47 | // Note: codes is populated with the data from 'data/cca2_to_country_name.csv' when this file is built 48 | var codes = [] 49 | var codeMap = {} 50 | _.forEach(codes, function (code) { 51 | codeMap[code.cca2] = code.name 52 | }) 53 | return codeMap 54 | }]) 55 | 56 | .directive('timezoneSelector', ['_', 'moment', 'timezoneFactory', 'zoneToCC', 'CCToCountryName', function (_, moment, timezoneFactory, zoneToCC, CCToCountryName) { 57 | return { 58 | restrict: 'E', 59 | replace: true, 60 | template: '', 61 | scope: { 62 | ngModel: '=', 63 | translations: '=' 64 | }, 65 | link: function ($scope, elem, attrs) { 66 | var data = [] 67 | var timezones = timezoneFactory.get() 68 | 69 | // Group the timezones by their country code 70 | var timezonesGroupedByCC = {} 71 | _.forEach(timezones, function (timezone) { 72 | if (_.has(zoneToCC, timezone.id)) { 73 | var CC = zoneToCC[timezone.id] 74 | timezonesGroupedByCC[CC] = !timezonesGroupedByCC[CC] ? [] : timezonesGroupedByCC[CC] 75 | timezonesGroupedByCC[CC].push(timezone) 76 | } 77 | }) 78 | 79 | // Add the grouped countries to the data array with their country name as the group option 80 | _.forEach(timezonesGroupedByCC, function (zonesByCountry, CC) { 81 | var zonesForCountry = { 82 | text: CCToCountryName[CC] + ': ', 83 | children: zonesByCountry, 84 | firstNOffset: zonesByCountry[0].nOffset 85 | } 86 | 87 | data.push(zonesForCountry) 88 | }) 89 | 90 | // Sort by UTC or country name 91 | if (attrs.sortBy === 'offset') { 92 | data = _.sortBy(data, 'firstNOffset') 93 | _.forEach(data, function (zonesForCountry, key) { 94 | zonesForCountry.children = _.sortBy(zonesForCountry.children, 'nOffset') 95 | }) 96 | } else { 97 | data = _.sortBy(data, 'text') 98 | } 99 | 100 | // add initial options forlocal 101 | if (attrs.showLocal !== undefined) { 102 | if (jstz !== undefined) { 103 | // Make sure the tz from jstz has underscores replaced with spaces so it matches 104 | // the format used in timezoneFactory 105 | var extraTZs = _.filter(timezones, { 'id': jstz.determine().name() }) 106 | } else { 107 | var localUTC = 'UTC' + moment().format('Z') 108 | extraTZs = _.filter(timezones, {'offset': localUTC}) 109 | } 110 | 111 | if (extraTZs !== undefined && extraTZs.length > 0) { 112 | data.splice(0, 0, { 113 | text: _.get($scope, 'translations.local', 'Local') + ': ', 114 | children: extraTZs, 115 | firstNOffset: extraTZs[0].nOffset, 116 | firstOffset: extraTZs[0].offset 117 | }) 118 | } 119 | } 120 | 121 | if (attrs.setLocal !== undefined) { 122 | if (jstz !== undefined) { 123 | $scope.ngModel || ($scope.ngModel = jstz.determine().name()) 124 | } 125 | } 126 | 127 | // add initial options 128 | if (attrs.primaryChoices !== undefined) { 129 | var primaryChoices = [] 130 | _.forEach(attrs.primaryChoices.split(' '), function (choice) { 131 | primaryChoices.push(choice.replace('_', ' ')) 132 | }) 133 | extraTZs = _.filter(timezones, function (tz) { return _.includes(primaryChoices, tz.name) }) 134 | 135 | if (extraTZs !== undefined && extraTZs.length > 0) { 136 | data.splice(0, 0, { 137 | text: _.get($scope, 'translations.primary', 'Primary') + ': ', 138 | children: extraTZs, 139 | firstNOffset: extraTZs[0].nOffset, 140 | firstOffset: extraTZs[0].offset 141 | }) 142 | } 143 | } 144 | 145 | // Construct a select box with the timezones grouped by country 146 | _.forEach(data, function (group) { 147 | var optgroup = $('') 148 | group.children.forEach(function (option) { 149 | if (attrs.displayUtc === 'true' && option.name.indexOf('(UTC') === -1) { 150 | option.name = option.name + ' (' + option.offset + ')' 151 | } 152 | 153 | optgroup.append('') 155 | }) 156 | elem.append(optgroup) 157 | }) 158 | 159 | // Initialise the chosen box 160 | elem.chosen({ 161 | width: attrs.width || '300px', 162 | include_group_label_in_selected: true, 163 | search_contains: true, 164 | no_results_text: _.get($scope, 'translations.no_results_text', 165 | 'No results, try searching for the name of your country or nearest major city.'), 166 | placeholder_text_single: _.get($scope, 'translations.placeholder', 'Choose a timezone') 167 | }) 168 | 169 | // Update the box if ngModel changes 170 | $scope.$watch('ngModel', function () { 171 | elem.val($scope.ngModel) 172 | elem.trigger('chosen:updated') 173 | }) 174 | } 175 | } 176 | }]); 177 | -------------------------------------------------------------------------------- /bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-timezone-selector", 3 | "version": "1.6.0", 4 | "homepage": "https://github.com/mishguruorg/angular-timezone-selector", 5 | "authors": [ 6 | "Ashok Fernandez " 7 | ], 8 | "description": "Timezone selector for Angular JS", 9 | "main": [ 10 | "dist/angular-timezone-selector.js", 11 | "dist/angular-timezone-selector.css" 12 | ], 13 | "keywords": [ 14 | "timezone", 15 | "select" 16 | ], 17 | "license": "MIT", 18 | "ignore": [ 19 | "**/.*", 20 | "node_modules", 21 | "bower_components", 22 | "test", 23 | "tests" 24 | ], 25 | "dependencies": { 26 | "angular": "~1.3.8", 27 | "moment": "~2.10.3", 28 | "moment-timezone": "~0.4.0", 29 | "lodash": "4.0.1", 30 | "chosen": "~1.4.2", 31 | "bootstrap": "~3.3.4", 32 | "jstzdetect": "jsTimezoneDetect#~1.0.6" 33 | }, 34 | "resolutions": { 35 | "lodash": "4.0.1" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /build/angular-timezone-selector.js: -------------------------------------------------------------------------------- 1 | /*global angular, _, moment, $, jstz*/ 2 | 3 | /** 4 | * angular-timezone-selector 5 | * 6 | * A simple directive that allows a user to pick their timezone 7 | * 8 | * Author: Ashok Fernandez 9 | * Date: 12/06/2015 10 | * License: MIT 11 | */ 12 | 13 | angular.module('angular-timezone-selector', []) 14 | .constant('_', _) 15 | .constant('moment', moment) 16 | .factory('timezoneFactory', ['_', 'moment', function (_, moment) { 17 | return { 18 | get: function () { 19 | var timezoneMap = {} 20 | _.forEach(moment.tz.names(), function (zoneName) { 21 | var tz = moment.tz(zoneName) 22 | timezoneMap[zoneName] = { 23 | id: zoneName, 24 | name: zoneName.replace(/_/g, ' '), 25 | offset: 'UTC' + tz.format('Z'), 26 | nOffset: tz.utcOffset() 27 | } 28 | }) 29 | return timezoneMap 30 | } 31 | } 32 | }]) 33 | 34 | // Timezone name to country codemap 35 | .factory('zoneToCC', ['_', function (_) { 36 | // Note: zones is populated with the data from 'data/zone.csv' when this file is built 37 | var zones = [{"id":"1","cca2":"AD","name":"Europe/Andorra"},{"id":"2","cca2":"AE","name":"Asia/Dubai"},{"id":"3","cca2":"AF","name":"Asia/Kabul"},{"id":"4","cca2":"AG","name":"America/Antigua"},{"id":"5","cca2":"AI","name":"America/Anguilla"},{"id":"6","cca2":"AL","name":"Europe/Tirane"},{"id":"7","cca2":"AM","name":"Asia/Yerevan"},{"id":"8","cca2":"AO","name":"Africa/Luanda"},{"id":"9","cca2":"AQ","name":"Antarctica/McMurdo"},{"id":"10","cca2":"AQ","name":"Antarctica/Rothera"},{"id":"11","cca2":"AQ","name":"Antarctica/Palmer"},{"id":"12","cca2":"AQ","name":"Antarctica/Mawson"},{"id":"13","cca2":"AQ","name":"Antarctica/Davis"},{"id":"14","cca2":"AQ","name":"Antarctica/Casey"},{"id":"15","cca2":"AQ","name":"Antarctica/Vostok"},{"id":"16","cca2":"AQ","name":"Antarctica/DumontDUrville"},{"id":"17","cca2":"AQ","name":"Antarctica/Syowa"},{"id":"18","cca2":"AQ","name":"Antarctica/Troll"},{"id":"19","cca2":"AR","name":"America/Argentina/Buenos_Aires"},{"id":"20","cca2":"AR","name":"America/Argentina/Cordoba"},{"id":"21","cca2":"AR","name":"America/Argentina/Salta"},{"id":"22","cca2":"AR","name":"America/Argentina/Jujuy"},{"id":"23","cca2":"AR","name":"America/Argentina/Tucuman"},{"id":"24","cca2":"AR","name":"America/Argentina/Catamarca"},{"id":"25","cca2":"AR","name":"America/Argentina/La_Rioja"},{"id":"26","cca2":"AR","name":"America/Argentina/San_Juan"},{"id":"27","cca2":"AR","name":"America/Argentina/Mendoza"},{"id":"28","cca2":"AR","name":"America/Argentina/San_Luis"},{"id":"29","cca2":"AR","name":"America/Argentina/Rio_Gallegos"},{"id":"30","cca2":"AR","name":"America/Argentina/Ushuaia"},{"id":"31","cca2":"AS","name":"Pacific/Pago_Pago"},{"id":"32","cca2":"AT","name":"Europe/Vienna"},{"id":"33","cca2":"AU","name":"Australia/Lord_Howe"},{"id":"34","cca2":"AU","name":"Antarctica/Macquarie"},{"id":"35","cca2":"AU","name":"Australia/Hobart"},{"id":"36","cca2":"AU","name":"Australia/Currie"},{"id":"37","cca2":"AU","name":"Australia/Melbourne"},{"id":"38","cca2":"AU","name":"Australia/Sydney"},{"id":"39","cca2":"AU","name":"Australia/Broken_Hill"},{"id":"40","cca2":"AU","name":"Australia/Brisbane"},{"id":"41","cca2":"AU","name":"Australia/Lindeman"},{"id":"42","cca2":"AU","name":"Australia/Adelaide"},{"id":"43","cca2":"AU","name":"Australia/Darwin"},{"id":"44","cca2":"AU","name":"Australia/Perth"},{"id":"45","cca2":"AU","name":"Australia/Eucla"},{"id":"46","cca2":"AW","name":"America/Aruba"},{"id":"47","cca2":"AX","name":"Europe/Mariehamn"},{"id":"48","cca2":"AZ","name":"Asia/Baku"},{"id":"49","cca2":"BA","name":"Europe/Sarajevo"},{"id":"50","cca2":"BB","name":"America/Barbados"},{"id":"51","cca2":"BD","name":"Asia/Dhaka"},{"id":"52","cca2":"BE","name":"Europe/Brussels"},{"id":"53","cca2":"BF","name":"Africa/Ouagadougou"},{"id":"54","cca2":"BG","name":"Europe/Sofia"},{"id":"55","cca2":"BH","name":"Asia/Bahrain"},{"id":"56","cca2":"BI","name":"Africa/Bujumbura"},{"id":"57","cca2":"BJ","name":"Africa/Porto-Novo"},{"id":"58","cca2":"BL","name":"America/St_Barthelemy"},{"id":"59","cca2":"BM","name":"Atlantic/Bermuda"},{"id":"60","cca2":"BN","name":"Asia/Brunei"},{"id":"61","cca2":"BO","name":"America/La_Paz"},{"id":"62","cca2":"BQ","name":"America/Kralendijk"},{"id":"63","cca2":"BR","name":"America/Noronha"},{"id":"64","cca2":"BR","name":"America/Belem"},{"id":"65","cca2":"BR","name":"America/Fortaleza"},{"id":"66","cca2":"BR","name":"America/Recife"},{"id":"67","cca2":"BR","name":"America/Araguaina"},{"id":"68","cca2":"BR","name":"America/Maceio"},{"id":"69","cca2":"BR","name":"America/Bahia"},{"id":"70","cca2":"BR","name":"America/Sao_Paulo"},{"id":"71","cca2":"BR","name":"America/Campo_Grande"},{"id":"72","cca2":"BR","name":"America/Cuiaba"},{"id":"73","cca2":"BR","name":"America/Santarem"},{"id":"74","cca2":"BR","name":"America/Porto_Velho"},{"id":"75","cca2":"BR","name":"America/Boa_Vista"},{"id":"76","cca2":"BR","name":"America/Manaus"},{"id":"77","cca2":"BR","name":"America/Eirunepe"},{"id":"78","cca2":"BR","name":"America/Rio_Branco"},{"id":"79","cca2":"BS","name":"America/Nassau"},{"id":"80","cca2":"BT","name":"Asia/Thimphu"},{"id":"81","cca2":"BW","name":"Africa/Gaborone"},{"id":"82","cca2":"BY","name":"Europe/Minsk"},{"id":"83","cca2":"BZ","name":"America/Belize"},{"id":"84","cca2":"CA","name":"America/St_Johns"},{"id":"85","cca2":"CA","name":"America/Halifax"},{"id":"86","cca2":"CA","name":"America/Glace_Bay"},{"id":"87","cca2":"CA","name":"America/Moncton"},{"id":"88","cca2":"CA","name":"America/Goose_Bay"},{"id":"89","cca2":"CA","name":"America/Blanc-Sablon"},{"id":"90","cca2":"CA","name":"America/Toronto"},{"id":"91","cca2":"CA","name":"America/Nipigon"},{"id":"92","cca2":"CA","name":"America/Thunder_Bay"},{"id":"93","cca2":"CA","name":"America/Iqaluit"},{"id":"94","cca2":"CA","name":"America/Pangnirtung"},{"id":"95","cca2":"CA","name":"America/Resolute"},{"id":"96","cca2":"CA","name":"America/Atikokan"},{"id":"97","cca2":"CA","name":"America/Rankin_Inlet"},{"id":"98","cca2":"CA","name":"America/Winnipeg"},{"id":"99","cca2":"CA","name":"America/Rainy_River"},{"id":"100","cca2":"CA","name":"America/Regina"},{"id":"101","cca2":"CA","name":"America/Swift_Current"},{"id":"102","cca2":"CA","name":"America/Edmonton"},{"id":"103","cca2":"CA","name":"America/Cambridge_Bay"},{"id":"104","cca2":"CA","name":"America/Yellowknife"},{"id":"105","cca2":"CA","name":"America/Inuvik"},{"id":"106","cca2":"CA","name":"America/Creston"},{"id":"107","cca2":"CA","name":"America/Dawson_Creek"},{"id":"108","cca2":"CA","name":"America/Vancouver"},{"id":"109","cca2":"CA","name":"America/Whitehorse"},{"id":"110","cca2":"CA","name":"America/Dawson"},{"id":"111","cca2":"CC","name":"Indian/Cocos"},{"id":"112","cca2":"CD","name":"Africa/Kinshasa"},{"id":"113","cca2":"CD","name":"Africa/Lubumbashi"},{"id":"114","cca2":"CF","name":"Africa/Bangui"},{"id":"115","cca2":"CG","name":"Africa/Brazzaville"},{"id":"116","cca2":"CH","name":"Europe/Zurich"},{"id":"117","cca2":"CI","name":"Africa/Abidjan"},{"id":"118","cca2":"CK","name":"Pacific/Rarotonga"},{"id":"119","cca2":"CL","name":"America/Santiago"},{"id":"120","cca2":"CL","name":"Pacific/Easter"},{"id":"121","cca2":"CM","name":"Africa/Douala"},{"id":"122","cca2":"CN","name":"Asia/Shanghai"},{"id":"123","cca2":"CN","name":"Asia/Harbin"},{"id":"124","cca2":"CN","name":"Asia/Chongqing"},{"id":"125","cca2":"CN","name":"Asia/Urumqi"},{"id":"126","cca2":"CN","name":"Asia/Kashgar"},{"id":"127","cca2":"CO","name":"America/Bogota"},{"id":"128","cca2":"CR","name":"America/Costa_Rica"},{"id":"129","cca2":"CU","name":"America/Havana"},{"id":"130","cca2":"CV","name":"Atlantic/Cape_Verde"},{"id":"131","cca2":"CW","name":"America/Curacao"},{"id":"132","cca2":"CX","name":"Indian/Christmas"},{"id":"133","cca2":"CY","name":"Asia/Nicosia"},{"id":"134","cca2":"CZ","name":"Europe/Prague"},{"id":"135","cca2":"DE","name":"Europe/Berlin"},{"id":"136","cca2":"DE","name":"Europe/Busingen"},{"id":"137","cca2":"DJ","name":"Africa/Djibouti"},{"id":"138","cca2":"DK","name":"Europe/Copenhagen"},{"id":"139","cca2":"DM","name":"America/Dominica"},{"id":"140","cca2":"DO","name":"America/Santo_Domingo"},{"id":"141","cca2":"DZ","name":"Africa/Algiers"},{"id":"142","cca2":"EC","name":"America/Guayaquil"},{"id":"143","cca2":"EC","name":"Pacific/Galapagos"},{"id":"144","cca2":"EE","name":"Europe/Tallinn"},{"id":"145","cca2":"EG","name":"Africa/Cairo"},{"id":"146","cca2":"EH","name":"Africa/El_Aaiun"},{"id":"147","cca2":"ER","name":"Africa/Asmara"},{"id":"148","cca2":"ES","name":"Europe/Madrid"},{"id":"149","cca2":"ES","name":"Africa/Ceuta"},{"id":"150","cca2":"ES","name":"Atlantic/Canary"},{"id":"151","cca2":"ET","name":"Africa/Addis_Ababa"},{"id":"152","cca2":"FI","name":"Europe/Helsinki"},{"id":"153","cca2":"FJ","name":"Pacific/Fiji"},{"id":"154","cca2":"FK","name":"Atlantic/Stanley"},{"id":"155","cca2":"FM","name":"Pacific/Chuuk"},{"id":"156","cca2":"FM","name":"Pacific/Pohnpei"},{"id":"157","cca2":"FM","name":"Pacific/Kosrae"},{"id":"158","cca2":"FO","name":"Atlantic/Faroe"},{"id":"159","cca2":"FR","name":"Europe/Paris"},{"id":"160","cca2":"GA","name":"Africa/Libreville"},{"id":"161","cca2":"GB","name":"Europe/London"},{"id":"162","cca2":"GD","name":"America/Grenada"},{"id":"163","cca2":"GE","name":"Asia/Tbilisi"},{"id":"164","cca2":"GF","name":"America/Cayenne"},{"id":"165","cca2":"GG","name":"Europe/Guernsey"},{"id":"166","cca2":"GH","name":"Africa/Accra"},{"id":"167","cca2":"GI","name":"Europe/Gibraltar"},{"id":"168","cca2":"GL","name":"America/Godthab"},{"id":"169","cca2":"GL","name":"America/Danmarkshavn"},{"id":"170","cca2":"GL","name":"America/Scoresbysund"},{"id":"171","cca2":"GL","name":"America/Thule"},{"id":"172","cca2":"GM","name":"Africa/Banjul"},{"id":"173","cca2":"GN","name":"Africa/Conakry"},{"id":"174","cca2":"GP","name":"America/Guadeloupe"},{"id":"175","cca2":"GQ","name":"Africa/Malabo"},{"id":"176","cca2":"GR","name":"Europe/Athens"},{"id":"177","cca2":"GS","name":"Atlantic/South_Georgia"},{"id":"178","cca2":"GT","name":"America/Guatemala"},{"id":"179","cca2":"GU","name":"Pacific/Guam"},{"id":"180","cca2":"GW","name":"Africa/Bissau"},{"id":"181","cca2":"GY","name":"America/Guyana"},{"id":"182","cca2":"HK","name":"Asia/Hong_Kong"},{"id":"183","cca2":"HN","name":"America/Tegucigalpa"},{"id":"184","cca2":"HR","name":"Europe/Zagreb"},{"id":"185","cca2":"HT","name":"America/Port-au-Prince"},{"id":"186","cca2":"HU","name":"Europe/Budapest"},{"id":"187","cca2":"ID","name":"Asia/Jakarta"},{"id":"188","cca2":"ID","name":"Asia/Pontianak"},{"id":"189","cca2":"ID","name":"Asia/Makassar"},{"id":"190","cca2":"ID","name":"Asia/Jayapura"},{"id":"191","cca2":"IE","name":"Europe/Dublin"},{"id":"192","cca2":"IL","name":"Asia/Jerusalem"},{"id":"193","cca2":"IM","name":"Europe/Isle_of_Man"},{"id":"194","cca2":"IN","name":"Asia/Kolkata"},{"id":"195","cca2":"IO","name":"Indian/Chagos"},{"id":"196","cca2":"IQ","name":"Asia/Baghdad"},{"id":"197","cca2":"IR","name":"Asia/Tehran"},{"id":"198","cca2":"IS","name":"Atlantic/Reykjavik"},{"id":"199","cca2":"IT","name":"Europe/Rome"},{"id":"200","cca2":"JE","name":"Europe/Jersey"},{"id":"201","cca2":"JM","name":"America/Jamaica"},{"id":"202","cca2":"JO","name":"Asia/Amman"},{"id":"203","cca2":"JP","name":"Asia/Tokyo"},{"id":"204","cca2":"KE","name":"Africa/Nairobi"},{"id":"205","cca2":"KG","name":"Asia/Bishkek"},{"id":"206","cca2":"KH","name":"Asia/Phnom_Penh"},{"id":"207","cca2":"KI","name":"Pacific/Tarawa"},{"id":"208","cca2":"KI","name":"Pacific/Enderbury"},{"id":"209","cca2":"KI","name":"Pacific/Kiritimati"},{"id":"210","cca2":"KM","name":"Indian/Comoro"},{"id":"211","cca2":"KN","name":"America/St_Kitts"},{"id":"212","cca2":"KP","name":"Asia/Pyongyang"},{"id":"213","cca2":"KR","name":"Asia/Seoul"},{"id":"214","cca2":"KW","name":"Asia/Kuwait"},{"id":"215","cca2":"KY","name":"America/Cayman"},{"id":"216","cca2":"KZ","name":"Asia/Almaty"},{"id":"217","cca2":"KZ","name":"Asia/Qyzylorda"},{"id":"218","cca2":"KZ","name":"Asia/Aqtobe"},{"id":"219","cca2":"KZ","name":"Asia/Aqtau"},{"id":"220","cca2":"KZ","name":"Asia/Oral"},{"id":"221","cca2":"LA","name":"Asia/Vientiane"},{"id":"222","cca2":"LB","name":"Asia/Beirut"},{"id":"223","cca2":"LC","name":"America/St_Lucia"},{"id":"224","cca2":"LI","name":"Europe/Vaduz"},{"id":"225","cca2":"LK","name":"Asia/Colombo"},{"id":"226","cca2":"LR","name":"Africa/Monrovia"},{"id":"227","cca2":"LS","name":"Africa/Maseru"},{"id":"228","cca2":"LT","name":"Europe/Vilnius"},{"id":"229","cca2":"LU","name":"Europe/Luxembourg"},{"id":"230","cca2":"LV","name":"Europe/Riga"},{"id":"231","cca2":"LY","name":"Africa/Tripoli"},{"id":"232","cca2":"MA","name":"Africa/Casablanca"},{"id":"233","cca2":"MC","name":"Europe/Monaco"},{"id":"234","cca2":"MD","name":"Europe/Chisinau"},{"id":"235","cca2":"ME","name":"Europe/Podgorica"},{"id":"236","cca2":"MF","name":"America/Marigot"},{"id":"237","cca2":"MG","name":"Indian/Antananarivo"},{"id":"238","cca2":"MH","name":"Pacific/Majuro"},{"id":"239","cca2":"MH","name":"Pacific/Kwajalein"},{"id":"240","cca2":"MK","name":"Europe/Skopje"},{"id":"241","cca2":"ML","name":"Africa/Bamako"},{"id":"242","cca2":"MM","name":"Asia/Rangoon"},{"id":"243","cca2":"MN","name":"Asia/Ulaanbaatar"},{"id":"244","cca2":"MN","name":"Asia/Hovd"},{"id":"245","cca2":"MN","name":"Asia/Choibalsan"},{"id":"246","cca2":"MO","name":"Asia/Macau"},{"id":"247","cca2":"MP","name":"Pacific/Saipan"},{"id":"248","cca2":"MQ","name":"America/Martinique"},{"id":"249","cca2":"MR","name":"Africa/Nouakchott"},{"id":"250","cca2":"MS","name":"America/Montserrat"},{"id":"251","cca2":"MT","name":"Europe/Malta"},{"id":"252","cca2":"MU","name":"Indian/Mauritius"},{"id":"253","cca2":"MV","name":"Indian/Maldives"},{"id":"254","cca2":"MW","name":"Africa/Blantyre"},{"id":"255","cca2":"MX","name":"America/Mexico_City"},{"id":"256","cca2":"MX","name":"America/Cancun"},{"id":"257","cca2":"MX","name":"America/Merida"},{"id":"258","cca2":"MX","name":"America/Monterrey"},{"id":"259","cca2":"MX","name":"America/Matamoros"},{"id":"260","cca2":"MX","name":"America/Mazatlan"},{"id":"261","cca2":"MX","name":"America/Chihuahua"},{"id":"262","cca2":"MX","name":"America/Ojinaga"},{"id":"263","cca2":"MX","name":"America/Hermosillo"},{"id":"264","cca2":"MX","name":"America/Tijuana"},{"id":"265","cca2":"MX","name":"America/Santa_Isabel"},{"id":"266","cca2":"MX","name":"America/Bahia_Banderas"},{"id":"267","cca2":"MY","name":"Asia/Kuala_Lumpur"},{"id":"268","cca2":"MY","name":"Asia/Kuching"},{"id":"269","cca2":"MZ","name":"Africa/Maputo"},{"id":"270","cca2":"NA","name":"Africa/Windhoek"},{"id":"271","cca2":"NC","name":"Pacific/Noumea"},{"id":"272","cca2":"NE","name":"Africa/Niamey"},{"id":"273","cca2":"NF","name":"Pacific/Norfolk"},{"id":"274","cca2":"NG","name":"Africa/Lagos"},{"id":"275","cca2":"NI","name":"America/Managua"},{"id":"276","cca2":"NL","name":"Europe/Amsterdam"},{"id":"277","cca2":"NO","name":"Europe/Oslo"},{"id":"278","cca2":"NP","name":"Asia/Kathmandu"},{"id":"279","cca2":"NR","name":"Pacific/Nauru"},{"id":"280","cca2":"NU","name":"Pacific/Niue"},{"id":"281","cca2":"NZ","name":"Pacific/Auckland"},{"id":"282","cca2":"NZ","name":"Pacific/Chatham"},{"id":"283","cca2":"OM","name":"Asia/Muscat"},{"id":"284","cca2":"PA","name":"America/Panama"},{"id":"285","cca2":"PE","name":"America/Lima"},{"id":"286","cca2":"PF","name":"Pacific/Tahiti"},{"id":"287","cca2":"PF","name":"Pacific/Marquesas"},{"id":"288","cca2":"PF","name":"Pacific/Gambier"},{"id":"289","cca2":"PG","name":"Pacific/Port_Moresby"},{"id":"290","cca2":"PH","name":"Asia/Manila"},{"id":"291","cca2":"PK","name":"Asia/Karachi"},{"id":"292","cca2":"PL","name":"Europe/Warsaw"},{"id":"293","cca2":"PM","name":"America/Miquelon"},{"id":"294","cca2":"PN","name":"Pacific/Pitcairn"},{"id":"295","cca2":"PR","name":"America/Puerto_Rico"},{"id":"296","cca2":"PS","name":"Asia/Gaza"},{"id":"297","cca2":"PS","name":"Asia/Hebron"},{"id":"298","cca2":"PT","name":"Europe/Lisbon"},{"id":"299","cca2":"PT","name":"Atlantic/Madeira"},{"id":"300","cca2":"PT","name":"Atlantic/Azores"},{"id":"301","cca2":"PW","name":"Pacific/Palau"},{"id":"302","cca2":"PY","name":"America/Asuncion"},{"id":"303","cca2":"QA","name":"Asia/Qatar"},{"id":"304","cca2":"RE","name":"Indian/Reunion"},{"id":"305","cca2":"RO","name":"Europe/Bucharest"},{"id":"306","cca2":"RS","name":"Europe/Belgrade"},{"id":"307","cca2":"RU","name":"Europe/Kaliningrad"},{"id":"308","cca2":"RU","name":"Europe/Moscow"},{"id":"309","cca2":"RU","name":"Europe/Volgograd"},{"id":"310","cca2":"RU","name":"Europe/Samara"},{"id":"311","cca2":"RU","name":"Europe/Simferopol"},{"id":"312","cca2":"RU","name":"Asia/Yekaterinburg"},{"id":"313","cca2":"RU","name":"Asia/Omsk"},{"id":"314","cca2":"RU","name":"Asia/Novosibirsk"},{"id":"315","cca2":"RU","name":"Asia/Novokuznetsk"},{"id":"316","cca2":"RU","name":"Asia/Krasnoyarsk"},{"id":"317","cca2":"RU","name":"Asia/Irkutsk"},{"id":"318","cca2":"RU","name":"Asia/Yakutsk"},{"id":"319","cca2":"RU","name":"Asia/Khandyga"},{"id":"320","cca2":"RU","name":"Asia/Vladivostok"},{"id":"321","cca2":"RU","name":"Asia/Sakhalin"},{"id":"322","cca2":"RU","name":"Asia/Ust-Nera"},{"id":"323","cca2":"RU","name":"Asia/Magadan"},{"id":"324","cca2":"RU","name":"Asia/Kamchatka"},{"id":"325","cca2":"RU","name":"Asia/Anadyr"},{"id":"326","cca2":"RW","name":"Africa/Kigali"},{"id":"327","cca2":"SA","name":"Asia/Riyadh"},{"id":"328","cca2":"SB","name":"Pacific/Guadalcanal"},{"id":"329","cca2":"SC","name":"Indian/Mahe"},{"id":"330","cca2":"SD","name":"Africa/Khartoum"},{"id":"331","cca2":"SE","name":"Europe/Stockholm"},{"id":"332","cca2":"SG","name":"Asia/Singapore"},{"id":"333","cca2":"SH","name":"Atlantic/St_Helena"},{"id":"334","cca2":"SI","name":"Europe/Ljubljana"},{"id":"335","cca2":"SJ","name":"Arctic/Longyearbyen"},{"id":"336","cca2":"SK","name":"Europe/Bratislava"},{"id":"337","cca2":"SL","name":"Africa/Freetown"},{"id":"338","cca2":"SM","name":"Europe/San_Marino"},{"id":"339","cca2":"SN","name":"Africa/Dakar"},{"id":"340","cca2":"SO","name":"Africa/Mogadishu"},{"id":"341","cca2":"SR","name":"America/Paramaribo"},{"id":"342","cca2":"SS","name":"Africa/Juba"},{"id":"343","cca2":"ST","name":"Africa/Sao_Tome"},{"id":"344","cca2":"SV","name":"America/El_Salvador"},{"id":"345","cca2":"SX","name":"America/Lower_Princes"},{"id":"346","cca2":"SY","name":"Asia/Damascus"},{"id":"347","cca2":"SZ","name":"Africa/Mbabane"},{"id":"348","cca2":"TC","name":"America/Grand_Turk"},{"id":"349","cca2":"TD","name":"Africa/Ndjamena"},{"id":"350","cca2":"TF","name":"Indian/Kerguelen"},{"id":"351","cca2":"TG","name":"Africa/Lome"},{"id":"352","cca2":"TH","name":"Asia/Bangkok"},{"id":"353","cca2":"TJ","name":"Asia/Dushanbe"},{"id":"354","cca2":"TK","name":"Pacific/Fakaofo"},{"id":"355","cca2":"TL","name":"Asia/Dili"},{"id":"356","cca2":"TM","name":"Asia/Ashgabat"},{"id":"357","cca2":"TN","name":"Africa/Tunis"},{"id":"358","cca2":"TO","name":"Pacific/Tongatapu"},{"id":"359","cca2":"TR","name":"Europe/Istanbul"},{"id":"360","cca2":"TT","name":"America/Port_of_Spain"},{"id":"361","cca2":"TV","name":"Pacific/Funafuti"},{"id":"362","cca2":"TW","name":"Asia/Taipei"},{"id":"363","cca2":"TZ","name":"Africa/Dar_es_Salaam"},{"id":"364","cca2":"UA","name":"Europe/Kiev"},{"id":"365","cca2":"UA","name":"Europe/Uzhgorod"},{"id":"366","cca2":"UA","name":"Europe/Zaporozhye"},{"id":"367","cca2":"UG","name":"Africa/Kampala"},{"id":"368","cca2":"UM","name":"Pacific/Johnston"},{"id":"369","cca2":"UM","name":"Pacific/Midway"},{"id":"370","cca2":"UM","name":"Pacific/Wake"},{"id":"371","cca2":"US","name":"America/New_York"},{"id":"372","cca2":"US","name":"America/Detroit"},{"id":"373","cca2":"US","name":"America/Kentucky/Louisville"},{"id":"374","cca2":"US","name":"America/Kentucky/Monticello"},{"id":"375","cca2":"US","name":"America/Indiana/Indianapolis"},{"id":"376","cca2":"US","name":"America/Indiana/Vincennes"},{"id":"377","cca2":"US","name":"America/Indiana/Winamac"},{"id":"378","cca2":"US","name":"America/Indiana/Marengo"},{"id":"379","cca2":"US","name":"America/Indiana/Petersburg"},{"id":"380","cca2":"US","name":"America/Indiana/Vevay"},{"id":"381","cca2":"US","name":"America/Chicago"},{"id":"382","cca2":"US","name":"America/Indiana/Tell_City"},{"id":"383","cca2":"US","name":"America/Indiana/Knox"},{"id":"384","cca2":"US","name":"America/Menominee"},{"id":"385","cca2":"US","name":"America/North_Dakota/Center"},{"id":"386","cca2":"US","name":"America/North_Dakota/New_Salem"},{"id":"387","cca2":"US","name":"America/North_Dakota/Beulah"},{"id":"388","cca2":"US","name":"America/Denver"},{"id":"389","cca2":"US","name":"America/Boise"},{"id":"390","cca2":"US","name":"America/Phoenix"},{"id":"391","cca2":"US","name":"America/Los_Angeles"},{"id":"392","cca2":"US","name":"America/Anchorage"},{"id":"393","cca2":"US","name":"America/Juneau"},{"id":"394","cca2":"US","name":"America/Sitka"},{"id":"395","cca2":"US","name":"America/Yakutat"},{"id":"396","cca2":"US","name":"America/Nome"},{"id":"397","cca2":"US","name":"America/Adak"},{"id":"398","cca2":"US","name":"America/Metlakatla"},{"id":"399","cca2":"US","name":"Pacific/Honolulu"},{"id":"400","cca2":"UY","name":"America/Montevideo"},{"id":"401","cca2":"UZ","name":"Asia/Samarkand"},{"id":"402","cca2":"UZ","name":"Asia/Tashkent"},{"id":"403","cca2":"VA","name":"Europe/Vatican"},{"id":"404","cca2":"VC","name":"America/St_Vincent"},{"id":"405","cca2":"VE","name":"America/Caracas"},{"id":"406","cca2":"VG","name":"America/Tortola"},{"id":"407","cca2":"VI","name":"America/St_Thomas"},{"id":"408","cca2":"VN","name":"Asia/Ho_Chi_Minh"},{"id":"409","cca2":"VU","name":"Pacific/Efate"},{"id":"410","cca2":"WF","name":"Pacific/Wallis"},{"id":"411","cca2":"WS","name":"Pacific/Apia"},{"id":"412","cca2":"YE","name":"Asia/Aden"},{"id":"413","cca2":"YT","name":"Indian/Mayotte"},{"id":"414","cca2":"ZA","name":"Africa/Johannesburg"},{"id":"415","cca2":"ZM","name":"Africa/Lusaka"},{"id":"416","cca2":"ZW","name":"Africa/Harare"},{"id":"417","cca2":"CA","name":"America/Montreal"}] 38 | var zoneMap = {} 39 | _.forEach(zones, function (zone) { 40 | zoneMap[zone.name] = zone.cca2 41 | }) 42 | return zoneMap 43 | }]) 44 | 45 | // Country code to country name map 46 | .factory('CCToCountryName', ['_', function (_) { 47 | // Note: codes is populated with the data from 'data/cca2_to_country_name.csv' when this file is built 48 | var codes = [{"cca2":"AF","name":"Afghanistan"},{"cca2":"AX","name":"Aland Islands"},{"cca2":"AL","name":"Albania"},{"cca2":"DZ","name":"Algeria"},{"cca2":"AS","name":"American Samoa"},{"cca2":"AD","name":"Andorra"},{"cca2":"AO","name":"Angola"},{"cca2":"AI","name":"Anguilla"},{"cca2":"AQ","name":"Antarctica"},{"cca2":"AG","name":"Antigua And Barbuda"},{"cca2":"AR","name":"Argentina"},{"cca2":"AM","name":"Armenia"},{"cca2":"AW","name":"Aruba"},{"cca2":"AU","name":"Australia"},{"cca2":"AT","name":"Austria"},{"cca2":"AZ","name":"Azerbaijan"},{"cca2":"BS","name":"Bahamas"},{"cca2":"BH","name":"Bahrain"},{"cca2":"BD","name":"Bangladesh"},{"cca2":"BB","name":"Barbados"},{"cca2":"BY","name":"Belarus"},{"cca2":"BE","name":"Belgium"},{"cca2":"BZ","name":"Belize"},{"cca2":"BJ","name":"Benin"},{"cca2":"BM","name":"Bermuda"},{"cca2":"BT","name":"Bhutan"},{"cca2":"BO","name":"Bolivia"},{"cca2":"BA","name":"Bosnia And Herzegovina"},{"cca2":"BW","name":"Botswana"},{"cca2":"BV","name":"Bouvet Island"},{"cca2":"BR","name":"Brazil"},{"cca2":"IO","name":"British Indian Ocean Territory"},{"cca2":"BN","name":"Brunei Darussalam"},{"cca2":"BG","name":"Bulgaria"},{"cca2":"BF","name":"Burkina Faso"},{"cca2":"BI","name":"Burundi"},{"cca2":"KH","name":"Cambodia"},{"cca2":"CM","name":"Cameroon"},{"cca2":"CA","name":"Canada"},{"cca2":"CV","name":"Cape Verde"},{"cca2":"KY","name":"Cayman Islands"},{"cca2":"CF","name":"Central African Republic"},{"cca2":"TD","name":"Chad"},{"cca2":"CL","name":"Chile"},{"cca2":"CN","name":"China"},{"cca2":"CX","name":"Christmas Island"},{"cca2":"CC","name":"Cocos (Keeling) Islands"},{"cca2":"CO","name":"Colombia"},{"cca2":"KM","name":"Comoros"},{"cca2":"CG","name":"Congo"},{"cca2":"CD","name":"Congo (Democratic Republic)"},{"cca2":"CK","name":"Cook Islands"},{"cca2":"CR","name":"Costa Rica"},{"cca2":"CI","name":"Cote D'Ivoire"},{"cca2":"HR","name":"Croatia"},{"cca2":"CU","name":"Cuba"},{"cca2":"CY","name":"Cyprus"},{"cca2":"CZ","name":"Czech Republic"},{"cca2":"DK","name":"Denmark"},{"cca2":"DJ","name":"Djibouti"},{"cca2":"DM","name":"Dominica"},{"cca2":"DO","name":"Dominican Republic"},{"cca2":"EC","name":"Ecuador"},{"cca2":"EG","name":"Egypt"},{"cca2":"SV","name":"El Salvador"},{"cca2":"GQ","name":"Equatorial Guinea"},{"cca2":"ER","name":"Eritrea"},{"cca2":"EE","name":"Estonia"},{"cca2":"ET","name":"Ethiopia"},{"cca2":"FK","name":"Falkland Islands (Malvinas)"},{"cca2":"FO","name":"Faroe Islands"},{"cca2":"FJ","name":"Fiji"},{"cca2":"FI","name":"Finland"},{"cca2":"FR","name":"France"},{"cca2":"GF","name":"French Guiana"},{"cca2":"PF","name":"French Polynesia"},{"cca2":"TF","name":"French Southern Territories"},{"cca2":"GA","name":"Gabon"},{"cca2":"GM","name":"Gambia"},{"cca2":"GE","name":"Georgia"},{"cca2":"DE","name":"Germany"},{"cca2":"GH","name":"Ghana"},{"cca2":"GI","name":"Gibraltar"},{"cca2":"GR","name":"Greece"},{"cca2":"GL","name":"Greenland"},{"cca2":"GD","name":"Grenada"},{"cca2":"GP","name":"Guadeloupe"},{"cca2":"GU","name":"Guam"},{"cca2":"GT","name":"Guatemala"},{"cca2":"GG","name":"Guernsey"},{"cca2":"GN","name":"Guinea"},{"cca2":"GW","name":"Guinea-Bissau"},{"cca2":"GY","name":"Guyana"},{"cca2":"HT","name":"Haiti"},{"cca2":"HM","name":"Heard Island & Mcdonald Islands"},{"cca2":"VA","name":"Holy See (Vatican City State)"},{"cca2":"HN","name":"Honduras"},{"cca2":"HK","name":"Hong Kong"},{"cca2":"HU","name":"Hungary"},{"cca2":"IS","name":"Iceland"},{"cca2":"IN","name":"India"},{"cca2":"ID","name":"Indonesia"},{"cca2":"IR","name":"Iran (Islamic Republic Of)"},{"cca2":"IQ","name":"Iraq"},{"cca2":"IE","name":"Ireland"},{"cca2":"IM","name":"Isle Of Man"},{"cca2":"IL","name":"Israel"},{"cca2":"IT","name":"Italy"},{"cca2":"JM","name":"Jamaica"},{"cca2":"JP","name":"Japan"},{"cca2":"JE","name":"Jersey"},{"cca2":"JO","name":"Jordan"},{"cca2":"KZ","name":"Kazakhstan"},{"cca2":"KE","name":"Kenya"},{"cca2":"KI","name":"Kiribati"},{"cca2":"KR","name":"Korea"},{"cca2":"KW","name":"Kuwait"},{"cca2":"KG","name":"Kyrgyzstan"},{"cca2":"LA","name":"Lao People's Democratic Republic"},{"cca2":"LV","name":"Latvia"},{"cca2":"LB","name":"Lebanon"},{"cca2":"LS","name":"Lesotho"},{"cca2":"LR","name":"Liberia"},{"cca2":"LY","name":"Libyan Arab Jamahiriya"},{"cca2":"LI","name":"Liechtenstein"},{"cca2":"LT","name":"Lithuania"},{"cca2":"LU","name":"Luxembourg"},{"cca2":"MO","name":"Macao"},{"cca2":"MK","name":"Macedonia"},{"cca2":"MG","name":"Madagascar"},{"cca2":"MW","name":"Malawi"},{"cca2":"MY","name":"Malaysia"},{"cca2":"MV","name":"Maldives"},{"cca2":"ML","name":"Mali"},{"cca2":"MT","name":"Malta"},{"cca2":"MH","name":"Marshall Islands"},{"cca2":"MQ","name":"Martinique"},{"cca2":"MR","name":"Mauritania"},{"cca2":"MU","name":"Mauritius"},{"cca2":"YT","name":"Mayotte"},{"cca2":"MX","name":"Mexico"},{"cca2":"FM","name":"Micronesia (Federated States Of)"},{"cca2":"MD","name":"Moldova"},{"cca2":"MC","name":"Monaco"},{"cca2":"MN","name":"Mongolia"},{"cca2":"ME","name":"Montenegro"},{"cca2":"MS","name":"Montserrat"},{"cca2":"MA","name":"Morocco"},{"cca2":"MZ","name":"Mozambique"},{"cca2":"MM","name":"Myanmar"},{"cca2":"NA","name":"Namibia"},{"cca2":"NR","name":"Nauru"},{"cca2":"NP","name":"Nepal"},{"cca2":"NL","name":"Netherlands"},{"cca2":"AN","name":"Netherlands Antilles"},{"cca2":"NC","name":"New Caledonia"},{"cca2":"NZ","name":"New Zealand"},{"cca2":"NI","name":"Nicaragua"},{"cca2":"NE","name":"Niger"},{"cca2":"NG","name":"Nigeria"},{"cca2":"NU","name":"Niue"},{"cca2":"NF","name":"Norfolk Island"},{"cca2":"MP","name":"Northern Mariana Islands"},{"cca2":"NO","name":"Norway"},{"cca2":"OM","name":"Oman"},{"cca2":"PK","name":"Pakistan"},{"cca2":"PW","name":"Palau"},{"cca2":"PS","name":"Palestinian Territory (Occupied)"},{"cca2":"PA","name":"Panama"},{"cca2":"PG","name":"Papua New Guinea"},{"cca2":"PY","name":"Paraguay"},{"cca2":"PE","name":"Peru"},{"cca2":"PH","name":"Philippines"},{"cca2":"PN","name":"Pitcairn"},{"cca2":"PL","name":"Poland"},{"cca2":"PT","name":"Portugal"},{"cca2":"PR","name":"Puerto Rico"},{"cca2":"QA","name":"Qatar"},{"cca2":"RE","name":"Reunion"},{"cca2":"RO","name":"Romania"},{"cca2":"RU","name":"Russian Federation"},{"cca2":"RW","name":"Rwanda"},{"cca2":"BL","name":"Saint Barthelemy"},{"cca2":"SH","name":"Saint Helena"},{"cca2":"KN","name":"Saint Kitts And Nevis"},{"cca2":"LC","name":"Saint Lucia"},{"cca2":"MF","name":"Saint Martin"},{"cca2":"PM","name":"Saint Pierre And Miquelon"},{"cca2":"VC","name":"Saint Vincent And Grenadines"},{"cca2":"WS","name":"Samoa"},{"cca2":"SM","name":"San Marino"},{"cca2":"ST","name":"Sao Tome And Principe"},{"cca2":"SA","name":"Saudi Arabia"},{"cca2":"SN","name":"Senegal"},{"cca2":"RS","name":"Serbia"},{"cca2":"SC","name":"Seychelles"},{"cca2":"SL","name":"Sierra Leone"},{"cca2":"SG","name":"Singapore"},{"cca2":"SK","name":"Slovakia"},{"cca2":"SI","name":"Slovenia"},{"cca2":"SB","name":"Solomon Islands"},{"cca2":"SO","name":"Somalia"},{"cca2":"SS","name":"South Sudan"},{"cca2":"ZA","name":"South Africa"},{"cca2":"GS","name":"South Georgia And Sandwich Isl."},{"cca2":"ES","name":"Spain"},{"cca2":"LK","name":"Sri Lanka"},{"cca2":"SD","name":"Sudan"},{"cca2":"SR","name":"Suriname"},{"cca2":"SJ","name":"Svalbard And Jan Mayen"},{"cca2":"SZ","name":"Swaziland"},{"cca2":"SE","name":"Sweden"},{"cca2":"CH","name":"Switzerland"},{"cca2":"SY","name":"Syrian Arab Republic"},{"cca2":"TW","name":"Taiwan"},{"cca2":"TJ","name":"Tajikistan"},{"cca2":"TZ","name":"Tanzania"},{"cca2":"TH","name":"Thailand"},{"cca2":"TL","name":"Timor-Leste"},{"cca2":"TG","name":"Togo"},{"cca2":"TK","name":"Tokelau"},{"cca2":"TO","name":"Tonga"},{"cca2":"TT","name":"Trinidad And Tobago"},{"cca2":"TN","name":"Tunisia"},{"cca2":"TR","name":"Turkey"},{"cca2":"TM","name":"Turkmenistan"},{"cca2":"TC","name":"Turks And Caicos Islands"},{"cca2":"TV","name":"Tuvalu"},{"cca2":"UG","name":"Uganda"},{"cca2":"UA","name":"Ukraine"},{"cca2":"AE","name":"United Arab Emirates"},{"cca2":"GB","name":"United Kingdom"},{"cca2":"US","name":"United States"},{"cca2":"UM","name":"United States Outlying Islands"},{"cca2":"UY","name":"Uruguay"},{"cca2":"UZ","name":"Uzbekistan"},{"cca2":"VU","name":"Vanuatu"},{"cca2":"VE","name":"Venezuela"},{"cca2":"VN","name":"Viet Nam"},{"cca2":"VG","name":"Virgin Islands (British)"},{"cca2":"VI","name":"Virgin Islands (U.S.)"},{"cca2":"WF","name":"Wallis And Futuna"},{"cca2":"EH","name":"Western Sahara"},{"cca2":"YE","name":"Yemen"},{"cca2":"ZM","name":"Zambia"},{"cca2":"ZW","name":"Zimbabwe"},{"cca2":"SX","name":"Sint Maarten"},{"cca2":"CW","name":"Curacao"},{"cca2":"BQ","name":"Bonaire"},{"cca2":"KP","name":"North Korea"}] 49 | var codeMap = {} 50 | _.forEach(codes, function (code) { 51 | codeMap[code.cca2] = code.name 52 | }) 53 | return codeMap 54 | }]) 55 | 56 | .directive('timezoneSelector', ['_', 'moment', 'timezoneFactory', 'zoneToCC', 'CCToCountryName', function (_, moment, timezoneFactory, zoneToCC, CCToCountryName) { 57 | return { 58 | restrict: 'E', 59 | replace: true, 60 | template: '', 61 | scope: { 62 | ngModel: '=', 63 | translations: '=' 64 | }, 65 | link: function ($scope, elem, attrs) { 66 | var data = [] 67 | var timezones = timezoneFactory.get() 68 | 69 | // Group the timezones by their country code 70 | var timezonesGroupedByCC = {} 71 | _.forEach(timezones, function (timezone) { 72 | if (_.has(zoneToCC, timezone.id)) { 73 | var CC = zoneToCC[timezone.id] 74 | timezonesGroupedByCC[CC] = !timezonesGroupedByCC[CC] ? [] : timezonesGroupedByCC[CC] 75 | timezonesGroupedByCC[CC].push(timezone) 76 | } 77 | }) 78 | 79 | // Add the grouped countries to the data array with their country name as the group option 80 | _.forEach(timezonesGroupedByCC, function (zonesByCountry, CC) { 81 | var zonesForCountry = { 82 | text: CCToCountryName[CC] + ': ', 83 | children: zonesByCountry, 84 | firstNOffset: zonesByCountry[0].nOffset 85 | } 86 | 87 | data.push(zonesForCountry) 88 | }) 89 | 90 | // Sort by UTC or country name 91 | if (attrs.sortBy === 'offset') { 92 | data = _.sortBy(data, 'firstNOffset') 93 | _.forEach(data, function (zonesForCountry, key) { 94 | zonesForCountry.children = _.sortBy(zonesForCountry.children, 'nOffset') 95 | }) 96 | } else { 97 | data = _.sortBy(data, 'text') 98 | } 99 | 100 | // add initial options forlocal 101 | if (attrs.showLocal !== undefined) { 102 | if (jstz !== undefined) { 103 | // Make sure the tz from jstz has underscores replaced with spaces so it matches 104 | // the format used in timezoneFactory 105 | var extraTZs = _.filter(timezones, { 'id': jstz.determine().name() }) 106 | } else { 107 | var localUTC = 'UTC' + moment().format('Z') 108 | extraTZs = _.filter(timezones, {'offset': localUTC}) 109 | } 110 | 111 | if (extraTZs !== undefined && extraTZs.length > 0) { 112 | data.splice(0, 0, { 113 | text: _.get($scope, 'translations.local', 'Local') + ': ', 114 | children: extraTZs, 115 | firstNOffset: extraTZs[0].nOffset, 116 | firstOffset: extraTZs[0].offset 117 | }) 118 | } 119 | } 120 | 121 | if (attrs.setLocal !== undefined) { 122 | if (jstz !== undefined) { 123 | $scope.ngModel || ($scope.ngModel = jstz.determine().name()) 124 | } 125 | } 126 | 127 | // add initial options 128 | if (attrs.primaryChoices !== undefined) { 129 | var primaryChoices = [] 130 | _.forEach(attrs.primaryChoices.split(' '), function (choice) { 131 | primaryChoices.push(choice.replace('_', ' ')) 132 | }) 133 | extraTZs = _.filter(timezones, function (tz) { return _.includes(primaryChoices, tz.name) }) 134 | 135 | if (extraTZs !== undefined && extraTZs.length > 0) { 136 | data.splice(0, 0, { 137 | text: _.get($scope, 'translations.primary', 'Primary') + ': ', 138 | children: extraTZs, 139 | firstNOffset: extraTZs[0].nOffset, 140 | firstOffset: extraTZs[0].offset 141 | }) 142 | } 143 | } 144 | 145 | // Construct a select box with the timezones grouped by country 146 | _.forEach(data, function (group) { 147 | var optgroup = $('') 148 | group.children.forEach(function (option) { 149 | if (attrs.displayUtc === 'true' && option.name.indexOf('(UTC') === -1) { 150 | option.name = option.name + ' (' + option.offset + ')' 151 | } 152 | 153 | optgroup.append('') 155 | }) 156 | elem.append(optgroup) 157 | }) 158 | 159 | // Initialise the chosen box 160 | elem.chosen({ 161 | width: attrs.width || '300px', 162 | include_group_label_in_selected: true, 163 | search_contains: true, 164 | no_results_text: _.get($scope, 'translations.no_results_text', 165 | 'No results, try searching for the name of your country or nearest major city.'), 166 | placeholder_text_single: _.get($scope, 'translations.placeholder', 'Choose a timezone') 167 | }) 168 | 169 | // Update the box if ngModel changes 170 | $scope.$watch('ngModel', function () { 171 | elem.val($scope.ngModel) 172 | elem.trigger('chosen:updated') 173 | }) 174 | } 175 | } 176 | }]) 177 | -------------------------------------------------------------------------------- /circle.yml: -------------------------------------------------------------------------------- 1 | machine: 2 | node: 3 | version: 4.1.0 4 | -------------------------------------------------------------------------------- /data/cca2_to_country_name.csv: -------------------------------------------------------------------------------- 1 | "cca2","name" 2 | "AF","Afghanistan" 3 | "AX","Aland Islands" 4 | "AL","Albania" 5 | "DZ","Algeria" 6 | "AS","American Samoa" 7 | "AD","Andorra" 8 | "AO","Angola" 9 | "AI","Anguilla" 10 | "AQ","Antarctica" 11 | "AG","Antigua And Barbuda" 12 | "AR","Argentina" 13 | "AM","Armenia" 14 | "AW","Aruba" 15 | "AU","Australia" 16 | "AT","Austria" 17 | "AZ","Azerbaijan" 18 | "BS","Bahamas" 19 | "BH","Bahrain" 20 | "BD","Bangladesh" 21 | "BB","Barbados" 22 | "BY","Belarus" 23 | "BE","Belgium" 24 | "BZ","Belize" 25 | "BJ","Benin" 26 | "BM","Bermuda" 27 | "BT","Bhutan" 28 | "BO","Bolivia" 29 | "BA","Bosnia And Herzegovina" 30 | "BW","Botswana" 31 | "BV","Bouvet Island" 32 | "BR","Brazil" 33 | "IO","British Indian Ocean Territory" 34 | "BN","Brunei Darussalam" 35 | "BG","Bulgaria" 36 | "BF","Burkina Faso" 37 | "BI","Burundi" 38 | "KH","Cambodia" 39 | "CM","Cameroon" 40 | "CA","Canada" 41 | "CV","Cape Verde" 42 | "KY","Cayman Islands" 43 | "CF","Central African Republic" 44 | "TD","Chad" 45 | "CL","Chile" 46 | "CN","China" 47 | "CX","Christmas Island" 48 | "CC","Cocos (Keeling) Islands" 49 | "CO","Colombia" 50 | "KM","Comoros" 51 | "CG","Congo" 52 | "CD","Congo (Democratic Republic)" 53 | "CK","Cook Islands" 54 | "CR","Costa Rica" 55 | "CI","Cote D'Ivoire" 56 | "HR","Croatia" 57 | "CU","Cuba" 58 | "CY","Cyprus" 59 | "CZ","Czech Republic" 60 | "DK","Denmark" 61 | "DJ","Djibouti" 62 | "DM","Dominica" 63 | "DO","Dominican Republic" 64 | "EC","Ecuador" 65 | "EG","Egypt" 66 | "SV","El Salvador" 67 | "GQ","Equatorial Guinea" 68 | "ER","Eritrea" 69 | "EE","Estonia" 70 | "ET","Ethiopia" 71 | "FK","Falkland Islands (Malvinas)" 72 | "FO","Faroe Islands" 73 | "FJ","Fiji" 74 | "FI","Finland" 75 | "FR","France" 76 | "GF","French Guiana" 77 | "PF","French Polynesia" 78 | "TF","French Southern Territories" 79 | "GA","Gabon" 80 | "GM","Gambia" 81 | "GE","Georgia" 82 | "DE","Germany" 83 | "GH","Ghana" 84 | "GI","Gibraltar" 85 | "GR","Greece" 86 | "GL","Greenland" 87 | "GD","Grenada" 88 | "GP","Guadeloupe" 89 | "GU","Guam" 90 | "GT","Guatemala" 91 | "GG","Guernsey" 92 | "GN","Guinea" 93 | "GW","Guinea-Bissau" 94 | "GY","Guyana" 95 | "HT","Haiti" 96 | "HM","Heard Island & Mcdonald Islands" 97 | "VA","Holy See (Vatican City State)" 98 | "HN","Honduras" 99 | "HK","Hong Kong" 100 | "HU","Hungary" 101 | "IS","Iceland" 102 | "IN","India" 103 | "ID","Indonesia" 104 | "IR","Iran (Islamic Republic Of)" 105 | "IQ","Iraq" 106 | "IE","Ireland" 107 | "IM","Isle Of Man" 108 | "IL","Israel" 109 | "IT","Italy" 110 | "JM","Jamaica" 111 | "JP","Japan" 112 | "JE","Jersey" 113 | "JO","Jordan" 114 | "KZ","Kazakhstan" 115 | "KE","Kenya" 116 | "KI","Kiribati" 117 | "KR","Korea" 118 | "KW","Kuwait" 119 | "KG","Kyrgyzstan" 120 | "LA","Lao People's Democratic Republic" 121 | "LV","Latvia" 122 | "LB","Lebanon" 123 | "LS","Lesotho" 124 | "LR","Liberia" 125 | "LY","Libyan Arab Jamahiriya" 126 | "LI","Liechtenstein" 127 | "LT","Lithuania" 128 | "LU","Luxembourg" 129 | "MO","Macao" 130 | "MK","Macedonia" 131 | "MG","Madagascar" 132 | "MW","Malawi" 133 | "MY","Malaysia" 134 | "MV","Maldives" 135 | "ML","Mali" 136 | "MT","Malta" 137 | "MH","Marshall Islands" 138 | "MQ","Martinique" 139 | "MR","Mauritania" 140 | "MU","Mauritius" 141 | "YT","Mayotte" 142 | "MX","Mexico" 143 | "FM","Micronesia (Federated States Of)" 144 | "MD","Moldova" 145 | "MC","Monaco" 146 | "MN","Mongolia" 147 | "ME","Montenegro" 148 | "MS","Montserrat" 149 | "MA","Morocco" 150 | "MZ","Mozambique" 151 | "MM","Myanmar" 152 | "NA","Namibia" 153 | "NR","Nauru" 154 | "NP","Nepal" 155 | "NL","Netherlands" 156 | "AN","Netherlands Antilles" 157 | "NC","New Caledonia" 158 | "NZ","New Zealand" 159 | "NI","Nicaragua" 160 | "NE","Niger" 161 | "NG","Nigeria" 162 | "NU","Niue" 163 | "NF","Norfolk Island" 164 | "MP","Northern Mariana Islands" 165 | "NO","Norway" 166 | "OM","Oman" 167 | "PK","Pakistan" 168 | "PW","Palau" 169 | "PS","Palestinian Territory (Occupied)" 170 | "PA","Panama" 171 | "PG","Papua New Guinea" 172 | "PY","Paraguay" 173 | "PE","Peru" 174 | "PH","Philippines" 175 | "PN","Pitcairn" 176 | "PL","Poland" 177 | "PT","Portugal" 178 | "PR","Puerto Rico" 179 | "QA","Qatar" 180 | "RE","Reunion" 181 | "RO","Romania" 182 | "RU","Russian Federation" 183 | "RW","Rwanda" 184 | "BL","Saint Barthelemy" 185 | "SH","Saint Helena" 186 | "KN","Saint Kitts And Nevis" 187 | "LC","Saint Lucia" 188 | "MF","Saint Martin" 189 | "PM","Saint Pierre And Miquelon" 190 | "VC","Saint Vincent And Grenadines" 191 | "WS","Samoa" 192 | "SM","San Marino" 193 | "ST","Sao Tome And Principe" 194 | "SA","Saudi Arabia" 195 | "SN","Senegal" 196 | "RS","Serbia" 197 | "SC","Seychelles" 198 | "SL","Sierra Leone" 199 | "SG","Singapore" 200 | "SK","Slovakia" 201 | "SI","Slovenia" 202 | "SB","Solomon Islands" 203 | "SO","Somalia" 204 | "SS","South Sudan" 205 | "ZA","South Africa" 206 | "GS","South Georgia And Sandwich Isl." 207 | "ES","Spain" 208 | "LK","Sri Lanka" 209 | "SD","Sudan" 210 | "SR","Suriname" 211 | "SJ","Svalbard And Jan Mayen" 212 | "SZ","Swaziland" 213 | "SE","Sweden" 214 | "CH","Switzerland" 215 | "SY","Syrian Arab Republic" 216 | "TW","Taiwan" 217 | "TJ","Tajikistan" 218 | "TZ","Tanzania" 219 | "TH","Thailand" 220 | "TL","Timor-Leste" 221 | "TG","Togo" 222 | "TK","Tokelau" 223 | "TO","Tonga" 224 | "TT","Trinidad And Tobago" 225 | "TN","Tunisia" 226 | "TR","Turkey" 227 | "TM","Turkmenistan" 228 | "TC","Turks And Caicos Islands" 229 | "TV","Tuvalu" 230 | "UG","Uganda" 231 | "UA","Ukraine" 232 | "AE","United Arab Emirates" 233 | "GB","United Kingdom" 234 | "US","United States" 235 | "UM","United States Outlying Islands" 236 | "UY","Uruguay" 237 | "UZ","Uzbekistan" 238 | "VU","Vanuatu" 239 | "VE","Venezuela" 240 | "VN","Viet Nam" 241 | "VG","Virgin Islands (British)" 242 | "VI","Virgin Islands (U.S.)" 243 | "WF","Wallis And Futuna" 244 | "EH","Western Sahara" 245 | "YE","Yemen" 246 | "ZM","Zambia" 247 | "ZW","Zimbabwe" 248 | "SX","Sint Maarten" 249 | "CW","Curacao" 250 | "BQ","Bonaire" 251 | "KP","North Korea" 252 | -------------------------------------------------------------------------------- /data/zone.csv: -------------------------------------------------------------------------------- 1 | "id","cca2","name" 2 | "1","AD","Europe/Andorra" 3 | "2","AE","Asia/Dubai" 4 | "3","AF","Asia/Kabul" 5 | "4","AG","America/Antigua" 6 | "5","AI","America/Anguilla" 7 | "6","AL","Europe/Tirane" 8 | "7","AM","Asia/Yerevan" 9 | "8","AO","Africa/Luanda" 10 | "9","AQ","Antarctica/McMurdo" 11 | "10","AQ","Antarctica/Rothera" 12 | "11","AQ","Antarctica/Palmer" 13 | "12","AQ","Antarctica/Mawson" 14 | "13","AQ","Antarctica/Davis" 15 | "14","AQ","Antarctica/Casey" 16 | "15","AQ","Antarctica/Vostok" 17 | "16","AQ","Antarctica/DumontDUrville" 18 | "17","AQ","Antarctica/Syowa" 19 | "18","AQ","Antarctica/Troll" 20 | "19","AR","America/Argentina/Buenos_Aires" 21 | "20","AR","America/Argentina/Cordoba" 22 | "21","AR","America/Argentina/Salta" 23 | "22","AR","America/Argentina/Jujuy" 24 | "23","AR","America/Argentina/Tucuman" 25 | "24","AR","America/Argentina/Catamarca" 26 | "25","AR","America/Argentina/La_Rioja" 27 | "26","AR","America/Argentina/San_Juan" 28 | "27","AR","America/Argentina/Mendoza" 29 | "28","AR","America/Argentina/San_Luis" 30 | "29","AR","America/Argentina/Rio_Gallegos" 31 | "30","AR","America/Argentina/Ushuaia" 32 | "31","AS","Pacific/Pago_Pago" 33 | "32","AT","Europe/Vienna" 34 | "33","AU","Australia/Lord_Howe" 35 | "34","AU","Antarctica/Macquarie" 36 | "35","AU","Australia/Hobart" 37 | "36","AU","Australia/Currie" 38 | "37","AU","Australia/Melbourne" 39 | "38","AU","Australia/Sydney" 40 | "39","AU","Australia/Broken_Hill" 41 | "40","AU","Australia/Brisbane" 42 | "41","AU","Australia/Lindeman" 43 | "42","AU","Australia/Adelaide" 44 | "43","AU","Australia/Darwin" 45 | "44","AU","Australia/Perth" 46 | "45","AU","Australia/Eucla" 47 | "46","AW","America/Aruba" 48 | "47","AX","Europe/Mariehamn" 49 | "48","AZ","Asia/Baku" 50 | "49","BA","Europe/Sarajevo" 51 | "50","BB","America/Barbados" 52 | "51","BD","Asia/Dhaka" 53 | "52","BE","Europe/Brussels" 54 | "53","BF","Africa/Ouagadougou" 55 | "54","BG","Europe/Sofia" 56 | "55","BH","Asia/Bahrain" 57 | "56","BI","Africa/Bujumbura" 58 | "57","BJ","Africa/Porto-Novo" 59 | "58","BL","America/St_Barthelemy" 60 | "59","BM","Atlantic/Bermuda" 61 | "60","BN","Asia/Brunei" 62 | "61","BO","America/La_Paz" 63 | "62","BQ","America/Kralendijk" 64 | "63","BR","America/Noronha" 65 | "64","BR","America/Belem" 66 | "65","BR","America/Fortaleza" 67 | "66","BR","America/Recife" 68 | "67","BR","America/Araguaina" 69 | "68","BR","America/Maceio" 70 | "69","BR","America/Bahia" 71 | "70","BR","America/Sao_Paulo" 72 | "71","BR","America/Campo_Grande" 73 | "72","BR","America/Cuiaba" 74 | "73","BR","America/Santarem" 75 | "74","BR","America/Porto_Velho" 76 | "75","BR","America/Boa_Vista" 77 | "76","BR","America/Manaus" 78 | "77","BR","America/Eirunepe" 79 | "78","BR","America/Rio_Branco" 80 | "79","BS","America/Nassau" 81 | "80","BT","Asia/Thimphu" 82 | "81","BW","Africa/Gaborone" 83 | "82","BY","Europe/Minsk" 84 | "83","BZ","America/Belize" 85 | "84","CA","America/St_Johns" 86 | "85","CA","America/Halifax" 87 | "86","CA","America/Glace_Bay" 88 | "87","CA","America/Moncton" 89 | "88","CA","America/Goose_Bay" 90 | "89","CA","America/Blanc-Sablon" 91 | "90","CA","America/Toronto" 92 | "91","CA","America/Nipigon" 93 | "92","CA","America/Thunder_Bay" 94 | "93","CA","America/Iqaluit" 95 | "94","CA","America/Pangnirtung" 96 | "95","CA","America/Resolute" 97 | "96","CA","America/Atikokan" 98 | "97","CA","America/Rankin_Inlet" 99 | "98","CA","America/Winnipeg" 100 | "99","CA","America/Rainy_River" 101 | "100","CA","America/Regina" 102 | "101","CA","America/Swift_Current" 103 | "102","CA","America/Edmonton" 104 | "103","CA","America/Cambridge_Bay" 105 | "104","CA","America/Yellowknife" 106 | "105","CA","America/Inuvik" 107 | "106","CA","America/Creston" 108 | "107","CA","America/Dawson_Creek" 109 | "108","CA","America/Vancouver" 110 | "109","CA","America/Whitehorse" 111 | "110","CA","America/Dawson" 112 | "111","CC","Indian/Cocos" 113 | "112","CD","Africa/Kinshasa" 114 | "113","CD","Africa/Lubumbashi" 115 | "114","CF","Africa/Bangui" 116 | "115","CG","Africa/Brazzaville" 117 | "116","CH","Europe/Zurich" 118 | "117","CI","Africa/Abidjan" 119 | "118","CK","Pacific/Rarotonga" 120 | "119","CL","America/Santiago" 121 | "120","CL","Pacific/Easter" 122 | "121","CM","Africa/Douala" 123 | "122","CN","Asia/Shanghai" 124 | "123","CN","Asia/Harbin" 125 | "124","CN","Asia/Chongqing" 126 | "125","CN","Asia/Urumqi" 127 | "126","CN","Asia/Kashgar" 128 | "127","CO","America/Bogota" 129 | "128","CR","America/Costa_Rica" 130 | "129","CU","America/Havana" 131 | "130","CV","Atlantic/Cape_Verde" 132 | "131","CW","America/Curacao" 133 | "132","CX","Indian/Christmas" 134 | "133","CY","Asia/Nicosia" 135 | "134","CZ","Europe/Prague" 136 | "135","DE","Europe/Berlin" 137 | "136","DE","Europe/Busingen" 138 | "137","DJ","Africa/Djibouti" 139 | "138","DK","Europe/Copenhagen" 140 | "139","DM","America/Dominica" 141 | "140","DO","America/Santo_Domingo" 142 | "141","DZ","Africa/Algiers" 143 | "142","EC","America/Guayaquil" 144 | "143","EC","Pacific/Galapagos" 145 | "144","EE","Europe/Tallinn" 146 | "145","EG","Africa/Cairo" 147 | "146","EH","Africa/El_Aaiun" 148 | "147","ER","Africa/Asmara" 149 | "148","ES","Europe/Madrid" 150 | "149","ES","Africa/Ceuta" 151 | "150","ES","Atlantic/Canary" 152 | "151","ET","Africa/Addis_Ababa" 153 | "152","FI","Europe/Helsinki" 154 | "153","FJ","Pacific/Fiji" 155 | "154","FK","Atlantic/Stanley" 156 | "155","FM","Pacific/Chuuk" 157 | "156","FM","Pacific/Pohnpei" 158 | "157","FM","Pacific/Kosrae" 159 | "158","FO","Atlantic/Faroe" 160 | "159","FR","Europe/Paris" 161 | "160","GA","Africa/Libreville" 162 | "161","GB","Europe/London" 163 | "162","GD","America/Grenada" 164 | "163","GE","Asia/Tbilisi" 165 | "164","GF","America/Cayenne" 166 | "165","GG","Europe/Guernsey" 167 | "166","GH","Africa/Accra" 168 | "167","GI","Europe/Gibraltar" 169 | "168","GL","America/Godthab" 170 | "169","GL","America/Danmarkshavn" 171 | "170","GL","America/Scoresbysund" 172 | "171","GL","America/Thule" 173 | "172","GM","Africa/Banjul" 174 | "173","GN","Africa/Conakry" 175 | "174","GP","America/Guadeloupe" 176 | "175","GQ","Africa/Malabo" 177 | "176","GR","Europe/Athens" 178 | "177","GS","Atlantic/South_Georgia" 179 | "178","GT","America/Guatemala" 180 | "179","GU","Pacific/Guam" 181 | "180","GW","Africa/Bissau" 182 | "181","GY","America/Guyana" 183 | "182","HK","Asia/Hong_Kong" 184 | "183","HN","America/Tegucigalpa" 185 | "184","HR","Europe/Zagreb" 186 | "185","HT","America/Port-au-Prince" 187 | "186","HU","Europe/Budapest" 188 | "187","ID","Asia/Jakarta" 189 | "188","ID","Asia/Pontianak" 190 | "189","ID","Asia/Makassar" 191 | "190","ID","Asia/Jayapura" 192 | "191","IE","Europe/Dublin" 193 | "192","IL","Asia/Jerusalem" 194 | "193","IM","Europe/Isle_of_Man" 195 | "194","IN","Asia/Kolkata" 196 | "195","IO","Indian/Chagos" 197 | "196","IQ","Asia/Baghdad" 198 | "197","IR","Asia/Tehran" 199 | "198","IS","Atlantic/Reykjavik" 200 | "199","IT","Europe/Rome" 201 | "200","JE","Europe/Jersey" 202 | "201","JM","America/Jamaica" 203 | "202","JO","Asia/Amman" 204 | "203","JP","Asia/Tokyo" 205 | "204","KE","Africa/Nairobi" 206 | "205","KG","Asia/Bishkek" 207 | "206","KH","Asia/Phnom_Penh" 208 | "207","KI","Pacific/Tarawa" 209 | "208","KI","Pacific/Enderbury" 210 | "209","KI","Pacific/Kiritimati" 211 | "210","KM","Indian/Comoro" 212 | "211","KN","America/St_Kitts" 213 | "212","KP","Asia/Pyongyang" 214 | "213","KR","Asia/Seoul" 215 | "214","KW","Asia/Kuwait" 216 | "215","KY","America/Cayman" 217 | "216","KZ","Asia/Almaty" 218 | "217","KZ","Asia/Qyzylorda" 219 | "218","KZ","Asia/Aqtobe" 220 | "219","KZ","Asia/Aqtau" 221 | "220","KZ","Asia/Oral" 222 | "221","LA","Asia/Vientiane" 223 | "222","LB","Asia/Beirut" 224 | "223","LC","America/St_Lucia" 225 | "224","LI","Europe/Vaduz" 226 | "225","LK","Asia/Colombo" 227 | "226","LR","Africa/Monrovia" 228 | "227","LS","Africa/Maseru" 229 | "228","LT","Europe/Vilnius" 230 | "229","LU","Europe/Luxembourg" 231 | "230","LV","Europe/Riga" 232 | "231","LY","Africa/Tripoli" 233 | "232","MA","Africa/Casablanca" 234 | "233","MC","Europe/Monaco" 235 | "234","MD","Europe/Chisinau" 236 | "235","ME","Europe/Podgorica" 237 | "236","MF","America/Marigot" 238 | "237","MG","Indian/Antananarivo" 239 | "238","MH","Pacific/Majuro" 240 | "239","MH","Pacific/Kwajalein" 241 | "240","MK","Europe/Skopje" 242 | "241","ML","Africa/Bamako" 243 | "242","MM","Asia/Rangoon" 244 | "243","MN","Asia/Ulaanbaatar" 245 | "244","MN","Asia/Hovd" 246 | "245","MN","Asia/Choibalsan" 247 | "246","MO","Asia/Macau" 248 | "247","MP","Pacific/Saipan" 249 | "248","MQ","America/Martinique" 250 | "249","MR","Africa/Nouakchott" 251 | "250","MS","America/Montserrat" 252 | "251","MT","Europe/Malta" 253 | "252","MU","Indian/Mauritius" 254 | "253","MV","Indian/Maldives" 255 | "254","MW","Africa/Blantyre" 256 | "255","MX","America/Mexico_City" 257 | "256","MX","America/Cancun" 258 | "257","MX","America/Merida" 259 | "258","MX","America/Monterrey" 260 | "259","MX","America/Matamoros" 261 | "260","MX","America/Mazatlan" 262 | "261","MX","America/Chihuahua" 263 | "262","MX","America/Ojinaga" 264 | "263","MX","America/Hermosillo" 265 | "264","MX","America/Tijuana" 266 | "265","MX","America/Santa_Isabel" 267 | "266","MX","America/Bahia_Banderas" 268 | "267","MY","Asia/Kuala_Lumpur" 269 | "268","MY","Asia/Kuching" 270 | "269","MZ","Africa/Maputo" 271 | "270","NA","Africa/Windhoek" 272 | "271","NC","Pacific/Noumea" 273 | "272","NE","Africa/Niamey" 274 | "273","NF","Pacific/Norfolk" 275 | "274","NG","Africa/Lagos" 276 | "275","NI","America/Managua" 277 | "276","NL","Europe/Amsterdam" 278 | "277","NO","Europe/Oslo" 279 | "278","NP","Asia/Kathmandu" 280 | "279","NR","Pacific/Nauru" 281 | "280","NU","Pacific/Niue" 282 | "281","NZ","Pacific/Auckland" 283 | "282","NZ","Pacific/Chatham" 284 | "283","OM","Asia/Muscat" 285 | "284","PA","America/Panama" 286 | "285","PE","America/Lima" 287 | "286","PF","Pacific/Tahiti" 288 | "287","PF","Pacific/Marquesas" 289 | "288","PF","Pacific/Gambier" 290 | "289","PG","Pacific/Port_Moresby" 291 | "290","PH","Asia/Manila" 292 | "291","PK","Asia/Karachi" 293 | "292","PL","Europe/Warsaw" 294 | "293","PM","America/Miquelon" 295 | "294","PN","Pacific/Pitcairn" 296 | "295","PR","America/Puerto_Rico" 297 | "296","PS","Asia/Gaza" 298 | "297","PS","Asia/Hebron" 299 | "298","PT","Europe/Lisbon" 300 | "299","PT","Atlantic/Madeira" 301 | "300","PT","Atlantic/Azores" 302 | "301","PW","Pacific/Palau" 303 | "302","PY","America/Asuncion" 304 | "303","QA","Asia/Qatar" 305 | "304","RE","Indian/Reunion" 306 | "305","RO","Europe/Bucharest" 307 | "306","RS","Europe/Belgrade" 308 | "307","RU","Europe/Kaliningrad" 309 | "308","RU","Europe/Moscow" 310 | "309","RU","Europe/Volgograd" 311 | "310","RU","Europe/Samara" 312 | "311","RU","Europe/Simferopol" 313 | "312","RU","Asia/Yekaterinburg" 314 | "313","RU","Asia/Omsk" 315 | "314","RU","Asia/Novosibirsk" 316 | "315","RU","Asia/Novokuznetsk" 317 | "316","RU","Asia/Krasnoyarsk" 318 | "317","RU","Asia/Irkutsk" 319 | "318","RU","Asia/Yakutsk" 320 | "319","RU","Asia/Khandyga" 321 | "320","RU","Asia/Vladivostok" 322 | "321","RU","Asia/Sakhalin" 323 | "322","RU","Asia/Ust-Nera" 324 | "323","RU","Asia/Magadan" 325 | "324","RU","Asia/Kamchatka" 326 | "325","RU","Asia/Anadyr" 327 | "326","RW","Africa/Kigali" 328 | "327","SA","Asia/Riyadh" 329 | "328","SB","Pacific/Guadalcanal" 330 | "329","SC","Indian/Mahe" 331 | "330","SD","Africa/Khartoum" 332 | "331","SE","Europe/Stockholm" 333 | "332","SG","Asia/Singapore" 334 | "333","SH","Atlantic/St_Helena" 335 | "334","SI","Europe/Ljubljana" 336 | "335","SJ","Arctic/Longyearbyen" 337 | "336","SK","Europe/Bratislava" 338 | "337","SL","Africa/Freetown" 339 | "338","SM","Europe/San_Marino" 340 | "339","SN","Africa/Dakar" 341 | "340","SO","Africa/Mogadishu" 342 | "341","SR","America/Paramaribo" 343 | "342","SS","Africa/Juba" 344 | "343","ST","Africa/Sao_Tome" 345 | "344","SV","America/El_Salvador" 346 | "345","SX","America/Lower_Princes" 347 | "346","SY","Asia/Damascus" 348 | "347","SZ","Africa/Mbabane" 349 | "348","TC","America/Grand_Turk" 350 | "349","TD","Africa/Ndjamena" 351 | "350","TF","Indian/Kerguelen" 352 | "351","TG","Africa/Lome" 353 | "352","TH","Asia/Bangkok" 354 | "353","TJ","Asia/Dushanbe" 355 | "354","TK","Pacific/Fakaofo" 356 | "355","TL","Asia/Dili" 357 | "356","TM","Asia/Ashgabat" 358 | "357","TN","Africa/Tunis" 359 | "358","TO","Pacific/Tongatapu" 360 | "359","TR","Europe/Istanbul" 361 | "360","TT","America/Port_of_Spain" 362 | "361","TV","Pacific/Funafuti" 363 | "362","TW","Asia/Taipei" 364 | "363","TZ","Africa/Dar_es_Salaam" 365 | "364","UA","Europe/Kiev" 366 | "365","UA","Europe/Uzhgorod" 367 | "366","UA","Europe/Zaporozhye" 368 | "367","UG","Africa/Kampala" 369 | "368","UM","Pacific/Johnston" 370 | "369","UM","Pacific/Midway" 371 | "370","UM","Pacific/Wake" 372 | "371","US","America/New_York" 373 | "372","US","America/Detroit" 374 | "373","US","America/Kentucky/Louisville" 375 | "374","US","America/Kentucky/Monticello" 376 | "375","US","America/Indiana/Indianapolis" 377 | "376","US","America/Indiana/Vincennes" 378 | "377","US","America/Indiana/Winamac" 379 | "378","US","America/Indiana/Marengo" 380 | "379","US","America/Indiana/Petersburg" 381 | "380","US","America/Indiana/Vevay" 382 | "381","US","America/Chicago" 383 | "382","US","America/Indiana/Tell_City" 384 | "383","US","America/Indiana/Knox" 385 | "384","US","America/Menominee" 386 | "385","US","America/North_Dakota/Center" 387 | "386","US","America/North_Dakota/New_Salem" 388 | "387","US","America/North_Dakota/Beulah" 389 | "388","US","America/Denver" 390 | "389","US","America/Boise" 391 | "390","US","America/Phoenix" 392 | "391","US","America/Los_Angeles" 393 | "392","US","America/Anchorage" 394 | "393","US","America/Juneau" 395 | "394","US","America/Sitka" 396 | "395","US","America/Yakutat" 397 | "396","US","America/Nome" 398 | "397","US","America/Adak" 399 | "398","US","America/Metlakatla" 400 | "399","US","Pacific/Honolulu" 401 | "400","UY","America/Montevideo" 402 | "401","UZ","Asia/Samarkand" 403 | "402","UZ","Asia/Tashkent" 404 | "403","VA","Europe/Vatican" 405 | "404","VC","America/St_Vincent" 406 | "405","VE","America/Caracas" 407 | "406","VG","America/Tortola" 408 | "407","VI","America/St_Thomas" 409 | "408","VN","Asia/Ho_Chi_Minh" 410 | "409","VU","Pacific/Efate" 411 | "410","WF","Pacific/Wallis" 412 | "411","WS","Pacific/Apia" 413 | "412","YE","Asia/Aden" 414 | "413","YT","Indian/Mayotte" 415 | "414","ZA","Africa/Johannesburg" 416 | "415","ZM","Africa/Lusaka" 417 | "416","ZW","Africa/Harare" 418 | "417","CA","America/Montreal" 419 | -------------------------------------------------------------------------------- /dist/angular-timezone-selector.css: -------------------------------------------------------------------------------- 1 | .chosen-select { 2 | width: 100%; 3 | } 4 | .chosen-select-deselect { 5 | width: 100%; 6 | } 7 | .chosen-container { 8 | display: inline-block; 9 | font-size: 14px; 10 | position: relative; 11 | vertical-align: middle; 12 | } 13 | .chosen-container .chosen-drop { 14 | background: #ffffff; 15 | border: 1px solid #cccccc; 16 | border-bottom-right-radius: 4px; 17 | border-bottom-left-radius: 4px; 18 | box-shadow: 0 8px 8px rgba(0, 0, 0, .25); 19 | margin-top: -1px; 20 | position: absolute; 21 | top: 100%; 22 | left: -9000px; 23 | z-index: 1060; 24 | } 25 | .chosen-container.chosen-with-drop .chosen-drop { 26 | left: 0; 27 | right: 0; 28 | } 29 | .chosen-container .chosen-results { 30 | color: #555555; 31 | margin: 0 4px 4px 0; 32 | max-height: 240px; 33 | padding: 0 0 0 4px; 34 | position: relative; 35 | overflow-x: hidden; 36 | overflow-y: auto; 37 | -webkit-overflow-scrolling: touch; 38 | } 39 | .chosen-container .chosen-results li { 40 | display: none; 41 | line-height: 1.42857143; 42 | list-style: none; 43 | margin: 0; 44 | padding: 5px 6px; 45 | } 46 | .chosen-container .chosen-results li em { 47 | background: #feffde; 48 | font-style: normal; 49 | } 50 | .chosen-container .chosen-results li.group-result { 51 | display: list-item; 52 | cursor: default; 53 | color: #999; 54 | font-weight: bold; 55 | } 56 | .chosen-container .chosen-results li.group-option { 57 | padding-left: 15px; 58 | } 59 | .chosen-container .chosen-results li.active-result { 60 | cursor: pointer; 61 | display: list-item; 62 | } 63 | .chosen-container .chosen-results li.highlighted { 64 | background-color: #337ab7; 65 | background-image: none; 66 | color: white; 67 | } 68 | .chosen-container .chosen-results li.highlighted em { 69 | background: transparent; 70 | } 71 | .chosen-container .chosen-results li.disabled-result { 72 | display: list-item; 73 | color: #777777; 74 | } 75 | .chosen-container .chosen-results .no-results { 76 | background: #eeeeee; 77 | display: list-item; 78 | } 79 | .chosen-container .chosen-results-scroll { 80 | background: white; 81 | margin: 0 4px; 82 | position: absolute; 83 | text-align: center; 84 | width: 321px; 85 | z-index: 1; 86 | } 87 | .chosen-container .chosen-results-scroll span { 88 | display: inline-block; 89 | height: 1.42857143; 90 | text-indent: -5000px; 91 | width: 9px; 92 | } 93 | .chosen-container .chosen-results-scroll-down { 94 | bottom: 0; 95 | } 96 | .chosen-container .chosen-results-scroll-down span { 97 | background: url("chosen-sprite.png") no-repeat -4px -3px; 98 | } 99 | .chosen-container .chosen-results-scroll-up span { 100 | background: url("chosen-sprite.png") no-repeat -22px -3px; 101 | } 102 | .chosen-container-single .chosen-single { 103 | background-color: #ffffff; 104 | background-clip: padding-box; 105 | border: 1px solid #cccccc; 106 | border-top-right-radius: 4px; 107 | border-top-left-radius: 4px; 108 | border-bottom-right-radius: 4px; 109 | border-bottom-left-radius: 4px; 110 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); 111 | color: #555555; 112 | display: block; 113 | height: 34px; 114 | overflow: hidden; 115 | line-height: 34px; 116 | padding: 0 0 0 8px; 117 | position: relative; 118 | text-decoration: none; 119 | white-space: nowrap; 120 | } 121 | .chosen-container-single .chosen-single span { 122 | display: block; 123 | margin-right: 26px; 124 | overflow: hidden; 125 | text-overflow: ellipsis; 126 | white-space: nowrap; 127 | } 128 | .chosen-container-single .chosen-single abbr { 129 | background: url("chosen-sprite.png") right top no-repeat; 130 | display: block; 131 | font-size: 1px; 132 | height: 10px; 133 | position: absolute; 134 | right: 26px; 135 | top: 12px; 136 | width: 12px; 137 | } 138 | .chosen-container-single .chosen-single abbr:hover { 139 | background-position: right -11px; 140 | } 141 | .chosen-container-single .chosen-single.chosen-disabled .chosen-single abbr:hover { 142 | background-position: right 2px; 143 | } 144 | .chosen-container-single .chosen-single div { 145 | display: block; 146 | height: 100%; 147 | position: absolute; 148 | top: 0; 149 | right: 0; 150 | width: 18px; 151 | } 152 | .chosen-container-single .chosen-single div b { 153 | background: url("chosen-sprite.png") no-repeat 0 7px; 154 | display: block; 155 | height: 100%; 156 | width: 100%; 157 | } 158 | .chosen-container-single .chosen-default { 159 | color: #777777; 160 | } 161 | .chosen-container-single .chosen-search { 162 | margin: 0; 163 | padding: 3px 30px 3px 4px; 164 | position: relative; 165 | white-space: nowrap; 166 | z-index: 1000; 167 | } 168 | .chosen-container-single .chosen-search input[type="text"] { 169 | background: url("chosen-sprite.png") no-repeat 100% -20px, #ffffff; 170 | border: 1px solid #cccccc; 171 | border-top-right-radius: 4px; 172 | border-top-left-radius: 4px; 173 | border-bottom-right-radius: 4px; 174 | border-bottom-left-radius: 4px; 175 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); 176 | margin: 1px 0; 177 | padding: 4px 20px 4px 4px; 178 | width: 100%; 179 | } 180 | .chosen-container-single .chosen-drop { 181 | margin-top: -1px; 182 | border-bottom-right-radius: 4px; 183 | border-bottom-left-radius: 4px; 184 | background-clip: padding-box; 185 | } 186 | .chosen-container-single-nosearch .chosen-search input { 187 | position: absolute; 188 | left: -9000px; 189 | } 190 | .chosen-container-multi .chosen-choices { 191 | background-color: #ffffff; 192 | border: 1px solid #cccccc; 193 | border-top-right-radius: 4px; 194 | border-top-left-radius: 4px; 195 | border-bottom-right-radius: 4px; 196 | border-bottom-left-radius: 4px; 197 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); 198 | cursor: text; 199 | height: auto !important; 200 | height: 1%; 201 | margin: 0; 202 | overflow: hidden; 203 | padding: 0; 204 | position: relative; 205 | } 206 | .chosen-container-multi .chosen-choices li { 207 | float: left; 208 | list-style: none; 209 | } 210 | .chosen-container-multi .chosen-choices .search-field { 211 | margin: 0; 212 | padding: 0; 213 | white-space: nowrap; 214 | } 215 | .chosen-container-multi .chosen-choices .search-field input[type="text"] { 216 | background: transparent !important; 217 | border: 0 !important; 218 | box-shadow: none; 219 | color: #555555; 220 | height: 32px; 221 | margin: 0; 222 | padding: 4px; 223 | outline: 0; 224 | } 225 | .chosen-container-multi .chosen-choices .search-field .default { 226 | color: #999; 227 | } 228 | .chosen-container-multi .chosen-choices .search-choice { 229 | background-clip: padding-box; 230 | background-color: #eeeeee; 231 | border: 1px solid #cccccc; 232 | border-top-right-radius: 4px; 233 | border-top-left-radius: 4px; 234 | border-bottom-right-radius: 4px; 235 | border-bottom-left-radius: 4px; 236 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); 237 | color: #333333; 238 | cursor: default; 239 | line-height: 13px; 240 | margin: 6px 0 3px 5px; 241 | padding: 3px 20px 3px 5px; 242 | position: relative; 243 | } 244 | .chosen-container-multi .chosen-choices .search-choice .search-choice-close { 245 | background: url("chosen-sprite.png") right top no-repeat; 246 | display: block; 247 | font-size: 1px; 248 | height: 10px; 249 | position: absolute; 250 | right: 4px; 251 | top: 5px; 252 | width: 12px; 253 | cursor: pointer; 254 | } 255 | .chosen-container-multi .chosen-choices .search-choice .search-choice-close:hover { 256 | background-position: right -11px; 257 | } 258 | .chosen-container-multi .chosen-choices .search-choice-focus { 259 | background: #d4d4d4; 260 | } 261 | .chosen-container-multi .chosen-choices .search-choice-focus .search-choice-close { 262 | background-position: right -11px; 263 | } 264 | .chosen-container-multi .chosen-results { 265 | margin: 0 0 0 0; 266 | padding: 0; 267 | } 268 | .chosen-container-multi .chosen-drop .result-selected { 269 | display: none; 270 | } 271 | .chosen-container-active .chosen-single { 272 | border: 1px solid #66afe9; 273 | box-shadow: 0 1px 1px rgba(0, 0, 0, .075) inset, 0 0 8px rgba(82, 168, 236, .6); 274 | transition: border linear .2s, box-shadow linear .2s; 275 | } 276 | .chosen-container-active.chosen-with-drop .chosen-single { 277 | background-color: #ffffff; 278 | border: 1px solid #66afe9; 279 | border-bottom-right-radius: 0; 280 | border-bottom-left-radius: 0; 281 | box-shadow: 0 1px 1px rgba(0, 0, 0, .075) inset, 0 0 8px rgba(82, 168, 236, .6); 282 | transition: border linear .2s, box-shadow linear .2s; 283 | } 284 | .chosen-container-active.chosen-with-drop .chosen-single div { 285 | background: transparent; 286 | border-left: none; 287 | } 288 | .chosen-container-active.chosen-with-drop .chosen-single div b { 289 | background-position: -18px 7px; 290 | } 291 | .chosen-container-active .chosen-choices { 292 | border: 1px solid #66afe9; 293 | border-bottom-right-radius: 0; 294 | border-bottom-left-radius: 0; 295 | box-shadow: 0 1px 1px rgba(0, 0, 0, .075) inset, 0 0 8px rgba(82, 168, 236, .6); 296 | transition: border linear .2s, box-shadow linear .2s; 297 | } 298 | .chosen-container-active .chosen-choices .search-field input[type="text"] { 299 | color: #111 !important; 300 | } 301 | .chosen-container-active.chosen-with-drop .chosen-choices { 302 | border-bottom-right-radius: 0; 303 | border-bottom-left-radius: 0; 304 | } 305 | .chosen-disabled { 306 | cursor: default; 307 | opacity: 0.5 !important; 308 | } 309 | .chosen-disabled .chosen-single { 310 | cursor: default; 311 | } 312 | .chosen-disabled .chosen-choices .search-choice .search-choice-close { 313 | cursor: default; 314 | } 315 | .chosen-rtl { 316 | text-align: right; 317 | } 318 | .chosen-rtl .chosen-single { 319 | padding: 0 8px 0 0; 320 | overflow: visible; 321 | } 322 | .chosen-rtl .chosen-single span { 323 | margin-left: 26px; 324 | margin-right: 0; 325 | direction: rtl; 326 | } 327 | .chosen-rtl .chosen-single div { 328 | left: 7px; 329 | right: auto; 330 | } 331 | .chosen-rtl .chosen-single abbr { 332 | left: 26px; 333 | right: auto; 334 | } 335 | .chosen-rtl .chosen-choices .search-field input[type="text"] { 336 | direction: rtl; 337 | } 338 | .chosen-rtl .chosen-choices li { 339 | float: right; 340 | } 341 | .chosen-rtl .chosen-choices .search-choice { 342 | margin: 6px 5px 3px 0; 343 | padding: 3px 5px 3px 19px; 344 | } 345 | .chosen-rtl .chosen-choices .search-choice .search-choice-close { 346 | background-position: right top; 347 | left: 4px; 348 | right: auto; 349 | } 350 | .chosen-rtl.chosen-container-single .chosen-results { 351 | margin: 0 0 4px 4px; 352 | padding: 0 4px 0 0; 353 | } 354 | .chosen-rtl .chosen-results .group-option { 355 | padding-left: 0; 356 | padding-right: 15px; 357 | } 358 | .chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div { 359 | border-right: none; 360 | } 361 | .chosen-rtl .chosen-search input[type="text"] { 362 | background: url("chosen-sprite.png") no-repeat -28px -20px, #ffffff; 363 | direction: rtl; 364 | padding: 4px 5px 4px 20px; 365 | } 366 | .input-group .chosen-container:last-child .chosen-single, 367 | .input-group .chosen-container:last-child .chosen-default, 368 | .input-group .chosen-container:last-child .chosen-choices { 369 | border-top-left-radius: 0px; 370 | border-bottom-left-radius: 0px; 371 | } 372 | .input-group .chosen-container:not(:last-child) .chosen-single, 373 | .input-group .chosen-container:not(:last-child) .chosen-default, 374 | .input-group .chosen-container:not(:last-child) .chosen-choices { 375 | border-top-right-radius: 0px; 376 | border-bottom-right-radius: 0px; 377 | } 378 | @media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-resolution: 2dppx) { 379 | .chosen-rtl .chosen-search input[type="text"], 380 | .chosen-container-single .chosen-single abbr, 381 | .chosen-container-single .chosen-single div b, 382 | .chosen-container-single .chosen-search input[type="text"], 383 | .chosen-container-multi .chosen-choices .search-choice .search-choice-close, 384 | .chosen-container .chosen-results-scroll-down span, 385 | .chosen-container .chosen-results-scroll-up span { 386 | background-image: url("chosen-sprite@2x.png") !important; 387 | background-size: 52px 37px !important; 388 | background-repeat: no-repeat !important; 389 | } 390 | } 391 | -------------------------------------------------------------------------------- /dist/angular-timezone-selector.js: -------------------------------------------------------------------------------- 1 | /*global angular, _, moment, $, jstz*/ 2 | 3 | /** 4 | * angular-timezone-selector 5 | * 6 | * A simple directive that allows a user to pick their timezone 7 | * 8 | * Author: Ashok Fernandez 9 | * Date: 12/06/2015 10 | * License: MIT 11 | */ 12 | 13 | angular.module('angular-timezone-selector', []) 14 | .constant('_', _) 15 | .constant('moment', moment) 16 | .factory('timezoneFactory', ['_', 'moment', function (_, moment) { 17 | return { 18 | get: function () { 19 | var timezoneMap = {} 20 | _.forEach(moment.tz.names(), function (zoneName) { 21 | var tz = moment.tz(zoneName) 22 | timezoneMap[zoneName] = { 23 | id: zoneName, 24 | name: zoneName.replace(/_/g, ' '), 25 | offset: 'UTC' + tz.format('Z'), 26 | nOffset: tz.utcOffset() 27 | } 28 | }) 29 | return timezoneMap 30 | } 31 | } 32 | }]) 33 | 34 | // Timezone name to country codemap 35 | .factory('zoneToCC', ['_', function (_) { 36 | // Note: zones is populated with the data from 'data/zone.csv' when this file is built 37 | var zones = [{"id":"1","cca2":"AD","name":"Europe/Andorra"},{"id":"2","cca2":"AE","name":"Asia/Dubai"},{"id":"3","cca2":"AF","name":"Asia/Kabul"},{"id":"4","cca2":"AG","name":"America/Antigua"},{"id":"5","cca2":"AI","name":"America/Anguilla"},{"id":"6","cca2":"AL","name":"Europe/Tirane"},{"id":"7","cca2":"AM","name":"Asia/Yerevan"},{"id":"8","cca2":"AO","name":"Africa/Luanda"},{"id":"9","cca2":"AQ","name":"Antarctica/McMurdo"},{"id":"10","cca2":"AQ","name":"Antarctica/Rothera"},{"id":"11","cca2":"AQ","name":"Antarctica/Palmer"},{"id":"12","cca2":"AQ","name":"Antarctica/Mawson"},{"id":"13","cca2":"AQ","name":"Antarctica/Davis"},{"id":"14","cca2":"AQ","name":"Antarctica/Casey"},{"id":"15","cca2":"AQ","name":"Antarctica/Vostok"},{"id":"16","cca2":"AQ","name":"Antarctica/DumontDUrville"},{"id":"17","cca2":"AQ","name":"Antarctica/Syowa"},{"id":"18","cca2":"AQ","name":"Antarctica/Troll"},{"id":"19","cca2":"AR","name":"America/Argentina/Buenos_Aires"},{"id":"20","cca2":"AR","name":"America/Argentina/Cordoba"},{"id":"21","cca2":"AR","name":"America/Argentina/Salta"},{"id":"22","cca2":"AR","name":"America/Argentina/Jujuy"},{"id":"23","cca2":"AR","name":"America/Argentina/Tucuman"},{"id":"24","cca2":"AR","name":"America/Argentina/Catamarca"},{"id":"25","cca2":"AR","name":"America/Argentina/La_Rioja"},{"id":"26","cca2":"AR","name":"America/Argentina/San_Juan"},{"id":"27","cca2":"AR","name":"America/Argentina/Mendoza"},{"id":"28","cca2":"AR","name":"America/Argentina/San_Luis"},{"id":"29","cca2":"AR","name":"America/Argentina/Rio_Gallegos"},{"id":"30","cca2":"AR","name":"America/Argentina/Ushuaia"},{"id":"31","cca2":"AS","name":"Pacific/Pago_Pago"},{"id":"32","cca2":"AT","name":"Europe/Vienna"},{"id":"33","cca2":"AU","name":"Australia/Lord_Howe"},{"id":"34","cca2":"AU","name":"Antarctica/Macquarie"},{"id":"35","cca2":"AU","name":"Australia/Hobart"},{"id":"36","cca2":"AU","name":"Australia/Currie"},{"id":"37","cca2":"AU","name":"Australia/Melbourne"},{"id":"38","cca2":"AU","name":"Australia/Sydney"},{"id":"39","cca2":"AU","name":"Australia/Broken_Hill"},{"id":"40","cca2":"AU","name":"Australia/Brisbane"},{"id":"41","cca2":"AU","name":"Australia/Lindeman"},{"id":"42","cca2":"AU","name":"Australia/Adelaide"},{"id":"43","cca2":"AU","name":"Australia/Darwin"},{"id":"44","cca2":"AU","name":"Australia/Perth"},{"id":"45","cca2":"AU","name":"Australia/Eucla"},{"id":"46","cca2":"AW","name":"America/Aruba"},{"id":"47","cca2":"AX","name":"Europe/Mariehamn"},{"id":"48","cca2":"AZ","name":"Asia/Baku"},{"id":"49","cca2":"BA","name":"Europe/Sarajevo"},{"id":"50","cca2":"BB","name":"America/Barbados"},{"id":"51","cca2":"BD","name":"Asia/Dhaka"},{"id":"52","cca2":"BE","name":"Europe/Brussels"},{"id":"53","cca2":"BF","name":"Africa/Ouagadougou"},{"id":"54","cca2":"BG","name":"Europe/Sofia"},{"id":"55","cca2":"BH","name":"Asia/Bahrain"},{"id":"56","cca2":"BI","name":"Africa/Bujumbura"},{"id":"57","cca2":"BJ","name":"Africa/Porto-Novo"},{"id":"58","cca2":"BL","name":"America/St_Barthelemy"},{"id":"59","cca2":"BM","name":"Atlantic/Bermuda"},{"id":"60","cca2":"BN","name":"Asia/Brunei"},{"id":"61","cca2":"BO","name":"America/La_Paz"},{"id":"62","cca2":"BQ","name":"America/Kralendijk"},{"id":"63","cca2":"BR","name":"America/Noronha"},{"id":"64","cca2":"BR","name":"America/Belem"},{"id":"65","cca2":"BR","name":"America/Fortaleza"},{"id":"66","cca2":"BR","name":"America/Recife"},{"id":"67","cca2":"BR","name":"America/Araguaina"},{"id":"68","cca2":"BR","name":"America/Maceio"},{"id":"69","cca2":"BR","name":"America/Bahia"},{"id":"70","cca2":"BR","name":"America/Sao_Paulo"},{"id":"71","cca2":"BR","name":"America/Campo_Grande"},{"id":"72","cca2":"BR","name":"America/Cuiaba"},{"id":"73","cca2":"BR","name":"America/Santarem"},{"id":"74","cca2":"BR","name":"America/Porto_Velho"},{"id":"75","cca2":"BR","name":"America/Boa_Vista"},{"id":"76","cca2":"BR","name":"America/Manaus"},{"id":"77","cca2":"BR","name":"America/Eirunepe"},{"id":"78","cca2":"BR","name":"America/Rio_Branco"},{"id":"79","cca2":"BS","name":"America/Nassau"},{"id":"80","cca2":"BT","name":"Asia/Thimphu"},{"id":"81","cca2":"BW","name":"Africa/Gaborone"},{"id":"82","cca2":"BY","name":"Europe/Minsk"},{"id":"83","cca2":"BZ","name":"America/Belize"},{"id":"84","cca2":"CA","name":"America/St_Johns"},{"id":"85","cca2":"CA","name":"America/Halifax"},{"id":"86","cca2":"CA","name":"America/Glace_Bay"},{"id":"87","cca2":"CA","name":"America/Moncton"},{"id":"88","cca2":"CA","name":"America/Goose_Bay"},{"id":"89","cca2":"CA","name":"America/Blanc-Sablon"},{"id":"90","cca2":"CA","name":"America/Toronto"},{"id":"91","cca2":"CA","name":"America/Nipigon"},{"id":"92","cca2":"CA","name":"America/Thunder_Bay"},{"id":"93","cca2":"CA","name":"America/Iqaluit"},{"id":"94","cca2":"CA","name":"America/Pangnirtung"},{"id":"95","cca2":"CA","name":"America/Resolute"},{"id":"96","cca2":"CA","name":"America/Atikokan"},{"id":"97","cca2":"CA","name":"America/Rankin_Inlet"},{"id":"98","cca2":"CA","name":"America/Winnipeg"},{"id":"99","cca2":"CA","name":"America/Rainy_River"},{"id":"100","cca2":"CA","name":"America/Regina"},{"id":"101","cca2":"CA","name":"America/Swift_Current"},{"id":"102","cca2":"CA","name":"America/Edmonton"},{"id":"103","cca2":"CA","name":"America/Cambridge_Bay"},{"id":"104","cca2":"CA","name":"America/Yellowknife"},{"id":"105","cca2":"CA","name":"America/Inuvik"},{"id":"106","cca2":"CA","name":"America/Creston"},{"id":"107","cca2":"CA","name":"America/Dawson_Creek"},{"id":"108","cca2":"CA","name":"America/Vancouver"},{"id":"109","cca2":"CA","name":"America/Whitehorse"},{"id":"110","cca2":"CA","name":"America/Dawson"},{"id":"111","cca2":"CC","name":"Indian/Cocos"},{"id":"112","cca2":"CD","name":"Africa/Kinshasa"},{"id":"113","cca2":"CD","name":"Africa/Lubumbashi"},{"id":"114","cca2":"CF","name":"Africa/Bangui"},{"id":"115","cca2":"CG","name":"Africa/Brazzaville"},{"id":"116","cca2":"CH","name":"Europe/Zurich"},{"id":"117","cca2":"CI","name":"Africa/Abidjan"},{"id":"118","cca2":"CK","name":"Pacific/Rarotonga"},{"id":"119","cca2":"CL","name":"America/Santiago"},{"id":"120","cca2":"CL","name":"Pacific/Easter"},{"id":"121","cca2":"CM","name":"Africa/Douala"},{"id":"122","cca2":"CN","name":"Asia/Shanghai"},{"id":"123","cca2":"CN","name":"Asia/Harbin"},{"id":"124","cca2":"CN","name":"Asia/Chongqing"},{"id":"125","cca2":"CN","name":"Asia/Urumqi"},{"id":"126","cca2":"CN","name":"Asia/Kashgar"},{"id":"127","cca2":"CO","name":"America/Bogota"},{"id":"128","cca2":"CR","name":"America/Costa_Rica"},{"id":"129","cca2":"CU","name":"America/Havana"},{"id":"130","cca2":"CV","name":"Atlantic/Cape_Verde"},{"id":"131","cca2":"CW","name":"America/Curacao"},{"id":"132","cca2":"CX","name":"Indian/Christmas"},{"id":"133","cca2":"CY","name":"Asia/Nicosia"},{"id":"134","cca2":"CZ","name":"Europe/Prague"},{"id":"135","cca2":"DE","name":"Europe/Berlin"},{"id":"136","cca2":"DE","name":"Europe/Busingen"},{"id":"137","cca2":"DJ","name":"Africa/Djibouti"},{"id":"138","cca2":"DK","name":"Europe/Copenhagen"},{"id":"139","cca2":"DM","name":"America/Dominica"},{"id":"140","cca2":"DO","name":"America/Santo_Domingo"},{"id":"141","cca2":"DZ","name":"Africa/Algiers"},{"id":"142","cca2":"EC","name":"America/Guayaquil"},{"id":"143","cca2":"EC","name":"Pacific/Galapagos"},{"id":"144","cca2":"EE","name":"Europe/Tallinn"},{"id":"145","cca2":"EG","name":"Africa/Cairo"},{"id":"146","cca2":"EH","name":"Africa/El_Aaiun"},{"id":"147","cca2":"ER","name":"Africa/Asmara"},{"id":"148","cca2":"ES","name":"Europe/Madrid"},{"id":"149","cca2":"ES","name":"Africa/Ceuta"},{"id":"150","cca2":"ES","name":"Atlantic/Canary"},{"id":"151","cca2":"ET","name":"Africa/Addis_Ababa"},{"id":"152","cca2":"FI","name":"Europe/Helsinki"},{"id":"153","cca2":"FJ","name":"Pacific/Fiji"},{"id":"154","cca2":"FK","name":"Atlantic/Stanley"},{"id":"155","cca2":"FM","name":"Pacific/Chuuk"},{"id":"156","cca2":"FM","name":"Pacific/Pohnpei"},{"id":"157","cca2":"FM","name":"Pacific/Kosrae"},{"id":"158","cca2":"FO","name":"Atlantic/Faroe"},{"id":"159","cca2":"FR","name":"Europe/Paris"},{"id":"160","cca2":"GA","name":"Africa/Libreville"},{"id":"161","cca2":"GB","name":"Europe/London"},{"id":"162","cca2":"GD","name":"America/Grenada"},{"id":"163","cca2":"GE","name":"Asia/Tbilisi"},{"id":"164","cca2":"GF","name":"America/Cayenne"},{"id":"165","cca2":"GG","name":"Europe/Guernsey"},{"id":"166","cca2":"GH","name":"Africa/Accra"},{"id":"167","cca2":"GI","name":"Europe/Gibraltar"},{"id":"168","cca2":"GL","name":"America/Godthab"},{"id":"169","cca2":"GL","name":"America/Danmarkshavn"},{"id":"170","cca2":"GL","name":"America/Scoresbysund"},{"id":"171","cca2":"GL","name":"America/Thule"},{"id":"172","cca2":"GM","name":"Africa/Banjul"},{"id":"173","cca2":"GN","name":"Africa/Conakry"},{"id":"174","cca2":"GP","name":"America/Guadeloupe"},{"id":"175","cca2":"GQ","name":"Africa/Malabo"},{"id":"176","cca2":"GR","name":"Europe/Athens"},{"id":"177","cca2":"GS","name":"Atlantic/South_Georgia"},{"id":"178","cca2":"GT","name":"America/Guatemala"},{"id":"179","cca2":"GU","name":"Pacific/Guam"},{"id":"180","cca2":"GW","name":"Africa/Bissau"},{"id":"181","cca2":"GY","name":"America/Guyana"},{"id":"182","cca2":"HK","name":"Asia/Hong_Kong"},{"id":"183","cca2":"HN","name":"America/Tegucigalpa"},{"id":"184","cca2":"HR","name":"Europe/Zagreb"},{"id":"185","cca2":"HT","name":"America/Port-au-Prince"},{"id":"186","cca2":"HU","name":"Europe/Budapest"},{"id":"187","cca2":"ID","name":"Asia/Jakarta"},{"id":"188","cca2":"ID","name":"Asia/Pontianak"},{"id":"189","cca2":"ID","name":"Asia/Makassar"},{"id":"190","cca2":"ID","name":"Asia/Jayapura"},{"id":"191","cca2":"IE","name":"Europe/Dublin"},{"id":"192","cca2":"IL","name":"Asia/Jerusalem"},{"id":"193","cca2":"IM","name":"Europe/Isle_of_Man"},{"id":"194","cca2":"IN","name":"Asia/Kolkata"},{"id":"195","cca2":"IO","name":"Indian/Chagos"},{"id":"196","cca2":"IQ","name":"Asia/Baghdad"},{"id":"197","cca2":"IR","name":"Asia/Tehran"},{"id":"198","cca2":"IS","name":"Atlantic/Reykjavik"},{"id":"199","cca2":"IT","name":"Europe/Rome"},{"id":"200","cca2":"JE","name":"Europe/Jersey"},{"id":"201","cca2":"JM","name":"America/Jamaica"},{"id":"202","cca2":"JO","name":"Asia/Amman"},{"id":"203","cca2":"JP","name":"Asia/Tokyo"},{"id":"204","cca2":"KE","name":"Africa/Nairobi"},{"id":"205","cca2":"KG","name":"Asia/Bishkek"},{"id":"206","cca2":"KH","name":"Asia/Phnom_Penh"},{"id":"207","cca2":"KI","name":"Pacific/Tarawa"},{"id":"208","cca2":"KI","name":"Pacific/Enderbury"},{"id":"209","cca2":"KI","name":"Pacific/Kiritimati"},{"id":"210","cca2":"KM","name":"Indian/Comoro"},{"id":"211","cca2":"KN","name":"America/St_Kitts"},{"id":"212","cca2":"KP","name":"Asia/Pyongyang"},{"id":"213","cca2":"KR","name":"Asia/Seoul"},{"id":"214","cca2":"KW","name":"Asia/Kuwait"},{"id":"215","cca2":"KY","name":"America/Cayman"},{"id":"216","cca2":"KZ","name":"Asia/Almaty"},{"id":"217","cca2":"KZ","name":"Asia/Qyzylorda"},{"id":"218","cca2":"KZ","name":"Asia/Aqtobe"},{"id":"219","cca2":"KZ","name":"Asia/Aqtau"},{"id":"220","cca2":"KZ","name":"Asia/Oral"},{"id":"221","cca2":"LA","name":"Asia/Vientiane"},{"id":"222","cca2":"LB","name":"Asia/Beirut"},{"id":"223","cca2":"LC","name":"America/St_Lucia"},{"id":"224","cca2":"LI","name":"Europe/Vaduz"},{"id":"225","cca2":"LK","name":"Asia/Colombo"},{"id":"226","cca2":"LR","name":"Africa/Monrovia"},{"id":"227","cca2":"LS","name":"Africa/Maseru"},{"id":"228","cca2":"LT","name":"Europe/Vilnius"},{"id":"229","cca2":"LU","name":"Europe/Luxembourg"},{"id":"230","cca2":"LV","name":"Europe/Riga"},{"id":"231","cca2":"LY","name":"Africa/Tripoli"},{"id":"232","cca2":"MA","name":"Africa/Casablanca"},{"id":"233","cca2":"MC","name":"Europe/Monaco"},{"id":"234","cca2":"MD","name":"Europe/Chisinau"},{"id":"235","cca2":"ME","name":"Europe/Podgorica"},{"id":"236","cca2":"MF","name":"America/Marigot"},{"id":"237","cca2":"MG","name":"Indian/Antananarivo"},{"id":"238","cca2":"MH","name":"Pacific/Majuro"},{"id":"239","cca2":"MH","name":"Pacific/Kwajalein"},{"id":"240","cca2":"MK","name":"Europe/Skopje"},{"id":"241","cca2":"ML","name":"Africa/Bamako"},{"id":"242","cca2":"MM","name":"Asia/Rangoon"},{"id":"243","cca2":"MN","name":"Asia/Ulaanbaatar"},{"id":"244","cca2":"MN","name":"Asia/Hovd"},{"id":"245","cca2":"MN","name":"Asia/Choibalsan"},{"id":"246","cca2":"MO","name":"Asia/Macau"},{"id":"247","cca2":"MP","name":"Pacific/Saipan"},{"id":"248","cca2":"MQ","name":"America/Martinique"},{"id":"249","cca2":"MR","name":"Africa/Nouakchott"},{"id":"250","cca2":"MS","name":"America/Montserrat"},{"id":"251","cca2":"MT","name":"Europe/Malta"},{"id":"252","cca2":"MU","name":"Indian/Mauritius"},{"id":"253","cca2":"MV","name":"Indian/Maldives"},{"id":"254","cca2":"MW","name":"Africa/Blantyre"},{"id":"255","cca2":"MX","name":"America/Mexico_City"},{"id":"256","cca2":"MX","name":"America/Cancun"},{"id":"257","cca2":"MX","name":"America/Merida"},{"id":"258","cca2":"MX","name":"America/Monterrey"},{"id":"259","cca2":"MX","name":"America/Matamoros"},{"id":"260","cca2":"MX","name":"America/Mazatlan"},{"id":"261","cca2":"MX","name":"America/Chihuahua"},{"id":"262","cca2":"MX","name":"America/Ojinaga"},{"id":"263","cca2":"MX","name":"America/Hermosillo"},{"id":"264","cca2":"MX","name":"America/Tijuana"},{"id":"265","cca2":"MX","name":"America/Santa_Isabel"},{"id":"266","cca2":"MX","name":"America/Bahia_Banderas"},{"id":"267","cca2":"MY","name":"Asia/Kuala_Lumpur"},{"id":"268","cca2":"MY","name":"Asia/Kuching"},{"id":"269","cca2":"MZ","name":"Africa/Maputo"},{"id":"270","cca2":"NA","name":"Africa/Windhoek"},{"id":"271","cca2":"NC","name":"Pacific/Noumea"},{"id":"272","cca2":"NE","name":"Africa/Niamey"},{"id":"273","cca2":"NF","name":"Pacific/Norfolk"},{"id":"274","cca2":"NG","name":"Africa/Lagos"},{"id":"275","cca2":"NI","name":"America/Managua"},{"id":"276","cca2":"NL","name":"Europe/Amsterdam"},{"id":"277","cca2":"NO","name":"Europe/Oslo"},{"id":"278","cca2":"NP","name":"Asia/Kathmandu"},{"id":"279","cca2":"NR","name":"Pacific/Nauru"},{"id":"280","cca2":"NU","name":"Pacific/Niue"},{"id":"281","cca2":"NZ","name":"Pacific/Auckland"},{"id":"282","cca2":"NZ","name":"Pacific/Chatham"},{"id":"283","cca2":"OM","name":"Asia/Muscat"},{"id":"284","cca2":"PA","name":"America/Panama"},{"id":"285","cca2":"PE","name":"America/Lima"},{"id":"286","cca2":"PF","name":"Pacific/Tahiti"},{"id":"287","cca2":"PF","name":"Pacific/Marquesas"},{"id":"288","cca2":"PF","name":"Pacific/Gambier"},{"id":"289","cca2":"PG","name":"Pacific/Port_Moresby"},{"id":"290","cca2":"PH","name":"Asia/Manila"},{"id":"291","cca2":"PK","name":"Asia/Karachi"},{"id":"292","cca2":"PL","name":"Europe/Warsaw"},{"id":"293","cca2":"PM","name":"America/Miquelon"},{"id":"294","cca2":"PN","name":"Pacific/Pitcairn"},{"id":"295","cca2":"PR","name":"America/Puerto_Rico"},{"id":"296","cca2":"PS","name":"Asia/Gaza"},{"id":"297","cca2":"PS","name":"Asia/Hebron"},{"id":"298","cca2":"PT","name":"Europe/Lisbon"},{"id":"299","cca2":"PT","name":"Atlantic/Madeira"},{"id":"300","cca2":"PT","name":"Atlantic/Azores"},{"id":"301","cca2":"PW","name":"Pacific/Palau"},{"id":"302","cca2":"PY","name":"America/Asuncion"},{"id":"303","cca2":"QA","name":"Asia/Qatar"},{"id":"304","cca2":"RE","name":"Indian/Reunion"},{"id":"305","cca2":"RO","name":"Europe/Bucharest"},{"id":"306","cca2":"RS","name":"Europe/Belgrade"},{"id":"307","cca2":"RU","name":"Europe/Kaliningrad"},{"id":"308","cca2":"RU","name":"Europe/Moscow"},{"id":"309","cca2":"RU","name":"Europe/Volgograd"},{"id":"310","cca2":"RU","name":"Europe/Samara"},{"id":"311","cca2":"RU","name":"Europe/Simferopol"},{"id":"312","cca2":"RU","name":"Asia/Yekaterinburg"},{"id":"313","cca2":"RU","name":"Asia/Omsk"},{"id":"314","cca2":"RU","name":"Asia/Novosibirsk"},{"id":"315","cca2":"RU","name":"Asia/Novokuznetsk"},{"id":"316","cca2":"RU","name":"Asia/Krasnoyarsk"},{"id":"317","cca2":"RU","name":"Asia/Irkutsk"},{"id":"318","cca2":"RU","name":"Asia/Yakutsk"},{"id":"319","cca2":"RU","name":"Asia/Khandyga"},{"id":"320","cca2":"RU","name":"Asia/Vladivostok"},{"id":"321","cca2":"RU","name":"Asia/Sakhalin"},{"id":"322","cca2":"RU","name":"Asia/Ust-Nera"},{"id":"323","cca2":"RU","name":"Asia/Magadan"},{"id":"324","cca2":"RU","name":"Asia/Kamchatka"},{"id":"325","cca2":"RU","name":"Asia/Anadyr"},{"id":"326","cca2":"RW","name":"Africa/Kigali"},{"id":"327","cca2":"SA","name":"Asia/Riyadh"},{"id":"328","cca2":"SB","name":"Pacific/Guadalcanal"},{"id":"329","cca2":"SC","name":"Indian/Mahe"},{"id":"330","cca2":"SD","name":"Africa/Khartoum"},{"id":"331","cca2":"SE","name":"Europe/Stockholm"},{"id":"332","cca2":"SG","name":"Asia/Singapore"},{"id":"333","cca2":"SH","name":"Atlantic/St_Helena"},{"id":"334","cca2":"SI","name":"Europe/Ljubljana"},{"id":"335","cca2":"SJ","name":"Arctic/Longyearbyen"},{"id":"336","cca2":"SK","name":"Europe/Bratislava"},{"id":"337","cca2":"SL","name":"Africa/Freetown"},{"id":"338","cca2":"SM","name":"Europe/San_Marino"},{"id":"339","cca2":"SN","name":"Africa/Dakar"},{"id":"340","cca2":"SO","name":"Africa/Mogadishu"},{"id":"341","cca2":"SR","name":"America/Paramaribo"},{"id":"342","cca2":"SS","name":"Africa/Juba"},{"id":"343","cca2":"ST","name":"Africa/Sao_Tome"},{"id":"344","cca2":"SV","name":"America/El_Salvador"},{"id":"345","cca2":"SX","name":"America/Lower_Princes"},{"id":"346","cca2":"SY","name":"Asia/Damascus"},{"id":"347","cca2":"SZ","name":"Africa/Mbabane"},{"id":"348","cca2":"TC","name":"America/Grand_Turk"},{"id":"349","cca2":"TD","name":"Africa/Ndjamena"},{"id":"350","cca2":"TF","name":"Indian/Kerguelen"},{"id":"351","cca2":"TG","name":"Africa/Lome"},{"id":"352","cca2":"TH","name":"Asia/Bangkok"},{"id":"353","cca2":"TJ","name":"Asia/Dushanbe"},{"id":"354","cca2":"TK","name":"Pacific/Fakaofo"},{"id":"355","cca2":"TL","name":"Asia/Dili"},{"id":"356","cca2":"TM","name":"Asia/Ashgabat"},{"id":"357","cca2":"TN","name":"Africa/Tunis"},{"id":"358","cca2":"TO","name":"Pacific/Tongatapu"},{"id":"359","cca2":"TR","name":"Europe/Istanbul"},{"id":"360","cca2":"TT","name":"America/Port_of_Spain"},{"id":"361","cca2":"TV","name":"Pacific/Funafuti"},{"id":"362","cca2":"TW","name":"Asia/Taipei"},{"id":"363","cca2":"TZ","name":"Africa/Dar_es_Salaam"},{"id":"364","cca2":"UA","name":"Europe/Kiev"},{"id":"365","cca2":"UA","name":"Europe/Uzhgorod"},{"id":"366","cca2":"UA","name":"Europe/Zaporozhye"},{"id":"367","cca2":"UG","name":"Africa/Kampala"},{"id":"368","cca2":"UM","name":"Pacific/Johnston"},{"id":"369","cca2":"UM","name":"Pacific/Midway"},{"id":"370","cca2":"UM","name":"Pacific/Wake"},{"id":"371","cca2":"US","name":"America/New_York"},{"id":"372","cca2":"US","name":"America/Detroit"},{"id":"373","cca2":"US","name":"America/Kentucky/Louisville"},{"id":"374","cca2":"US","name":"America/Kentucky/Monticello"},{"id":"375","cca2":"US","name":"America/Indiana/Indianapolis"},{"id":"376","cca2":"US","name":"America/Indiana/Vincennes"},{"id":"377","cca2":"US","name":"America/Indiana/Winamac"},{"id":"378","cca2":"US","name":"America/Indiana/Marengo"},{"id":"379","cca2":"US","name":"America/Indiana/Petersburg"},{"id":"380","cca2":"US","name":"America/Indiana/Vevay"},{"id":"381","cca2":"US","name":"America/Chicago"},{"id":"382","cca2":"US","name":"America/Indiana/Tell_City"},{"id":"383","cca2":"US","name":"America/Indiana/Knox"},{"id":"384","cca2":"US","name":"America/Menominee"},{"id":"385","cca2":"US","name":"America/North_Dakota/Center"},{"id":"386","cca2":"US","name":"America/North_Dakota/New_Salem"},{"id":"387","cca2":"US","name":"America/North_Dakota/Beulah"},{"id":"388","cca2":"US","name":"America/Denver"},{"id":"389","cca2":"US","name":"America/Boise"},{"id":"390","cca2":"US","name":"America/Phoenix"},{"id":"391","cca2":"US","name":"America/Los_Angeles"},{"id":"392","cca2":"US","name":"America/Anchorage"},{"id":"393","cca2":"US","name":"America/Juneau"},{"id":"394","cca2":"US","name":"America/Sitka"},{"id":"395","cca2":"US","name":"America/Yakutat"},{"id":"396","cca2":"US","name":"America/Nome"},{"id":"397","cca2":"US","name":"America/Adak"},{"id":"398","cca2":"US","name":"America/Metlakatla"},{"id":"399","cca2":"US","name":"Pacific/Honolulu"},{"id":"400","cca2":"UY","name":"America/Montevideo"},{"id":"401","cca2":"UZ","name":"Asia/Samarkand"},{"id":"402","cca2":"UZ","name":"Asia/Tashkent"},{"id":"403","cca2":"VA","name":"Europe/Vatican"},{"id":"404","cca2":"VC","name":"America/St_Vincent"},{"id":"405","cca2":"VE","name":"America/Caracas"},{"id":"406","cca2":"VG","name":"America/Tortola"},{"id":"407","cca2":"VI","name":"America/St_Thomas"},{"id":"408","cca2":"VN","name":"Asia/Ho_Chi_Minh"},{"id":"409","cca2":"VU","name":"Pacific/Efate"},{"id":"410","cca2":"WF","name":"Pacific/Wallis"},{"id":"411","cca2":"WS","name":"Pacific/Apia"},{"id":"412","cca2":"YE","name":"Asia/Aden"},{"id":"413","cca2":"YT","name":"Indian/Mayotte"},{"id":"414","cca2":"ZA","name":"Africa/Johannesburg"},{"id":"415","cca2":"ZM","name":"Africa/Lusaka"},{"id":"416","cca2":"ZW","name":"Africa/Harare"},{"id":"417","cca2":"CA","name":"America/Montreal"}] 38 | var zoneMap = {} 39 | _.forEach(zones, function (zone) { 40 | zoneMap[zone.name] = zone.cca2 41 | }) 42 | return zoneMap 43 | }]) 44 | 45 | // Country code to country name map 46 | .factory('CCToCountryName', ['_', function (_) { 47 | // Note: codes is populated with the data from 'data/cca2_to_country_name.csv' when this file is built 48 | var codes = [{"cca2":"AF","name":"Afghanistan"},{"cca2":"AX","name":"Aland Islands"},{"cca2":"AL","name":"Albania"},{"cca2":"DZ","name":"Algeria"},{"cca2":"AS","name":"American Samoa"},{"cca2":"AD","name":"Andorra"},{"cca2":"AO","name":"Angola"},{"cca2":"AI","name":"Anguilla"},{"cca2":"AQ","name":"Antarctica"},{"cca2":"AG","name":"Antigua And Barbuda"},{"cca2":"AR","name":"Argentina"},{"cca2":"AM","name":"Armenia"},{"cca2":"AW","name":"Aruba"},{"cca2":"AU","name":"Australia"},{"cca2":"AT","name":"Austria"},{"cca2":"AZ","name":"Azerbaijan"},{"cca2":"BS","name":"Bahamas"},{"cca2":"BH","name":"Bahrain"},{"cca2":"BD","name":"Bangladesh"},{"cca2":"BB","name":"Barbados"},{"cca2":"BY","name":"Belarus"},{"cca2":"BE","name":"Belgium"},{"cca2":"BZ","name":"Belize"},{"cca2":"BJ","name":"Benin"},{"cca2":"BM","name":"Bermuda"},{"cca2":"BT","name":"Bhutan"},{"cca2":"BO","name":"Bolivia"},{"cca2":"BA","name":"Bosnia And Herzegovina"},{"cca2":"BW","name":"Botswana"},{"cca2":"BV","name":"Bouvet Island"},{"cca2":"BR","name":"Brazil"},{"cca2":"IO","name":"British Indian Ocean Territory"},{"cca2":"BN","name":"Brunei Darussalam"},{"cca2":"BG","name":"Bulgaria"},{"cca2":"BF","name":"Burkina Faso"},{"cca2":"BI","name":"Burundi"},{"cca2":"KH","name":"Cambodia"},{"cca2":"CM","name":"Cameroon"},{"cca2":"CA","name":"Canada"},{"cca2":"CV","name":"Cape Verde"},{"cca2":"KY","name":"Cayman Islands"},{"cca2":"CF","name":"Central African Republic"},{"cca2":"TD","name":"Chad"},{"cca2":"CL","name":"Chile"},{"cca2":"CN","name":"China"},{"cca2":"CX","name":"Christmas Island"},{"cca2":"CC","name":"Cocos (Keeling) Islands"},{"cca2":"CO","name":"Colombia"},{"cca2":"KM","name":"Comoros"},{"cca2":"CG","name":"Congo"},{"cca2":"CD","name":"Congo (Democratic Republic)"},{"cca2":"CK","name":"Cook Islands"},{"cca2":"CR","name":"Costa Rica"},{"cca2":"CI","name":"Cote D'Ivoire"},{"cca2":"HR","name":"Croatia"},{"cca2":"CU","name":"Cuba"},{"cca2":"CY","name":"Cyprus"},{"cca2":"CZ","name":"Czech Republic"},{"cca2":"DK","name":"Denmark"},{"cca2":"DJ","name":"Djibouti"},{"cca2":"DM","name":"Dominica"},{"cca2":"DO","name":"Dominican Republic"},{"cca2":"EC","name":"Ecuador"},{"cca2":"EG","name":"Egypt"},{"cca2":"SV","name":"El Salvador"},{"cca2":"GQ","name":"Equatorial Guinea"},{"cca2":"ER","name":"Eritrea"},{"cca2":"EE","name":"Estonia"},{"cca2":"ET","name":"Ethiopia"},{"cca2":"FK","name":"Falkland Islands (Malvinas)"},{"cca2":"FO","name":"Faroe Islands"},{"cca2":"FJ","name":"Fiji"},{"cca2":"FI","name":"Finland"},{"cca2":"FR","name":"France"},{"cca2":"GF","name":"French Guiana"},{"cca2":"PF","name":"French Polynesia"},{"cca2":"TF","name":"French Southern Territories"},{"cca2":"GA","name":"Gabon"},{"cca2":"GM","name":"Gambia"},{"cca2":"GE","name":"Georgia"},{"cca2":"DE","name":"Germany"},{"cca2":"GH","name":"Ghana"},{"cca2":"GI","name":"Gibraltar"},{"cca2":"GR","name":"Greece"},{"cca2":"GL","name":"Greenland"},{"cca2":"GD","name":"Grenada"},{"cca2":"GP","name":"Guadeloupe"},{"cca2":"GU","name":"Guam"},{"cca2":"GT","name":"Guatemala"},{"cca2":"GG","name":"Guernsey"},{"cca2":"GN","name":"Guinea"},{"cca2":"GW","name":"Guinea-Bissau"},{"cca2":"GY","name":"Guyana"},{"cca2":"HT","name":"Haiti"},{"cca2":"HM","name":"Heard Island & Mcdonald Islands"},{"cca2":"VA","name":"Holy See (Vatican City State)"},{"cca2":"HN","name":"Honduras"},{"cca2":"HK","name":"Hong Kong"},{"cca2":"HU","name":"Hungary"},{"cca2":"IS","name":"Iceland"},{"cca2":"IN","name":"India"},{"cca2":"ID","name":"Indonesia"},{"cca2":"IR","name":"Iran (Islamic Republic Of)"},{"cca2":"IQ","name":"Iraq"},{"cca2":"IE","name":"Ireland"},{"cca2":"IM","name":"Isle Of Man"},{"cca2":"IL","name":"Israel"},{"cca2":"IT","name":"Italy"},{"cca2":"JM","name":"Jamaica"},{"cca2":"JP","name":"Japan"},{"cca2":"JE","name":"Jersey"},{"cca2":"JO","name":"Jordan"},{"cca2":"KZ","name":"Kazakhstan"},{"cca2":"KE","name":"Kenya"},{"cca2":"KI","name":"Kiribati"},{"cca2":"KR","name":"Korea"},{"cca2":"KW","name":"Kuwait"},{"cca2":"KG","name":"Kyrgyzstan"},{"cca2":"LA","name":"Lao People's Democratic Republic"},{"cca2":"LV","name":"Latvia"},{"cca2":"LB","name":"Lebanon"},{"cca2":"LS","name":"Lesotho"},{"cca2":"LR","name":"Liberia"},{"cca2":"LY","name":"Libyan Arab Jamahiriya"},{"cca2":"LI","name":"Liechtenstein"},{"cca2":"LT","name":"Lithuania"},{"cca2":"LU","name":"Luxembourg"},{"cca2":"MO","name":"Macao"},{"cca2":"MK","name":"Macedonia"},{"cca2":"MG","name":"Madagascar"},{"cca2":"MW","name":"Malawi"},{"cca2":"MY","name":"Malaysia"},{"cca2":"MV","name":"Maldives"},{"cca2":"ML","name":"Mali"},{"cca2":"MT","name":"Malta"},{"cca2":"MH","name":"Marshall Islands"},{"cca2":"MQ","name":"Martinique"},{"cca2":"MR","name":"Mauritania"},{"cca2":"MU","name":"Mauritius"},{"cca2":"YT","name":"Mayotte"},{"cca2":"MX","name":"Mexico"},{"cca2":"FM","name":"Micronesia (Federated States Of)"},{"cca2":"MD","name":"Moldova"},{"cca2":"MC","name":"Monaco"},{"cca2":"MN","name":"Mongolia"},{"cca2":"ME","name":"Montenegro"},{"cca2":"MS","name":"Montserrat"},{"cca2":"MA","name":"Morocco"},{"cca2":"MZ","name":"Mozambique"},{"cca2":"MM","name":"Myanmar"},{"cca2":"NA","name":"Namibia"},{"cca2":"NR","name":"Nauru"},{"cca2":"NP","name":"Nepal"},{"cca2":"NL","name":"Netherlands"},{"cca2":"AN","name":"Netherlands Antilles"},{"cca2":"NC","name":"New Caledonia"},{"cca2":"NZ","name":"New Zealand"},{"cca2":"NI","name":"Nicaragua"},{"cca2":"NE","name":"Niger"},{"cca2":"NG","name":"Nigeria"},{"cca2":"NU","name":"Niue"},{"cca2":"NF","name":"Norfolk Island"},{"cca2":"MP","name":"Northern Mariana Islands"},{"cca2":"NO","name":"Norway"},{"cca2":"OM","name":"Oman"},{"cca2":"PK","name":"Pakistan"},{"cca2":"PW","name":"Palau"},{"cca2":"PS","name":"Palestinian Territory (Occupied)"},{"cca2":"PA","name":"Panama"},{"cca2":"PG","name":"Papua New Guinea"},{"cca2":"PY","name":"Paraguay"},{"cca2":"PE","name":"Peru"},{"cca2":"PH","name":"Philippines"},{"cca2":"PN","name":"Pitcairn"},{"cca2":"PL","name":"Poland"},{"cca2":"PT","name":"Portugal"},{"cca2":"PR","name":"Puerto Rico"},{"cca2":"QA","name":"Qatar"},{"cca2":"RE","name":"Reunion"},{"cca2":"RO","name":"Romania"},{"cca2":"RU","name":"Russian Federation"},{"cca2":"RW","name":"Rwanda"},{"cca2":"BL","name":"Saint Barthelemy"},{"cca2":"SH","name":"Saint Helena"},{"cca2":"KN","name":"Saint Kitts And Nevis"},{"cca2":"LC","name":"Saint Lucia"},{"cca2":"MF","name":"Saint Martin"},{"cca2":"PM","name":"Saint Pierre And Miquelon"},{"cca2":"VC","name":"Saint Vincent And Grenadines"},{"cca2":"WS","name":"Samoa"},{"cca2":"SM","name":"San Marino"},{"cca2":"ST","name":"Sao Tome And Principe"},{"cca2":"SA","name":"Saudi Arabia"},{"cca2":"SN","name":"Senegal"},{"cca2":"RS","name":"Serbia"},{"cca2":"SC","name":"Seychelles"},{"cca2":"SL","name":"Sierra Leone"},{"cca2":"SG","name":"Singapore"},{"cca2":"SK","name":"Slovakia"},{"cca2":"SI","name":"Slovenia"},{"cca2":"SB","name":"Solomon Islands"},{"cca2":"SO","name":"Somalia"},{"cca2":"SS","name":"South Sudan"},{"cca2":"ZA","name":"South Africa"},{"cca2":"GS","name":"South Georgia And Sandwich Isl."},{"cca2":"ES","name":"Spain"},{"cca2":"LK","name":"Sri Lanka"},{"cca2":"SD","name":"Sudan"},{"cca2":"SR","name":"Suriname"},{"cca2":"SJ","name":"Svalbard And Jan Mayen"},{"cca2":"SZ","name":"Swaziland"},{"cca2":"SE","name":"Sweden"},{"cca2":"CH","name":"Switzerland"},{"cca2":"SY","name":"Syrian Arab Republic"},{"cca2":"TW","name":"Taiwan"},{"cca2":"TJ","name":"Tajikistan"},{"cca2":"TZ","name":"Tanzania"},{"cca2":"TH","name":"Thailand"},{"cca2":"TL","name":"Timor-Leste"},{"cca2":"TG","name":"Togo"},{"cca2":"TK","name":"Tokelau"},{"cca2":"TO","name":"Tonga"},{"cca2":"TT","name":"Trinidad And Tobago"},{"cca2":"TN","name":"Tunisia"},{"cca2":"TR","name":"Turkey"},{"cca2":"TM","name":"Turkmenistan"},{"cca2":"TC","name":"Turks And Caicos Islands"},{"cca2":"TV","name":"Tuvalu"},{"cca2":"UG","name":"Uganda"},{"cca2":"UA","name":"Ukraine"},{"cca2":"AE","name":"United Arab Emirates"},{"cca2":"GB","name":"United Kingdom"},{"cca2":"US","name":"United States"},{"cca2":"UM","name":"United States Outlying Islands"},{"cca2":"UY","name":"Uruguay"},{"cca2":"UZ","name":"Uzbekistan"},{"cca2":"VU","name":"Vanuatu"},{"cca2":"VE","name":"Venezuela"},{"cca2":"VN","name":"Viet Nam"},{"cca2":"VG","name":"Virgin Islands (British)"},{"cca2":"VI","name":"Virgin Islands (U.S.)"},{"cca2":"WF","name":"Wallis And Futuna"},{"cca2":"EH","name":"Western Sahara"},{"cca2":"YE","name":"Yemen"},{"cca2":"ZM","name":"Zambia"},{"cca2":"ZW","name":"Zimbabwe"},{"cca2":"SX","name":"Sint Maarten"},{"cca2":"CW","name":"Curacao"},{"cca2":"BQ","name":"Bonaire"},{"cca2":"KP","name":"North Korea"}] 49 | var codeMap = {} 50 | _.forEach(codes, function (code) { 51 | codeMap[code.cca2] = code.name 52 | }) 53 | return codeMap 54 | }]) 55 | 56 | .directive('timezoneSelector', ['_', 'moment', 'timezoneFactory', 'zoneToCC', 'CCToCountryName', function (_, moment, timezoneFactory, zoneToCC, CCToCountryName) { 57 | return { 58 | restrict: 'E', 59 | replace: true, 60 | template: '', 61 | scope: { 62 | ngModel: '=', 63 | translations: '=' 64 | }, 65 | link: function ($scope, elem, attrs) { 66 | var data = [] 67 | var timezones = timezoneFactory.get() 68 | 69 | // Group the timezones by their country code 70 | var timezonesGroupedByCC = {} 71 | _.forEach(timezones, function (timezone) { 72 | if (_.has(zoneToCC, timezone.id)) { 73 | var CC = zoneToCC[timezone.id] 74 | timezonesGroupedByCC[CC] = !timezonesGroupedByCC[CC] ? [] : timezonesGroupedByCC[CC] 75 | timezonesGroupedByCC[CC].push(timezone) 76 | } 77 | }) 78 | 79 | // Add the grouped countries to the data array with their country name as the group option 80 | _.forEach(timezonesGroupedByCC, function (zonesByCountry, CC) { 81 | var zonesForCountry = { 82 | text: CCToCountryName[CC] + ': ', 83 | children: zonesByCountry, 84 | firstNOffset: zonesByCountry[0].nOffset 85 | } 86 | 87 | data.push(zonesForCountry) 88 | }) 89 | 90 | // Sort by UTC or country name 91 | if (attrs.sortBy === 'offset') { 92 | data = _.sortBy(data, 'firstNOffset') 93 | _.forEach(data, function (zonesForCountry, key) { 94 | zonesForCountry.children = _.sortBy(zonesForCountry.children, 'nOffset') 95 | }) 96 | } else { 97 | data = _.sortBy(data, 'text') 98 | } 99 | 100 | // add initial options forlocal 101 | if (attrs.showLocal !== undefined) { 102 | if (jstz !== undefined) { 103 | // Make sure the tz from jstz has underscores replaced with spaces so it matches 104 | // the format used in timezoneFactory 105 | var extraTZs = _.filter(timezones, { 'id': jstz.determine().name() }) 106 | } else { 107 | var localUTC = 'UTC' + moment().format('Z') 108 | extraTZs = _.filter(timezones, {'offset': localUTC}) 109 | } 110 | 111 | if (extraTZs !== undefined && extraTZs.length > 0) { 112 | data.splice(0, 0, { 113 | text: _.get($scope, 'translations.local', 'Local') + ': ', 114 | children: extraTZs, 115 | firstNOffset: extraTZs[0].nOffset, 116 | firstOffset: extraTZs[0].offset 117 | }) 118 | } 119 | } 120 | 121 | if (attrs.setLocal !== undefined) { 122 | if (jstz !== undefined) { 123 | $scope.ngModel || ($scope.ngModel = jstz.determine().name()) 124 | } 125 | } 126 | 127 | // add initial options 128 | if (attrs.primaryChoices !== undefined) { 129 | var primaryChoices = [] 130 | _.forEach(attrs.primaryChoices.split(' '), function (choice) { 131 | primaryChoices.push(choice.replace('_', ' ')) 132 | }) 133 | extraTZs = _.filter(timezones, function (tz) { return _.includes(primaryChoices, tz.name) }) 134 | 135 | if (extraTZs !== undefined && extraTZs.length > 0) { 136 | data.splice(0, 0, { 137 | text: _.get($scope, 'translations.primary', 'Primary') + ': ', 138 | children: extraTZs, 139 | firstNOffset: extraTZs[0].nOffset, 140 | firstOffset: extraTZs[0].offset 141 | }) 142 | } 143 | } 144 | 145 | // Construct a select box with the timezones grouped by country 146 | _.forEach(data, function (group) { 147 | var optgroup = $('') 148 | group.children.forEach(function (option) { 149 | if (attrs.displayUtc === 'true' && option.name.indexOf('(UTC') === -1) { 150 | option.name = option.name + ' (' + option.offset + ')' 151 | } 152 | 153 | optgroup.append('') 155 | }) 156 | elem.append(optgroup) 157 | }) 158 | 159 | // Initialise the chosen box 160 | elem.chosen({ 161 | width: attrs.width || '300px', 162 | include_group_label_in_selected: true, 163 | search_contains: true, 164 | no_results_text: _.get($scope, 'translations.no_results_text', 165 | 'No results, try searching for the name of your country or nearest major city.'), 166 | placeholder_text_single: _.get($scope, 'translations.placeholder', 'Choose a timezone') 167 | }) 168 | 169 | // Update the box if ngModel changes 170 | $scope.$watch('ngModel', function () { 171 | elem.val($scope.ngModel) 172 | elem.trigger('chosen:updated') 173 | }) 174 | } 175 | } 176 | }]) 177 | -------------------------------------------------------------------------------- /dist/angular-timezone-selector.min.css: -------------------------------------------------------------------------------- 1 | .chosen-select,.chosen-select-deselect{width:100%}.chosen-container{display:inline-block;font-size:14px;position:relative;vertical-align:middle}.chosen-container .chosen-drop{background:#fff;border:1px solid #ccc;border-bottom-right-radius:4px;border-bottom-left-radius:4px;box-shadow:0 8px 8px rgba(0,0,0,.25);margin-top:-1px;position:absolute;top:100%;left:-9000px;z-index:1060}.chosen-container.chosen-with-drop .chosen-drop{left:0;right:0}.chosen-container .chosen-results{color:#555;margin:0 4px 4px 0;max-height:240px;padding:0 0 0 4px;position:relative;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;line-height:1.42857143;list-style:none;margin:0;padding:5px 6px}.chosen-container .chosen-results li em{background:#feffde;font-style:normal}.chosen-container .chosen-results li.group-result{display:list-item;cursor:default;color:#999;font-weight:700}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li.active-result{cursor:pointer;display:list-item}.chosen-container .chosen-results li.highlighted{background-color:#337ab7;background-image:none;color:#fff}.chosen-container .chosen-results li.highlighted em{background:0 0}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#777}.chosen-container .chosen-results .no-results{background:#eee;display:list-item}.chosen-container .chosen-results-scroll{background:#fff;margin:0 4px;position:absolute;text-align:center;width:321px;z-index:1}.chosen-container .chosen-results-scroll span{display:inline-block;height:1.42857143;text-indent:-5000px;width:9px}.chosen-container .chosen-results-scroll-down{bottom:0}.chosen-container .chosen-results-scroll-down span{background:url(chosen-sprite.png) -4px -3px no-repeat}.chosen-container .chosen-results-scroll-up span{background:url(chosen-sprite.png) -22px -3px no-repeat}.chosen-container-single .chosen-single{background-color:#fff;background-clip:padding-box;border:1px solid #ccc;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);color:#555;display:block;height:34px;overflow:hidden;line-height:34px;padding:0 0 0 8px;position:relative;text-decoration:none;white-space:nowrap;border-radius:4px}.chosen-container-single .chosen-single span{display:block;margin-right:26px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chosen-container-single .chosen-single abbr{background:url(chosen-sprite.png) right top no-repeat;display:block;font-size:1px;height:10px;position:absolute;right:26px;top:12px;width:12px}.chosen-container-single .chosen-single abbr:hover{background-position:right -11px}.chosen-container-single .chosen-single.chosen-disabled .chosen-single abbr:hover{background-position:right 2px}.chosen-container-single .chosen-single div{display:block;height:100%;position:absolute;top:0;right:0;width:18px}.chosen-container-single .chosen-single div b{background:url(chosen-sprite.png) 0 7px no-repeat;display:block;height:100%;width:100%}.chosen-container-single .chosen-default{color:#777}.chosen-container-single .chosen-search{margin:0;padding:3px 30px 3px 4px;position:relative;white-space:nowrap;z-index:1000}.chosen-container-single .chosen-search input[type=text]{background:url(chosen-sprite.png) 100% -20px no-repeat,#fff;border:1px solid #ccc;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);margin:1px 0;padding:4px 20px 4px 4px;width:100%;border-radius:4px}.chosen-container-single .chosen-drop{margin-top:-1px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;background-clip:padding-box}.chosen-container-single-nosearch .chosen-search input{position:absolute;left:-9000px}.chosen-container-multi .chosen-choices{background-color:#fff;border:1px solid #ccc;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);cursor:text;height:auto!important;height:1%;margin:0;overflow:hidden;padding:0;position:relative;border-radius:4px}.chosen-container-multi .chosen-choices li{float:left;list-style:none}.chosen-container-multi .chosen-choices .search-field{margin:0;padding:0;white-space:nowrap}.chosen-container-multi .chosen-choices .search-field input[type=text]{background:0 0!important;border:0!important;box-shadow:none;color:#555;height:32px;margin:0;padding:4px;outline:0}.chosen-container-multi .chosen-choices .search-field .default{color:#999}.chosen-container-multi .chosen-choices .search-choice{background-clip:padding-box;background-color:#eee;border:1px solid #ccc;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);color:#333;cursor:default;line-height:13px;margin:6px 0 3px 5px;padding:3px 20px 3px 5px;position:relative;border-radius:4px}.chosen-container-active .chosen-single,.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #66afe9;box-shadow:0 1px 1px rgba(0,0,0,.075) inset,0 0 8px rgba(82,168,236,.6);transition:border linear .2s,box-shadow linear .2s}.chosen-container-multi .chosen-choices .search-choice .search-choice-close{background:url(chosen-sprite.png) right top no-repeat;display:block;font-size:1px;height:10px;position:absolute;right:4px;top:5px;width:12px;cursor:pointer}.chosen-container-multi .chosen-choices .search-choice .search-choice-close:hover{background-position:right -11px}.chosen-container-multi .chosen-choices .search-choice-focus{background:#d4d4d4}.chosen-container-multi .chosen-choices .search-choice-focus .search-choice-close{background-position:right -11px}.chosen-container-multi .chosen-results{margin:0;padding:0}.chosen-container-multi .chosen-drop .result-selected{display:none}.chosen-container-active.chosen-with-drop .chosen-single{background-color:#fff;border-bottom-right-radius:0;border-bottom-left-radius:0}.chosen-container-active.chosen-with-drop .chosen-single div{background:0 0;border-left:none}.chosen-container-active.chosen-with-drop .chosen-single div b{background-position:-18px 7px}.chosen-container-active .chosen-choices{border:1px solid #66afe9;border-bottom-right-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 1px rgba(0,0,0,.075) inset,0 0 8px rgba(82,168,236,.6);transition:border linear .2s,box-shadow linear .2s}.chosen-container-active .chosen-choices .search-field input[type=text]{color:#111!important}.chosen-container-active.chosen-with-drop .chosen-choices{border-bottom-right-radius:0;border-bottom-left-radius:0}.chosen-disabled{cursor:default;opacity:.5!important}.chosen-disabled .chosen-choices .search-choice .search-choice-close,.chosen-disabled .chosen-single{cursor:default}.chosen-rtl{text-align:right}.chosen-rtl .chosen-single{padding:0 8px 0 0;overflow:visible}.chosen-rtl .chosen-single span{margin-left:26px;margin-right:0;direction:rtl}.chosen-rtl .chosen-single div{left:7px;right:auto}.chosen-rtl .chosen-single abbr{left:26px;right:auto}.chosen-rtl .chosen-choices .search-field input[type=text]{direction:rtl}.chosen-rtl .chosen-choices li{float:right}.chosen-rtl .chosen-choices .search-choice{margin:6px 5px 3px 0;padding:3px 5px 3px 19px}.chosen-rtl .chosen-choices .search-choice .search-choice-close{background-position:right top;left:4px;right:auto}.chosen-rtl.chosen-container-single .chosen-results{margin:0 0 4px 4px;padding:0 4px 0 0}.chosen-rtl .chosen-results .group-option{padding-left:0;padding-right:15px}.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div{border-right:none}.chosen-rtl .chosen-search input[type=text]{background:url(chosen-sprite.png) -28px -20px no-repeat,#fff;direction:rtl;padding:4px 5px 4px 20px}.input-group .chosen-container:last-child .chosen-choices,.input-group .chosen-container:last-child .chosen-default,.input-group .chosen-container:last-child .chosen-single{border-top-left-radius:0;border-bottom-left-radius:0}.input-group .chosen-container:not(:last-child) .chosen-choices,.input-group .chosen-container:not(:last-child) .chosen-default,.input-group .chosen-container:not(:last-child) .chosen-single{border-top-right-radius:0;border-bottom-right-radius:0}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min-resolution:2dppx){.chosen-container .chosen-results-scroll-down span,.chosen-container .chosen-results-scroll-up span,.chosen-container-multi .chosen-choices .search-choice .search-choice-close,.chosen-container-single .chosen-search input[type=text],.chosen-container-single .chosen-single abbr,.chosen-container-single .chosen-single div b,.chosen-rtl .chosen-search input[type=text]{background-image:url(chosen-sprite@2x.png)!important;background-size:52px 37px!important;background-repeat:no-repeat!important}} -------------------------------------------------------------------------------- /dist/angular-timezone-selector.min.js: -------------------------------------------------------------------------------- 1 | angular.module("angular-timezone-selector",[]).constant("_",_).constant("moment",moment).factory("timezoneFactory",["_","moment",function(a,b){return{get:function(){var c={};return a.forEach(b.tz.names(),function(a){var d=b.tz(a);c[a]={id:a,name:a.replace(/_/g," "),offset:"UTC"+d.format("Z"),nOffset:d.utcOffset()}}),c}}}]).factory("zoneToCC",["_",function(a){var b=[{id:"1",cca2:"AD",name:"Europe/Andorra"},{id:"2",cca2:"AE",name:"Asia/Dubai"},{id:"3",cca2:"AF",name:"Asia/Kabul"},{id:"4",cca2:"AG",name:"America/Antigua"},{id:"5",cca2:"AI",name:"America/Anguilla"},{id:"6",cca2:"AL",name:"Europe/Tirane"},{id:"7",cca2:"AM",name:"Asia/Yerevan"},{id:"8",cca2:"AO",name:"Africa/Luanda"},{id:"9",cca2:"AQ",name:"Antarctica/McMurdo"},{id:"10",cca2:"AQ",name:"Antarctica/Rothera"},{id:"11",cca2:"AQ",name:"Antarctica/Palmer"},{id:"12",cca2:"AQ",name:"Antarctica/Mawson"},{id:"13",cca2:"AQ",name:"Antarctica/Davis"},{id:"14",cca2:"AQ",name:"Antarctica/Casey"},{id:"15",cca2:"AQ",name:"Antarctica/Vostok"},{id:"16",cca2:"AQ",name:"Antarctica/DumontDUrville"},{id:"17",cca2:"AQ",name:"Antarctica/Syowa"},{id:"18",cca2:"AQ",name:"Antarctica/Troll"},{id:"19",cca2:"AR",name:"America/Argentina/Buenos_Aires"},{id:"20",cca2:"AR",name:"America/Argentina/Cordoba"},{id:"21",cca2:"AR",name:"America/Argentina/Salta"},{id:"22",cca2:"AR",name:"America/Argentina/Jujuy"},{id:"23",cca2:"AR",name:"America/Argentina/Tucuman"},{id:"24",cca2:"AR",name:"America/Argentina/Catamarca"},{id:"25",cca2:"AR",name:"America/Argentina/La_Rioja"},{id:"26",cca2:"AR",name:"America/Argentina/San_Juan"},{id:"27",cca2:"AR",name:"America/Argentina/Mendoza"},{id:"28",cca2:"AR",name:"America/Argentina/San_Luis"},{id:"29",cca2:"AR",name:"America/Argentina/Rio_Gallegos"},{id:"30",cca2:"AR",name:"America/Argentina/Ushuaia"},{id:"31",cca2:"AS",name:"Pacific/Pago_Pago"},{id:"32",cca2:"AT",name:"Europe/Vienna"},{id:"33",cca2:"AU",name:"Australia/Lord_Howe"},{id:"34",cca2:"AU",name:"Antarctica/Macquarie"},{id:"35",cca2:"AU",name:"Australia/Hobart"},{id:"36",cca2:"AU",name:"Australia/Currie"},{id:"37",cca2:"AU",name:"Australia/Melbourne"},{id:"38",cca2:"AU",name:"Australia/Sydney"},{id:"39",cca2:"AU",name:"Australia/Broken_Hill"},{id:"40",cca2:"AU",name:"Australia/Brisbane"},{id:"41",cca2:"AU",name:"Australia/Lindeman"},{id:"42",cca2:"AU",name:"Australia/Adelaide"},{id:"43",cca2:"AU",name:"Australia/Darwin"},{id:"44",cca2:"AU",name:"Australia/Perth"},{id:"45",cca2:"AU",name:"Australia/Eucla"},{id:"46",cca2:"AW",name:"America/Aruba"},{id:"47",cca2:"AX",name:"Europe/Mariehamn"},{id:"48",cca2:"AZ",name:"Asia/Baku"},{id:"49",cca2:"BA",name:"Europe/Sarajevo"},{id:"50",cca2:"BB",name:"America/Barbados"},{id:"51",cca2:"BD",name:"Asia/Dhaka"},{id:"52",cca2:"BE",name:"Europe/Brussels"},{id:"53",cca2:"BF",name:"Africa/Ouagadougou"},{id:"54",cca2:"BG",name:"Europe/Sofia"},{id:"55",cca2:"BH",name:"Asia/Bahrain"},{id:"56",cca2:"BI",name:"Africa/Bujumbura"},{id:"57",cca2:"BJ",name:"Africa/Porto-Novo"},{id:"58",cca2:"BL",name:"America/St_Barthelemy"},{id:"59",cca2:"BM",name:"Atlantic/Bermuda"},{id:"60",cca2:"BN",name:"Asia/Brunei"},{id:"61",cca2:"BO",name:"America/La_Paz"},{id:"62",cca2:"BQ",name:"America/Kralendijk"},{id:"63",cca2:"BR",name:"America/Noronha"},{id:"64",cca2:"BR",name:"America/Belem"},{id:"65",cca2:"BR",name:"America/Fortaleza"},{id:"66",cca2:"BR",name:"America/Recife"},{id:"67",cca2:"BR",name:"America/Araguaina"},{id:"68",cca2:"BR",name:"America/Maceio"},{id:"69",cca2:"BR",name:"America/Bahia"},{id:"70",cca2:"BR",name:"America/Sao_Paulo"},{id:"71",cca2:"BR",name:"America/Campo_Grande"},{id:"72",cca2:"BR",name:"America/Cuiaba"},{id:"73",cca2:"BR",name:"America/Santarem"},{id:"74",cca2:"BR",name:"America/Porto_Velho"},{id:"75",cca2:"BR",name:"America/Boa_Vista"},{id:"76",cca2:"BR",name:"America/Manaus"},{id:"77",cca2:"BR",name:"America/Eirunepe"},{id:"78",cca2:"BR",name:"America/Rio_Branco"},{id:"79",cca2:"BS",name:"America/Nassau"},{id:"80",cca2:"BT",name:"Asia/Thimphu"},{id:"81",cca2:"BW",name:"Africa/Gaborone"},{id:"82",cca2:"BY",name:"Europe/Minsk"},{id:"83",cca2:"BZ",name:"America/Belize"},{id:"84",cca2:"CA",name:"America/St_Johns"},{id:"85",cca2:"CA",name:"America/Halifax"},{id:"86",cca2:"CA",name:"America/Glace_Bay"},{id:"87",cca2:"CA",name:"America/Moncton"},{id:"88",cca2:"CA",name:"America/Goose_Bay"},{id:"89",cca2:"CA",name:"America/Blanc-Sablon"},{id:"90",cca2:"CA",name:"America/Toronto"},{id:"91",cca2:"CA",name:"America/Nipigon"},{id:"92",cca2:"CA",name:"America/Thunder_Bay"},{id:"93",cca2:"CA",name:"America/Iqaluit"},{id:"94",cca2:"CA",name:"America/Pangnirtung"},{id:"95",cca2:"CA",name:"America/Resolute"},{id:"96",cca2:"CA",name:"America/Atikokan"},{id:"97",cca2:"CA",name:"America/Rankin_Inlet"},{id:"98",cca2:"CA",name:"America/Winnipeg"},{id:"99",cca2:"CA",name:"America/Rainy_River"},{id:"100",cca2:"CA",name:"America/Regina"},{id:"101",cca2:"CA",name:"America/Swift_Current"},{id:"102",cca2:"CA",name:"America/Edmonton"},{id:"103",cca2:"CA",name:"America/Cambridge_Bay"},{id:"104",cca2:"CA",name:"America/Yellowknife"},{id:"105",cca2:"CA",name:"America/Inuvik"},{id:"106",cca2:"CA",name:"America/Creston"},{id:"107",cca2:"CA",name:"America/Dawson_Creek"},{id:"108",cca2:"CA",name:"America/Vancouver"},{id:"109",cca2:"CA",name:"America/Whitehorse"},{id:"110",cca2:"CA",name:"America/Dawson"},{id:"111",cca2:"CC",name:"Indian/Cocos"},{id:"112",cca2:"CD",name:"Africa/Kinshasa"},{id:"113",cca2:"CD",name:"Africa/Lubumbashi"},{id:"114",cca2:"CF",name:"Africa/Bangui"},{id:"115",cca2:"CG",name:"Africa/Brazzaville"},{id:"116",cca2:"CH",name:"Europe/Zurich"},{id:"117",cca2:"CI",name:"Africa/Abidjan"},{id:"118",cca2:"CK",name:"Pacific/Rarotonga"},{id:"119",cca2:"CL",name:"America/Santiago"},{id:"120",cca2:"CL",name:"Pacific/Easter"},{id:"121",cca2:"CM",name:"Africa/Douala"},{id:"122",cca2:"CN",name:"Asia/Shanghai"},{id:"123",cca2:"CN",name:"Asia/Harbin"},{id:"124",cca2:"CN",name:"Asia/Chongqing"},{id:"125",cca2:"CN",name:"Asia/Urumqi"},{id:"126",cca2:"CN",name:"Asia/Kashgar"},{id:"127",cca2:"CO",name:"America/Bogota"},{id:"128",cca2:"CR",name:"America/Costa_Rica"},{id:"129",cca2:"CU",name:"America/Havana"},{id:"130",cca2:"CV",name:"Atlantic/Cape_Verde"},{id:"131",cca2:"CW",name:"America/Curacao"},{id:"132",cca2:"CX",name:"Indian/Christmas"},{id:"133",cca2:"CY",name:"Asia/Nicosia"},{id:"134",cca2:"CZ",name:"Europe/Prague"},{id:"135",cca2:"DE",name:"Europe/Berlin"},{id:"136",cca2:"DE",name:"Europe/Busingen"},{id:"137",cca2:"DJ",name:"Africa/Djibouti"},{id:"138",cca2:"DK",name:"Europe/Copenhagen"},{id:"139",cca2:"DM",name:"America/Dominica"},{id:"140",cca2:"DO",name:"America/Santo_Domingo"},{id:"141",cca2:"DZ",name:"Africa/Algiers"},{id:"142",cca2:"EC",name:"America/Guayaquil"},{id:"143",cca2:"EC",name:"Pacific/Galapagos"},{id:"144",cca2:"EE",name:"Europe/Tallinn"},{id:"145",cca2:"EG",name:"Africa/Cairo"},{id:"146",cca2:"EH",name:"Africa/El_Aaiun"},{id:"147",cca2:"ER",name:"Africa/Asmara"},{id:"148",cca2:"ES",name:"Europe/Madrid"},{id:"149",cca2:"ES",name:"Africa/Ceuta"},{id:"150",cca2:"ES",name:"Atlantic/Canary"},{id:"151",cca2:"ET",name:"Africa/Addis_Ababa"},{id:"152",cca2:"FI",name:"Europe/Helsinki"},{id:"153",cca2:"FJ",name:"Pacific/Fiji"},{id:"154",cca2:"FK",name:"Atlantic/Stanley"},{id:"155",cca2:"FM",name:"Pacific/Chuuk"},{id:"156",cca2:"FM",name:"Pacific/Pohnpei"},{id:"157",cca2:"FM",name:"Pacific/Kosrae"},{id:"158",cca2:"FO",name:"Atlantic/Faroe"},{id:"159",cca2:"FR",name:"Europe/Paris"},{id:"160",cca2:"GA",name:"Africa/Libreville"},{id:"161",cca2:"GB",name:"Europe/London"},{id:"162",cca2:"GD",name:"America/Grenada"},{id:"163",cca2:"GE",name:"Asia/Tbilisi"},{id:"164",cca2:"GF",name:"America/Cayenne"},{id:"165",cca2:"GG",name:"Europe/Guernsey"},{id:"166",cca2:"GH",name:"Africa/Accra"},{id:"167",cca2:"GI",name:"Europe/Gibraltar"},{id:"168",cca2:"GL",name:"America/Godthab"},{id:"169",cca2:"GL",name:"America/Danmarkshavn"},{id:"170",cca2:"GL",name:"America/Scoresbysund"},{id:"171",cca2:"GL",name:"America/Thule"},{id:"172",cca2:"GM",name:"Africa/Banjul"},{id:"173",cca2:"GN",name:"Africa/Conakry"},{id:"174",cca2:"GP",name:"America/Guadeloupe"},{id:"175",cca2:"GQ",name:"Africa/Malabo"},{id:"176",cca2:"GR",name:"Europe/Athens"},{id:"177",cca2:"GS",name:"Atlantic/South_Georgia"},{id:"178",cca2:"GT",name:"America/Guatemala"},{id:"179",cca2:"GU",name:"Pacific/Guam"},{id:"180",cca2:"GW",name:"Africa/Bissau"},{id:"181",cca2:"GY",name:"America/Guyana"},{id:"182",cca2:"HK",name:"Asia/Hong_Kong"},{id:"183",cca2:"HN",name:"America/Tegucigalpa"},{id:"184",cca2:"HR",name:"Europe/Zagreb"},{id:"185",cca2:"HT",name:"America/Port-au-Prince"},{id:"186",cca2:"HU",name:"Europe/Budapest"},{id:"187",cca2:"ID",name:"Asia/Jakarta"},{id:"188",cca2:"ID",name:"Asia/Pontianak"},{id:"189",cca2:"ID",name:"Asia/Makassar"},{id:"190",cca2:"ID",name:"Asia/Jayapura"},{id:"191",cca2:"IE",name:"Europe/Dublin"},{id:"192",cca2:"IL",name:"Asia/Jerusalem"},{id:"193",cca2:"IM",name:"Europe/Isle_of_Man"},{id:"194",cca2:"IN",name:"Asia/Kolkata"},{id:"195",cca2:"IO",name:"Indian/Chagos"},{id:"196",cca2:"IQ",name:"Asia/Baghdad"},{id:"197",cca2:"IR",name:"Asia/Tehran"},{id:"198",cca2:"IS",name:"Atlantic/Reykjavik"},{id:"199",cca2:"IT",name:"Europe/Rome"},{id:"200",cca2:"JE",name:"Europe/Jersey"},{id:"201",cca2:"JM",name:"America/Jamaica"},{id:"202",cca2:"JO",name:"Asia/Amman"},{id:"203",cca2:"JP",name:"Asia/Tokyo"},{id:"204",cca2:"KE",name:"Africa/Nairobi"},{id:"205",cca2:"KG",name:"Asia/Bishkek"},{id:"206",cca2:"KH",name:"Asia/Phnom_Penh"},{id:"207",cca2:"KI",name:"Pacific/Tarawa"},{id:"208",cca2:"KI",name:"Pacific/Enderbury"},{id:"209",cca2:"KI",name:"Pacific/Kiritimati"},{id:"210",cca2:"KM",name:"Indian/Comoro"},{id:"211",cca2:"KN",name:"America/St_Kitts"},{id:"212",cca2:"KP",name:"Asia/Pyongyang"},{id:"213",cca2:"KR",name:"Asia/Seoul"},{id:"214",cca2:"KW",name:"Asia/Kuwait"},{id:"215",cca2:"KY",name:"America/Cayman"},{id:"216",cca2:"KZ",name:"Asia/Almaty"},{id:"217",cca2:"KZ",name:"Asia/Qyzylorda"},{id:"218",cca2:"KZ",name:"Asia/Aqtobe"},{id:"219",cca2:"KZ",name:"Asia/Aqtau"},{id:"220",cca2:"KZ",name:"Asia/Oral"},{id:"221",cca2:"LA",name:"Asia/Vientiane"},{id:"222",cca2:"LB",name:"Asia/Beirut"},{id:"223",cca2:"LC",name:"America/St_Lucia"},{id:"224",cca2:"LI",name:"Europe/Vaduz"},{id:"225",cca2:"LK",name:"Asia/Colombo"},{id:"226",cca2:"LR",name:"Africa/Monrovia"},{id:"227",cca2:"LS",name:"Africa/Maseru"},{id:"228",cca2:"LT",name:"Europe/Vilnius"},{id:"229",cca2:"LU",name:"Europe/Luxembourg"},{id:"230",cca2:"LV",name:"Europe/Riga"},{id:"231",cca2:"LY",name:"Africa/Tripoli"},{id:"232",cca2:"MA",name:"Africa/Casablanca"},{id:"233",cca2:"MC",name:"Europe/Monaco"},{id:"234",cca2:"MD",name:"Europe/Chisinau"},{id:"235",cca2:"ME",name:"Europe/Podgorica"},{id:"236",cca2:"MF",name:"America/Marigot"},{id:"237",cca2:"MG",name:"Indian/Antananarivo"},{id:"238",cca2:"MH",name:"Pacific/Majuro"},{id:"239",cca2:"MH",name:"Pacific/Kwajalein"},{id:"240",cca2:"MK",name:"Europe/Skopje"},{id:"241",cca2:"ML",name:"Africa/Bamako"},{id:"242",cca2:"MM",name:"Asia/Rangoon"},{id:"243",cca2:"MN",name:"Asia/Ulaanbaatar"},{id:"244",cca2:"MN",name:"Asia/Hovd"},{id:"245",cca2:"MN",name:"Asia/Choibalsan"},{id:"246",cca2:"MO",name:"Asia/Macau"},{id:"247",cca2:"MP",name:"Pacific/Saipan"},{id:"248",cca2:"MQ",name:"America/Martinique"},{id:"249",cca2:"MR",name:"Africa/Nouakchott"},{id:"250",cca2:"MS",name:"America/Montserrat"},{id:"251",cca2:"MT",name:"Europe/Malta"},{id:"252",cca2:"MU",name:"Indian/Mauritius"},{id:"253",cca2:"MV",name:"Indian/Maldives"},{id:"254",cca2:"MW",name:"Africa/Blantyre"},{id:"255",cca2:"MX",name:"America/Mexico_City"},{id:"256",cca2:"MX",name:"America/Cancun"},{id:"257",cca2:"MX",name:"America/Merida"},{id:"258",cca2:"MX",name:"America/Monterrey"},{id:"259",cca2:"MX",name:"America/Matamoros"},{id:"260",cca2:"MX",name:"America/Mazatlan"},{id:"261",cca2:"MX",name:"America/Chihuahua"},{id:"262",cca2:"MX",name:"America/Ojinaga"},{id:"263",cca2:"MX",name:"America/Hermosillo"},{id:"264",cca2:"MX",name:"America/Tijuana"},{id:"265",cca2:"MX",name:"America/Santa_Isabel"},{id:"266",cca2:"MX",name:"America/Bahia_Banderas"},{id:"267",cca2:"MY",name:"Asia/Kuala_Lumpur"},{id:"268",cca2:"MY",name:"Asia/Kuching"},{id:"269",cca2:"MZ",name:"Africa/Maputo"},{id:"270",cca2:"NA",name:"Africa/Windhoek"},{id:"271",cca2:"NC",name:"Pacific/Noumea"},{id:"272",cca2:"NE",name:"Africa/Niamey"},{id:"273",cca2:"NF",name:"Pacific/Norfolk"},{id:"274",cca2:"NG",name:"Africa/Lagos"},{id:"275",cca2:"NI",name:"America/Managua"},{id:"276",cca2:"NL",name:"Europe/Amsterdam"},{id:"277",cca2:"NO",name:"Europe/Oslo"},{id:"278",cca2:"NP",name:"Asia/Kathmandu"},{id:"279",cca2:"NR",name:"Pacific/Nauru"},{id:"280",cca2:"NU",name:"Pacific/Niue"},{id:"281",cca2:"NZ",name:"Pacific/Auckland"},{id:"282",cca2:"NZ",name:"Pacific/Chatham"},{id:"283",cca2:"OM",name:"Asia/Muscat"},{id:"284",cca2:"PA",name:"America/Panama"},{id:"285",cca2:"PE",name:"America/Lima"},{id:"286",cca2:"PF",name:"Pacific/Tahiti"},{id:"287",cca2:"PF",name:"Pacific/Marquesas"},{id:"288",cca2:"PF",name:"Pacific/Gambier"},{id:"289",cca2:"PG",name:"Pacific/Port_Moresby"},{id:"290",cca2:"PH",name:"Asia/Manila"},{id:"291",cca2:"PK",name:"Asia/Karachi"},{id:"292",cca2:"PL",name:"Europe/Warsaw"},{id:"293",cca2:"PM",name:"America/Miquelon"},{id:"294",cca2:"PN",name:"Pacific/Pitcairn"},{id:"295",cca2:"PR",name:"America/Puerto_Rico"},{id:"296",cca2:"PS",name:"Asia/Gaza"},{id:"297",cca2:"PS",name:"Asia/Hebron"},{id:"298",cca2:"PT",name:"Europe/Lisbon"},{id:"299",cca2:"PT",name:"Atlantic/Madeira"},{id:"300",cca2:"PT",name:"Atlantic/Azores"},{id:"301",cca2:"PW",name:"Pacific/Palau"},{id:"302",cca2:"PY",name:"America/Asuncion"},{id:"303",cca2:"QA",name:"Asia/Qatar"},{id:"304",cca2:"RE",name:"Indian/Reunion"},{id:"305",cca2:"RO",name:"Europe/Bucharest"},{id:"306",cca2:"RS",name:"Europe/Belgrade"},{id:"307",cca2:"RU",name:"Europe/Kaliningrad"},{id:"308",cca2:"RU",name:"Europe/Moscow"},{id:"309",cca2:"RU",name:"Europe/Volgograd"},{id:"310",cca2:"RU",name:"Europe/Samara"},{id:"311",cca2:"RU",name:"Europe/Simferopol"},{id:"312",cca2:"RU",name:"Asia/Yekaterinburg"},{id:"313",cca2:"RU",name:"Asia/Omsk"},{id:"314",cca2:"RU",name:"Asia/Novosibirsk"},{id:"315",cca2:"RU",name:"Asia/Novokuznetsk"},{id:"316",cca2:"RU",name:"Asia/Krasnoyarsk"},{id:"317",cca2:"RU",name:"Asia/Irkutsk"},{id:"318",cca2:"RU",name:"Asia/Yakutsk"},{id:"319",cca2:"RU",name:"Asia/Khandyga"},{id:"320",cca2:"RU",name:"Asia/Vladivostok"},{id:"321",cca2:"RU",name:"Asia/Sakhalin"},{id:"322",cca2:"RU",name:"Asia/Ust-Nera"},{id:"323",cca2:"RU",name:"Asia/Magadan"},{id:"324",cca2:"RU",name:"Asia/Kamchatka"},{id:"325",cca2:"RU",name:"Asia/Anadyr"},{id:"326",cca2:"RW",name:"Africa/Kigali"},{id:"327",cca2:"SA",name:"Asia/Riyadh"},{id:"328",cca2:"SB",name:"Pacific/Guadalcanal"},{id:"329",cca2:"SC",name:"Indian/Mahe"},{id:"330",cca2:"SD",name:"Africa/Khartoum"},{id:"331",cca2:"SE",name:"Europe/Stockholm"},{id:"332",cca2:"SG",name:"Asia/Singapore"},{id:"333",cca2:"SH",name:"Atlantic/St_Helena"},{id:"334",cca2:"SI",name:"Europe/Ljubljana"},{id:"335",cca2:"SJ",name:"Arctic/Longyearbyen"},{id:"336",cca2:"SK",name:"Europe/Bratislava"},{id:"337",cca2:"SL",name:"Africa/Freetown"},{id:"338",cca2:"SM",name:"Europe/San_Marino"},{id:"339",cca2:"SN",name:"Africa/Dakar"},{id:"340",cca2:"SO",name:"Africa/Mogadishu"},{id:"341",cca2:"SR",name:"America/Paramaribo"},{id:"342",cca2:"SS",name:"Africa/Juba"},{id:"343",cca2:"ST",name:"Africa/Sao_Tome"},{id:"344",cca2:"SV",name:"America/El_Salvador"},{id:"345",cca2:"SX",name:"America/Lower_Princes"},{id:"346",cca2:"SY",name:"Asia/Damascus"},{id:"347",cca2:"SZ",name:"Africa/Mbabane"},{id:"348",cca2:"TC",name:"America/Grand_Turk"},{id:"349",cca2:"TD",name:"Africa/Ndjamena"},{id:"350",cca2:"TF",name:"Indian/Kerguelen"},{id:"351",cca2:"TG",name:"Africa/Lome"},{id:"352",cca2:"TH",name:"Asia/Bangkok"},{id:"353",cca2:"TJ",name:"Asia/Dushanbe"},{id:"354",cca2:"TK",name:"Pacific/Fakaofo"},{id:"355",cca2:"TL",name:"Asia/Dili"},{id:"356",cca2:"TM",name:"Asia/Ashgabat"},{id:"357",cca2:"TN",name:"Africa/Tunis"},{id:"358",cca2:"TO",name:"Pacific/Tongatapu"},{id:"359",cca2:"TR",name:"Europe/Istanbul"},{id:"360",cca2:"TT",name:"America/Port_of_Spain"},{id:"361",cca2:"TV",name:"Pacific/Funafuti"},{id:"362",cca2:"TW",name:"Asia/Taipei"},{id:"363",cca2:"TZ",name:"Africa/Dar_es_Salaam"},{id:"364",cca2:"UA",name:"Europe/Kiev"},{id:"365",cca2:"UA",name:"Europe/Uzhgorod"},{id:"366",cca2:"UA",name:"Europe/Zaporozhye"},{id:"367",cca2:"UG",name:"Africa/Kampala"},{id:"368",cca2:"UM",name:"Pacific/Johnston"},{id:"369",cca2:"UM",name:"Pacific/Midway"},{id:"370",cca2:"UM",name:"Pacific/Wake"},{id:"371",cca2:"US",name:"America/New_York"},{id:"372",cca2:"US",name:"America/Detroit"},{id:"373",cca2:"US",name:"America/Kentucky/Louisville"},{id:"374",cca2:"US",name:"America/Kentucky/Monticello"},{id:"375",cca2:"US",name:"America/Indiana/Indianapolis"},{id:"376",cca2:"US",name:"America/Indiana/Vincennes"},{id:"377",cca2:"US",name:"America/Indiana/Winamac"},{id:"378",cca2:"US",name:"America/Indiana/Marengo"},{id:"379",cca2:"US",name:"America/Indiana/Petersburg"},{id:"380",cca2:"US",name:"America/Indiana/Vevay"},{id:"381",cca2:"US",name:"America/Chicago"},{id:"382",cca2:"US",name:"America/Indiana/Tell_City"},{id:"383",cca2:"US",name:"America/Indiana/Knox"},{id:"384",cca2:"US",name:"America/Menominee"},{id:"385",cca2:"US",name:"America/North_Dakota/Center"},{id:"386",cca2:"US",name:"America/North_Dakota/New_Salem"},{id:"387",cca2:"US",name:"America/North_Dakota/Beulah"},{id:"388",cca2:"US",name:"America/Denver"},{id:"389",cca2:"US",name:"America/Boise"},{id:"390",cca2:"US",name:"America/Phoenix"},{id:"391",cca2:"US",name:"America/Los_Angeles"},{id:"392",cca2:"US",name:"America/Anchorage"},{id:"393",cca2:"US",name:"America/Juneau"},{id:"394",cca2:"US",name:"America/Sitka"},{id:"395",cca2:"US",name:"America/Yakutat"},{id:"396",cca2:"US",name:"America/Nome"},{id:"397",cca2:"US",name:"America/Adak"},{id:"398",cca2:"US",name:"America/Metlakatla"},{id:"399",cca2:"US",name:"Pacific/Honolulu"},{id:"400",cca2:"UY",name:"America/Montevideo"},{id:"401",cca2:"UZ",name:"Asia/Samarkand"},{id:"402",cca2:"UZ",name:"Asia/Tashkent"},{id:"403",cca2:"VA",name:"Europe/Vatican"},{id:"404",cca2:"VC",name:"America/St_Vincent"},{id:"405",cca2:"VE",name:"America/Caracas"},{id:"406",cca2:"VG",name:"America/Tortola"},{id:"407",cca2:"VI",name:"America/St_Thomas"},{id:"408",cca2:"VN",name:"Asia/Ho_Chi_Minh"},{id:"409",cca2:"VU",name:"Pacific/Efate"},{id:"410",cca2:"WF",name:"Pacific/Wallis"},{id:"411",cca2:"WS",name:"Pacific/Apia"},{id:"412",cca2:"YE",name:"Asia/Aden"},{id:"413",cca2:"YT",name:"Indian/Mayotte"},{id:"414",cca2:"ZA",name:"Africa/Johannesburg"},{id:"415",cca2:"ZM",name:"Africa/Lusaka"},{id:"416",cca2:"ZW",name:"Africa/Harare"},{id:"417",cca2:"CA",name:"America/Montreal"}],c={};return a.forEach(b,function(a){c[a.name]=a.cca2}),c}]).factory("CCToCountryName",["_",function(a){var b=[{cca2:"AF",name:"Afghanistan"},{cca2:"AX",name:"Aland Islands"},{cca2:"AL",name:"Albania"},{cca2:"DZ",name:"Algeria"},{cca2:"AS",name:"American Samoa"},{cca2:"AD",name:"Andorra"},{cca2:"AO",name:"Angola"},{cca2:"AI",name:"Anguilla"},{cca2:"AQ",name:"Antarctica"},{cca2:"AG",name:"Antigua And Barbuda"},{cca2:"AR",name:"Argentina"},{cca2:"AM",name:"Armenia"},{cca2:"AW",name:"Aruba"},{cca2:"AU",name:"Australia"},{cca2:"AT",name:"Austria"},{cca2:"AZ",name:"Azerbaijan"},{cca2:"BS",name:"Bahamas"},{cca2:"BH",name:"Bahrain"},{cca2:"BD",name:"Bangladesh"},{cca2:"BB",name:"Barbados"},{cca2:"BY",name:"Belarus"},{cca2:"BE",name:"Belgium"},{cca2:"BZ",name:"Belize"},{cca2:"BJ",name:"Benin"},{cca2:"BM",name:"Bermuda"},{cca2:"BT",name:"Bhutan"},{cca2:"BO",name:"Bolivia"},{cca2:"BA",name:"Bosnia And Herzegovina"},{cca2:"BW",name:"Botswana"},{cca2:"BV",name:"Bouvet Island"},{cca2:"BR",name:"Brazil"},{cca2:"IO",name:"British Indian Ocean Territory"},{cca2:"BN",name:"Brunei Darussalam"},{cca2:"BG",name:"Bulgaria"},{cca2:"BF",name:"Burkina Faso"},{cca2:"BI",name:"Burundi"},{cca2:"KH",name:"Cambodia"},{cca2:"CM",name:"Cameroon"},{cca2:"CA",name:"Canada"},{cca2:"CV",name:"Cape Verde"},{cca2:"KY",name:"Cayman Islands"},{cca2:"CF",name:"Central African Republic"},{cca2:"TD",name:"Chad"},{cca2:"CL",name:"Chile"},{cca2:"CN",name:"China"},{cca2:"CX",name:"Christmas Island"},{cca2:"CC",name:"Cocos (Keeling) Islands"},{cca2:"CO",name:"Colombia"},{cca2:"KM",name:"Comoros"},{cca2:"CG",name:"Congo"},{cca2:"CD",name:"Congo (Democratic Republic)"},{cca2:"CK",name:"Cook Islands"},{cca2:"CR",name:"Costa Rica"},{cca2:"CI",name:"Cote D'Ivoire"},{cca2:"HR",name:"Croatia"},{cca2:"CU",name:"Cuba"},{cca2:"CY",name:"Cyprus"},{cca2:"CZ",name:"Czech Republic"},{cca2:"DK",name:"Denmark"},{cca2:"DJ",name:"Djibouti"},{cca2:"DM",name:"Dominica"},{cca2:"DO",name:"Dominican Republic"},{cca2:"EC",name:"Ecuador"},{cca2:"EG",name:"Egypt"},{cca2:"SV",name:"El Salvador"},{cca2:"GQ",name:"Equatorial Guinea"},{cca2:"ER",name:"Eritrea"},{cca2:"EE",name:"Estonia"},{cca2:"ET",name:"Ethiopia"},{cca2:"FK",name:"Falkland Islands (Malvinas)"},{cca2:"FO",name:"Faroe Islands"},{cca2:"FJ",name:"Fiji"},{cca2:"FI",name:"Finland"},{cca2:"FR",name:"France"},{cca2:"GF",name:"French Guiana"},{cca2:"PF",name:"French Polynesia"},{cca2:"TF",name:"French Southern Territories"},{cca2:"GA",name:"Gabon"},{cca2:"GM",name:"Gambia"},{cca2:"GE",name:"Georgia"},{cca2:"DE",name:"Germany"},{cca2:"GH",name:"Ghana"},{cca2:"GI",name:"Gibraltar"},{cca2:"GR",name:"Greece"},{cca2:"GL",name:"Greenland"},{cca2:"GD",name:"Grenada"},{cca2:"GP",name:"Guadeloupe"},{cca2:"GU",name:"Guam"},{cca2:"GT",name:"Guatemala"},{cca2:"GG",name:"Guernsey"},{cca2:"GN",name:"Guinea"},{cca2:"GW",name:"Guinea-Bissau"},{cca2:"GY",name:"Guyana"},{cca2:"HT",name:"Haiti"},{cca2:"HM",name:"Heard Island & Mcdonald Islands"},{cca2:"VA",name:"Holy See (Vatican City State)"},{cca2:"HN",name:"Honduras"},{cca2:"HK",name:"Hong Kong"},{cca2:"HU",name:"Hungary"},{cca2:"IS",name:"Iceland"},{cca2:"IN",name:"India"},{cca2:"ID",name:"Indonesia"},{cca2:"IR",name:"Iran (Islamic Republic Of)"},{cca2:"IQ",name:"Iraq"},{cca2:"IE",name:"Ireland"},{cca2:"IM",name:"Isle Of Man"},{cca2:"IL",name:"Israel"},{cca2:"IT",name:"Italy"},{cca2:"JM",name:"Jamaica"},{cca2:"JP",name:"Japan"},{cca2:"JE",name:"Jersey"},{cca2:"JO",name:"Jordan"},{cca2:"KZ",name:"Kazakhstan"},{cca2:"KE",name:"Kenya"},{cca2:"KI",name:"Kiribati"},{cca2:"KR",name:"Korea"},{cca2:"KW",name:"Kuwait"},{cca2:"KG",name:"Kyrgyzstan"},{cca2:"LA",name:"Lao People's Democratic Republic"},{cca2:"LV",name:"Latvia"},{cca2:"LB",name:"Lebanon"},{cca2:"LS",name:"Lesotho"},{cca2:"LR",name:"Liberia"},{cca2:"LY",name:"Libyan Arab Jamahiriya"},{cca2:"LI",name:"Liechtenstein"},{cca2:"LT",name:"Lithuania"},{cca2:"LU",name:"Luxembourg"},{cca2:"MO",name:"Macao"},{cca2:"MK",name:"Macedonia"},{cca2:"MG",name:"Madagascar"},{cca2:"MW",name:"Malawi"},{cca2:"MY",name:"Malaysia"},{cca2:"MV",name:"Maldives"},{cca2:"ML",name:"Mali"},{cca2:"MT",name:"Malta"},{cca2:"MH",name:"Marshall Islands"},{cca2:"MQ",name:"Martinique"},{cca2:"MR",name:"Mauritania"},{cca2:"MU",name:"Mauritius"},{cca2:"YT",name:"Mayotte"},{cca2:"MX",name:"Mexico"},{cca2:"FM",name:"Micronesia (Federated States Of)"},{cca2:"MD",name:"Moldova"},{cca2:"MC",name:"Monaco"},{cca2:"MN",name:"Mongolia"},{cca2:"ME",name:"Montenegro"},{cca2:"MS",name:"Montserrat"},{cca2:"MA",name:"Morocco"},{cca2:"MZ",name:"Mozambique"},{cca2:"MM",name:"Myanmar"},{cca2:"NA",name:"Namibia"},{cca2:"NR",name:"Nauru"},{cca2:"NP",name:"Nepal"},{cca2:"NL",name:"Netherlands"},{cca2:"AN",name:"Netherlands Antilles"},{cca2:"NC",name:"New Caledonia"},{cca2:"NZ",name:"New Zealand"},{cca2:"NI",name:"Nicaragua"},{cca2:"NE",name:"Niger"},{cca2:"NG",name:"Nigeria"},{cca2:"NU",name:"Niue"},{cca2:"NF",name:"Norfolk Island"},{cca2:"MP",name:"Northern Mariana Islands"},{cca2:"NO",name:"Norway"},{cca2:"OM",name:"Oman"},{cca2:"PK",name:"Pakistan"},{cca2:"PW",name:"Palau"},{cca2:"PS",name:"Palestinian Territory (Occupied)"},{cca2:"PA",name:"Panama"},{cca2:"PG",name:"Papua New Guinea"},{cca2:"PY",name:"Paraguay"},{cca2:"PE",name:"Peru"},{cca2:"PH",name:"Philippines"},{cca2:"PN",name:"Pitcairn"},{cca2:"PL",name:"Poland"},{cca2:"PT",name:"Portugal"},{cca2:"PR",name:"Puerto Rico"},{cca2:"QA",name:"Qatar"},{cca2:"RE",name:"Reunion"},{cca2:"RO",name:"Romania"},{cca2:"RU",name:"Russian Federation"},{cca2:"RW",name:"Rwanda"},{cca2:"BL",name:"Saint Barthelemy"},{cca2:"SH",name:"Saint Helena"},{cca2:"KN",name:"Saint Kitts And Nevis"},{cca2:"LC",name:"Saint Lucia"},{cca2:"MF",name:"Saint Martin"},{cca2:"PM",name:"Saint Pierre And Miquelon"},{cca2:"VC",name:"Saint Vincent And Grenadines"},{cca2:"WS",name:"Samoa"},{cca2:"SM",name:"San Marino"},{cca2:"ST",name:"Sao Tome And Principe"},{cca2:"SA",name:"Saudi Arabia"},{cca2:"SN",name:"Senegal"},{cca2:"RS",name:"Serbia"},{cca2:"SC",name:"Seychelles"},{cca2:"SL",name:"Sierra Leone"},{cca2:"SG",name:"Singapore"},{cca2:"SK",name:"Slovakia"},{cca2:"SI",name:"Slovenia"},{cca2:"SB",name:"Solomon Islands"},{cca2:"SO",name:"Somalia"},{cca2:"SS",name:"South Sudan"},{cca2:"ZA",name:"South Africa"},{cca2:"GS",name:"South Georgia And Sandwich Isl."},{cca2:"ES",name:"Spain"},{cca2:"LK",name:"Sri Lanka"},{cca2:"SD",name:"Sudan"},{cca2:"SR",name:"Suriname"},{cca2:"SJ",name:"Svalbard And Jan Mayen"},{cca2:"SZ",name:"Swaziland"},{cca2:"SE",name:"Sweden"},{cca2:"CH",name:"Switzerland"},{cca2:"SY",name:"Syrian Arab Republic"},{cca2:"TW",name:"Taiwan"},{cca2:"TJ",name:"Tajikistan"},{cca2:"TZ",name:"Tanzania"},{cca2:"TH",name:"Thailand"},{cca2:"TL",name:"Timor-Leste"},{cca2:"TG",name:"Togo"},{cca2:"TK",name:"Tokelau"},{cca2:"TO",name:"Tonga"},{cca2:"TT",name:"Trinidad And Tobago"},{cca2:"TN",name:"Tunisia"},{cca2:"TR",name:"Turkey"},{cca2:"TM",name:"Turkmenistan"},{cca2:"TC",name:"Turks And Caicos Islands"},{cca2:"TV",name:"Tuvalu"},{cca2:"UG",name:"Uganda"},{cca2:"UA",name:"Ukraine"},{cca2:"AE",name:"United Arab Emirates"},{cca2:"GB",name:"United Kingdom"},{cca2:"US",name:"United States"},{cca2:"UM",name:"United States Outlying Islands"},{cca2:"UY",name:"Uruguay"},{cca2:"UZ",name:"Uzbekistan"},{cca2:"VU",name:"Vanuatu"},{cca2:"VE",name:"Venezuela"},{cca2:"VN",name:"Viet Nam"},{cca2:"VG",name:"Virgin Islands (British)"},{cca2:"VI",name:"Virgin Islands (U.S.)"},{cca2:"WF",name:"Wallis And Futuna"},{cca2:"EH",name:"Western Sahara"},{cca2:"YE",name:"Yemen"},{cca2:"ZM",name:"Zambia"},{cca2:"ZW",name:"Zimbabwe"},{cca2:"SX",name:"Sint Maarten"},{cca2:"CW",name:"Curacao"},{cca2:"BQ",name:"Bonaire"},{cca2:"KP",name:"North Korea"}],c={};return a.forEach(b,function(a){c[a.cca2]=a.name}),c}]).directive("timezoneSelector",["_","moment","timezoneFactory","zoneToCC","CCToCountryName",function(a,b,c,d,e){return{restrict:"E",replace:!0,template:'',scope:{ngModel:"=",translations:"="},link:function(f,g,h){var i=[],j=c.get(),k={};if(a.forEach(j,function(b){if(a.has(d,b.id)){var c=d[b.id];k[c]=k[c]?k[c]:[],k[c].push(b)}}),a.forEach(k,function(a,b){var c={text:e[b]+": ",children:a,firstNOffset:a[0].nOffset};i.push(c)}),"offset"===h.sortBy?(i=a.sortBy(i,"firstNOffset"),a.forEach(i,function(b,c){b.children=a.sortBy(b.children,"nOffset")})):i=a.sortBy(i,"text"),void 0!==h.showLocal){if(void 0!==jstz)var l=a.filter(j,{id:jstz.determine().name()});else{var m="UTC"+b().format("Z");l=a.filter(j,{offset:m})}void 0!==l&&l.length>0&&i.splice(0,0,{text:a.get(f,"translations.local","Local")+": ",children:l,firstNOffset:l[0].nOffset,firstOffset:l[0].offset})}if(void 0!==h.setLocal&&void 0!==jstz&&(f.ngModel||(f.ngModel=jstz.determine().name())),void 0!==h.primaryChoices){var n=[];a.forEach(h.primaryChoices.split(" "),function(a){n.push(a.replace("_"," "))}),l=a.filter(j,function(b){return a.includes(n,b.name)}),void 0!==l&&l.length>0&&i.splice(0,0,{text:a.get(f,"translations.primary","Primary")+": ",children:l,firstNOffset:l[0].nOffset,firstOffset:l[0].offset})}a.forEach(i,function(a){var b=$('');a.children.forEach(function(a){"true"===h.displayUtc&&-1===a.name.indexOf("(UTC")&&(a.name=a.name+" ("+a.offset+")"),b.append('")}),g.append(b)}),g.chosen({width:h.width||"300px",include_group_label_in_selected:!0,search_contains:!0,no_results_text:a.get(f,"translations.no_results_text","No results, try searching for the name of your country or nearest major city."),placeholder_text_single:a.get(f,"translations.placeholder","Choose a timezone")}),f.$watch("ngModel",function(){g.val(f.ngModel),g.trigger("chosen:updated")})}}}]); -------------------------------------------------------------------------------- /dist/chosen-sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mishguruorg/angular-timezone-selector/12382e5078d88385a573abfe9b66576d5d46e531/dist/chosen-sprite.png -------------------------------------------------------------------------------- /dist/chosen-sprite@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mishguruorg/angular-timezone-selector/12382e5078d88385a573abfe9b66576d5d46e531/dist/chosen-sprite@2x.png -------------------------------------------------------------------------------- /images/custom_placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mishguruorg/angular-timezone-selector/12382e5078d88385a573abfe9b66576d5d46e531/images/custom_placeholder.png -------------------------------------------------------------------------------- /images/primary_local_selection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mishguruorg/angular-timezone-selector/12382e5078d88385a573abfe9b66576d5d46e531/images/primary_local_selection.png -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-timezone-selector", 3 | "version": "1.2.1", 4 | "description": "AngularJS timezone selector", 5 | "main": "dist/angular-timezone-selector.min.js", 6 | "scripts": { 7 | "test": "./node_modules/.bin/standard" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git://github.com/mishguruorg/angular-country-selector.git" 12 | }, 13 | "keywords": [ 14 | "angular", 15 | "timezone", 16 | "select" 17 | ], 18 | "author": "Ashok Fernandez ", 19 | "license": "MIT", 20 | "bugs": { 21 | "url": "https://github.com/mishguruorg/angular-country-selector/issues" 22 | }, 23 | "homepage": "https://github.com/mishguruorg/angular-timezone-selector", 24 | "devDependencies": { 25 | "csv": "^0.4.1", 26 | "csv-load-sync": "^1.0.0", 27 | "grunt": "latest", 28 | "grunt-contrib-uglify": "latest", 29 | "grunt-string-replace": "~1.0.0", 30 | "lodash": "latest", 31 | "standard": "^5.3.1", 32 | "uglify-js": "latest" 33 | }, 34 | "dependencies": { 35 | "grunt-autoprefixer": "^3.0.3", 36 | "grunt-contrib-copy": "^0.8.0", 37 | "grunt-contrib-cssmin": "^0.12.3", 38 | "grunt-contrib-less": "^1.0.1" 39 | }, 40 | "standard": { 41 | "ignore": [ 42 | "bower_components/**", 43 | "build/**", 44 | "dist/**" 45 | ] 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /styling/angular-timezone-selector.css: -------------------------------------------------------------------------------- 1 | .chosen-select { 2 | width: 100%; 3 | } 4 | .chosen-select-deselect { 5 | width: 100%; 6 | } 7 | .chosen-container { 8 | display: inline-block; 9 | font-size: 14px; 10 | position: relative; 11 | vertical-align: middle; 12 | } 13 | .chosen-container .chosen-drop { 14 | background: #ffffff; 15 | border: 1px solid #cccccc; 16 | border-bottom-right-radius: 4px; 17 | border-bottom-left-radius: 4px; 18 | box-shadow: 0 8px 8px rgba(0, 0, 0, .25); 19 | margin-top: -1px; 20 | position: absolute; 21 | top: 100%; 22 | left: -9000px; 23 | z-index: 1060; 24 | } 25 | .chosen-container.chosen-with-drop .chosen-drop { 26 | left: 0; 27 | right: 0; 28 | } 29 | .chosen-container .chosen-results { 30 | color: #555555; 31 | margin: 0 4px 4px 0; 32 | max-height: 240px; 33 | padding: 0 0 0 4px; 34 | position: relative; 35 | overflow-x: hidden; 36 | overflow-y: auto; 37 | -webkit-overflow-scrolling: touch; 38 | } 39 | .chosen-container .chosen-results li { 40 | display: none; 41 | line-height: 1.42857143; 42 | list-style: none; 43 | margin: 0; 44 | padding: 5px 6px; 45 | } 46 | .chosen-container .chosen-results li em { 47 | background: #feffde; 48 | font-style: normal; 49 | } 50 | .chosen-container .chosen-results li.group-result { 51 | display: list-item; 52 | cursor: default; 53 | color: #999; 54 | font-weight: bold; 55 | } 56 | .chosen-container .chosen-results li.group-option { 57 | padding-left: 15px; 58 | } 59 | .chosen-container .chosen-results li.active-result { 60 | cursor: pointer; 61 | display: list-item; 62 | } 63 | .chosen-container .chosen-results li.highlighted { 64 | background-color: #337ab7; 65 | background-image: none; 66 | color: white; 67 | } 68 | .chosen-container .chosen-results li.highlighted em { 69 | background: transparent; 70 | } 71 | .chosen-container .chosen-results li.disabled-result { 72 | display: list-item; 73 | color: #777777; 74 | } 75 | .chosen-container .chosen-results .no-results { 76 | background: #eeeeee; 77 | display: list-item; 78 | } 79 | .chosen-container .chosen-results-scroll { 80 | background: white; 81 | margin: 0 4px; 82 | position: absolute; 83 | text-align: center; 84 | width: 321px; 85 | z-index: 1; 86 | } 87 | .chosen-container .chosen-results-scroll span { 88 | display: inline-block; 89 | height: 1.42857143; 90 | text-indent: -5000px; 91 | width: 9px; 92 | } 93 | .chosen-container .chosen-results-scroll-down { 94 | bottom: 0; 95 | } 96 | .chosen-container .chosen-results-scroll-down span { 97 | background: url("chosen-sprite.png") no-repeat -4px -3px; 98 | } 99 | .chosen-container .chosen-results-scroll-up span { 100 | background: url("chosen-sprite.png") no-repeat -22px -3px; 101 | } 102 | .chosen-container-single .chosen-single { 103 | background-color: #ffffff; 104 | background-clip: padding-box; 105 | border: 1px solid #cccccc; 106 | border-top-right-radius: 4px; 107 | border-top-left-radius: 4px; 108 | border-bottom-right-radius: 4px; 109 | border-bottom-left-radius: 4px; 110 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); 111 | color: #555555; 112 | display: block; 113 | height: 34px; 114 | overflow: hidden; 115 | line-height: 34px; 116 | padding: 0 0 0 8px; 117 | position: relative; 118 | text-decoration: none; 119 | white-space: nowrap; 120 | } 121 | .chosen-container-single .chosen-single span { 122 | display: block; 123 | margin-right: 26px; 124 | overflow: hidden; 125 | text-overflow: ellipsis; 126 | white-space: nowrap; 127 | } 128 | .chosen-container-single .chosen-single abbr { 129 | background: url("chosen-sprite.png") right top no-repeat; 130 | display: block; 131 | font-size: 1px; 132 | height: 10px; 133 | position: absolute; 134 | right: 26px; 135 | top: 12px; 136 | width: 12px; 137 | } 138 | .chosen-container-single .chosen-single abbr:hover { 139 | background-position: right -11px; 140 | } 141 | .chosen-container-single .chosen-single.chosen-disabled .chosen-single abbr:hover { 142 | background-position: right 2px; 143 | } 144 | .chosen-container-single .chosen-single div { 145 | display: block; 146 | height: 100%; 147 | position: absolute; 148 | top: 0; 149 | right: 0; 150 | width: 18px; 151 | } 152 | .chosen-container-single .chosen-single div b { 153 | background: url("chosen-sprite.png") no-repeat 0 7px; 154 | display: block; 155 | height: 100%; 156 | width: 100%; 157 | } 158 | .chosen-container-single .chosen-default { 159 | color: #777777; 160 | } 161 | .chosen-container-single .chosen-search { 162 | margin: 0; 163 | padding: 3px 30px 3px 4px; 164 | position: relative; 165 | white-space: nowrap; 166 | z-index: 1000; 167 | } 168 | .chosen-container-single .chosen-search input[type="text"] { 169 | background: url("chosen-sprite.png") no-repeat 100% -20px, #ffffff; 170 | border: 1px solid #cccccc; 171 | border-top-right-radius: 4px; 172 | border-top-left-radius: 4px; 173 | border-bottom-right-radius: 4px; 174 | border-bottom-left-radius: 4px; 175 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); 176 | margin: 1px 0; 177 | padding: 4px 20px 4px 4px; 178 | width: 100%; 179 | } 180 | .chosen-container-single .chosen-drop { 181 | margin-top: -1px; 182 | border-bottom-right-radius: 4px; 183 | border-bottom-left-radius: 4px; 184 | background-clip: padding-box; 185 | } 186 | .chosen-container-single-nosearch .chosen-search input { 187 | position: absolute; 188 | left: -9000px; 189 | } 190 | .chosen-container-multi .chosen-choices { 191 | background-color: #ffffff; 192 | border: 1px solid #cccccc; 193 | border-top-right-radius: 4px; 194 | border-top-left-radius: 4px; 195 | border-bottom-right-radius: 4px; 196 | border-bottom-left-radius: 4px; 197 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); 198 | cursor: text; 199 | height: auto !important; 200 | height: 1%; 201 | margin: 0; 202 | overflow: hidden; 203 | padding: 0; 204 | position: relative; 205 | } 206 | .chosen-container-multi .chosen-choices li { 207 | float: left; 208 | list-style: none; 209 | } 210 | .chosen-container-multi .chosen-choices .search-field { 211 | margin: 0; 212 | padding: 0; 213 | white-space: nowrap; 214 | } 215 | .chosen-container-multi .chosen-choices .search-field input[type="text"] { 216 | background: transparent !important; 217 | border: 0 !important; 218 | box-shadow: none; 219 | color: #555555; 220 | height: 32px; 221 | margin: 0; 222 | padding: 4px; 223 | outline: 0; 224 | } 225 | .chosen-container-multi .chosen-choices .search-field .default { 226 | color: #999; 227 | } 228 | .chosen-container-multi .chosen-choices .search-choice { 229 | background-clip: padding-box; 230 | background-color: #eeeeee; 231 | border: 1px solid #cccccc; 232 | border-top-right-radius: 4px; 233 | border-top-left-radius: 4px; 234 | border-bottom-right-radius: 4px; 235 | border-bottom-left-radius: 4px; 236 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); 237 | color: #333333; 238 | cursor: default; 239 | line-height: 13px; 240 | margin: 6px 0 3px 5px; 241 | padding: 3px 20px 3px 5px; 242 | position: relative; 243 | } 244 | .chosen-container-multi .chosen-choices .search-choice .search-choice-close { 245 | background: url("chosen-sprite.png") right top no-repeat; 246 | display: block; 247 | font-size: 1px; 248 | height: 10px; 249 | position: absolute; 250 | right: 4px; 251 | top: 5px; 252 | width: 12px; 253 | cursor: pointer; 254 | } 255 | .chosen-container-multi .chosen-choices .search-choice .search-choice-close:hover { 256 | background-position: right -11px; 257 | } 258 | .chosen-container-multi .chosen-choices .search-choice-focus { 259 | background: #d4d4d4; 260 | } 261 | .chosen-container-multi .chosen-choices .search-choice-focus .search-choice-close { 262 | background-position: right -11px; 263 | } 264 | .chosen-container-multi .chosen-results { 265 | margin: 0 0 0 0; 266 | padding: 0; 267 | } 268 | .chosen-container-multi .chosen-drop .result-selected { 269 | display: none; 270 | } 271 | .chosen-container-active .chosen-single { 272 | border: 1px solid #66afe9; 273 | box-shadow: 0 1px 1px rgba(0, 0, 0, .075) inset, 0 0 8px rgba(82, 168, 236, .6); 274 | transition: border linear .2s, box-shadow linear .2s; 275 | } 276 | .chosen-container-active.chosen-with-drop .chosen-single { 277 | background-color: #ffffff; 278 | border: 1px solid #66afe9; 279 | border-bottom-right-radius: 0; 280 | border-bottom-left-radius: 0; 281 | box-shadow: 0 1px 1px rgba(0, 0, 0, .075) inset, 0 0 8px rgba(82, 168, 236, .6); 282 | transition: border linear .2s, box-shadow linear .2s; 283 | } 284 | .chosen-container-active.chosen-with-drop .chosen-single div { 285 | background: transparent; 286 | border-left: none; 287 | } 288 | .chosen-container-active.chosen-with-drop .chosen-single div b { 289 | background-position: -18px 7px; 290 | } 291 | .chosen-container-active .chosen-choices { 292 | border: 1px solid #66afe9; 293 | border-bottom-right-radius: 0; 294 | border-bottom-left-radius: 0; 295 | box-shadow: 0 1px 1px rgba(0, 0, 0, .075) inset, 0 0 8px rgba(82, 168, 236, .6); 296 | transition: border linear .2s, box-shadow linear .2s; 297 | } 298 | .chosen-container-active .chosen-choices .search-field input[type="text"] { 299 | color: #111 !important; 300 | } 301 | .chosen-container-active.chosen-with-drop .chosen-choices { 302 | border-bottom-right-radius: 0; 303 | border-bottom-left-radius: 0; 304 | } 305 | .chosen-disabled { 306 | cursor: default; 307 | opacity: 0.5 !important; 308 | } 309 | .chosen-disabled .chosen-single { 310 | cursor: default; 311 | } 312 | .chosen-disabled .chosen-choices .search-choice .search-choice-close { 313 | cursor: default; 314 | } 315 | .chosen-rtl { 316 | text-align: right; 317 | } 318 | .chosen-rtl .chosen-single { 319 | padding: 0 8px 0 0; 320 | overflow: visible; 321 | } 322 | .chosen-rtl .chosen-single span { 323 | margin-left: 26px; 324 | margin-right: 0; 325 | direction: rtl; 326 | } 327 | .chosen-rtl .chosen-single div { 328 | left: 7px; 329 | right: auto; 330 | } 331 | .chosen-rtl .chosen-single abbr { 332 | left: 26px; 333 | right: auto; 334 | } 335 | .chosen-rtl .chosen-choices .search-field input[type="text"] { 336 | direction: rtl; 337 | } 338 | .chosen-rtl .chosen-choices li { 339 | float: right; 340 | } 341 | .chosen-rtl .chosen-choices .search-choice { 342 | margin: 6px 5px 3px 0; 343 | padding: 3px 5px 3px 19px; 344 | } 345 | .chosen-rtl .chosen-choices .search-choice .search-choice-close { 346 | background-position: right top; 347 | left: 4px; 348 | right: auto; 349 | } 350 | .chosen-rtl.chosen-container-single .chosen-results { 351 | margin: 0 0 4px 4px; 352 | padding: 0 4px 0 0; 353 | } 354 | .chosen-rtl .chosen-results .group-option { 355 | padding-left: 0; 356 | padding-right: 15px; 357 | } 358 | .chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div { 359 | border-right: none; 360 | } 361 | .chosen-rtl .chosen-search input[type="text"] { 362 | background: url("chosen-sprite.png") no-repeat -28px -20px, #ffffff; 363 | direction: rtl; 364 | padding: 4px 5px 4px 20px; 365 | } 366 | .input-group .chosen-container:last-child .chosen-single, 367 | .input-group .chosen-container:last-child .chosen-default, 368 | .input-group .chosen-container:last-child .chosen-choices { 369 | border-top-left-radius: 0px; 370 | border-bottom-left-radius: 0px; 371 | } 372 | .input-group .chosen-container:not(:last-child) .chosen-single, 373 | .input-group .chosen-container:not(:last-child) .chosen-default, 374 | .input-group .chosen-container:not(:last-child) .chosen-choices { 375 | border-top-right-radius: 0px; 376 | border-bottom-right-radius: 0px; 377 | } 378 | @media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-resolution: 2dppx) { 379 | .chosen-rtl .chosen-search input[type="text"], 380 | .chosen-container-single .chosen-single abbr, 381 | .chosen-container-single .chosen-single div b, 382 | .chosen-container-single .chosen-search input[type="text"], 383 | .chosen-container-multi .chosen-choices .search-choice .search-choice-close, 384 | .chosen-container .chosen-results-scroll-down span, 385 | .chosen-container .chosen-results-scroll-up span { 386 | background-image: url("chosen-sprite@2x.png") !important; 387 | background-size: 52px 37px !important; 388 | background-repeat: no-repeat !important; 389 | } 390 | } 391 | -------------------------------------------------------------------------------- /styling/angular-timezone-selector.min.css: -------------------------------------------------------------------------------- 1 | .chosen-select,.chosen-select-deselect{width:100%}.chosen-container{display:inline-block;font-size:14px;position:relative;vertical-align:middle}.chosen-container .chosen-drop{background:#fff;border:1px solid #ccc;border-bottom-right-radius:4px;border-bottom-left-radius:4px;box-shadow:0 8px 8px rgba(0,0,0,.25);margin-top:-1px;position:absolute;top:100%;left:-9000px;z-index:1060}.chosen-container.chosen-with-drop .chosen-drop{left:0;right:0}.chosen-container .chosen-results{color:#555;margin:0 4px 4px 0;max-height:240px;padding:0 0 0 4px;position:relative;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;line-height:1.42857143;list-style:none;margin:0;padding:5px 6px}.chosen-container .chosen-results li em{background:#feffde;font-style:normal}.chosen-container .chosen-results li.group-result{display:list-item;cursor:default;color:#999;font-weight:700}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li.active-result{cursor:pointer;display:list-item}.chosen-container .chosen-results li.highlighted{background-color:#337ab7;background-image:none;color:#fff}.chosen-container .chosen-results li.highlighted em{background:0 0}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#777}.chosen-container .chosen-results .no-results{background:#eee;display:list-item}.chosen-container .chosen-results-scroll{background:#fff;margin:0 4px;position:absolute;text-align:center;width:321px;z-index:1}.chosen-container .chosen-results-scroll span{display:inline-block;height:1.42857143;text-indent:-5000px;width:9px}.chosen-container .chosen-results-scroll-down{bottom:0}.chosen-container .chosen-results-scroll-down span{background:url(chosen-sprite.png) -4px -3px no-repeat}.chosen-container .chosen-results-scroll-up span{background:url(chosen-sprite.png) -22px -3px no-repeat}.chosen-container-single .chosen-single{background-color:#fff;background-clip:padding-box;border:1px solid #ccc;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);color:#555;display:block;height:34px;overflow:hidden;line-height:34px;padding:0 0 0 8px;position:relative;text-decoration:none;white-space:nowrap;border-radius:4px}.chosen-container-single .chosen-single span{display:block;margin-right:26px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chosen-container-single .chosen-single abbr{background:url(chosen-sprite.png) right top no-repeat;display:block;font-size:1px;height:10px;position:absolute;right:26px;top:12px;width:12px}.chosen-container-single .chosen-single abbr:hover{background-position:right -11px}.chosen-container-single .chosen-single.chosen-disabled .chosen-single abbr:hover{background-position:right 2px}.chosen-container-single .chosen-single div{display:block;height:100%;position:absolute;top:0;right:0;width:18px}.chosen-container-single .chosen-single div b{background:url(chosen-sprite.png) 0 7px no-repeat;display:block;height:100%;width:100%}.chosen-container-single .chosen-default{color:#777}.chosen-container-single .chosen-search{margin:0;padding:3px 30px 3px 4px;position:relative;white-space:nowrap;z-index:1000}.chosen-container-single .chosen-search input[type=text]{background:url(chosen-sprite.png) 100% -20px no-repeat,#fff;border:1px solid #ccc;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);margin:1px 0;padding:4px 20px 4px 4px;width:100%;border-radius:4px}.chosen-container-single .chosen-drop{margin-top:-1px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;background-clip:padding-box}.chosen-container-single-nosearch .chosen-search input{position:absolute;left:-9000px}.chosen-container-multi .chosen-choices{background-color:#fff;border:1px solid #ccc;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);cursor:text;height:auto!important;height:1%;margin:0;overflow:hidden;padding:0;position:relative;border-radius:4px}.chosen-container-multi .chosen-choices li{float:left;list-style:none}.chosen-container-multi .chosen-choices .search-field{margin:0;padding:0;white-space:nowrap}.chosen-container-multi .chosen-choices .search-field input[type=text]{background:0 0!important;border:0!important;box-shadow:none;color:#555;height:32px;margin:0;padding:4px;outline:0}.chosen-container-multi .chosen-choices .search-field .default{color:#999}.chosen-container-multi .chosen-choices .search-choice{background-clip:padding-box;background-color:#eee;border:1px solid #ccc;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);color:#333;cursor:default;line-height:13px;margin:6px 0 3px 5px;padding:3px 20px 3px 5px;position:relative;border-radius:4px}.chosen-container-active .chosen-single,.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #66afe9;box-shadow:0 1px 1px rgba(0,0,0,.075) inset,0 0 8px rgba(82,168,236,.6);transition:border linear .2s,box-shadow linear .2s}.chosen-container-multi .chosen-choices .search-choice .search-choice-close{background:url(chosen-sprite.png) right top no-repeat;display:block;font-size:1px;height:10px;position:absolute;right:4px;top:5px;width:12px;cursor:pointer}.chosen-container-multi .chosen-choices .search-choice .search-choice-close:hover{background-position:right -11px}.chosen-container-multi .chosen-choices .search-choice-focus{background:#d4d4d4}.chosen-container-multi .chosen-choices .search-choice-focus .search-choice-close{background-position:right -11px}.chosen-container-multi .chosen-results{margin:0;padding:0}.chosen-container-multi .chosen-drop .result-selected{display:none}.chosen-container-active.chosen-with-drop .chosen-single{background-color:#fff;border-bottom-right-radius:0;border-bottom-left-radius:0}.chosen-container-active.chosen-with-drop .chosen-single div{background:0 0;border-left:none}.chosen-container-active.chosen-with-drop .chosen-single div b{background-position:-18px 7px}.chosen-container-active .chosen-choices{border:1px solid #66afe9;border-bottom-right-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 1px rgba(0,0,0,.075) inset,0 0 8px rgba(82,168,236,.6);transition:border linear .2s,box-shadow linear .2s}.chosen-container-active .chosen-choices .search-field input[type=text]{color:#111!important}.chosen-container-active.chosen-with-drop .chosen-choices{border-bottom-right-radius:0;border-bottom-left-radius:0}.chosen-disabled{cursor:default;opacity:.5!important}.chosen-disabled .chosen-choices .search-choice .search-choice-close,.chosen-disabled .chosen-single{cursor:default}.chosen-rtl{text-align:right}.chosen-rtl .chosen-single{padding:0 8px 0 0;overflow:visible}.chosen-rtl .chosen-single span{margin-left:26px;margin-right:0;direction:rtl}.chosen-rtl .chosen-single div{left:7px;right:auto}.chosen-rtl .chosen-single abbr{left:26px;right:auto}.chosen-rtl .chosen-choices .search-field input[type=text]{direction:rtl}.chosen-rtl .chosen-choices li{float:right}.chosen-rtl .chosen-choices .search-choice{margin:6px 5px 3px 0;padding:3px 5px 3px 19px}.chosen-rtl .chosen-choices .search-choice .search-choice-close{background-position:right top;left:4px;right:auto}.chosen-rtl.chosen-container-single .chosen-results{margin:0 0 4px 4px;padding:0 4px 0 0}.chosen-rtl .chosen-results .group-option{padding-left:0;padding-right:15px}.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div{border-right:none}.chosen-rtl .chosen-search input[type=text]{background:url(chosen-sprite.png) -28px -20px no-repeat,#fff;direction:rtl;padding:4px 5px 4px 20px}.input-group .chosen-container:last-child .chosen-choices,.input-group .chosen-container:last-child .chosen-default,.input-group .chosen-container:last-child .chosen-single{border-top-left-radius:0;border-bottom-left-radius:0}.input-group .chosen-container:not(:last-child) .chosen-choices,.input-group .chosen-container:not(:last-child) .chosen-default,.input-group .chosen-container:not(:last-child) .chosen-single{border-top-right-radius:0;border-bottom-right-radius:0}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min-resolution:2dppx){.chosen-container .chosen-results-scroll-down span,.chosen-container .chosen-results-scroll-up span,.chosen-container-multi .chosen-choices .search-choice .search-choice-close,.chosen-container-single .chosen-search input[type=text],.chosen-container-single .chosen-single abbr,.chosen-container-single .chosen-single div b,.chosen-rtl .chosen-search input[type=text]{background-image:url(chosen-sprite@2x.png)!important;background-size:52px 37px!important;background-repeat:no-repeat!important}} -------------------------------------------------------------------------------- /styling/bootstrap-chosen-variables.less: -------------------------------------------------------------------------------- 1 | // 2 | // bootstrap-chosen-variables.less 3 | // 4 | // An alternate stylesheet for Chosen (http://harvesthq.github.com/chosen/). 5 | // This one is supposed to integrate better with Bootstrap. 6 | // 7 | // Submit bugfixes to: http://github.com/alxlit/bootstrap-chosen 8 | // 9 | 10 | @import "variables.less"; 11 | @import "mixins.less"; 12 | 13 | @chosen-background: @input-bg; 14 | @chosen-border: 1px solid @input-border; 15 | @chosen-border-radius: @input-border-radius; 16 | @chosen-multi-border-radius: @chosen-border-radius; 17 | @chosen-box-shadow: ~"inset 0 1px 1px rgba(0, 0, 0, .075)"; 18 | @chosen-drop-border: @input-border; 19 | @chosen-drop-box-shadow: ~"0 8px 8px rgba(0, 0, 0, .25)"; 20 | @chosen-drop-zindex: 1060; 21 | @chosen-focus-border: 1px solid @input-border-focus; 22 | @chosen-focus-box-shadow: ~"0 1px 1px rgba(0, 0, 0, .075) inset, 0 0 8px rgba(82, 168, 236, .6)"; 23 | @chosen-focus-transition: ~"border linear .2s, box-shadow linear .2s"; 24 | @chosen-height: @input-height-base; 25 | @chosen-multi-height: @input-height-base + 6px; 26 | @chosen-sprite-path: "chosen-sprite.png"; 27 | @chosen-sprite-retina-path: "chosen-sprite@2x.png"; 28 | -------------------------------------------------------------------------------- /styling/bootstrap-chosen.less: -------------------------------------------------------------------------------- 1 | // 2 | // bootstrap-chosen.less 3 | // 4 | // An alternate stylesheet for Chosen (http://harvesthq.github.com/chosen/). 5 | // This one is supposed to integrate better with Bootstrap. 6 | // 7 | // Submit bugfixes to: http://github.com/alxlit/bootstrap-chosen 8 | // 9 | 10 | @import "bootstrap-chosen-variables.less"; 11 | 12 | .chosen-select { width: 100%; } 13 | .chosen-select-deselect { width: 100%; } 14 | 15 | .chosen-container { 16 | display: inline-block; 17 | font-size: @font-size-base; 18 | position: relative; 19 | vertical-align: middle; 20 | 21 | .chosen-drop { 22 | background: @chosen-background; 23 | border: 1px solid @chosen-drop-border; 24 | .border-bottom-radius(@chosen-border-radius); 25 | .box-shadow(@chosen-drop-box-shadow); 26 | margin-top: -1px; 27 | position: absolute; 28 | top: 100%; 29 | left: -9000px; 30 | z-index: @chosen-drop-zindex; 31 | } 32 | 33 | &.chosen-with-drop .chosen-drop { 34 | left: 0; 35 | right: 0; 36 | } 37 | 38 | .chosen-results { 39 | color: @gray; 40 | margin: 0 4px 4px 0; 41 | max-height: 240px; 42 | padding: 0 0 0 4px; 43 | position: relative; 44 | overflow-x: hidden; 45 | overflow-y: auto; 46 | -webkit-overflow-scrolling: touch; 47 | 48 | li { 49 | display: none; 50 | line-height: @line-height-base; // 15px; 51 | list-style: none; 52 | margin: 0; 53 | padding: 5px 6px; 54 | 55 | em { 56 | background: #feffde; 57 | font-style: normal; 58 | } 59 | 60 | &.group-result { 61 | display: list-item; 62 | cursor: default; 63 | color: #999; 64 | font-weight: bold; 65 | } 66 | 67 | &.group-option { 68 | padding-left: 15px; 69 | } 70 | 71 | &.active-result { 72 | cursor: pointer; 73 | display: list-item; 74 | } 75 | 76 | &.highlighted { 77 | background-color: @link-color; 78 | background-image: none; 79 | color: white; 80 | 81 | em { 82 | background: transparent; 83 | } 84 | } 85 | 86 | &.disabled-result { 87 | display: list-item; 88 | color: @gray-light; 89 | } 90 | } 91 | 92 | .no-results { 93 | background: @gray-lighter; 94 | display: list-item; 95 | } 96 | } 97 | 98 | .chosen-results-scroll { 99 | background: white; 100 | margin: 0 4px; 101 | position: absolute; 102 | text-align: center; 103 | width: 321px; 104 | z-index: 1; 105 | 106 | span { 107 | display: inline-block; 108 | height: @line-height-base; // 17px; 109 | text-indent: -5000px; 110 | width: 9px; 111 | } 112 | } 113 | 114 | .chosen-results-scroll-down { 115 | bottom: 0; 116 | 117 | span { 118 | background: url("@{chosen-sprite-path}") no-repeat -4px -3px; 119 | } 120 | } 121 | 122 | .chosen-results-scroll-up { 123 | span { 124 | background: url("@{chosen-sprite-path}") no-repeat -22px -3px; 125 | } 126 | } 127 | } 128 | 129 | .chosen-container-single { 130 | .chosen-single { 131 | background-color: @chosen-background; 132 | -webkit-background-clip: padding-box; 133 | -moz-background-clip: padding; 134 | background-clip: padding-box; 135 | border: @chosen-border; 136 | .border-top-radius(@chosen-border-radius); 137 | .border-bottom-radius(@chosen-border-radius); 138 | .box-shadow(@chosen-box-shadow); 139 | color: @gray; 140 | display: block; 141 | height: @chosen-height; 142 | overflow: hidden; 143 | line-height: @chosen-height; 144 | padding: 0 0 0 8px; 145 | position: relative; 146 | text-decoration: none; 147 | white-space: nowrap; 148 | 149 | span { 150 | display: block; 151 | margin-right: 26px; 152 | .text-overflow(); 153 | } 154 | 155 | abbr { 156 | background: url("@{chosen-sprite-path}") right top no-repeat; 157 | display: block; 158 | font-size: 1px; 159 | height: 10px; 160 | position: absolute; 161 | right: 26px; 162 | top: ((@chosen-height - 10px) / 2); 163 | width: 12px; 164 | 165 | &:hover { 166 | background-position: right -11px; 167 | } 168 | } 169 | 170 | &.chosen-disabled .chosen-single abbr:hover { 171 | background-position: right 2px; 172 | } 173 | 174 | div { 175 | display: block; 176 | height: 100%; 177 | position: absolute; 178 | top: 0; 179 | right: 0; 180 | width: 18px; 181 | 182 | b { 183 | background: url("@{chosen-sprite-path}") no-repeat 0 7px; 184 | display: block; 185 | height: 100%; 186 | width: 100%; 187 | } 188 | } 189 | } 190 | 191 | .chosen-default { 192 | color: @gray-light; 193 | } 194 | 195 | .chosen-search { 196 | margin: 0; 197 | padding: 3px 30px 3px 4px; 198 | position: relative; 199 | white-space: nowrap; 200 | z-index: @zindex-dropdown; 201 | 202 | input[type="text"] { 203 | background: url("@{chosen-sprite-path}") no-repeat 100% -20px, @chosen-background; 204 | border: @chosen-border; 205 | .border-top-radius(@chosen-border-radius); 206 | .border-bottom-radius(@chosen-border-radius); 207 | .box-shadow(@chosen-box-shadow); 208 | margin: 1px 0; 209 | padding: 4px 20px 4px 4px; 210 | width: 100%; 211 | } 212 | } 213 | 214 | .chosen-drop { 215 | margin-top: -1px; 216 | .border-bottom-radius(@chosen-border-radius); 217 | -webkit-background-clip: padding-box; 218 | -moz-background-clip: padding; 219 | background-clip: padding-box; 220 | } 221 | } 222 | 223 | .chosen-container-single-nosearch { 224 | .chosen-search { 225 | input { 226 | position: absolute; 227 | left: -9000px; 228 | } 229 | } 230 | } 231 | 232 | .chosen-container-multi { 233 | .chosen-choices { 234 | background-color: @chosen-background; 235 | border: @chosen-border; 236 | .border-top-radius(@chosen-multi-border-radius); 237 | .border-bottom-radius(@chosen-multi-border-radius); 238 | .box-shadow(@chosen-box-shadow); 239 | cursor: text; 240 | height: auto !important; 241 | height: 1%; 242 | margin: 0; 243 | overflow: hidden; 244 | padding: 0; 245 | position: relative; 246 | 247 | li { 248 | float: left; 249 | list-style: none; 250 | } 251 | 252 | .search-field { 253 | margin: 0; 254 | padding: 0; 255 | white-space: nowrap; 256 | 257 | input[type="text"] { 258 | background: transparent !important; 259 | border: 0 !important; 260 | .box-shadow(none); 261 | color: @gray; 262 | height: @chosen-multi-height - 8px; 263 | margin: 0; 264 | padding: 4px; 265 | outline: 0; 266 | } 267 | 268 | .default { 269 | color: #999; 270 | } 271 | } 272 | 273 | .search-choice { 274 | -webkit-background-clip: padding-box; 275 | -moz-background-clip: padding; 276 | background-clip: padding-box; 277 | background-color: @gray-lighter; 278 | border: @chosen-border; 279 | .border-top-radius(@chosen-border-radius); 280 | .border-bottom-radius(@chosen-border-radius); 281 | .box-shadow(@chosen-box-shadow); 282 | color: @gray-dark; 283 | cursor: default; 284 | line-height: 13px; 285 | margin: 6px 0 3px 5px; 286 | padding: 3px 20px 3px 5px; 287 | position: relative; 288 | 289 | .search-choice-close { 290 | background: url("@{chosen-sprite-path}") right top no-repeat; 291 | display: block; 292 | font-size: 1px; 293 | height: 10px; 294 | position: absolute; 295 | right: 4px; 296 | top: 5px; 297 | width: 12px; 298 | cursor: pointer; 299 | 300 | &:hover { 301 | background-position: right -11px; 302 | } 303 | } 304 | } 305 | 306 | .search-choice-focus { 307 | background: #d4d4d4; 308 | 309 | .search-choice-close { 310 | background-position: right -11px; 311 | } 312 | } 313 | } 314 | 315 | .chosen-results { 316 | margin: 0 0 0 0; 317 | padding: 0; 318 | } 319 | 320 | .chosen-drop { 321 | .result-selected { 322 | display: none; 323 | } 324 | } 325 | } 326 | 327 | .chosen-container-active { 328 | .chosen-single { 329 | border: @chosen-focus-border; 330 | .box-shadow(@chosen-focus-box-shadow); 331 | .transition(@chosen-focus-transition); 332 | } 333 | 334 | &.chosen-with-drop .chosen-single { 335 | background-color: @input-bg; 336 | border: @chosen-focus-border; 337 | .border-bottom-radius(0); 338 | .box-shadow(@chosen-focus-box-shadow); 339 | .transition(@chosen-focus-transition); 340 | 341 | div { 342 | background: transparent; 343 | border-left: none; 344 | 345 | b { 346 | background-position: -18px 7px; 347 | } 348 | } 349 | } 350 | 351 | .chosen-choices { 352 | border: @chosen-focus-border; 353 | .border-bottom-radius(0); 354 | .box-shadow(@chosen-focus-box-shadow); 355 | .transition(@chosen-focus-transition); 356 | 357 | .search-field input[type="text"] { 358 | color: #111 !important; 359 | } 360 | } 361 | 362 | &.chosen-with-drop .chosen-choices { 363 | .border-bottom-radius(0); 364 | } 365 | } 366 | 367 | .chosen-disabled { 368 | cursor: default; 369 | opacity: 0.5 !important; 370 | 371 | .chosen-single { 372 | cursor: default; 373 | } 374 | 375 | .chosen-choices .search-choice .search-choice-close { 376 | cursor: default; 377 | } 378 | } 379 | 380 | .chosen-rtl { 381 | text-align: right; 382 | 383 | .chosen-single { 384 | padding: 0 8px 0 0; 385 | overflow: visible; 386 | 387 | span { 388 | margin-left: 26px; 389 | margin-right: 0; 390 | direction: rtl; 391 | } 392 | 393 | div { 394 | left: 7px; 395 | right: auto; 396 | } 397 | 398 | abbr { 399 | left: 26px; 400 | right: auto; 401 | } 402 | } 403 | 404 | .chosen-choices { 405 | .search-field input[type="text"] { 406 | direction: rtl; 407 | } 408 | 409 | li { 410 | float: right; 411 | } 412 | 413 | .search-choice { 414 | margin: 6px 5px 3px 0; 415 | padding: 3px 5px 3px 19px; 416 | 417 | .search-choice-close { 418 | background-position: right top; 419 | left: 4px; 420 | right: auto; 421 | } 422 | } 423 | } 424 | 425 | &.chosen-container-single .chosen-results { 426 | margin: 0 0 4px 4px; 427 | padding: 0 4px 0 0; 428 | } 429 | 430 | .chosen-results .group-option { 431 | padding-left: 0; 432 | padding-right: 15px; 433 | } 434 | 435 | &.chosen-container-active.chosen-with-drop .chosen-single div { 436 | border-right: none; 437 | } 438 | 439 | .chosen-search input[type="text"] { 440 | background: url("@{chosen-sprite-path}") no-repeat -28px -20px, @chosen-background; 441 | direction: rtl; 442 | padding: 4px 5px 4px 20px; 443 | } 444 | } 445 | 446 | .input-group { 447 | .chosen-container:last-child { 448 | .chosen-single, .chosen-default, .chosen-choices { 449 | border-top-left-radius: 0px; 450 | border-bottom-left-radius: 0px; 451 | } 452 | } 453 | .chosen-container:not(:last-child) { 454 | .chosen-single, .chosen-default, .chosen-choices { 455 | border-top-right-radius: 0px; 456 | border-bottom-right-radius: 0px; 457 | } 458 | } 459 | } 460 | 461 | @media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-resolution: 2dppx) { 462 | .chosen-rtl .chosen-search input[type="text"], 463 | .chosen-container-single .chosen-single abbr, 464 | .chosen-container-single .chosen-single div b, 465 | .chosen-container-single .chosen-search input[type="text"], 466 | .chosen-container-multi .chosen-choices .search-choice .search-choice-close, 467 | .chosen-container .chosen-results-scroll-down span, 468 | .chosen-container .chosen-results-scroll-up span { 469 | background-image: url("@{chosen-sprite-retina-path}") !important; 470 | background-size: 52px 37px !important; 471 | background-repeat: no-repeat !important; 472 | } 473 | } 474 | -------------------------------------------------------------------------------- /styling/chosen-sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mishguruorg/angular-timezone-selector/12382e5078d88385a573abfe9b66576d5d46e531/styling/chosen-sprite.png -------------------------------------------------------------------------------- /styling/chosen-sprite@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mishguruorg/angular-timezone-selector/12382e5078d88385a573abfe9b66576d5d46e531/styling/chosen-sprite@2x.png --------------------------------------------------------------------------------