define(['dialogHelper', 'loading', 'connectionManager', 'globalize', 'actionsheet', 'paper-checkbox', 'emby-input', 'paper-icon-button-light', 'emby-select', 'emby-button', 'listViewStyle', 'material-icons'], function (dialogHelper, loading, connectionManager, globalize, actionsheet) { return function (options) { var self = this; var currentMappingOptions; function parentWithClass(elem, className) { while (!elem.classList || !elem.classList.contains(className)) { elem = elem.parentNode; if (!elem) { return null; } } return elem; } function mapChannel(tunerChannelNumber, providerChannelNumber) { alert('coming soon.'); } function onChannelsElementClick(e) { var btnMap = parentWithClass(e.target, 'btnMap'); if (!btnMap) { return; } var channelNumber = btnMap.getAttribute('data-number'); var menuItems = currentMappingOptions.ProviderChannels.map(function (m) { return { name: m.Name, id: m.Id, selected: m.Id == channelNumber }; }); actionsheet.show({ positionTo: btnMap, items: menuItems }).then(function (newChannelNumber) { mapChannel(channelNumber, newChannelNumber); }); } function getChannelMappingOptions(serverId, providerId) { return connectionManager.getApiClient(serverId).getJSON(ApiClient.getUrl('LiveTv/ChannelMappingOptions', { providerId: providerId })); } function getTunerChannelHtml(channel, providerName) { var html = ''; html += '