UNPKG

tsiclient

Version:

--- [//]: <> (This content is similar to https://github.com/MicrosoftDocs/azure-docs/edit/main/includes/tsi-retirement.md)

59 lines (56 loc) 4.58 kB
import { a as __extends } from './tslib.es6-f952ba6f.js'; import { U as Utils } from './Utils-38a0872e.js'; import { select } from 'd3'; import moment from 'moment-timezone'; import { C as ChartComponent } from './ChartComponent-ed6f3c6d.js'; var TimezonePicker = /** @class */ (function (_super) { __extends(TimezonePicker, _super); function TimezonePicker(renderTarget) { var _this = _super.call(this, renderTarget) || this; _this.timeZones = ["Local", "UTC", "Africa/Algiers", "Africa/Cairo", "Africa/Casablanca", "Africa/Harare", "Africa/Johannesburg", "Africa/Lagos", "Africa/Nairobi", "Africa/Windhoek", "America/Anchorage", "America/Bogota", "America/Buenos Aires", "America/Caracas", "America/Chicago", "America/Chihuahua", "America/Denver", "America/Edmonton", "America/Godthab", "America/Guatemala", "America/Halifax", "America/Indiana/Indianapolis", "America/Los Angeles", "America/Manaus", "America/Mexico City", "America/Montevideo", "America/New York", "America/Phoenix", "America/Santiago", "America/Sao Paulo", "America/St Johns", "America/Tijuana", "America/Toronto", "America/Vancouver", "America/Winnipeg", "Asia/Amman", "Asia/Beirut", "Asia/Baghdad", "Asia/Baku", "Asia/Bangkok", "Asia/Calcutta", "Asia/Colombo", "Asia/Dhaka", "Asia/Dubai", "Asia/Ho Chi Minh", "Asia/Hong Kong", "Asia/Irkutsk", "Asia/Istanbul", "Asia/Jakarta", "Asia/Jerusalem", "Asia/Kabul", "Asia/Karachi", "Asia/Kathmandu", "Asia/Krasnoyarsk", "Asia/Kuala Lumpur", "Asia/Kuwait", "Asia/Magadan", "Asia/Muscat", "Asia/Novosibirsk", "Asia/Qatar", "Asia/Rangoon", "Asia/Seoul", "Asia/Shanghai", "Asia/Singapore", "Asia/Taipei", "Asia/Tbilisi", "Asia/Tehran", "Asia/Tokyo", "Asia/Vladivostok", "Asia/Yakutsk", "Asia/Yekaterinburg", "Asia/Yerevan", "Atlantic/Azores", "Atlantic/Cape Verde", "Atlantic/South Georgia", "Australia/Adelaide", "Australia/Brisbane", "Australia/Canberra", "Australia/Darwin", "Australia/Hobart", "Australia/Melbourne", "Australia/Perth", "Australia/Queensland", "Australia/Sydney", "Europe/Amsterdam", "Europe/Andorra", "Europe/Athens", "Europe/Belfast", "Europe/Belgrade", "Europe/Berlin", "Europe/Brussels", "Europe/Budapest", "Europe/Dublin", "Europe/Helsinki", "Europe/Kiev", "Europe/Lisbon", "Europe/London", "Europe/Luxembourg", "Europe/Madrid", "Europe/Minsk", "Europe/Monaco", "Europe/Moscow", "Europe/Oslo", "Europe/Paris", "Europe/Rome", "Europe/Stockholm", "Europe/Vienna", "Europe/Warsaw", "Europe/Zurich", "Pacific/Auckland", "Pacific/Fiji", "Pacific/Guam", "Pacific/Honolulu", "Pacific/Midway", "Pacific/Tongatapu"]; return _this; } TimezonePicker.prototype.sortTimezones = function () { var filteredTimezones = this.timeZones.filter(function (tz) { return !(tz.toLowerCase() == 'local' || tz == 'UTC'); }); filteredTimezones.sort(function (a, b) { var aOffset = moment.tz(new Date(), a.split(' ').join('_')).utcOffset(); var bOffset = moment.tz(new Date(), b.split(' ').join('_')).utcOffset(); if (aOffset < bOffset) { return -1; } if (aOffset > bOffset) { return 1; } return 0; }); this.timeZones = ['Local', 'UTC'].concat(filteredTimezones); }; TimezonePicker.prototype.render = function (onTimezoneSelect, defaultTimeZone) { var _this = this; if (defaultTimeZone === void 0) { defaultTimeZone = null; } this.targetElement = select(this.renderTarget) .classed("tsi-timezonePicker", true); var timezoneSelection = this.targetElement.append("select") .attr("class", "tsi-timezonePicker tsi-select"); this.sortTimezones(); var options = timezoneSelection.selectAll("option") .data(this.timeZones) .enter() .append("option") .attr('value', function (d) { return d; }) .text(function (tz) { return Utils.convertTimezoneToLabel(tz, _this.getString('Local')); }); timezoneSelection.on("change", function (d) { var timezone = select(this).node().value.replace(/\s/g, "_"); onTimezoneSelect(timezone); }); defaultTimeZone = defaultTimeZone.replace(/_/g, " "); if (defaultTimeZone != null) { options.filter(function (d) { return d == defaultTimeZone; }).attr("selected", true); } return; }; return TimezonePicker; }(ChartComponent)); export { TimezonePicker as T };