(function() { "use strict"; angular.module('shared') .component('levelbar', { templateUrl: '/shared/js/angular/book-grid/levelbar.html', controller: 'LevelBar', bindings: { levelInfo: '<' } }) .controller('LevelBar', ['constantValues','ResourceList','languageConstants','$sce', function LevelBar(constantValues,ResourceList,languageConstants,$sce) { var ctrl = this; ctrl.trustAsHtml = $sce.trustAsHtml; ctrl.getBookLevelInfo = function(key) { if (ctrl.levelInfo === undefined || ctrl.levelInfo[key] === undefined || ctrl.levelInfo[key] === null) { return ''; } return ctrl.levelInfo[key]; }; ctrl.getTitle = function() { var result = ctrl.getBookLevelInfo('altTitle'); if (result.length > 0) { return result; } return ctrl.getBookLevelInfo('title'); }; ctrl.isEnglish = function() { return ResourceList.getLanguageId() === languageConstants.ENGLISH_LANGUAGE_ID; }; ctrl.isFiction = function() { return ResourceList.getType() === constantValues.TYPE_FICTION_SERIES; }; ctrl.isLeveledBooks = function() { return ResourceList.getType() === constantValues.TYPE_LEVELED_BOOKS; }; ctrl.isActivePopoutLevel = function() { return ResourceList.getActiveLevelBarPopoutLevel() != null && ResourceList.getActiveLevelBarPopoutLevel() === ctrl.getBookLevelInfo('level'); }; ctrl.setActivePopoutLevel = function() { ResourceList.setActiveLevelBarPopoutLevel(ctrl.isActivePopoutLevel() ? null : ctrl.getBookLevelInfo('level')); }; ctrl.closePopout = function(event, popoutTargetId) { if (event.keyCode !== 27) { // escape return; } ResourceList.setActiveLevelBarPopoutLevel(null); if (popoutTargetId) { var popoutTarget = angular.element('#' + popoutTargetId); popoutTarget.focus(); } }; }]); }());